Модуль:Отображение наград

Материал из Кадровый состав НКВД 1935-1939
Перейти к: навигация, поиск

Для документации этого модуля может быть создана страница Модуль:Отображение наград/doc

local pp = {}
local tools = require( 'Module:Tools' )
local perstools = require( 'Module:PersTools' )
local refTools = require( 'Module:RefTools' )
local prizeTable = mw.loadData('Модуль:Награды')
local marker = {
	icon = 'trophy',
	[3] = 'Упоминание награды в документах', -- на всякий случай )
	[6] = 'Лишение награды',
	[8] = 'Награждение — ОТМЕНЕНО',
	[10] = 'Лишение награды — ОТМЕНЕНО',
	[11] = 'Отмена решения',
	[12] = 'Награждение',
	[14] = 'Лишение награды',
}

function pp.display( query, queryCount, showP )

	if queryCount == 0  then
		return '<p class="nkvd-no-prize">Отсутствуют сведения о награждении.</p>[[Категория:Персоналии без наград]]'
	end
	table.sort( query, function ( a, b )
			return ( a.cDate or '' ) < ( b.cDate or '' )
				or ( a.cDate or '' ) == ( b.cDate or '' )
					and tonumber( a.origin ) < tonumber( b.origin )
		end
	)
	local out
	if showP then
		out = '<th> </th>'
	else
		out = ''
	end

	out = { [==[
<table class="nkvd-prize-table">
  <tr class="nkvd-table-th">]==] .. out .. [==[
    <th> </th>
    <th> </th>
    <th class="nkvd-table-date">дата</th>
    <th class="nkvd-table-prize">награда</th>
    <th class="nkvd-table-source">источник</th>
  </tr>
]==] }

	local ourTitle = mw.title.getCurrentTitle().text
	for _, row in ipairs( query ) do
		if row['#eq'] or ( showP and row['#ap'] ) then
			local icon
			if row.origin == '12' and prizeTable[row.prize].icon then
				icon = '[[Файл:' .. prizeTable[row.prize].icon .. '|36px]]'
	--		else
	--			icon = prizeTable[row.prize].icon or '???'
			end
			table.insert( out,
				'<tr class="nkvd-table-row-' .. row.origin .. '">' )
			if showP then
				table.insert( out, '<td class="nkvd-table-person">' .. perstools.makePersonLink( row ) .. '</td>' )
			end
			table.insert( out,
				perstools.fixedColumns( row.origin, marker, row.cDate, row.cDate__precision, true, icon ) )
			if row.origin == '14' then
				table.insert( out,
					'<td class="nkvd-table-prize"><i>Лишение награды: ' .. row.prize
						.. '</i></td>' )
			else
				table.insert( out,
					'<td class="nkvd-table-prize">' .. row.prize )
				if row.prizeNumber ~= '' then
					table.insert( out, ' №&nbsp;' .. row.prizeNumber )
				end
	--			table.insert( out, '[[Категория:Награда:' .. row.prize .. ']]</td>' )
				table.insert( out, '</td>' )
			end
			local doc, persdoc = row._pageName, (row.alias or '')
			if doc == ourTitle then
				if persdoc == '' then
					persdoc = 'см. дополнительные материалы'
				end
			else
				if persdoc == '' then
					persdoc = mw.title.new( doc ).text
				end
				persdoc = '[[' .. doc .. '|' .. persdoc .. ']]'
			end
	--		if row.formula ~= '' then
	--			row.formula = string.byte( row.formula, 3 ) .. ': ' .. row.formula
	--		end

			table.insert( out, '<td class="nkvd-table-source">' .. persdoc .. ' ' ..  mw.text.decode( tools.podvigLink( row.podvig ) ) ) 
			table.insert( out, refTools.makeRef( row.reference ) )
			table.insert( out, '</td>' )
			table.insert( out, '</tr>\n' )
		end
	end
	table.insert( out, '</table>\n' )

	return table.concat( out )
end
return pp