Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
O
oacc_perimeter_api
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse du dépôt
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Arthur - Enercoop
oacc_perimeter_api
Validations
82601485
Valider
82601485
rédigé
7 mars 2024
par
Julien - Le Filament
Validation de
Rémi - Le Filament
25 mars 2024
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
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
Modifications
3
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
3 fichiers modifiés
data/cron_data.xml
+2
-2
2 ajouts, 2 suppressions
data/cron_data.xml
data/mail_template_data.xml
+1
-1
1 ajout, 1 suppression
data/mail_template_data.xml
models/acc_operation.py
+12
-68
12 ajouts, 68 suppressions
models/acc_operation.py
avec
15 ajouts
et
71 suppressions
data/cron_data.xml
+
2
−
2
Voir le fichier @
82601485
<?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>
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
data/mail_template_data.xml
+
1
−
1
Voir le fichier @
82601485
...
...
@@ -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
/>
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
models/acc_operation.py
+
12
−
68
Voir le fichier @
82601485
...
...
@@ -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
)
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter