Module:Mandatetable FI
local p = {}
function p.start(frame)
local pFrame = frame:getParent();
local args = pFrame.args;
for k,v in pairs( frame.args ) do
args[k] = v;
end
local text = ''
local party = require('Module:Parties fi')
text = mw.text.tag( 'th', {style="width:4em;"}, mw.text.tag('span', {style = "cursor: help; border-bottom: 1px dotted;", title = 'Election year'}, 'Election year') )
local i = 1
while args[i] and args[i] ~= '' do
local kort = args[i]
frame.args = { kort }
local vector = party.parties(frame)
if vector == nil then
return 'ERROR'
end
local a = vector['a']
local t = vector['t']
local n = vector['n']
local f = vector['f']
local l = vector['l']
local t4 = mw.text.tag('span', {style="color:" .. t .. ";"}, a)
t4 = mw.text.tag('th', {style = "background:" .. f .. ";min-width:2.1em;max-width:2.3em;", title = n}, "[[" .. l .. "|" .. t4 .. "]]")
text = text .. t4
i = i + 1
end
i = i*2.1+60.5
t4 = mw.text.tag('span',{style="cursor: help; border-bottom: 1px dotted;", title="Graphic representation of seat distribution and voting percentage"}, 'Graphic representation, places and voting percentage')
text = text .. mw.text.tag('th', {style="box-sizing:content-box;width:400px;"},t4)
t4 = mw.text.tag('span',{style="cursor: help; border-bottom: 1px dotted;", title="Paikkojen kokonaismäärä"}, "Yht.")
text = text .. mw.text.tag('th', {style="width:2.1em;"}, t4)
t4 = mw.text.tag('span',{style="cursor: help; border-bottom: 1px dotted;", title="Äänestysprosentti"}, '%')
text = text .. mw.text.tag('th', {style="width:2.5em;"}, t4)
t4 = mw.text.tag('span',{style="cursor: help; border-bottom: 1px dotted;", title="Valtuutettujen sukupuolijakauma, miehiä/naisia"}, "Sukupuolijakauma ([[Mies|M]]/[[Nainen|N]])")
text = text .. mw.text.tag('th', {style="box-sizing:content-box;width:120px;"}, t4)
text = mw.text.tag('tr', {}, text)
--text = mw.text.tag('table', {class="wikitable", border="1", style="text-align:center;font-size:88%;width:" .. i .. "em;"}, text)
return text
end
function p.relativmandatstapel(frame)
local pFrame = frame:getParent();
local args = pFrame.args;
for k,v in pairs( frame.args ) do
args[k] = v;
end
local text = ''
local party = require('Module:Parties fi')
local bredd = args.bredd
if bredd == nil then
bredd = '400'
end
local sum = args[2]
local prosentti = args.prosentti or ''
local prosentti2 = tonumber(prosentti)
local y = ''
if prosentti2 == nil then
local y1 = string.find(prosentti, ',')
if y1 then
prosentti2 = string.sub(prosentti,1,y1-1).. '.' .. string.sub(prosentti,y1+1,string.len(prosentti))
end
end
local i = 3
while (args[i] and args[i] ~= '') or args[i+1] do
local kort = args[i]
frame.args = { kort }
local vector = party.parties(frame)
if tonumber( args[i+1] ) == nil then
args[i+1] = '0'
end
if vector == nil then
return 'ERROR'
end
local t = vector['t']
local f = vector['f']
local stylus = ''
local content = ''
if (tonumber(args[i+1]) or 0) > 0 then
stylus = 'padding:0;border:0;background:' .. f .. ';color:' .. t .. ';width:' .. math.floor(tonumber(bredd)*tonumber(args[i+1])/tonumber(sum) + 0.5) .. 'px;'
if tonumber(bredd)*tonumber(args[i+1])/tonumber(sum) > 16 then
content = args[i+1]
end
text = text .. mw.text.tag('td', {style = stylus, title = args[i+1]}, content)
end
y = text
i = i + 2
end
text = mw.text.tag('tr', {}, text)
text = mw.text.tag('table', {cellspacing="0",cellpadding="0", border="0", style="border:0;width:"..bredd.."px; text-align:center;line-height:1.3em;padding:0;"}, text)
if prosentti2 ~= nil then
local div = mw.text.tag( 'div', {style="width:1px;height:4px;position:absolute;top:0;left:25%;z-index:10;background-color:#666666;"}, '')
div = div .. mw.text.tag('div', {style="width:1px;height:4px;position:absolute;top:0;left:50%;z-index:10;background-color:#666666;"}, '')
div = div .. mw.text.tag('div', {style="width:1px;height:4px;position:absolute;top:0;left:75%;z-index:10;background-color:#666666;"}, '')
div = div .. mw.text.tag('div', {title="Prosenttiosuus: " .. prosentti .. "%", style="padding:0;background-color:#b0b0b0;height:4px;width:" .. math.floor(tonumber(bredd)*prosentti2/100+0.5) .. "px;"}, '')
div = mw.text.tag('div', {style="margin:2px 0 0 0;padding:0;position:relative;height:4px;width:"..bredd.."px;"}, div)
text = text .. div
end
y = text
return y or 'Hei'
end
function mqstapel(tot, naisia, tom)
local stylus = 'padding:0;border:0;background:#C0C0FF;width:' .. math.floor(120*(tot-tom-naisia)/tot) .. 'px;'
local d = ''
if 120*(tot-tom-naisia) > 16 then
d = tostring(tot-tom-naisia)
end
local text = mw.text.tag('td', {style=stylus, title = tostring(tot-tom-naisia)}, d)
if tom ~= 0 then
stylus = 'padding:0;border:0;background:#ffffff;width:' .. math.floor(120*tom/tot) .. 'px;'
text = text .. mw.text.tag('td', {style=stylus, title = tostring(tom)}, '')
end
if naisia ~= 0 then
stylus = 'padding:0;border:0;background:#FFC0C0;width:' .. math.floor(120*naisia/tot) .. 'px;'
d = ''
if 120*naisia/tot > 16 then
d = tostring(naisia)
end
text = text .. mw.text.tag('td', {style=stylus, title = tostring(naisia)}, d)
end
text = mw.text.tag('tr', {}, text)
text = mw.text.tag('table', {cellspacing="0", cellpadding="0", border="0", style="border:0;width:120px; text-align:center;line-height:1.3em;padding:0;"}, text)
return text
end
function p.rad(frame)
local pFrame = frame:getParent();
local args = pFrame.args;
for k,v in pairs( frame.args ) do
args[k] = v;
end
local text = ''
text = text .. mw.text.tag('td', {}, args[1])
local i = 3
local u = 0
local prosentti = args.prosentti or ''
while tonumber(args[i+1]) ~= nil do
local t = ''
if tonumber(args[i+1]) > 0 then
t = args[i+1]
end
text = text .. mw.text.tag('td', {}, t)
u = u + tonumber(args[i+1])
i = i + 2
end
if u == tonumber(args[2]) then
text = text .. mw.text.tag('td', {}, p.relativmandatstapel(frame))
else
text = text .. mw.text.tag('td', {}, mw.text.tag('span', {style="color:red;"}, 'ERROR_IN_LOCATION'))
end
text = text .. mw.text.tag('td', {}, args[2])
if prosentti ~= nil then
text = text .. mw.text.tag('td', {}, prosentti)
else
text = text .. mw.text.tag('td', {}, '')
end
if args.naisia ~= nil and args.naisia ~= '' then
text = text .. mw.text.tag('td', {}, mqstapel(tonumber(args[2]), tonumber(args.naisia), tonumber(args.tom) or 0))
else
text = text .. mw.text.tag('td', {}, '')
end
text = mw.text.tag('tr', {}, text)
return text
end
function p.n(frame)
local pFrame = frame:getParent();
local args = pFrame.args;
local i = 1
while args[i] ~= nil do
i = i + 1
end
local h = 2.1 * i + 58.4
return h .. ''
end
function p.slut(frame)
local pFrame = frame:getParent();
local args = pFrame.args;
local text = ''
if args[1] ~= nil then
local i = 2
while args[i] ~= nil do
text = text .. mw.text.tag('br') .. args[i]
i = i + 1
end
text = mw.text.tag('td', {colspan="100", style="text-align:left;"}, args[1] .. text)
text = mw.text.tag('tr', {}, text)
end
local t = mw.text.tag('td', {colspan="100", style="text-align:left;background:#eeeeee;"}, "Tiedot ovat peräisin <i>[http://pxdata.stat.fi/PXWeb/pxweb/fi/StatFin/StatFin__vaa__kvaa/?rxid=2e71e7bb-f33f-4b22-bf59-24ebb2e5597c Tilastokeskuksesta]</i> sekä <i>[http://www.doria.fi/handle/10024/88401 Kansalliskirjaston julkaisuarkisto Doriasta]</i>")
text = text .. mw.text.tag('tr', {}, t)
return text
end
return p
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.