- {{ member.address }} |
+
+ {{ member.address }} |
{% trans member.role %} |
{% trans 'Unsubscribe' %}
=== modified file 'src/postorius/urls.py'
--- src/postorius/urls.py 2014-04-15 22:33:50 +0000
+++ src/postorius/urls.py 2014-04-16 20:35:53 +0000
@@ -31,6 +31,9 @@
url(r'^members/$',
ListMembersView.as_view(
), name='list_members'),
+ url(r'^members/options/(?P[^/]+)/$',
+ ListMemberOptionsView.as_view(
+ ), name='list_member_options'),
url(r'^metrics$',
ListMetricsView.as_view(
), name='list_metrics'),
=== modified file 'src/postorius/views/list.py'
--- src/postorius/views/list.py 2014-04-15 19:12:27 +0000
+++ src/postorius/views/list.py 2014-04-16 20:35:53 +0000
@@ -97,6 +97,56 @@
'moderator_form': moderator_form},
context_instance=RequestContext(request))
+class ListMemberOptionsView(MailingListView):
+ '''View the preferences for a single member of a mailing list'''
+
+ @method_decorator(list_owner_required)
+ def post(self, request, fqdn_listname, email):
+ try:
+ mm_member = utils.get_client().get_member(fqdn_listname, email)
+
+ preferences_form = UserPreferences(request.POST)
+ if preferences_form.is_valid():
+ preferences = mm_member.preferences
+ for key in preferences_form.fields.keys():
+ preferences[key] = preferences_form.cleaned_data[key]
+ preferences.save()
+ messages.success(
+ request, 'The member\'s preferences have been updated.')
+ else:
+ messages.error(request, 'Something went wrong.')
+
+ settingsform = UserPreferences(initial=mm_member.preferences)
+ except MailmanApiError:
+ return utils.render_api_error(request)
+ except HTTPError, e:
+ messages.error(request, e.msg)
+ return render_to_response(
+ 'postorius/lists/memberoptions.html',
+ {'mm_member': mm_member,
+ 'settingsform': settingsform,
+ },
+ context_instance=RequestContext(request))
+ #return redirect("list_member_options")
+
+ @method_decorator(list_owner_required)
+ def get(self, request, fqdn_listname, email):
+ try:
+ mm_member = utils.get_client().get_member(fqdn_listname, email)
+ settingsform = UserPreferences(initial=mm_member.preferences)
+ except MailmanApiError:
+ return utils.render_api_error(request)
+ except Mailman404Error:
+ return render_to_response(
+ 'postorius/lists/memberoptions.html',
+ {'nolists': 'true'},
+ context_instance=RequestContext(request))
+ return render_to_response(
+ 'postorius/lists/memberoptions.html',
+ {'mm_member': mm_member,
+ 'settingsform': settingsform,
+ },
+ context_instance=RequestContext(request))
class ListMetricsView(MailingListView):
=== modified file 'src/postorius/views/user.py'
--- src/postorius/views/user.py 2014-04-15 22:17:47 +0000
+++ src/postorius/views/user.py 2014-04-16 20:35:53 +0000
@@ -202,7 +202,6 @@
'formset': formset},
context_instance=RequestContext(request))
-
class UserSummaryView(MailmanUserView):
"""Shows a summary of a user.
|