[MERGE] Merge parents

bzr revid: rim@openerp.com-20131118161312-cn4r4dhg0n109mvc
This commit is contained in:
Richard Mathot (OpenERP)
2013-11-18 17:13:12 +01:00
14 changed files with 146 additions and 164 deletions
+1 -1
View File
@@ -150,7 +150,7 @@ div.oe_menu_buttons {
ul.oe_menu_editor .icon-home {
display: none;
}
ul.oe_menu_editor > li:first-child .icon-home {
ul.oe_menu_editor > li:first-child > div > span > .icon-home {
display: block;
}
ul.oe_menu_editor .oe_menu_placeholder {
+1 -1
View File
@@ -132,7 +132,7 @@ div.oe_menu_buttons
ul.oe_menu_editor
.icon-home
display: none
> li:first-child .icon-home
> li:first-child > div > span > .icon-home
display: block
.oe_menu_placeholder
outline: 1px dashed #4183C4
@@ -416,7 +416,7 @@
menu.append('<li class="divider"></li>');
menu.append('<li><a data-action="ace" href="#">HTML Editor</a></li>');
menu.append('<li class="js_change_theme"><a href="/page/website.themes">Change Theme</a></li>');
menu.append('<li><a href="/web#action=website.action_module_website">Install Apps</a></li>');
menu.append('<li><a href="/web#return_label=Website&action=website.action_module_website">Install Apps</a></li>');
self.trigger('rte:customize_menu_ready');
}
);
+2 -2
View File
@@ -226,14 +226,14 @@
/* ----- PUBLISHING STUFF ---- */
$(document).on('click', '.js_publish_management .js_publish_btn', function () {
var $data = $(this).parent(".js_publish_management");
var self=this;
var self=this;
openerp.jsonRpc($data.data('controller') || '/website/publish', 'call', {'id': +$data.data('id'), 'object': $data.data('object')})
.then(function (result) {
$data.toggleClass("css_unpublished css_published");
$(self).toggleClass("btn-success btn-danger");
$data.parents("[data-publish]").attr("data-publish", +result ? 'on' : 'off');
}).fail(function (err, data) {
website.error(data, '/web#model='+$data.data('object')+'&id='+$data.data('id'));
website.error(data, '/web#return_label=Website&model='+$data.data('object')+'&id='+$data.data('id'));
});
});
+1 -1
View File
@@ -104,7 +104,7 @@
new_window: link[1],
});
var $menu = self.$('[data-menu-id="' + id + '"]');
$menu.find('> div > span').text(menu_obj.name);
$menu.find('.js_menu_label').first().text(menu_obj.name);
});
dialog.appendTo(document.body);
} else {
@@ -4,16 +4,14 @@
<div class="input-group">
<span class="input-group-addon icon-reorder"/>
<span class="form-control" style="padding-top: 0; padding-bottom: 0;">
<t t-esc="submenu.name"/>
<span class="js_menu_label">
<t t-esc="submenu.name"/>
</span>
<i class="pull-right icon-home" style="margin-top: 3px"/>
</span>
<span class="input-group-btn">
<button type="button" class="btn btn-primary js_edit_menu">
<i class="icon-edit"/>
</button>
<button type="button" class="btn btn-danger js_delete_menu">
<i class="icon-trash"/>
</button>
<button type="button" class="btn btn-primary js_edit_menu icon-edit"/>
<button type="button" class="btn btn-danger js_delete_menu icon-trash"/>
</span>
</div>
<t t-set="children" t-value="submenu.children"/>
+1 -1
View File
@@ -279,7 +279,7 @@
<ul class="dropdown-menu" role="menu" t-att-aria-labelledby="'dopprod-%s' % object.id">
<t t-raw="0"/>
<li t-if="publish_edit">
<a t-att-href="'/web#model=%s&amp;id=%s' % (object._name, object.id)"
<a t-att-href="'/web#return_label=Website&amp;model=%s&amp;id=%s' % (object._name, object.id)"
title='Edit in backend'>Edit</a>
</li>
</ul>
+72 -64
View File
@@ -23,28 +23,26 @@ from openerp.addons.web import http
from openerp.addons.web.http import request
from openerp.addons.website.models import website
from openerp.tools.translate import _
from openerp.tools.safe_eval import safe_eval
import simplejson
import werkzeug
MONTHS = [None, _('January'), _('February'), _('March'), _('April'),
_('May'), _('June'), _('July'), _('August'), _('September'),
_('October'), _('November'), _('December')]
class WebsiteBlog(http.Controller):
_category_post_per_page = 6
_post_comment_per_page = 6
def nav_list(self):
blog_post_obj = request.registry['blog.post']
nav = {}
for group in blog_post_obj.read_group(request.cr, request.uid, [], ['name', 'create_date'],
groupby="create_date", orderby="create_date asc", context=request.context):
# FIXME: vietnamese month names contain spaces. Set sail for fail.
year = group['create_date'].split(" ")[1]
if not year in nav:
nav[year] = {'name': year, 'create_date_count': 0, 'months': []}
nav[year]['create_date_count'] += group['create_date_count']
nav[year]['months'].append(group)
return nav
groups = blog_post_obj.read_group(request.cr, request.uid, [], ['name', 'create_date'],
groupby="create_date", orderby="create_date asc", context=request.context)
for group in groups:
group['date'] = "%s_%s" % (group['__domain'][0][2], group['__domain'][1][2])
return groups
@website.route([
'/blog',
@@ -63,7 +61,7 @@ class WebsiteBlog(http.Controller):
)
bids = blog_obj.search(cr, uid, [], offset=(page-1)*BYPAGE, limit=BYPAGE, context=context)
blogs = blog_obj.browse(cr, uid, bids, context=context)
return request.website.render("website_blog.blogs", {
return request.website.render("website_blog.latest_blogs", {
'blogs': blogs,
'pager': pager
})
@@ -71,16 +69,21 @@ class WebsiteBlog(http.Controller):
@website.route([
'/blog/cat/<model("blog.category"):category>/',
'/blog/cat/<model("blog.category"):category>/page/<int:page>/',
'/blog/tag/<model("blog.tag"):tag>/',
'/blog/tag/<model("blog.tag"):tag>/page/<int:page>/',
'/blog/cat/<model("blog.category"):category>/tag/<model("blog.tag"):tag>/',
'/blog/cat/<model("blog.category"):category>/tag/<model("blog.tag"):tag>/page/<int:page>/',
'/blog/cat/<model("blog.category"):category>/date/<string(length=21):date>/',
'/blog/cat/<model("blog.category"):category>/date/<string(length=21):date>/page/<int:page>/',
'/blog/cat/<model("blog.category"):category>/tag/<model("blog.tag"):tag>/date/<string(length=21):date>/',
'/blog/cat/<model("blog.category"):category>/tag/<model("blog.tag"):tag>/date/<string(length=21):date>/page/<int:page>/',
], type='http', auth="public", multilang=True)
def blog(self, category=None, tag=None, page=1):
def blog(self, category=None, tag=None, date=None, page=1):
""" Prepare all values to display the blog.
:param category: category currently browsed.
:param tag: tag that is currently used to filter blog posts
:param integer page: current page of the pager. Can be the category or
post pager.
:param date: date currently used to filter blog posts (dateBegin_dateEnd)
:return dict values: values for the templates, containing
@@ -92,6 +95,8 @@ class WebsiteBlog(http.Controller):
- 'tag': current tag, if tag_id
- 'nav_list': a dict [year][month] for archives navigation
"""
BYPAGE = 10
cr, uid, context = request.cr, request.uid, request.context
blog_post_obj = request.registry['blog.post']
@@ -101,58 +106,65 @@ class WebsiteBlog(http.Controller):
category_ids = category_obj.search(cr, uid, [], context=context)
categories = category_obj.browse(cr, uid, category_ids, context=context)
path_filter = ""
domain = []
if category:
pager_url = "/blog/cat/%s/" % category.id
blog_posts = category.blog_post_ids
elif tag:
pager_url = '/blog/tag/%s/' % tag.id
blog_posts = tag.blog_post_ids
else:
pager_url = '/blog/'
blog_post_ids = blog_post_obj.search(cr, uid, [], context=context)
blog_posts = blog_post_obj.browse(cr, uid, blog_post_ids, context=context)
path_filter += "cat/%s/" % category.id
domain += [("id", "in", [blog.id for blog in category.blog_post_ids])]
if tag:
path_filter += 'tag/%s/' % tag.id
domain += [("id", "in", [blog.id for blog in tag.blog_post_ids])]
if date:
path_filter += "date/%s/" % date
domain += [("create_date", ">=", date.split("_")[0]), ("create_date", "<=", date.split("_")[1])]
blog_post_ids = blog_post_obj.search(cr, uid, domain, context=context)
blog_posts = blog_post_obj.browse(cr, uid, blog_post_ids, context=context)
pager = request.website.pager(
url=pager_url,
url="/blog/%s" % path_filter,
total=len(blog_posts),
page=page,
step=self._category_post_per_page,
scope=7
scope=BYPAGE
)
pager_begin = (page - 1) * self._category_post_per_page
pager_end = page * self._category_post_per_page
blog_posts = blog_posts[pager_begin:pager_end]
tag_obj = request.registry['blog.tag']
tag_ids = tag_obj.search(cr, uid, [], context=context)
tags = tag_obj.browse(cr, uid, tag_ids, context=context)
values = {
'category': category,
'categories': categories,
'tags': tags,
'tag': tag,
'blog_posts': blog_posts,
'pager': pager,
'nav_list': self.nav_list(),
'path_filter': path_filter,
'date': date,
}
if tag:
values['main_object'] = tag
elif category:
values['main_object'] = category
return request.website.render("website_blog.blog_post_short", values)
@website.route([
'/blog/<model("blog.post"):blog_post>/',
'/blog/<model("blog.post"):blog_post>/page/<int:page>/'
], type='http', auth="public", multilang=True)
def blog_post(self, blog_post=None, page=1, enable_editor=None):
def blog_post(self, blog_post=None, tag=None, date=None, page=1, enable_editor=None):
""" Prepare all values to display the blog.
:param blog_post: blog post currently browsed. If not set, the user is
browsing the category and a post pager is calculated.
If set the user is reading the blog post and a
comments pager is calculated.
:param category: category currently browsed.
:param tag: tag that is currently used to filter blog posts
:param integer page: current page of the pager. Can be the category or
post pager.
:param dict post: kwargs, may contain
:param date: date currently used to filter blog posts (dateBegin_dateEnd)
- 'enable_editor': editor control
@@ -160,11 +172,16 @@ class WebsiteBlog(http.Controller):
- 'blog_post': browse of the current post, if blog_post_id
- 'category': browse of the current category, if category_id
- 'categories': list of browse records of categories
- 'pager': the pager to display comments pager in a blog post
- 'tag': current tag, if tag_id
- 'nav_list': a dict [year][month] for archives navigation
"""
pager_url = "/blog/%s" % blog_post.id
pager = request.website.pager(
url="/blog/%s/" % blog_post.id,
url=pager_url,
total=len(blog_post.website_message_ids),
page=page,
step=self._post_comment_per_page,
@@ -179,39 +196,24 @@ class WebsiteBlog(http.Controller):
category_ids = category_obj.search(cr, uid, [], context=context)
categories = category_obj.browse(cr, uid, category_ids, context=context)
tag_obj = request.registry['blog.tag']
tag_ids = tag_obj.search(cr, uid, [], context=context)
tags = tag_obj.browse(cr, uid, tag_ids, context=context)
values = {
'category': blog_post.category_id,
'categories': categories,
'tags': tags,
'tag': tag and request.registry['blog.tag'].browse(cr, uid, int(tag), context=context) or None,
'blog_post': blog_post,
'pager': pager,
'nav_list': self.nav_list(),
'enable_editor': enable_editor,
'date': date,
'date_name': date and "%s %s" % (MONTHS[int(date.split("-")[1])], date.split("-")[0]) or None
}
return request.website.render("website_blog.blog_post_complete", values)
# TODO: Refactor (used in website_blog.js for archive links)
# => the archive links should be generated server side
@website.route(['/blog/nav'], type='http', auth="public", multilang=True)
def nav(self, **post):
cr, uid, context = request.cr, request.uid, request.context
blog_post_ids = request.registry['blog.post'].search(
cr, uid, safe_eval(post.get('domain')),
order="create_date asc",
limit=None,
context=context
)
blog_post_data = [
{
'id': blog_post.id,
'website_published': blog_post.website_published,
'fragment': request.website.render("website_blog.blog_archive_link", {
'blog_post': blog_post
}),
}
for blog_post in request.registry['blog.post'].browse(cr, uid, blog_post_ids, context=context)
]
return simplejson.dumps(blog_post_data)
@website.route(['/blog/<int:blog_post_id>/comment'], type='http', auth="public")
def blog_post_comment(self, blog_post_id=None, **post):
cr, uid, context = request.cr, request.uid, request.context
@@ -224,7 +226,7 @@ class WebsiteBlog(http.Controller):
context=dict(context, mail_create_nosubcribe=True))
return werkzeug.utils.redirect(request.httprequest.referrer + "#comments")
@website.route(['/blog/<int:category_id>/new'], type='http', auth="public", multilang=True)
@website.route(['/blog/new'], type='http', auth="public", multilang=True)
def blog_post_create(self, category_id=None, **post):
cr, uid, context = request.cr, request.uid, request.context
create_context = dict(context, mail_create_nosubscribe=True)
@@ -235,11 +237,17 @@ class WebsiteBlog(http.Controller):
'content': '',
'website_published': False,
}, context=create_context)
return werkzeug.utils.redirect("/blog/%s/?enable_editor=1" % (new_blog_post_id))
return werkzeug.utils.redirect("/blog/%s/?enable_editor=1" % new_blog_post_id)
@website.route(['/blog/<int:blog_post_id>/duplicate'], type='http', auth="public")
@website.route(['/blog/duplicate'], type='http', auth="public")
def blog_post_copy(self, blog_post_id=None, **post):
""" Duplicate a blog.
:param blog_post_id: id of the blog post currently browsed.
:return redirect to the new blog created
"""
cr, uid, context = request.cr, request.uid, request.context
create_context = dict(context, mail_create_nosubscribe=True)
new_blog_post_id = request.registry['blog.post'].copy(cr, uid, blog_post_id, {}, context=create_context)
return werkzeug.utils.redirect("/blog/%s/?enable_editor=1" % (new_blog_post_id))
return werkzeug.utils.redirect("/blog/%s/?enable_editor=1" % new_blog_post_id)
@@ -16,7 +16,7 @@
.call('name_search', [], { context: website.get_context() });
},
}).then(function (cat_id) {
document.location = '/blog/' + cat_id + '/new';
document.location = '/blog/new?category_id=' + cat_id;
});
}
}),
@@ -1,23 +0,0 @@
$(document).ready(function () {
$('.js_nav_month a:first').on('click', function (e) {
e.preventDefault();
var $ul = $(this).next("ul");
if (!$ul.find('li').length) {
// TODO: Why POST? (to pass the domain) A GET would be more appropriate...
// This should be done server side anyway...
$.post('/blog/nav', {'domain': $(this).data("domain")}, function (result) {
var blog_id = +window.location.pathname.split("/").pop();
$(JSON.parse(result)).each(function () {
var $li = $($.parseHTML(this.fragment));
if (blog_id == this.id) $li.addClass("active");
if (!this.website_published) $li.find('a').css("color", "red");
$ul.append($li);
});
});
} else {
$ul.toggle();
}
});
});
@@ -15,7 +15,7 @@
</template>
<!-- Blog Post Summary -->
<template id="blogs" name="All Blogs">
<template id="latest_blogs" name="Latest Blogs">
<t t-call="website.layout">
<div id="wrap">
<div class="oe_structure"/>
@@ -51,7 +51,7 @@
<t t-foreach="blogs" t-as="blog">
<div class="col-md-4">
<h4>
<a t-href="/blog/#{blog.id}" t-field="blog.name"></a>
<a t-href="/blog/#{blog.id}?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&amp;' or ''}#{ date and 'date=%s' % date or ''}" t-field="blog.name"></a>
<span t-if="not blog.website_published" class="text-warning">
&amp;nbsp;
<span class="icon-warning-sign" title="Not published"/>
@@ -73,7 +73,7 @@
</div>
<div class="text-muted" t-if="len(blog.message_ids) &gt; 0">
<span class="icon-comment">
<a t-href="/blog/#{blog.id}/#comment">
<a t-href="/blog/#{blog.id}/?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&amp;' or ''}#{ date and 'date=%s' % date or ''}#comment">
<t t-if="len(blog.message_ids) &lt;= 1" ><t t-esc="len(blog.message_ids)"/> comment</t>
<t t-if="len(blog.message_ids) > 1"><t t-esc="len(blog.message_ids)"/> comments</t>
</a>
@@ -108,12 +108,12 @@
<t t-foreach="blog_posts" t-as="blog_post">
<div t-att-data-publish="blog_post.website_published and 'on' or 'off'">
<h2 class="text-center">
<a t-href="/blog/#{blog_post.id}" t-field="blog_post.name"></a>
<a t-href="/blog/#{blog_post.id}/?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&amp;' or ''}#{ date and 'date=%s' % date or ''}" t-field="blog_post.name"></a>
</h2>
<p class="post-meta text-muted text-center" name='blog_post_data'>
<span class="icon-calendar"> <span t-field="blog_post.create_date"/> &amp;nbsp;</span>
<span t-if="len(blog_post.message_ids) &gt; 0" class="icon-comment">
<a t-href="/blog/#{blog_post.id}/#comment">
<a t-href="/blog/#{blog_post.id}/?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&amp;' or ''}#{ date and 'date=%s' % date or ''}#comment">
<t t-if="len(blog_post.message_ids) &lt;= 1" ><t t-esc="len(blog_post.message_ids)"/> comment</t>
<t t-if="len(blog_post.message_ids) > 1"><t t-esc="len(blog_post.message_ids)"/> comments</t>
</a>
@@ -136,14 +136,6 @@
</xpath>
</template>
<!-- Options: Blog Post Summary: show category -->
<template id="opt_blog_post_short_category" name="Category"
inherit_option_id="website_blog.blog_post_short">
<xpath expr="//span[@class='icon-calendar']" position="after">
<span class="icon-folder-open"> In <span t-field="blog_post.category_id"/> &amp;nbsp;</span>
</xpath>
</template>
<!-- Option: Blog Post Summary: show tags -->
<template id="opt_blog_post_short_tags" name="Tags"
inherit_option_id="website_blog.blog_post_short" inherit_id="website_blog.blog_post_short">
@@ -151,7 +143,7 @@
<p class="post-meta text-muted text-center" t-if="len(blog_post.tag_ids)">
<span class="icon-tags"/>
<t t-foreach="blog_post.tag_ids" t-as="tag">
<a t-href="/blog/tag/#{tag.id}" t-esc="tag.name"/> &amp;nbsp;
<a t-href="/blog/cat/#{ category.id }/tag/#{tag.id}" t-esc="tag.name"/> &amp;nbsp;
</t>
</p>
</xpath>
@@ -160,12 +152,22 @@
<!-- Blog Post Complete -->
<template id="blog_post_complete" name="Blog Post">
<t t-call="website_blog.index">
<div>
<div class="row">
<div class="col-sm-9">
<ol class="breadcrumb">
<li><a t-href="/blog/cat/#{category.id}"><span t-field="category.name"/></a></li>
<li t-if="tag"><a t-href="/blog/cat/#{ category.id }/tag/#{tag.id}"><span t-field="tag.name"/></a></li>
<li t-if="tag and date"><a t-href="/blog/cat/#{ category.id }/tag/#{tag.id}/date/#{ date }" t-esc="date_name"/></li>
<li t-if="not tag and date"><a t-href="/blog/cat/#{ category.id }/date/#{ date }" t-esc="date_name"/></li>
<li class="active"><span t-field="blog_post.name"/></li>
</ol>
</div><div class="col-sm-3">
<t t-call="website.publish_management">
<t t-set="object" t-value="blog_post"/>
<t t-set="publish_edit" t-value="True"/>
<li>
<a href="#" t-attf-data-href="/blog/#{blog_post.id}/duplicate">Duplicate</a>
<a href="#" t-attf-data-href="/blog/duplicate?blog_post_id=#{blog_post.id}">Duplicate</a>
<script>
var $a=$("[data-href$='/duplicate']");
$a.attr("href", $a.data('href')).removeAttr('data-href');
@@ -173,7 +175,9 @@
</script>
</li>
</t>
</div>
</div>
<div class="clearfix"/>
<h1 class="text-center" t-field="blog_post.name"/>
@@ -216,7 +220,7 @@
<xpath expr="//ul[@id='comments-list']" position="after">
<t t-if="not is_public_user">
<section groups="group_website_blog_reply" class="mb32">
<form id="comment" t-attf-action="/blog/#{blog_post.id}/comment"
<form id="comment" t-attf-action="/blog/#{blog_post.id}/#{ path_filter }/comment"
method="POST">
<img class="img pull-left img-rounded" t-att-src="'/website/image?model=res.partner&amp;field=image_small&amp;id='+str(user_id.partner_id.id)" style="width: 50px; margin-right: 10px;"/>
<div class="pull-left mb32" style="width: 75%%">
@@ -253,7 +257,7 @@
<p class="post-meta text-muted text-center" t-if="len(blog_post.tag_ids)">
<span class="icon-tags"/>
<t t-foreach="blog_post.tag_ids" t-as="tag">
<a t-href="/blog/tag/#{tag.id}" t-esc="tag.name"/> &amp;nbsp;
<a t-href="/blog/cat/#{ category.id }/tag/#{tag.id}" t-esc="tag.name"/> &amp;nbsp;
</t>
</p>
</xpath>
@@ -263,7 +267,6 @@
<template id="index" name="Blog Navigation">
<t t-call="website.layout">
<t t-set="head">
<script type="text/javascript" src="/website_blog/static/src/js/website_blog.js"></script>
<link rel='stylesheet' href='/website_blog/static/src/css/website_blog.css'/>
</t>
<div id="wrap">
@@ -279,6 +282,23 @@
</t>
</template>
<!-- Option: Right Column: tags -->
<template id="opt_blog_rc_tags" name="Tags"
inherit_option_id="website_blog.index" inherit_id="website_blog.index">
<xpath expr="//div[@id='blog_right_column']" position="inside">
<section class="mt32">
<h4>Tags</h4>
<ul class="nav nav-pills nav-stacked">
<t t-foreach="tags" t-as="tag_id">
<li t-att-class="tag and tag_id.id == tag.id and 'active' or None" style="display: inline-block;">
<a t-href="/blog/cat/#{ category.id }/tag/#{ tag_id.id }"><span t-field="tag_id.name"/></a>
</li>
</t>
</ul>
</section>
</xpath>
</template>
<!-- Option: Right Column: archives -->
<template id="opt_blog_rc_history" name="Archives"
inherit_option_id="website_blog.index" inherit_id="website_blog.index">
@@ -288,22 +308,12 @@
<xpath expr="//div[@id='blog_right_column']" position="inside">
<section class="mt32">
<h4>Archives</h4>
<ul class="list-unstyled">
<li t-foreach="nav_list" t-as="year">
<t t-set="year" t-value="nav_list[year]"/>
<t t-esc="year['name']"/>
<ul class="css_nav_month">
<t t-foreach="year['months']">
<li class="js_nav_month">
<a href="#" t-att-data-domain="__domain">
<t t-esc="create_date"/>
<span class="pull-right badge" t-esc="create_date_count"/>
</a>
<ul class="list-unstyled"/>
</li>
</t>
</ul>
<ul class="nav nav-pills nav-stacked">
<t t-foreach="nav_list" t-as="months">
<li t-att-class="months['date'] == date and 'active' or None">
<a t-ignore="True" t-href="/blog/cat/#{ category.id }/#{ tag and 'tag/%s/' % tag.id or '' }date/#{ months['date'] }"><t t-esc="months['create_date']"/><span class="pull-right badge" t-esc="months['create_date_count']"/></a>
</li>
</t>
</ul>
</section>
</xpath>
@@ -368,9 +378,9 @@
<xpath expr="//div[@id='blog_right_column']" position="inside">
<section class="mt32 mb32">
<h4>Our Blogs</h4>
<ul class="list-unstyled">
<ul class="nav nav-pills nav-stacked">
<t t-foreach="categories" t-as="nav_category">
<li>
<li t-att-class="nav_category.id == category.id and 'active' or ''">
<a t-href="/blog/cat/#{nav_category.id}">
<span t-field="nav_category.name"/>
</a>
@@ -381,11 +391,5 @@
</xpath>
</template>
<template id="blog_archive_link">
<li>
<a t-href="/blog/#{blog_post.id}"><t t-esc="blog_post.name"/></a>
</li>
</template>
</data>
</openerp>
+13 -13
View File
@@ -21,9 +21,19 @@
<div id="wrap">
<div class="oe_structure"/>
<div class="container">
<h1 class="text-center">
Next Events
</h1>
<div class="row">
<div class="col-sm-5">
<ol class="breadcrumb mb0">
<li class="active">
Our Events
</li>
</ol>
</div><div class="col-sm-7">
<t t-call="website.pager" >
<t t-set="classname">pull-right</t>
</t>
</div>
</div>
<h3 class="text-center text-muted">
<t t-esc="current_date or ''"/><span t-if="current_type"><t t-if="current_date">,</t>
<t t-esc="current_type.name"/></span><span t-if="current_country"><t t-if="current_type or current_date">,</t>
@@ -43,11 +53,6 @@
</ul>
</div>
<div class="col-sm-7 col-md-6" id="middle_column">
<t t-call="website.pager" >
<t t-set="classname">pull-left</t>
</t>
<div class="oe_structure">
</div>
<t t-if="not event_ids">
<p t-if="current_date or current_country or current_type">
No event found in this category, check <a href="/event">all events</a>.
@@ -88,11 +93,6 @@
</ul>
</div>
<div class="col-sm-2 col-md-3 oe_structure" id="right_column">
</div>
<div class="col-md-8 col-lg-offset-4 text-center">
<t t-call="website.pager" />
</div>
</div>
</div>
@@ -32,7 +32,7 @@ class website_hr_recruitment(http.Controller):
domain += [('address_id','=', office.id)]
if department:
domain += [('department_id','=', department.id)]
jobpost_ids = hr_job_obj.search(request.cr, request.uid, domain, order="website_published,no_of_recruitment desc", context=request.context)
jobpost_ids = hr_job_obj.search(request.cr, request.uid, domain, order="website_published desc,no_of_recruitment desc", context=request.context)
jobs = hr_job_obj.browse(request.cr, request.uid, jobpost_ids, request.context)
return request.website.render("website_hr_recruitment.index", {
+1 -6
View File
@@ -264,13 +264,9 @@ class Ecommerce(http.Controller):
return False
@website.route(['/shop/filter/'], type='http', auth="public", multilang=True)
def filter(self, add_filter="", **post):
def filter(self, **post):
index = []
filter = []
if add_filter:
filter = simplejson.loads(add_filter)
for filt in filter:
index.append(filt[0])
for key, val in post.items():
cat = key.split("-")
if len(cat) < 3 or cat[2] in ('max','minmem','maxmem'):
@@ -295,7 +291,6 @@ class Ecommerce(http.Controller):
return request.redirect("/shop/?filter=%s%s%s%s" % (
simplejson.dumps(filter),
add_filter and "&add_filter=%s" % add_filter or "",
post.get("search") and "&search=%s" % post.get("search") or "",
post.get("category") and "&category=%s" % post.get("category") or ""
))