יחידה:אישיות ביטחונית
ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:אישיות ביטחונית/תיעוד
local p ={}
local function getStatmentQIds(entityId, pId)
local res = {}
local statements = mw.wikibase.getBestStatements( entityId, pId )
for _, v in pairs(statements) do
local vId = v and v.mainsnak and v.mainsnak.datavalue and v.mainsnak.datavalue.value.id
if vId then
res[vId] = 1
end
end
return res
end
-- return classification for the page as policeman, armyman or none
-- it uses either parameter, or P106 or P241 in this order.
function p.class(frame)
local templateArgs = frame:getParent().args
local class = templateArgs['סיווג']
if class then
return class
end
local entityId = templateArgs['qid'] or mw.wikibase.getEntityIdForCurrentPage()
if entityId == nil then
return
end
local occupation = getStatmentQIds( entityId, 'P106' )
local IsArmyPerson = occupation['Q189290'] or occupation['Q47064']
local IsPolicePerson = occupation['Q384593'] or occupation['Q361593']
if IsArmyPerson==false and IsPolicePerson==false then
local branch = getStatmentQIds( entityId, 'P241' )
for k, _ in pairs(branch) do
local UnitInstance = getStatmentQIds(k, 'P31')
IsPolicePerson = UnitInstance['Q35535']
IsArmyPerson = UnitInstance['Q61883'] or UnitInstance['Q4508'] or UnitInstance['Q37726'] or UnitInstance['Q772547']
end
end
if IsArmyPerson and not IsPolicePerson then
return 'חייל'
end
if not IsArmyPerson and IsPolicePerson then
return 'שוטר'
end
-- in case of missing or ambig classification return none
end
return p