diff options
| author | Christophe Matthieu <chm@openerp.com> | 2013-07-29 10:49:15 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@openerp.com> | 2013-07-29 10:49:15 +0200 |
| commit | 0d168ea3f49202568f466c951f7a5a5a3ea52ee7 (patch) | |
| tree | c4e962aacf26657362e13d4539799266b76f8d1d | |
| parent | b21b10d1f39152d0feebb0723f750c3283e36fde (diff) | |
[IMP] website_mail: post with login
bzr revid: chm@openerp.com-20130729084915-yy713hv4e9r60ap4
| -rw-r--r-- | addons/mail/security/ir.model.access.csv | 1 | ||||
| -rw-r--r-- | addons/website_mail/controllers/main.py | 34 | ||||
| -rw-r--r-- | addons/website_mail/static/src/css/blog.css | 3 | ||||
| -rw-r--r-- | addons/website_mail/static/src/css/blog.sass | 4 | ||||
| -rw-r--r-- | addons/website_mail/static/src/js/blog.js | 19 | ||||
| -rw-r--r-- | addons/website_mail/views/website_mail.xml | 27 |
6 files changed, 35 insertions, 53 deletions
diff --git a/addons/mail/security/ir.model.access.csv b/addons/mail/security/ir.model.access.csv index 13258c239ee..ffdf5c2b102 100644 --- a/addons/mail/security/ir.model.access.csv +++ b/addons/mail/security/ir.model.access.csv @@ -11,6 +11,7 @@ access_mail_notification_all,mail.notification.all,model_mail_notification,,1,0, access_mail_notification_user,mail.notification.user,model_mail_notification,base.group_user,1,1,1,0
access_mail_notification_system,mail.notification.system,model_mail_notification,base.group_system,1,1,1,1
access_mail_group_all,mail.group.all,model_mail_group,,1,0,0,0
+access_mail_group_public,mail.group.public,model_mail_group,base.group_public,1,0,0,0
access_mail_group_user,mail.group.user,model_mail_group,base.group_user,1,1,1,1
access_mail_alias_all,mail.alias.all,model_mail_alias,,1,0,0,0
access_mail_alias_user,mail.alias.user,model_mail_alias,base.group_user,1,1,1,0
diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 806fda76b03..f1d906f1204 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -25,8 +25,6 @@ class website_mail(website): else: values['blog_id'] = message_obj.browse(cr, uid, blog_id) - print values - html = self.render(cr, uid, "website_mail.index", values) return html @@ -42,23 +40,23 @@ class website_mail(website): return blog.website_published and "1" or "0" @website.route(['/blog/<int:mail_group_id>/<int:blog_id>/post'], type='http', auth="admin") - def message_post(self, cr, uid, mail_group_id=None, blog_id=None, **post): - if post.get('body') and post.get('name') and post.get('email') and post.get('email').index('@') > 0: - if self.isloggued(): - author_id = request.registry['res.users'].browse(cr, uid, uid).partner_id.id - else: - partner_obj = request.registry['res.partner'] - partner_ids = partner_obj.search(cr, uid, [('name', '=', post.get('name')), ('email', '=', post.get('email'))]) - if partner_ids: - author_id = partner_ids[0] - else: - author_id = partner_obj.create(cr, openerp.SUPERUSER_ID, {'name': post.get('name'), 'email': post.get('email')}) - + def blog_post(self, cr, uid, mail_group_id=None, blog_id=None, **post): + url = request.httprequest.host_url + if post.get('body'): + request.session.body = post.get('body') + if not self.isloggued(): + 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: request.registry['mail.group'].message_post(cr, uid, mail_group_id, - body=post.get('body'), + body=request.session.body, parent_id=blog_id, - author_id=author_id, - website_published= blog_id and True or False + website_published=blog_id and True or False, + context={'mail_create_nosubscribe': True}, ) + request.session.body = False - return werkzeug.utils.redirect("/blog/%s/%s" % (mail_group_id, blog_id)) + if post.get('body'): + return '%s/blog/%s/%s' % (url, mail_group_id, blog_id) + else: + return werkzeug.utils.redirect("/blog/%s/%s" % (mail_group_id, blog_id)) diff --git a/addons/website_mail/static/src/css/blog.css b/addons/website_mail/static/src/css/blog.css index 7d9d850e974..4c5f53ec1c7 100644 --- a/addons/website_mail/static/src/css/blog.css +++ b/addons/website_mail/static/src/css/blog.css @@ -22,3 +22,6 @@ .css_website_mail .media .css_published .css_unpublish { display: none; } +.css_website_mail .has-error { + border-color: red; +} diff --git a/addons/website_mail/static/src/css/blog.sass b/addons/website_mail/static/src/css/blog.sass index 30f7598dee2..3fdc5c42d10 100644 --- a/addons/website_mail/static/src/css/blog.sass +++ b/addons/website_mail/static/src/css/blog.sass @@ -19,4 +19,6 @@ .css_publish display: block .css_unpublish - display: none
\ No newline at end of file + display: none + .has-error + border-color: red
\ No newline at end of file diff --git a/addons/website_mail/static/src/js/blog.js b/addons/website_mail/static/src/js/blog.js index e5656981a8a..fb10bcc9b4b 100644 --- a/addons/website_mail/static/src/js/blog.js +++ b/addons/website_mail/static/src/js/blog.js @@ -12,15 +12,14 @@ $(document).ready(function () { $form = $('.js_website_mail form#post'); $form.submit(function (e) { - var check = true; - $form.find(".control-group").removeClass("error"); - $form.find("textarea,input").each(function() { - if ($(this).val().length < 3) { - $(this).parents(".control-group:first").addClass("error"); - check = false; - } - }); - if (!check) return false; - $form.css("visibility", "hidden"); + var error = $form.find("textarea").val().length < 3; + $form.find("textarea").toggleClass("has-error", error); + if (!error) { + $form.css("visibility", "hidden"); + $.post(window.location.pathname + '/post', {'body': $form.find("textarea").val()}, function (url) { + window.location.href = url + }); + } + return false; }); });
\ No newline at end of file diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index b6a95117e4c..21845e6d27a 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -67,30 +67,9 @@ </div> </li> </t> - <form id="post" t-att-action="'/blog/%%s/%%s/post#post' %% (blog_id.res_id, blog_id.id)" method="POST" class="form-horizontal" groups="group_website_mail_reply"> - <div class="control-group"> - <label class="control-label">Name</label> - <div class="controls"> - <input type="text" name="name" placeholder="Name" class="span5"/> - </div> - </div> - <div class="control-group"> - <label class="control-label">Email</label> - <div class="controls"> - <input type="email" name="email" placeholder="Email" class="span5"/> - </div> - </div> - <div class="control-group"> - <label class="control-label">You message</label> - <div class="controls"> - <textarea rows="4" name="body" placeholder="You message" class="span5"> </textarea> - </div> - </div> - <div class="control-group"> - <div class="controls"> - <button type="submit" class="btn">Post</button> - </div> - </div> + <form id="post" t-att-action="'/blog/%%s/%%s/post#post' %% (blog_id.res_id, blog_id.id)" method="POST" class="form-horizontal text-center" groups="group_website_mail_reply"> + <textarea rows="4" placeholder="Your message" class="span7"> </textarea> + <button type="submit" class="btn">Post your message</button> </form> </ul> </div> |
