utils.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.core.mail import mail_managers
  2. from django.core.urlresolvers import reverse
  3. from .models import ResourceAllocation
  4. def notify_allocation(request, new_alloc, old_alloc=None):
  5. fields = ['resource', 'service', 'route', 'start', 'end', 'active', 'notes']
  6. message = 'Bénévole : ' + str(request.user.profile)
  7. message += '\n\nAllocation :'
  8. diff = False
  9. for field in fields:
  10. new_attr = getattr(new_alloc, field)
  11. if new_attr == '' or new_attr is None:
  12. new_attr = '-'
  13. if old_alloc:
  14. old_attr = getattr(old_alloc, field)
  15. if old_attr == '' or old_attr is None:
  16. old_attr = '-'
  17. if old_alloc and old_attr != new_attr:
  18. message += '\n-%12s: %s\n+%12s: %s' % (field, old_attr, field, new_attr)
  19. diff = True
  20. else:
  21. message += '\n %12s: %s' % (field, new_attr)
  22. url = 'https' if request.is_secure() else 'http'
  23. url += '://' + request.get_host()
  24. url += reverse('admin:services_resourceallocation_change', args=(new_alloc.pk,))
  25. message += '\n\nVoir : ' + url
  26. if old_alloc and diff:
  27. sujet = 'Modification d’une allocation'
  28. elif not old_alloc:
  29. sujet = 'Nouvelle allocation'
  30. else:
  31. sujet = None
  32. if sujet:
  33. mail_managers(sujet, message)