diff --git a/__manifest__.py b/__manifest__.py index e89d8312faa845bedbd57e8271d529866b61c19f..87e26df1469ed485a4d604b46124c150664aa407 100755 --- a/__manifest__.py +++ b/__manifest__.py @@ -12,6 +12,6 @@ "cmis_field", ], "data": [ - # "views/res_partner.xml", + "views/scop_adhesion_file.xml", ], } diff --git a/models/__init__.py b/models/__init__.py index c0cd37e5e9126589c58c59cde462fc010cd6be3a..52625b037fc26bb6844772400ee3cb7d297e1b07 100755 --- a/models/__init__.py +++ b/models/__init__.py @@ -2,3 +2,4 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import res_partner +from . import scop_adhesion_file diff --git a/models/res_partner.py b/models/res_partner.py index f4a58d939dbc4469b4c777ec892104cd8e9e8f1d..4f88d8985f7772cb51c09712b1086990f3837709 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -144,3 +144,23 @@ class ScopAlfrescoAdhesionPartner(models.Model): invoice_adhesion_id = res['invoice_adhesion'] self.generate_alfresco_file(invoice_adhesion_id.id) return res + + @api.multi + def check_compulsory_docs(self): + """ + 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), + ('is_compulsory', '=', True) + ]) + loaded_docs = self.env['scop.adhesion.file'].\ + compulsory_doc_cmis_query(self) + # TODO : Check diff between compulsory docs and loaded docs + if errors: + res = '---\n Documents manquants :\n' + errors + return res + else: + return str() diff --git a/models/scop_adhesion_file.py b/models/scop_adhesion_file.py new file mode 100644 index 0000000000000000000000000000000000000000..f5b6fee5199e1badc85103ac6b194ec29ed3b820 --- /dev/null +++ b/models/scop_adhesion_file.py @@ -0,0 +1,36 @@ +# © 2021 Le Filament (<http://www.le-filament.com>) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models, exceptions + + +class ScopAdhesionFiles(models.Model): + _inherit = 'scop.adhesion.file' + _description = 'Documents pour adhésion des coops' + + type_doc = fields.Char('Méta : Type') + contexte_doc = fields.Char('Méta : Contexte') + + # ------------------------------------------------------ + # Business method + # ------------------------------------------------------ + def compulsory_doc_cmis_query(self, partner): + backend = self.env['cmis.backend'].search([]) + backend.ensure_one() + cmis_client = backend.get_cmis_client() + # TODO : Write correct query + doc = None + # query = (""" + # SELECT * FROM crm:document as d + # JOIN crm:organisme as o ON d.cmis:objectId = o.cmis:objectId + # WHERE d.crm:type='LFI' + # AND d.crm:contexte = 'LM' + # AND d.crm:annee = '%s' + # AND o.crm:id = '%s'""" % ( + # str(self.year), str(self.partner_id.id))) + # doc = cmis_client.getDefaultRepository().query(query) + if doc: + return doc + else: + raise exceptions.Warning( + "Impossible de trouver les documents d'adhésion dans Alfresco") diff --git a/views/res_partner.xml b/views/res_partner.xml deleted file mode 100755 index 31d680044625cf0cf74b30b36924f374ee0afd47..0000000000000000000000000000000000000000 --- a/views/res_partner.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0"?> -<!-- Copyright 2021 Le Filament - License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> - -<odoo> - <data> - -<!-- <!– Ajoute l'action "envoyer dossier" dans le menu du modèle –>--> -<!-- <record id="envoi_dossier_action" model="ir.actions.server">--> -<!-- <field name="name">Envoyer le(s) dossier(s)</field>--> -<!-- <field name="type">ir.actions.server</field>--> -<!-- <field name="model_id" ref="model_liste_ministere"/>--> -<!-- <field name="binding_model_id" ref="model_liste_ministere"/>--> -<!-- <field name="state">code</field>--> -<!-- <field name="code">--> -<!-- if records:--> -<!-- action = records.envoi_dossier()--> -<!-- </field>--> -<!-- </record>--> - - <!-- Ajoute l'action "télécharger dossier" dans le menu du modèle --> - <record id="publipostage_liste_ministere_action" model="ir.actions.server"> - <field name="name">Télécharger le(s) dossier(s)</field> - <field name="type">ir.actions.server</field> - <field name="model_id" ref="model_liste_ministere"/> - <field name="binding_model_id" ref="model_liste_ministere"/> - <field name="state">code</field> - <field name="code"> - if records: - action = records.publipostage_liste_ministere() - </field> - </record> - - <record model="ir.ui.view" id="liste_ministere_inherit_view"> - <field name="name">liste.ministere.inherit.view</field> - <field name="model">liste.ministere</field> - <field name="inherit_id" ref="cgscop_liste_ministere.view_liste_ministere_form"/> - <field name="arch" type="xml"> - <xpath expr="//button[@name='period_wizard']" position="before"> - <field name="nodeRef_dossier" invisible="1"/> -<!-- <button string="Envoi dossier" type="object" name="envoi_dossier" class="oe_highlight"/>--> -<!-- <button string="Création dossier PDF" type="object" name="publipostage_liste_ministere"--> -<!-- class="oe_highlight"--> -<!-- attrs="{'invisible':[('nodeRef_dossier', '!=', False)]}"--> -<!-- />--> -<!-- <button string="Accès dossier PDF" type="object" name="redirect_to_dossier_pdf"--> -<!-- class="oe_highlight"--> -<!-- attrs="{'invisible':[('nodeRef_dossier', '=', False)]}"--> -<!-- />--> -<!-- <button string="Re-génération dossier PDF" type="object" name="nouveau_pulipostage"--> -<!-- class="oe_highlight" attrs="{'invisible':[('nodeRef_dossier', '=', False)]}"--> -<!-- confirm="Êtes-vous sûr de vouloir écraser le dossier PDF existant ?"--> -<!-- help="Permet d'écraser le dossier PDF existant et d'en générer un nouveau"--> -<!-- />--> - </xpath> - </field> - </record> - - </data> -</odoo> \ No newline at end of file diff --git a/views/scop_adhesion_file.xml b/views/scop_adhesion_file.xml new file mode 100755 index 0000000000000000000000000000000000000000..0c95a9bda10e5a88595a40c2af05fc51cc38e40c --- /dev/null +++ b/views/scop_adhesion_file.xml @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<!-- Copyright 2021 Le Filament + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> + +<odoo> + <data> + + <record model="ir.ui.view" id="scop_adhesion_file_inherit_tre"> + <field name="name">scop.adhesion.file.inherit.tree</field> + <field name="model">scop.adhesion.file</field> + <field name="inherit_id" ref="cgscop_adhesion.scop_adhesion_file_tree"/> + <field name="arch" type="xml"> + <xpath expr="//tree" position="inside"> + <field name="type_doc"/> + <field name="contexte_doc"/> + </xpath> + </field> + </record> + + </data> +</odoo> \ No newline at end of file