From cb7342f4f7e82ab3016089f820bb0813def8df10 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 2 Jul 2014 14:47:06 +0200 Subject: [PATCH] [FIX] move all unported addons into __unported__ folder instead of adding _unported suffix --- account_move_batch_validate/__init__.py | 24 --- account_move_batch_validate/__openerp__.py | 81 -------- account_move_batch_validate/account.py | 157 -------------- account_move_batch_validate/account_view.xml | 28 --- .../i18n/account_move_batch_validate.pot | 191 ----------------- account_move_batch_validate/i18n/fr.po | 192 ------------------ .../test/batch_validate.yml | 49 ----- .../test/batch_validate_then_delete_move.yml | 52 ----- .../test/batch_validate_then_unmark.yml | 63 ------ .../wizard/__init__.py | 22 -- .../wizard/move_marker.py | 128 ------------ .../wizard/move_marker_view.xml | 60 ------ 12 files changed, 1047 deletions(-) delete mode 100644 account_move_batch_validate/__init__.py delete mode 100644 account_move_batch_validate/__openerp__.py delete mode 100644 account_move_batch_validate/account.py delete mode 100644 account_move_batch_validate/account_view.xml delete mode 100644 account_move_batch_validate/i18n/account_move_batch_validate.pot delete mode 100644 account_move_batch_validate/i18n/fr.po delete mode 100644 account_move_batch_validate/test/batch_validate.yml delete mode 100644 account_move_batch_validate/test/batch_validate_then_delete_move.yml delete mode 100644 account_move_batch_validate/test/batch_validate_then_unmark.yml delete mode 100644 account_move_batch_validate/wizard/__init__.py delete mode 100644 account_move_batch_validate/wizard/move_marker.py delete mode 100644 account_move_batch_validate/wizard/move_marker_view.xml diff --git a/account_move_batch_validate/__init__.py b/account_move_batch_validate/__init__.py deleted file mode 100644 index df1a591bd..000000000 --- a/account_move_batch_validate/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################### -# # -# Author: Leonardo Pistone -# Copyright 2014 Camptocamp SA -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as # -# published by the Free Software Foundation, either version 3 of the # -# License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -# # -############################################################################### -"""Account Move Batch Validate.""" - -from . import account # noqa -from . import wizard # noqa diff --git a/account_move_batch_validate/__openerp__.py b/account_move_batch_validate/__openerp__.py deleted file mode 100644 index 14c18ad64..000000000 --- a/account_move_batch_validate/__openerp__.py +++ /dev/null @@ -1,81 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################### -# # -# Author: Leonardo Pistone -# Copyright 2014 Camptocamp SA -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as # -# published by the Free Software Foundation, either version 3 of the # -# License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -# # -############################################################################### -{ - 'name': "Account Move Batch Validate", - 'version': '0.2', - 'author': 'Camptocamp', - 'maintainer': 'Camptocamp', - 'category': 'Finance', - 'complexity': 'normal', - 'depends': [ - 'account', - 'account_default_draft_move', - 'connector', - ], - 'description': """ - Account Move Batch Validate - - This module provides a wizard to post many Journal Entries in batch. it - uses the queue system introduced by the OpenERP Connector to handle a - big quantity of moves in batch. - - The module account_default_draft_move introdoces a workflow where the - Journal Entries are always entered in OpenERP in draft state, and the - posting happens later, for example at the end of the period. The core - account module provides a wizard to post all the moves in the period, - but that is problematic when there are many moves. - - 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 - OpenERP Connector, 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. - - """, - 'website': 'http://www.camptocamp.com', - 'data': [ - 'account_view.xml', - 'wizard/move_marker_view.xml', - ], - 'test': [ - 'test/batch_validate.yml', - 'test/batch_validate_then_unmark.yml', - 'test/batch_validate_then_delete_move.yml', - ], - 'installable': False, - 'images': [], - 'license': 'AGPL-3', -} diff --git a/account_move_batch_validate/account.py b/account_move_batch_validate/account.py deleted file mode 100644 index 622cf9314..000000000 --- a/account_move_batch_validate/account.py +++ /dev/null @@ -1,157 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################### -# # -# Author: Leonardo Pistone -# Copyright 2014 Camptocamp SA -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as # -# published by the Free Software Foundation, either version 3 of the # -# License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -# # -############################################################################### -"""Accounting customisation for delayed posting.""" - -import logging - -from openerp.osv import fields, orm -from openerp.tools.translate import _ - -from openerp.addons.connector.queue.job import job -from openerp.addons.connector.session import ConnectorSession -from openerp.addons.connector.queue.job import OpenERPJobStorage - -_logger = logging.getLogger(__name__) - -# do a massive write on account moves BLOCK_SIZE at a time -BLOCK_SIZE = 1000 - - -class account_move(orm.Model): - - """We modify the account move to allow delayed posting.""" - - _name = 'account.move' - _inherit = 'account.move' - - _columns = { - 'to_post': fields.boolean( - 'Posting Requested', - readonly=True, - help='Check this box to mark the move for batch posting' - ), - 'post_job_uuid': fields.char( - 'UUID of the Job to approve this move' - ), - } - - def _delay_post_marked(self, cr, uid, eta=None, context=None): - """Create a job for every move marked for posting. - - If some moves already have a job, they are skipped. - - """ - - if context is None: - context = {} - - session = ConnectorSession(cr, uid, context=context) - - move_ids = self.search(cr, uid, [ - ('to_post', '=', True), - ('post_job_uuid', '=', False), - ('state', '=', 'draft'), - ], context=context) - name = self._name - - # maybe not creating too many dictionaries will make us a bit faster - values = {'post_job_uuid': None} - _logger.info( - u'{0} jobs for posting moves have been created.'.format( - len(move_ids) - ) - ) - - for move_id in move_ids: - job_uuid = validate_one_move.delay(session, name, move_id, - eta=eta) - values['post_job_uuid'] = job_uuid - self.write(cr, uid, [move_id], values) - - def _cancel_jobs(self, cr, uid, context=None): - """Find moves where the mark has been removed and cancel the jobs. - - For the moves that are posted already it's too late: we skip them. - - """ - - if context is None: - context = {} - - session = ConnectorSession(cr, uid, context=context) - storage = OpenERPJobStorage(session) - - move_ids = self.search(cr, uid, [ - ('to_post', '=', False), - ('post_job_uuid', '!=', False), - ('state', '=', 'draft'), - ], context=context) - - for move in self.browse(cr, uid, move_ids, context=context): - job = storage.load(move.post_job_uuid) - if job.state in (u'pending', u'enqueued'): - job.set_done(result=_( - u'Task set to Done because the user unmarked the move' - )) - storage.store(job) - - def mark_for_posting(self, cr, uid, move_ids, eta=None, context=None): - """Mark a list of moves for delayed posting, and enqueue the jobs.""" - if context is None: - context = {} - # For massive amounts of moves, this becomes necessary to avoid - # MemoryError's - - _logger.info( - u'{0} moves marked for posting.'.format(len(move_ids)) - ) - - for start in xrange(0, len(move_ids), BLOCK_SIZE): - self.write( - cr, - uid, - move_ids[start:start + BLOCK_SIZE], - {'to_post': True}, - context=context) - # users like to see the flag sooner rather than later - cr.commit() - self._delay_post_marked(cr, uid, eta=eta, context=context) - - def unmark_for_posting(self, cr, uid, move_ids, context=None): - """Unmark moves for delayed posting, and cancel the jobs.""" - if context is None: - context = {} - self.write(cr, uid, move_ids, {'to_post': False}, context=context) - self._cancel_jobs(cr, uid, context=context) - - -@job -def validate_one_move(session, model_name, move_id): - """Validate a move, and leave the job reference in place.""" - move_pool = session.pool['account.move'] - if move_pool.exists(session.cr, session.uid, [move_id]): - move_pool.button_validate( - session.cr, - session.uid, - [move_id] - ) - else: - return _(u'Nothing to do because the record has been deleted') diff --git a/account_move_batch_validate/account_view.xml b/account_move_batch_validate/account_view.xml deleted file mode 100644 index 1f5a60af9..000000000 --- a/account_move_batch_validate/account_view.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - view.move.to_post.tree - account.move - - - - - - - - - - view.move.to_post.form - account.move - - - - - - - - - - diff --git a/account_move_batch_validate/i18n/account_move_batch_validate.pot b/account_move_batch_validate/i18n/account_move_batch_validate.pot deleted file mode 100644 index d979d1c72..000000000 --- a/account_move_batch_validate/i18n/account_move_batch_validate.pot +++ /dev/null @@ -1,191 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_move_batch_validate -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-01-17 14:17+0000\n" -"PO-Revision-Date: 2014-01-17 14:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_move_batch_validate -#: field:account.move,post_job_uuid:0 -msgid "UUID of the Job to approve this move" -msgstr "" - -#. module: account_move_batch_validate -#: help:account.move,to_post:0 -msgid "Check this box to mark the move for batch posting" -msgstr "" - -#. module: account_move_batch_validate -#: code:addons/account_move_batch_validate/account.py:95 -#, python-format -msgid "Task set to Done because the user unmarked the move" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Mark" -msgstr "" - -#. module: account_move_batch_validate -#: selection:account.move.marker,action:0 -msgid "Unmark for posting" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move,to_post:0 -msgid "To Post" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,company_id:0 -msgid "Company" -msgstr "Société" - -#. module: account_move_batch_validate -#: model:ir.actions.act_window,name:account_move_batch_validate.action_account_move_marker -#: model:ir.ui.menu,name:account_move_batch_validate.menu_account_move_marker -msgid "Mark Journal Items for Batch Posting" -msgstr "" - -#. module: account_move_batch_validate -#: selection:account.move.marker,filter:0 -msgid "Date" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,chart_account_id:0 -msgid "Chart of Account" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -#: field:account.move.marker,journal_ids:0 -msgid "Journals" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,target_move:0 -msgid "Target Moves" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Report Options" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -#: selection:account.move.marker,filter:0 -msgid "Periods" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,date_to:0 -msgid "End Date" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Dates" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,period_from:0 -msgid "Start Period" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,eta:0 -msgid "Seconds to wait before starting the jobs" -msgstr "" - -#. module: account_move_batch_validate -#: selection:account.move.marker,target_move:0 -msgid "All Posted Entries" -msgstr "" - -#. module: account_move_batch_validate -#: help:account.move.marker,fiscalyear_id:0 -msgid "Keep empty for all open fiscal year" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,period_to:0 -msgid "End Period" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,fiscalyear_id:0 -msgid "Fiscal Year" -msgstr "" - -#. module: account_move_batch_validate -#: selection:account.move.marker,filter:0 -msgid "No Filters" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,action:0 -msgid "Action" -msgstr "" - -#. module: account_move_batch_validate -#: model:ir.model,name:account_move_batch_validate.model_account_move -msgid "Account Entry" -msgstr "" - -#. module: account_move_batch_validate -#: selection:account.move.marker,action:0 -msgid "Mark for posting" -msgstr "" - -#. module: account_move_batch_validate -#: model:ir.model,name:account_move_batch_validate.model_account_move_marker -msgid "Mark Journal Items for batch posting" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Filters" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Cancel" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,date_from:0 -msgid "Start Date" -msgstr "" - -#. module: account_move_batch_validate -#: help:account.move.marker,chart_account_id:0 -msgid "Select Charts of Accounts" -msgstr "" - -#. module: account_move_batch_validate -#: field:account.move.marker,filter:0 -msgid "Filter by" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "or" -msgstr "" - -#. module: account_move_batch_validate -#: selection:account.move.marker,target_move:0 -msgid "All Entries" -msgstr "" - diff --git a/account_move_batch_validate/i18n/fr.po b/account_move_batch_validate/i18n/fr.po deleted file mode 100644 index 31d4a7f67..000000000 --- a/account_move_batch_validate/i18n/fr.po +++ /dev/null @@ -1,192 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_move_batch_validate -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-01-17 14:17+0000\n" -"PO-Revision-Date: 2014-02-24 05:21+0000\n" -"Last-Translator: Leonardo Pistone - camptocamp " -"\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" -"X-Generator: Launchpad (build 17041)\n" - -#. module: account_move_batch_validate -#: field:account.move,post_job_uuid:0 -msgid "UUID of the Job to approve this move" -msgstr "UUID du Job pour approuver cette move" - -#. module: account_move_batch_validate -#: help:account.move,to_post:0 -msgid "Check this box to mark the move for batch posting" -msgstr "Check this box to mark the move for batch posting" - -#. module: account_move_batch_validate -#: code:addons/account_move_batch_validate/account.py:95 -#, python-format -msgid "Task set to Done because the user unmarked the move" -msgstr "" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Mark" -msgstr "Mark" - -#. module: account_move_batch_validate -#: selection:account.move.marker,action:0 -msgid "Unmark for posting" -msgstr "Unmark for posting" - -#. module: account_move_batch_validate -#: field:account.move,to_post:0 -msgid "To Post" -msgstr "Validation demandée" - -#. module: account_move_batch_validate -#: field:account.move.marker,company_id:0 -msgid "Company" -msgstr "Société" - -#. module: account_move_batch_validate -#: model:ir.actions.act_window,name:account_move_batch_validate.action_account_move_marker -#: model:ir.ui.menu,name:account_move_batch_validate.menu_account_move_marker -msgid "Mark Journal Items for Batch Posting" -msgstr "" - -#. module: account_move_batch_validate -#: selection:account.move.marker,filter:0 -msgid "Date" -msgstr "Date" - -#. module: account_move_batch_validate -#: field:account.move.marker,chart_account_id:0 -msgid "Chart of Account" -msgstr "Plan Comptable" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -#: field:account.move.marker,journal_ids:0 -msgid "Journals" -msgstr "Journaux" - -#. module: account_move_batch_validate -#: field:account.move.marker,target_move:0 -msgid "Target Moves" -msgstr "Target Moves" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Report Options" -msgstr "Report Options" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -#: selection:account.move.marker,filter:0 -msgid "Periods" -msgstr "Periods" - -#. module: account_move_batch_validate -#: field:account.move.marker,date_to:0 -msgid "End Date" -msgstr "End Date" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Dates" -msgstr "Dates" - -#. module: account_move_batch_validate -#: field:account.move.marker,period_from:0 -msgid "Start Period" -msgstr "Période de debut" - -#. module: account_move_batch_validate -#: field:account.move.marker,eta:0 -msgid "Seconds to wait before starting the jobs" -msgstr "Seconds to wait before starting the jobs" - -#. module: account_move_batch_validate -#: selection:account.move.marker,target_move:0 -msgid "All Posted Entries" -msgstr "Toutes les écritures passées" - -#. module: account_move_batch_validate -#: help:account.move.marker,fiscalyear_id:0 -msgid "Keep empty for all open fiscal year" -msgstr "Keep empty for all open fiscal year" - -#. module: account_move_batch_validate -#: field:account.move.marker,period_to:0 -msgid "End Period" -msgstr "Période de fin" - -#. module: account_move_batch_validate -#: field:account.move.marker,fiscalyear_id:0 -msgid "Fiscal Year" -msgstr "Exercice" - -#. module: account_move_batch_validate -#: selection:account.move.marker,filter:0 -msgid "No Filters" -msgstr "Aucun filtre" - -#. module: account_move_batch_validate -#: field:account.move.marker,action:0 -msgid "Action" -msgstr "Action" - -#. module: account_move_batch_validate -#: model:ir.model,name:account_move_batch_validate.model_account_move -msgid "Account Entry" -msgstr "Pièce comptable" - -#. module: account_move_batch_validate -#: selection:account.move.marker,action:0 -msgid "Mark for posting" -msgstr "Sélectionner pour validation" - -#. module: account_move_batch_validate -#: model:ir.model,name:account_move_batch_validate.model_account_move_marker -msgid "Mark Journal Items for batch posting" -msgstr "Sélectionner Ecritures comptables à Valider en batch" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Filters" -msgstr "Filtres" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "Cancel" -msgstr "Annuler" - -#. module: account_move_batch_validate -#: field:account.move.marker,date_from:0 -msgid "Start Date" -msgstr "Date de début" - -#. module: account_move_batch_validate -#: help:account.move.marker,chart_account_id:0 -msgid "Select Charts of Accounts" -msgstr "Sélectionner Plan Comptable" - -#. module: account_move_batch_validate -#: field:account.move.marker,filter:0 -msgid "Filter by" -msgstr "Filtrer par" - -#. module: account_move_batch_validate -#: view:account.move.marker:0 -msgid "or" -msgstr "ou" - -#. module: account_move_batch_validate -#: selection:account.move.marker,target_move:0 -msgid "All Entries" -msgstr "Toutes les écritures" diff --git a/account_move_batch_validate/test/batch_validate.yml b/account_move_batch_validate/test/batch_validate.yml deleted file mode 100644 index e129914fa..000000000 --- a/account_move_batch_validate/test/batch_validate.yml +++ /dev/null @@ -1,49 +0,0 @@ -- - I create a move -- - !record {model: account.move, id: move1}: - journal_id: account.sales_journal - line_id: - - name: Receivable line - account_id: account.a_recv - debit: 1000.0 - - name: Sales line - account_id: account.a_sale - credit: 1000.0 -- - I check that the move is still draft -- - !assert {model: account.move, id: move1}: - - state == 'draft' -- - I create a wizard -- - !record {model: account.move.marker, id: wiz_marker1}: - action: mark -- - I run the wizard -- - !python {model: account.move.marker}: | - context['automated_test_execute_now'] = True - self.button_mark( - cr, uid, [ref('wiz_marker1')], context=context - ) -- - I read the UUID from the move, I dequeue the job and run it -- - !python {model: account.move}: | - from openerp.addons.connector.queue.job import OpenERPJobStorage - from openerp.addons.connector.session import ConnectorSession - - move = self.browse(cr, uid, ref('move1'), context=context) - uuid = move.post_job_uuid - session = ConnectorSession(cr, uid, context=context) - storage = OpenERPJobStorage(session) - - myjob = storage.load(uuid) - myjob.perform(session) -- - I check that the move is now approved -- - !assert {model: account.move, id: move1}: - - state == 'posted' diff --git a/account_move_batch_validate/test/batch_validate_then_delete_move.yml b/account_move_batch_validate/test/batch_validate_then_delete_move.yml deleted file mode 100644 index c7f1d7400..000000000 --- a/account_move_batch_validate/test/batch_validate_then_delete_move.yml +++ /dev/null @@ -1,52 +0,0 @@ -- - I create a move -- - !record {model: account.move, id: move3}: - journal_id: account.sales_journal - line_id: - - name: Receivable line - account_id: account.a_recv - debit: 3000.0 - - name: Sales line - account_id: account.a_sale - credit: 3000.0 -- - I check that the move is still draft -- - !assert {model: account.move, id: move3}: - - state == 'draft' -- - I create a wizard with a long ETA -- - !record {model: account.move.marker, id: wiz_marker4}: - action: mark - eta: 10000 -- - I run the wizard -- - !python {model: account.move.marker}: | - context['automated_test_execute_now'] = True - self.button_mark( - cr, uid, [ref('wiz_marker4')], context=context - ) -- - I read the UUID from the move, delete the move, then dequeue the job and run it. - It should raise no exceptions. -- - !python {model: account.move}: | - from openerp.addons.connector.queue.job import OpenERPJobStorage - from openerp.addons.connector.session import ConnectorSession - - move = self.browse(cr, uid, ref('move3'), context=context) - uuid = move.post_job_uuid - - assert uuid, 'The Job has not been created.' - self.unlink(cr, uid, ref('move3'), context=context) - - session = ConnectorSession(cr, uid, context=context) - storage = OpenERPJobStorage(session) - - myjob = storage.load(uuid) - myjob.perform(session) - - assert myjob.result == u'Nothing to do because the record has been deleted' diff --git a/account_move_batch_validate/test/batch_validate_then_unmark.yml b/account_move_batch_validate/test/batch_validate_then_unmark.yml deleted file mode 100644 index adf395107..000000000 --- a/account_move_batch_validate/test/batch_validate_then_unmark.yml +++ /dev/null @@ -1,63 +0,0 @@ -- - I create a move -- - !record {model: account.move, id: move2}: - journal_id: account.sales_journal - line_id: - - name: Receivable line - account_id: account.a_recv - debit: 2000.0 - - name: Sales line - account_id: account.a_sale - credit: 2000.0 -- - I check that the move is still draft -- - !assert {model: account.move, id: move2}: - - state == 'draft' -- - I create a wizard with a long ETA -- - !record {model: account.move.marker, id: wiz_marker2}: - action: mark - eta: 10000 -- - I run the wizard -- - !python {model: account.move.marker}: | - context['automated_test_execute_now'] = True - self.button_mark( - cr, uid, [ref('wiz_marker2')], context=context - ) -- - Now I change my mind and I create a wizard to unmark the moves -- - !record {model: account.move.marker, id: wiz_unmarker3}: - action: unmark -- - I run the wizard -- - !python {model: account.move.marker}: | - self.button_mark( - cr, uid, [ref('wiz_unmarker3')], context=context - ) -- - Now I checked that my job is done, and the move is still draft -- - !python {model: account.move}: | - from openerp.addons.connector.queue.job import OpenERPJobStorage - from openerp.addons.connector.session import ConnectorSession - - session = ConnectorSession(cr, uid, context=context) - storage = OpenERPJobStorage(session) - - move = self.browse(cr, uid, ref('move2'), context=context) - myjob = storage.load(move.post_job_uuid) - assert myjob.state == 'done', 'Job is in state {0}, should be done'.format( - myjob.state - ) -- - I check that the move is still draft -- - !assert {model: account.move, id: move2}: - - state == 'draft' diff --git a/account_move_batch_validate/wizard/__init__.py b/account_move_batch_validate/wizard/__init__.py deleted file mode 100644 index f13b63cb0..000000000 --- a/account_move_batch_validate/wizard/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################### -# # -# Author: Leonardo Pistone -# Copyright 2014 Camptocamp SA -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as # -# published by the Free Software Foundation, either version 3 of the # -# License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -# # -############################################################################### -"""Wizard to mark account moves for batch posting.""" -from . import move_marker # noqa diff --git a/account_move_batch_validate/wizard/move_marker.py b/account_move_batch_validate/wizard/move_marker.py deleted file mode 100644 index c018bf190..000000000 --- a/account_move_batch_validate/wizard/move_marker.py +++ /dev/null @@ -1,128 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################### -# # -# Author: Leonardo Pistone -# Copyright 2014 Camptocamp SA -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU Affero General Public License as # -# published by the Free Software Foundation, either version 3 of the # -# License, or (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU Affero General Public License for more details. # -# # -# You should have received a copy of the GNU Affero General Public License # -# along with this program. If not, see . # -# # -############################################################################### -"""Wizards for batch posting.""" - -from openerp.osv import fields, orm -from openerp.addons.connector.session import ConnectorSession -from openerp.addons.connector.queue.job import job - - -class AccountMoveMarker(orm.TransientModel): - - """Wizard to mark account moves for batch posting.""" - - _name = "account.move.marker" - _inherit = "account.common.report" - _description = "Mark Journal Items for batch posting" - - _columns = { - 'action': fields.selection([ - ('mark', 'Mark for posting'), - ('unmark', 'Unmark for posting'), - ], "Action", required=True), - 'eta': fields.integer('Seconds to wait before starting the jobs') - } - - _defaults = { - 'action': 'mark', - } - - def button_mark(self, cr, uid, ids, context=None): - """Create a single job that will create one job per move. - - Return action. - - """ - session = ConnectorSession(cr, uid, context=context) - for wizard_id in ids: - # to find out what _classic_write does, read the documentation. - wizard_data = self.read(cr, uid, wizard_id, context=context, - load='_classic_write') - wizard_data.pop('id') - - if context.get('automated_test_execute_now'): - process_wizard(session, self._name, wizard_data) - else: - process_wizard.delay(session, self._name, wizard_data) - - return {'type': 'ir.actions.act_window_close'} - - def process_wizard(self, cr, uid, ids, context=None): - """Choose the correct list of moves to mark and then validate.""" - for wiz in self.browse(cr, uid, ids, context=context): - - move_obj = self.pool['account.move'] - - domain = [('state', '=', 'draft')] - - if wiz.filter == 'filter_period': - period_pool = self.pool['account.period'] - period_ids = period_pool.search(cr, uid, [ - ('date_start', '>=', wiz.period_from.date_start), - ('date_stop', '<=', wiz.period_to.date_stop), - ], context=context) - - domain.append(( - 'period_id', - 'in', - period_ids - )) - elif wiz.filter == 'filter_date': - domain += [ - ('date', '>=', wiz.date_from), - ('date', '<=', wiz.date_to), - ] - - if wiz.journal_ids: - domain.append(( - 'journal_id', - 'in', - [journal.id for journal in wiz.journal_ids] - )) - - move_ids = move_obj.search(cr, uid, domain, context=context) - - if wiz.action == 'mark': - move_obj.mark_for_posting(cr, uid, move_ids, eta=wiz.eta, - context=context) - - elif wiz.action == 'unmark': - move_obj.unmark_for_posting(cr, uid, move_ids, context=context) - - -@job -def process_wizard(session, model_name, wizard_data): - """Create jobs to validate Journal Entries.""" - - wiz_obj = session.pool[model_name] - new_wiz_id = wiz_obj.create( - session.cr, - session.uid, - wizard_data, - session.context - ) - - wiz_obj.process_wizard( - session.cr, - session.uid, - ids=[new_wiz_id], - context=session.context, - ) diff --git a/account_move_batch_validate/wizard/move_marker_view.xml b/account_move_batch_validate/wizard/move_marker_view.xml deleted file mode 100644 index 3f1b0ab51..000000000 --- a/account_move_batch_validate/wizard/move_marker_view.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - Mark Jornal Items for Batch Posting - account.move.marker - -
-
-
- - - Mark Jornal Items for Batch Posting - ir.actions.act_window - account.move.marker - form - form - new - - - - - Mark Journal Items for Batch Posting - - - -
-