views.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. all_alerts = 0
  11. if not request.user.alerts_date:
  12. request.user.alerts_date = request.user.join_date
  13. for alert in request.user.alert_set.order_by('-id'):
  14. all_alerts += 1
  15. alert.new = alert.date > request.user.alerts_date
  16. diff = now - alert.date
  17. if diff.days <= 0:
  18. try:
  19. alerts['today'].append(alert)
  20. except KeyError:
  21. alerts['today'] = [alert]
  22. elif diff.days <= 1:
  23. try:
  24. alerts['yesterday'].append(alert)
  25. except KeyError:
  26. alerts['yesterday'] = [alert]
  27. elif diff.days <= 7:
  28. try:
  29. alerts['week'].append(alert)
  30. except KeyError:
  31. alerts['week'] = [alert]
  32. elif diff.days <= 30:
  33. try:
  34. alerts['month'].append(alert)
  35. except KeyError:
  36. alerts['mont'] = [alert]
  37. else:
  38. try:
  39. alerts['older'].append(alert)
  40. except KeyError:
  41. alerts['older'] = [alert]
  42. response = request.theme.render_to_response('alerts.html',
  43. {
  44. 'alerts': alerts
  45. },
  46. context_instance=RequestContext(request));
  47. request.user.alerts = all_alerts
  48. request.user.alerts_new = 0
  49. request.user.alerts_date = now
  50. request.user.save(force_update=True)
  51. return response