From 759d168386a4ffc4541a73a377ba6ea50deea9ee Mon Sep 17 00:00:00 2001 From: Benjamin <benjamin@le-filament.com> Date: Thu, 8 Oct 2020 14:41:41 +0200 Subject: [PATCH] =?UTF-8?q?[update]=20suppressions=20fonctions=20g=C3=A9r?= =?UTF-8?q?=C3=A9es=20par=20Alfodoo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 2 - __manifest__.py | 4 -- controllers/__init__.py | 4 -- controllers/main.py | 29 --------- models/__init__.py | 1 - models/alfresco_partner_files.py | 33 ---------- models/res_partner.py | 69 +-------------------- static/src/js/alfresco_add_file.js | 31 ---------- static/src/xml/widget_listview.xml | 13 ---- views/alfresco_partner_files.xml | 47 --------------- views/assets.xml | 13 ---- wizard/__init__.py | 4 -- wizard/add_file_wizard.py | 97 ------------------------------ wizard/add_file_wizard.xml | 36 ----------- 14 files changed, 1 insertion(+), 382 deletions(-) delete mode 100644 controllers/__init__.py delete mode 100644 controllers/main.py delete mode 100644 models/alfresco_partner_files.py delete mode 100644 static/src/js/alfresco_add_file.js delete mode 100644 static/src/xml/widget_listview.xml delete mode 100644 views/alfresco_partner_files.xml delete mode 100644 views/assets.xml delete mode 100644 wizard/__init__.py delete mode 100644 wizard/add_file_wizard.py delete mode 100644 wizard/add_file_wizard.xml diff --git a/__init__.py b/__init__.py index 9076584..d997a09 100644 --- a/__init__.py +++ b/__init__.py @@ -1,6 +1,4 @@ # © 2019 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from . import controllers from . import models -from . import wizard diff --git a/__manifest__.py b/__manifest__.py index f090217..78785d5 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -14,12 +14,8 @@ ], "data": [ "security/ir.model.access.csv", - "views/assets.xml", "views/alfresco_connection.xml", - "views/alfresco_partner_files.xml", "views/res_partner.xml", - "wizard/add_file_wizard.xml", - "datas/cron_init_alfresco.xml", ], 'qweb': [ 'static/src/xml/*.xml', diff --git a/controllers/__init__.py b/controllers/__init__.py deleted file mode 100644 index 4a51cde..0000000 --- a/controllers/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -from . import main \ No newline at end of file diff --git a/controllers/main.py b/controllers/main.py deleted file mode 100644 index ea71fc1..0000000 --- a/controllers/main.py +++ /dev/null @@ -1,29 +0,0 @@ -# © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -import base64 - -from odoo import http -from odoo.http import request -from odoo.addons.web.controllers.main import serialize_exception, content_disposition - - -class AlfrescoBinary(http.Controller): - @http.route('/web/binary/download_alfresco', type='http', auth="user") - @serialize_exception - def download_alfresco_document(self, id_alfresco, **kwargs): - """ Téléchargement des fichiers depuis alfresco. - - :param str id_alfresco: id de la ressource - @return: :class:`werkzeug.wrappers.Response` - """ - doc = request.env['alfresco.partner.files'].search( - [['file_id', '=', id_alfresco]]).alfresco_get_doc(id_alfresco) - filecontent = base64.b64decode( - doc['base64NodeContent']) - if not filecontent: - return request.not_found() - else: - return request.make_response(filecontent, [ - ('Content-Type', 'application/octet-stream'), - ('Content-Disposition', content_disposition(doc['name']))]) diff --git a/models/__init__.py b/models/__init__.py index 8320fce..908cd20 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -3,5 +3,4 @@ from . import api_alfresco from . import alfresco_connection -from . import alfresco_partner_files from . import res_partner diff --git a/models/alfresco_partner_files.py b/models/alfresco_partner_files.py deleted file mode 100644 index 5aa1df9..0000000 --- a/models/alfresco_partner_files.py +++ /dev/null @@ -1,33 +0,0 @@ -# © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -from odoo import models, fields, api - - -class AlfrescoPartnerFiles(models.TransientModel): - _name = 'alfresco.partner.files' - _inherit = 'cgscop.alfresco' - _description = "Requete fichiers par organisme" - - name = fields.Char('Nom du Fichier') - type = fields.Char('Type') - periode = fields.Char('Période') - validite = fields.Char('Validité') - file_id = fields.Char('ID Fichier') - last_modification = fields.Datetime('Dernière Modification') - user_id = fields.Many2one( - comodel_name='res.users', - string='User') - partner_id = fields.Many2one( - comodel_name='res.partner', - string='Organisme') - - @api.multi - def download_file(self): - for doc in self: - return { - 'type': 'ir.actions.act_url', - 'url': '/web/binary/download_alfresco?id_alfresco=%s' % ( - doc.file_id, ), - 'target': 'self', - } diff --git a/models/res_partner.py b/models/res_partner.py index 5a0a6a0..1577081 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -1,9 +1,6 @@ # © 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, api ALFRESCO_TRACKED_FIELDS = ['name', 'id', 'siret', 'member_number'] @@ -16,9 +13,8 @@ class AlfrescoPartner(models.Model): id_alfresco = fields.Char('ID Dossier Alfresco') # ------------------------------------------------------ - # Fonctions héritées + # Override ORM # ------------------------------------------------------ - @api.multi def write(self, vals): """ Surcharge la fonction write() pour mettre à jour @@ -49,66 +45,3 @@ class AlfrescoPartner(models.Model): if partner.id_alfresco: partner.alfresco_remove(partner.id_alfresco) return super(AlfrescoPartner, self).unlink() - - # ------------------------------------------------------ - # Fonction boutons - # ------------------------------------------------------ - 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 - """ - if self.id_alfresco: - files = self.alfresco_list_docs(self.id_alfresco).get('docs', '') - else: - self.id_alfresco = self.alfresco_create_organism(self) - print(self.name) - print(self.id_alfresco) - files = self.alfresco_list_docs(self.id_alfresco).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( - "cgscop_alfresco.alfresco_partner_files_search").id, - 'context': {'search_default_group_periode': True} - } - - # ------------------------------------------------------ - # CRON - # ------------------------------------------------------ - def _init_alfresco_folder(self): - """ Fonction pour le cron permettant de créer un dossier - dans Alfresco pour l'ensemble des organismes qui n'ont pas - de nodeRef - """ - partners = self.env['res.partner'].search([ - ['is_cooperative', '=', True], - ['id_alfresco', '=', False], - ['membership_status', '=', "member"]]) - for partner in partners: - id_alfresco = partner.alfresco_create_organism(partner) - partner.write({ - 'id_alfresco': id_alfresco, - }) diff --git a/static/src/js/alfresco_add_file.js b/static/src/js/alfresco_add_file.js deleted file mode 100644 index 65d3672..0000000 --- a/static/src/js/alfresco_add_file.js +++ /dev/null @@ -1,31 +0,0 @@ -odoo.define('connector_alfresco.alfresco_add_file', function (require){ -"use strict"; - -var core = require('web.core'); -var ListController = require('web.ListController'); -var QWeb = core.qweb; -var session = require('web.session'); - -ListController.include({ - - renderButtons: function() { - this._super.apply(this, arguments); - var self = this; - this.$buttons.on('click', '.add_file', function() { - var active_id = self.getParent().getParent()._current_state.active_id; - self.do_action({ - type: "ir.actions.act_window", - name: "Ajouter un fichier", - res_model: "add.file.wizard", - views: [[false,'form']], - target: 'new', - view_type : 'form', - view_mode : 'form', - context: { 'active_id': Number(active_id) } - }); - }); - }, - -}); - -}); \ No newline at end of file diff --git a/static/src/xml/widget_listview.xml b/static/src/xml/widget_listview.xml deleted file mode 100644 index 5dfe260..0000000 --- a/static/src/xml/widget_listview.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright 2017 Le Filament (<https://www.le-filament.com>) - License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> - -<templates xml:space="preserve"> - <t t-extend="ListView.buttons"> - <t t-jquery="div.o_list_buttons" t-operation="append"> - <t t-if="widget.modelName == 'alfresco.partner.files'" > - <button class="btn btn-secondary add_file" type="button" >Ajouter un fichier</button> - </t> - </t> - </t> -</templates> \ No newline at end of file diff --git a/views/alfresco_partner_files.xml b/views/alfresco_partner_files.xml deleted file mode 100644 index 0d51406..0000000 --- a/views/alfresco_partner_files.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0"?> -<!-- Copyright 2019 Le Filament - License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> - -<odoo> - <data> - - <record id="alfresco_partner_files_search" model="ir.ui.view"> - <field name="name">alfresco.partner.files.search</field> - <field name="model">alfresco.partner.files</field> - <field name="arch" type="xml"> - <search> - <!-- Champs de recherche --> - <field name="name" /> - <field name="periode"/> - <field name="type"/> - <field name="validite"/> - <!-- Groupes --> - <group expand="0" name="group_by" string="Group By"> - <filter string="Période" name="group_periode" context="{'group_by': 'periode'}"/> - <filter string="Types" name="group_type" context="{'group_by': 'type'}"/> - <filter string="Validité" name="group_validite" context="{'group_by': 'validite'}"/> - <filter string="Dernière Modification" name="group_last_modification" context="{'group_by': 'last_modification'}"/> - </group> - - </search> - </field> - </record> - - <record id="alfresco_partner_files_tree" model="ir.ui.view"> - <field name="name">alfresco.partner.files.tree</field> - <field name="model">alfresco.partner.files</field> - <field eval="8" name="priority"/> - <field name="arch" type="xml"> - <tree string="Fichiers" create="false" edit="false" delete="false" > - <field name="name" /> - <field name="type"/> - <field name="periode"/> - <field name="validite"/> - <field name="last_modification"/> - <button name="download_file" string="Télécharger" type="object" /> - </tree> - </field> - </record> - - </data> -</odoo> diff --git a/views/assets.xml b/views/assets.xml deleted file mode 100644 index 44624aa..0000000 --- a/views/assets.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0"?> -<!-- Copyright 2019 Le Filament - License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> - -<odoo> - - <template id="alfresco_assets_backend" name="account assets" inherit_id="web.assets_backend"> - <xpath expr="." position="inside"> - <script type="text/javascript" src="/cgscop_alfresco/static/src/js/alfresco_add_file.js"></script> - </xpath> - </template> - -</odoo> \ No newline at end of file diff --git a/wizard/__init__.py b/wizard/__init__.py deleted file mode 100644 index 0f342be..0000000 --- a/wizard/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -from . import add_file_wizard \ No newline at end of file diff --git a/wizard/add_file_wizard.py b/wizard/add_file_wizard.py deleted file mode 100644 index 5c3f60c..0000000 --- a/wizard/add_file_wizard.py +++ /dev/null @@ -1,97 +0,0 @@ -# © 2019 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -import mimetypes -import dateutil.parser -import pytz - -from odoo import api, fields, models -from odoo.tools.mimetypes import guess_mimetype - - -class AddFileWizard(models.TransientModel): - """ Wizard d'ajout de fichier dans la GED - - Récupère automatiquement depuis Alfresco les valeurs de periode, - type et validité ainsi que l'organisme associé - """ - _name = 'add.file.wizard' - _inherit = 'cgscop.alfresco' - _description = "Ajout de fichier dans Alfresco" - - # Default functions - def _get_selection(self, value): - try: - file_type = self.alfresco_list_type()[value] - select_type = [] - for type in file_type: - select_type.append( - (type, type)) - return select_type - except: - return False - - @api.model - def _get_type(self): - return self._get_selection('type') - - @api.model - def _get_periode(self): - return self._get_selection('periode') - - @api.model - def _get_validite(self): - return self._get_selection('validite') - - @api.model - def _default_partner_id(self): - return self.env.context.get('active_id') - - type = fields.Selection(selection=_get_type, string='Type') - periode = fields.Selection(selection=_get_periode, string='Période') - validite = fields.Selection(selection=_get_validite, string='Validité') - file = fields.Binary('Fichier') - filename = fields.Char('Nom') - partner_id = fields.Many2one( - comodel_name='res.partner', - string='Organisme', - default=_default_partner_id,) - - @api.multi - def add_file(self): - """ Ajoute un fichier sur la GED Alfresco - - @return: fonction get_partner_files() de res.partner - """ - # Get Mimetype - content_type = mimetypes.guess_type(self.filename) - if content_type[0]: - content_type = content_type[0] - else: - content_type = guess_mimetype(self.file) - # Upload File - uploaded_file = self.alfresco_upload( - partner=self.partner_id, - type=self.type, - periode=self.periode, - validite=self.validite, - filename=self.filename, - mimetype=content_type, - doc=self.file.decode('utf-8')) - # Add new file in transient model for view - uid = self.env.user.id - alfresco_obj = self.env["alfresco.partner.files"] - alfresco_obj.create({ - 'name': self.periode if self.periode != 'Autre' else self.filename, - 'type': self.type, - 'file_id': uploaded_file, - 'user_id': uid, - 'periode': self.periode, - 'validite': self.validite, - 'last_modification': fields.Datetime.now(), - 'partner_id': self.partner_id.id, - }) - # Reload view - return { - 'type': 'ir.actions.close_wizard_refresh_view' - } diff --git a/wizard/add_file_wizard.xml b/wizard/add_file_wizard.xml deleted file mode 100644 index 6ceae9e..0000000 --- a/wizard/add_file_wizard.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<odoo> - <!-- WIZARD FORM --> - <record id="add_file_wizard_view_form" model="ir.ui.view"> - <field name="name">add.file.wizard.form</field> - <field name="model">add.file.wizard</field> - <field name="arch" type="xml"> - <form string="Ajouter un Fichier"> - <group name="infos" string="Informations"> - <field name="partner_id" readonly="1" /> - <field name="periode" required="1" /> - <field name="type" required="1" /> - <field name="validite" required="1" /> - </group> - <group> - <field name="filename" invisible="1"/> - <field name="file" filename="filename" required="1"/> - </group> - <footer> - <button class="btn btn-sm btn-primary" name="add_file" string="Ajouter" type="object" confirm="Êtes-vous sûr(e) de vouloir ajouter ce fichier ?"/> - <button class="btn btn-sm btn-default" special="cancel" string="Fermer"/> - </footer> - </form> - </field> - </record> - - <record id="add_file_wizard_create_action" model="ir.actions.act_window"> - <field name="name">Ajouter un fichier</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">add.file.wizard</field> - <field name="view_mode">form</field> - <field name="view_id" ref="add_file_wizard_view_form"/> - <field name="target">new</field> - </record> - -</odoo> -- GitLab