mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-11 00:33:17 +00:00
Add notification preferences form, view, template and link from account
This commit is contained in:
parent
77da60b6d3
commit
6dcb489d6b
5 changed files with 55 additions and 3 deletions
|
|
@ -28,6 +28,15 @@
|
|||
</small>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="row row-flush">
|
||||
<div class="col6">
|
||||
<a href="{% url 'wagtailadmin_account_notification_preferences' %}" class="button button-primary">{% trans "Notification preferences" %}</a>
|
||||
</div>
|
||||
|
||||
<small class="col6">
|
||||
{% trans "Choose which email notifications to receive." %}
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
{% extends "wagtailadmin/base.html" %}
|
||||
{% load i18n %}
|
||||
{% block content %}
|
||||
{% trans "Notification Preferences" as prefs_str %}
|
||||
{% include "wagtailadmin/shared/header.html" with title=prefs_str %}
|
||||
|
||||
<div class="nice-padding">
|
||||
<form action="{% url 'wagtailadmin_account_notification_preferences' %}" method="POST">
|
||||
{% csrf_token %}
|
||||
<ul class="listing">
|
||||
{% for field in form %}
|
||||
{% include "wagtailadmin/shared/field_as_li.html" with field=field %}
|
||||
{% endfor %}
|
||||
<input type="submit" value="{% trans 'Update' %}" />
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
@ -77,6 +77,7 @@ urlpatterns += [
|
|||
url(r'^login/$', account.login, name='wagtailadmin_login'),
|
||||
url(r'^account/$', account.account, name='wagtailadmin_account'),
|
||||
url(r'^account/change_password/$', account.change_password, name='wagtailadmin_account_change_password'),
|
||||
url(r'^account/notification_preferences/$', account.notification_preferences, name='wagtailadmin_account_notification_preferences'),
|
||||
url(r'^logout/$', account.logout, name='wagtailadmin_logout'),
|
||||
|
||||
url(r'^userbar/(\d+)/$', userbar.for_frontend, name='wagtailadmin_userbar_frontend'),
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ from django.views.decorators.debug import sensitive_post_parameters
|
|||
from django.views.decorators.cache import never_cache
|
||||
|
||||
from wagtail.wagtailadmin import forms
|
||||
from wagtail.wagtailusers.forms import NotificationPreferencesForm
|
||||
|
||||
|
||||
@permission_required('wagtailadmin.access_admin')
|
||||
|
|
@ -42,6 +43,24 @@ def change_password(request):
|
|||
})
|
||||
|
||||
|
||||
@permission_required('wagtailadmin.access_admin')
|
||||
def notification_preferences(request):
|
||||
|
||||
if request.POST:
|
||||
form = NotificationPreferencesForm(request.POST, instance=request.user.get_profile())
|
||||
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
messages.success(request, _("Your preferences have been updated successfully!"))
|
||||
return redirect('wagtailadmin_account')
|
||||
else:
|
||||
form = NotificationPreferencesForm(instance=request.user.get_profile())
|
||||
|
||||
return render(request, 'wagtailadmin/account/notification_preferences.html', {
|
||||
'form': form,
|
||||
})
|
||||
|
||||
|
||||
@sensitive_post_parameters()
|
||||
@never_cache
|
||||
def login(request):
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
from django import forms
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.forms import UserCreationForm as BaseUserCreationForm
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
User = get_user_model()
|
||||
from wagtail.wagtailusers.models import User, UserProfile
|
||||
|
||||
|
||||
# extend Django's UserCreationForm with an 'is_superuser' field
|
||||
|
|
@ -130,3 +129,9 @@ class UserEditForm(forms.ModelForm):
|
|||
user.save()
|
||||
self.save_m2m()
|
||||
return user
|
||||
|
||||
|
||||
class NotificationPreferencesForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = UserProfile
|
||||
fields = ("submitted_notifications", "approved_notifications", "rejected_notifications")
|
||||
|
|
|
|||
Loading…
Reference in a new issue