From 2a34e6a7852ca479b25a6fcde032c599505053ae Mon Sep 17 00:00:00 2001 From: Benjamin <35699580+benj-filament@users.noreply.github.com> Date: Wed, 13 Nov 2019 20:43:18 +0100 Subject: [PATCH] Migration conf connexion dans une table --- README.rst | 15 ++++----- __manifest__.py | 1 + models/__init__.py | 1 + models/riga_ftp_channel.py | 17 ++++++++++ models/riga_odoo_import.py | 16 +++++---- security/ir.model.access.csv | 3 +- views/riga_ftp_channel.xml | 63 ++++++++++++++++++++++++++++++++++++ 7 files changed, 100 insertions(+), 16 deletions(-) create mode 100644 models/riga_ftp_channel.py create mode 100644 views/riga_ftp_channel.xml diff --git a/README.rst b/README.rst index 25db3dc..8038ed8 100644 --- a/README.rst +++ b/README.rst @@ -25,17 +25,16 @@ Usage Pour configurer ce module, les données suivantes sont à renseigner -1. dans le **fichier de configuration d'Odoo** : +1. dans le menu **Configuration > Technique > CG Scop > FTP Imports RIGA** : -* *riga_ftp_login* : login de connexion à l'API -* *riga_ftp_password* : password de connexion à l'API +* *nom* : nom de la connexion +* *login* : login de connexion au FTP +* *password* : password de connexion au FTP +* *active* : si il s'agit de la connexion active -2. dans la table **ir.config.parameter** : +Attention, il faut qu'il n'existe qu'une seule connexion active. -* *riga_ftp.url* : url du FTP Eudonet -* *riga_ftp.path* : path des fichiers - -3. dans le menu **Contacts > Configuration > Impot RIGA** +2. dans le menu **Contacts > Configuration > Impot RIGA** * le menu *Configuration imports RIGA* permet de renseigner les différentes tables à mettre à jour avec : le nom de la table, le nom du fichier, la clé primaire, la clé étrangère (parent) et la table de correspondance * le menu *RIGA vers Odoo* permet de visualiser les détails des imports de chaque fichier diff --git a/__manifest__.py b/__manifest__.py index 5d6f9b9..a58422d 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -13,6 +13,7 @@ ], "data": [ "security/ir.model.access.csv", + "views/riga_ftp_channel.xml", "views/riga_files_matching.xml", "views/riga_lookup_table.xml", "views/riga_odoo_import.xml", diff --git a/models/__init__.py b/models/__init__.py index c65b9e8..04b42ad 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -2,6 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import riga_files_matching +from . import riga_ftp_channel from . import riga_lookup_table from . import riga_odoo_import from . import scop_liasse_fiscale diff --git a/models/riga_ftp_channel.py b/models/riga_ftp_channel.py new file mode 100644 index 0000000..a264ce4 --- /dev/null +++ b/models/riga_ftp_channel.py @@ -0,0 +1,17 @@ +# © 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 CgscopRigaFtpChannel(models.Model): + _name = 'riga.ftp.channel' + _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') + path = fields.Char('Path') + active = fields.Boolean('Actif', default=False) + diff --git a/models/riga_odoo_import.py b/models/riga_odoo_import.py index 3d8197a..2ab6d92 100644 --- a/models/riga_odoo_import.py +++ b/models/riga_odoo_import.py @@ -44,15 +44,17 @@ class CgscopRigaOdooImport(models.Model): @return csv_file: (binary) fichier binaire à traiter """ - param = self.env['ir.config_parameter'].sudo() - ftp_login = tools.config['riga_ftp_login'] - ftp_pass = tools.config['riga_ftp_password'] + param = self.env['riga.ftp.channel'].sudo().search([ + ['active', '=', True]]) + param.ensure_one() + ftp_login = param.login + ftp_pass = param.password # Connexion FTP try: # Connexion ftp - ftp = FTP(param.get_param('riga_ftp.url'), ftp_login, ftp_pass) + ftp = FTP(param.url, ftp_login, ftp_pass) # Changement de path - ftp.cwd(param.get_param('riga_ftp.path')) + ftp.cwd(param.path) # Lecture du fichier csv_file = io.BytesIO() ftp.retrbinary( @@ -60,8 +62,8 @@ class CgscopRigaOdooImport(models.Model): csv_file.write) _logger.info( "Connecté à l'URL : %s - Path : %s", - param.get_param('riga_ftp.url'), - param.get_param('riga_ftp.path') + param.url, + param.path ) return csv_file except Exception as e: diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 0d5b2c3..a1daf5f 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -2,4 +2,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_riga_odoo_import,access_riga_odoo_import,model_riga_odoo_import,cgscop_partner.group_cg_administrator,1,1,1,1 access_riga_files_matching,access_riga_files_matching,model_riga_files_matching,cgscop_partner.group_cg_administrator,1,1,1,1 access_riga_files_matching_header,access_riga_files_matching_header,model_riga_files_matching_header,cgscop_partner.group_cg_administrator,1,1,1,1 -access_riga_lookup_table,access_riga_lookup_table,model_riga_lookup_table,cgscop_partner.group_cg_administrator,1,1,1,1 \ No newline at end of file +access_riga_lookup_table,access_riga_lookup_table,model_riga_lookup_table,cgscop_partner.group_cg_administrator,1,1,1,1 +access_riga_ftp_channel,access_riga_ftp_channel,model_riga_ftp_channel,cgscop_partner.group_cg_administrator,1,1,1,1 \ No newline at end of file diff --git a/views/riga_ftp_channel.xml b/views/riga_ftp_channel.xml new file mode 100644 index 0000000..c3ba93d --- /dev/null +++ b/views/riga_ftp_channel.xml @@ -0,0 +1,63 @@ +<?xml version="1.0"?> +<!-- Copyright 2019 Le Filament + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> + +<odoo> + <data> + + <!-- RIGA Job Queue --> + <record id="view_riga_ftp_channel_tree" model="ir.ui.view"> + <field name="name">riga.ftp.channel.tree</field> + <field name="model">riga.ftp.channel</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_riga_ftp_channel_form" model="ir.ui.view"> + <field name="name">riga.ftp.channel.form</field> + <field name="model">riga.ftp.channel</field> + <field name="arch" type="xml"> + <form> + <sheet> + <group> + <group> + <field name="name" /> + <field name="url"/> + <field name="path"/> + </group> + <group> + <field name="active"/> + <field name="login"/> + <field name="password" password="True" /> + </group> + </group> + </sheet> + </form> + </field> + </record> + + <record id="action_view_riga_ftp_channel" model="ir.actions.act_window"> + <field name="name">Configuration FTP RIGA</field> + <field name="res_model">riga.ftp.channel</field> + <field name="view_mode">tree,form</field> + </record> + + <menuitem id="menu_cgscop_tecnhical_config" + parent="base.menu_custom" + sequence="100" + name="CG Scop" + groups="base.group_no_one"/> + + <menuitem id="menu_riga_ftp_channel" + parent="menu_cgscop_tecnhical_config" + action="action_view_riga_ftp_channel" + name="FTP imports RIGA" + sequence="190"/> + </data> +</odoo> -- GitLab