Модуль:PopulationDistribution
Для документации этого модуля может быть создана страница Модуль:PopulationDistribution/doc
local p = {}
local ModuleStatistical = require( 'Module:Statistical' )
function p.GetPopulationDistribution(frame)
local Args = frame:getParent().args
if Args[1] == nil then
return '<strong class="error">Введите викифицированные названия населённых пунктов</strong>'
end
local District = Args['МО'] or frame.args[1]
local DistrictPopulation = ModuleStatistical.GetStat({ District, 'ч' })
local ChartArgs = {}
local Title = 'Распределение населения '
if string.find (District, 'район') then
Title = Title .. 'района'
elseif string.find (District, '[Гг]ородской округ') then
Title = Title .. 'городского округа'
elseif string.find (District, '[Мм]униципальный округ') then
Title = Title .. 'муниципального округа'
elseif string.find (District, ' округ') then
Title = Title .. 'округа'
elseif string.find (District, '[Гг]ородское поселение') then
Title = Title .. 'городского поселения'
else
Title = Title .. 'муниципального образования'
end
ChartArgs['заголовок'] = Title .. ':'
ChartArgs['other'] = 'Остальные'
for key, val in pairs(Args) do
if key ~= 'МО' then
local Name = mw.text.trim(val)
ChartArgs[ 'описание' .. key ] = string.format('[[%s|%s]]', Name, string.match(Name, "([^\(]+)"))
ChartArgs[ 'значение' .. key ] = string.format("%.2f", ModuleStatistical.GetStat({Name, 'ч'})*100/DistrictPopulation)
end
end
return frame:expandTemplate({
title = 'Круговая диаграмма',
args = ChartArgs,
})
end
return p