[IMP] website_mail: post with login
bzr revid: chm@openerp.com-20130729084915-yy713hv4e9r60ap4
This commit is contained in:
@@ -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
|
||||
|
||||
|
@@ -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))
|
||||
|
||||
@@ -22,3 +22,6 @@
|
||||
.css_website_mail .media .css_published .css_unpublish {
|
||||
display: none;
|
||||
}
|
||||
.css_website_mail .has-error {
|
||||
border-color: red;
|
||||
}
|
||||
|
||||
@@ -19,4 +19,6 @@
|
||||
.css_publish
|
||||
display: block
|
||||
.css_unpublish
|
||||
display: none
|
||||
display: none
|
||||
.has-error
|
||||
border-color: red
|
||||
@@ -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;
|
||||
});
|
||||
});
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user