views.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.template import RequestContext
  2. from django.utils import timezone
  3. from django.utils.translation import ugettext as _
  4. from misago.authn.decorators import block_guest
  5. from misago.views import error404
  6. @block_guest
  7. def show_alerts(request):
  8. now = timezone.now()
  9. alerts = {}
  10. if not request.user.alerts_date:
  11. request.user.alerts_date = request.user.join_date
  12. for alert in request.user.alert_set.order_by('-id'):
  13. alert.new = alert.date > request.user.alerts_date
  14. diff = now - alert.date
  15. if diff.days <= 0:
  16. try:
  17. alerts['today'].append(alert)
  18. except KeyError:
  19. alerts['today'] = [alert]
  20. elif diff.days <= 1:
  21. try:
  22. alerts['yesterday'].append(alert)
  23. except KeyError:
  24. alerts['yesterday'] = [alert]
  25. elif diff.days <= 7:
  26. try:
  27. alerts['week'].append(alert)
  28. except KeyError:
  29. alerts['week'] = [alert]
  30. elif diff.days <= 30:
  31. try:
  32. alerts['month'].append(alert)
  33. except KeyError:
  34. alerts['mont'] = [alert]
  35. else:
  36. try:
  37. alerts['older'].append(alert)
  38. except KeyError:
  39. alerts['older'] = [alert]
  40. new_alerts = request.user.alerts
  41. request.user.alerts = 0
  42. request.user.alerts_date = now
  43. request.user.save(force_update=True)
  44. return request.theme.render_to_response('alerts.html',
  45. {
  46. 'new_alerts': new_alerts,
  47. 'alerts': alerts,
  48. },
  49. context_instance=RequestContext(request));