コード例 #1
0
ファイル: views.py プロジェクト: sebbacon/trevor
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))
コード例 #2
0
ファイル: views.py プロジェクト: tfgg/cvn.org
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))
コード例 #3
0
ファイル: views.py プロジェクト: sebbacon/trevor
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'))
コード例 #4
0
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))
コード例 #5
0
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)
コード例 #6
0
ファイル: views.py プロジェクト: tfgg/cvn.org
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)
コード例 #7
0
def do_login(request, key):
    context = key_login(request, key)
    
    return HttpResponseRedirect(addToQueryString("/", context))
コード例 #8
0
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))