def activate_user(request, key): profile = RegistrationProfile.objects.activate_user(key) error = notice = "" if not profile: error = "Sorry, that key was invalid" else: notice = "Thanks, you've successfully confirmed your email" user = authenticate(username=profile.user.email) login(request, user) context = {'error': error, 'notice': notice} return redirect(addToQueryString(reverse('home'), context))
def activate_user(request, key): profile = RegistrationProfile.objects.activate_user(key) error = notice = "" if not profile: error = "Sorry, that key was invalid" else: notice = "Thanks, you've successfully confirmed your email" user = authenticate(username=profile.user.email) login(request, user) context = {'error': error, 'notice': notice} return HttpResponseRedirect(addToQueryString("/", context))
def home(request): context = {} if request.user.is_anonymous(): now = datetime.datetime.now() blog_date = blog_title = blog_content = None competition = Competition.objects\ .filter(start_date__lt=now, close_date__gt=now)\ .order_by('start_date') if competition: competition = competition[0] predictions = Prediction.objects\ .filter(competition=competition)\ .all()[:10] else: competition = None predictions = None context['blog_date'] = blog_date context['blog_title'] = blog_title context['blog_content'] = blog_content context['competition'] = competition context['predictions'] = predictions if request.method == "POST": # login attempt if request.POST.get('login', ''): username = request.POST['email'] password = request.POST['password'] user = authenticate(username=username, password=password) if user and not user.is_anonymous(): login(request, user) return redirect(reverse('home')) else: error = "Sorry, your details weren't recognised" context = {'error': error} return redirect(addToQueryString(reverse('home'), context)) else: # signup attempt form = PredictionForm(request.POST, request.FILES) if form.is_valid(): prediction = form.save() request.session['prediction'] = prediction request.session['competition'] = competition return redirect(reverse('signup')) else: context['form'] = form else: # default homepage context['form'] = PredictionForm() return render_with_context(request, 'home.html', context) else: return redirect(reverse('logged_in'))
def unsubscribe(request, key): profile = RegistrationProfile.objects.get_user(key, only_activated=False) error = notice = "" if RegistrationProfile.objects.deactivate_user(profile, user_request=True): logout(request) notice = "Your user account has been deactivated and will no longer receive emails" else: error = "Invalid key" context = {'error': error, 'notice': notice} return HttpResponseRedirect(addToQueryString("/", context))
def index(request): vars = {} if request.method == "POST": invite_form = InviteForm(request.POST, request.FILES) if invite_form.is_valid(): invite_form.save(request.user) context = {"notice": "Thanks for inviting more people to join!"} return HttpResponseRedirect(addToQueryString(reverse("tasks"), context)) else: vars["invite_form"] = invite_form else: vars["invite_form"] = InviteForm() vars["siteurl"] = quote("http://%s" % Site.objects.get_current().domain) request.user.seen_invite = True request.user.save() return render_with_context(request, "invite/invite_page.html", vars)
def index(request): vars = {} if request.method == "POST": invite_form = InviteForm(request.POST, request.FILES) if invite_form.is_valid(): invite_form.save(request.user) return HttpResponseRedirect(addToQueryString(reverse("inviteindex"), {'notice': strings.INVITE_NOTICE_SUCCESS})) else: vars['invite_form'] = invite_form else: vars['invite_form'] = InviteForm() vars['siteurl'] = quote("http://%s" % Site.objects.get_current().domain) return render_with_context(request, "invite/invite_page.html", vars)
def do_login(request, key): context = key_login(request, key) return HttpResponseRedirect(addToQueryString("/", context))
def moderate_issue(request): moderate_issue_form = None if request.method == "POST": issue = Issue.objects.get(pk=request.POST['id']) # issue.question = request.POST['question'] Don't modify original issue # issue.reference_url = request.POST['reference_url'] found = False for k in request.POST.keys(): if k.startswith("Hide"): issue.status = k.lower() notice = ("Issue hidden, thank you! Here's another " "issue to moderate.") found = True if not found and 'Approve' in request.POST: issue.status = 'approved' question = request.POST['question'] reference_url = request.POST['reference_url'] new_issue = RefinedIssue.objects.create(question=question, reference_url=reference_url, constituency=issue.constituency, moderator=request.user, based_on=issue ) notice = "Issue moderated, thank you! Here's another issue to moderate." elif not found: raise Exception("No known button submitted in form data") completion = issue.constituency.issue_completion.get() completion.calculate_completion() issue.last_updated_by = request.user issue.save() signals.issue_moderated.send(None, user=request.user, issue=issue) return HttpResponseRedirect(addToQueryString(reverse('moderate_issue'), {'notice' : notice})) else: issue_list = Issue.objects\ .filter(status='new', constituency__issue_completion__completed=False)\ .order_by('constituency__issue_completion__number_to_completion')\ .distinct() if request.user.pk == 5687 or issue_list.count() == 0: # 5687 is a 'special" user we want to skip return HttpResponseRedirect(addToQueryString("/", { 'notice' : "Every issue has now been moderated! Thank you for helping." })) issue = random.choice(issue_list[:15]) if moderate_issue_form == None: moderate_issue_form = ModerateIssueForm(instance = issue) vars = { } vars['issue'] = issue vars['form'] = moderate_issue_form vars['issues'] = Issue.objects.filter(constituency=issue.constituency).order_by('-created_at') vars['constituency'] = issue.constituency vars['done'] = RefinedIssue.objects.all().count() vars['missing'] = issue_list.count() vars['total'] = vars['done'] + vars['missing'] vars['percentage'] = float(vars['done']) / float(vars['total']) * 100 vars['league_table_all_time'] = make_league_table() one_week_ago = datetime.datetime.now() - datetime.timedelta(7) vars['league_table_this_week'] = make_league_table(Issue.objects.filter(updated_at__gt=one_week_ago).all()) return render_to_response("moderate_issue.html", vars, context_instance=RequestContext(request))