[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:
parent
ce9d26580e
commit
345a0dfe5a
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue