Модуль:Анкета — различия между версиями

Материал из Кадровый состав НКВД 1935-1939
Перейти к: навигация, поиск
 
(не показано 6 промежуточных версий этого же участника)
Строка 27: Строка 27:
  
 
--[[------------------------------------------------------------------------]]--
 
--[[------------------------------------------------------------------------]]--
pp['Род'] = function ( frame )
+
pp['Род старый'] = function ( frame )
 
Frame = frame
 
Frame = frame
 
Args = frame:getParent().args
 
Args = frame:getParent().args
Строка 47: Строка 47:
 
local addendum, comment, source =  
 
local addendum, comment, source =  
 
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
 
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 } )  
 
global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } )  
 
return '<i></i>'
 
return '<i></i>'
Строка 98: Строка 131:
 
return '<i></i>'
 
return '<i></i>'
 
end
 
end
 
--[====[
 
--[[------------------------------------------------------------------------]]--
 
pp['КПСС'] = function ( frame )
 
Frame = frame
 
Args = frame:getParent().args
 
local flag = { [''] = 0, ['нет'] = -1, ['б/п'] = -1,
 
['кандидат'] = 1, ['член'] = 2, ['да'] = 2, }
 
local errorAdvice = 'Используйте формат {{ КПСС | кандидат = <var>дата</var> | '
 
.. 'член = <var>дата</var> | выбыл = <var>дата</var> | '
 
.. 'дополнение = <var>текст</var> | сноска =  <var>текст</var> | '
 
.. 'источник = <var>текст</var> }}. Дата выбытия указывается, если '
 
.. 'последующего восстановления в партии не было. Используйте формат '
 
.. '{{ КПСС | нет / да / кандидат }} для лиц, никогда не состоявших '
 
.. 'в партии / для коммунистов, о которых нет никаких других данных.'
 
local errorDateAdvice = 'Используйте формат даты '
 
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
 
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
 
if global.get( 'gKPSS' ) then
 
return tools.errorMsg( 'КПСС', 'Повторное использование шаблона «КПСС»' )
 
end
 
local tmp = flag[mw.ustring.lower( mw.text.trim( Args[1] or '' ) )]
 
if not tmp then
 
return tools.errorMsg( 'КПСС', 'Некорректное значение параметра', errorAdvice )
 
end
 
local gKPSS = { ['флаг'] = tmp }
 
local dates = { 'кандидат', 'член', 'выбыл' }
 
for i, x in ipairs( dates ) do
 
if ( Args[x] or '' ) ~= '' then
 
tmp = tools.parseDate( Args[x], 1898 )
 
if not tmp then
 
return tools.errorMsg( 'КПСС',
 
'Ошибка в записи даты «' .. x .. '»', errorDateAdvice )
 
end
 
gKPSS[x] = tmp
 
end
 
end
 
gKPSS['дополнение'], gKPSS['сноска'], gKPSS['источник'] =
 
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
 
global.set( 'gKPSS', gKPSS )
 
return '<i></i>'
 
end
 
 
--[[------------------------------------------------------------------------]]--
 
pp['ВЛКСМ'] = function ( frame )
 
Frame = frame
 
Args = frame:getParent().args
 
local flag = { [''] = 0, ['нет'] = -1, ['б/п'] = -1,
 
['член'] = 2, ['да'] = 2, }
 
local errorAdvice = 'Используйте формат {{ ВЛКСМ | '
 
.. 'член = <var>дата</var> | выбыл = <var>дата</var> | '
 
.. 'дополнение = <var>текст</var> | сноска =  <var>текст</var> | '
 
.. 'источник = <var>текст</var> }}. Дата выбытия указывается, если '
 
.. 'последующего восстановления в ВЛКСМ не было. Используйте формат '
 
.. '{{ ВЛКСМ | нет / да  }} для лиц, никогда не состоявших '
 
.. 'в комсомоле / для комсомольцев, о которых нет никаких других данных.'
 
local errorDateAdvice = 'Используйте формат даты '
 
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
 
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
 
if global.get( 'gVLKSM' ) then
 
return tools.errorMsg( 'ВЛКСМ', 'Повторное использование шаблона «ВЛКСМ»' )
 
end
 
local tmp = flag[mw.ustring.lower( mw.text.trim( Args[1] or '' ) )]
 
if not tmp then
 
return tools.errorMsg( 'ВЛКСМ', 'Некорректное значение параметра', errorAdvice )
 
end
 
local gVLKSM = { ['флаг'] = tmp }
 
local dates = { 'член', 'выбыл' }
 
for i, x in ipairs( dates ) do
 
if ( Args[x] or '' ) ~= '' then
 
tmp = tools.parseDate( Args[x], 1900 )
 
if not tmp then
 
return tools.errorMsg( 'ВЛКСМ',
 
'Ошибка в записи даты «' .. x .. '»', errorDateAdvice )
 
end
 
gVLKSM[x] = tmp
 
end
 
end
 
gVLKSM['дополнение'], gVLKSM['сноска'], gVLKSM['источник'] =
 
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
 
global.set( 'gVLKSM', gVLKSM )
 
return '<i></i>'
 
end
 
 
--[[------------------------------------------------------------------------]]--
 
pp['Инопартийность'] = function ( frame )
 
Frame = frame
 
Args = frame:getParent().args
 
local gBund =  mw.text.trim( Args[1] or '' )
 
if global.get( 'gBund' ) then
 
return tools.errorMsg( 'Инопартийность',
 
'Повторное использование шаблона «Инопартийность»' )
 
end
 
local addendum, comment, source =
 
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
 
if gBund ~= '' then
 
global.set( 'gBund', { gBund, addendum, comment, source } )
 
end
 
return '<i></i>'
 
end
 
--]====]
 
 
  
 
return pp
 
return pp

Текущая версия на 14:13, 3 марта 2017

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

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

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 = Args['место'] 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