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__)
...
@@ -13,7 +13,8 @@ _logger = logging.getLogger(__name__)
class
CgscopRigaOdooImport
(
models
.
Model
):
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
vers Odoo
"""
"""
_name
=
'
riga.odoo.import
'
_name
=
'
riga.odoo.import
'
...
@@ -35,7 +36,8 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -35,7 +36,8 @@ class CgscopRigaOdooImport(models.Model):
# Fonctions génériques
# Fonctions génériques
# ------------------------------------------------------
# ------------------------------------------------------
def
_get_ftp_file
(
self
,
filename
,
ftp_channel
):
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
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
dans le fichier de conf Odoo les login et password, puis dans les
...
@@ -69,8 +71,10 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -69,8 +71,10 @@ class CgscopRigaOdooImport(models.Model):
except
Exception
as
e
:
except
Exception
as
e
:
raise
exceptions
.
Warning
(
e
)
raise
exceptions
.
Warning
(
e
)
def
_read_file
(
self
,
model
,
file
,
table
,
primary_key
,
header_key
,
resync
=
False
):
def
_read_file
(
self
,
model
,
file
,
table
,
primary_key
,
header_key
,
"""
Cette fonction prend en paramètre un fichier CSV et lit
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
chaque ligne pour mettre à jour la ligne de la table correspondante
si elle existe ou la créer si l
'
organisme existe
si elle existe ou la créer si l
'
organisme existe
...
@@ -82,6 +86,7 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -82,6 +86,7 @@ class CgscopRigaOdooImport(models.Model):
:param parent_id (string): header du fichier CSV pour lequel on va
:param parent_id (string): header du fichier CSV pour lequel on va
rechercher l
'
ID RIGA de l
'
organisme
rechercher l
'
ID RIGA de l
'
organisme
:param resync (bool): le fichier a été synchronisé manuellement
:param resync (bool): le fichier a été synchronisé manuellement
:param log_id (obj): ojjet à mettre à jour si pas de création
"""
"""
try
:
try
:
file
.
seek
(
0
)
file
.
seek
(
0
)
...
@@ -133,7 +138,7 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -133,7 +138,7 @@ class CgscopRigaOdooImport(models.Model):
[
'
model_id
'
,
'
=
'
,
model
.
id
]])
[
'
model_id
'
,
'
=
'
,
model
.
id
]])
date_value
=
fields
.
Datetime
.
now
()
+
datetime
.
timedelta
(
days
=
data
.
day
)
date_value
=
fields
.
Datetime
.
now
()
+
datetime
.
timedelta
(
days
=
data
.
day
)
# Création du log
# Création du log
self
.
create
(
{
vals
=
{
'
model_id
'
:
model
.
id
,
'
model_id
'
:
model
.
id
,
'
is_sync
'
:
True
,
'
is_sync
'
:
True
,
'
filename
'
:
(
data
.
riga_filename
+
'
filename
'
:
(
data
.
riga_filename
+
...
@@ -146,17 +151,25 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -146,17 +151,25 @@ class CgscopRigaOdooImport(models.Model):
"
- Mise à jour de
"
+
str
(
maj_nb
)
+
"
lignes
\n\n
"
+
log
),
"
- Mise à jour de
"
+
str
(
maj_nb
)
+
"
lignes
\n\n
"
+
log
),
'
is_warning
'
:
True
if
log
else
False
,
'
is_warning
'
:
True
if
log
else
False
,
'
is_resync
'
:
resync
,
'
is_resync
'
:
resync
,
})
}
if
not
log_id
:
self
.
create
(
vals
)
else
:
log_id
.
update
(
vals
)
except
Exception
as
e
:
except
Exception
as
e
:
_logger
.
error
(
e
.
__str__
())
_logger
.
error
(
e
.
__str__
())
# Création du log
# Création du log
self
.
create
(
{
vals
=
{
'
model_id
'
:
model
.
id
,
'
model_id
'
:
model
.
id
,
'
is_sync
'
:
False
,
'
is_sync
'
:
False
,
'
is_error
'
:
True
,
'
is_error
'
:
True
,
'
log
'
:
str
(
e
)
'
log
'
:
str
(
e
)
})
}
if
not
log_id
:
self
.
create
(
vals
)
else
:
log_id
.
update
(
vals
)
def
_cast_type
(
self
,
model
,
field
,
value
,
relation
=
None
):
def
_cast_type
(
self
,
model
,
field
,
value
,
relation
=
None
):
"""
Détermine en fonction du champ la valeur typée à renvoyer
"""
Détermine en fonction du champ la valeur typée à renvoyer
...
@@ -199,14 +212,14 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -199,14 +212,14 @@ class CgscopRigaOdooImport(models.Model):
# ------------------------------------------------------
# ------------------------------------------------------
# Import données
# Import données
# ------------------------------------------------------
# ------------------------------------------------------
def
odoo_sync
(
self
):
def
odoo_sync
(
self
):
model_sync
=
self
.
env
[
'
riga.files.matching
'
].
sudo
().
search
([
model_sync
=
self
.
env
[
'
riga.files.matching
'
].
sudo
().
search
([
[
'
is_active
'
,
'
=
'
,
True
]])
[
'
is_active
'
,
'
=
'
,
True
]])
self
.
sync_file
(
model_sync
)
self
.
sync_file
(
model_sync
)
def
sync_file
(
self
,
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.
avec les tables associées Odoo.
La fonction recherche l
'
ensembles des synchronisations actives
La fonction recherche l
'
ensembles des synchronisations actives
...
@@ -240,6 +253,10 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -240,6 +253,10 @@ class CgscopRigaOdooImport(models.Model):
header_key
=
model
.
header_key
)
header_key
=
model
.
header_key
)
def
resync_file
(
self
):
def
resync_file
(
self
):
"""
Fonction appelée pour la resynchronisation d
'
un log
en erreur
"""
model
=
self
.
env
[
'
riga.files.matching
'
].
sudo
().
search
([
model
=
self
.
env
[
'
riga.files.matching
'
].
sudo
().
search
([
[
'
model_id
'
,
'
=
'
,
self
.
model_id
.
id
]])
[
'
model_id
'
,
'
=
'
,
self
.
model_id
.
id
]])
table
=
[]
table
=
[]
...
@@ -251,4 +268,5 @@ class CgscopRigaOdooImport(models.Model):
...
@@ -251,4 +268,5 @@ class CgscopRigaOdooImport(models.Model):
table
=
table
,
table
=
table
,
primary_key
=
model
.
primary_key
,
primary_key
=
model
.
primary_key
,
header_key
=
model
.
header_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 @@
...
@@ -42,6 +42,7 @@
<field
name=
"is_warning"
readonly=
"1"
/>
<field
name=
"is_warning"
readonly=
"1"
/>
<field
name=
"is_error"
readonly=
"1"
/>
<field
name=
"is_error"
readonly=
"1"
/>
<field
name=
"is_resync"
readonly=
"1"
/>
<field
name=
"is_resync"
readonly=
"1"
/>
<field
name=
"write_date"
readonly=
"1"
/>
</group>
</group>
</group>
</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