utils.py 1.5 KB

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