Module:Sandbox/Ythlev
Appearance
local getArgs = require('Module:Arguments').getArgs
local p = {}
function main(args)
local tb = mw.html.create('table')
tb
:addClass('wikitable')
:tag('tr')
:tag('th')
:wikitext('Party')
:attr('colspan', '2')
:tag('th')
:wikitext('Candidate')
:tag('th')
:wikitext('Votes')
:tag('th')
:wikitext('%')
local lang = mw.getContentLanguage()
local function fmt(n)
return lang:formatNum(n)
end
local valid = 0
for i = 1, 20 do
if args['party' .. i] ~= nil and
args['cand' .. i] ~= nil and
args['votes' .. i] ~= nil
then
args['votes' .. i] = tonumber(args['votes' .. i])
tb
:tag('tr')
:tag('td')
:css('background-color', string.format('{{%s/meta/color}}', args['party' .. i]))
:tag('td')
:wikitext(string.format('\[\[%s\]\]', args['party' .. i]))
:tag('td')
:wikitext(string.format('\[\[%s\]\]', args['cand' .. i]))
:tag('td')
:wikitext(fmt(args['votes' .. i]))
:tag('td')
:wikitext()
valid = valid + args['votes' .. i]
end
end
args.invalid, args.electorate = tonumber(args.invalid), tonumber(args.electorate)
tb
:tag('tr')
:css('background', '#EAECF0')
:tag('td')
:wikitext('Valid votes')
:attr('colspan', '3')
:css('text-align', 'right')
:tag('td')
:wikitext(fmt(valid))
:tag('td')
:wikitext(valid / (valid + args.invalid))
:tag('tr')
:css('background', '#EAECF0')
:tag('td')
:wikitext('Invalid votes')
:attr('colspan', '3')
:css('text-align', 'right')
:tag('td')
:wikitext(fmt(args.invalid))
:tag('td')
:wikitext(args.invalid / (valid + args.invalid))
:tag('tr')
:css('background', '#EAECF0')
:css('font-weight', 'bold')
:tag('td')
:wikitext('Total votes')
:attr('colspan', '3')
:css('text-align', 'right')
:tag('td')
:wikitext(fmt(valid + args.invalid))
:tag('td')
:wikitext('100.00')
:tag('tr')
:css('background', '#EAECF0')
:tag('td')
:wikitext('Electorate–turnout')
:attr('colspan', '3')
:css('text-align', 'right')
:tag('td')
:wikitext(fmt(args.electorate))
:tag('td')
:wikitext(string.format('%f.2', valid / args.electorate * 100))
return tostring(tb)
end
function p.main(frame)
return main(getArgs(frame))
end
return p