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///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 @@ -
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
- -
-
+ + +