Semantic MediaWikiDit bericht verdwijnt nadat alle relevante taken zijn afgerond.

Er is één onvoltooide of openstaande taak, die nodig is om het bijwerken van Semantic MediaWiki te voltooien. Een beheerder of gebruiker met voldoende rechten kan deze uitvoeren. Dit moet worden gedaan voordat nieuwe gegevens worden toegevoegd om tegenstrijdigheden te voorkomen.

Geen bewerkingssamenvatting
Geen bewerkingssamenvatting
Regel 123: Regel 123:
if awards == nil then return "" end
if awards == nil then return "" end
for i,v in ipairs(awards) do
for i,v in ipairs(awards) do
res = res .. send_to_template( awards, template, v )
res = res .. send_to_template( frame, template, v )
end
end
--  
--  

Versie van 30 dec 2024 11:30

Module:Award category




local p = {}

--[[
Ignore - generic test
{{#invoke:Award category |main |json={{#slot:ws-data|{{FULLPAGENAME}}}} }}

]]--
function p.main ( frame )
	local json = frame.args["json"]
	if json == nil or json == "" then
		return error("No JSON string found")
	end
	return json
end

--[[
Local helper function for p.store below
Stores each instance in a subobject
]]--
local function store_award_as_subobject( frame, args, awardCategory, awardEvent, award )
	if mw.smw then
		local recipient = args["Title"] or args["Book"] or args["Person"] or ""
		local subobject = {
			["Class"] = "Award recognition",
			["Belongs to award"] = award or "",
			["Belongs to award event"] = awardEvent or "",
			["Belongs to award category"] = awardCategory or "",
			["Has position"] = args["Rank"] or "",
			["Has recognition type"] = args["Type"] or "",
			["Has category"] = args["Categorie"] or "",
			["Has recipient"] = mw.text.split( recipient, ',', true ) or "",
			["Has description"] = args["Description"] or ""
		}
		local subobjectStore = mw.smw.subobject( subobject )
	end
	return
end

--[[
Store in SMW
Consider using Lua version of parser function instead

{{#invoke:Award category
|store
|json={{#slot:ws-data|{{FULLPAGENAME}} }}
}}

]]--
function p.store( frame )
	local jsonstr = frame.args["json"] or nil
	local page = frame.args["page"] or nil
	local id = frame.args["id"] or ""
	
	if jsonstr == nil or jsonstr == "" or page == nil or page == "" then
		--Fail silently. Do nothing
		return
	end
	local json = mw.text.jsonDecode( jsonstr )

	-- get awardEvent on the basis of the page nane	
	if page ~= nil then
		local pageParts = mw.text.split( page, "/" )
		table.remove( pageParts );
		awardEvent = table.concat( pageParts, "/" )
	end

	local award = json["Award"] or ""
	local awardEvent = json["Award event"] or awardEvent
	
	local test = json["Name"]
	
	-- #set:
	if mw.smw then
		local setTable = {
			-- Dutch-language label
			["Klasse"] = "Prijscategorie",
			["Has ID"] = id,
			["Title"] = json["Name"] or "",
			["Has name"] = json["Name"] or "",
			["Has description"] = json["Description"] or "",
			["Belongs to award"] = award or "",
			["Belongs to award event"] = awardEvent or ""
		}
		local setResult = mw.smw.set( setTable )
	end

	-- #subobjects
	local awardInstances = json["Awards"] or nil
	if awardInstances ~= nil then
		local awardCategory = page
		for i, v in ipairs( awardInstances ) do
			local subobjectStore = store_award_as_subobject( frame, v, awardCategory, awardEvent, award )
		end
	end

	--ternary
	--local sign = if x < 0 then 'negative' else 'non-negative' end
	return "test"
end

--[[
use a template to format a (Lua) table
]]--
local function send_to_template( frame, templateName, argsTable )
	if templateName ~= nil and argsTable ~= nil then
		return frame:expandTemplate{ title = templateName, args = argsTable }
	else
		return ""
	end
end

--[[
]]--
function p.show_award_recognitions( frame )
	local jsonstr = frame.args["json"] or nil
	local page = frame.args["page"] or page
	local template = frame.args["template"] or nil
	
	res = ""
	if jsonstr ~= nil then
		local json = mw.text.jsonDecode( jsonstr )
		local awards = json["Awards"] or nil
		if awards == nil then return "" end
		for i,v in ipairs(awards) do
			res = res .. send_to_template( frame, template, v )
		end
		-- 
		--etc
	end
	return res
end

return p