Release requests should work now :p

see #298
This commit is contained in:
Antoine Nguyen
2012-09-19 08:45:57 +02:00
parent c3dc06d693
commit 21e57774b2
3 changed files with 19 additions and 6 deletions
File diff suppressed because one or more lines are too long
+5 -2
View File
@@ -176,13 +176,16 @@ class PgWrapper(SQLWrapper):
if not user.is_superuser:
doms = user.get_domains()
regexp = "(%s)" % '|'.join(map(lambda dom: dom.name, doms))
return len(Msgrcpt.objects.filter(rq).extra(where=["convert_from(maddr.email, 'UTF8') ~ '%s'" % (regexp,)], tables=['maddr']))
return len(Msgrcpt.objects.filter(rq).extra(
where=["convert_from(maddr.email, 'UTF8') ~ '%s'" % (regexp,)],
tables=['maddr']
))
return len(Msgrcpt.objects.filter(rq))
def get_mail_content(self, mailid):
return Quarantine.objects.filter(mail=mailid).extra(
select={'mail_text' : "convert_from(mail_text, 'UTF8'"}
select={'mail_text' : "convert_from(mail_text, 'UTF8')"}
)
def get_wrapper():
+13 -3
View File
@@ -163,7 +163,7 @@ def viewmail(request, mail_id):
@login_required
def viewheaders(request, mail_id):
content = ""
for qm in Quarantine.objects.filter(mail=mail_id):
for qm in get_wrapper().get_mail_content(mail_id):
content += qm.mail_text
msg = email.message_from_string(content)
return _render(request, 'amavis/viewheader.html', {
@@ -196,7 +196,10 @@ def delete(request, mail_id):
if request.user.group == 'SimpleUsers':
mb = Mailbox.objects.get(user=request.user)
msgrcpts = get_wrapper().get_recipient_messages(mb.full_address, mail_id)
msgrcpts.update(rs='D')
#msgrcpts.update(rs='D')
for msgrcpt in msgrcpts:
msgrcpt.rs = 'D'
msgrcpt.save()
else:
wrapper = get_wrapper()
for mid in mail_id:
@@ -243,7 +246,14 @@ def release(request, mail_id):
mb = Mailbox.objects.get(user=request.user)
msgrcpts = get_wrapper().get_recipient_messages(mb.full_address, mail_id)
if parameters.get_admin("USER_CAN_RELEASE") == "no":
msgrcpts.update(rs='p')
# FIXME : can't use this syntax because extra SQL (using
# .extra() for postgres) is not propagated (the 'tables'
# parameter is lost somewhere...)
#
# msgrcpts.update(rs='p')
for msgrcpt in msgrcpts:
msgrcpt.rs = 'p'
msgrcpt.save()
message = ungettext("%(count)d request sent",
"%(count)d requests sent",
len(mail_id)) % {"count" : len(mail_id)}