|
@@ -4,16 +4,31 @@ from django.template import RequestContext
|
|
|
from django.utils import timezone
|
|
|
from django.utils.timezone import localtime
|
|
|
from django.utils.translation import ugettext as _
|
|
|
-from misago.decorators import block_guest
|
|
|
-from misago.shortcuts import render_to_response
|
|
|
+from misago.apps.errors import error404
|
|
|
+from misago.decorators import block_guest, check_csrf
|
|
|
+from misago.shortcuts import render_to_response, json_response
|
|
|
+from misago.template.loader import render_to_string
|
|
|
|
|
|
@block_guest
|
|
|
def alerts(request):
|
|
|
+ if not request.user.alerts_date:
|
|
|
+ request.user.alerts_date = request.user.join_date
|
|
|
+
|
|
|
+ if request.is_ajax():
|
|
|
+ alerts_qs = request.user.alert_set.filter(date__gte=request.session.start).order_by('-id')
|
|
|
+ response_html = render_to_string('alerts/modal.html',
|
|
|
+ {'alerts': alerts_qs},
|
|
|
+ context_instance=RequestContext(request))
|
|
|
+ if request.user.alerts_date:
|
|
|
+ request.user.alerts = 0
|
|
|
+ request.user.alerts_date = timezone.now()
|
|
|
+ request.user.save(force_update=True)
|
|
|
+ return json_response(request,
|
|
|
+ json={'html': response_html})
|
|
|
+
|
|
|
now = localtime(timezone.now())
|
|
|
yesterday = now - timedelta(days=1)
|
|
|
alerts = {}
|
|
|
- if not request.user.alerts_date:
|
|
|
- request.user.alerts_date = request.user.join_date
|
|
|
|
|
|
for alert in request.user.alert_set.order_by('-id'):
|
|
|
alert.new = alert.date > request.user.alerts_date
|
|
@@ -49,9 +64,22 @@ def alerts(request):
|
|
|
request.user.alerts = 0
|
|
|
request.user.alerts_date = now
|
|
|
request.user.save(force_update=True)
|
|
|
- return render_to_response('alerts.html',
|
|
|
+ return render_to_response('alerts/list.html',
|
|
|
{
|
|
|
'new_alerts': new_alerts,
|
|
|
'alerts': alerts,
|
|
|
},
|
|
|
context_instance=RequestContext(request))
|
|
|
+
|
|
|
+
|
|
|
+@block_guest
|
|
|
+@check_csrf
|
|
|
+def clear_recent(request):
|
|
|
+ if not request.is_ajax() or not request.method == 'POST':
|
|
|
+ return error404(request)
|
|
|
+
|
|
|
+ del request.session['recent_alerts']
|
|
|
+ response_html = render_to_string('alerts/cleared.html',
|
|
|
+ context_instance=RequestContext(request))
|
|
|
+ return json_response(request,
|
|
|
+ json={'html': response_html})
|