Module:SetDateRange: Difference between revisions

From Seven Sages of Rome
No edit summary
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {};  
local p = {};  
local function isStringSet(s)
return s ~= nil and s ~= ''
end


p.set = function( f )
p.set = function( f )
Line 8: Line 12:
local args = f.args
local args = f.args
local display_name = args.display_name
local fixed_date = args.fixed_date:gsub("-", "/")
local start_date = args.start_date:gsub("-", "/")
local end_date = args.end_date:gsub("-", "/")
local start_date = args.start_date
local date_range = ""
local end_date = args.end_date
local sort_date = ""
local date_range = nil
local date_range_property = args.date_range_property
local date_range_property = args.date_range_property
local sort_date_property = args.sort_date_property
local sort_date_property = args.sort_date_property
if start_date and end_date then
if isStringSet(fixed_date) then
date_range = start_date .. "-" .. end_date
date_range = fixed_date
elseif start_date then
sort_date = fixed_date
elseif isStringSet(start_date) and isStringSet(end_date) then
date_range = start_date .. " - " .. end_date
sort_date = start_date
elseif isStringSet(start_date) then
date_range = start_date
date_range = start_date
elseif end_date then
sort_date = start_date
elseif isStringSet(end_date) then
date_range = end_date
date_range = end_date
sort_date = end_date
end
end
local property = {}
local property = {}
property[sort_date_property] = sort_date
property[date_range_property] = date_range
property[date_range_property] = date_range
property[sort_date_property] = start_date
local result = mw.smw.set( property )
local result = mw.smw.set( property )
Line 36: Line 46:
end
end
return display_name .. "||" .. date_range
return date_range
 
end
end


return p
return p

Latest revision as of 19:30, 28 October 2024

Documentation for this module may be created at Module:SetDateRange/doc

local p = {}; 

local function isStringSet(s)
	return s ~= nil and s ~= ''
end

p.set = function( f )
	if not mw.smw then
        return "mw.smw module not found"
	end

	local args = f.args
	
	local fixed_date = args.fixed_date:gsub("-", "/")
	local start_date = args.start_date:gsub("-", "/")
	local end_date = args.end_date:gsub("-", "/")
	
	local date_range = ""
	local sort_date = ""
	
	local date_range_property = args.date_range_property
	local sort_date_property = args.sort_date_property
	
	if isStringSet(fixed_date) then
		date_range = fixed_date
		sort_date = fixed_date
	elseif isStringSet(start_date) and isStringSet(end_date) then
		date_range = start_date .. " - " .. end_date
		sort_date = start_date
	elseif isStringSet(start_date) then
		date_range = start_date
		sort_date = start_date
	elseif isStringSet(end_date) then
		date_range = end_date
		sort_date = end_date
	end
	
	local property = {}
	property[sort_date_property] = sort_date
	property[date_range_property] = date_range
	
	local result = mw.smw.set( property )
	
	if result == false then
		print("Error: Couldn't set date range")
	end
	
	return date_range
end

return p