Modul:Diagramm: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
function robusttrim(s) | function robusttrim(s) | ||
if s==nil then return '' end | if s==nil then return '' end | ||
− | local p= | + | local p=mw.ustring.gsub(s,'%[%[SMW::on%]%]','') |
− | p= | + | p=mw.ustring.gsub(p,'%[%[SMW::off%]%]','') |
return mw.text.trim(p) | return mw.text.trim(p) | ||
end | end | ||
− | function bar( | + | function pre(number) |
− | local perc=100*val/sum | + | return '[[Datei:Bewertung'..number..'.svg|30x30px|link=]]' |
− | return '<tr><td>'.. | + | end |
+ | |||
+ | function bar(pref,val,sum) | ||
+ | local perc=0 | ||
+ | if sum>0 then | ||
+ | perc=100*val/sum | ||
+ | end | ||
+ | return '<tr><td style="width:30px">'..pref..'</td><td style="width:calc(100%-30px)"><div style="background-color:#ffcc00;width:'..perc..'%;"> </div></td></tr>' | ||
end | end | ||
Zeile 20: | Zeile 27: | ||
local a5=robusttrim(frame.args[5]) | local a5=robusttrim(frame.args[5]) | ||
local a6=robusttrim(frame.args[6]) | local a6=robusttrim(frame.args[6]) | ||
+ | local ct=robusttrim(frame.args[7]) | ||
local sum=a1+a2+a3+a4+a5+a6 | local sum=a1+a2+a3+a4+a5+a6 | ||
− | return '<table>'..bar( | + | if sum==0 then |
+ | return '' | ||
+ | end | ||
+ | local avg=math.floor(10*(a1*1+a2*2+a3*3+a4*4+a5*5+a6*6)/sum)/10 | ||
+ | return '<table style="width:100%;"><tr><th colspan="2" style="font-size:1.2em">Note '..avg..'</th></tr>'..bar(pre(1),a1,sum)..bar(pre(2),a2,sum)..bar(pre(3),a3,sum)..bar(pre(4),a4,sum)..bar(pre(5),a5,sum)..bar(pre(6),a6,sum)..'</table><br/>'..sum..' Bewertungen<br/>'..ct..' Teilnehmer' | ||
end | end | ||
return p | return p |
Aktuelle Version vom 17. Mai 2021, 14:41 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Diagramm/Doku erstellt werden
local p = {} function robusttrim(s) if s==nil then return '' end local p=mw.ustring.gsub(s,'%[%[SMW::on%]%]','') p=mw.ustring.gsub(p,'%[%[SMW::off%]%]','') return mw.text.trim(p) end function pre(number) return '[[Datei:Bewertung'..number..'.svg|30x30px|link=]]' end function bar(pref,val,sum) local perc=0 if sum>0 then perc=100*val/sum end return '<tr><td style="width:30px">'..pref..'</td><td style="width:calc(100%-30px)"><div style="background-color:#ffcc00;width:'..perc..'%;"> </div></td></tr>' end function p.Con(frame) local a1=robusttrim(frame.args[1]) local a2=robusttrim(frame.args[2]) local a3=robusttrim(frame.args[3]) local a4=robusttrim(frame.args[4]) local a5=robusttrim(frame.args[5]) local a6=robusttrim(frame.args[6]) local ct=robusttrim(frame.args[7]) local sum=a1+a2+a3+a4+a5+a6 if sum==0 then return '' end local avg=math.floor(10*(a1*1+a2*2+a3*3+a4*4+a5*5+a6*6)/sum)/10 return '<table style="width:100%;"><tr><th colspan="2" style="font-size:1.2em">Note '..avg..'</th></tr>'..bar(pre(1),a1,sum)..bar(pre(2),a2,sum)..bar(pre(3),a3,sum)..bar(pre(4),a4,sum)..bar(pre(5),a5,sum)..bar(pre(6),a6,sum)..'</table><br/>'..sum..' Bewertungen<br/>'..ct..' Teilnehmer' end return p