Модуль:Реабилитация

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

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

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

pp[''] = function ( frame )
	local args, x = tools.checkargs( frame:getParent().args,
        { 'да', ['дата'] = '', 
            ['дополнение'] = true, ['сноска'] = true, ['источник'] = true } )
	local Bio = global.get( 'gBio' ) or {}
	local reab = {}
	local formatReab = 'Используйте формат {{ реабилитация'
		.. ' | дата = <var>дата</var> }} (при отказе в реабилитации добавьте'
		.. ' параметр «| нет», при отсутствии сведений — «| неизвестно»)'
	local errorDateAdvice = 'Используйте формат даты '
		.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
		.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
    if not args then 
		return tools.errorMsg( 'реабилитация', 'Неизвестный параметр «' .. x .. '»', formatReab )
    end
    
    
	x = args[1]
	if x == 'да' then
		reab.state = 1
	elseif x == 'нет' then
		reab.state = -1
	elseif x == 'неизвестно' then
		reab.state = 0
	else
		return  tools.errorMsg( 'реабилитация', 
			'Первый параметр должен быть «да», «нет» или «неизвестно»',
			formatReab )
	end
	reab.date = tools.parseDate( args['дата'] )
	if not reab.date then
		return  tools.errorMsg( 'реабилитация', 'Ошибка в дате реабилитации',
			errorDateAdvice )
	end
	reab.addendum = args['дополнение']
	reab.reference = args['сноска']
	reab.source = args['источник']
	if Bio.reab then 
		return tools.errorMsg ( 'реабилитация', 
			'В анкете реабилитация должна указываться лишь единожды',
			formatReab )
	end
	Bio.reab = reab

	global.set( 'gBio', Bio )
	return '<i></i>'
end
return pp