Merge pull request #238 from acsone/8.0-fix-journal-account-move-batch-validate-ape

[8.0][FIX][account_move_batch_validate] Filter on journals doesn't work
This commit is contained in:
Alexandre Fayolle
2015-09-04 08:01:38 +02:00
7 changed files with 189 additions and 417 deletions

View File

@@ -1,13 +1,13 @@
# Translation of OpenERP Server.
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_move_batch_validate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Project-Id-Version: Odoo Server 8.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"
"POT-Creation-Date: 2015-08-18 07:21+0000\n"
"PO-Revision-Date: 2015-08-18 07:21+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,8 +16,13 @@ msgstr ""
"Plural-Forms: \n"
#. module: account_move_batch_validate
#: field:account.move,post_job_uuid:0
msgid "UUID of the Job to approve this move"
#: model:ir.model,name:account_move_batch_validate.model_account_move
msgid "Account Entry"
msgstr ""
#. module: account_move_batch_validate
#: field:validate.account.move,action:0
msgid "Action"
msgstr ""
#. module: account_move_batch_validate
@@ -26,166 +31,49 @@ 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
#: selection:validate.account.move,action:0
msgid "Mark for posting"
msgstr ""
#. module: account_move_batch_validate
#: code:addons/account_move_batch_validate/account.py:158
#, python-format
msgid "Nothing to do because the record has been deleted"
msgstr ""
#. module: account_move_batch_validate
#: field:account.move,to_post:0
msgid "Posting Requested"
msgstr ""
#. module: account_move_batch_validate
#: field:validate.account.move,eta:0
msgid "Seconds to wait before starting the jobs"
msgstr ""
#. module: account_move_batch_validate
#: code:addons/account_move_batch_validate/account.py:112
#, 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"
#: field:account.move,post_job_uuid:0
msgid "UUID of the Job to approve this move"
msgstr ""
#. module: account_move_batch_validate
#: selection:account.move.marker,action:0
#: selection:validate.account.move,action:0
msgid "Unmark for posting"
msgstr ""
#. module: account_move_batch_validate
#: field:account.move,to_post:0
msgid "To Post"
#: field:validate.account.move,asynchronous:0
msgid "Use asynchronous validation"
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"
#: model:ir.model,name:account_move_batch_validate.model_validate_account_move
msgid "Validate Account Move"
msgstr ""

View File

@@ -1,145 +1,19 @@
# Translation of OpenERP Server.
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_move_batch_validate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Project-Id-Version: Odoo Server 8.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 "
"<leonardo.pistone@camptocamp.com>\n"
"POT-Creation-Date: 2015-08-18 07:22+0000\n"
"PO-Revision-Date: 2015-08-18 07:22+0000\n"
"Last-Translator: <>\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"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_move_batch_validate
#: model:ir.model,name:account_move_batch_validate.model_account_move
@@ -147,46 +21,59 @@ msgid "Account Entry"
msgstr "Pièce comptable"
#. module: account_move_batch_validate
#: selection:account.move.marker,action:0
#: field:validate.account.move,action:0
msgid "Action"
msgstr "Action"
#. module: account_move_batch_validate
#: help:account.move,to_post:0
msgid "Check this box to mark the move for batch posting"
msgstr "Cocher cette case pour marquer les écritures pour une validation asynchrone"
#. module: account_move_batch_validate
#: selection:validate.account.move,action:0
msgid "Mark for posting"
msgstr "Sélectionner pour validation"
msgstr "Marquer 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"
#: code:addons/account_move_batch_validate/account.py:158
#, python-format
msgid "Nothing to do because the record has been deleted"
msgstr "Rien à faire car la ligne a été supprimée"
#. module: account_move_batch_validate
#: view:account.move.marker:0
msgid "Filters"
msgstr "Filtres"
#: field:account.move,to_post:0
msgid "Posting Requested"
msgstr "Validation demandée"
#. module: account_move_batch_validate
#: view:account.move.marker:0
msgid "Cancel"
msgstr "Annuler"
#: field:validate.account.move,eta:0
msgid "Seconds to wait before starting the jobs"
msgstr "Nombre de secondes à attendre avant de démarrer les jobs"
#. module: account_move_batch_validate
#: field:account.move.marker,date_from:0
msgid "Start Date"
msgstr "Date de début"
#: code:addons/account_move_batch_validate/account.py:112
#, python-format
msgid "Task set to Done because the user unmarked the move"
msgstr "Tâche mise à terminé car l'utilisateur a décoché la pièce"
#. module: account_move_batch_validate
#: help:account.move.marker,chart_account_id:0
msgid "Select Charts of Accounts"
msgstr "Sélectionner Plan Comptable"
#: field:account.move,post_job_uuid:0
msgid "UUID of the Job to approve this move"
msgstr "UUID du Job pour approuver cette pièce"
#. module: account_move_batch_validate
#: field:account.move.marker,filter:0
msgid "Filter by"
msgstr "Filtrer par"
#: selection:validate.account.move,action:0
msgid "Unmark for posting"
msgstr "Décocher pour la validation"
#. module: account_move_batch_validate
#: view:account.move.marker:0
msgid "or"
msgstr "ou"
#: field:validate.account.move,asynchronous:0
msgid "Use asynchronous validation"
msgstr "Utilisation de la validation asynchrone"
#. module: account_move_batch_validate
#: selection:account.move.marker,target_move:0
msgid "All Entries"
msgstr "Toutes les écritures"
#: model:ir.model,name:account_move_batch_validate.model_validate_account_move
msgid "Validate Account Move"
msgstr "Valider les pièces comptables"

