Skip to content
Extraits de code Groupes Projets
Valider 403fc85a rédigé par Julien - Le Filament's avatar Julien - Le Filament
Parcourir les fichiers

Merge branch '16.0-admin' of...

Merge branch '16.0-admin' of sources.le-filament.com:lefilament/oacc/oacc_repartition_keys into 16.0-admin
parents ba2e265d f8f50dae
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!9Administration des opérations
# 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"
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
......@@ -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": ""}
......
......@@ -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>
......@@ -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")],
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")
)
.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')}"
......
......@@ -12,7 +12,7 @@
class="btn btn-primary"
name="send_imported_file"
type="object"
string="Envoyer a enedis"
string="Envoyer a Enedis"
/>
<button
class="btn btn-primary"
......@@ -25,10 +25,7 @@
</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>
......
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