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.

  1. 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:
  2. 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.
  3. 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.
  4. 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.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.