Terri has proposed merging lp:~terriko/postorius/membersettings into
lp:postorius.
Requested reviews:
Mailman Coders (mailman-coders)
For more details, see:
https://code.launchpad.net/~terriko/postorius/membersettings/+merge/216207
--
https://code.launchpad.net/~terriko/postorius/membersettings/+merge/216207
Your team Mailman Coders is requested to review the proposed merge of
lp:~terriko/postorius/membersettings into lp:postorius.
=== added file 'src/postorius/templates/postorius/lists/memberoptions.html'
--- src/postorius/templates/postorius/lists/memberoptions.html 1970-01-01 00:00:00 +0000
+++ src/postorius/templates/postorius/lists/memberoptions.html 2014-04-16 20:35:53 +0000
@@ -0,0 +1,77 @@
+{% extends postorius_base_template %}
+{% load url from future %}
+{% load i18n %}
+{% block main %}
+{% if not user.is_superuser or not user.is_list_owner %}
+ <div class="mm_subHeader" >
+ <h1>{% trans "No Preferences Available" %}</h1>
+ </div>
+ <p>{% trans 'You are not the owner for this list' %}</p>
+{% else %}
+ <form class="well" action="" method="post" >
+ {% csrf_token %}
+ <table class="table table-bordered table-striped" border="2">
+ <thead>
+ <tr>
+ <th>{% trans 'Preference' %}</th>
+ <th>{% trans 'Setting' %} </th>
+ </tr>
+ </thead >
+ <tr>
+ <td>
+ <p>{% trans 'Mail Delivery:' %} </p>
+ </p>
+ [<span class="more_info"><a href="#" target="_blank">More info</a><span>{{ settingsform.delivery_status.help_text }}
+ </span></span>] </p>
+ </td>
+ <td> {{settingsform.delivery_status }} </td>
+ </tr>
+ <tr>
+ <td>
+ <p>{% trans 'Mode of Delivery:' %}</p>
+ <p>
+ [<span class="more_info"><a href="#" target="_blank">More info</a><span>{{ settingsform.delivery_mode.help_text }}
+ </span></span>] </p>
+ </td>
+ <td> {{settingsform.delivery_mode }} </td>
+ </tr>
+ <tr>
+ <td>
+ <p>{% trans 'Receive own posts to the list?' %}</p>
+ <p>
+ [<span class="more_info"><a href="#" target="_blank">More info</a><span>{{ settingsform.receive_own_postings.help_text }}
+ </span></span>] </p>
+ </td>
+ <td> {{settingsform.receive_own_postings }} </td>
+ </tr>
+ <tr>
+ <td>
+ <p>{% trans 'Receive acknowledgement mails?' %}</p>
+ </p>
+ [<span class="more_info"><a href="#" target="_blank">More info</a><span>{{ settingsform.acknowledge_posts.help_text }}
+ </span></span>] </p>
+ </td>
+ <td> {{settingsform.acknowledge_posts }} </td>
+ </tr>
+ <tr>
+ <td>
+ <p>{% trans 'Conceal address from the subscriber list?' %}</p>
+ </p>
+ [<span class="more_info"><a href="#" target="_blank">More info</a><span>{{ settingsform.hide_address.help_text }}
+ </span></span>] </p>
+ </td>
+ <td> {{settingsform.hide_address }} </td>
+ </tr>
+ <tr>
+ <td>
+ <p>{% trans 'Avoid duplicate copies of messages? ' %}</p>
+ </p> [<span class="more_info"><a href="#" target="_blank">More info</a><span>{{ settingsform.receive_list_copy.help_text }}
+ </span></span>] </p>
+ </td>
+ <td> {{settingsform.receive_list_copy }} </td>
+ </tr>
+ </table>
+ <center><button class="btn btn-success" type="submit">{% trans "Save" %}</button></center>
+ </form>
+{% endif %}
+{% endblock main %}
=== modified file 'src/postorius/templates/postorius/lists/members.html'
--- src/postorius/templates/postorius/lists/members.html 2014-04-14 22:08:30 +0000
+++ src/postorius/templates/postorius/lists/members.html 2014-04-16 20:35:53 +0000
@@ -73,7 +73,8 @@
<tbody>
{% for member in list.member_page %}
<tr>
- <td>{{ member.address }}</td>
+ <td> <a href="{% url 'list_member_options' list.fqdn_listname member.address %}">
+ {{ member.address }}</a></td>
<td>{% trans member.role %}</td>
<td>
<a href="{% url 'list_unsubscribe' list.fqdn_listname member.address %}" class="btn btn-mini btn-danger">{% trans 'Unsubscribe' %}</a>
=== 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<email>[^/]+)/$',
+ 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.
_______________________________________________
Mailman-coders mailing list
[email protected]
https://mail.python.org/mailman/listinfo/mailman-coders