Modul:Sandlådan/Larske/Testmodul27
Utseende
Dokumentationen för denna modul kan skapas på Modul:Sandlådan/Larske/Testmodul27/dok
local p = {}
p.get_property_value_in_SI_unit = function(frame)
entityId = frame.args['entityId']
property = frame.args['property']
entity = mw.wikibase.getEntityObject(entityId)
if entity.claims[property][1]['mainsnak'].datavalue.type ~= 'quantity' then return 'FEL: Egenskapen har inte datatypen "Kvantitet".' end
if entity.claims[property][1]['mainsnak'].datavalue.value.unit == "1" then return tonumber(entity.claims[property][1]['mainsnak'].datavalue.value.amount) .. ' (Värdets enhet, "1", saknar "omvandling till SI-enhet".)' end
orig_unit = entity.claims[property][1]['mainsnak'].datavalue.value.unit:match('Q%d+')
orig_amount = entity.claims[property][1]['mainsnak'].datavalue.value.amount
orig_unit_entity = mw.wikibase.getEntityObject(orig_unit)
if orig_unit_entity.claims['P2370'] == nil then return tonumber(entity.claims[property][1]['mainsnak'].datavalue.value.amount) ..' ' .. mw.wikibase.getLabelByLang( orig_unit, 'sv' ) .. ' (Värdets enhet, "' .. mw.wikibase.getLabelByLang( orig_unit, 'sv' ) .. '", saknar "omvandling till SI-enhet".)' end
conversion = orig_unit_entity.claims['P2370'][1]['mainsnak'].datavalue.value
si_unit = conversion.unit:match('Q%d+')
si_amount = orig_amount * conversion.amount
return si_amount .. ' ' .. mw.wikibase.getLabelByLang( si_unit, 'sv' ) .. ' (konverterat från ' .. tonumber(orig_amount) .. ' ' .. mw.wikibase.getLabelByLang( orig_unit, 'sv' ) .. ' som är det som står i Wikidataobjektet)'
end
return p