Module:NPVIC status

local p = {}

function getstates(frame) local states = frame:expandTemplate{ title = 'section transclude', args = { frame.args[1] } } if states == '' then states = frame.args[1] end return states end

function p.EVs(frame) local states = getstates(frame) if not states then return frame:expandTemplate{ title = 'error', args = { 'Value not available when editing this section in isolation.' } } else local total = 0 for state in mw.ustring.gmatch( states, "%a%a" ) do			seats = frame:expandTemplate{ title = 'USHRseats', args = { state } } if state == 'DC' then seats = 1 end if type(tonumber(seats)) == 'nil' then total = error("Unrecognized state") break else total = total + seats + 2 end end return total end end

function p.percent(frame) local EVs = p.EVs(frame) denom = 538 places = 1 if frame.args[2] then denom = frame.args[2] end if frame.args[3] then places = frame.args[3] end percent = frame:expandTemplate{ title = 'percent', args = { EVs, denom, places} } return percent end

function p.states(frame) local states = getstates(frame) local total = 0 for state in mw.ustring.gmatch( states, "%a%a" ) do		if state ~= 'DC' then total = total + 1 end end if total == 0 then return frame:expandTemplate{ title = 'error', args = { 'Value not available when editing this section in isolation.' } } else if frame.args[2] == 'spell' then total = frame:expandTemplate{ title = 'spellnum per MOS', args = { total } } end return total end end

function p.overlays(frame) local states = getstates(frame) local size = frame.args['size'] or '325px' if frame.args[1] == 'passed' then color = 'green' elseif frame.args[1] == 'pending' then color = 'yellow' end local overlays = '' for state in mw.ustring.gmatch( states, "%a%a" ) do		state_overlay = ' ' overlays = overlays .. state_overlay end return overlays end

function p.signatories(frame) local states = frame:expandTemplate{ title = 'section transclude', args = { 'passed' } } local signatories = '' for state in mw.ustring.gmatch( states, "%a%a" ) do		state_name = frame:expandTemplate{ title = 'US State Abbrev', args = { state } } local link_target = state_name if state == 'DC' then link_target = 'Washington, D.C.' elseif state == 'GA' then link_target = 'Georgia (U.S. state)' elseif state == 'NY' then link_target = 'New York (state)' elseif state == 'WA' then link_target = 'Washington (state)' end signatories = signatories .. '\n* ' .. ' ' .. state_name .. '' end return signatories end

--function p.progress_bar(frame) --	local --	--end

return p