View File

@@ -18,14 +18,26 @@
-
I create a wizard
-
!record {model: account.move.marker, id: wiz_marker1}:
!record {model: validate.account.move, id: wiz_marker1}:
action: mark
-
I set the period and the journal on the wizard
-
!python {model: validate.account.move}: |
move = self.pool['account.move'].browse(cr, uid, ref('move1'),
context=context)
journal_ids = [(6, 0, [move.journal_id.id])]
period_ids = [(6, 0, [move.period_id.id])]
vals = {'journal_ids': journal_ids,
'period_ids': period_ids,
}
self.write(cr, uid, ref('wiz_marker1'), vals, context=context)
-
I run the wizard
-
!python {model: account.move.marker}: |
!python {model: validate.account.move}: |
context['automated_test_execute_now'] = True
self.button_mark(
self.validate_move(
cr, uid, [ref('wiz_marker1')], context=context
)
-

View File

@@ -18,15 +18,27 @@
-
I create a wizard with a long ETA
-
!record {model: account.move.marker, id: wiz_marker4}:
!record {model: validate.account.move, id: wiz_marker4}:
action: mark
eta: 10000
-
I set the period and the journal on the wizard
-
!python {model: validate.account.move}: |
move = self.pool['account.move'].browse(cr, uid, ref('move3'),
context=context)
journal_ids = [(6, 0, [move.journal_id.id])]
period_ids = [(6, 0, [move.period_id.id])]
vals = {'journal_ids': journal_ids,
'period_ids': period_ids,
}
self.write(cr, uid, ref('wiz_marker4'), vals, context=context)
-
I run the wizard
-
!python {model: account.move.marker}: |
!python {model: validate.account.move}: |
context['automated_test_execute_now'] = True
self.button_mark(
self.validate_move(
cr, uid, [ref('wiz_marker4')], context=context
)
-

View File

@@ -18,27 +18,51 @@
-
I create a wizard with a long ETA
-
!record {model: account.move.marker, id: wiz_marker2}:
!record {model: validate.account.move, id: wiz_marker2}:
action: mark
eta: 10000
-
I set the period and the journal on the wizard
-
!python {model: validate.account.move}: |
move = self.pool['account.move'].browse(cr, uid, ref('move2'),
context=context)
journal_ids = [(6, 0, [move.journal_id.id])]
period_ids = [(6, 0, [move.period_id.id])]
vals = {'journal_ids': journal_ids,
'period_ids': period_ids,
}
self.write(cr, uid, ref('wiz_marker2'), vals, context=context)
-
I run the wizard
-
!python {model: account.move.marker}: |
!python {model: validate.account.move}: |
context['automated_test_execute_now'] = True
self.button_mark(
self.validate_move(
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}:
!record {model: validate.account.move, id: wiz_unmarker3}:
action: unmark
-
I set the period and the journal on the wizard
-
!python {model: validate.account.move}: |
move = self.pool['account.move'].browse(cr, uid, ref('move2'),
context=context)
journal_ids = [(6, 0, [move.journal_id.id])]
period_ids = [(6, 0, [move.period_id.id])]
vals = {'journal_ids': journal_ids,
'period_ids': period_ids,
}
self.write(cr, uid, ref('wiz_unmarker3'), vals, context=context)
-
I run the wizard
-
!python {model: account.move.marker}: |
self.button_mark(
!python {model: validate.account.move}: |
self.validate_move(
cr, uid, [ref('wiz_unmarker3')], context=context
)
-

View File

@@ -37,43 +37,53 @@ except ImportError:
job = empty_decorator
class AccountMoveMarker(orm.TransientModel):
class ValidateAccountMove(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"
_inherit = "validate.account.move"
_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')
'action': fields.selection([('mark', 'Mark for posting'),
('unmark', 'Unmark for posting')],
"Action", required=True),
'eta': fields.integer('Seconds to wait before starting the jobs'),
'asynchronous': fields.boolean('Use asynchronous validation'),
}
_defaults = {
'action': 'mark',
'asynchronous': True,
}
def button_mark(self, cr, uid, ids, context=None):
def validate_move(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')
wizard_id = ids[0]
# to find out what _classic_write does, read the documentation.
wizard_data = self.read(cr, uid, wizard_id, context=context,
load='_classic_write')
if not wizard_data.get('asynchronous'):
return super(ValidateAccountMove, self)\
.validate_move(cr, uid, ids, context=context)
wizard_data.pop('id')
if wizard_data.get('journal_ids'):
journals_ids_vals = [(6, False,
wizard_data.get('journal_ids'))]
wizard_data['journal_ids'] = journals_ids_vals
if wizard_data.get('period_ids'):
periods_ids_vals = [(6, False,
wizard_data.get('period_ids'))]
wizard_data['period_ids'] = periods_ids_vals
if context.get('automated_test_execute_now'):
process_wizard(session, self._name, wizard_data)
else:
process_wizard.delay(session, self._name, wizard_data)
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'}
@@ -83,34 +93,11 @@ class AccountMoveMarker(orm.TransientModel):
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)
domain = [('state', '=', 'draft'),
('journal_id', 'in', wiz.journal_ids.ids),
('period_id', 'in', wiz.period_ids.ids)]
move_ids = move_obj.search(cr, uid, domain, order='date',
context=context)
if wiz.action == 'mark':
move_obj.mark_for_posting(cr, uid, move_ids, eta=wiz.eta,

View File

@@ -2,58 +2,20 @@
<openerp>
<data>
<record id="view_account_move_marker" model="ir.ui.view">
<field name="name">Mark Jornal Items for Batch Posting</field>
<field name="model">account.move.marker</field>
<record id="validate_account_move_view" model="ir.ui.view">
<field name="name">Post Journal Entries</field>
<field name="model">validate.account.move</field>
<field name="inherit_id" ref="account.validate_account_move_view" />
<field name="arch" type="xml">
<form string="Report Options" version="7.0">
<label string=""/> <!-- binding for inherited views -->
<group col="4">
<field name="chart_account_id" widget='selection' on_change="onchange_chart_id(chart_account_id, context)"/>
<field name="company_id" invisible="1"/>
<field name="fiscalyear_id" domain="[('company_id','=',company_id)]"/>
<field name="action"/>
</group>
<notebook tabpos="up" colspan="4">
<page string="Filters" name="filters">
<group>
<field name="filter" on_change="onchange_filter(filter, fiscalyear_id)"/>
</group>
<group string="Dates" attrs="{'invisible':[('filter', '!=', 'filter_date')], 'required':[('filter', '=', 'filter_date')]}">
<field name="date_from" />
<field name="date_to" />
</group>
<group string="Periods" attrs="{'invisible':[('filter','!=','filter_period')], 'required':[('filter', '=', 'filter_period')]}">
<field name="period_from" domain="[('fiscalyear_id', '=', fiscalyear_id)]"/>
<field name="period_to" domain="[('fiscalyear_id', '=', fiscalyear_id)]"/>
</group>
</page>
<page string="Journals" name="journal_ids">
<field name="journal_ids"/>
</page>
</notebook>
<footer>
<button name="button_mark" string="Mark" type="object" default_focus="1" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
<xpath expr="//field[@name='journal_ids']" position="before">
<field name="asynchronous" />
<field name="action" attrs="{'invisible': [('asynchronous', '=', False)]}"/>
</xpath>
</field>
</record>
<record id="action_account_move_marker" model="ir.actions.act_window">
<field name="name">Mark Jornal Items for Batch Posting</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.move.marker</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<!-- replace existing menuitem -->
<record id="account.menu_validate_account_moves" model="ir.ui.menu">
<field name="name">Mark Journal Items for Batch Posting</field>
<field name="action" ref="action_account_move_marker" />
<field name="name">Post Journal Entries</field>
</record>
</data>