Modul:Faktamall biografi WD/Aux
Utseende
Dokumentationen för denna modul kan skapas på Modul:Faktamall biografi WD/Aux/dok
local wikidata = require('Modul:Wikidata2').formatStatementsFromLua
local datum = require('Modul:Wikidatadatum').datum
function test(item, claim)
local f = false
for k, v in pairs(claim) do
if v.item == item then
return true
end
end
return false
end
function test2(item, claim)
local f = false
for k, v in pairs(claim) do
if v == item then
return true
end
end
return false
end
function komprimera(a, c, yrke)
if not a or #a == 0 then
return ''
end
if not test(yrke, a) then
return a
end
local b = {}
for i, j in pairs(a) do
if not test2(j.item, c) then
table.insert(b, j)
end
end
return b
end
p = {}
function p.sysselsattning(frame)
local args = frame:getParent().args
local qid = args.qid or args.wdid or ''
local avoid_activity = frame.args.avoid_activity
local entity = {}
if qid == '' then
entity = mw.wikibase.getEntityObject()
else
entity = mw.wikibase.getEntityObject( qid )
end
local a = wikidata({entity = entity, property = 'P106', sortingproperty='P1545', sortbyvalue = 'ascending', firstversalisering = 'ucfirst' , noref = 'noimport', raw = 'true'})
if not a or #a == 0 then
return ''
end
a = komprimera(a, {'Q482980', 'Q15980158', 'Q3745071', 'Q18844224', 'Q6625963'}, 'Q36180') -- författare
a = komprimera(a, {'Q2998308', 'Q752129', 'Q16742203', 'Q15143181', 'Q11063'}, 'Q169470') -- fysiker
a = komprimera(a, {'Q948329', 'Q10800557', 'Q2259451', 'Q10798782'}, 'Q33999') -- skådespelare
local q = {}
local felkat = ''
for i, j in pairs(a) do
if avoid_activity and j.item and wikidata({entity = mw.wikibase.getEntityObject(j.item), property = 'P3095'}) ~= nil then
felkat = '[[Kategori:Wikipedia:Sidor med Faktamall biografi WD där Wikidataobjektet har ett värde för P106 som har egenskapen P3095]]'
else
table.insert(q, j.value .. (j.ref or ''))
end
end
return table.concat(q, ', ') .. felkat
end
return p