changeset 911bd538fa33 in modules/sale_history:default
details:
https://hg.tryton.org/modules/sale_history?cmd=changeset&node=911bd538fa33
description:
Add revision and history to subscription
issue11650
review427551003
diffstat:
CHANGELOG | 2 ++
__init__.py | 5 +++++
sale.py | 37 ++++++++++++++++++++++++-------------
sale.xml | 13 +++++++++++++
setup.py | 5 ++++-
tests/test_module.py | 1 +
tryton.cfg | 2 ++
7 files changed, 51 insertions(+), 14 deletions(-)
diffs (150 lines):
diff -r 1a1459ef6c57 -r 911bd538fa33 CHANGELOG
--- a/CHANGELOG Mon May 02 17:28:34 2022 +0200
+++ b/CHANGELOG Sat Sep 10 17:49:38 2022 +0200
@@ -1,3 +1,5 @@
+* Add revision and history to subscription
+
Version 6.4.0 - 2022-05-02
* Bug fixes (see mercurial logs for details)
* Add support for Python 3.10
diff -r 1a1459ef6c57 -r 911bd538fa33 __init__.py
--- a/__init__.py Mon May 02 17:28:34 2022 +0200
+++ b/__init__.py Sat Sep 10 17:49:38 2022 +0200
@@ -14,3 +14,8 @@
sale.Line,
sale.LineTax,
module='sale_history', type_='model')
+ Pool.register(
+ sale.Subscription,
+ sale.SubscriptionLine,
+ module='sale_history', type_='model',
+ depends=['sale_subscription'])
diff -r 1a1459ef6c57 -r 911bd538fa33 sale.py
--- a/sale.py Mon May 02 17:28:34 2022 +0200
+++ b/sale.py Sat Sep 10 17:49:38 2022 +0200
@@ -8,9 +8,8 @@
from trytond.transaction import Transaction
-class Sale(metaclass=PoolMeta):
- __name__ = 'sale.sale'
- _history = True
+class RevisionMixin:
+ __slots__ = ()
revision = fields.Integer(
"Revision", required=True, readonly=True,
states={
@@ -29,29 +28,31 @@
return number
@classmethod
- def copy(cls, sales, default=None):
- if default is None:
- default = {}
- else:
- default = default.copy()
+ def copy(cls, records, default=None):
+ default = default.copy() if default is not None else {}
default.setdefault('revision', cls.default_revision())
- return super().copy(sales, default=default)
+ return super().copy(records, default=default)
@classmethod
@ModelView.button
@Workflow.transition('draft')
- def draft(cls, sales):
+ def draft(cls, records):
cursor = Transaction().connection.cursor()
table = cls.__table__()
# Use SQL and before super to avoid two history entries
- for sub_sales in grouped_slice(sales):
+ for sub_records in grouped_slice(records):
cursor.execute(*table.update(
[table.revision],
[table.revision + 1],
- where=reduce_ids(table.id, sub_sales)))
+ where=reduce_ids(table.id, sub_records)))
+
+ super().draft(records)
- super().draft(sales)
+
+class Sale(RevisionMixin, metaclass=PoolMeta):
+ __name__ = 'sale.sale'
+ _history = True
class Line(metaclass=PoolMeta):
@@ -62,3 +63,13 @@
class LineTax(metaclass=PoolMeta):
__name__ = 'sale.line-account.tax'
_history = True
+
+
+class Subscription(RevisionMixin, metaclass=PoolMeta):
+ __name__ = 'sale.subscription'
+ _history = True
+
+
+class SubscriptionLine(metaclass=PoolMeta):
+ __name__ = 'sale.subscription.line'
+ _history = True
diff -r 1a1459ef6c57 -r 911bd538fa33 sale.xml
--- a/sale.xml Mon May 02 17:28:34 2022 +0200
+++ b/sale.xml Sat Sep 10 17:49:38 2022 +0200
@@ -14,4 +14,17 @@
<field name="name">sale_tree</field>
</record>
</data>
+ <data depends="sale_subscription">
+ <record model="ir.ui.view" id="subscription_view_form">
+ <field name="model">sale.subscription</field>
+ <field name="inherit"
ref="sale_subscription.subscription_view_form"/>
+ <field name="name">sale_form</field>
+ </record>
+ <record model="ir.ui.view" id="subscription_view_list">
+ <field name="model">sale.subscription</field>
+ <field name="inherit"
ref="sale_subscription.subscription_view_list"/>
+ <field name="name">sale_tree</field>
+ </record>
+ </data>
+
</tryton>
diff -r 1a1459ef6c57 -r 911bd538fa33 setup.py
--- a/setup.py Mon May 02 17:28:34 2022 +0200
+++ b/setup.py Sat Sep 10 17:49:38 2022 +0200
@@ -64,7 +64,10 @@
requires.append(get_require_version('trytond_%s' % dep))
requires.append(get_require_version('trytond'))
-tests_require = [get_require_version('proteus')]
+tests_require = [
+ get_require_version('proteus'),
+ get_require_version('trytond_sale_subscription'),
+ ]
dependency_links = []
if minor_version % 2:
dependency_links.append(
diff -r 1a1459ef6c57 -r 911bd538fa33 tests/test_module.py
--- a/tests/test_module.py Mon May 02 17:28:34 2022 +0200
+++ b/tests/test_module.py Sat Sep 10 17:49:38 2022 +0200
@@ -7,6 +7,7 @@
class SaleHistoryTestCase(ModuleTestCase):
'Test Sale History module'
module = 'sale_history'
+ extras = ['sale_subscription']
del ModuleTestCase
diff -r 1a1459ef6c57 -r 911bd538fa33 tryton.cfg
--- a/tryton.cfg Mon May 02 17:28:34 2022 +0200
+++ b/tryton.cfg Sat Sep 10 17:49:38 2022 +0200
@@ -3,5 +3,7 @@
depends:
ir
sale
+extras_depend:
+ sale_subscription
xml:
sale.xml