Adapt test module
parent
67f2168d2f
commit
c56676d281
|
@ -1,2 +1,2 @@
|
||||||
from . import base_time_weekday
|
from . import time_weekday
|
||||||
from . import base_time_window
|
from . import time_window_mixin
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
This module provides base classes to manage time windows.
|
This module provides base classes and models to manage time windows through
|
||||||
|
`time.window.mixin`.
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
Example implementation for the mixin can be found in module `test_base_time_window`.
|
||||||
|
|
||||||
|
As a time window will always be linked to a related model thourgh a M2o relation,
|
||||||
|
when defining the new model inheriting the mixin, one should pay attention to the
|
||||||
|
following points in order to have the overlapping check work properly:
|
||||||
|
|
||||||
|
- Define class property `_overlap_check_field`: This must state the M2o field to
|
||||||
|
use for the to check of overlapping time window records linked to a specific
|
||||||
|
record of the related model.
|
||||||
|
|
||||||
|
- Add the M2o field to the related model in the `api.constrains`:
|
||||||
|
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class PartnerTimeWindow(models.Model):
|
||||||
|
_name = 'partner.time.window'
|
||||||
|
_inherit = 'time.window.mixin'
|
||||||
|
|
||||||
|
partner_id = fields.Many2one(
|
||||||
|
res.partner', required=True, index=True, ondelete='cascade'
|
||||||
|
)
|
||||||
|
|
||||||
|
_overlap_check_field = 'partner_id'
|
||||||
|
|
||||||
|
@api.constrains('partner_id')
|
||||||
|
def check_window_no_overlaps(self):
|
||||||
|
return super().check_window_no_overlaps()
|
Loading…
Reference in New Issue