diff --git a/.travis.yml b/.travis.yml index 83c4a04e..c58be69f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,8 @@ python: - "2.7" env: - - VERSION="7.0" + - VERSION="7.0" ODOO_REPO="odoo/odoo" + - VERSION="7.0" ODOO_REPO="OCA/OCB" virtualenv: system_site_packages: true @@ -12,12 +13,10 @@ virtualenv: install: - git clone https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - - travis_install_nightly ${VERSION} - - $HOME/maintainer-quality-tools/travis/travis_install_nightly ${VERSION} + - travis_install_nightly script: - - travis_run_flake8 - - travis_run_tests ${VERSION} + - travis_run_tests after_success: coveralls diff --git a/document_url/__init__.py b/document_url/__init__.py new file mode 100644 index 00000000..3db8503d --- /dev/null +++ b/document_url/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# +# 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 . +# +############################################################################## +from . import model diff --git a/document_url/__openerp__.py b/document_url/__openerp__.py new file mode 100644 index 00000000..dda23d22 --- /dev/null +++ b/document_url/__openerp__.py @@ -0,0 +1,45 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# +# 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 . +# +############################################################################## + +{ + 'name': 'URL attachment', + 'version': '1.0', + 'category': 'Tools', + 'description': """ +Module that allows to attach an URL as a document. + """, + 'author': 'Serv. Tecnolog. Avanzados - Pedro M. Baeza', + 'website': 'http://www.serviciosbaeza.com', + 'depends': [ + 'document', + ], + 'js': [ + 'static/src/js/url.js', + ], + 'qweb': [ + 'static/src/xml/url.xml', + ], + 'data': [ + 'view/document_url_view.xml', + ], + "installable": True, +} diff --git a/document_url/i18n/document_url.pot b/document_url/i18n/document_url.pot new file mode 100644 index 00000000..806ad4f2 --- /dev/null +++ b/document_url/i18n/document_url.pot @@ -0,0 +1,62 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * document_url +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-05 01:48+0000\n" +"PO-Revision-Date: 2014-04-05 03:49+0100\n" +"Last-Translator: Pedro Manuel Baeza \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" + +#. module: document_url +#: view:ir.attachment.add_url:0 +msgid "Add" +msgstr "" + +#. module: document_url +#: model:ir.actions.act_window,name:document_url.action_ir_attachment_add_url +#: view:ir.attachment.add_url:0 +msgid "Add URL" +msgstr "" + +#. module: document_url +#. openerp-web +#: code:addons/document_url/static/src/xml/url.xml:6 +#, python-format +msgid "Add URL..." +msgstr "" + +#. module: document_url +#: view:ir.attachment.add_url:0 +msgid "Cancel" +msgstr "" + +#. module: document_url +#: field:ir.attachment.add_url,name:0 +msgid "Name" +msgstr "" + +#. module: document_url +#: field:ir.attachment.add_url,url:0 +msgid "URL" +msgstr "" + +#. module: document_url +#: code:_description:0 +#: model:ir.model,name:document_url.model_ir_attachment_add_url +#, python-format +msgid "ir.attachment.add_url" +msgstr "" + +#. module: document_url +#: view:ir.attachment.add_url:0 +msgid "or" +msgstr "" + diff --git a/document_url/i18n/es.po b/document_url/i18n/es.po new file mode 100644 index 00000000..25ec9070 --- /dev/null +++ b/document_url/i18n/es.po @@ -0,0 +1,62 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * document_url +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-05 01:48+0000\n" +"PO-Revision-Date: 2014-04-05 03:50+0100\n" +"Last-Translator: Pedro Manuel Baeza \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" + +#. module: document_url +#: view:ir.attachment.add_url:0 +msgid "Add" +msgstr "Añadir" + +#. module: document_url +#: model:ir.actions.act_window,name:document_url.action_ir_attachment_add_url +#: view:ir.attachment.add_url:0 +msgid "Add URL" +msgstr "Añadir URL" + +#. module: document_url +#. openerp-web +#: code:addons/document_url/static/src/xml/url.xml:6 +#, python-format +msgid "Add URL..." +msgstr "Añadir URL..." + +#. module: document_url +#: view:ir.attachment.add_url:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: document_url +#: field:ir.attachment.add_url,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: document_url +#: field:ir.attachment.add_url,url:0 +msgid "URL" +msgstr "URL" + +#. module: document_url +#: code:_description:0 +#: model:ir.model,name:document_url.model_ir_attachment_add_url +#, python-format +msgid "ir.attachment.add_url" +msgstr "ir.attachment.add_url" + +#. module: document_url +#: view:ir.attachment.add_url:0 +msgid "or" +msgstr "o" + diff --git a/document_url/model/__init__.py b/document_url/model/__init__.py new file mode 100644 index 00000000..8853063f --- /dev/null +++ b/document_url/model/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# +# 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 . +# +############################################################################## +from . import document_url diff --git a/document_url/model/document_url.py b/document_url/model/document_url.py new file mode 100644 index 00000000..c33cc21e --- /dev/null +++ b/document_url/model/document_url.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# +# 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 . +# +############################################################################## +from openerp.osv import fields, orm +try: + # Python 3 + from urllib import parse as urlparse +except: + from urlparse import urlparse + + +class AddUrlWizard(orm.TransientModel): + _name = 'ir.attachment.add_url' + + _columns = { + 'name': fields.char('Name', required=True), + 'url': fields.char('URL', required=True), + } + + def action_add_url(self, cr, uid, ids, context=None): + """Adds the URL with the given name as an ir.attachment record.""" + if context is None: + context = {} + if not context.get('active_model'): + return + attachment_obj = self.pool['ir.attachment'] + for form in self.browse(cr, uid, ids, context=context): + url = urlparse(form.url) + if not url.scheme: + url = urlparse('%s%s' % ('http://', form.url)) + for active_id in context.get('active_ids', []): + attachment = { + 'name': form.name, + 'type': 'url', + 'url': url.geturl(), + 'user_id': uid, + 'res_id': active_id, + 'res_model': context['active_model'], + } + attachment_obj.create(cr, uid, attachment, context=context) + return {'type': 'ir.actions.act_close_wizard_and_reload_view'} diff --git a/document_url/static/src/js/url.js b/document_url/static/src/js/url.js new file mode 100644 index 00000000..1b22b42c --- /dev/null +++ b/document_url/static/src/js/url.js @@ -0,0 +1,46 @@ +openerp.document_url = function(instance, m) { + + instance.web.ActionManager = instance.web.ActionManager.extend({ + + ir_actions_act_close_wizard_and_reload_view: function (action, options) { + if (!this.dialog) { + options.on_close(); + } + this.dialog_stop(); + this.inner_widget.views[this.inner_widget.active_view].controller.reload(); + return $.when(); + }, + }); + + var _t = instance.web._t, + QWeb = instance.web.qweb; + instance.web.Sidebar.include({ + redraw: function() { + var self = this; + this._super.apply(this, arguments); + self.$el.find('.oe_sidebar_add_attachment').after(QWeb.render('AddUrlDocumentItem', {widget: self})) + self.$el.find('.oe_sidebar_add_url').on('click', function (e) { + self.on_url_doc(); + }); + }, + on_url_doc: function() { + var self = this; + var view = self.getParent(); + var ids = ( view.fields_view.type != "form" )? view.groups.get_selection().ids : [ view.datarecord.id ]; + if( !_.isEmpty(ids) ){ + view.sidebar_eval_context().done(function (context) { + self.rpc("/web/action/load", { action_id: "document_url.action_ir_attachment_add_url" }).done(function(result) { + self.getParent().do_action(result, { + additional_context: { + 'active_ids': ids, + 'active_id': [ids[0]], + 'active_model': view.dataset.model, + }, + }); + }); + }); + } + + } + }); +}; diff --git a/document_url/static/src/xml/url.xml b/document_url/static/src/xml/url.xml new file mode 100644 index 00000000..de8fc9cd --- /dev/null +++ b/document_url/static/src/xml/url.xml @@ -0,0 +1,8 @@ + + + + +
  • Add URL...
  • +
    +
    diff --git a/document_url/view/document_url_view.xml b/document_url/view/document_url_view.xml new file mode 100644 index 00000000..2bc75818 --- /dev/null +++ b/document_url/view/document_url_view.xml @@ -0,0 +1,33 @@ + + + + + + Add URL + ir.attachment.add_url + ir.actions.act_window + new + form + form + + + + ir.attachment.add_url.form + ir.attachment.add_url + +
    + + + + + +
    +
    +
    + +
    +