|
1 | 1 | from django.shortcuts import render |
2 | 2 | from django.http import HttpResponseRedirect |
3 | | -from django.template import RequestContext |
4 | 3 | from django.db import transaction |
5 | 4 | from django.contrib import messages |
6 | 5 | from django.contrib.auth.decorators import login_required |
7 | | -from django.conf import settings |
8 | 6 |
|
9 | | -from datetime import datetime |
10 | | - |
11 | | -from pgcommitfest.mailqueue.util import send_template_mail |
12 | | - |
13 | | -from .models import UserProfile, UserExtraEmail |
14 | | -from .forms import UserProfileForm, MailForm |
15 | | -from .util import generate_random_token |
| 7 | +from .models import UserProfile |
| 8 | +from .forms import UserProfileForm |
16 | 9 |
|
17 | 10 |
|
18 | 11 | @login_required |
19 | 12 | @transaction.atomic |
20 | 13 | def userprofile(request): |
21 | 14 | (profile, created) = UserProfile.objects.get_or_create(user=request.user) |
22 | | - form = mailform = None |
23 | 15 |
|
24 | 16 | if request.method == 'POST': |
25 | | - if request.POST['submit'] == 'Save': |
26 | | - form = UserProfileForm(request.user, request.POST, instance=profile) |
27 | | - if form.is_valid(): |
28 | | - form.save() |
29 | | - messages.add_message(request, messages.INFO, "User profile saved.") |
30 | | - return HttpResponseRedirect('.') |
31 | | - elif request.POST['submit'] == 'Add email': |
32 | | - mailform = MailForm(request.POST) |
33 | | - if mailform.is_valid(): |
34 | | - m = UserExtraEmail(user=request.user, |
35 | | - email=mailform.cleaned_data['email'], |
36 | | - confirmed=False, |
37 | | - token=generate_random_token(), |
38 | | - tokensent=datetime.now()) |
39 | | - m.save() |
40 | | - send_template_mail(settings.NOTIFICATION_FROM, |
41 | | - request.user.username, |
42 | | - m.email, |
43 | | - 'Your email address for commitfest.postgresql.org', |
44 | | - 'extra_email_mail.txt', |
45 | | - {'token': m.token, 'user': m.user}) |
46 | | - messages.info(request, "A confirmation token has been sent to %s" % m.email) |
47 | | - return HttpResponseRedirect('.') |
48 | | - else: |
49 | | - messages.error(request, "Invalid submit button pressed! Nothing saved.") |
| 17 | + form = UserProfileForm(request.user, request.POST, instance=profile) |
| 18 | + if form.is_valid(): |
| 19 | + form.save() |
| 20 | + messages.add_message(request, messages.INFO, "User profile saved.") |
50 | 21 | return HttpResponseRedirect('.') |
51 | | - |
52 | | - if not form: |
| 22 | + else: |
53 | 23 | form = UserProfileForm(request.user, instance=profile) |
54 | | - if not mailform: |
55 | | - mailform = MailForm() |
56 | | - |
57 | | - extramails = UserExtraEmail.objects.filter(user=request.user) |
58 | 24 |
|
59 | 25 | return render(request, 'userprofileform.html', { |
60 | 26 | 'form': form, |
61 | | - 'extramails': extramails, |
62 | | - 'mailform': mailform, |
63 | 27 | }) |
64 | | - |
65 | | - |
66 | | -@login_required |
67 | | -@transaction.atomic |
68 | | -def deletemail(request): |
69 | | - try: |
70 | | - id = int(request.META['QUERY_STRING']) |
71 | | - except ValueError: |
72 | | - messages.error(request, "Invalid format of id in query string") |
73 | | - return HttpResponseRedirect('../') |
74 | | - |
75 | | - try: |
76 | | - e = UserExtraEmail.objects.get(user=request.user, id=id) |
77 | | - except UserExtraEmail.DoesNotExist: |
78 | | - messages.error(request, "Specified email address does not exist on this user") |
79 | | - return HttpResponseRedirect('../') |
80 | | - |
81 | | - messages.info(request, "Email address %s deleted." % e.email) |
82 | | - e.delete() |
83 | | - return HttpResponseRedirect('../') |
84 | | - |
85 | | - |
86 | | -@login_required |
87 | | -@transaction.atomic |
88 | | -def confirmemail(request, tokenhash): |
89 | | - try: |
90 | | - e = UserExtraEmail.objects.get(user=request.user, token=tokenhash) |
91 | | - if e.confirmed: |
92 | | - messages.warning(request, "This email address has already been confirmed.") |
93 | | - else: |
94 | | - # Ok, it's not confirmed. So let's do that now |
95 | | - e.confirmed = True |
96 | | - e.token = '' |
97 | | - e.save() |
98 | | - messages.info(request, "Email address %s added to profile." % e.email) |
99 | | - except UserExtraEmail.DoesNotExist: |
100 | | - messages.error(request, "Token %s was not found for your user. It may be because it has already been used?" % tokenhash) |
101 | | - |
102 | | - return HttpResponseRedirect("../../") |
0 commit comments