diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 168470e2ed745631aefb772a4a864cf1de76d3cb..74a4acb8f47165575be30d4c8dd96b2a7473bc63 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,6 +27,11 @@ repos: entry: found forbidden files; remove them language: fail files: "\\.rej$" + - id: en-po-files + name: en.po files cannot exist + entry: found a en.po file + language: fail + files: '[a-zA-Z0-9_]*/i18n/en\.po$' - repo: https://github.com/oca/maintainer-tools rev: dfba427ba03900b69e0a7f2c65890dc48921d36a hooks: @@ -96,14 +101,14 @@ repos: - id: pyupgrade args: ["--keep-percent-format"] - repo: https://github.com/PyCQA/isort - rev: 5.9.3 + rev: 5.12.0 hooks: - id: isort name: isort except __init__.py args: - --settings=. exclude: /__init__\.py$ - - repo: https://gitlab.com/PyCQA/flake8 + - repo: https://github.com/PyCQA/flake8 rev: 3.9.2 hooks: - id: flake8 diff --git a/controllers/main.py b/controllers/main.py index 73cfa70ae5e1a7307b974f12a8d90357ab4ace97..39cc88e37e9d664259b40b82c8eed64540baff88 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -36,18 +36,27 @@ class JournalDatasExport(http.Controller): export_id = request.env["export.journal.type"].browse(int(export)) # Set domain domain = self._get_domain(export_id, export_type, date_start, date_end) + order_by = export_id.order_by if export_id.order_by else "id" # Retrieve lines & set datas lines_to_export = [] if not export_id.group_ids: - aml_ids = request.env["account.move.line"].search(domain) + aml_ids = request.env["account.move.line"].search(domain, order=order_by) lines_to_export = self._get_lines(aml_ids, export_id) else: group_fields = export_id.group_ids.mapped("field_id.name") group_agg = export_id.group_ids.mapped( - lambda f: f"{f.field_id.name}:{f.field_agg}" if f.field_agg else f.field_id.name) + lambda f: f"{f.field_id.name}:{f.field_agg}" + if f.field_agg + else f.field_id.name + ) grouped_lines = request.env["account.move.line"].read_group( - domain, fields=group_fields, groupby=group_agg, lazy=False) + domain, + fields=group_fields, + groupby=group_agg, + orderby=order_by, + lazy=False, + ) for group in grouped_lines: if export_id.is_group_header: header = [self._get_group_name(export_id, group)] diff --git a/models/export_journal_group.py b/models/export_journal_group.py index b29c6d2529e9744995d92da235f9fd6f2b5335ff..26d8131e73f1430913aa63c9d6aaf7bd0a47261b 100644 --- a/models/export_journal_group.py +++ b/models/export_journal_group.py @@ -15,9 +15,9 @@ class ExportJournalGroup(models.Model): comodel_name="ir.model.fields", string="Champ", domain="[('model_id', '=', 'account.move.line'), ('store', '=', True)," - "('ttype', 'not in', " - "['many2many', 'one2many', 'binary', 'integer', 'float'])" - "]", + "('ttype', 'not in', " + "['many2many', 'one2many', 'binary', 'integer', 'float'])" + "]", ) field_type = fields.Selection(related="field_id.ttype") field_agg = fields.Char("Aggregation") diff --git a/models/export_journal_type.py b/models/export_journal_type.py index d83991e2720c3bbcf3f1cc83d4125d9aa314528a..402a155e86ce6b8521890cfc7d75cbeeb9842b12 100644 --- a/models/export_journal_type.py +++ b/models/export_journal_type.py @@ -37,6 +37,10 @@ class ExportJournalType(models.Model): journal_ids = fields.Many2many( comodel_name="account.journal", string="Journaux", copy=True ) + order_by = fields.Char( + string="Ordre d'affichage", + help="Liste des champs du modèle ex: move_id, partner_id", + ) delimiter = fields.Char("Séparateur", default=";") csv_datestyle = fields.Char("Format Date CSV", default="%Y-%m-%d") xls_datestyle = fields.Char("Format Date XLS", default="YYYY-MM-DD") diff --git a/views/export_journal_type.xml b/views/export_journal_type.xml index 3ba2d024b3aa634c8406155e8b574d7abf2b84c2..b761eda42983e51dc40990cdcdd82326ae480dc8 100644 --- a/views/export_journal_type.xml +++ b/views/export_journal_type.xml @@ -41,6 +41,7 @@ widget="domain" options='{"model": "account.move.line"}' /> + <field name="order_by" /> </group> </group> <notebook> @@ -49,10 +50,13 @@ La première colonne correspond au nom de l'entête du fichier de sortie.<br /> La deuxième colonne est la valeur de sortie : code python où l'objet <code - >line</code> correspond à un <code>account.move.line</code>.<br - /> + >line</code> correspond à un <code + >account.move.line</code>.<br /> </div> - <field name="fields_ids" context="{'default_export_id': active_id}"> + <field + name="fields_ids" + context="{'default_export_id': active_id}" + > <tree editable="bottom"> <field name="sequence" widget="handle" /> <field name="name" required="1" /> @@ -69,7 +73,10 @@ <field name="is_group_header" /> </group> </group> - <field name="group_ids" context="{'default_export_id': active_id}"> + <field + name="group_ids" + context="{'default_export_id': active_id}" + > <tree editable="bottom"> <field name="sequence" widget="handle" /> <field