Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
C
cgscop_riga_import
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
Le Filament
Confédération Générale des SCOP
cgscop_riga_import
Validations
a75adc1b
Valider
a75adc1b
rédigé
Il y a 4 ans
par
Benjamin - Le Filament
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
[add] update object if resync
parent
2761a085
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
2
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
2 fichiers modifiés
models/riga_odoo_import.py
+52
-34
52 ajouts, 34 suppressions
models/riga_odoo_import.py
views/riga_odoo_import.xml
+1
-0
1 ajout, 0 suppression
views/riga_odoo_import.xml
avec
53 ajouts
et
34 suppressions
models/riga_odoo_import.py
+
52
−
34
Voir le fichier @
a75adc1b
...
...
@@ -13,7 +13,8 @@ _logger = logging.getLogger(__name__)
class
CgscopRigaOdooImport
(
models
.
Model
):
"""
Ce modèle permet de logguer les imports de RIGA
"""
Ce modèle permet de logguer les imports de RIGA
vers Odoo
"""
_name
=
'
riga.odoo.import
'
...
...
@@ -35,7 +36,8 @@ class CgscopRigaOdooImport(models.Model):
# Fonctions génériques
# ------------------------------------------------------
def
_get_ftp_file
(
self
,
filename
,
ftp_channel
):
"""
Fonction de récupértion d
'
ufichier sur un FTP.
"""
Fonction de récupértion d
'
ufichier sur un FTP.
Cette fonction prend en paramètre un nom de fichier et recherche
dans le fichier de conf Odoo les login et password, puis dans les
...
...
@@ -69,8 +71,10 @@ class CgscopRigaOdooImport(models.Model):
except
Exception
as
e
:
raise
exceptions
.
Warning
(
e
)
def
_read_file
(
self
,
model
,
file
,
table
,
primary_key
,
header_key
,
resync
=
False
):
"""
Cette fonction prend en paramètre un fichier CSV et lit
def
_read_file
(
self
,
model
,
file
,
table
,
primary_key
,
header_key
,
resync
=
False
,
log_id
=
None
):
"""
Cette fonction prend en paramètre un fichier CSV et lit
chaque ligne pour mettre à jour la ligne de la table correspondante
si elle existe ou la créer si l
'
organisme existe
...
...
@@ -82,6 +86,7 @@ class CgscopRigaOdooImport(models.Model):
:param parent_id (string): header du fichier CSV pour lequel on va
rechercher l
'
ID RIGA de l
'
organisme
:param resync (bool): le fichier a été synchronisé manuellement
:param log_id (obj): ojjet à mettre à jour si pas de création
"""
try
:
file
.
seek
(
0
)
...
...
@@ -133,7 +138,7 @@ class CgscopRigaOdooImport(models.Model):
[
'
model_id
'
,
'
=
'
,
model
.
id
]])
date_value
=
fields
.
Datetime
.
now
()
+
datetime
.
timedelta
(
days
=
data
.
day
)
# Création du log
self
.
create
(
{
vals
=
{
'
model_id
'
:
model
.
id
,
'
is_sync
'
:
True
,
'
filename
'
:
(
data
.
riga_filename
+
...
...
@@ -146,17 +151,25 @@ class CgscopRigaOdooImport(models.Model):
"
- Mise à jour de
"
+
str
(
maj_nb
)
+
"
lignes
\n\n
"
+
log
),
'
is_warning
'
:
True
if
log
else
False
,
'
is_resync
'
:
resync
,
})
}
if
not
log_id
:
self
.
create
(
vals
)
else
:
log_id
.
update
(
vals
)
except
Exception
as
e
:
_logger
.
error
(
e
.
__str__
())
# Création du log
self
.
create
(
{
vals
=
{
'
model_id
'
:
model
.
id
,
'
is_sync
'
:
False
,
'
is_error
'
:
True
,
'
log
'
:
str
(
e
)
})
}
if
not
log_id
:
self
.
create
(
vals
)
else
:
log_id
.
update
(
vals
)
def
_cast_type
(
self
,
model
,
field
,
value
,
relation
=
None
):
"""
Détermine en fonction du champ la valeur typée à renvoyer
...
...
@@ -199,14 +212,14 @@ class CgscopRigaOdooImport(models.Model):
# ------------------------------------------------------
# Import données
# ------------------------------------------------------
def
odoo_sync
(
self
):
model_sync
=
self
.
env
[
'
riga.files.matching
'
].
sudo
().
search
([
[
'
is_active
'
,
'
=
'
,
True
]])
self
.
sync_file
(
model_sync
)
def
sync_file
(
self
,
model_sync
):
"""
Fonction de synchronisation des fichiers CSV RIGA
"""
Fonction de synchronisation des fichiers CSV RIGA
avec les tables associées Odoo.
La fonction recherche l
'
ensembles des synchronisations actives
...
...
@@ -240,6 +253,10 @@ class CgscopRigaOdooImport(models.Model):
header_key
=
model
.
header_key
)
def
resync_file
(
self
):
"""
Fonction appelée pour la resynchronisation d
'
un log
en erreur
"""
model
=
self
.
env
[
'
riga.files.matching
'
].
sudo
().
search
([
[
'
model_id
'
,
'
=
'
,
self
.
model_id
.
id
]])
table
=
[]
...
...
@@ -251,4 +268,5 @@ class CgscopRigaOdooImport(models.Model):
table
=
table
,
primary_key
=
model
.
primary_key
,
header_key
=
model
.
header_key
,
resync
=
True
)
resync
=
True
,
log_id
=
self
)
Ce diff est replié.
Cliquez pour l'agrandir.
views/riga_odoo_import.xml
+
1
−
0
Voir le fichier @
a75adc1b
...
...
@@ -42,6 +42,7 @@
<field
name=
"is_warning"
readonly=
"1"
/>
<field
name=
"is_error"
readonly=
"1"
/>
<field
name=
"is_resync"
readonly=
"1"
/>
<field
name=
"write_date"
readonly=
"1"
/>
</group>
</group>
<group>
...
...
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