changeset 4344a799807c in modules/account_asset:default
details:
https://hg.tryton.org/modules/account_asset?cmd=changeset&node=4344a799807c
description:
Allow resetting running assets without moves to draft
issue9939
review351821003
diffstat:
CHANGELOG | 3 +++
asset.py | 30 +++++++++++++++++++++++++-----
asset.xml | 6 ++++++
message.xml | 3 +++
view/asset_form.xml | 1 +
5 files changed, 38 insertions(+), 5 deletions(-)
diffs (138 lines):
diff -r d7738f6f7f42 -r 4344a799807c CHANGELOG
--- a/CHANGELOG Mon May 03 15:55:06 2021 +0200
+++ b/CHANGELOG Tue May 18 22:02:25 2021 +0200
@@ -1,3 +1,6 @@
+* Allow resetting running assets without moves to draft
+* Allow refreshing pending asset lines
+
Version 6.0.0 - 2021-05-03
* Bug fixes (see mercurial logs for details)
diff -r d7738f6f7f42 -r 4344a799807c asset.py
--- a/asset.py Mon May 03 15:55:06 2021 +0200
+++ b/asset.py Tue May 18 22:02:25 2021 +0200
@@ -222,8 +222,14 @@
cls._transitions |= set((
('draft', 'running'),
('running', 'closed'),
+ ('running', 'draft'),
))
cls._buttons.update({
+ 'draft': {
+ 'invisible': (Eval('lines', [])
+ | (Eval('state') != 'running')),
+ 'depends': ['state'],
+ },
'run': {
'invisible': Eval('state') != 'draft',
'depends': ['state'],
@@ -233,13 +239,12 @@
'depends': ['state'],
},
'create_lines': {
- 'invisible': (Eval('lines', [])
- | (Eval('state') != 'draft')),
+ 'invisible': ~Eval('state').in_(['draft', 'running']),
'depends': ['state'],
},
'clear_lines': {
'invisible': (~Eval('lines', [0])
- | (Eval('state') != 'draft')),
+ | ~Eval('state').in_(['draft', 'running'])),
'depends': ['state'],
},
'update': {
@@ -407,7 +412,10 @@
# dateutil >= 2.0 has replace __nonzero__ by __bool__ which doesn't
# work in Python < 3
if delta == relativedelta.relativedelta():
- return [self.end_date]
+ if not self.lines:
+ return [self.end_date]
+ else:
+ return []
if self.frequency == 'monthly':
rule = rrule.rrule(rrule.MONTHLY, dtstart=self.start_date,
bymonthday=int(config.get_multivalue(
@@ -510,7 +518,6 @@
def create_lines(cls, assets):
pool = Pool()
Line = pool.get('account.asset.line')
- cls.clear_lines(assets)
lines = []
for asset in assets:
@@ -577,6 +584,8 @@
Move = pool.get('account.move')
Line = pool.get('account.asset.line')
+ cls.create_lines(assets)
+
moves = []
lines = []
for asset_ids in grouped_slice(assets):
@@ -659,6 +668,16 @@
@classmethod
@ModelView.button
+ @Workflow.transition('draft')
+ def draft(cls, assets):
+ for asset in assets:
+ if asset.lines:
+ raise AccessError(
+ gettext('account_asset.msg_draft_lines',
+ asset=asset.rec_name))
+
+ @classmethod
+ @ModelView.button
@Workflow.transition('running')
def run(cls, assets):
cls.set_number(assets)
@@ -933,6 +952,7 @@
'residual_value': self.start.residual_value,
'end_date': self.start.end_date,
})
+ self.model.clear_lines([self.record])
self.model.create_lines([self.record])
return 'end'
diff -r d7738f6f7f42 -r 4344a799807c asset.xml
--- a/asset.xml Mon May 03 15:55:06 2021 +0200
+++ b/asset.xml Tue May 18 22:02:25 2021 +0200
@@ -132,6 +132,12 @@
<field name="perm_delete" eval="True"/>
</record>
+ <record model="ir.model.button" id="asset_draft_button">
+ <field name="name">draft</field>
+ <field name="string">Draft</field>
+ <field name="model" search="[('model', '=', 'account.asset')]"/>
+ </record>
+
<record model="ir.model.button" id="asset_close_button">
<field name="name">close</field>
<field name="string">Close</field>
diff -r d7738f6f7f42 -r 4344a799807c message.xml
--- a/message.xml Mon May 03 15:55:06 2021 +0200
+++ b/message.xml Tue May 18 22:02:25 2021 +0200
@@ -3,6 +3,9 @@
this repository contains the full copyright notices and license terms. -->
<tryton>
<data grouped="1">
+ <record model="ir.message" id="msg_asset_draft_lines">
+ <field name="text">You cannot reset to draft asset "%(asset)s"
because it has lines.</field>
+ </record>
<record model="ir.message" id="msg_asset_delete_draft">
<field name="text">You cannot delete asset "%(asset)s" because it
is not in "draft" state.</field>
</record>
diff -r d7738f6f7f42 -r 4344a799807c view/asset_form.xml
--- a/view/asset_form.xml Mon May 03 15:55:06 2021 +0200
+++ b/view/asset_form.xml Tue May 18 22:02:25 2021 +0200
@@ -49,6 +49,7 @@
<label name="state"/>
<field name="state"/>
<group col="-1" colspan="4" id="buttons">
+ <button name="draft" icon="tryton-back"/>
<button name="clear_lines" icon="tryton-clear"/>
<button name="create_lines" icon="tryton-launch"/>
<button name="update" icon="tryton-create"/>