Modul:RoadStatus
Implementează {{Tabel stadiu construcție}}
local getArgs = require('Modul:Arguments').getArgs
local TableTools = require('Modul:TableTools')
local PHASES = {
['SF'] = { title = 'Studiu', culoareText = '000', culoareBg = '4fc3f7' },
['PT'] = { title = 'Proiect', culoareText = '000', culoareBg = '9575cd' },
['EX'] = { title = 'Execuție', culoareText = '000', culoareBg = 'e57373' }
}
local STAGES = {
['LICITARE'] = { title = 'în licitare', culoareText = '000', culoareBg = 'FFC107' },
['EVALUARE'] = { title = 'în evaluare', culoareText = '000', culoareBg = 'ff9800' },
['CONTESTAT'] = { title = 'în contestații', culoareText = '000', culoareBg = 'ff5722' },
['ATRIBUIT'] = { title = 'atribuit', culoareText = '000', culoareBg = 'ff7961' },
['SEMNAT'] = { title = 'semnat', culoareText = '000', culoareBg = '673ab7' },
['LUCRU'] = { title = 'în lucru', culoareText = '000', culoareBg = '00bcd4' },
['FINALIZAT'] = { title = 'finalizat', culoareText = '000', culoareBg = '4CAF50' },
['NECUNOSCUT'] = { title = 'necunoscut', culoareText = '000', culoareBg = 'f5f5f5' },
}
local p = {}
local function appendRow(tbl, row)
local tblrow = tbl:tag('tr')
local tblCellTronson = tblrow:tag('td')
tblCellTronson:wikitext(row.tronson)
local tblCellTronson = tblrow:tag('td')
tblCellTronson:wikitext(row.lungime)
local tblCellTronson = tblrow:tag('td')
tblCellTronson:wikitext(row.constructor)
local tblCellTronson = tblrow:tag('td')
local phase = PHASES[mw.ustring.upper(row.faza or 'EX')] or PHASES['EX']
tblCellTronson:css('background-color', '#' .. phase.culoareBg)
tblCellTronson:css('color', '#' .. phase.culoareText)
tblCellTronson:wikitext(phase.title)
local tblCellTronson = tblrow:tag('td')
local stage = STAGES[mw.ustring.upper(row.stadiu or 'NECUNOSCUT')] or STAGES['NECUNOSCUT']
tblCellTronson:css('background-color', '#' .. stage.culoareBg)
tblCellTronson:css('color', '#' .. stage.culoareText)
tblCellTronson:wikitext(stage.title)
end
local function displayTable(rows, tableconfig)
local tbl = mw.html.create('table')
:addClass('wikitable')
tbl:tag('tr')
:tag('th'):wikitext('Tronson'):done()
:tag('th'):wikitext('Lungime'):done()
:tag('th'):wikitext('Antreprenor'):done()
:tag('th'):wikitext('Fază'):done()
:tag('th'):wikitext('Statut'):done()
if tableconfig.float then tbl:css('float', tableconfig.float) end
for _,eachRow in ipairs(rows) do
appendRow(tbl, eachRow)
end
return tostring(tbl)
end
p.fromArgs = function(args)
local rows = TableTools.compressSparseArray(TableTools.numData(args))
local tableconfig = { float = args['poziție'] }
return displayTable(rows, tableconfig)
end
p.fromFrame = function(frame)
local args = getArgs(frame)
return p.fromArgs(args)
end
return p