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

perimeter from cron

parent 4c93e06c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<data noupdate="1">
<data>
<record model="ir.cron" forcecreate="True" id="ir_cron_get_perimeter">
<field name="name">Enedis recuperation perimetre et courbes</field>
<field name="model_id" ref="oacc.model_acc_operation" />
<field name="state">code</field>
<field name="code">model._cron()</field>
<field name="code">model.cron()</field>
<field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field>
<field name="interval_type">months</field>
......
......@@ -27,7 +27,7 @@
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 />
<t t-out="object.new_prm">operation</t><br />
<t t-out="object.updated_objects">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
/>
......
......@@ -42,7 +42,7 @@ class AccOperation(models.Model):
# ------------------------------------------------------
# Actions
# ------------------------------------------------------
def create_log(self, message, type_log="api", new_prm="", call="perimetre"):
def create_log(self, message, type_log="api", updated_objects="", call="perimetre"):
if call == "perimetre":
title = "Appel API Enedis Périmètre "
else:
......@@ -53,7 +53,7 @@ class AccOperation(models.Model):
"name": title + self.name + " du " + str(fields.Date.today()),
"date_launched": fields.Datetime.now(),
"type_log": type_log,
"new_prm": new_prm,
"updated_objects": updated_objects,
"message": message,
"acc_operation_id": self.id,
}
......@@ -66,7 +66,7 @@ class AccOperation(models.Model):
self.ensure_one()
message = self.perimeter()
log_id = self.create_log(
message=message, type_log="api", new_prm=self.perimeter_impacted_prm
message=message, type_log="api", updated_objects=self.perimeter_impacted_prm
)
view_id = self.env.ref("oacc.acc_logs_form").id
......@@ -82,73 +82,17 @@ class AccOperation(models.Model):
"target": "new",
"flags": {"initial_mode": "view"},
}
def _cron(self):
return self.perimeter(from_cron=True)
def _get_first_day_of_prec_month(self):
"""
utility get datetime of the first day of the precedent month
"""
return datetime(
day=1,
month=(datetime.now() - timedelta(days=30)).month,
year=(datetime.now() - timedelta(days=30)).year,
)
def _get_last_day_of_prec_month(self):
"""
utility get datetime of the last day of the precedent month
"""
prec_month = (datetime.now() - timedelta(days=30)).month
prec_year = (datetime.now() - timedelta(days=30)).year
return datetime(
day=calendar.monthrange(prec_year, prec_month)[1],
month=prec_month,
year=prec_year,
)
def _cron_perimeter(self):
def cron(self):
"""
get perimeter from cron
"""
try:
message = self.perimeter(from_cron=True)
except ValidationError as exc:
message = str(exc)
self.create_log(message=message, type_log="cron")
raise exc from exc
return message
def _cron_curves(self):
"""
get curves from cron and log it
"""
counters = self.env["acc.counter"].search(
[
("acc_operation_id", "=", self.id),
]
)
for counter in counters:
try:
message = self._get_definitive_load_curves(
self._get_first_day_of_prec_month(),
self._get_last_day_of_prec_month(),
counter.name,
"cons" if counter.type == "del" else "prod",
)
except ValidationError as exc:
message = str(exc)
self.create_log(message=message, type_log="cron", call="curve")
def _cron(self):
"""
get perimeter and curves from cron
"""
for operation in self.search([]):
if operation.client_id and operation.secret_id:
try:
operation._cron_perimeter()
operation._cron_curves()
operation._cron()
except ValidationError:
continue
......@@ -343,7 +287,7 @@ class AccOperation(models.Model):
if from_cron:
log_id = self.create_log(
message=message, type_log="cron", new_prm="<br/>".join(counter_used)
message=message, type_log="cron", updated_objects="<br/>".join(counter_used)
)
self.send_new_prm_email(log_id)
......
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