changeset 34cd2ac1a5b8 in modules/party:default
details: https://hg.tryton.org/modules/party?cmd=changeset&node=34cd2ac1a5b8
description:
        Make identifiers deactivatable and replace it

        issue10567
        review346941002
diffstat:

 CHANGELOG                        |   2 ++
 party.py                         |   7 ++++++-
 tests/scenario_party_replace.rst |  14 ++++++++++++++
 view/identifier_form.xml         |   8 ++++++--
 4 files changed, 28 insertions(+), 3 deletions(-)

diffs (104 lines):

diff -r edfd039d6ee3 -r 34cd2ac1a5b8 CHANGELOG
--- a/CHANGELOG Tue Aug 17 10:06:56 2021 +0200
+++ b/CHANGELOG Fri Oct 08 19:34:33 2021 +0200
@@ -1,3 +1,5 @@
+* Make identifiers deactivatable
+* Replace party on identifier when replacing parties
 * Add au_abn and au_acn as tax identifiers
 * Add at, ua and vn party identifiers
 
diff -r edfd039d6ee3 -r 34cd2ac1a5b8 party.py
--- a/party.py  Tue Aug 17 10:06:56 2021 +0200
+++ b/party.py  Fri Oct 08 19:34:33 2021 +0200
@@ -564,7 +564,7 @@
     ]
 
 
-class Identifier(sequence_ordered(), ModelSQL, ModelView):
+class Identifier(sequence_ordered(), DeactivableMixin, ModelSQL, ModelView):
     'Party Identifier'
     __name__ = 'party.identifier'
     _rec_name = 'code'
@@ -754,6 +754,7 @@
         pool = Pool()
         Address = pool.get('party.address')
         ContactMechanism = pool.get('party.contact_mechanism')
+        Identifier = pool.get('party.identifier')
         transaction = Transaction()
 
         self.check_similarity()
@@ -766,6 +767,9 @@
         ContactMechanism.write(list(source.contact_mechanisms), {
                 'active': False,
                 })
+        Identifier.write(list(source.identifiers), {
+                'active': False,
+                })
         source.replaced_by = destination
         source.active = False
         source.save()
@@ -801,6 +805,7 @@
         return [
             ('party.address', 'party'),
             ('party.contact_mechanism', 'party'),
+            ('party.identifier', 'party'),
             ]
 
 
diff -r edfd039d6ee3 -r 34cd2ac1a5b8 tests/scenario_party_replace.rst
--- a/tests/scenario_party_replace.rst  Tue Aug 17 10:06:56 2021 +0200
+++ b/tests/scenario_party_replace.rst  Fri Oct 08 19:34:33 2021 +0200
@@ -15,14 +15,22 @@
 
     >>> Party = Model.get('party.party')
     >>> party1 = Party(name='Pam')
+    >>> identifier1 = party1.identifiers.new()
+    >>> identifier1.type = 'eu_vat'
+    >>> identifier1.code = 'BE0897290877'
     >>> party1.save()
     >>> address1, = party1.addresses
+    >>> identifier1, = party1.identifiers
 
 Create a second party similar party::
 
     >>> party2 = Party(name='Pam')
+    >>> identifier2 = party2.identifiers.new()
+    >>> identifier2.type = 'eu_vat'
+    >>> identifier2.code = 'BE0897290877'
     >>> party2.save()
     >>> address2, = party2.addresses
+    >>> identifier2, = party2.identifiers
 
 Replace the second by the first party::
 
@@ -36,6 +44,12 @@
     >>> bool(party2.active)
     False
 
+    >>> identifier2.reload()
+    >>> identifier2.party == party1
+    True
+    >>> bool(identifier2.active)
+    False
+
     >>> address2.reload()
     >>> address2.party == party1
     True
diff -r edfd039d6ee3 -r 34cd2ac1a5b8 view/identifier_form.xml
--- a/view/identifier_form.xml  Tue Aug 17 10:06:56 2021 +0200
+++ b/view/identifier_form.xml  Fri Oct 08 19:34:33 2021 +0200
@@ -4,8 +4,12 @@
 <form>
     <label name="party"/>
     <field name="party"/>
-    <label name="sequence"/>
-    <field name="sequence"/>
+    <group colspan="2" col="-1" id="checkboxes">
+        <label name="active"/>
+        <field name="active"/>
+        <label name="sequence"/>
+        <field name="sequence"/>
+    </group>
     <label name="type"/>
     <field name="type"/>
     <label name="code"/>

Reply via email to