Module:PreviousPoll

local p = {} local paramtest = require('Module:Paramtest') local default_to = paramtest.default_to local has_content = paramtest.has_content function p.display_results( frame ) local parameters = frame:getParent.args local title = parameters['title'] or 'TITLE' local startDate = parameters['start'] or 'START DATE' local endDate = parameters['end'] or 'END DATE' local votesContainer = mw.html.create('div'):done local MAX_ROWS = 20 local totalvotes = 0 local topVote = 0 for i=1,MAX_ROWS,1 do		if has_content(parameters['option'..i]) then local votes = tonumber(default_to(parameters['votes'..i], '0')) totalvotes = totalvotes + votes if(votes > topVote) then topVote = votes end end end for i=1,MAX_ROWS,1 do		local optionText = parameters['option'..i]		if has_content(optionText) then local votes = tonumber(default_to(parameters['votes'..i], '0')) votesContainer:node(p._make_row(optionText,votes,totalvotes,votes >= topVote)) end end local table_string = mw.html.create('') :tag('h3'):wikitext(title):css({ ["border-bottom"]="1px solid #B2AF9C", ["text-align"]="center" }):done :tag('div'):addClass('ajax-poll') :tag('div'):addClass('header'):wikitext(title):done :node(votesContainer) :tag('div'):wikitext(" Start Date: "..startDate..				" End Date: "..endDate..				" Total Votes: "..totalvotes):done :done :done return tostring(table_string) end function p._make_row(pText, pVotes, pTotal, pWon) local function cleanDecimal(pNum) return math.floor(pNum * 100) / 100 end local percent = cleanDecimal(pVotes / pTotal * 100) local percentText = '' if percent ~= 0 then percentText = ' - '..percent..'% of all votes' end if pWon then pText = ' ☆ '..pText end local total_row = mw.html.create('div'):addClass('pollAnswer') :tag('div'):addClass('pollAnswerName'):wikitext(pText):done :tag('div'):addClass('pollAnswerVotes') :tag('span'):wikitext(pVotes..percentText):done :tag('div'):css({ ['width'] = percent..'%' }):done :done :done return total_row end function p._empty(value) return not (value == nil or value == "") end return p