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

[UPD] perimeter to cron

parent b1e536ea
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!4Administration de l'opération
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<odoo> <odoo>
<data noupdate="1"> <data noupdate="1">
<record model="ir.cron" forcecreate="True" id="ir_cron_get_perimeter"> <record model="ir.cron" forcecreate="True" id="ir_cron_get_perimeter">
<field name="name">Enedis recuperation perimetre</field> <field name="name">Enedis recuperation perimetre et courbes</field>
<field name="model_id" ref="oacc.model_acc_operation" /> <field name="model_id" ref="oacc.model_acc_operation" />
<field name="state">code</field> <field name="state">code</field>
<field name="code">model._cron()</field> <field name="code">model._cron()</field>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<!--Email template --> <!--Email template -->
<record id="email_template_new_prm" model="mail.template"> <record id="email_template_new_prm" model="mail.template">
<field name="name">Paramètres: Nouveau PRM ou pèriode</field> <field name="name">Paramètres: Nouveau PRM ou pèriode</field>
<field name="model_id" ref="oacc.model_acc_operation" /> <field name="model_id" ref="oacc.model_acc_logs" />
<field name="email_from">"Elocoop" &lt;bonjour@elo.coop></field> <field name="email_from">"Elocoop" &lt;bonjour@elo.coop></field>
<field name="email_to">"Elocoop" &lt;bonjour@elo.coop></field> <field name="email_to">"Elocoop" &lt;bonjour@elo.coop></field>
<field name="reply_to">"Elocoop" &lt;bonjour@elo.coop></field> <field name="reply_to">"Elocoop" &lt;bonjour@elo.coop></field>
...@@ -20,15 +20,14 @@ ...@@ -20,15 +20,14 @@
<div style="margin: 0px; padding: 0px;"> <div style="margin: 0px; padding: 0px;">
Bonjour,<br /> Bonjour,<br />
Vous recevez ce mail car vous êtes administrateur de l’opération d’autoconsommation collective : <t Vous recevez ce mail car vous êtes administrateur de l’opération d’autoconsommation collective : <t
t-out="object.name" t-out="object.acc_operation_id.name"
>operation</t> (<t t-out="object.description">oacc</t>)<br >operation</t> (<t
/> t-out="object.acc_operation_id.description"
>oacc</t>)<br />
D’après les données Enedis, des nouveaux PRM ont été ajoutés et/ou retirés de l’opération ou ont changé de propriétaire.<br D’après les données Enedis, des nouveaux PRM ont été ajoutés et/ou retirés de l’opération ou ont changé de propriétaire.<br
/> />
Numéros des PRM concernées :<br /> Numéros des PRM concernées :<br />
<t <t t-out="object.new_prm">operation</t><br />
t-out="object.perimeter_impacted_prm"
>operation</t><br />
Si des PRM sont ajoutés, afin qu’ils soient bien pris en compte dans Elocoop, nous vous remercions de renseigner les informations des participants liés à ces PRM dans votre espace d’administration Elocoop, de cette manière :<br Si des PRM sont ajoutés, afin qu’ils soient bien pris en compte dans Elocoop, nous vous remercions de renseigner les informations des participants liés à ces PRM dans votre espace d’administration Elocoop, de cette manière :<br
/> />
...@@ -54,7 +53,7 @@ ...@@ -54,7 +53,7 @@
<record id="email_template_api_error" model="mail.template"> <record id="email_template_api_error" model="mail.template">
<field name="name">Paramètres: Erreur API Enedis</field> <field name="name">Paramètres: Erreur API Enedis</field>
<field name="model_id" ref="oacc.model_acc_operation" /> <field name="model_id" ref="oacc.model_acc_logs" />
<field name="email_from">"Elocoop" &lt;bonjour@elo.coop></field> <field name="email_from">"Elocoop" &lt;bonjour@elo.coop></field>
<field name="email_to">"Elocoop" &lt;bonjour@elo.coop></field> <field name="email_to">"Elocoop" &lt;bonjour@elo.coop></field>
<field name="reply_to">"Elocoop" &lt;bonjour@elo.coop></field> <field name="reply_to">"Elocoop" &lt;bonjour@elo.coop></field>
...@@ -68,19 +67,19 @@ ...@@ -68,19 +67,19 @@
<div style="margin: 0px; padding: 0px;"> <div style="margin: 0px; padding: 0px;">
Bonjour,<br /> Bonjour,<br />
Vous recevez ce mail car vous êtes administrateur de l’opération d’autoconsommation collective: <t Vous recevez ce mail car vous êtes administrateur de l’opération d’autoconsommation collective: <t
t-out="object.name" t-out="object.acc_operation_id.name"
>operation</t> (<t t-out="object.description">oacc</t>)<br >operation</t> (<t
/>. t-out="object.acc_operation_id.description"
>oacc</t>)<br />.
Lors de la mise à jour automatique du périmètre et des données Enedis, l’API a renvoyé l’erreur suivante :<br Lors de la mise à jour automatique du périmètre et des données Enedis, l’API a renvoyé l’erreur suivante :<br
/> />
<t t-out="object.perimeter_api_log">operation</t><br <t t-out="object.message">operation</t><br />
/>
Nous vous remercions de vérifier que :<br /> Nous vous remercions de vérifier que :<br />
<ul> <ul>
<li <li
>Vos identifiants Enedis sont corrects dans l’onglet Autres Informations de votre espace d’administration Elocoop</li> >Vos identifiants Enedis sont corrects dans l’onglet Autres Informations de votre espace d’administration Elocoop</li>
<li>L’identifiant <t <li>L’identifiant <t
t-out="object.name" t-out="object.acc_operation_id.name"
>operation</t> est correct sur la page de votre opération.</li> >operation</t> est correct sur la page de votre opération.</li>
<li <li
>Nous informer en retour de ce mail lorsque cela est fait afin que nous vérifions la bonne configuration de l’API</li> >Nous informer en retour de ce mail lorsque cela est fait afin que nous vérifions la bonne configuration de l’API</li>
......
# Copyright 2021- Le Filament (https://le-filament.com) # Copyright 2021- Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from datetime import date, datetime, timedelta
import calendar import calendar
from datetime import date, datetime, timedelta
from odoo import fields, models from odoo import fields, models
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
...@@ -106,21 +107,14 @@ class AccOperation(models.Model): ...@@ -106,21 +107,14 @@ class AccOperation(models.Model):
def _cron_perimeter(self): def _cron_perimeter(self):
""" """
get perimeter from cron and log it get perimeter from cron
""" """
try: try:
message = self.perimeter(from_cron=True) message = self.perimeter(from_cron=True)
except ValidationError as exc: except ValidationError as exc:
message = str(exc) message = str(exc)
self.create_log( self.create_log(message=message, type_log="cron")
message=message, type_log="cron", new_prm=self.perimeter_impacted_prm
)
raise exc from exc raise exc from exc
self.create_log(
message=message, type_log="cron", new_prm=self.perimeter_impacted_prm
)
return message return message
def _cron_curves(self): def _cron_curves(self):
...@@ -153,24 +147,24 @@ class AccOperation(models.Model): ...@@ -153,24 +147,24 @@ class AccOperation(models.Model):
""" """
for operation in self.search([]): for operation in self.search([]):
try: try:
operation.perimeter_api_log = operation._cron_perimeter() operation._cron_perimeter()
operation._cron_curves()
except ValidationError: except ValidationError:
continue continue
operation._cron_curves()
def send_new_prm_email(self): def send_new_prm_email(self, log_id):
""" """
send email for new prm send email for new prm
""" """
template_id = self.env.ref("oacc_perimeter_api.email_template_new_prm") template_id = self.env.ref("oacc_perimeter_api.email_template_new_prm")
template_id.send_mail(self.id) template_id.send_mail(log_id.id)
def send_api_error_mail(self): def send_api_error_mail(self, log_id):
""" """
send api error email send api error email
""" """
template_id = self.env.ref("oacc_perimeter_api.email_template_api_error") template_id = self.env.ref("oacc_perimeter_api.email_template_api_error")
template_id.send_mail(self.id) template_id.send_mail(log_id.id)
# ------------------------------------------------------ # ------------------------------------------------------
# API functions # API functions
...@@ -196,9 +190,8 @@ class AccOperation(models.Model): ...@@ -196,9 +190,8 @@ class AccOperation(models.Model):
perimeter_data = self._get_perimeter() perimeter_data = self._get_perimeter()
except ValidationError as e: except ValidationError as e:
if from_cron: if from_cron:
self.perimeter_api_log = str(e) log_id = self.create_log(message=str(e), type_log="cron")
self.send_api_error_mail() self.send_api_error_mail(log_id)
self.create_log(message=str(e), type_log="cron")
raise e from e raise e from e
message += "<p><strong>Appel API terminé<br/>" "Traitement des données ...<br/>" message += "<p><strong>Appel API terminé<br/>" "Traitement des données ...<br/>"
...@@ -347,11 +340,12 @@ class AccOperation(models.Model): ...@@ -347,11 +340,12 @@ class AccOperation(models.Model):
message += ( message += (
"<h1>Fin appel API Périmètre: " + str(fields.Datetime.now()) + "</h1>" "<h1>Fin appel API Périmètre: " + str(fields.Datetime.now()) + "</h1>"
) )
self.perimeter_api_log = message
self.perimeter_impacted_prm = "<br/>".join(counter_used)
if from_cron: if from_cron:
self.send_new_prm_email() log_id = self.create_log(
message=message, type_log="cron", new_prm="<br/>".join(counter_used)
)
self.send_new_prm_email(log_id)
return message return message
......
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