Timesheets

Time and billing

MarketplacePeople and projectsVersion 0.1.0manifest

What it is for ​

Record time spent on project tasks in minutes, mark it billable and run it through an approval step. Needs the Projects package.

What the package does and does not do ​

Time spent on project tasks, entered in minutes, with a billable flag and an approval step. Needs the Projects package.

Models ​

timesheets_entry ​

Time one person spent on one task on one day

Read group: timesheets.user. Write group: timesheets.user.

FieldKindData classPersonal dataGroupAgents seeDescription
task_idref → projects_tasknonenotimesheets.userin clearThe task worked on
workertextinternalyestimesheets.usermaskedName of the person who did the work
worked_ondatenonenotimesheets.userin clearDay the work was done (YYYY-MM-DD)
minutesnumbernonenotimesheets.userin clearTime spent, in minutes
billableboolnonenotimesheets.userin clearWhether the time can be charged to the customer
descriptiontextnonenotimesheets.userin clearWhat was done
cost_ratemoneyfinancialyestimesheets.cost_viewerwithheldInternal hourly cost of the worker at the time of entry (minor currency units, e.g. cents)
stateselect (draft, submitted, approved)nonenotimesheets.userin clearEntry status: draft, submitted, approved

Workflows ​

timesheets_entry ​

ActionMovesWho may run itApproval
timesheets_entry.submitstate: draft → submittedtimesheets.userno
timesheets_entry.approvestate: submitted → approvedtimesheets.managerno
timesheets_entry.rejectstate: submitted → drafttimesheets.managerno

Permission groups ​

Groups used by this app:

  • timesheets.cost_viewer
  • timesheets.manager
  • timesheets.user

Approval steps ​

No step in this app needs an approval, apart from deleting records.

What agents can and cannot do ​

An agent can read, search, create and update records of this app, and run the actions that need no approval, within the permission groups of its token.

It can only propose these steps, and a person must approve them: timesheets_entry.delete.

Personal data is masked as placeholder tokens: timesheets_entry.worker.

These fields are withheld from agents entirely: timesheets_entry.cost_rate.

Dependencies ​

  • projects

Install ​

Install it from the Customize app (Marketplace), or from the command line:

bash
obop modules install-from timesheets

Needs a database and administrator rights.

Build your own ​

The module guide shows how apps like this one are written