[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
This commit is contained in:
parent
9739b9ed4f
commit
287e92bca7
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue