Skip to content
Extraits de code Groupes Projets
Valider 3d50e4a9 rédigé par ='s avatar =
Parcourir les fichiers

Fix remaining issues

parent e9a4adc5
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -25,7 +25,6 @@ class AdefpatListTypeDoc(models.Model): ...@@ -25,7 +25,6 @@ class AdefpatListTypeDoc(models.Model):
'adefpat.archi.dossier', 'adefpat.archi.dossier',
"Nom du dossier") "Nom du dossier")
completude = fields.Boolean("Complétude") completude = fields.Boolean("Complétude")
valid = fields.Boolean("A valider")
class AdefpatArchiDossier(models.Model): class AdefpatArchiDossier(models.Model):
......
...@@ -40,5 +40,5 @@ class AdefpatHrExpense(models.Model): ...@@ -40,5 +40,5 @@ class AdefpatHrExpense(models.Model):
'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'], 'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'],
'adefpat:justificatifDate': fields.Datetime.to_datetime(self.date).isoformat(), 'adefpat:justificatifDate': fields.Datetime.to_datetime(self.date).isoformat(),
'adefpat:justificatifTypeConvention': self.type_convention_id.name, 'adefpat:justificatifTypeConvention': self.type_convention_id.name,
'adefpat:justificatifUtilisateurs': self.user_id.login 'adefpat:justificatifUtilisateurs': self.employee_id.user_id.login
} }
...@@ -41,5 +41,5 @@ class AdefpatAccountAnalyticLine(models.Model): ...@@ -41,5 +41,5 @@ class AdefpatAccountAnalyticLine(models.Model):
'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'], 'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'],
'adefpat:justificatifDate': fields.Datetime.to_datetime(self.date).isoformat(), 'adefpat:justificatifDate': fields.Datetime.to_datetime(self.date).isoformat(),
'adefpat:justificatifTypeConvention': self.type_convention_id.name, 'adefpat:justificatifTypeConvention': self.type_convention_id.name,
'adefpat:justificatifUtilisateurs': self.user_id.login 'adefpat:justificatifUtilisateurs': self.employee_id.user_id.login
} }
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
from datetime import datetime from datetime import datetime
from odoo import api, models from odoo import api, models
from odoo import fields as odooFields
from odoo.exceptions import UserError from odoo.exceptions import UserError
from odoo.addons.cmis_field import fields from odoo.addons.cmis_field import fields
...@@ -17,6 +18,13 @@ class AdefpatPorteursProjets(models.Model): ...@@ -17,6 +18,13 @@ class AdefpatPorteursProjets(models.Model):
create_properties_get='_get_folder_properties', create_properties_get='_get_folder_properties',
) )
pp_cmis_folder_completion = odooFields.Selection(
[(9, 'Inconnu'),
(0, 'Incomplet'),
(1, 'Complet'),
(2, 'Validé')],
default=9)
@api.multi @api.multi
def get_content_details_url(self): def get_content_details_url(self):
for pp in self: for pp in self:
...@@ -43,6 +51,7 @@ class AdefpatPorteursProjets(models.Model): ...@@ -43,6 +51,7 @@ class AdefpatPorteursProjets(models.Model):
'cmis:secondaryObjectTypeIds': [ 'cmis:secondaryObjectTypeIds': [
'P:adefpat:dossier', 'P:adefpat:dossier',
'P:adefpat:beneficiaire', 'P:adefpat:beneficiaire',
'P:adefpat:validation',
'P:up:UploadFolder', 'P:up:UploadFolder',
'P:cm:titled', 'P:cm:titled',
'P:sys:cascadeUpdate', 'P:sys:cascadeUpdate',
...@@ -54,6 +63,13 @@ class AdefpatPorteursProjets(models.Model): ...@@ -54,6 +63,13 @@ class AdefpatPorteursProjets(models.Model):
'adefpat:beneficiairePrenom': self.firstname if self.firstname else '', '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): class AdefpatConsultantsProjets(models.Model):
_inherit = 'res.partner.consultants.project' _inherit = 'res.partner.consultants.project'
...@@ -318,18 +334,13 @@ class AlfodooProject(models.Model): ...@@ -318,18 +334,13 @@ class AlfodooProject(models.Model):
# Récupération des documents dont la complétude est cochée # Récupération des documents dont la complétude est cochée
list_doc_completude = list_doc.filtered(lambda r: r.completude == True) 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 = list_doc.mapped('name')
doc_completude = list_doc_completude.mapped('name') doc_completude = list_doc_completude.mapped('name')
doc_valid = list_doc_valid.mapped('name')
if doc: if doc:
cmis_folder.updateProperties({ cmis_folder.updateProperties({
'adefpat:typesListe': doc, 'adefpat:typesListe': doc,
'adefpat:typesListeCompletude': doc_completude, 'adefpat:typesListeCompletude': doc_completude,
# 'adefpat:validation': doc_valid,
}) })
def create_child(self, object_cmis, object, path_object, backend, child): def create_child(self, object_cmis, object, path_object, backend, child):
...@@ -359,3 +370,8 @@ class AlfodooProject(models.Model): ...@@ -359,3 +370,8 @@ class AlfodooProject(models.Model):
properties.update({'adefpat:dossierNumero': project.num_dossier}) properties.update({'adefpat:dossierNumero': project.num_dossier})
folder = backend.get_cmis_object(project) folder = backend.get_cmis_object(project)
folder.updateProperties(properties) folder.updateProperties(properties)
@api.multi
def get_pp_completion(self):
for project in self:
project.porteurs_projets_ids._get_completion_status()
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
<field name="convention_ids" /> <field name="convention_ids" />
<field name="dossier"/> <field name="dossier"/>
<field name="completude"/> <field name="completude"/>
<field name="valid"/>
</tree> </tree>
</field> </field>
</record> </record>
...@@ -36,7 +35,6 @@ ...@@ -36,7 +35,6 @@
<group> <group>
<field name="dossier"/> <field name="dossier"/>
<field name="completude"/> <field name="completude"/>
<field name="valid"/>
</group> </group>
</group> </group>
</sheet> </sheet>
......
...@@ -15,16 +15,12 @@ ...@@ -15,16 +15,12 @@
string="Charger le justificatif" string="Charger le justificatif"
type="action" type="action"
class="oe_highlight" class="oe_highlight"
attrs="{'invisible': [('proof_file', '=', False)]}"/> attrs="{'invisible': [('proof_file', '!=', False)]}"/>
<button name="%(adefpat_alfodoo.upload_file_wizard_action)d" <field name="proof_file" invisible="1"/>
string="Remplacer le justificatif"
type="action"
attrs="{'invisible': [('proof_file', '=', False)]}"/>
<button name="get_content_details_url" <button name="get_content_details_url"
string="Voir le justificatif" string="Voir le justificatif"
type="objecy" type="object"
attrs="{'invisible': [('proof_file', '=', False)]}"/> attrs="{'invisible': [('proof_file', '=', False)]}"/>
<field name="proof_file" invisible="1"/>
</header> </header>
</field> </field>
</record> </record>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
string="Charger un doc" string="Charger un doc"
type="action" type="action"
class="btn-outline-info btn-sm" class="btn-outline-info btn-sm"
attrs="{'invisible': ['|',('proof_file', '!=', False),('id', '=', False)]}"
/> />
<button icon="/adefpat_alfodoo/static/src/img/alfresco-logo-16.png" <button icon="/adefpat_alfodoo/static/src/img/alfresco-logo-16.png"
name="get_content_details_url" name="get_content_details_url"
......
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
<field name="model">project.project</field> <field name="model">project.project</field>
<field name="inherit_id" ref="adefpat_project.edit_project"/> <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 --> <!-- Ajoute l'onglet Documents dans la vue projet -->
<xpath expr="//notebook" position="inside"> <xpath expr="//notebook" position="inside">
<page string="Documents" groups="base.group_user"> <page string="Documents" groups="base.group_user">
...@@ -32,6 +35,7 @@ ...@@ -32,6 +35,7 @@
</xpath> </xpath>
<xpath expr="//field[@name='porteurs_projets_ids']//tree//field[@name='eligible']" position="after"> <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" 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)]}"/> <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>
<xpath expr="//field[@name='consulant_ids']//tree//field[@name='is_selected']" position="after"> <xpath expr="//field[@name='consulant_ids']//tree//field[@name='is_selected']" position="after">
......
...@@ -53,14 +53,11 @@ class UploadFileWizard(models.TransientModel): ...@@ -53,14 +53,11 @@ class UploadFileWizard(models.TransientModel):
file = repo.createDocument( file = repo.createDocument(
name=self.filename, name=self.filename,
properties=obj.get_file_properties(), properties=obj.get_file_properties(),
contentString=self.file, contentFile=base64.b64decode(self.file),
contentType=content_type, contentType=content_type
) )
file_id = file.getProperties().get('cmis:objectId') file_id = file.getProperties().get('cmis:objectId')
obj.proof_file = file.getObjectId() obj.proof_file = file.getObjectId()
# TODO: Mettre à jour le champ avec le NodeRef # TODO: Mettre à jour le champ avec le NodeRef
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<field name="file" filename="filename" required="1"/> <field name="file" filename="filename" required="1"/>
</group> </group>
<footer> <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"/> <button class="btn btn-sm btn-default" special="cancel" string="Fermer"/>
</footer> </footer>
</form> </form>
......
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