diff --git a/bt/views.py b/bt/views.py index 663866defd815580b6751d648d9146d6a335da30..c888de0af638de97ad343ca4977a9561bf2f486a 100644 --- a/bt/views.py +++ b/bt/views.py @@ -7,6 +7,7 @@ from django.conf import settings from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.exceptions import ObjectDoesNotExist from django.contrib import messages +from django.contrib.auth.models import User from django.utils.translation import ugettext_lazy as _ from models import Violation, Attachment, Comment, Confirmation from tempfile import mkstemp @@ -44,11 +45,39 @@ def sanitizeHtml(value, base_url=None): def activate(request): v=Violation.objects.get(activationid=request.GET.get('key','asdf')) - v.activationid='' - v.save() - messages.add_message(request, messages.INFO, _('Thank you for verifying your submission.')) + if v: + actid = hashlib.sha1(''.join([chr(randint(32, 122)) for x in range(12)])).hexdigest() + to=[x.email for x in User.objects.filter(groups__name='moderator')] + msg = MIMEText(_("A new report was submitted. To approve click here: %s/moderate/?key=%s\n") % (settings.ROOT_URL or 'http://localhost:8001/', actid)) + msg['Subject'] = _('NNMon submission approval') + msg['From'] = 'nnmon@nnmon.lqdn.fr' + msg['To'] = ', '.join(to) + s = smtplib.SMTP('localhost') + s.sendmail('nnmon@nnmon.lqdn.fr', to, msg.as_string()) + s.quit() + v.activationid=actid + v.save() + messages.add_message(request, messages.INFO, _('Thank you for verifying your submission.')) return HttpResponseRedirect('/') # Redirect after POST +def moderate(request): + v=Violation.objects.get(activationid=request.GET.get('key','asdf')) + if not v: + messages.add_message(request, messages.INFO, _('No such key')) + return HttpResponseRedirect('/') # Redirect after POST + if request.GET.get('action','')=='approve': + if settings.TWITTER_API: + settings.TWITTER_API.PostUpdate("New infringement reported for %s (%s) %s" % (v.operator, v.country, v.contract)) + v.activationid='' + v.save() + messages.add_message(request, messages.INFO, _('Thank you for approving the submission.')) + return HttpResponseRedirect('/') # Redirect after POST + if request.GET.get('action','')=='delete': + v.delete() + messages.add_message(request, messages.INFO, _('Thank you for deleting the submission.')) + return HttpResponseRedirect('/') # Redirect after POST + return render_to_response('view.html', { 'v': v, 'key': request.GET.get('key') },context_instance=RequestContext(request)) + def confirm(request, id, name=None): if name: if Confirmation.objects.filter(email=name, violation=id).count()==0: diff --git a/templates/view.html b/templates/view.html index 9c2f7a70fe9d1ee8cbd92567cca675860e06b0a5..09ab8b8e28c18f58d351e5c3b0a311ce32d9a6be 100644 --- a/templates/view.html +++ b/templates/view.html @@ -70,6 +70,7 @@ $(document).ready(function() { {%endif%} + {% if not key %}