Skip to content
Extraits de code Groupes Projets
Valider 91f91e47 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament Validation de Rémi - Le Filament
Parcourir les fichiers

[IMP] add order by field

parent 1bb968e6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -101,14 +101,14 @@ repos: ...@@ -101,14 +101,14 @@ repos:
- id: pyupgrade - id: pyupgrade
args: ["--keep-percent-format"] args: ["--keep-percent-format"]
- repo: https://github.com/PyCQA/isort - repo: https://github.com/PyCQA/isort
rev: 5.10.1 rev: 5.12.0
hooks: hooks:
- id: isort - id: isort
name: isort except __init__.py name: isort except __init__.py
args: args:
- --settings=. - --settings=.
exclude: /__init__\.py$ exclude: /__init__\.py$
- repo: https://gitlab.com/PyCQA/flake8 - repo: https://github.com/PyCQA/flake8
rev: 3.9.2 rev: 3.9.2
hooks: hooks:
- id: flake8 - id: flake8
......
...@@ -35,18 +35,27 @@ class JournalDatasExport(http.Controller): ...@@ -35,18 +35,27 @@ class JournalDatasExport(http.Controller):
export_id = request.env["export.journal.type"].browse(int(export)) export_id = request.env["export.journal.type"].browse(int(export))
# Set domain # Set domain
domain = self._get_domain(export_id, export_type, date_start, date_end) 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 # Retrieve lines & set datas
lines_to_export = [] lines_to_export = []
if not export_id.group_ids: 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) lines_to_export = self._get_lines(aml_ids, export_id)
else: else:
group_fields = export_id.group_ids.mapped("field_id.name") group_fields = export_id.group_ids.mapped("field_id.name")
group_agg = export_id.group_ids.mapped( 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( 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: for group in grouped_lines:
if export_id.is_group_header: if export_id.is_group_header:
header = [self._get_group_name(export_id, group)] header = [self._get_group_name(export_id, group)]
......
...@@ -37,6 +37,10 @@ class ExportJournalType(models.Model): ...@@ -37,6 +37,10 @@ class ExportJournalType(models.Model):
journal_ids = fields.Many2many( journal_ids = fields.Many2many(
comodel_name="account.journal", string="Journaux", copy=True 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=";") delimiter = fields.Char("Séparateur", default=";")
csv_datestyle = fields.Char("Format Date CSV", default="%Y-%m-%d") csv_datestyle = fields.Char("Format Date CSV", default="%Y-%m-%d")
xls_datestyle = fields.Char("Format Date XLS", default="YYYY-MM-DD") xls_datestyle = fields.Char("Format Date XLS", default="YYYY-MM-DD")
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
widget="domain" widget="domain"
options='{"model": "account.move.line"}' options='{"model": "account.move.line"}'
/> />
<field name="order_by" />
</group> </group>
</group> </group>
<notebook> <notebook>
...@@ -49,10 +50,13 @@ ...@@ -49,10 +50,13 @@
La première colonne correspond au nom de l'entête du fichier de sortie.<br 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 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> </div>
<field name="fields_ids" context="{'default_export_id': active_id}"> <field
name="fields_ids"
context="{'default_export_id': active_id}"
>
<tree editable="bottom"> <tree editable="bottom">
<field name="sequence" widget="handle" /> <field name="sequence" widget="handle" />
<field name="name" required="1" /> <field name="name" required="1" />
...@@ -69,7 +73,10 @@ ...@@ -69,7 +73,10 @@
<field name="is_group_header" /> <field name="is_group_header" />
</group> </group>
</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"> <tree editable="bottom">
<field name="sequence" widget="handle" /> <field name="sequence" widget="handle" />
<field <field
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter