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