openerp-community-reviewer team mailing list archive
-
openerp-community-reviewer team
-
Mailing list archive
-
Message #05264
[Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
El Hadji Dem (http://www.savoirfairelinux.com) has proposed merging lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0.
Requested reviews:
OpenERP Community Reviewer/Maintainer (openerp-community-reviewer)
For more details, see:
https://code.launchpad.net/~savoirfairelinux-openerp/knowledge-addons/cmis/+merge/212258
This module allows to configure a CMIS backend in OpenERP.
--
https://code.launchpad.net/~savoirfairelinux-openerp/knowledge-addons/cmis/+merge/212258
Your team OpenERP Community Reviewer/Maintainer is requested to review the proposed merge of lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0.
=== added directory 'cmis'
=== added file 'cmis/__init__.py'
--- cmis/__init__.py 1970-01-01 00:00:00 +0000
+++ cmis/__init__.py 2014-03-21 22:38:36 +0000
@@ -0,0 +1,26 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Savoir-faire Linux
+# (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from . import cmis_model
+from . import backend
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'cmis/__openerp__.py'
--- cmis/__openerp__.py 1970-01-01 00:00:00 +0000
+++ cmis/__openerp__.py 2014-03-21 22:38:36 +0000
@@ -0,0 +1,62 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Savoir-faire Linux
+# (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+{
+ 'name': 'CMIS',
+ 'version': '0.1',
+ 'category': 'Connector',
+ 'summary': 'Cmis Connector',
+ 'description': """
+Cmis Connector
+==============
+
+This module is the base for OpenERP modules implementing different integration scenario with a CMIS server.
+It allows you to configure a CMIS backend in OpenERP.
+
+Configuration
+=============
+
+Create a new CMIS backend with the host, login and password.
+
+Contributors
+------------
+* El Hadji Dem (elhadji.dem@xxxxxxxxxxxxxxxxxxxx)
+""",
+ 'author': 'Savoir-faire Linux',
+ 'website': 'www.savoirfairelinux.com',
+ 'license': 'AGPL-3',
+ 'depends': [
+ 'connector',
+ ],
+ 'data': [
+ 'cmis_model_view.xml',
+ 'cmis_menu.xml',
+ ],
+ 'js': [],
+ 'qweb': [],
+ 'test': [],
+ 'demo': [],
+ 'installable': True,
+ 'auto_install': False,
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'cmis/backend.py'
--- cmis/backend.py 1970-01-01 00:00:00 +0000
+++ cmis/backend.py 2014-03-21 22:38:36 +0000
@@ -0,0 +1,32 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Savoir-faire Linux
+# (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import openerp.addons.connector.backend as backend
+
+
+cmis = backend.Backend('cmis')
+""" Generic CMIS Backend """
+
+cmis1700 = backend.Backend(parent=cmis, version='1.7')
+""" CMIS Backend for version 1.7 """
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'cmis/cmis_menu.xml'
--- cmis/cmis_menu.xml 1970-01-01 00:00:00 +0000
+++ cmis/cmis_menu.xml 2014-03-21 22:38:36 +0000
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <menuitem id="menu_cmis_root"
+ parent="connector.menu_connector_root"
+ name="Cmis"
+ sequence="10"
+ groups="connector.group_connector_manager"/>
+
+ <menuitem id="menu_cmis_backend"
+ name="Backends"
+ parent="menu_cmis_root"
+ action="action_cmis_backend"/>
+
+ </data>
+</openerp>
=== added file 'cmis/cmis_model.py'
--- cmis/cmis_model.py 1970-01-01 00:00:00 +0000
+++ cmis/cmis_model.py 2014-03-21 22:38:36 +0000
@@ -0,0 +1,121 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Savoir-faire Linux
+# (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import orm, fields, osv
+from openerp.tools.translate import _
+from openerp.addons.connector.queue.job import job
+from cmislib.model import CmisClient
+import openerp.addons.connector as connector
+from openerp.addons.connector.session import ConnectorSession
+
+
+class cmis_backend(orm.Model):
+ _name = 'cmis.backend'
+ _description = 'CMIS Backend'
+ _inherit = 'connector.backend'
+
+ _backend_type = 'cmis'
+
+ def _select_versions(self, cr, uid, context=None):
+ return [('1.7', '1.7')]
+
+ # Test connection with GED
+ def _auth(self, cr, uid, context=None):
+ if context is None:
+ context = {}
+ # Get the url, user and password for GED
+ ids = self.search(cr, uid, [])
+ res = self.read(cr, uid, ids,
+ ['location',
+ 'username',
+ 'password'], context=context)[0]
+ url = res['location']
+ user_name = res['username']
+ user_password = res['password']
+ client = CmisClient(url, user_name, user_password)
+ if not client:
+ raise osv.except_osv(_('Cmis connection Error!'),
+ _("Check your cmis account configuration."))
+ return client
+
+ def test_directory_of_write(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ cmis_backend_obj = self.pool.get('cmis.backend')
+ #login with the cmis account
+ client = cmis_backend_obj._auth(cr, uid, context=context)
+ repo = client.defaultRepository
+ folder_path_write = cmis_backend_obj.read(cr, uid, ids, ['initial_directory_write'],
+ context=context)[0]['initial_directory_write']
+ # Testing the path
+ rs = repo.query("SELECT cmis:path FROM cmis:folder ")
+ bool_path_write = self.test_existing_path(rs, folder_path_write)
+ self.get_error_for_path(bool_path_write, folder_path_write)
+
+ def test_directory_of_read(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ cmis_backend_obj = self.pool.get('cmis.backend')
+ #login with the cmis account
+ client = cmis_backend_obj._auth(cr, uid, context=context)
+ repo = client.defaultRepository
+ folder_path_read = cmis_backend_obj.read(cr, uid, ids, ['initial_directory_read'],
+ context=context)[0]['initial_directory_read']
+ # Testing the path
+ rs = repo.query("SELECT cmis:path FROM cmis:folder ")
+ bool_path_read = self.test_existing_path(rs, folder_path_read)
+ self.get_error_for_path(bool_path_read, folder_path_read)
+
+ def test_existing_path(self, rs, folder_path):
+ for one_rs in rs:
+ # Print name of files
+ props = one_rs.getProperties()
+ if props['cmis:path'] != folder_path:
+ bool = False
+ else:
+ bool = True
+ break
+ return bool
+
+ def get_error_for_path(self, bool, path):
+ if bool:
+ raise osv.except_osv(_('Cmis Message'),
+ _("Path is correct for : " + path))
+ else:
+ raise osv.except_osv(_('Cmis Error!'),
+ _("Error path for : " + path))
+
+ _columns = {
+ 'version': fields.selection(
+ _select_versions,
+ string='Version',
+ required=True),
+ 'location': fields.char('Location', size=128, help="Location."),
+ 'username': fields.char('Username', size=64, help="Username."),
+ 'password': fields.char('Password', size=64, help="Password."),
+ 'initial_directory_read': fields.char('Initial directory of read',
+ size=128, help="Initial directory of read."),
+ 'initial_directory_write': fields.char('Initial directory of write',
+ size=128, help="Initial directory of write."),
+ }
+
+# vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'cmis/cmis_model_view.xml'
--- cmis/cmis_model_view.xml 1970-01-01 00:00:00 +0000
+++ cmis/cmis_model_view.xml 2014-03-21 22:38:36 +0000
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="view_cmis_backend_form" model="ir.ui.view">
+ <field name="name">cmis.backend.form</field>
+ <field name="model">cmis.backend</field>
+ <field name="arch" type="xml">
+ <form string="CMIS Backend" version="7.0">
+ <sheet>
+ <label for="name" class="oe_edit_only"/>
+ <h1>
+ <field name="name" class="oe_inline" />
+ </h1>
+ <group name="cmis" string="Cmis Configuration">
+ <group colspan="4" col="4">
+ <field name="version" colspan="4"/>
+ <field name="location" placeholder="e.g. http://localhost:8081/alfresco/s/cmis"
+ colspan="4"/>
+ <field name="username" colspan="2"/>
+ <field name="password" colspan="2" password="True"/>
+ </group>
+ </group>
+ <group name="directory_conf" string="Directory Configuration">
+ <group colspan="4" col="4">
+ <field name="initial_directory_read" colspan="2"/>
+ <field name="initial_directory_write" colspan="2"/>
+ </group>
+ </group>
+ <group colspan="4" col="4">
+ <div>
+ <button name="test_directory_of_read"
+ type="object"
+ class="oe_highlight"
+ string="Test Directory of read"/>
+ <button name="test_directory_of_write"
+ type="object"
+ class="oe_highlight"
+ string="Test Directory of write"/>
+ </div>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+
+ <record id="view_cmis_backend_tree" model="ir.ui.view">
+ <field name="name">cmis.backend.tree</field>
+ <field name="model">cmis.backend</field>
+ <field name="arch" type="xml">
+ <tree string="CMIS Backend" version="7.0">
+ <field name="name"/>
+ <field name="username"/>
+ <field name="location"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="action_cmis_backend" model="ir.actions.act_window">
+ <field name="name">CMIS Backends</field>
+ <field name="res_model">cmis.backend</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="view_id" ref="view_cmis_backend_tree"/>
+ </record>
+ </data>
+</openerp>
=== added file 'cmis/connector.py'
--- cmis/connector.py 1970-01-01 00:00:00 +0000
+++ cmis/connector.py 2014-03-21 22:38:36 +0000
@@ -0,0 +1,39 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Savoir-faire Linux
+# (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import orm, fields
+from openerp.addons.connector.connector import (Environment,
+ install_in_connector)
+
+install_in_connector()
+
+
+def get_environment(session, model_name, backend_id):
+ """ Create an environment to work with. """
+ backend_record = session.browse('cmis.backend', backend_id)
+ env = Environment(backend_record, session, model_name)
+ lang = backend_record.default_lang_id
+ lang_code = lang.code if lang else 'en_US'
+ env.set_lang(code=lang_code)
+ return env
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
Follow ups
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Sandy Carter (http://www.savoirfairelinux.com), 2014-07-18
-
[Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Sandy Carter (http://www.savoirfairelinux.com), 2014-07-18
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Sandy Carter (http://www.savoirfairelinux.com), 2014-06-19
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Sandy Carter (http://www.savoirfairelinux.com), 2014-05-14
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Sandy Carter (http://www.savoirfairelinux.com), 2014-05-07
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Sandy Carter (http://www.savoirfairelinux.com), 2014-05-05
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Sandy Carter (http://www.savoirfairelinux.com), 2014-05-05
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: El Hadji Dem (http://www.savoirfairelinux.com), 2014-04-28
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Maxime Chambreuil (http://www.savoirfairelinux.com), 2014-04-24
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Maxime Chambreuil (http://www.savoirfairelinux.com), 2014-04-24
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Maxime Chambreuil (http://www.savoirfairelinux.com), 2014-04-24
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Maxime Chambreuil (http://www.savoirfairelinux.com), 2014-04-19
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Holger Brunn (Therp), 2014-04-07
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Holger Brunn (Therp), 2014-04-01
-
Re: [Merge] lp:~savoirfairelinux-openerp/knowledge-addons/cmis into lp:knowledge-addons/7.0
From: Holger Brunn (Therp), 2014-03-24