Diferencia entre revisiones de «Módulo:Ficha de persona»

Contenido eliminado Contenido añadido
Retiro parámetro para el escudo de armas, en consonancia con el resultado de Wikipedia:Encuestas/2022/Fichas biográficas
Filtro para mostrar u ocultar secciones según la ocupación indicada en Wikidata o el uso de los parámetros locales —en pruebas, de momento únicamente para la sección Información criminal—
Línea 79:
return x.time
end
 
 
function z.Ficha(frame)
Línea 368 ⟶ 369:
else
sitioWeb = propiedad('P856', {['valor-función'] = formatoURL, ['linkback']='sí', ['rangoMayor'] = 'sí'})
end
local victimas = argumento['víctimas']
if victimas then
local ocupacionesValidasVictimas = {'Q484188', 'Q14886050', 'Q26267537', 'Q1154323'} -- asesino en serie, terrorista, violador en serie y asesino relámpago
for k,v in pairs(ocupacionesValidasVictimas) do
local snak = propiedad('P106', {['valor-función'] = formatoId})
if snak and snak:match(v) then
victimas = argumento['víctimas']
break
else
victimas = ''
end
end
end
Línea 731 ⟶ 718:
{'', argumento['medallas'] },
},
}
{tipo='sección',
['titulo'] = 'Información criminal',
estilotitulo = estiloTituloSecciones,
{'[[Delito|Cargos criminales]]', argumento['cargos criminales'] or propiedad('P1399'), clase='plainlist'},
-- P2632 puede ser usado en alguno de los dos parámetros de abajo
{'[[Sentencia (derecho)|Condena]]', argumento['condena']},
{'Situación penal', argumento['situación penal']},
{'Víctimas', victimas},
},
 
if filterByOccupation( {
'Q931260', -- asesino
'Q484188', -- asesino en serie
'Q1154323', -- asesino relámpago
'Q2159907', -- criminal
'Q14886050', -- terrorista
'Q22962951', -- violador
'Q26267537', -- violador en serie
}, {
argumento['cargos criminales'],
argumento['condena'],
argumento['situación penal'],
argumento['víctimas'],
} ) then
local victimas = argumento['víctimas']
if victimas then
local ocupacionesValidasVictimas = {'Q484188', 'Q14886050', 'Q26267537', 'Q1154323'} -- asesino en serie, terrorista, violador en serie y asesino relámpago
for k,v in pairs(ocupacionesValidasVictimas) do
local snak = propiedad('P106', {['valor-función'] = formatoId})
if snak and snak:match(v) then
victimas = argumento['víctimas']
break
else
victimas = ''
end
end
end
table_merge(Ficha, {
{tipo='sección',
['titulo'] = 'Información criminal',
estilotitulo = estiloTituloSecciones,
{'[[Delito|Cargos criminales]]', argumento['cargos criminales'] or propiedad('P1399'), clase='plainlist'},
-- P2632 puede ser usado en alguno de los dos parámetros de abajo
{'[[Sentencia (derecho)|Condena]]', argumento['condena']},
{'Situación penal', argumento['situación penal']},
{'Víctimas', victimas},
}
})
end
table_merge(Ficha, {
-- Con etiqueta/datos como en las fichas de escritor y artista en vez de como en la ficha de persona
{'Firma', firma },
Línea 751 ⟶ 770:
--{'Fuente biográfica', argumento['fuentebiográfica']},
entidad = argumento['id'], -- para el enlace final a wikidata
})
}
 
categorias = {}
Línea 786 ⟶ 805:
return ModuloFicha.infobox(Ficha)
end
end
 
function table_merge(t1, t2)
for k,v in ipairs(t2) do
if type(k) == 'string' then
t1[k] = v
else
table.insert(t1, v)
end
end
return t1
end
 
function filterByOccupation( wikidataOccupations, localArguments )
if argumento['wikidata'] ~= 'no' then
local id = argumento['id'] or mw.wikibase.getEntityIdForCurrentPage()
if mw.wikibase.isValidEntityId( tostring( id ) ) then
local wd = mw.wikibase.getAllStatements(id, 'P106') -- Occupation
for k,v in pairs(wd) do
local oc = elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'id')
for i,j in pairs( wikidataOccupations ) do
if i == ec then
return true
end
end
end
end
end
for k,v in pairs(localArguments) do
if v and v ~= 'no' then
return true
end
end
return false
end