[ADD] document_url: A module that allows to put URLs as attached documents.

This commit is contained in:
Pedro M. Baeza 2014-09-10 17:54:42 +02:00
parent 388fc96c4b
commit 8cf1e5aa80
9 changed files with 359 additions and 0 deletions

22
document_url/__init__.py Normal file
View File

@ -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 <pedro.baeza@serviciosbaeza.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 model

View File

@ -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 <pedro.baeza@serviciosbaeza.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': '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,
}

View File

@ -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 <pedro.baeza@serviciosbaeza.com>\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 ""

62
document_url/i18n/es.po Normal file
View File

@ -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 <pedro.baeza@serviciosbaeza.com>\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"

View File

@ -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 <pedro.baeza@serviciosbaeza.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 document_url

View File

@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# 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 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' }

View File

@ -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,
},
});
});
});
}
}
});
};

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- vim:fdl=1:
-->
<templates id="template" xml:space="preserve">
<t t-name="AddUrlDocumentItem">
<li class="oe_sidebar_add_url"><span><b>Add URL...</b></span></li>
</t>
</templates>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model='ir.actions.act_window' id='action_ir_attachment_add_url'>
<field name='name'>Add URL</field>
<field name='res_model'>ir.attachment.add_url</field>
<field name='type'>ir.actions.act_window</field>
<field name='target'>new</field>
<field name='view_type'>form</field>
<field name='view_mode'>form</field>
</record>
<record model="ir.ui.view" id="view_ir_attachment_add_url_form">
<field name="name">ir.attachment.add_url.form</field>
<field name="model">ir.attachment.add_url</field>
<field name="arch" type="xml">
<form string="Add URL" version="7.0">
<group>
<field name="name"/>
<field name="url" widget="url"/>
</group>
<footer>
<button name="action_add_url" string="Add" class="oe_highlight" type="object" />
or
<button special="cancel" string="Cancel" class="oe_link" />
</footer>
</form>
</field>
</record>
</data>
</openerp>