views: in the *_by_document view, redirect to the first owned mailbox if multiple one are returned or the first no owned mailbox is returned

fixes #3886
This commit is contained in:
Benjamin Dauvergne 2013-10-29 10:58:26 +01:00
parent 60ca929d79
commit 2be8998ab1
1 changed files with 18 additions and 6 deletions

View File

@ -423,18 +423,30 @@ def get_free_delegation_number(user):
@login_required
@never_cache
def inbox_by_document(request, document_id):
mailbox = get_object_or_404(mailboxes(request), document=document_id,
outbox=False)
return redirect('inbox-message', mailbox.id, permanent=True)
mboxes = mailboxes(request).filter(document=document_id, outbox=False)
if not mailboxes:
raise Http404('No document found')
for mbox in mboxes:
if mbox.owner == request.user:
break
else:
mbox = mboxes[0]
return redirect('inbox-message', mbox.id)
@login_required
@never_cache
def outbox_by_document(request, document_id):
mailbox = get_object_or_404(mailboxes(request), document=document_id,
outbox=True)
return redirect('outbox-message', mailbox.id, permanent=True)
mboxes = mailboxes(request).filter(document=document_id, outbox=True)
if not mailboxes:
raise Http404('No document found')
for mbox in mboxes:
if mbox.owner == request.user:
break
else:
mbox = mboxes[0]
return redirect('outbox-message', mbox.id)
from django.contrib.auth import SESSION_KEY, BACKEND_SESSION_KEY