Module:Task: Difference between revisions
From Bodhicitta
((by SublimeText.Mediawiker)) |
((by SublimeText.Mediawiker)) |
||
| Line 6: | Line 6: | ||
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' ) | 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 | if incompleteTasksQr then | ||
for _,task in ipairs(incompleteTasksQr) do | |||
local checkIfCompleted = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum .. '-' .. task.TaskLabel .. ']][[Completed::true]]' ) | |||
local prevTaskNum = task.TaskNum - 1 | |||
local checkPrevTaskComplete = mw.smw.ask( '[[PageReviewed::' .. task.PageReviewed .. ']][[TaskType::' .. task.TaskType .. ']][[TaskNum::' .. prevTaskNum .. ']][[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 | end | ||
end | end | ||
Revision as of 07:56, 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' )
if incompleteTasksQr then
for _,task in ipairs(incompleteTasksQr) do
local checkIfCompleted = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
local prevTaskNum = task.TaskNum - 1
local checkPrevTaskComplete = mw.smw.ask( '[[PageReviewed::' .. task.PageReviewed .. ']][[TaskType::' .. task.TaskType .. ']][[TaskNum::' .. prevTaskNum .. ']][[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
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().rootText
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::User:' .. username .. ']]|?#-=Subobject|?TaskType|?TaskNum|?TaskLabel|?PageReviewed#|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
if incompleteTasksQr then
for _,task in ipairs(incompleteTasksQr) do
local checkIfCompleted = mw.smw.ask( '[[Tasks/' .. task.PageReviewed .. '/' .. task.TaskType .. '-' .. task.TaskNum .. '-' .. task.TaskLabel .. ']][[Completed::true]]' )
local prevTaskNum = task.TaskNum - 1
local checkPrevTaskComplete = mw.smw.ask( '[[PageReviewed::' .. task.PageReviewed .. ']][[TaskType::' .. task.TaskType .. ']][[TaskNum::' .. prevTaskNum .. ']][[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
end
local completedTasksQr = mw.smw.ask( '[[SubobjectType::Completed Tasks]][[CompletedBy::User:' .. username .. ']]|?#-=wikipage|?TaskType|?TaskNum|?TaskLabel|?PageReviewed#|?Completed|?CompletedBy|?CompletedOn|sort=Completed,PageReviewed,TaskType,TaskNum|order=asc,asc,asc,asc' )
if completedTasksQr then
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
end
output = output .. '</table>'
return output
end
return p