# © 2019 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import dateutil.parser import pytz from odoo import models, fields class AlfrescoPartner(models.Model): _name = 'res.partner' _inherit = ['res.partner', 'connector.alfresco'] id_alfresco = fields.Char('ID Dossier Alfresco') def get_partner_files(self): """ Liste l'ensemble des fichiers pour un organisme La fonction fait appel à l'API Alfresco et enregistre le résultat dans un modèle Transient. L'ID user est ajouté à la table pour définir les requêtes propres à chaque user @return: ir.act.window """ files = self.alfresco_list_docs(self.name).get('docs', '') uid = self.env.user.id alfresco_obj = self.env["alfresco.partner.files"] alfresco_obj.search([['user_id', '=', uid]]).unlink() for doc in files: alfresco_obj.create({ 'name': doc['name'], 'type': doc['type'], 'file_id': doc['nodeRef'].replace('workspace://SpacesStore/', ''), 'user_id': uid, 'periode': doc['periode'], 'validite': doc['validite'], 'last_modification': dateutil.parser.parse( doc['modifiedOn']).astimezone(pytz.utc), 'partner_id': self.id, }) return { "type": "ir.actions.act_window", "name": "Fichiers liés", "res_model": "alfresco.partner.files", "views": [[False, "tree"]], "search_view_id": self.env.ref( "connector_alfresco.alfresco_partner_files_search").id, 'context': {'search_default_group_periode': True} }