Модуль:Анкета

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

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

local pp = {}
local global = mw.ext.luaglobal;
local Frame, Args
local tools = require( 'Модуль:Tools' )

local coD = mw.loadData( 'Модуль:Анкета/Причины смерти' )



--[[------------------------------------------------------------------------]]--
pp['Пол'] = function ( frame )
	Frame = frame
	Args = frame:getParent().args
	local gender = mw.text.trim( Args[1] or '' )
	gender =  mw.ustring.lower( mw.ustring.sub( gender, 1, 1 ) )
	if gender == 'м' then
		gender = 1
	elseif gender == 'ж' then
		gender = 2
	else
		return tools.errorMsg( 'Пол', 'Такого пола нет', 'Бывает только «м» или «ж»' )
	end
	global.set( 'gGender', gender )
	return '<i></i>'
end

--[[------------------------------------------------------------------------]]--
pp['Род старый'] = function ( frame )
	Frame = frame
	Args = frame:getParent().args
	local errorDateAdvice = 'Используйте формат даты '
		.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
		.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
	if global.get( 'gBirth' ) then
		return tools.errorMsg ( 'род', 'Повторное использование шаблона' )
	end
	local birthdate = mw.text.trim( Args[1] or '' )
	if birthdate ~= '' then
		birthdate = tools.parseDate( birthdate, 1850 )
		if not birthdate then
			return tools.errorMsg( 'род', 'Ошибка в записи даты', errorDateAdvice )
		end
	end
	local place = Args['место'] or ''
	local family = Args['в семье'] or ''
	local addendum, comment, source =
		Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
	global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } )
	return '<i></i>'
end

--[[------------------------------------------------------------------------]]--
pp['Род'] = function ( frame )
--	Frame = frame
	local Args, tmp = tools.checkargs( frame:getParent().args,
		{ '', true, ['место'] = true,  ['в семье'] = '',
			 ['дополнение'] = '', ['сноска'] = '', ['источник'] = '', } )
	if not Args then
		return tools.errorMsg ( 'род', 'Неизвестный параметр «' .. tmp .. '»' )
	end
	if Args[2] and Args['место'] then
		return tools.errorMsg ( 'род', 'Нельзя одновременно указывать и 2-й параметр, и параметр «место»' )
	end
	local place = Args['место'] or Args[2] or ''
	local errorDateAdvice = 'Используйте формат даты '
		.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
		.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
	if global.get( 'gBirth' ) then
		return tools.errorMsg ( 'род', 'Повторное использование шаблона' )
	end
	local birthdate = Args[1]
	if birthdate ~= '' then
		birthdate = tools.parseDate( birthdate, 1850 )
		if not birthdate then
			return tools.errorMsg( 'род', 'Ошибка в записи даты', errorDateAdvice )
		end
	end
	local family = Args['в семье']
	local addendum, comment, source =
		Args['дополнение'], Args['сноска'], Args['источник']
	global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } )
	return '<i></i>'
end

--[[------------------------------------------------------------------------]]--
pp['Умер'] = function ( frame )
	Frame = frame
	Args = frame:getParent().args
	local errorDateAdvice = 'Используйте формат даты '
		.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
		.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
	if global.get( 'gDead' ) then
		return tools.errorMsg ( 'умер', 'Повторное использование шаблона' )
	end
	local deathdate = mw.text.trim( Args[1] or '' )
	if deathdate ~= '' then
		deathdate = tools.parseDate( deathdate, 1900 )
		if not deathdate then
			return tools.errorMsg( 'умер', 'Ошибка в записи даты', errorDateAdvice )
		end
	end
	local cause = Args['причина']
	if not cause then
		cause = ''
	end
	if not coD.causeOD[cause] then
		return tools.errorMsg ( 'умер',
			'Причина смерти должна быть указана в фиксированном формате',
			'См. [[Project:Причины смерти|перечень возможных значений параметра]]' )
	end


	local place = mw.text.trim( Args['место'] or Args[2] or '' )
	local addendum, comment, source =
		Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
	global.set( 'gDeath', { deathdate, place, cause, addendum, comment, source } )
	return '<i></i>'
end

--[[------------------------------------------------------------------------]]--
pp['Национальность'] = function ( frame )
	Frame = frame
	Args = frame:getParent().args
	local ethn = mw.ustring.lower( mw.text.trim( Args[1] or '' ) )
	local addendum, comment, source =
		Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
	if ethn ~= '' then
		global.set( 'gEthn', { ethn, addendum, comment, source } )
	end
	return '<i></i>'
end

return pp