diff --git a/models/adefpat_list_type_doc.py b/models/adefpat_list_type_doc.py index 7e26a8cf933e45c90233ec916884789af15c1635..649df9dab4302a38ed81bbdeb33a33ba692bbedd 100644 --- a/models/adefpat_list_type_doc.py +++ b/models/adefpat_list_type_doc.py @@ -25,7 +25,6 @@ class AdefpatListTypeDoc(models.Model): 'adefpat.archi.dossier', "Nom du dossier") completude = fields.Boolean("Complétude") - valid = fields.Boolean("A valider") class AdefpatArchiDossier(models.Model): @@ -38,4 +37,4 @@ class AdefpatArchiDossier(models.Model): 'adefpat.archi.dossier', string='Parent', index=True) - specifique = fields.Boolean("Dossier spécifique") \ No newline at end of file + specifique = fields.Boolean("Dossier spécifique") diff --git a/models/hr_expense.py b/models/hr_expense.py index 0ff59a2bb8e311e1d1b642681a64f859bb1c9fbe..ce70418194a9e8b851dc0b22a9573c4367345b01 100644 --- a/models/hr_expense.py +++ b/models/hr_expense.py @@ -40,5 +40,5 @@ class AdefpatHrExpense(models.Model): 'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'], 'adefpat:justificatifDate': fields.Datetime.to_datetime(self.date).isoformat(), 'adefpat:justificatifTypeConvention': self.type_convention_id.name, - 'adefpat:justificatifUtilisateurs': self.user_id.login + 'adefpat:justificatifUtilisateurs': self.employee_id.user_id.login } diff --git a/models/hr_timesheet.py b/models/hr_timesheet.py index cd0d359cab2a31819d3ea93bc97bda71694fe9ea..87e10a3cc728011a52c8fa756c3b2e25cefb33c8 100644 --- a/models/hr_timesheet.py +++ b/models/hr_timesheet.py @@ -41,5 +41,5 @@ class AdefpatAccountAnalyticLine(models.Model): 'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'], 'adefpat:justificatifDate': fields.Datetime.to_datetime(self.date).isoformat(), 'adefpat:justificatifTypeConvention': self.type_convention_id.name, - 'adefpat:justificatifUtilisateurs': self.user_id.login + 'adefpat:justificatifUtilisateurs': self.employee_id.user_id.login } diff --git a/models/project.py b/models/project.py index a1d4a3ebf0065c627fb30084cd837698c311d75e..6b45d46c4207a42bbbca9ebec75f00350a46f60f 100644 --- a/models/project.py +++ b/models/project.py @@ -4,6 +4,7 @@ from datetime import datetime from odoo import api, models +from odoo import fields as odooFields from odoo.exceptions import UserError from odoo.addons.cmis_field import fields @@ -17,6 +18,13 @@ class AdefpatPorteursProjets(models.Model): create_properties_get='_get_folder_properties', ) + pp_cmis_folder_completion = odooFields.Selection( + [(9, 'Inconnu'), + (0, 'Incomplet'), + (1, 'Complet'), + (2, 'Validé')], + default=9) + @api.multi def get_content_details_url(self): for pp in self: @@ -43,6 +51,7 @@ class AdefpatPorteursProjets(models.Model): 'cmis:secondaryObjectTypeIds': [ 'P:adefpat:dossier', 'P:adefpat:beneficiaire', + 'P:adefpat:validation', 'P:up:UploadFolder', 'P:cm:titled', 'P:sys:cascadeUpdate', @@ -54,6 +63,13 @@ class AdefpatPorteursProjets(models.Model): 'adefpat:beneficiairePrenom': self.firstname if self.firstname else '', } + @api.multi + def _get_completion_status(self): + for pp in self: + if pp.pp_cmis_folder: + backend_name = self._fields['pp_cmis_folder'] + backend = backend_name.get_backend(pp.env) + pp.pp_cmis_folder_completion = backend.get_cmis_repository().getFolder(pp.pp_cmis_folder).getProperties()['adefpat:validationStatut'] or 9 class AdefpatConsultantsProjets(models.Model): _inherit = 'res.partner.consultants.project' @@ -318,18 +334,13 @@ class AlfodooProject(models.Model): # Récupération des documents dont la complétude est cochée list_doc_completude = list_doc.filtered(lambda r: r.completude == True) - # Récupération des documents dont la validation est demandée - list_doc_valid = list_doc.filtered(lambda r: r.valid == True) - doc = list_doc.mapped('name') doc_completude = list_doc_completude.mapped('name') - doc_valid = list_doc_valid.mapped('name') if doc: cmis_folder.updateProperties({ 'adefpat:typesListe': doc, 'adefpat:typesListeCompletude': doc_completude, - # 'adefpat:validation': doc_valid, }) def create_child(self, object_cmis, object, path_object, backend, child): @@ -359,3 +370,8 @@ class AlfodooProject(models.Model): properties.update({'adefpat:dossierNumero': project.num_dossier}) folder = backend.get_cmis_object(project) folder.updateProperties(properties) + + @api.multi + def get_pp_completion(self): + for project in self: + project.porteurs_projets_ids._get_completion_status() diff --git a/views/adefpat_list_type_doc_views.xml b/views/adefpat_list_type_doc_views.xml index 0d0ea21f94f921c0af61bd13580e166fb17681ac..7724e44802fd6b0a4054c4c378d722404561c2ee 100644 --- a/views/adefpat_list_type_doc_views.xml +++ b/views/adefpat_list_type_doc_views.xml @@ -16,7 +16,6 @@ <field name="convention_ids" /> <field name="dossier"/> <field name="completude"/> - <field name="valid"/> </tree> </field> </record> @@ -36,7 +35,6 @@ <group> <field name="dossier"/> <field name="completude"/> - <field name="valid"/> </group> </group> </sheet> @@ -96,4 +94,4 @@ action="action_view_adefpat_list_type_doc"/> </data> -</odoo> \ No newline at end of file +</odoo> diff --git a/views/hr_expense_views.xml b/views/hr_expense_views.xml index 97169a01a057b810141ccc1ea1a829f6f2b4b803..4c02d69ffa4b3f1bd263c92bbed0ecdef76ce4ba 100644 --- a/views/hr_expense_views.xml +++ b/views/hr_expense_views.xml @@ -11,20 +11,16 @@ <field name="inherit_id" ref="hr_expense.hr_expense_view_form"/> <field name="arch" type="xml"> <header position="inside"> - <button name="%(adefpat_alfodoo.upload_file_wizard_action)d" + <button name="%(adefpat_alfodoo.upload_file_wizard_action)d" string="Charger le justificatif" type="action" class="oe_highlight" - attrs="{'invisible': [('proof_file', '=', False)]}"/> - <button name="%(adefpat_alfodoo.upload_file_wizard_action)d" - string="Remplacer le justificatif" - type="action" - attrs="{'invisible': [('proof_file', '=', False)]}"/> - <button name="get_content_details_url" - string="Voir le justificatif" - type="objecy" - attrs="{'invisible': [('proof_file', '=', False)]}"/> + attrs="{'invisible': [('proof_file', '!=', False)]}"/> <field name="proof_file" invisible="1"/> + <button name="get_content_details_url" + string="Voir le justificatif" + type="object" + attrs="{'invisible': [('proof_file', '=', False)]}"/> </header> </field> </record> diff --git a/views/hr_timesheet_views.xml b/views/hr_timesheet_views.xml index 4cc72b831f14fc45db50e77db52688313612928d..45abcf62deba734a83cd24305ad5650ebb9eb4ac 100644 --- a/views/hr_timesheet_views.xml +++ b/views/hr_timesheet_views.xml @@ -16,6 +16,7 @@ string="Charger un doc" type="action" class="btn-outline-info btn-sm" + attrs="{'invisible': ['|',('proof_file', '!=', False),('id', '=', False)]}" /> <button icon="/adefpat_alfodoo/static/src/img/alfresco-logo-16.png" name="get_content_details_url" diff --git a/views/project_views.xml b/views/project_views.xml index 98f48159f7cea76cb8a38c11e66dc229c707789d..eb59b7102e7f4500b934533b54885336af774fba 100644 --- a/views/project_views.xml +++ b/views/project_views.xml @@ -10,7 +10,10 @@ <field name="name">project.alfresco.view.form.inherit</field> <field name="model">project.project</field> <field name="inherit_id" ref="adefpat_project.edit_project"/> - <field name="arch" type="xml"> + <field name="arch" type="xml"> + <header position="inside"> + <button string="Dossiers Complets ?" type="object" class="btn-secondary" name="get_pp_completion" attrs="{'invisible': [('porteurs_projets_ids', '=', False)]}"/> + </header> <!-- Ajoute l'onglet Documents dans la vue projet --> <xpath expr="//notebook" position="inside"> <page string="Documents" groups="base.group_user"> @@ -32,6 +35,7 @@ </xpath> <xpath expr="//field[@name='porteurs_projets_ids']//tree//field[@name='eligible']" position="after"> <field name="pp_cmis_folder" invisible="1"/> + <field name="pp_cmis_folder_completion" string="Complet ?" attrs="{'invisible': [('pp_cmis_folder', '=', False)]}"/> <button icon="/adefpat_alfodoo/static/src/img/alfresco-logo-16.png" name="get_content_details_url" string="voir" type="object" attrs="{'invisible': [('pp_cmis_folder', '=', False)]}"/> </xpath> <xpath expr="//field[@name='consulant_ids']//tree//field[@name='is_selected']" position="after"> diff --git a/wizard/upload_file_wizard.py b/wizard/upload_file_wizard.py index 664ecf23b6ebdd51636e291cbcff2c8e8f38fbb7..03dc1a3247b2fceb77bba5096f3d5c0d9c97f953 100644 --- a/wizard/upload_file_wizard.py +++ b/wizard/upload_file_wizard.py @@ -53,14 +53,11 @@ class UploadFileWizard(models.TransientModel): file = repo.createDocument( name=self.filename, properties=obj.get_file_properties(), - contentString=self.file, - contentType=content_type, + contentFile=base64.b64decode(self.file), + contentType=content_type ) - file_id = file.getProperties().get('cmis:objectId') - obj.proof_file = file.getObjectId() + file_id = file.getProperties().get('cmis:objectId') + obj.proof_file = file.getObjectId() # TODO: Mettre à jour le champ avec le NodeRef - - - diff --git a/wizard/upload_file_wizard.xml b/wizard/upload_file_wizard.xml index 0336c178ca5472fb4531afe0a45e2737810d380c..c02613fea10782fb603a5c1abdc742c614b443e7 100644 --- a/wizard/upload_file_wizard.xml +++ b/wizard/upload_file_wizard.xml @@ -15,7 +15,7 @@ <field name="file" filename="filename" required="1"/> </group> <footer> - <button class="btn btn-sm btn-primary" name="upload_file" string="Ajouter" type="object" confirm="Êtes-vous sûr(e) de vouloir ajouter ce fichier ?"/> + <button class="btn btn-sm btn-primary" name="upload_file" string="Ajouter" type="object"/> <button class="btn btn-sm btn-default" special="cancel" string="Fermer"/> </footer> </form> @@ -32,4 +32,4 @@ </record> </data> -</odoo> \ No newline at end of file +</odoo>