notifications.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.urls import reverse
  2. from django.conf import settings
  3. from djadhere.utils import send_notification
  4. # À simplifier : seul la route peut changer maintenant
  5. def notify_allocation(request, new_alloc, old_alloc=None):
  6. fields = ['resource', 'service', 'route', 'start', 'end', 'notes']
  7. benevole = '%s <%s>' % (request.user.username, request.user.email)
  8. message = 'Bénévole : ' + benevole
  9. message += '\n\nAllocation :'
  10. diff = False
  11. for field in fields:
  12. new_attr = getattr(new_alloc, field)
  13. if new_attr == '' or new_attr is None:
  14. new_attr = '-'
  15. if old_alloc:
  16. old_attr = getattr(old_alloc, field)
  17. if old_attr == '' or old_attr is None:
  18. old_attr = '-'
  19. if old_alloc and old_attr != new_attr:
  20. message += '\n-%12s: %s\n+%12s: %s' % (field, old_attr, field, new_attr)
  21. diff = True
  22. else:
  23. message += '\n %12s: %s' % (field, new_attr)
  24. url = 'https' if request.is_secure() else 'http'
  25. url += '://' + request.get_host()
  26. url += reverse('admin:services_ipresource_change', args=(new_alloc.resource.pk,))
  27. message += '\n\nVoir : ' + url
  28. if old_alloc and diff:
  29. sujet = 'Modification d’allocation'
  30. elif not old_alloc:
  31. if new_alloc.end:
  32. sujet = 'Fin d’allocation'
  33. else:
  34. sujet = 'Nouvelle allocation'
  35. else:
  36. sujet = None
  37. if sujet:
  38. sujet += ' {} sur {}'.format(new_alloc.resource, new_alloc.route)
  39. send_notification(sujet, message, settings.ALLOCATIONS_EMAILS, cc=[benevole])