Skip to content
Extraits de code Groupes Projets
Valider c3286b6c rédigé par Rémi - Le Filament's avatar Rémi - Le Filament
Parcourir les fichiers

[DEL] remove dependency to Alfresco not used anymore

parent ef87e548
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -6,15 +6,11 @@ ...@@ -6,15 +6,11 @@
'version': '12.0.1.0.1', 'version': '12.0.1.0.1',
'license': "AGPL-3", 'license': "AGPL-3",
'depends': [ 'depends': [
'cmis',
'cmis_field',
'adefpat_project', 'adefpat_project',
'account', 'account',
'adefpat_alfresco_generation',
'web_domain_field', 'web_domain_field',
], ],
'data': [ 'data': [
# "security/ir.model.access.csv",
# datas # datas
'data/account_data.xml', 'data/account_data.xml',
'report/account_invoice_template.xml', 'report/account_invoice_template.xml',
......
...@@ -4,4 +4,3 @@ ...@@ -4,4 +4,3 @@
from . import account_invoice from . import account_invoice
from . import project from . import project
from . import product_template from . import product_template
from . import lefilament_alfresco
...@@ -6,13 +6,12 @@ import json ...@@ -6,13 +6,12 @@ import json
from odoo import api, models from odoo import api, models
from odoo import fields as odooFields from odoo import fields as odooFields
from odoo.addons.cmis_field import fields
from odoo.exceptions import UserError from odoo.exceptions import UserError
class AccountInvoice(models.Model): class AccountInvoice(models.Model):
_name = 'account.invoice' _name = 'account.invoice'
_inherit = ['account.invoice', 'lefilament.alfresco'] _inherit = 'account.invoice'
# ------------------------------------------------------ # ------------------------------------------------------
# Fields declaration # Fields declaration
...@@ -32,10 +31,6 @@ class AccountInvoice(models.Model): ...@@ -32,10 +31,6 @@ class AccountInvoice(models.Model):
string="Type de convention de financement", string="Type de convention de financement",
) )
alfresco_file = odooFields.Char("Facture liée") alfresco_file = odooFields.Char("Facture liée")
cmis_folder = fields.CmisFolder(
allow_create=True,
allow_delete=False,
)
task_ids = odooFields.One2many( task_ids = odooFields.One2many(
"project.task", "project.task",
"invoice_id", "invoice_id",
...@@ -121,89 +116,7 @@ class AccountInvoice(models.Model): ...@@ -121,89 +116,7 @@ class AccountInvoice(models.Model):
# ------------------------------------------------------ # ------------------------------------------------------
# Actions # Actions
# ------------------------------------------------------ # ------------------------------------------------------
@api.multi
def generate_alfresco_file(self):
"""
Ajoute un fichier sur la GED Alfresco
@return: fonction get_partner_files() de res.partner
"""
# Get proof folder nodeRef
backend = self.env['cmis.backend'].search([], limit=1)
# Si la facture a déjà été créée, ouvrir dans Alfresco
if self.alfresco_file:
prop = backend.get_cmis_repository().getFolder(
self.alfresco_file).getProperties()
url = backend.get_content_details_url_from_props(prop)
# Sinon, la créer, puis la stocker ainsi que les documents liées à la facture dans Alfresco
else:
project_folder = self.project_id.cmis_folder
self.cmis_folder = project_folder
if not project_folder:
raise UserError("Le dossier du projet n'est pas configuré")
# Get Mimetype
attachment = self.env.ref('account.account_invoices').retrieve_attachment(self)
if not attachment:
raise UserError("La facture n'a pas encore été générée. Imprimer la facture pour pouvoir la visualiser dans Alfresco")
content_type = attachment.mimetype
path_proj = backend.get_cmis_repository().getFolder(
project_folder).getPaths()
# Get template doc Facture
template_doc = self.env['adefpat.template.doc'].search([
('type_temp', '=', 'facture'),
('noderef_document', '=', False)])
# Get doc linked to Facture
template_doc_ids = self.env['adefpat.template.doc'].search([
('type_temp', '=', 'facture'),
('noderef_document', '!=', False)])
# Strore template in Alfresco
for template in template_doc_ids:
keys = self.fill_data()
self._publipostage_documents(template, keys, False)
path_n0 = path_proj + [template_doc.dossier.name]
path = '/'.join(path_n0)
cmis_obj = backend.get_folder_by_path(path)
file = cmis_obj.createDocument(
name=attachment.name,
properties={},
contentFile=base64.b64decode(attachment.datas),
contentType=content_type
)
file_id = file.getProperties().get('cmis:objectId')
self.alfresco_file = file.getObjectId()
prop = backend.get_cmis_repository().getFolder(
file_id).getProperties()
url = backend.get_content_details_url_from_props(prop)
return {
'type': 'ir.actions.act_url',
'url': url,
'target': 'new',
}
# ------------------------------------------------------ # ------------------------------------------------------
# Business methods # Business methods
# ------------------------------------------------------ # ------------------------------------------------------
def fill_data(self):
parser = [
('partner_id:name_benef', ['name']),
('partner_id:title_benef', [('title', ['name'])]),
('partner_id:zip_benef', ['zip']),
('partner_id:city_benef', ['city']),
('partner_id:street_benef', ['street']),
('project_id:cfd_name', [('user_id', ['name'])]),
('project_id:cfd_mobile', [('user_id', ['mobile'])]),
('project_id:project_name', ['name']),
'amount_total:montant',
'date_invoice:date',
]
keys = self.json_build(parser)[0]
return keys
# © 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, models
from odoo.exceptions import UserError
class LeFilamentAlfresco(models.AbstractModel):
""" Appelle l'API alfresco et implémente les fonctions suivantes :
"""
_inherit = 'lefilament.alfresco'
def publipostage_documents(self, url, path, template_doc, backend, keys=None, versionable=None):
if template_doc.type_temp == "facture":
template_name = "lettre_facture_" + self.partner_id.name + "_" + str(self.date_invoice) + ".docx"
# get NodeRef from folder linked
cmis_obj_nodeRef = backend.get_folder_by_path(path).getProperties()['alfcmis:nodeRef']
options = {
"destinationNodeRef": cmis_obj_nodeRef,
"versionable": versionable,
}
return self.alfresco_publipostage_documents(
url=url,
filename=template_name,
templateNodeRef=template_doc.noderef_document,
convertToPDF=False,
keys=keys,
options=options,
backend=backend)
else:
return super(LeFilamentAlfresco, self).publipostage_documents(url, path, template_doc, backend, keys, versionable)
...@@ -124,10 +124,6 @@ class ProjectTask(models.Model): ...@@ -124,10 +124,6 @@ class ProjectTask(models.Model):
payment_date_invoice = fields.Date("Date de paiement de la facture") payment_date_invoice = fields.Date("Date de paiement de la facture")
date_account = fields.Date("Date de la facture") date_account = fields.Date("Date de la facture")
# @api.multi
# def write(self, values):
# test = super(ProjectTask, self).write(values)
# return test
class AdefpatFinancement(models.Model): class AdefpatFinancement(models.Model):
_inherit = 'adefpat.project.financement' _inherit = 'adefpat.project.financement'
......
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
...@@ -7,11 +7,6 @@ ...@@ -7,11 +7,6 @@
<field name="model">account.invoice</field> <field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/> <field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<header position="inside">
<button string="Afficher dans Alfresco"
type="object" class="btn-secondary"
name="generate_alfresco_file"/>
</header>
<xpath expr="//field[@name='user_id']" position="after"> <xpath expr="//field[@name='user_id']" position="after">
<field name="project_id"/> <field name="project_id"/>
<field name="num_dossier"/> <field name="num_dossier"/>
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
</data>
</odoo>
\ 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