[IMP] website_mail, website_blog: improved follow / unfollow (always display email, more visible)
bzr revid: tde@openerp.com-20130930143357-0r61uikrf8nx92fg
This commit is contained in:
@@ -29,7 +29,7 @@ import simplejson
|
||||
import werkzeug
|
||||
|
||||
|
||||
class website_mail(http.Controller):
|
||||
class WebsiteBlog(http.Controller):
|
||||
_category_post_per_page = 6
|
||||
_post_comment_per_page = 6
|
||||
|
||||
@@ -75,7 +75,8 @@ class website_mail(http.Controller):
|
||||
blog_post_obj = request.registry['blog.post']
|
||||
tag_obj = request.registry['blog.tag']
|
||||
category_obj = request.registry['blog.category']
|
||||
user_obj = request.registry['res.users']
|
||||
|
||||
current_user = request.registry['res.users'].browse(cr, uid, uid, context=context)
|
||||
|
||||
tag = None
|
||||
category = None
|
||||
@@ -103,6 +104,9 @@ class website_mail(http.Controller):
|
||||
blog_posts = category.blog_post_ids
|
||||
elif tag:
|
||||
blog_posts = tag.blog_post_ids
|
||||
else:
|
||||
blog_post_ids = blog_post_obj.search(cr, uid, [], context=context)
|
||||
blog_posts = blog_post_obj.browse(cr, uid, blog_post_ids, context=context)
|
||||
|
||||
if blog_posts:
|
||||
pager = request.website.pager(
|
||||
@@ -143,6 +147,7 @@ class website_mail(http.Controller):
|
||||
'blog_posts': blog_posts,
|
||||
'pager': pager,
|
||||
'nav_list': nav,
|
||||
'current_user': current_user,
|
||||
'unable_editor': post.get('unable_editor')
|
||||
}
|
||||
|
||||
|
||||
@@ -186,19 +186,25 @@
|
||||
<template id="blog_followus" inherit_option_id="website_blog.blog_right_column" inherit_id="website_blog.blog_right_column" name="Follow us" priority="2">
|
||||
<xpath expr="//div[@id='right_column']" position="inside">
|
||||
<section class="mb16">
|
||||
<h4>Follow us</h4>
|
||||
<p class="text-muted">
|
||||
Participate on our social stream.
|
||||
</p>
|
||||
<t t-call="website_mail.follow"><t t-set="object" t-value="category"/></t>
|
||||
<h2>
|
||||
<a t-att-href="website.social_facebook" t-if="website.social_facebook"><i class="icon-facebook-sign"/></a>
|
||||
<a t-att-href="website.social_twitter" t-if="website.social_twitter"><i class="icon-twitter-sign"/></a>
|
||||
<a t-att-href="website.social_linkedin" t-if="website.social_linkedin"><i class="icon-linkedin-sign"/></a>
|
||||
<a t-att-href="website.social_youtube" t-if="website.social_youtube"><i class="icon-youtube-sign"/></a>
|
||||
<a t-att-href="website.social_googleplus" t-if="website.social_googleplus"><i class="icon-google-plus-sign"/></a>
|
||||
<a t-att-href="website.social_github" t-if="website.social_github"><i class="icon-github-sign"/></a>
|
||||
</h2>
|
||||
<h4>Follow us</h4>
|
||||
<p class="text-muted">
|
||||
Be notified of new blog posts in <t t-esc="category.name"/>
|
||||
</p>
|
||||
<t t-call="website_mail.follow">
|
||||
<t t-set="email" t-value="current_user.email"/>
|
||||
<t t-set="object" t-value="category"/>
|
||||
</t>
|
||||
<p class="text-muted">
|
||||
Participate on our social stream.
|
||||
</p>
|
||||
<h2>
|
||||
<a t-att-href="website.social_facebook" t-if="website.social_facebook"><i class="icon-facebook-sign"/></a>
|
||||
<a t-att-href="website.social_twitter" t-if="website.social_twitter"><i class="icon-twitter-sign"/></a>
|
||||
<a t-att-href="website.social_linkedin" t-if="website.social_linkedin"><i class="icon-linkedin-sign"/></a>
|
||||
<a t-att-href="website.social_youtube" t-if="website.social_youtube"><i class="icon-youtube-sign"/></a>
|
||||
<a t-att-href="website.social_googleplus" t-if="website.social_googleplus"><i class="icon-google-plus-sign"/></a>
|
||||
<a t-att-href="website.social_github" t-if="website.social_github"><i class="icon-github-sign"/></a>
|
||||
</h2>
|
||||
</section>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
@@ -32,10 +32,10 @@ class WebsiteMail(http.Controller):
|
||||
partner_obj = request.registry['res.partner']
|
||||
user_obj = request.registry['res.users']
|
||||
partner_ids = []
|
||||
if request.context['is_public_user'] and email:
|
||||
if request.context['is_public_user'] and email and email != u'false': # post contains stringified booleans
|
||||
partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", email)], context=request.context)
|
||||
if not partner_ids:
|
||||
partner_ids = [partner_obj.create(request.cr, SUPERUSER_ID, {"email": email, "name": email}, request.context)]
|
||||
partner_ids = [partner_obj.name_create(request.cr, SUPERUSER_ID, email, request.context)]
|
||||
else:
|
||||
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id]
|
||||
return partner_ids
|
||||
|
||||
@@ -12,12 +12,14 @@ $(document).ready(function () {
|
||||
$(document).on('click', '.js_follow', function (ev) {
|
||||
ev.preventDefault();
|
||||
var $data = $(":first", this).parents("[data-follow]");
|
||||
var $email = $data.first().siblings(".js_follow_email");
|
||||
var message_is_follower = $data.first().attr("data-follow");
|
||||
$data.attr("data-follow", message_is_follower == 'off' ? 'on' : 'off');
|
||||
$.post('/website_mail/follow', {
|
||||
'id': $(this).data('id'),
|
||||
'object': $(this).data('object'),
|
||||
'message_is_follower': message_is_follower,
|
||||
'email': $email && $email.val() || false,
|
||||
}, function (result) {
|
||||
$data.attr("data-follow", + result ? 'on' : 'off');
|
||||
});
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp.addons.website_blog.tests import test_controllers
|
||||
from openerp.addons.website_mail.tests import test_controllers
|
||||
|
||||
checks = [
|
||||
test_controllers,
|
||||
|
||||
@@ -6,9 +6,12 @@
|
||||
<a href="#" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-follow="object.id and object.message_is_follower and 'on' or 'off'" class="pull-right js_follow" t-if="editable" t-ignore="true">
|
||||
<span t-attf-class="label label-success css_follow">Follow</span>
|
||||
<span t-attf-class="label label-danger css_unfollow">Unfollow</span>
|
||||
<span t-attf-class="label label-success css_followed">Followed</span>
|
||||
<span t-attf-class="label label-danger css_unfollowed">Unfollowed</span>
|
||||
<span t-attf-class="label label-success css_followed">Following</span>
|
||||
<span t-attf-class="label label-danger css_unfollowed">Not Following</span>
|
||||
</a>
|
||||
<input type="email" name="email" class="js_follow_email css_unfollowed_email"
|
||||
t-att-value="email"
|
||||
t-att-placeholder="email or 'Email Address'"/>
|
||||
</template>
|
||||
|
||||
<template id="website.layout" inherit_id="website.layout">
|
||||
|
||||
Reference in New Issue
Block a user