Modulo:Diocesi/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
creazione sandbox
 
Omega Bot (discussione | contributi)
m Bot: rimuovo no globals obsoleto
 
(10 versioni intermedie di un altro utente non mostrate)
Riga 4:
]]--
 
require('Modulo:No globalsstrict')
 
local getArgs = require('Modulo:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')
local error_category = '[[Categoria:Errori di compilazione del template Edificio religioso]]'
-- La proprietà P708 verrà letta solo se il suo valore (di tipo elemento) è "istanza di" uno di questi elementi.
-- Il formato di ogni riga è:
Line 37 ⟶ 38:
Q3732793 = { 'Esarcato patriarcale' },
Q15150553 = { 'Ordinariato personale' },
Q15217609 = { 'Sede titolare' },
Q18917976 = { 'Diocesi' },
Q20060955 = { 'Diocesi' },
Riga 72:
--
-- @return {string}
local function getIstanzaId(anno_sconsacr)
local diocesiId, ret
diocesiId = mWikidata._getProperty({ 'P708', n = 1, formatting = 'raw' })
-- in futuro il modulo:Wikidata restituirà nil per "nessun valore" e "valore sconosciuto"
if diocesiId and mw.wikibase.isValidEntityId(diocesiId) then
local claims = {}
ret = mWikidata._getProperty({ 'P31', from = diocesiId, n = 1, formatting = 'raw' })
for _, claim in ipairs(mw.wikibase.getAllStatements(diocesiId, 'P31')) do
if claim.rank ~= 'deprecated' then
table.insert(claims, claim)
end
end
ret = claims[1] and mWikidata._formatStatement(claims[1], { formatting = 'raw' })
-- Sede titolare è sovrascritto se ci sono altre dichiarazioni e se la diocesi è diventata
-- tale dopo l'anno di sconsacrazione della chiesa, altrimenti genera una categoria di errore
if ret == 'Q15217609' and claims[2] then
anno_sconsacr = anno_sconsacr and tonumber(anno_sconsacr:match('%d%d%d%d?'))
local anno_inizio_st = mWikidata._formatQualifiers(claims[1], 'P580') or ''
anno_inizio_st = tonumber(anno_inizio_st:match('%d%d%d%d?'))
if anno_sconsacr and anno_inizio_st and anno_sconsacr <= anno_inizio_st then
ret = mWikidata._getProperty_formatStatement({ 'P31'claims[2], from = diocesiId, n = 1,{ formatting = 'raw' })
end
end
end
return ret
Line 115 ⟶ 131:
ret = '[[Diocesi]]'
else
local istanzaId = getIstanzaId(args.AnnoSconsacr)
if istanzaId and cfg[istanzaId] then
ret = cfg[istanzaId][2] and
Line 132 ⟶ 148:
 
userval = args.Diocesi
istanzaId = getIstanzaId(args.AnnoSconsacr)
if istanzaId and cfg[istanzaId] then
wdval = getDiocesiWlink(cfg[istanzaId][1])
end
 
if mw.title.getCurrentTitle().namespace == 0 andthen
if (userval or wdval) then
cat = getWikidataCategory(userval, wdval)
elseif istanzaId == 'Q15217609' then
cat = error_category
end
end