import werkzeug
-class website_mail(http.Controller):
+class WebsiteBlog(http.Controller):
_category_post_per_page = 6
_post_comment_per_page = 6
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
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(
'blog_posts': blog_posts,
'pager': pager,
'nav_list': nav,
+ 'current_user': current_user,
'unable_editor': post.get('unable_editor')
}
<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>
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
$(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');
});
#
##############################################################################
-from openerp.addons.website_blog.tests import test_controllers
+from openerp.addons.website_mail.tests import test_controllers
checks = [
test_controllers,
<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">