[WIP] menus

bzr revid: fme@openerp.com-20131024141840-ihp2i6huzdlamf94
This commit is contained in:
Fabien Meghazi
2013-10-24 16:18:40 +02:00
parent c8dd901b04
commit a597cc59ef
2 changed files with 56 additions and 0 deletions
+33
View File
@@ -361,6 +361,39 @@ class website(osv.osv):
html += request.website.render(template, {'object_id': object_id})
return html
def get_menu_tree(self, cr, uid, ids, context=None):
return self.pool['website.menu'].get_tree(cr, uid, ids[0])
class website_menu(osv.osv):
_name = "website.menu"
_description = "Website Menu"
_columns = {
'name': fields.char('Menu', size=64, required=True, translate=True),
'url': fields.char('Url', required=True, translate=True),
'sequence': fields.integer('Sequence'),
# TODO: support multiwebsite once done for ir.ui.views
'website_id': fields.many2one('website', 'Website'),
'parent_id': fields.many2one('website.menu', 'Parent Menu', select=True, ondelete="restrict"),
'parent_left': fields.integer('Parent Left', select=True),
'parent_right': fields.integer('Parent Right', select=True),
}
def get_tree(self, cr, uid, website_id=False, context=None):
menu_root = {
'id': False,
'name': 'root',
'url': '',
'children': [],
'parent_id': 0,
}
domain = [('parent_id', '=', 0)] # ('website_id', '=', website_id)]
root = self.search(cr, uid, domain, context=context)
if root:
pass
#menu_ids = Menus.search([('id', 'child_of', root)], 0, False, False, context)
return menu_root
class ir_attachment(osv.osv):
_inherit = "ir.attachment"
def _website_url_get(self, cr, uid, ids, name, arg, context=None):
@@ -10,6 +10,25 @@
<link id="website_css" rel='stylesheet' href='/website/static/src/css/website.css' t-ignore="true"/>
</template>
<template id="website.submenu" name="Submenu">
<t t-set="children" t-value="submenu['children']"/>
<li t-if="not children">
<a t-att-href="url_for(submenu['url'])">
<t t-esc="submenu['name']"/>
</a>
</li>
<li t-if="children" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<t t-esc="submenu['name']"/> <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<t t-foreach="children" t-as="submenu">
<t t-call="website.submenu"/>
</t>
</ul>
</li>
</template>
<template id="layout" name="Main layout">
&lt;!DOCTYPE html&gt;
<html t-att-lang="lang.replace('_', '-')"
@@ -97,6 +116,10 @@
</div>
<div class="collapse navbar-collapse navbar-top-collapse">
<ul class="nav navbar-nav navbar-right" id="top_menu">
<t t-foreach="website.get_menu_tree()['children']" t-as="submenu">
<t t-call="website.submenu"/>
</t>
<li name="contactus"><a t-href="/page/website.contactus">Contact us</a></li>
<li t-if="user_id.id == website.public_user.id"><a href="/web">Sign in</a></li>
<li t-if="user_id.id != website.public_user.id"><a href="/web"><span t-field="user_id.name"/></a></li>