[view] when forwarding mark original document as read for any user which has forwarding power

We get the list of users with forwarding power and lookup all their
mailboxes for the original document, then mark it read.
This commit is contained in:
Benjamin Dauvergne 2011-11-17 16:19:25 +01:00
parent ce9d26580e
commit 345a0dfe5a
1 changed files with 20 additions and 0 deletions

View File

@ -282,6 +282,25 @@ def can_forward(request):
bool(request.user.mailing_lists.filter(name__in=('Greffe',))) or \
bool(request.user.groups.filter(name__in=('Administrateurs',)))
def user_who_can_forward_filter():
'''Return the list of users who have access to the forwarding feature'''
return User.objects.filter(Q(username='Greffe') |
Q(mailing_lists__name='Greffe') |
Q(groups__name='Administrateurs'))
def mark_document_read(document, logger=None):
'''
Mark all mailboxes object for this document of user who can forward as
read.
'''
users = user_who_can_forward_filter()
mboxes = Mailbox.objects.filter(owner__in=users, document=document)
if not logger:
logger = logging.getLogger('docbow')
logger.info(_('Marking mailboxes %s as read because document %s was forwarded'),
'. '.join([str(mbox.id) for mbox in mboxes]), document.id)
mboxes.update(seen=True)
def form_to_user_and_list(form):
to_user = []
to_list = []
@ -321,6 +340,7 @@ def forward_document(document, sender, to_user, to_list, logger, base_url,
is_automatic = 'automatically' if automatic else ''
logger.info('document %s forwarded %s as document %s, timestamp %s' %
(document, is_automatic, new_document, tst))
mark_document_read(document, logger=logger)
return notification_count
@login_required