Skip to content
Extraits de code Groupes Projets
Valider e0088817 rédigé par Benjamin's avatar Benjamin
Parcourir les fichiers

modification gestion connexion + adaptation changement API

parent ec242091
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -24,15 +24,13 @@ Il utilise l'API Alfresco développée spécifiquement pour le projet de la CG S
Usage
=====
Les données suivantes sont à renseigner dans le fichier de configuration d'Odoo :
Pour configurer ce module, les données suivantes sont à renseigner dans le menu **Configuration > Alfresco > CG Scop > Cofiguration connexion** :
* *alfresco_login* : login de connexion à l'API
* *alfresco_password* : password de connexion à l'API
Les données suivantes sont présentes dans la table **ir.config.parameter** :
* *alfresco_url* : url de l'API
* *alfresco_ssl* : **True** si on active la vérification SSL, **False** sinon (False par défaut)
* *active* : si il s'agit de la connexion active
Credits
......
......@@ -12,11 +12,12 @@
'cgscop_partner'
],
"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/ir_config_parameter.xml",
"datas/cron_init_alfresco.xml",
],
'qweb': [
......
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="alfresco_url" model="ir.config_parameter">
<field name="key">alfresco.url</field>
<field name="value">https://documents.scop.coop</field>
</record>
<record id="alfresco_ssl" model="ir.config_parameter">
<field name="key">alfresco.ssl</field>
<field name="value">False</field>
</record>
</odoo>
\ No newline at end of file
......@@ -2,5 +2,6 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import api_alfresco
from . import alfresco_connection
from . import alfresco_partner_files
from . import res_partner
# © 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
class CgscopAlfrescoConnection(models.Model):
_name = 'alfresco.connection'
_description = 'Infos FTP de connexion pour fichiers RIGA'
name = fields.Char(string='Nom')
login = fields.Char('Login')
password = fields.Char('Password')
url = fields.Char('URL')
ssl = fields.Boolean('Connexion SSL', default=False)
active = fields.Boolean('Actif', default=False)
def toogle_active_config(self):
""" Active la connexion sélectionnée et désactive
toutes les autres connexions
"""
for item in self.env['alfresco.connection'].search([]):
item.active = False
self.active = True
......@@ -27,12 +27,17 @@ class CgscopAlfresco(models.AbstractModel):
@return response au format JSON
"""
_logger.info("Calling %s" % url)
param = self.env['ir.config_parameter'].sudo()
alfresco_url = param.get_param('alfresco.url')
alfresco_ssl = True if param.get_param('alfresco.ssl') == 'True' else False
param = self.env['alfresco.connection'].sudo().search([
['active', '=', True]])
if not param:
raise exceptions.Warning(
"La connexion avec Alfresco n'est pas configurée !")
return False
alfresco_url = param.url
alfresco_ssl = param.ssl
basicAuthCredentials = (
tools.config['alfresco_login'],
tools.config['alfresco_password'])
param.login,
param.password)
try:
if call_type == 'get':
response = requests.get(
......@@ -57,10 +62,12 @@ class CgscopAlfresco(models.AbstractModel):
err.__str__(),
)
response = False
if not response:
raise exceptions.Warning(
"Oops... il y a un problème de connexion avec l'espace documentaire")
elif response.status_code not in [200, 201]:
# if not response:
# raise exceptions.Warning(
# "Oops... il y a un problème de connexion avec l'espace documentaire")
# Gestion erreur API
print(response.text)
if response.status_code not in [200, 201]:
raise exceptions.Warning(
"L'appel url '%s' a échoué\n"
"- Code erreur : %d\n"
......@@ -68,6 +75,13 @@ class CgscopAlfresco(models.AbstractModel):
response.url,
response.status_code,
response.json().get('message')))
# Si dossier déjà créé
elif response.text.find("NUMADHERENT d") > 0:
beg = response.text.find("workspace://SpacesStore/")
nodeRef = response.text[beg:beg+60]
return {"nodeRef": nodeRef}
# return response.json().get('dossiersExistants')[0]
return response.json()
# Get Methods
......
......@@ -78,6 +78,8 @@ class AlfrescoPartner(models.Model):
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"]
......
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_alfresco_connection,access_alfresco_connection,model_alfresco_connection,cgscop_partner.group_cg_administrator,1,1,1,1
\ No newline at end of file
<?xml version="1.0"?>
<!-- Copyright 2019 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<record id="view_alfresco_connection_tree" model="ir.ui.view">
<field name="name">alfresco.connection.tree</field>
<field name="model">alfresco.connection</field>
<field name="arch" type="xml">
<tree string="Synchronisation Odoo">
<field name="name"/>
<field name="login"/>
<field name="url"/>
<field name="active"/>
</tree>
</field>
</record>
<record id="view_alfresco_connection_form" model="ir.ui.view">
<field name="name">alfresco.connection.form</field>
<field name="model">alfresco.connection</field>
<field name="arch" type="xml">
<form>
<header>
<button name="toogle_active_config" type="object" string="Activer" />
</header>
<sheet>
<group>
<group>
<field name="name" />
<field name="url"/>
<field name="ssl"/>
</group>
<group>
<field name="active" readonly="1" />
<field name="login"/>
<field name="password" password="True" />
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_view_alfresco_connection" model="ir.actions.act_window">
<field name="name">Configuration Connexion Alfresco</field>
<field name="res_model">alfresco.connection</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_cgscop_alfresco"
parent="base.menu_custom"
sequence="120"
name="Alfresco"/>
<menuitem id="menu_cgscop_alfresco_connection"
parent="menu_cgscop_alfresco"
action="action_view_alfresco_connection"
name="Cofiguration connexion"
sequence="90"/>
</data>
</odoo>
......@@ -21,12 +21,15 @@ class AddFileWizard(models.TransientModel):
# 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):
......
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