changeset 05d782c4aeb7 in modules/sale_subscription:default
details:
https://hg.tryton.org/modules/sale_subscription?cmd=changeset;node=05d782c4aeb7
description:
Add ir.calendar for month and day
This allows to replace time_locale and use the translation
infrastructure
instead. So it can be customized using the translation override or
derivative
languages.
This provides also a standard base to modules that needs calendar month
and
day.
issue7815
review56451002
diffstat:
CHANGELOG | 2 ++
recurrence.py | 36 +++++++++++++++++++++++++-----------
view/recurrence_rule_form.xml | 4 ++--
view/recurrence_rule_list.xml | 2 +-
4 files changed, 30 insertions(+), 14 deletions(-)
diffs (95 lines):
diff -r fc16ef3b6a82 -r 05d782c4aeb7 CHANGELOG
--- a/CHANGELOG Mon Dec 31 15:36:49 2018 +0100
+++ b/CHANGELOG Tue Jan 01 15:47:23 2019 +0100
@@ -1,3 +1,5 @@
+* Use ir.calendar.day
+
Version 5.0.0 - 2018-10-01
* Bug fixes (see mercurial logs for details)
* Remove support for Python 2.7
diff -r fc16ef3b6a82 -r 05d782c4aeb7 recurrence.py
--- a/recurrence.py Mon Dec 31 15:36:49 2018 +0100
+++ b/recurrence.py Tue Jan 01 15:47:23 2019 +0100
@@ -6,6 +6,7 @@
from trytond.i18n import gettext
from trytond.model import ModelSQL, ModelView, fields
+from trytond.pool import Pool
from trytond.transaction import Transaction
from .exceptions import RecurrenceRuleValidationError
@@ -90,20 +91,33 @@
bysetpos = fields.Char(
"By Position",
help="A comma separated list of integers.")
- wkst = fields.Selection([
- (None, ''),
- ('0', 'Monday'),
- ('1', 'Tuesday'),
- ('2', 'Wednesday'),
- ('3', 'Thursday'),
- ('4', 'Friday'),
- ('5', 'Saturday'),
- ('6', 'Sunday'),
- ], "Week Start Day", sort=False)
+ week_start_day = fields.Many2One('ir.calendar.day', "Week Start Day")
exclusive = fields.Boolean("Exclusive")
@classmethod
+ def __register__(cls, module_name):
+ pool = Pool()
+ Day = pool.get('ir.calendar.day')
+ day = Day.__table__()
+ transaction = Transaction()
+ table = cls.__table__()
+
+ super().__register__(module_name)
+ table_h = cls.__table_handler__(module_name)
+
+ # Migration from 5.0: replace wkst by week_start_day
+ if table_h.column_exist('wkst'):
+ cursor = transaction.connection.cursor()
+ update = transaction.connection.cursor()
+ cursor.execute(*day.select([day.id, day.index]))
+ for day_id, index in cursor:
+ update.execute(*table.update(
+ [table.week_start_day], [day_id],
+ where=table.wkst == str(index)))
+ table_h.drop_column('wkst')
+
+ @classmethod
def default_interval(cls):
return 1
@@ -125,7 +139,7 @@
'byweekno': self._byweekno,
'bymonth': self._bymonth,
'bysetpos': self._bysetpos,
- 'wkst': int(self.wkst) if self.wkst else None,
+ 'wkst': self.week_start_day.index if self.week_start_day else None,
}
@property
diff -r fc16ef3b6a82 -r 05d782c4aeb7 view/recurrence_rule_form.xml
--- a/view/recurrence_rule_form.xml Mon Dec 31 15:36:49 2018 +0100
+++ b/view/recurrence_rule_form.xml Tue Jan 01 15:47:23 2019 +0100
@@ -24,6 +24,6 @@
<field name="bymonth" colspan="3"/>
<label name="bysetpos"/>
<field name="bysetpos" colspan="3"/>
- <label name="wkst"/>
- <field name="wkst" colspan="3"/>
+ <label name="week_start_day"/>
+ <field name="week_start_day" colspan="3" widget="selection"/>
</form>
diff -r fc16ef3b6a82 -r 05d782c4aeb7 view/recurrence_rule_list.xml
--- a/view/recurrence_rule_list.xml Mon Dec 31 15:36:49 2018 +0100
+++ b/view/recurrence_rule_list.xml Tue Jan 01 15:47:23 2019 +0100
@@ -12,5 +12,5 @@
<field name="byweekno"/>
<field name="bymonth"/>
<field name="bysetpos"/>
- <field name="wkst"/>
+ <field name="week_start_day" widget="selection"/>
</tree>