diff options
| author | Christophe Matthieu <chm@openerp.com> | 2013-09-06 10:35:00 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@openerp.com> | 2013-09-06 10:35:00 +0200 |
| commit | 8a3f1742e0e9c7acaae726e5c7106d2d7df7e970 (patch) | |
| tree | 78ae5d981fcd25677caea5c8b3999b1e77bf4547 /addons/website_mail | |
| parent | 6f6c59ec1de1881a70e4bf728ea5d8b56bd609f9 (diff) | |
| parent | c80cf7d0646463b290137c26fbada568a6942b00 (diff) | |
[MERGE] from website-al
bzr revid: chm@openerp.com-20130906083500-4n5knaxiqt4cg2ht
Diffstat (limited to 'addons/website_mail')
| -rw-r--r-- | addons/website_mail/__openerp__.py | 1 | ||||
| -rw-r--r-- | addons/website_mail/controllers/main.py | 35 | ||||
| -rw-r--r-- | addons/website_mail/views/website_mail.xml | 37 | ||||
| -rw-r--r-- | addons/website_mail/website_mail_data.xml | 16 |
4 files changed, 52 insertions, 37 deletions
diff --git a/addons/website_mail/__openerp__.py b/addons/website_mail/__openerp__.py index 951cd1706f6..1f30992aaa9 100644 --- a/addons/website_mail/__openerp__.py +++ b/addons/website_mail/__openerp__.py @@ -11,6 +11,7 @@ OpenERP Blog 'author': 'OpenERP SA', 'depends': ['website', 'mail'], 'data': [ + 'website_mail_data.xml', 'views/website_mail.xml', 'views/res_config.xml', 'security/website_mail.xml', diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 3011908471d..194281f9d93 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -3,6 +3,7 @@ from openerp import SUPERUSER_ID from openerp.addons.web import http from openerp.addons.web.http import request +from openerp.addons.website import website import werkzeug from openerp.tools.translate import _ from openerp.tools.safe_eval import safe_eval @@ -13,7 +14,7 @@ _months = {1:_("January"), 2:_("February"), 3:_("March"), 4:_("April"), 5:_("May class website_mail(http.Controller): - @http.route(['/blog/', '/blog/<int:mail_group_id>/', '/blog/<int:mail_group_id>/<int:blog_id>/', + @website.route(['/blog/', '/blog/<int:mail_group_id>/', '/blog/<int:mail_group_id>/<int:blog_id>/', '/blog/page/<int:page>/', '/blog/<int:mail_group_id>/page/<int:page>/', '/blog/<int:mail_group_id>/<int:blog_id>/page/<int:page>/'], type='http', auth="public") def blog(self, mail_group_id=None, blog_id=None, page=0, **post): website = request.registry['website'] @@ -21,16 +22,16 @@ class website_mail(http.Controller): message_obj = request.registry['mail.message'] user_obj = request.registry['res.users'] - values = website.get_rendering_context({ + values = { 'blog_ids': None, 'blog_id': None, 'nav_list': dict(), 'mail_group_id': mail_group_id, 'subscribe': post.get('subscribe'), 'website': website, - }) + } - if request.uid != website.get_public_user().id and mail_group_id: + if not request.webcontext.is_public_user and mail_group_id: message_follower_ids = group_obj.read(request.cr, request.uid, [mail_group_id], ['message_follower_ids'])[0]['message_follower_ids'] parent_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid).partner_id.id values['subscribe'] = parent_id in message_follower_ids @@ -54,20 +55,19 @@ class website_mail(http.Controller): values['pager'] = pager values['blog_ids'] = message_obj.browse(request.cr, request.uid, message_ids) - return website.render("website_mail.index", values) + return request.webcontext.render("website_mail.index", values) - @http.route(['/blog/nav'], type='http', auth="public") + @website.route(['/blog/nav'], type='http', auth="public") def nav(self, **post): comment_ids = request.registry['mail.group'].get_public_message_ids(request.cr, request.uid, domain=safe_eval(post.get('domain')), order="create_date asc", limit=None) return simplejson.dumps(request.registry['mail.message'].read(request.cr, request.uid, comment_ids, ['website_published', 'subject', 'res_id'])) - @http.route(['/blog/<int:mail_group_id>/<int:blog_id>/post'], type='http', auth="public") + @website.route(['/blog/<int:mail_group_id>/<int:blog_id>/post'], type='http', auth="public") def blog_post(self, mail_group_id=None, blog_id=None, **post): - website = request.registry['website'] url = request.httprequest.host_url if post.get('body'): request.session.body = post.get('body') - if request.uid == website.get_public_user().id: + if request.webcontext.is_public_user: return '%s/admin#action=redirect&url=%s/blog/%s/%s/post' % (url, url, mail_group_id, blog_id) if 'body' in request.session and request.session.body: @@ -86,7 +86,7 @@ class website_mail(http.Controller): else: return werkzeug.utils.redirect("/blog/%s/%s/" % (mail_group_id, blog_id)) - @http.route(['/blog/<int:mail_group_id>/new'], type='http', auth="public") + @website.route(['/blog/<int:mail_group_id>/new'], type='http', auth="public") def new_blog_post(self, mail_group_id=None, **post): blog_id = request.registry['mail.group'].message_post(request.cr, request.uid, mail_group_id, body=_("Blog content.<br/>Please edit this content then you can publish this blog."), @@ -98,15 +98,14 @@ class website_mail(http.Controller): ) return werkzeug.utils.redirect("/blog/%s/%s/" % (mail_group_id, blog_id)) - @http.route(['/blog/<int:mail_group_id>/subscribe', '/blog/<int:mail_group_id>/<int:blog_id>/subscribe'], type='http', auth="public") + @website.route(['/blog/<int:mail_group_id>/subscribe', '/blog/<int:mail_group_id>/<int:blog_id>/subscribe'], type='http', auth="public") def subscribe(self, mail_group_id=None, blog_id=None, **post): - website = request.registry['website'] partner_obj = request.registry['res.partner'] group_obj = request.registry['mail.group'] user_obj = request.registry['res.users'] - if mail_group_id and 'subscribe' in post and (post.get('email') or request.uid != website.get_public_user().id): - if request.uid == website.get_public_user().id: + if mail_group_id and 'subscribe' in post and (post.get('email') or not request.webcontext.is_public_user): + if request.webcontext.is_public_user: partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))]) if not partner_ids: partner_ids = [partner_obj.create(request.cr, SUPERUSER_ID, {"email": post.get('email'), "name": "Subscribe: %s" % post.get('email')})] @@ -117,15 +116,14 @@ class website_mail(http.Controller): return self.blog(mail_group_id=mail_group_id, blog_id=blog_id, subscribe=post.get('email')) - @http.route(['/blog/<int:mail_group_id>/unsubscribe', '/blog/<int:mail_group_id>/<int:blog_id>/unsubscribe'], type='http', auth="public") + @website.route(['/blog/<int:mail_group_id>/unsubscribe', '/blog/<int:mail_group_id>/<int:blog_id>/unsubscribe'], type='http', auth="public") def unsubscribe(self, mail_group_id=None, blog_id=None, **post): - website = request.registry['website'] partner_obj = request.registry['res.partner'] group_obj = request.registry['mail.group'] user_obj = request.registry['res.users'] - if mail_group_id and 'unsubscribe' in post and (post.get('email') or request.uid != website.get_public_user().id): - if request.uid == website.get_public_user().id: + if mail_group_id and 'unsubscribe' in post and (post.get('email') or not request.webcontext.is_public_user): + if request.webcontext.is_public_user: partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))]) else: partner_ids = [user_obj.browse(request.cr, request.uid, request.uid).partner_id.id] @@ -133,4 +131,3 @@ class website_mail(http.Controller): group_obj.message_unsubscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids) return self.blog(mail_group_id=mail_group_id, blog_id=blog_id, subscribe=None) - diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index b96c58fff6d..018f5d0fb70 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -12,7 +12,7 @@ <!-- Layout add nav and footer --> - <template id="footer_custom" inherit_id="website.layout" name="Custom Footer"> + <template id="header_footer_custom" inherit_id="website.layout"> <xpath expr="//body/header//ul[@id='top_menu']/li[last()]" position="before"> <li><a href="/blog/%(website_mail.website_mail_blog)d/">News</a></li> </xpath> @@ -33,21 +33,22 @@ <t t-set="title">Blog</t> <div class="container mt48 js_website_mail"> <div class="row"> - <div class="span4" id="left_column"> - <a t-if="mail_group_id and editable" t-attf-href="/blog/#{ mail_group_id }/new" class="btn">Add a new Blog</a> - - <div id="blog_subscribe"> + <div class="col-md-4" id="left_column"> + <a t-if="mail_group_id and editable" t-attf-href="/blog/#{ mail_group_id }/new" class="btn btn-default">Add a new Blog</a> + <div> <form action="./subscribe" method="POST" class="form-inline" t-if="not subscribe"> - <input placeholder="Email Address" type="email" name="email" class="input-medium" t-if="is_public_user"/> + <div class="col-lg-7"> + <input placeholder="Email Address" type="email" name="email" class="form-control" t-if="is_public_user"/> + </div> <button type="submit" class="btn btn-primary" name="subscribe">Subscribe</button> </form> <form action="./unsubscribe" method="POST" class="form-inline" t-if="subscribe"> <input type="hidden" name="email" t-att-value="subscribe"/> - <button type="submit" class="btn" name="unsubscribe">Unsubscribe</button> + <button type="submit" class="btn btn-default" name="unsubscribe">Unsubscribe</button> </form> </div> </div> - <div class="span8" t-if="blog_id"> + <div class="col-md-8" t-if="blog_id"> <div class="media"> <div class="media-body well"> <t t-call="website.publish"><t t-set="object" t-value="blog_id"/></t> @@ -69,18 +70,18 @@ </small> </div> </li> - <form id="post" t-attf-action="/blog/#{ blog_id.res_id }/#{ blog_id.id }/post#post" method="POST" class="form-horizontal text-center" groups="group_website_mail_reply"> - <textarea rows="4" placeholder="Your comment" class="span7"> </textarea> - <button type="submit" class="btn">Post your comment</button> - </form> </ul> + <form id="post" t-attf-action="/blog/#{ blog_id.res_id }/#{ blog_id.id }/post#post" method="POST" class="form-horizontal text-center" groups="group_website_mail_reply"> + <textarea rows="4" placeholder="Your comment" class="col-md-7 form-control"></textarea> + <button type="submit" class="btn btn-default">Post your comment</button> + </form> </div> </div> - <div class="span8" t-if="not blog_id and blog_ids"> + <div class="col-md-8" t-if="not blog_id and blog_ids"> <ul class="media-list"> - <li t-foreach="blog_ids" t-as="blog" class="media well"> - <div t-attf-class="media-body #{ 'css_published' if blog.website_published else '' }"> + <li t-foreach="blog_ids" t-as="blog" class="media well thumbnail" data-publish=""> + <div class="media-body"> <t t-call="website.publish"><t t-set="object" t-value="blog"/></t> <h4 class="media-heading" ><a t-attf-href="/blog/#{ blog.res_id }/#{ blog.id }#comment" t-field="blog.subject"></a></h4> <div class="media"> @@ -108,16 +109,16 @@ <template id="blog_history" inherit_id="website_mail.index" inherit_option_id="website_mail.index" name="History"> <xpath expr="//div[@id='left_column']" position="inside"> - <ul class="nav nav-list"> + <ul class="nav nav-pills nav-stacked"> <li class="nav-header"><a t-attf-href="/blog/#{ mail_group_id }/">BLOG ARCHIVE</a></li> <!-- TODO: check qweb iteration --> <li t-foreach="nav_list" t-as="year" class="js_nav_year"> <t t-set="year" t-value="nav_list[year]"/> <a href="#"><t t-esc="year['name']"/> <small>(<t t-esc="year['date_count']"/>)</small></a> - <ul class="nav nav-list css_nav_month"> + <ul class="nav list-group css_nav_month nav-stacked nav-hierarchy"> <t t-foreach="year['months']"> <li class="js_nav_month"><a href="#" t-att-data-domain="__domain"><t t-esc="date"/> <small>(<t t-esc="date_count"/>)</small></a> - <ul class="nav nav-list"/> + <ul class="nav list-group nav-stacked nav-hierarchy"/> </li> </t> </ul> diff --git a/addons/website_mail/website_mail_data.xml b/addons/website_mail/website_mail_data.xml new file mode 100644 index 00000000000..cb5db2e250d --- /dev/null +++ b/addons/website_mail/website_mail_data.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data noupdate="1"> + + <record id="action_open_website" model="ir.actions.act_url"> + <field name="name">Website Blogs</field> + <field name="target">self</field> + <field name="url">/blog</field> + </record> + <record id="base.open_menu" model="ir.actions.todo"> + <field name="action_id" ref="action_open_website"/> + <field name="state">open</field> + </record> + + </data> +</openerp> |
