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 Savoir-faire Linux' OpenERP is subscribed to branch lp:~savoirfairelinux-openerp/knowledge-addons/cmis.
=== 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 ([email protected]) +""", + '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:
-- Mailing list: https://launchpad.net/~savoirfairelinux-openerp Post to : [email protected] Unsubscribe : https://launchpad.net/~savoirfairelinux-openerp More help : https://help.launchpad.net/ListHelp

