Skip to content
Extraits de code Groupes Projets
Valider 7f22899e rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

Merge branch '12.0-alfodoo' into '12.0'

12.0 alfodoo

See merge request !1
parents 208b8b9d 503a9382
1 requête de fusion!112.0 alfodoo
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models
{
'name': "CG Scop - Alfodoo Partner",
'summary': "Connexion Alfodoo pour les Coopératives",
'author': "Le Filament",
'website': "https://www.le-filament.com",
'version': '12.0.1.0.1',
'license': "AGPL-3",
'depends': [
"cgscop_alfresco",
"cgscop_partner",
"cmis",
"contacts",
"cmis_alf",
"cmis_web",
"lefilament_alfodoo",
],
'data': [
'views/res_partner.xml',
],
}
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import res_partner
# Copyright 2019 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.addons.cmis_field import fields
ALFRESCO_TRACKED_FIELDS = ['name', 'id', 'siret', 'member_number', 'ur_id']
class AlfodooResPartner(models.Model):
_name = 'res.partner'
_inherit = ['res.partner', 'cgscop.alfresco']
partner_cmis_folder = fields.CmisFolder(
allow_create=True,
allow_delete=False,
create_parent_get='_get_parent_path',
create_properties_get='_get_folder_properties',
)
# ------------------------------------------------------
# Override Alfodoo
# ------------------------------------------------------
def _get_parent_path(self, records, backend):
"""
Défini le répertoire parent :
le répertoire configuré par défaut dans le backend
"""
path_parts = backend.initial_directory_write.split('/')
parent_cmis_object = backend.get_folder_by_path_parts(
path_parts, create_if_not_found=True)
path = dict.fromkeys(self.ids, parent_cmis_object)
return path
def _get_folder_properties(self, records, backend):
"""
Ajoute les propriétés au dossier lors de la création dans Alfresco
"""
return {
self.id: {
'cmis:secondaryObjectTypeIds': [
'P:crm:organisme', 'P:up:UploadFolder', 'P:cm:titled'
],
'up:allowedTypes': 'crm:document',
'crm:raisonSociale': self.name,
'crm:siret': self.siret if self.siret else '',
'crm:numAdherent': self.member_number if self.member_number else '',
'crm:id': str(self.id),
'crm:ur': str(self.ur_id.id),
}
}
# ------------------------------------------------------
# Override ORM
# ------------------------------------------------------
@api.multi
def write(self, vals):
""" Surcharge la fonction write() pour mettre à jour
la raison sociale, le nom, le siret, l'id Odoo ou le
num adhérent
"""
tracked_fields = self.fields_get(ALFRESCO_TRACKED_FIELDS)
# Dict des valeurs initiales des champs présents dans TRACKED_FIELDS
initial_values = dict(
(record.id, dict(
(key, getattr(record, key)) for key in tracked_fields)) for record in self.filtered('is_cooperative'))
# Ecriture des nouvelles valeurs
result = super(AlfodooResPartner, self).write(vals)
# Dict des nouvelles valeurs
new_values = dict(
(record.id, dict(
(key, getattr(record, key)) for key in tracked_fields)) for record in self.filtered('is_cooperative'))
# Check des modifications sur les coopératives présentes dans RIGA
for record in self:
if record.is_cooperative and record.partner_cmis_folder:
if new_values[record.id] != initial_values[record.id]:
self.alfresco_update_organism(record)
return result
@api.multi
def unlink(self):
for partner in self:
if partner.partner_cmis_folder:
partner.alfresco_remove(partner.partner_cmis_folder)
return super(AlfodooResPartner, self).unlink()
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
static/description/icon.png

8,95 ko

<?xml version="1.0"?>
<!-- Copyright 2019 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<!-- FORM -->
<record id="res_partner_alfresco_view_form_inherit" model="ir.ui.view">
<field name="name">res.partner.alfresco.view.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<!-- Ajoute l'onglet Documents dans la vue coopérative -->
<xpath expr="//div[@name='cooperative']/notebook" position="inside">
<page string="Documents" groups="base.group_user">
<field name="partner_cmis_folder"
canCreateFolder="0"
canImportNewVersion="0"
canUpdate="0"
canCopyCutPaste="0"
canRename="0"
metadata="[
{'name': 'crm:type', 'type': 'selection', 'label': 'Type', 'query': 'SELECT v1.classement:value1, v2.classement:value2 FROM classement:datalist4 as d JOIN classement:value1Aspect as v1 on d.cmis:objectId = v1.cmis:objectId JOIN classement:value2Aspect as v2 on d.cmis:objectId = v2.cmis:objectId JOIN classement:value3Aspect as v3 on d.cmis:objectId = v3.cmis:objectId WHERE v3.classement:value3 = \&quot;STD\&quot;', 'selectionValue': 'v2.classement:value2', 'selectionText': 'v1.classement:value1', 'required': '1'},
{'name': 'crm:annee', 'type': 'number', 'label': 'Année', 'required': '1', 'pattern': '[0-9]{4}'},
{'name': 'cmis:objectTypeId', 'value': 'D:crm:document', 'label': 'ObjectType'},
{'name': 'crm:contexte', 'value': 'STD', 'label': 'Contexte'}]"/>
</page>
</xpath>
</field>
</record>
</data>
</odoo>
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