Skip to content
Extraits de code Groupes Projets
Valider 3970592d rédigé par Juliana's avatar Juliana
Parcourir les fichiers

[ADD]Attach json file to folder virtual

parent 8f8dfe5a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -11,6 +11,7 @@ from odoo.exceptions import UserError ...@@ -11,6 +11,7 @@ from odoo.exceptions import UserError
class AdefpatProjectJustifZip(models.TransientModel): class AdefpatProjectJustifZip(models.TransientModel):
_name = "adefpat.project.justif.zip.wizard" _name = "adefpat.project.justif.zip.wizard"
_inherit = 'lefilament.alfresco'
_description = "Wizard justifs zip projets" _description = "Wizard justifs zip projets"
period_start = fields.Date("Début de période", required=True) period_start = fields.Date("Début de période", required=True)
...@@ -116,9 +117,9 @@ class AdefpatProjectJustifZip(models.TransientModel): ...@@ -116,9 +117,9 @@ class AdefpatProjectJustifZip(models.TransientModel):
}] }]
} }
if self.type_convention_id: if self.type_convention_id:
file_name = "justifs_projets_"+ str(date.today()) + "_" + self.type_convention_id.name + ".json" file_name = "justifs_projets_"+ str(date.today()) + "_" + self.type_convention_id.name
else: else:
file_name = "justifs_projets_"+ str(date.today()) +".json" file_name = "justifs_projets_"+ str(date.today())
self.create_json_file(file_name, virtual_json) self.create_json_file(file_name, virtual_json)
@api.multi @api.multi
...@@ -138,9 +139,9 @@ class AdefpatProjectJustifZip(models.TransientModel): ...@@ -138,9 +139,9 @@ class AdefpatProjectJustifZip(models.TransientModel):
] ]
} }
if self.type_convention_id: if self.type_convention_id:
file_name = "justifs_factures_fournisseurs_"+ str(date.today()) + "_" + self.type_convention_id.name + ".json" file_name = "justifs_factures_fournisseurs_"+ str(date.today()) + "_" + self.type_convention_id.name
else: else:
file_name = "justifs_factures_fournisseurs_"+ str(date.today()) +".json" file_name = "justifs_factures_fournisseurs_"+ str(date.today())
self.create_json_file(file_name, virtual_json) self.create_json_file(file_name, virtual_json)
@api.multi @api.multi
...@@ -166,9 +167,9 @@ class AdefpatProjectJustifZip(models.TransientModel): ...@@ -166,9 +167,9 @@ class AdefpatProjectJustifZip(models.TransientModel):
] ]
} }
if self.type_convention_id: if self.type_convention_id:
file_name = "justifs_factures_clients_"+ str(date.today()) + "_" + self.type_convention_id.name + ".json" file_name = "justifs_factures_clients_"+ str(date.today()) + "_" + self.type_convention_id.name
else: else:
file_name = "justifs_factures_clients_"+ str(date.today()) +".json" file_name = "justifs_factures_clients_"+ str(date.today())
self.create_json_file(file_name, virtual_json) self.create_json_file(file_name, virtual_json)
@api.multi @api.multi
...@@ -210,28 +211,60 @@ class AdefpatProjectJustifZip(models.TransientModel): ...@@ -210,28 +211,60 @@ class AdefpatProjectJustifZip(models.TransientModel):
} }
if self.type_convention_id: if self.type_convention_id:
file_name = "justifs_frais_" + str( file_name = "justifs_frais_" + str(
date.today()) + "_" + self.type_convention_id.name + ".json" date.today()) + "_" + self.type_convention_id.name
else: else:
file_name = "justifs_frais_" + str( file_name = "justifs_frais_" + str(
date.today()) + ".json" date.today())
self.create_json_file(file_name, virtual_json) self.create_json_file(file_name, virtual_json)
def create_json_file(self, file_name, virtual_json): def create_json_file(self, file_name, virtual_json):
backend = self.env['cmis.backend'].search([], limit=1)
json_file_cmis = self.env.user.company_id.proof_justif_cmis
parent_path = backend.get_cmis_repository().getFolder(
json_file_cmis).getPaths()
path_to_create = parent_path + [file_name]
path = '/'.join(path_to_create)
try:
# Mise à jour des propriétés du dossier virtuel
cmis_folder = backend.get_folder_by_path(path)
js = json.dumps(virtual_json, indent=4) js = json.dumps(virtual_json, indent=4)
prop = { prop = {
'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'], 'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'],
} }
backend = self.env['cmis.backend'].search([], limit=1)
json_file_cmis = self.env.user.company_id.proof_justif_cmis
repo = backend.get_cmis_repository().getObject(json_file_cmis)
try: repo = backend.get_cmis_repository().getObject(json_file_cmis)
file = repo.createDocument( file = repo.createDocument(
name=file_name, name=file_name + ".json",
properties=prop, properties=prop,
contentFile=js, contentFile=js,
contentType="application/json" contentType="application/json"
) )
noderef_file_id = file.getProperties().get('alfcmis:nodeRef')
prop_folder = {
'cmis:secondaryObjectTypeIds': [
'P:smf:customConfigSmartFolder',
'P:cm:taggable',
'P:up:UploadFolder',
'P:cm:titled',
'P:sys:localized'
],
}
cmis_folder.updateProperties(prop_folder)
noderef_folder_id = cmis_folder.getProperties().get('cmis:objectId')
url = '/alfresco/s/api/node/workspace/SpacesStore/' + noderef_folder_id + '/formprocessor'
result = self.alfresco_get_by_url(
url=url,
call_type='post',
json={
"assoc_smf_custom-template-association_added": noderef_file_id
},
backend=backend)
except Exception as e: except Exception as e:
raise UserError(json.loads(e.details).get('message')) raise UserError(json.loads(e.details).get('message'))
\ No newline at end of file
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