Modulo:Diocesi/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ripensandoci non serve
aggiungo categoria di errore
Riga 8:
local getArgs = require('Modulo:Arguments').getArgs
local mWikidata = require('Modulo:Wikidata')
local error_category = '[[Categoria:Errori di compilazione del template Diocesi]]'
-- 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 71 ⟶ 72:
--
-- @return {string}
local function getIstanzaId(anno_sconsacr)
local diocesiId, claims, anno_inizio_st, ret
diocesiId = mWikidata._getProperty({ 'P708', n = 1, formatting = 'raw' })
anno_sconsacr = tonumber(anno_sconsacr)
-- in futuro il modulo:Wikidata restituirà nil per "nessun valore" e "valore sconosciuto"
if diocesiId and mw.wikibase.isValidEntityId(diocesiId) then
claims = mWikidata._getClaims('P31', { from = diocesiId })
ret = claims[1] and mWikidata._formatStatement(claimclaims[1], { formatting = 'raw' })
for _, claim in ipairs(claims) do
-- Sede titolare è sovrascritto se ci sono altre dichiarazioni e se la diocesi è diventata
ret = mWikidata._formatStatement(claim, { formatting = 'raw' })
-- tale dopo l'anno di sconsacrazione della chiesa, altrimenti genera una categoria di errore
-- ignora l'elemento Sede titolare e tenta di sovrascriverlo
if ret ~== 'Q15217609' thenand breakclaims[2] endthen
anno_inizio_st = mWikidata._formatQualifiers(claims[1], 'P580') or ''
anno_inizio_st = tonumber(anno_inizio_st)
if anno_sconsacr and anno_inizio_st and anno_sconsacr < anno_inizio_st then
ret = mWikidata._formatStatement(claims[2], { formatting = 'raw' })
end
end
end
Line 119 ⟶ 126:
ret = '[[Diocesi]]'
else
local istanzaId = getIstanzaId(args.AnnoSconsacr)
if istanzaId and cfg[istanzaId] then
ret = cfg[istanzaId][2] and
Line 136 ⟶ 143:
 
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