diff --git a/.prettierrc.yml b/.prettierrc.yml new file mode 100644 index 0000000000000000000000000000000000000000..5b6d4b361ace92f3877993bf2848fac190d8fab6 --- /dev/null +++ b/.prettierrc.yml @@ -0,0 +1,8 @@ +# Defaults for all prettier-supported languages. +# Prettier will complete this with settings from .editorconfig file. +bracketSpacing: false +printWidth: 88 +proseWrap: always +semi: true +trailingComma: "es5" +xmlWhitespaceSensitivity: "strict" diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index d2f220c5a1e1675964c06edb5df0db0fdc7c4247..6a0232912eaea8f50907056597c2b6f4191e0511 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -1,4 +1,9 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +<<<<<<< HEAD "access_acc_repartition_keys_group_operation_superadmin","acc_repartition_keys group_operation_superadmin","model_acc_repartition_keys","oacc.group_operation_superadmin",1,1,1,0 "access_acc_repartition_keys_wizard_group_operation_superadmin","acc_repartition_keys_wizard group_operation_superadmin","model_acc_repartition_keys_wizard","oacc.group_operation_superadmin",1,1,1,1 +======= +"access_acc_repartition_keys_group_operation_admin","acc_repartition_keys group_operation_admin","model_acc_repartition_keys","oacc.group_operation_admin",1,1,1,0 +"access_acc_repartition_keys_wizard_group_operation_admin","acc_repartition_keys_wizard group_operation_admin","model_acc_repartition_keys_wizard","oacc.group_operation_admin",1,1,1,1 +>>>>>>> f8f50dae1c02fa6e972c2873b9ef1d6bf5f0efdc diff --git a/tools/key_file.py b/tools/key_file.py index 1935b230e0677f7de6c17a9fc6fed46a88aa151e..b7e6a0c6c9a3a382d829f87d46b30a34aee92311 100644 --- a/tools/key_file.py +++ b/tools/key_file.py @@ -4,6 +4,8 @@ Repartion key entry file handler import csv from datetime import datetime +from odoo.addons.api_connector.tools.date_utils import local_to_utc + class RepartitionKeyEntryFile: def __init__(self, data, file_type="csv"): @@ -80,7 +82,7 @@ class RepartitionKeyEntryFile: return max(self.json) - def data_to_send(self, send_empty_key=True): + def data_to_send(self, send_empty_key=True, convert_to_utc=True): """ build route and body for api sending return dict {"route", "body} to enedis @@ -88,8 +90,11 @@ class RepartitionKeyEntryFile: call_list = [] for horo in self.json: date = datetime.strptime(horo, "%d-%m-%Y %H:%M") + if convert_to_utc: + date = local_to_utc(date, "Europe/Paris") timestamp = date.strftime("%Y%m%dT%H%M%SZ") body = [] + for key in self.json.get(horo): if send_empty_key: body.append(key) @@ -114,7 +119,7 @@ class RepartitionKeyEntryFile: if len(counter_list_from_file) != len(set(counter_list_from_file)): return { "check": False, - f"message": "Des numéros de PRM apparaissent plusieurs fois" + "message": "Des numéros de PRM apparaissent plusieurs fois", } if sorted(self.operation_counter_list) == sorted(counter_list_from_file): @@ -133,8 +138,8 @@ class RepartitionKeyEntryFile: if missing_in_file or missing_in_operation: return { "check": False, - f"message": "Les numéros de PRM ne correspondent " - f"pas à ceux de l’opération", + "message": "Les numéros de PRM ne correspondent " + "pas à ceux de l’opération", } return {"check": True, "message": ""} diff --git a/views/acc_operation_views.xml b/views/acc_operation_views.xml index 96a00d87ed87cc0b742e4444e51f828659af4a0f..a99f61a30356a0a3b396515236b67dc3111e7362 100644 --- a/views/acc_operation_views.xml +++ b/views/acc_operation_views.xml @@ -7,8 +7,8 @@ <field name="model">acc.operation</field> <field name="inherit_id" ref="oacc.acc_operation_form_view" /> <field name="arch" type="xml"> - <xpath expr="//notebook" position="inside"> - <page string="Clés de répartition" name="keys" groups="oacc.group_operation_superadmin"> + <page name="other_infos" position="before"> + <page string="Clés de répartition" name="keys"> <button string="Importer un fichier" type="action" @@ -29,7 +29,7 @@ </tree> </field> </page> - </xpath> + </page> </field> </record> </odoo> diff --git a/wizard/acc_repartition_keys_wizard.py b/wizard/acc_repartition_keys_wizard.py index eca736f7ba63a6fa34a9998f5c0778846a8d8119..2f4fa917668408399ace667eeb5e62b1d7cbefc9 100644 --- a/wizard/acc_repartition_keys_wizard.py +++ b/wizard/acc_repartition_keys_wizard.py @@ -72,17 +72,22 @@ class AccRepartitionKeysWizard(models.TransientModel): except (ValueError, IndexError) as exc: raise UserError(_("Fichier de répartitions au mauvais format")) from exc - entry_file_handler.operation_counter_list = self.env[ - "acc.counter.period" - ]._get_periods_from_interval( - [("acc_operation_id", "=", self.operation_id.id), ("prm_type", "=", "delivery")], - datetime.strptime( - entry_file_handler.get_min_date(), "%d-%m-%Y %H:%M" - ).date(), - datetime.strptime( - entry_file_handler.get_max_date(), "%d-%m-%Y %H:%M" - ).date(), - ).mapped("acc_counter_id.name") + entry_file_handler.operation_counter_list = ( + self.env["acc.counter.period"] + ._get_periods_from_interval( + [ + ("acc_operation_id", "=", self.operation_id.id), + ("prm_type", "=", "delivery"), + ], + datetime.strptime( + entry_file_handler.get_min_date(), "%d-%m-%Y %H:%M" + ).date(), + datetime.strptime( + entry_file_handler.get_max_date(), "%d-%m-%Y %H:%M" + ).date(), + ) + .mapped("acc_counter_id.name") + ) try: file_check_result = entry_file_handler.check() @@ -92,7 +97,7 @@ class AccRepartitionKeysWizard(models.TransientModel): if not file_check_result.get("check"): raise UserError(_(file_check_result.get("message"))) - data_to_send = entry_file_handler.data_to_send(send_empty_key=False) + data_to_send = entry_file_handler.data_to_send(send_empty_key=True) for key in data_to_send: job_description = f"{self.operation_id.name} - Send repartition key at {key.get('timestamp')}" diff --git a/wizard/acc_repartition_keys_wizard_views.xml b/wizard/acc_repartition_keys_wizard_views.xml index e7e154fedca01985726fc79ec30617b910f517db..81b5da0a99e588979e36e1c7216f77cd3ce5a2d0 100644 --- a/wizard/acc_repartition_keys_wizard_views.xml +++ b/wizard/acc_repartition_keys_wizard_views.xml @@ -9,26 +9,23 @@ <field widget="binary" name="csv_file" filename="filename" /> <footer> <button - class="btn btn-primary" - name="send_imported_file" - type="object" - string="Envoyer a enedis" - /> + class="btn btn-primary" + name="send_imported_file" + type="object" + string="Envoyer a Enedis" + /> <button - class="btn btn-primary" - name="ignore" - type="object" - string="Ignorer" - /> + class="btn btn-primary" + name="ignore" + type="object" + string="Ignorer" + /> </footer> </form> </field> </record> - <record - id="acc_repartition_keys_wizard_action" - model="ir.actions.act_window" - > + <record id="acc_repartition_keys_wizard_action" model="ir.actions.act_window"> <field name="name">Création clés de repartition</field> <field name="type">ir.actions.act_window</field> <field name="res_model">acc.repartition.keys.wizard</field>