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

Reply via email to