[IMP] : ranking and visits management
bzr revid: aja@tinyerp.com-20140328063523-ttuhcai8aybtbmk0
This commit is contained in:
parent
68a1b4244f
commit
660c812786
|
@ -19,7 +19,6 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import random
|
||||
import werkzeug
|
||||
from datetime import datetime
|
||||
|
||||
|
@ -195,12 +194,13 @@ class WebsiteBlog(http.Controller):
|
|||
response = request.website.render("website_blog.blog_post_complete", values)
|
||||
response.set_cookie('visited_blogs', ','.join(map(str, visited_ids)))
|
||||
|
||||
# Increase counter and ranking ratio for order
|
||||
d = datetime.now() - datetime.strptime(blog_post.create_date, "%Y-%m-%d %H:%M:%S")
|
||||
blog_post_obj.write(cr, SUPERUSER_ID, [blog_post.id], {
|
||||
'visits': blog_post.visits+1,
|
||||
'ranking': blog_post.visits * (0.5+random.random()) / max(3, d.days)
|
||||
},context=context)
|
||||
request.session[request.session_id] = request.session.get(request.session_id, [])
|
||||
if not (blog_post.id in request.session[request.session_id]):
|
||||
request.session[request.session_id].append(blog_post.id)
|
||||
# Increase counter
|
||||
blog_post_obj.write(cr, SUPERUSER_ID, [blog_post.id], {
|
||||
'visits': blog_post.visits+1,
|
||||
},context=context)
|
||||
return response
|
||||
|
||||
def _blog_post_message(self, user, blog_post_id=0, **post):
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import random
|
||||
from datetime import datetime
|
||||
|
||||
from openerp import tools
|
||||
from openerp import SUPERUSER_ID
|
||||
|
@ -58,6 +60,14 @@ class BlogPost(osv.Model):
|
|||
_description = "Blog Post"
|
||||
_inherit = ['mail.thread', 'website.seo.metadata']
|
||||
_order = 'id DESC'
|
||||
|
||||
def _compute_ranking(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
for blog_post in self.browse(cr, uid, ids, context=context):
|
||||
d = datetime.now() - datetime.strptime(blog_post.create_date, tools.DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
res[blog_post.id] = blog_post.visits * (0.5+random.random()) / max(3, d.days)
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Title', required=True, translate=True),
|
||||
'sub_title' : fields.char('Sub Title', translate=True),
|
||||
|
@ -100,7 +110,7 @@ class BlogPost(osv.Model):
|
|||
select=True, readonly=True,
|
||||
),
|
||||
'visits': fields.integer('No of Views', readonly=True),
|
||||
'ranking': fields.float('Ranking', readonly=True),
|
||||
'ranking': fields.function(_compute_ranking, string='Ranking', type='float'),
|
||||
}
|
||||
_defaults = {
|
||||
'website_published': False,
|
||||
|
|
Loading…
Reference in New Issue