Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
C
cgscop_adhesion_alfodoo
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_adhesion_alfodoo
Validations
e3db5785
Valider
e3db5785
rédigé
Il y a 1 an
par
Benjamin - Le Filament
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
[update] creation & membership process
parent
3ad21ac9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion
!1
[add] merge 14.0 new process adh
Modifications
2
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
2 fichiers modifiés
models/res_partner.py
+98
-23
98 ajouts, 23 suppressions
models/res_partner.py
models/scop_adhesion_file.py
+1
-28
1 ajout, 28 suppressions
models/scop_adhesion_file.py
avec
99 ajouts
et
51 suppressions
models/res_partner.py
+
98
−
23
Voir le fichier @
e3db5785
...
@@ -3,7 +3,8 @@
...
@@ -3,7 +3,8 @@
from
pytz
import
timezone
from
pytz
import
timezone
from
odoo
import
fields
,
models
from
odoo
import
_
,
fields
,
models
from
odoo.exceptions
import
UserError
class
ScopAlfrescoAdhesionPartner
(
models
.
Model
):
class
ScopAlfrescoAdhesionPartner
(
models
.
Model
):
...
@@ -90,20 +91,67 @@ class ScopAlfrescoAdhesionPartner(models.Model):
...
@@ -90,20 +91,67 @@ class ScopAlfrescoAdhesionPartner(models.Model):
# ------------------------------------------------------
# ------------------------------------------------------
# Business method
# Business method
# ------------------------------------------------------
# ------------------------------------------------------
def
get_compulsory_docs
(
self
):
def
get_compulsory_docs
(
self
,
type_process
):
domain
=
[
domain
=
[
(
"
coop_type_id
"
,
"
=
"
,
self
.
cooperative_form_id
.
id
),
(
"
coop_type_id
"
,
"
=
"
,
self
.
cooperative_form_id
.
id
),
(
"
is_compulsory
"
,
"
=
"
,
True
),
(
"
is_compulsory
"
,
"
=
"
,
True
),
(
"
type_process
"
,
"
=
"
,
type_process
),
]
]
# Si la coop est en projet de création
if
self
.
project_status
==
"
3_accompagnement
"
:
domain
+=
[(
"
type_process
"
,
"
=
"
,
"
project
"
)]
# Si la coop est en phase d'adhésion
if
self
.
membership_status
==
"
adhesion
"
:
domain
+=
[(
"
type_process
"
,
"
=
"
,
"
adhesion
"
)]
return
self
.
env
[
"
scop.adhesion.file
"
].
search
(
domain
)
return
self
.
env
[
"
scop.adhesion.file
"
].
search
(
domain
)
def
scop_check_docs
(
self
,
type_process
,
error_type
=
""
):
"""
Return error message for mandatory documents
:param str type_process: scop.adhesion.file type_process
:param str error_type: scop.adhesion.file type_process
"""
errors
=
str
()
compulsory_docs
=
self
.
get_compulsory_docs
(
type_process
)
loaded_docs
=
self
.
compulsory_doc_cmis_query
()
errors_complete_docs
=
self
.
check_compulsory_docs
(
compulsory_docs
,
loaded_docs
)
if
errors_complete_docs
:
errors_str
=
str
()
for
error
in
errors_complete_docs
:
errors_str
+=
"
<li>
"
+
error
+
"
</li>
"
errors
+=
(
"
<hr/><strong>Documents manquants :</strong><ul>
"
+
errors_str
+
"
</ul>
"
)
# Si des erreurs remplir les logs avec la liste des documents manquants
if
errors
:
local_tz
=
timezone
(
"
Europe/Paris
"
)
utc_tz
=
timezone
(
"
UTC
"
)
log_date
=
utc_tz
.
localize
(
fields
.
Datetime
.
now
()).
astimezone
(
local_tz
).
strftime
(
"
%d/%m/%Y %-H:%M
"
)
self
.
list_logs
=
"
<strong>%s</strong> %s %s
"
%
(
log_date
,
error_type
,
errors
)
else
:
self
.
list_logs
=
False
def
check_compulsory_docs
(
self
,
compulsory_docs
,
loaded_docs
):
"""
Override function to check docs with cmis query
:param obj compulsory_docs: scop.adhesion.file object
:param list loaded_docs: cmis query response
@returns list: list of missing mandatory documents
"""
errors
=
list
()
compulsory_docs_list
=
compulsory_docs
.
mapped
(
lambda
d
:
{
"
name
"
:
d
.
name
,
"
metadata
"
:
d
.
type_doc
}
)
loaded_docs_list
=
list
(
map
(
lambda
d
:
d
.
properties
.
get
(
"
crm:type
"
),
loaded_docs
)
)
for
mandatory_doc
in
compulsory_docs_list
:
if
mandatory_doc
.
get
(
"
metadata
"
)
not
in
loaded_docs_list
:
errors
.
append
(
mandatory_doc
.
get
(
"
name
"
))
return
errors
# ------------------------------------------------------
# ------------------------------------------------------
# Override parent
# Override parent
# ------------------------------------------------------
# ------------------------------------------------------
...
@@ -172,23 +220,50 @@ class ScopAlfrescoAdhesionPartner(models.Model):
...
@@ -172,23 +220,50 @@ class ScopAlfrescoAdhesionPartner(models.Model):
return
res
return
res
def
check_compulsory_docs
(
self
):
def
scop_suivi_adhesion
(
self
):
"""
"""
Override function to check docs with cmis query
Inherit parent to check documents
:return:
"""
"""
errors
=
list
()
# vérification des documents obligatoires
compulsory_docs
=
self
.
get_compulsory_docs
()
self
.
scop_check_docs
(
"
project
"
,
"
Impossible de créer la coopérative
"
)
loaded_docs
=
self
.
env
[
"
scop.adhesion.file
"
].
compulsory_doc_cmis_query
(
self
)
compulsory_docs_list
=
compulsory_docs
.
mapped
(
return
super
(
ScopAlfrescoAdhesionPartner
,
self
).
scop_suivi_adhesion
()
lambda
d
:
{
"
name
"
:
d
.
name
,
"
metadata
"
:
d
.
type_doc
}
)
def
scop_sumbit_cg
(
self
):
loaded_docs_list
=
list
(
"""
map
(
lambda
d
:
d
.
properties
.
get
(
"
crm:type
"
),
loaded_docs
)
Inherit parent to check documents
"""
res
=
super
(
ScopAlfrescoAdhesionPartner
,
self
).
scop_sumbit_cg
()
# vérification des documents obligatoires
self
.
scop_check_docs
(
"
adhesion
"
,
"
Impossible de transmettre le dossier d
'
adhésion
"
)
)
for
mandatory_doc
in
compulsory_docs_list
:
return
res
if
mandatory_doc
.
get
(
"
metadata
"
)
not
in
loaded_docs_list
:
errors
.
append
(
mandatory_doc
.
get
(
"
name
"
))
return
errors
# ------------------------------------------------------
# Alfresco method
# ------------------------------------------------------
def
compulsory_doc_cmis_query
(
self
):
self
.
ensure_one
()
backend
=
self
.
env
[
"
cmis.backend
"
].
search
([])
backend
.
ensure_one
()
cmis_client
=
backend
.
get_cmis_client
()
query
=
(
"""
SELECT * FROM crm:document as d
JOIN crm:organisme as o ON d.cmis:objectId = o.cmis:objectId
WHERE o.crm:id =
'
%s
'"""
%
self
.
id
)
try
:
doc
=
cmis_client
.
getDefaultRepository
().
query
(
query
)
result
=
doc
.
getResults
()
return
result
except
Exception
as
e
:
raise
UserError
(
_
(
"
Impossible de vérifier les documents d
'
adhésion
"
"
dans Alfresco : %s
"
)
%
e
)
Ce diff est replié.
Cliquez pour l'agrandir.
models/scop_adhesion_file.py
+
1
−
28
Voir le fichier @
e3db5785
# © 2021 Le Filament (<http://www.le-filament.com>)
# © 2021 Le Filament (<http://www.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
odoo
import
_
,
exceptions
,
fields
,
models
from
odoo
import
fields
,
models
class
ScopAdhesionFiles
(
models
.
Model
):
class
ScopAdhesionFiles
(
models
.
Model
):
...
@@ -9,30 +9,3 @@ class ScopAdhesionFiles(models.Model):
...
@@ -9,30 +9,3 @@ class ScopAdhesionFiles(models.Model):
_description
=
"
Documents pour adhésion des coops
"
_description
=
"
Documents pour adhésion des coops
"
type_doc
=
fields
.
Char
(
"
Méta : Type
"
)
type_doc
=
fields
.
Char
(
"
Méta : Type
"
)
# ------------------------------------------------------
# Business method
# ------------------------------------------------------
def
compulsory_doc_cmis_query
(
self
,
partner
):
backend
=
self
.
env
[
"
cmis.backend
"
].
search
([])
backend
.
ensure_one
()
cmis_client
=
backend
.
get_cmis_client
()
query
=
(
"""
SELECT * FROM crm:document as d
JOIN crm:organisme as o ON d.cmis:objectId = o.cmis:objectId
WHERE o.crm:id =
'
%s
'"""
%
partner
.
id
)
try
:
doc
=
cmis_client
.
getDefaultRepository
().
query
(
query
)
result
=
doc
.
getResults
()
return
result
except
Exception
as
e
:
raise
exceptions
.
UserError
(
_
(
"
Impossible de vérifier les documents d
'
adhésion
"
"
dans Alfresco : %s
"
)
%
e
)
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