[IMP] Share web addon.

bzr revid: vda@tinyerp.com-20101110071832-ftzgmrd3trsz0icr
This commit is contained in:
vda (Open ERP) 2010-11-10 12:48:32 +05:30
parent 94143c9715
commit 988ad9ccc9
4 changed files with 85 additions and 0 deletions

View File

@ -48,6 +48,8 @@
'wizard/share_wizard_view.xml'
],
'installable': True,
'active': False,
'web': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,2 @@
import controllers
import editors

View File

@ -0,0 +1,37 @@
import urlparse
import cherrypy
from openobject.tools import expose, ast
import openerp.controllers
from openerp.controllers import actions
from openerp.utils import rpc, TinyDict
class Piratepad(openerp.controllers.SecuredController):
_cp_path = "/share"
@expose()
def index(self, **kw):
domain = ast.literal_eval(kw['domain'])
search_domain = ast.literal_eval(kw['search_domain'])
filter_domain = ast.literal_eval(kw['filter_domain'])
context = ast.literal_eval(kw['context'])
view_name = context.get('_terp_view_name')
domain.extend(search_domain)
action_id = rpc.RPCProxy('ir.actions.actions').search([('name','=',view_name)], 0, 0, 0, context)
if action_id:
action_id = action_id[0]
model = 'share.wizard'
proxy = rpc.RPCProxy(model)
share_wiz_id = rpc.RPCProxy('ir.ui.menu').search([('name','=', 'Share Wizard')])
context.update({'active_ids': share_wiz_id, 'active_id': share_wiz_id[0], '_terp_view_name': 'Share Wizard'})
data = {'domain': str(domain), 'action_id':action_id}
id = proxy.create(data, context)
res = rpc.session.execute('object', 'execute', model, 'go_step_1', [id], context)
return actions.execute(res, ids=[id])

View File

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
import openobject.templating
class SidebarTemplateEditor(openobject.templating.TemplateEditor):
templates = ['/openerp/widgets/templates/sidebar.mako']
ADD_SHARE_BUTTON = u'id="sidebar"'
def insert_share_link(self, output):
# Insert the link on the line right after the link to open the
# attachment form
form_opener_insertion = output.index(
'\n',
output.index(self.ADD_SHARE_BUTTON)) + 1
output = output[:form_opener_insertion] + \
'''<div id="share-wizard" class="sideheader-a"><h2>${_("Share View")}</h2></div>
<ul class="clean-a">
<li>
<a id="share_view" href="javascript: void(0)"
style="right: 36px;"
>${_("Share")}</a>
</li>
</ul>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#share_view').click(function(){
var _view_type = jQuery('#_terp_view_type').val();
var _domain = jQuery('#_terp_domain').val();
var _search_domain = jQuery('#_terp_search_domain').val();
var _filter_domain = jQuery('#_terp_filter_domain').val();
var _context = jQuery('#_terp_context').val();
var url = openobject.http.getURL('/share', {view_type: _view_type, domain: _domain, search_domain: _search_domain, filter_domain : _filter_domain, context: _context});
window.open(url);
});
});
</script>
\n''' + \
output[form_opener_insertion:]
return output
def edit(self, template, template_text):
output = super(SidebarTemplateEditor, self).edit(template, template_text)
output = self.insert_share_link(output)
return output