@@ -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">
|
||||
<!DOCTYPE html>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user