Backend
1. Variables
// priority list
ensure var VarSetOfTextPriority kind: setOfText
modules: ["TaskList"]
deploy: fixedOnDeploy
value: "<root>
<node color='error' key='1'>High</node>
<node color='primary' key='2'>Medium</node>
<node color='success' key='3'>Low</node>
</root>"
// status list
ensure var VarSetOfTextStatus kind: setOfText
modules: ["TaskList"]
deploy: fixedOnDeploy
value: "<root>
<node key='1'>Pending</node>
<node key='2'>Started</node>
<node key='3'>Done</node>
</root>"
// date variable for current date
ensure var VarDateNow kind: date modules: ["TaskList"] deploy: fixedOnDeploy value: "now"
// WhatsApp message variable
ensure var VarInCompleteTaskMessage kind: text
modules: ["TaskList"]
deploy: fixedOnDeploy
value: "This is a quick update to inform you that this task list : ${P} is still on the pending status."
// email subject variable
ensure var VarInCompleteTaskSub kind: text
modules: ["TaskList"]
deploy: fixedOnDeploy
value: "Your incomplete task list"
// email body variable
ensure var VarInCompleteTaskEmailBody kind: paragraph
modules: ["TaskList"]
deploy: fixedOnDeploy
value: "Dear User,
2. TaskSheet
// fields ending with "*" suffix are required
ensure spreadsheet: TaskSheet
withFields: [
"Date",
"Task*",
"Priority",
"Status",
"DueDate",
"CreatedBy",
"Divider",
"Notes"
]
ofTypes: [date, text, pickText, pickText, date, text, divider, paragraph]
modules: ["TaskList"]
readRoleSet: [Member]
insertRoleSet: [Member]
updateRoleSet: [Member]
removeRoleSet: [Member]
ensure spreadsheet TaskSheet
searchables: [Task, Priority, Status]
queryables: [Task, Priority, Status, Date, DueDate]
ensure form EntityTask
label: "Task"
modules: ["TaskList"]
commentRoleSet: [Member]
allowToPrintForm: true
ensure section: Details
ensure field Date defaultValue: "now"
ensure field Priority sourceVar: VarSetOfTextPriority defaultOptionId: "3"
ensure field Status sourceVar: VarSetOfTextStatus defaultOptionId: "1"
ensure field CreatedBy
permissionMatrix: {
'defaultPermission': 'invisible'
}
ensure field Divider dividerKind: thick
ensure field Notes flexHeight: true
ensure section: Attachments
ensure field Attachments kind: document fileTypeSet: ["any"]
3. InCompleteTaskReport
a. Output form
ensure form OutputPendingTask modules: ["TaskList"]
ensure grid: TaskDetails
ensure field Date kind: date
ensure field Task kind: text
ensure layoutGrid TableLayout kind: table
showComps: [TaskDetails.Date, TaskDetails.Task]
ensure layout ContentLayout kind: content
direction: vertical
contentPadding: thick
flexCenter.gridLayouts: [TaskDetails.TableLayout]
b. Report
ensure var VarMappingReportTask kind: mapping modules: ["TaskList"] deploy: fixedOnDeploy
fromForm: EntityTask
toForm: OutputPendingTask
toGrid: TaskDetails
fieldMappingMap: {
'map': {
'${f:Details.Date}': 'TaskDetails.Date',
'${f:Details.Task}': 'TaskDetails.Task'
}
}
ensure report InCompleteTaskReport kind: spreadsheet
modules: ["TaskList"]
outputForm: OutputPendingTask
fromSpreadsheet: TaskSheet
filterConditionVar: VarFilterConditionInCompletedTasks
outputFormMappingVar: VarMappingReportTask