diff options
| author | ajay javiya (OpenERP) <aja@tinyerp.com> | 2014-03-27 16:40:24 +0530 |
|---|---|---|
| committer | ajay javiya (OpenERP) <aja@tinyerp.com> | 2014-03-27 16:40:24 +0530 |
| commit | 287e92bca778af2aa0d8deae88cb97d1a93162d2 (patch) | |
| tree | 20440b577f43f421967dc7872306ae200fdae9f6 | |
| parent | 9739b9ed4f53fc21b7188736c3e332ea4b2f8b22 (diff) | |
[ADD] : pager on blog list
[FIX] :archive navigation does not work
[REM] : BYPAGE in blogs method and use existing _blog_post_per_page
bzr revid: aja@tinyerp.com-20140327111024-7nm1kbs74kqtcmrv
| -rw-r--r-- | addons/website_blog/controllers/main.py | 31 | ||||
| -rw-r--r-- | addons/website_blog/views/website_blog_templates.xml | 13 |
2 files changed, 24 insertions, 20 deletions
diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py index a3f7c68ebe3..8f1b7224ac4 100644 --- a/addons/website_blog/controllers/main.py +++ b/addons/website_blog/controllers/main.py @@ -28,6 +28,7 @@ from openerp.addons.web.http import request from openerp.tools.translate import _ from openerp import SUPERUSER_ID from openerp.tools import html2plaintext +from openerp import tools class WebsiteBlog(http.Controller): _blog_post_per_page = 20 @@ -38,7 +39,8 @@ class WebsiteBlog(http.Controller): 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]) + group['date_begin'] = str(datetime.date(datetime.strptime(group['__domain'][0][2], tools.DEFAULT_SERVER_DATETIME_FORMAT))) + group['date_end'] = str(datetime.date(datetime.strptime( group['__domain'][1][2], tools.DEFAULT_SERVER_DATETIME_FORMAT))) return groups @http.route([ @@ -46,7 +48,6 @@ class WebsiteBlog(http.Controller): '/blog/page/<int:page>', ], type='http', auth="public", website=True, multilang=True) def blogs(self, page=1): - BYPAGE = 60 cr, uid, context = request.cr, request.uid, request.context blog_obj = request.registry['blog.post'] total = blog_obj.search(cr, uid, [], count=True, context=context) @@ -54,9 +55,9 @@ class WebsiteBlog(http.Controller): url='/blog', total=total, page=page, - step=BYPAGE, + step=self._blog_post_per_page, ) - bids = blog_obj.search(cr, uid, [], offset=pager['offset'], limit=BYPAGE, context=context) + bids = blog_obj.search(cr, uid, [], offset=pager['offset'], limit=self._blog_post_per_page, context=context) blogs = blog_obj.browse(cr, uid, bids, context=context) return request.website.render("website_blog.latest_blogs", { 'blogs': blogs, @@ -68,12 +69,12 @@ class WebsiteBlog(http.Controller): '/blog/<model("blog.blog"):blog>/page/<int:page>', '/blog/<model("blog.blog"):blog>/tag/<model("blog.tag"):tag>', '/blog/<model("blog.blog"):blog>/tag/<model("blog.tag"):tag>/page/<int:page>', - '/blog/<model("blog.blog"):blog>/date/<string(length=21):date>', - '/blog/<model("blog.blog"):blog>/date/<string(length=21):date>/page/<int:page>', - '/blog/<model("blog.blog"):blog>/tag/<model("blog.tag"):tag>/date/<string(length=21):date>', - '/blog/<model("blog.blog"):blog>/tag/<model("blog.tag"):tag>/date/<string(length=21):date>/page/<int:page>', + '/blog/<model("blog.blog"):blog>/date/<string(length=10):date_begin>/<string(length=10):date_end>', + '/blog/<model("blog.blog"):blog>/date/<string(length=10):date_begin>/<string(length=10):date_end>/page/<int:page>', + '/blog/<model("blog.blog"):blog>/tag/<model("blog.tag"):tag>/date/<string(length=10):date_begin>/<string(length=10):date_end>', + '/blog/<model("blog.blog"):blog>/tag/<model("blog.tag"):tag>/date/<string(length=10):date_begin>/<string(length=10):date_end>/page/<int:page>', ], type='http', auth="public", website=True, multilang=True) - def blog(self, blog=None, tag=None, date=None, page=1, **opt): + def blog(self, blog=None, tag=None, date_begin=None,date_end=None, page=1, **opt): """ Prepare all values to display the blog. :param blog: blog currently browsed. @@ -102,14 +103,14 @@ class WebsiteBlog(http.Controller): path_filter = "" domain = [] if blog: - path_filter += "%s/" % blog.id + path_filter += "%s" % blog.id domain += [("blog_id", "=", [blog.id])] if tag: - path_filter += 'tag/%s/' % tag.id + path_filter += 'tag/%s' % tag.id domain += [("tag_ids", "in", [tag.id])] - if date: - path_filter += "date/%s" % date - domain += [("create_date", ">=", date.split("_")[0]), ("create_date", "<=", date.split("_")[1])] + if date_begin and date_end: + path_filter += "date/%s/%s" % (date_begin,date_end) + domain += [("create_date", ">=", date_begin), ("create_date", "<=", date_end)] blog_post_count = blog_post_obj.search(cr, uid, domain, count=True, context=context) pager = request.website.pager( @@ -135,7 +136,7 @@ class WebsiteBlog(http.Controller): 'pager': pager, 'nav_list': self.nav_list(), 'path_filter': path_filter, - 'date': date, + 'date': date_begin, } response = request.website.render("website_blog.blog_post_short", values) return response diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml index 9955b09b6a9..79a3329f950 100644 --- a/addons/website_blog/views/website_blog_templates.xml +++ b/addons/website_blog/views/website_blog_templates.xml @@ -45,7 +45,7 @@ <t t-foreach="blogs" t-as="blog"> <div class="col-md-4"> <h4> - <a t-attf-href="/blogpost/#{ slug(blog) }?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&' or ''}#{ date and 'date=%s' % date or ''}" t-field="blog.name"></a> + <a t-attf-href="/blog/#{ slug(blog.blog_id) }/post/#{ slug(blog) }?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&' or ''}#{ date and 'date=%s' % date or ''}" t-field="blog.name"></a> <span t-if="not blog.website_published" class="text-warning"> &nbsp; <span class="fa fa-warning" title="Not published"/> @@ -67,7 +67,7 @@ </div> <div class="text-muted" t-if="len(blog.message_ids) > 0"> <span class="fa fa-comment-o"> - <a t-attf-href="/blogpost/#{ slug(blog) }/?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&' or ''}#{ date and 'date=%s' % date or ''}#comments"> + <a t-attf-href="/blog/#{ slug(blog.blog_id) }/post/#{ slug(blog) }/?#{ tag and 'tag=%s' % tag.id or '' }#{tag and date and '&' or ''}#{ date and 'date=%s' % date or ''}#comments"> <t t-if="len(blog.message_ids) <= 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> @@ -93,6 +93,9 @@ <section class="mb0"> <div class="container"> <div class="row"> + <t t-call="website.pager" > + <t t-set="classname">pull-right</t> + </t> <div class="col-md-12 mb32 mt16 text-center"> <h1 t-field="blog.name"/> <h3 class="text-muted" t-field="blog.subtitle"/> @@ -117,7 +120,7 @@ <div t-foreach="blog_posts" t-as="blog_post" class="mb32"> <img class="img-circle pull-right mt16" - t-att-src="'/website/image?model=res.partner&field=image_small&id='+str(blog_post.create_uid.parnter_id.id)" + t-att-src="'/website/image?model=res.partner&field=image_small&id='+str(blog_post.create_uid.partner_id.id)" style="width: 50px;"/> <a t-attf-href="/blog/#{ slug(blog_post.blog_id) }/post/#{ slug(blog_post) }"> @@ -344,8 +347,8 @@ <h4>Archives</h4> <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-attf-href="/blog/#{ slug(blog) }/#{ tag and 'tag/%s/' % slug(tag) or '' }date/#{ months['date'] }"><t t-esc="months['create_date']"/><span class="pull-right badge" t-esc="months['create_date_count']"/></a> + <li t-att-class="months['date_begin'] == date and 'active' or None"> + <a t-ignore="True" t-attf-href="/blog/#{ slug(blog) }/#{ tag and 'tag/%s/' % slug(tag) or '' }date/#{ months['date_begin'] }/#{ months['date_end'] }"><t t-esc="months['create_date']"/><span class="pull-right badge" t-esc="months['create_date_count']"/></a> </li> </t> </ul> |
