[ADD] timer: New mixin to record time on models

Purpose
=======

The timer mechanism is already existing on timesheet.

We would like to introduce it on helpdesk.ticket too, and
probably on other models afterward.

On the other hand, only one timer can be launched on a single
timesheet currently, shared amongst the different users.

This commit introduced a new mixin on which
- Each user can launch a timer on each record of the models
  inheriting the mixin.
- Launching a new timer on a record pauses the timer of the
  user that could be already running.
- The mixin brings methods to start/stop/pause/resume the
  timer, that could be overridden to implement a specific
  behavior for the related model, for example create a
  timesheet entry.

TaskID: 2149450
This commit is contained in:
Okan SUMER (osu)
2020-02-05 16:44:37 +01:00
committed by Yannick Tivisse
parent a6d7c7b04a
commit e2b749fb7a
12 changed files with 565 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="0">
<record id="timer_user_rule_create-write-delete" model="ir.rule">
<field name="name">timer.user.rule.create-write-delete</field>
<field name="model_id" ref="timer.model_timer_timer"/>
<field name="domain_force">[
('user_id', '=', user.id)
]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field name="perm_create" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_unlink" eval="1"/>
<field name="perm_read" eval="1"/>
</record>
<record id="timer_not_user_rule_create-write-delete" model="ir.rule">
<field name="name">timer.not.user.rule.create-write-delete</field>
<field name="model_id" ref="timer.model_timer_timer"/>
<field name="domain_force">[
('user_id', '!=', user.id)
]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field name="perm_create" eval="0"/>
<field name="perm_write" eval="0"/>
<field name="perm_unlink" eval="0"/>
<field name="perm_read" eval="1"/>
</record>
</data>
</odoo>