From 4f837b2a3664d33785bdd5d3d709488b414a7031 Mon Sep 17 00:00:00 2001 From: oleksandrpaziuk Date: Tue, 9 Jan 2018 20:09:13 +0200 Subject: [PATCH] [MIG] account_move_batch_validate: Migration to 11.0 --- account_move_batch_validate/__init__.py | 2 +- account_move_batch_validate/__manifest__.py | 7 +++--- .../models/__init__.py | 2 +- .../models/account_move.py | 6 ++--- .../{README.rst => readme/CONTRIBUTORS.rst} | 0 account_move_batch_validate/readme/USAGE.rst | 24 +++++++++++++++++++ account_move_batch_validate/tests/__init__.py | 2 ++ .../tests/test_account_move_batch_validate.py | 18 +++++++------- .../views/account_move.xml | 1 + .../wizard/__init__.py | 2 +- .../wizard/account_move_validate.py | 2 +- .../wizard/account_move_validate.xml | 2 +- 12 files changed, 47 insertions(+), 21 deletions(-) rename account_move_batch_validate/{README.rst => readme/CONTRIBUTORS.rst} (100%) create mode 100644 account_move_batch_validate/readme/USAGE.rst diff --git a/account_move_batch_validate/__init__.py b/account_move_batch_validate/__init__.py index 85bba0cb6..c52677679 100644 --- a/account_move_batch_validate/__init__.py +++ b/account_move_batch_validate/__init__.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- # Copyright 2014 Camptocamp SA, 2017 ACSONE +# Copyright 2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models diff --git a/account_move_batch_validate/__manifest__.py b/account_move_batch_validate/__manifest__.py index 579701a84..9110f8832 100644 --- a/account_move_batch_validate/__manifest__.py +++ b/account_move_batch_validate/__manifest__.py @@ -1,11 +1,11 @@ -# -*- coding: utf-8 -*- # Copyright 2014 Camptocamp SA, 2017 ACSONE +# Copyright 2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { 'name': "Account Move Batch Validate", - 'version': '10.0.1.0.0', + 'version': '11.0.1.0.0', 'author': "Camptocamp, Odoo Community Association (OCA)", - 'website': 'http://www.camptocamp.com', + 'website': 'https://github.com/OCA/account-financial-tools', 'category': 'Finance', 'complexity': 'normal', 'depends': [ @@ -16,6 +16,5 @@ 'views/account_move.xml', 'wizard/account_move_validate.xml', ], - 'installable': True, 'license': 'AGPL-3', } diff --git a/account_move_batch_validate/models/__init__.py b/account_move_batch_validate/models/__init__.py index 3418a723b..6863f5d5c 100644 --- a/account_move_batch_validate/models/__init__.py +++ b/account_move_batch_validate/models/__init__.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- # Copyright 2014 Camptocamp SA, 2017 ACSONE +# Copyright 2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import account_move diff --git a/account_move_batch_validate/models/account_move.py b/account_move_batch_validate/models/account_move.py index 8cb988bca..94be0a2f7 100644 --- a/account_move_batch_validate/models/account_move.py +++ b/account_move_batch_validate/models/account_move.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- # Copyright 2014 Camptocamp SA, 2017 ACSONE +# Copyright 2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import logging @@ -28,7 +28,7 @@ class AccountMove(models.Model): if move.exists(): move.post() else: - return _(u"Nothing to do because the record has been deleted") + return _("Nothing to do because the record has been deleted") @api.model def _delay_post_marked(self, eta=None): @@ -88,7 +88,7 @@ class AccountMove(models.Model): values = {'to_post': True} - for index in xrange(0, moves_count, BLOCK_SIZE): + for index in range(0, moves_count, BLOCK_SIZE): moves = self[index:index + BLOCK_SIZE] moves.write(values) # users like to see the flag sooner rather than later diff --git a/account_move_batch_validate/README.rst b/account_move_batch_validate/readme/CONTRIBUTORS.rst similarity index 100% rename from account_move_batch_validate/README.rst rename to account_move_batch_validate/readme/CONTRIBUTORS.rst diff --git a/account_move_batch_validate/readme/USAGE.rst b/account_move_batch_validate/readme/USAGE.rst new file mode 100644 index 000000000..cdae3997e --- /dev/null +++ b/account_move_batch_validate/readme/USAGE.rst @@ -0,0 +1,24 @@ +This module provides a wizard to post many Journal Entries in batch. it +uses the queue system introduced by the Odoo Queue job module to handle a +big quantity of moves in batch. + +The posting of a move takes some time, and doing that synchronously, +in one transaction is problematic. + +In this module, we leverage the power of the queue system of the +Odoo queue job module, that can be very well used without other concepts +like Backends and Bindings. + +This approach provides many advantages, similar to the ones we get +using that connector for e-commerce: + +- Asynchronous: the operation is done in background, and users can + continue to work. +- Dedicated workers: the queued jobs are performed by specific workers + (processes). This is good for a long task, since the main workers are + busy handling HTTP requests and can be killed if operations take + too long, for example. +- Multiple transactions: this is an operation that doesn't need to be + atomic, and if a line out of 100,000 fails, it is possible to catch + it, see the error message, and fix the situation. Meanwhile, all + other jobs can proceed. diff --git a/account_move_batch_validate/tests/__init__.py b/account_move_batch_validate/tests/__init__.py index 36e5827a5..a83faa445 100644 --- a/account_move_batch_validate/tests/__init__.py +++ b/account_move_batch_validate/tests/__init__.py @@ -1 +1,3 @@ +# Copyright 2018 Camptocamp SA + from . import test_account_move_batch_validate diff --git a/account_move_batch_validate/tests/test_account_move_batch_validate.py b/account_move_batch_validate/tests/test_account_move_batch_validate.py index 0d1a74a62..616c5fa88 100644 --- a/account_move_batch_validate/tests/test_account_move_batch_validate.py +++ b/account_move_batch_validate/tests/test_account_move_batch_validate.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- # Copyright 2017 ACSONE SA/NV +# Copyright 2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo.tests.common import SingleTransactionCase @@ -74,7 +74,7 @@ class TestAccountMoveBatchValidate(SingleTransactionCase): """ move = self.create_account_move(1000) - self.assertEquals(move.state, 'draft') + self.assertEqual(move.state, 'draft') wizard = self.create_move_validate_wizard('mark') wizard.with_context({ @@ -93,7 +93,7 @@ class TestAccountMoveBatchValidate(SingleTransactionCase): post_job = Job.load(self.env, job_uuid) post_job.perform() - self.assertEquals( + self.assertEqual( move.state, 'posted', msg="Move should be posted.") def test_02_delete_move_before_job_run(self): @@ -119,9 +119,9 @@ class TestAccountMoveBatchValidate(SingleTransactionCase): post_job = Job.load(self.env, job_uuid) post_job.perform() - self.assertEquals( + self.assertEqual( post_job.result, - u'Nothing to do because the record has been deleted') + 'Nothing to do because the record has been deleted') def test_03_mark_and_unmark(self): """ @@ -150,14 +150,14 @@ class TestAccountMoveBatchValidate(SingleTransactionCase): job_uuid = move.post_job_uuid - self.assertEquals(mark_job_uuid, job_uuid) + self.assertEqual(mark_job_uuid, job_uuid) post_job = Job.load(self.env, job_uuid) - self.assertEquals(post_job.state, 'done', msg="Job should be done") - self.assertEquals( + self.assertEqual(post_job.state, 'done', msg="Job should be done") + self.assertEqual( post_job.result, "Task set to Done because the user unmarked the move.") - self.assertEquals( + self.assertEqual( move.state, 'draft', msg="Move should be in 'draft' state") diff --git a/account_move_batch_validate/views/account_move.xml b/account_move_batch_validate/views/account_move.xml index c24ea8554..bb13a1662 100644 --- a/account_move_batch_validate/views/account_move.xml +++ b/account_move_batch_validate/views/account_move.xml @@ -1,5 +1,6 @@ diff --git a/account_move_batch_validate/wizard/__init__.py b/account_move_batch_validate/wizard/__init__.py index 7beaa5641..31e941f01 100644 --- a/account_move_batch_validate/wizard/__init__.py +++ b/account_move_batch_validate/wizard/__init__.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- # Copyright 2014 Camptocamp SA, 2017 ACSONE +# Copyright 2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import account_move_validate diff --git a/account_move_batch_validate/wizard/account_move_validate.py b/account_move_batch_validate/wizard/account_move_validate.py index 867d8f008..4fa47d1c5 100644 --- a/account_move_batch_validate/wizard/account_move_validate.py +++ b/account_move_batch_validate/wizard/account_move_validate.py @@ -1,5 +1,5 @@ -# -*- coding: utf-8 -*- # Copyright 2014 Camptocamp SA, 2017 ACSONE +# Copyright 2018 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, fields, models diff --git a/account_move_batch_validate/wizard/account_move_validate.xml b/account_move_batch_validate/wizard/account_move_validate.xml index e0f92353a..0f05406ca 100644 --- a/account_move_batch_validate/wizard/account_move_validate.xml +++ b/account_move_batch_validate/wizard/account_move_validate.xml @@ -1,10 +1,10 @@ - validate.account.move.form (in account_move_batch_validate) validate.account.move