Module:Task: Difference between revisions

From Bodhicitta
((by SublimeText.Mediawiker))
((by SublimeText.Mediawiker))
Line 27: Line 27:
end
end


function p.main(frame)
function p.listUserTasks(frame)


local pargs = frame:getParent().args
local username = mw.title.getCurrentTitle().fullText
local pagename = mw.title.getCurrentTitle().fullText
 
local output = '<table class="smwtable-clean w-100 border th-top-left sortable"><tr><th></th><th>Page</th><th>Task</th><th>Champ</th><th>Actions</th></tr>'
 
local incompleteTasksQr = mw.smw.ask( '[[SubobjectType::Incomplete Tasks]][[CompletedBy::' .. username .. ']]|?#-=Subobject|?TaskType|?TaskNum|?TaskLabel|?PageReviewed|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
for _,task in ipairs(incompleteTasksQr) do
local checkIfCompleted = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
local checkPrevTaskComplete = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum - 1 .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
if checkIfCompleted then
output = output
elseif (task.TaskNum == 1 and task.Completed == false) or checkPrevTaskComplete then
output = output .. frame:expandTemplate{ title = 'TaskRow', args = { task.Subobject, task.TaskType, task.TaskNum, task.TaskLabel, task.PageReviewed, task.Completed, task.CompletedBy, task.CompletedOn, '' } }
end
end
 
local completedTasksQr = mw.smw.ask( '[[SubobjectType::Completed Tasks]][[CompletedBy::' .. username .. ']]|?#-=wikipage|?TaskType|?TaskNum|?TaskLabel|?PageReviewed|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
for _,task in ipairs(completedTasksQr) do
output = output .. frame:expandTemplate{ title = 'TaskRow', args = { task.wikipage, task.TaskType, task.TaskNum, task.TaskLabel, task.PageReviewed, task.Completed, task.CompletedBy, task.CompletedOn, 'Complete' } }
end
 
output = output .. '</table>'
 
return output


end
end


return p
return p

Revision as of 06:24, 7 August 2024

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

local p = {}

function p.listAll(frame)

	local output = '<table class="smwtable-clean w-100 border th-top-left sortable"><tr><th></th><th>Page</th><th>Task</th><th>Champ</th><th>Actions</th></tr>'

	local incompleteTasksQr = mw.smw.ask( '[[SubobjectType::Incomplete Tasks]]|?#-=Subobject|?TaskType|?TaskNum|?TaskLabel|?PageReviewed|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
	for _,task in ipairs(incompleteTasksQr) do
		local checkIfCompleted = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
		local checkPrevTaskComplete = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum - 1 .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
		if checkIfCompleted then
			output = output
		elseif (task.TaskNum == 1 and task.Completed == false) or checkPrevTaskComplete then
			output = output .. frame:expandTemplate{ title = 'TaskRow', args = { task.Subobject, task.TaskType, task.TaskNum, task.TaskLabel, task.PageReviewed, task.Completed, task.CompletedBy, task.CompletedOn, '' } }
		end
	end

	local completedTasksQr = mw.smw.ask( '[[SubobjectType::Completed Tasks]]|?#-=wikipage|?TaskType|?TaskNum|?TaskLabel|?PageReviewed|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
	for _,task in ipairs(completedTasksQr) do
		output = output .. frame:expandTemplate{ title = 'TaskRow', args = { task.wikipage, task.TaskType, task.TaskNum, task.TaskLabel, task.PageReviewed, task.Completed, task.CompletedBy, task.CompletedOn, 'Complete' } }
	end

	output = output .. '</table>'

	return output

end

function p.listUserTasks(frame)

	local username = mw.title.getCurrentTitle().fullText

	local output = '<table class="smwtable-clean w-100 border th-top-left sortable"><tr><th></th><th>Page</th><th>Task</th><th>Champ</th><th>Actions</th></tr>'

	local incompleteTasksQr = mw.smw.ask( '[[SubobjectType::Incomplete Tasks]][[CompletedBy::' .. username .. ']]|?#-=Subobject|?TaskType|?TaskNum|?TaskLabel|?PageReviewed|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
	for _,task in ipairs(incompleteTasksQr) do
		local checkIfCompleted = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
		local checkPrevTaskComplete = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum - 1 .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
		if checkIfCompleted then
			output = output
		elseif (task.TaskNum == 1 and task.Completed == false) or checkPrevTaskComplete then
			output = output .. frame:expandTemplate{ title = 'TaskRow', args = { task.Subobject, task.TaskType, task.TaskNum, task.TaskLabel, task.PageReviewed, task.Completed, task.CompletedBy, task.CompletedOn, '' } }
		end
	end

	local completedTasksQr = mw.smw.ask( '[[SubobjectType::Completed Tasks]][[CompletedBy::' .. username .. ']]|?#-=wikipage|?TaskType|?TaskNum|?TaskLabel|?PageReviewed|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
	for _,task in ipairs(completedTasksQr) do
		output = output .. frame:expandTemplate{ title = 'TaskRow', args = { task.wikipage, task.TaskType, task.TaskNum, task.TaskLabel, task.PageReviewed, task.Completed, task.CompletedBy, task.CompletedOn, 'Complete' } }
	end

	output = output .. '</table>'

	return output

end

return p