changeset 626670b9e7c5 in modules/user_role:default
details: https://hg.tryton.org/modules/user_role?cmd=changeset&node=626670b9e7c5
description:
        Use datetime for role planning

        datetime does not depend on the timezone.

        issue11028
        review391981002
diffstat:

 CHANGELOG                    |   1 +
 res.py                       |  14 ++++++--------
 tests/scenario_user_role.rst |  10 +++++-----
 view/user_role_list.xml      |   6 ++++--
 4 files changed, 16 insertions(+), 15 deletions(-)

diffs (112 lines):

diff -r bd7b5ce421f9 -r 626670b9e7c5 CHANGELOG
--- a/CHANGELOG Sat Apr 16 18:30:20 2022 +0200
+++ b/CHANGELOG Tue Apr 19 13:18:10 2022 +0200
@@ -1,3 +1,4 @@
+* Use datetime for role planning
 * Add support for Python 3.10
 * Remove support for Python 3.6
 
diff -r bd7b5ce421f9 -r 626670b9e7c5 res.py
--- a/res.py    Sat Apr 16 18:30:20 2022 +0200
+++ b/res.py    Tue Apr 19 13:18:10 2022 +0200
@@ -1,6 +1,6 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
-import datetime
+import datetime as dt
 
 from trytond.model import ModelSQL, ModelView, fields
 from trytond.pool import Pool, PoolMeta
@@ -63,10 +63,8 @@
 
     @classmethod
     def sync_roles(cls, users=None, date=None):
-        pool = Pool()
-        Date = pool.get('ir.date')
         if date is None:
-            date = Date.today()
+            date = dt.datetime.now()
         if users is None:
             users = cls.search([])
         to_write = []
@@ -92,14 +90,14 @@
     user = fields.Many2One(
         'res.user', "User", ondelete='CASCADE', select=True, required=True)
     role = fields.Many2One('res.role', "Role", required=True)
-    from_date = fields.Date(
+    from_date = fields.DateTime(
         "From Date",
         domain=[
             If(Eval('from_date') & Eval('to_date'),
                 ('from_date', '<=', Eval('to_date', None)),
                 ()),
             ])
-    to_date = fields.Date(
+    to_date = fields.DateTime(
         "To Date",
         domain=[
             If(Eval('from_date') & Eval('to_date'),
@@ -114,6 +112,6 @@
         cls._order.insert(1, ('to_date', 'ASC NULLS FIRST'))
 
     def valid(self, date):
-        from_date = self.from_date or datetime.date.min
-        to_date = self.to_date or datetime.date.max
+        from_date = self.from_date or dt.datetime.min
+        to_date = self.to_date or dt.datetime.max
         return from_date <= date <= to_date
diff -r bd7b5ce421f9 -r 626670b9e7c5 tests/scenario_user_role.rst
--- a/tests/scenario_user_role.rst      Sat Apr 16 18:30:20 2022 +0200
+++ b/tests/scenario_user_role.rst      Tue Apr 19 13:18:10 2022 +0200
@@ -4,7 +4,7 @@
 
 Imports::
 
-    >>> import datetime
+    >>> import datetime as dt
     >>> from proteus import Model, Wizard
     >>> from trytond.tests.tools import activate_modules
 
@@ -51,7 +51,7 @@
 Start the role in the future::
 
     >>> user_role, = user.roles
-    >>> user_role.from_date = datetime.date.today() + 
datetime.timedelta(days=1)
+    >>> user_role.from_date = dt.datetime.now() + dt.timedelta(days=1)
     >>> user_role.to_date = None
     >>> user.save()
 
@@ -62,7 +62,7 @@
 
     >>> user_role, = user.roles
     >>> user_role.from_date = None
-    >>> user_role.to_date = datetime.date.today() - datetime.timedelta(days=1)
+    >>> user_role.to_date = dt.datetime.now() - dt.timedelta(days=1)
     >>> user.save()
 
     >>> len(user.groups)
@@ -71,8 +71,8 @@
 Start the role in the past and end in the future::
 
     >>> user_role, = user.roles
-    >>> user_role.from_date = datetime.date.today() - 
datetime.timedelta(days=1)
-    >>> user_role.to_date = datetime.date.today() + datetime.timedelta(days=1)
+    >>> user_role.from_date = dt.datetime.now() - dt.timedelta(days=1)
+    >>> user_role.to_date = dt.datetime.now() + dt.timedelta(days=1)
     >>> user.save()
 
     >>> len(user.groups)
diff -r bd7b5ce421f9 -r 626670b9e7c5 view/user_role_list.xml
--- a/view/user_role_list.xml   Sat Apr 16 18:30:20 2022 +0200
+++ b/view/user_role_list.xml   Tue Apr 19 13:18:10 2022 +0200
@@ -4,6 +4,8 @@
 <tree>
     <field name="user" expand="1"/>
     <field name="role" expand="1"/>
-    <field name="from_date"/>
-    <field name="to_date"/>
+    <field name="from_date" widget="date"/>
+    <field name="from_date" widget="time" string="Time"/>
+    <field name="to_date" widget="date"/>
+    <field name="to_date" widget="time" string="Time"/>
 </tree>

Reply via email to