From 39574b1d41661dbd05b3b4fc63acfd3177fe7300 Mon Sep 17 00:00:00 2001 From: cpa-openerp Date: Fri, 15 Oct 2010 15:46:26 +0530 Subject: [PATCH 01/18] [IMP] Piratepad web addons. bzr revid: cpa@tinyerp.com-20101015101626-e23fxuyvzwsx9ao2 --- addons/piratepad/__init__.py | 2 ++ addons/piratepad/__openerp__.py | 8 +++++ addons/piratepad/controllers.py | 22 ++++++++++++++ addons/piratepad/editors.py | 54 +++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 addons/piratepad/__init__.py create mode 100644 addons/piratepad/__openerp__.py create mode 100644 addons/piratepad/controllers.py create mode 100644 addons/piratepad/editors.py diff --git a/addons/piratepad/__init__.py b/addons/piratepad/__init__.py new file mode 100644 index 00000000000..95542e91e3e --- /dev/null +++ b/addons/piratepad/__init__.py @@ -0,0 +1,2 @@ +import controllers +import editors diff --git a/addons/piratepad/__openerp__.py b/addons/piratepad/__openerp__.py new file mode 100644 index 00000000000..05e707b0581 --- /dev/null +++ b/addons/piratepad/__openerp__.py @@ -0,0 +1,8 @@ +{ + "name" : "Piratepad Controller methods", + "version" : "1.0", + "depends" : ["openerp"], + "author" : "Tiny", + "website": 'http://www.openerp.com/', + "active": True, +} diff --git a/addons/piratepad/controllers.py b/addons/piratepad/controllers.py new file mode 100644 index 00000000000..290cfc2953b --- /dev/null +++ b/addons/piratepad/controllers.py @@ -0,0 +1,22 @@ +from openobject.tools import expose +from openerp.controllers import form +from openerp.utils import rpc, common, TinyDict +import cherrypy + +class Form(form.Form): + _cp_path = "/piratepad/form" + + @expose('json', methods=('POST',)) + def save(self, **kwargs): + params, data = TinyDict.split(cherrypy.session['params']) + pad_name=kwargs.get('pad_name') + ctx = dict(rpc.session.context, + default_res_model=params.model, default_res_id=params.id, + active_id=False, active_ids=[]) + + pad_link = "http://piratepad.net/"+'-'.join(pad_name.split()) + attachment_id = rpc.RPCProxy('ir.attachment').create({ + 'name': pad_name, + 'url': pad_link, + }, ctx) + return {'id': attachment_id, 'name': pad_name, 'url': pad_link} \ No newline at end of file diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py new file mode 100644 index 00000000000..a70dc6aa429 --- /dev/null +++ b/addons/piratepad/editors.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- + +from openobject.widgets import JSLink +import openobject.templating + +class SidebarTemplateEditor(openobject.templating.TemplateEditor): + templates = ['/openerp/widgets/templates/sidebar.mako'] + SIDEBAR_START = u'
' + + def edit(self, template, template_text): + output = super(SidebarTemplateEditor, self).edit(template, template_text) + + insertion_point = output.index(self.SIDEBAR_START) + len(self.SIDEBAR_START) + return output[:insertion_point] + ''' + +
+ + + + + + +
+ + + ${_("Ok")} +
+
+ ''' + output[insertion_point:] From 44ca7b0225427978929b5a3963b4c9797a8aa571 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 13:59:30 +0200 Subject: [PATCH 02/18] [ADD] piratepad extension from web-piratepad branch * Removed modifications to openerp itself * Fixed code a bit to avoid breakages (due to e.g. openerp pad-specific modifications removed from the merge) bzr revid: xmo@openerp.com-20101020115930-cwzs2jlb2t2a2k7s --- addons/piratepad/controllers.py | 4 +-- addons/piratepad/editors.py | 53 ++++++++++++++++----------------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/addons/piratepad/controllers.py b/addons/piratepad/controllers.py index 290cfc2953b..f8a0982a372 100644 --- a/addons/piratepad/controllers.py +++ b/addons/piratepad/controllers.py @@ -13,10 +13,10 @@ class Form(form.Form): ctx = dict(rpc.session.context, default_res_model=params.model, default_res_id=params.id, active_id=False, active_ids=[]) - + pad_link = "http://piratepad.net/"+'-'.join(pad_name.split()) attachment_id = rpc.RPCProxy('ir.attachment').create({ 'name': pad_name, 'url': pad_link, }, ctx) - return {'id': attachment_id, 'name': pad_name, 'url': pad_link} \ No newline at end of file + return {'id': attachment_id, 'name': pad_name, 'url': pad_link} diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index a70dc6aa429..83b80a0dba9 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -5,38 +5,13 @@ import openobject.templating class SidebarTemplateEditor(openobject.templating.TemplateEditor): templates = ['/openerp/widgets/templates/sidebar.mako'] - SIDEBAR_START = u'
' + BINARY_ATTACHMENTS_FORM = u'
- jQuery(document).ready(function() { - - var padForm = jQuery('#pad-box').hide(); - - jQuery('#sidebar-attachments').append( - jQuery('',{ - 'href': '#', - 'id': 'add-pad', - 'class': 'button-a', - }).text('${_("Pad")}') - ); - jQuery('#sidebar_pad_ok').bind('click', function(){ - padForm.submit(); - }); - jQuery('#add-pad').click(function(e){ - padForm.show(); - e.preventDefault(); - }); - padForm.bind({ - submit: createAttachment - }); - }); - - @@ -51,4 +26,28 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor):
+ ''' + output[insertion_point:] From 54563933a265a7c70adce3996d0a31eb9c915203 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:09:17 +0200 Subject: [PATCH 03/18] [IMP] Use kwarg normally in piratepad.controllers.Form bzr revid: xmo@openerp.com-20101020120917-flvi1ez9p0272axm --- addons/piratepad/controllers.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/piratepad/controllers.py b/addons/piratepad/controllers.py index f8a0982a372..8bc55d88f19 100644 --- a/addons/piratepad/controllers.py +++ b/addons/piratepad/controllers.py @@ -1,15 +1,14 @@ from openobject.tools import expose from openerp.controllers import form -from openerp.utils import rpc, common, TinyDict +from openerp.utils import rpc, TinyDict import cherrypy class Form(form.Form): _cp_path = "/piratepad/form" @expose('json', methods=('POST',)) - def save(self, **kwargs): + def save(self, pad_name): params, data = TinyDict.split(cherrypy.session['params']) - pad_name=kwargs.get('pad_name') ctx = dict(rpc.session.context, default_res_model=params.model, default_res_id=params.id, active_id=False, active_ids=[]) From dd572f0c73b17248d9a526284e931f892264cb96 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:14:05 +0200 Subject: [PATCH 04/18] [IMP] Make piratepad controller not inherit from openerp.controllers.form.Form (there is no reason to), remove /form section of URL (no need for it), fix naming of class and method bzr revid: xmo@openerp.com-20101020121405-u5g3450aen0vaapr --- addons/piratepad/controllers.py | 14 ++++++++------ addons/piratepad/editors.py | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/addons/piratepad/controllers.py b/addons/piratepad/controllers.py index 8bc55d88f19..3b30257f9a1 100644 --- a/addons/piratepad/controllers.py +++ b/addons/piratepad/controllers.py @@ -1,13 +1,15 @@ -from openobject.tools import expose -from openerp.controllers import form -from openerp.utils import rpc, TinyDict import cherrypy -class Form(form.Form): - _cp_path = "/piratepad/form" +from openobject.tools import expose + +import openerp.controllers +from openerp.utils import rpc, TinyDict + +class Piratepad(openerp.controllers.SecuredController): + _cp_path = "/piratepad" @expose('json', methods=('POST',)) - def save(self, pad_name): + def link(self, pad_name): params, data = TinyDict.split(cherrypy.session['params']) ctx = dict(rpc.session.context, default_res_model=params.model, default_res_id=params.id, diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index 83b80a0dba9..d1ca9c22bc9 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -12,7 +12,7 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): insertion_point = output.index(self.BINARY_ATTACHMENTS_FORM) return output[:insertion_point] + ''' -
+ From a3e79c6d496902b4d41085d42e9d8d6b35ffb080 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:25:28 +0200 Subject: [PATCH 05/18] [IMP] extract creation of pad URL into separate methods for overriding/configuration in the future bzr revid: xmo@openerp.com-20101020122528-z194x6jz1zvg1lwc --- addons/piratepad/controllers.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/piratepad/controllers.py b/addons/piratepad/controllers.py index 3b30257f9a1..b0940f94369 100644 --- a/addons/piratepad/controllers.py +++ b/addons/piratepad/controllers.py @@ -5,9 +5,16 @@ from openobject.tools import expose import openerp.controllers from openerp.utils import rpc, TinyDict +PIRATEPAD_ROOT = "http://piratepad.net/" class Piratepad(openerp.controllers.SecuredController): _cp_path = "/piratepad" + def get_root(self): + return PIRATEPAD_ROOT + + def make_url(self, pad_name): + return self.get_root() + '-'.join(pad_name.split()) + @expose('json', methods=('POST',)) def link(self, pad_name): params, data = TinyDict.split(cherrypy.session['params']) @@ -15,7 +22,7 @@ class Piratepad(openerp.controllers.SecuredController): default_res_model=params.model, default_res_id=params.id, active_id=False, active_ids=[]) - pad_link = "http://piratepad.net/"+'-'.join(pad_name.split()) + pad_link = self.make_url(pad_name) attachment_id = rpc.RPCProxy('ir.attachment').create({ 'name': pad_name, 'url': pad_link, From 863a0c00c6fd00d06e8d62d35506d9faae42e8d8 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:41:33 +0200 Subject: [PATCH 06/18] [IMP] use templates manipulation to add the link to open the pad form, rather than using JS bzr revid: xmo@openerp.com-20101020124133-36olqe3hp1e1xp3t --- addons/piratepad/editors.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index d1ca9c22bc9..e224243b2a8 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -5,13 +5,27 @@ import openobject.templating class SidebarTemplateEditor(openobject.templating.TemplateEditor): templates = ['/openerp/widgets/templates/sidebar.mako'] + ADD_ATTACHMENT_BUTTON = u'id="add-attachment"' BINARY_ATTACHMENTS_FORM = u'${_("Pad")}\n' + \ + output[form_opener_insertion:] + return output + def edit(self, template, template_text): output = super(SidebarTemplateEditor, self).edit(template, template_text) - insertion_point = output.index(self.BINARY_ATTACHMENTS_FORM) - return output[:insertion_point] + ''' + output = self.insert_pad_link(output) + + form_insertion_point = output.index(self.BINARY_ATTACHMENTS_FORM) + return output[:form_insertion_point] + '''
@@ -28,16 +42,7 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): - ''' + output[insertion_point:] + ''' + output[form_insertion_point:] From 874c9fc845190b18ea0f48a6c34c26cb70d4e53c Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:41:53 +0200 Subject: [PATCH 07/18] [REM] unused import bzr revid: xmo@openerp.com-20101020124153-3kh6jy6023tcsdcm --- addons/piratepad/editors.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index e224243b2a8..c229a924da1 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- - -from openobject.widgets import JSLink import openobject.templating class SidebarTemplateEditor(openobject.templating.TemplateEditor): From 377af37434e6bcbe0c7a900064e630cee2dda731 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:44:50 +0200 Subject: [PATCH 08/18] [IMP] Style of JS inserted for handling of the pad-creation form: naming conventions, usage of event shortcuts bzr revid: xmo@openerp.com-20101020124450-ctvqik4ukqizwfsc --- addons/piratepad/editors.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index c229a924da1..39df35f5ecf 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -24,7 +24,7 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): form_insertion_point = output.index(self.BINARY_ATTACHMENTS_FORM) return output[:form_insertion_point] + ''' -
+
@@ -40,17 +40,16 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): ''' + output[form_insertion_point:] From 91fc2a2c3c004e8f10b36d0dafb255e260c45d12 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:47:32 +0200 Subject: [PATCH 09/18] [IMP] use button element in pad-creation form, avoids need for a bunch of JS to transform a link-click into a form submission Also remove a bunch of unneeded attributes on the pad-name input bzr revid: xmo@openerp.com-20101020124732-2dovbi82ht7hyiyi --- addons/piratepad/editors.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index 39df35f5ecf..dd3623f464c 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -29,11 +29,11 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor):
- + - ${_("Ok")} +
@@ -43,9 +43,6 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): var $padForm = jQuery('#pad-form') .hide() .submit(createAttachment); - jQuery('#sidebar_pad_ok').click(function(){ - $padForm.submit(); - }); jQuery('#add-pad').click(function(e){ $padForm.show(); e.preventDefault(); From fae0a9ccd4c10d38489403911598fe875b1e8b77 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 14:53:24 +0200 Subject: [PATCH 10/18] [FIX] position of the inserted pad-form-revealing button bzr revid: xmo@openerp.com-20101020125324-7bmz5an1jgvvuna6 --- addons/piratepad/editors.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index dd3623f464c..eb1e6ccdf77 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -13,7 +13,9 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): '\n', output.index(self.ADD_ATTACHMENT_BUTTON)) + 1 output = output[:form_opener_insertion] + \ - '
${_("Pad")}\n' + \ + '''${_("Pad")}\n''' + \ output[form_opener_insertion:] return output From d78dfbf38b3fba118d31a0354cad7b9b6599d2e0 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 15:54:11 +0200 Subject: [PATCH 12/18] [IMP] style buttons in sidebar headers to remove redundant styling from the various header buttons bzr revid: xmo@openerp.com-20101020135411-s3sqwn3acflmfhtn --- addons/piratepad/editors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index eb1e6ccdf77..39521d2640e 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -14,7 +14,7 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): output.index(self.ADD_ATTACHMENT_BUTTON)) + 1 output = output[:form_opener_insertion] + \ '''${_("Pad")}\n''' + \ output[form_opener_insertion:] return output From 13c8d859d3506703afe1751d8114f438637a8649 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 20 Oct 2010 16:08:51 +0200 Subject: [PATCH 13/18] [IMP] Fix & simplify (& remove) styles for sidebar content, simplifies the piratepad addon code as well bzr revid: xmo@openerp.com-20101020140851-p3k3oeqdvjhr9ot9 --- addons/piratepad/editors.py | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/addons/piratepad/editors.py b/addons/piratepad/editors.py index 39521d2640e..62ff426a623 100644 --- a/addons/piratepad/editors.py +++ b/addons/piratepad/editors.py @@ -28,17 +28,9 @@ class SidebarTemplateEditor(openobject.templating.TemplateEditor): return output[:form_insertion_point] + '''
- - - - - -
- - - -
+ +