Skip to content
Extraits de code Groupes Projets
Valider 9a0fa0ae rédigé par jordan's avatar jordan
Parcourir les fichiers

[add] button to check if docs adhesion are uploaded

parent e97e9f05
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -16,6 +16,7 @@
"datas/mail_message_subtype.xml",
"datas/mail_data.xml",
"report/report_invoice_adhesion.xml",
"views/res_partner.xml",
"views/scop_adhesion_file.xml",
],
}
# © 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from pytz import timezone
from odoo import models, api, fields
class ScopAlfrescoAdhesionPartner(models.Model):
_inherit = 'res.partner'
log_missing_docs = fields.Text('Documents manquants')
# ------------------------------------------------------
# Actions
# ------------------------------------------------------
......@@ -62,6 +65,32 @@ class ScopAlfrescoAdhesionPartner(models.Model):
'context': ctx,
}
def check_docs_adhesion(self):
compulsory_docs = self.get_compulsory_docs()
missing_docs = self.check_compulsory_docs()
html = str()
for doc in compulsory_docs:
html += "<input type='checkbox'"
if doc.name not in missing_docs:
html += "checked"
html += "/> " + doc.name + "<br/>"
local_tz = timezone('Europe/Paris')
utc_tz = timezone('UTC')
html += "<hr/>Vérifié le " + '<strong>' + utc_tz.localize(
fields.Datetime.now()).astimezone(local_tz).strftime(
"%d/%m/%Y à %-H:%M") + \
'</strong>'
self.log_missing_docs = html
# ------------------------------------------------------
# Business method
# ------------------------------------------------------
def get_compulsory_docs(self):
return self.env['scop.adhesion.file'].search([
('coop_type_id', '=', self.cooperative_form_id.id),
('is_compulsory', '=', True)
])
# ------------------------------------------------------
# Override parent
# ------------------------------------------------------
......@@ -125,22 +154,18 @@ class ScopAlfrescoAdhesionPartner(models.Model):
Override function to check docs with cmis query
:return:
"""
errors = ''
compulsory_docs = self.env['scop.adhesion.file'].search([
('coop_type_id', '=', self.cooperative_form_id.id),
('is_compulsory', '=', True)
])
errors = list()
compulsory_docs = self.get_compulsory_docs()
loaded_docs = self.env['scop.adhesion.file'].\
compulsory_doc_cmis_query(self)
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 madatory_doc in compulsory_docs_list:
if madatory_doc.get('metadata') not in loaded_docs_list:
errors += "<li>" + madatory_doc.get('name') + "</li>"
for mandatory_doc in compulsory_docs_list:
if mandatory_doc.get('metadata') not in loaded_docs_list:
errors.append(mandatory_doc.get('name'))
if errors:
res = '<hr/><strong>Documents manquants :</strong><ul>' + errors + '</ul>'
return res
return errors
else:
return str()
return False
<?xml version="1.0"?>
<!-- Copyright 2019 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<!-- FORM -->
<record id="res_partner_scop_adhesion_alfodoo_view_form_inherit" model="ir.ui.view">
<field name="name">res.partner.scop.adhesion.view.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="cgscop_partner_alfodoo.res_partner_alfresco_view_form_inherit"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='partner_cmis_folder']" position="before">
<button string="Vérifier la liste des docs" type="object" name="check_docs_adhesion" class="btn-info mb-10"
attrs="{'invisible': [('project_status', '!=', '4_adhesion')]}"/>
<div class="alert alert-info mt16" role="alert" attrs="{'invisible':['|', '|', ('write_date', '=', False), ('log_missing_docs', '=', False), ('project_status', '!=', '4_adhesion')]}">
<field class="o_field_header" name="log_missing_docs" readonly="1" widget="html"/>
</div>
</xpath>
</field>
</record>
</data>
</odoo>
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