Modulo:Elezioni/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 5:
local lcella = 60
local tcella = '<th width="'..lcella..'px">Voti</th><th width="'..lcella..'px">%</th>'
local function grafico(ee,ee2,el,vt,tt,b,el2,vt2,tt2)
local w,h = 120,120
local data= {}
data[1] = { x = el-vt, color = '#eee' }
data[2] = { x = vt-tt, color = '#aaa' }
if (ee>-1) then
data[3] = { x = ee, color = ee2 }
data[4] = { x = tt-ee, color = '#555' }
else
data[3] = { x = tt, color = '#555' }
end
local dati = { version = 1, name = "grafico",
width = math.floor(w/3),
height = math.floor(h/3),
data = { { name = "table", values = data, transform = { { type = "pie", value = "data.x" } } } },
marks = { { type = "arc", from = { data = "table"},
properties = {
enter = {
x = { field = "data.x", group = "width", mult = 0.5 },
y = { field = "data.x", group = "height", mult = 0.5 },
startAngle = { field = "startAngle"}, endAngle = {field = "endAngle"},
innerRadius = {value = 0}, outerRadius = {value = w/2 - 5},
stroke = {value = "#fff"},
},
update = { fill = { field = "data.color"} }, hover = { fill = {value = "pink"} }
},
} }
}▼
dati = mw.text.jsonEncode(dati, false)
return frame:extensionTag('graph', dati)
end
local function vrg(a,b,c)
Riga 115 ⟶ 147:
local tot,tot2 = 0,0
local dati = {}
ss = '<table class="wikitable" style="text-align:right;margin:10px auto"><caption>'..titolo..'</caption><tr><th rowspan=2>Candidato</th><th rowspan=2 colspan=2>Partito</th><th colspan=2>'▼
if (ball>0) then ss= ss..'Primo turno</th><th colspan=2>Ballottaggio' else ss = ss..'Risultati' end▼
ss = ss..'</th></tr><tr>'..tcella..((ball>0) and tcella or '')..'</tr>'▼
num = 1
Riga 125 ⟶ 153:
dati[num] = {
n = args['cand'..num], v = tonumber(args['voti'..num]), b = tonumber(args['ball'..num] or -1),
p = args['part'..num] or '—', c = colora(args['partl'..num] or '',args['col'..num])
}
tot = tot+dati[num].v
Riga 138 ⟶ 166:
err = verifica(err,elettori,votanti,tot,ball,elettori2,votanti2,tot2)
if (err == '-') then
▲
▲
for i=1,num do
if (i==1) then
ss = ss..string.format('<tr><td align=left><b>%s</b></td><td style="width:0;background:%s"> </td><td align=left>%s</td>', dati[i].n,
if (ball>0) then
ss = ss..vrg(dati[i].v,tot,0)
Riga 149 ⟶ 182:
ss = ss..'</tr>'
else
ss = ss..string.format('<tr><td align=left>%s</td><td style="width:0;background:%s"> </td><td align=left>%s</td>', dati[i].n,
ss = ss.. vrg(dati[i].v,tot,0)
if (dati[i].b>-1) then ss = ss..vrg(dati[i].b,tot2,0) end
Riga 156 ⟶ 189:
end
ss = ss..fine(elettori,votanti,tot,ball,elettori2,votanti2,tot2,3,5,1)
ss = ss..'</td></tr></table>'
return ss
else
Riga 189 ⟶ 223:
local tot,tot2 = 0,0
local dati = {}
ss = '<table class="wikitable" style="text-align:right;margin:10px auto"><caption>'..titolo..'</caption><tr><th rowspan=2>Candidato</th><th rowspan=2 colspan=2>Partito</th><th colspan=2>'▼
if (ball>0) then ss= ss..'Primo turno</th><th colspan=2>Ballottaggio' else ss = ss..'Risultati' end▼
ss = ss..'</th></tr><tr>'..tcella..((ball>0) and tcella or '')..'</tr>'▼
num = 1
Riga 199 ⟶ 229:
dati[num] = {
n = args['cand'..num], v = tonumber(args['voti'..num]), b = tonumber(args['ball'..num] or -1),
p = args['part'..num] or '—', c = colora(args['partl'..num] or '',args['col'..num])
}
else
Riga 211 ⟶ 241:
if (eletti == 0) then err = err..' - non indicati eletti della votazione' end
if (err == '-') then
ss = '<table cellpadding=0 cellspacing=0 style="border-collapse:collapse;margin:10px auto"><caption><b>'..titolo..'</b><tr style="vertical-align:top"><td>'
▲
▲
for i=1,num do
if (i<=eletti) then
ss = ss..string.format('<tr><td align=left><b>%s</b></td><td style="width:0;background:%s"> </td><td align=left>%s</td>', dati[i].n,
if (ball>0) then
ss = ss..vrg(dati[i].v,votanti,0)
Riga 222 ⟶ 257:
ss =ss..'</tr>'
else
ss = ss..string.format('<tr><td align=left>%s</td><td style="width:0;background:%s"> </td><td align=left>%s</td>', dati[i].n,
ss = ss..vrg(dati[i].v,votanti,0)
if (dati[i].b>-1) then ss = ss..vrg(dati[i].b,votanti2,0) end
Riga 229 ⟶ 264:
end
ss = ss..fine(elettori,votanti,tot,ball,elettori2,votanti2,tot2,3,5,0)
ss = ss..'</td></tr></table>'
return ss
else
Riga 262 ⟶ 298:
local dati = {}
▲ ss = '<table cellpadding=0 cellspacing=0 style="border-collapse:collapse;margin:10px auto"><caption><b>'..titolo..'</b><tr style="vertical-align:top"><td>'
ss = ss..'<table class="wikitable" style="text-align:right"><tr><th rowspan=2 colspan=2>Partito</th><th colspan=2>'▼
if (ball>0) then ss= ss..'Primo turno</th><th colspan=2>Ballottaggio' else ss = ss..'Risultati' end▼
ss = ss..'</th><th width="'..lcella..'px" rowspan=2>Seggi'▼
ss = ss..'</th></tr><tr>'..tcella..((ball>0) and tcella or '')..'</tr>'▼
num = 1
while (args['part'..num]) do
Riga 273 ⟶ 303:
dati[num] = {
p = args['part'..num], v = tonumber(args['voti'..num]), b = tonumber(args['ball'..num] or -1),
c = colora(args['partl'..num] or '',args['col'..num]), s = args['seggi'..num] or ''
}
tot = tot+dati[num].v
Riga 286 ⟶ 316:
err = verifica(err,elettori,votanti,tot,ball,elettori2,votanti2,tot2)
if (err == '-') then
ss = '<table cellpadding=0 cellspacing=0 style="border-collapse:collapse;margin:10px auto"><caption><b>'..titolo..'</b><tr style="vertical-align:top"><td>'
ss = ss..grafico(-1,elettori,votanti,tot,ball,elettori2,votanti2,tot2)
▲
▲
for i=1,num do
ss = ss..string.format('<tr><td style="width:0;background:%s"></td><td align=left>%s</td>',
ss = ss..vrg(dati[i].v,tot,0)
if (ball>0) then
Riga 298 ⟶ 335:
num = 1
while (args['el'..num]) do
ss = ss..string.format('<tr><td style="background:%s"> </td><td>%s</td></tr>'
num = num+1
end
|