diff --git a/marietje/marietje/settings.py b/marietje/marietje/settings.py index 577fa9e..61c4291 100644 --- a/marietje/marietje/settings.py +++ b/marietje/marietje/settings.py @@ -150,3 +150,5 @@ MAX_MINUTES_IN_A_ROW = 20 # Time range (dependent on timezone specified) when MAX_MINUTES_IN_A_ROW is in effect. LIMIT_ALWAYS = False LIMIT_HOURS = (12, 16) + +CONTACT_EMAIL = 'marietje@science.ru.nl' diff --git a/marietje/marietje/templates/base.html b/marietje/marietje/templates/base.html index 23bab7e..a997725 100644 --- a/marietje/marietje/templates/base.html +++ b/marietje/marietje/templates/base.html @@ -59,6 +59,14 @@ {% endfor %} {% endfor %} {% endif %} + {% if messages %} + {% for message in messages %} +
+ + {{ message }} +
+ {% endfor %} + {% endif %} {% block content %}{% endblock content %} diff --git a/marietje/marietje/views.py b/marietje/marietje/views.py index d7c5cef..235ff99 100644 --- a/marietje/marietje/views.py +++ b/marietje/marietje/views.py @@ -1,11 +1,15 @@ -import random, string -from django.shortcuts import render, redirect, get_object_or_404 +import random +import string + +from django.conf import settings +from django.contrib import messages from django.contrib.auth import get_user_model from django.core.mail import send_mail -from django.conf import settings +from django.shortcuts import render, redirect, get_object_or_404 from django.urls import reverse -from .forms import RegistrationForm, ResetPasswordForm + from marietje.utils import get_first_queue +from .forms import RegistrationForm, ResetPasswordForm def register(request): @@ -31,8 +35,9 @@ def register(request): 'Please confirm your account by following this link: ' + activation_link, settings.MAIL_FROM, [user.email], - fail_silently=True - ) + fail_silently=True) + messages.add_message(request, messages.INFO, 'Please check your email, ' + user.email + ', for activation.', + extra_tags='info') return redirect('login') @@ -42,6 +47,10 @@ def activate(request, user_id, token): if token == user.activation_token: user.activation_token = None user.save() + messages.add_message(request, messages.SUCCESS, 'Successfully activated.', extra_tags='success') + else: + messages.add_message(request, messages.ERROR, 'Activation failed. If the problem persists, please contact ' + + settings.CONTACT_EMAIL + '.', extra_tags='danger') return redirect('login') @@ -52,6 +61,7 @@ def forgotpassword(request): User = get_user_model() user = User.objects.filter(username=request.POST.get('email')).first() if user is None or user.activation_token: + messages.add_message(request, messages.ERROR, 'No (active) user found.', extra_tags='danger') return render(request, 'registration/forgotpassword.html') user.reset_token = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(32)) @@ -63,8 +73,9 @@ def forgotpassword(request): + reset_link + '\nIf you did not request to reset your password, you can ignore this email.', settings.MAIL_FROM, [user.email], - fail_silently=True - ) + fail_silently=True) + messages.add_message(request, messages.INFO, 'Please check your email, ' + user.email + + ', for resetting your password.', extra_tags='info') return redirect('login') @@ -72,6 +83,7 @@ def resetpassword(request, user_id, token): User = get_user_model() user = get_object_or_404(User, pk=user_id) if not user.reset_token or token != user.reset_token: + messages.add_message(request, messages.ERROR, 'Invalid password reset link.', extra_tags='danger') return redirect('login') if not request.POST: return render(request, 'registration/resetpassword.html', {'user_id': user.id, 'reset_token': token}) @@ -79,9 +91,11 @@ def resetpassword(request, user_id, token): form = ResetPasswordForm(request.POST) if not form.is_valid(): - return render(request, 'registration/resetpassword.html', {'user_id': user.id, 'reset_token': token, 'form': form}) + return render(request, 'registration/resetpassword.html', {'user_id': user.id, 'reset_token': token, + 'form': form}) user.reset_token = None user.set_password(form.cleaned_data['password1']) user.save() + messages.add_message(request, messages.SUCCESS, 'Your password has been reset.', extra_tags='success') return redirect('login')