Modulo:Progetti interessati: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m semplificato getSpanGrade |
aggiunta tabella projects, aggiornata nomenclatura |
||
Riga 11:
-- Variabili globali
local gradeParams = { 'accuratezza', 'scrittura', 'fonti', 'immagini' }
local validGrades = { a = true, b = true, c = true, d = true, e = true }
-------------------------------------------------------------------------------
Riga 26 ⟶ 23:
return title and title.exists
end
local function lowestGrade(args)
Riga 56 ⟶ 32:
local function parseArgs(args)
local errcat = {}
local projects = {}
-- controllo valutazioni
Riga 76 ⟶ 45:
args.data = args.data and args.data:lower() or nil
-- popola la tabella projects
if args.progetto then
for _, param in ipairs(
if args[param] then
local
mw.language.getContentLanguage():ucfirst(args[param])
if titleExists('Progetto:' .. name) then
table.insert(errcat, '[[Categoria:Errori di compilazione del template Monitoraggio]]')
end
local project = {
name = name,
subpage = mw.title.new('Progetto:' .. name).subpageText,
}
table.insert(projects, project)
else
table.insert(errcat, '[[Categoria:Pagine con template Monitoraggio con progetto non esistente]]')
Riga 99 ⟶ 71:
end
return args, projects, table.concat(errcat)
end
Riga 160 ⟶ 132:
end
local function getCategories(livello, args, projects)
local ret = {}
local cat
Riga 170 ⟶ 142:
table.insert(ret, cat)
for _,
cat = string.format('[[Categoria:Voci monitorate Progetto %s]]', project.name)
table.insert(ret, cat)
end
Riga 180 ⟶ 150:
-- per la "Situazione monitoraggio per parametro" di [[Progetto:Qualità/Monitoraggio voci/Tabella]]
cat = string.format('[[Categoria:Voci monitorate - %s %s]]',
gradeParam,
table.insert(ret, cat)
-- categorie per il [[template:Tabella monitoraggio]]
for _,
cat = string.format('Categoria:Progetto:%s/Tabella monitoraggio automatico - %s %s',
project.name, gradeParam, args[gradeParam] or 'nc')
if titleExists(cat) then
table.insert(ret, '[[' .. cat .. ']]')
end
end
Riga 196 ⟶ 164:
-- categorie per il [[template:Tabella monitoraggio]]
for _,
cat = string.format('Categoria:Voci monitorate Progetto %s - %s',
project.name, suffix)
if titleExists(cat) then
table.insert(ret, '[[' .. cat .. ']]')
end
end
Riga 230 ⟶ 193:
local ProjectsTable = {}
function ProjectsTable:new(
local self = {}
setmetatable(self, { __index = ProjectsTable })
self.
return self
end
Riga 246 ⟶ 209:
local tableNode = mw.html.create('table'):css(tableStyle)
local text = 'La voce <b>' .. mw.title.getCurrentTitle().text .. '</b> rientra tra gli argomenti trattati' ..
(#self.projects > 1 and " dai seguenti [[Wikipedia:Progetto|progetti]]:" or
" dal seguente [[Wikipedia:Progetto|progetto]]:")
tableNode
Riga 278 ⟶ 234:
-- progetti
for _,
tableNode:tag('tr')
:css('background-color', 'white')
:tag('td')
:
:wikitext(self:getIconProject(project))
:done()
:
:wikitext(string.format("'''[[Progetto:%s|%s]]'''", project.name, project.subpage))
:done()
:wikitext('<div class="plainlinks" style="padding-left: 5px">' .. self:getWlinkProject(project) .. '</div>')
:done()
end
Riga 302 ⟶ 256:
end
function ProjectsTable:getIconProject(
local icon = mw.getCurrentFrame():expandTemplate {
title = 'Icona argomento',
args = {
}
icon = icon == '' and 'Crystal Clear app ksirtet.png' or icon
Riga 312 ⟶ 266:
end
function ProjectsTable:getWlinkProject(
local links = {}
local url = mw.title.new('Discussioni progetto:' .. project.name):fullUrl( { action = 'edit', section = 'new' } )
table.insert(links, string.format('[[Discussioni progetto:%s|leggi discussioni]]', project.name))
table.insert(links, string.format('[%s nuova discussione]', url))
table.insert(links, string.format('[[Progetto:%s/Monitoraggio voci|monitoraggio]]', project.name))
return string.format('<small>(%s)</small>', table.concat(links, ' <b>·</b> '))
end
-------------------------------------------------------------------------------
-- classe
-------------------------------------------------------------------------------
local
function
local self = {}
setmetatable(self, { __index =
self.livello = livello
self.args = args
Riga 338 ⟶ 291:
end
function
local tableStyle = {
margin = '0 10% 5px 10%',
Riga 380 ⟶ 333:
end
function
local url = mw.title.getCurrentTitle():fullUrl( { action = 'edit' } )
local trNode = mw.html.create('tr')
Riga 401 ⟶ 354:
end
function
local spanStyle = {
['font-weight'] = 'bold',
Riga 428 ⟶ 381:
end
function
local ret
Riga 441 ⟶ 394:
end
function
local trNode = mw.html.create('tr')
local descr = cfg[param][self.args[param] or 'nc'] .. ' ' .. cfg[param].help
Riga 477 ⟶ 430:
-- Entry-point per {{#invoke:monitoraggio|categorie}}
function p.categorie(frame)
local args, projects = parseArgs(getArgs(frame))
local livello = getLivello(args)
local categories = getCategories(livello, args, projects)
return args.debug and ( table.concat(categories, '<br />'):gsub('%[%[', '[[:') ) .. '<br />' or
table.concat(categories)
Riga 493 ⟶ 446:
-- Entry-point per il template {{Monitoraggio}}
function p.main(frame)
local args, projects, errorCat = parseArgs(getArgs(frame, {parentOnly = true}))
local livello = getLivello(args)
local categories = mw.title.getCurrentTitle().namespace == 1 and
return ProjectsTable:new(
categories
end
|