Module:Wikidata inventory number

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules

Documentation for this module may be created at Module:Wikidata inventory number/doc

Code

local p = {}

--=========
local getArgs              = require('Module:Arguments').getArgs
local formatStatementsE    = require('Module:Wikidata')._formatStatementsE
local inventory_number_pid = "P217"
local collection_pid       = "P195"

local inventory_template =	{
								["Louvre"]             = "Louvre number",
								["Q3044751"]           = "Louvre number",
								["Department of Near Eastern Antiquities of the Louvre"] = "Louvre number",
								["Q3044749"]           = "Louvre number",
								["Department of Egyptian Antiquities of the Louvre"] = "Louvre number",
								["Muséum de Toulouse"] = "Invno MHNT"
							};
--========
function p._get_collection_qid( qid )
	local entity     = mw.wikibase.getEntityObject(qid)
	if not entity then return nil end
	return entity['claims'][collection_pid][1]['mainsnak']['datavalue']['value']['id']
end

function p._get_inventory_number( qid )
	local entity     = mw.wikibase.getEntityObject(qid)
	if not entity then return nil end
	return entity:formatPropertyValues( inventory_number_pid ).value
end
function p.get_inventory_number( frame )
	local qid = getArgs(frame)["qid"]
	return p._get_inventory_number( qid )
end
----
function p.display_inventory_number( frame )
	local qid = getArgs(frame)["qid"]
	local collection_qid   = p._get_collection_qid(qid)
	local accession_number = p._get_inventory_number( qid )
	if inventory_template[collection_qid] ~= nil then
		return frame:expandTemplate{ title = inventory_template[collection_qid], args = { accession_number } }
	end
	return accession_number 
end
--========
return p