102
102
'''View the preferences for a single member of a mailing list'''
104
104
@method_decorator(list_owner_required)
105
def post(self, request, fqdn_listname, email):
105
def post(self, request, list_id, email):
107
107
client = utils.get_client()
108
mm_member = client.get_member(fqdn_listname, email)
109
mm_list = client.get_list(fqdn_listname)
108
mm_member = client.get_member(list_id, email)
109
mm_list = client.get_list(list_id)
110
110
preferences_form = UserPreferences(request.POST)
111
111
if preferences_form.is_valid():
112
112
preferences = mm_member.preferences
134
134
context_instance=RequestContext(request))
136
136
@method_decorator(list_owner_required)
137
def get(self, request, fqdn_listname, email):
137
def get(self, request, list_id, email):
139
139
client = utils.get_client()
140
mm_member = client.get_member(fqdn_listname, email)
141
mm_list = client.get_list(fqdn_listname)
140
mm_member = client.get_member(list_id, email)
141
mm_list = client.get_list(list_id)
142
142
settingsform = UserPreferences(initial=mm_member.preferences)
143
143
except MailmanApiError:
144
144
return utils.render_api_error(request)
370
370
form_subscribe = None
371
371
form_unsubscribe = None
372
if request.POST.get('fqdn_listname', ''):
373
fqdn_listname = request.POST.get('fqdn_listname', '')
372
if request.POST.get('list_id', ''):
373
list_id = request.POST.get('list_id', '')
374
374
# connect REST and catch issues getting the list
376
the_list = List.objects.get_or_404(fqdn_listname=fqdn_listname)
376
the_list = List.objects.get_or_404(fqdn_listname=list_id)
377
377
except AttributeError, e:
378
378
return render_to_response('postorius/errors/generic.html',
379
379
{'error': 'Mailman REST API not available.'
492
492
@list_owner_required
493
def accept_held_message(request, fqdn_listname, msg_id):
493
def accept_held_message(request, list_id, msg_id):
494
494
"""Accepts a held message.
497
the_list = List.objects.get_or_404(fqdn_listname=fqdn_listname)
497
the_list = List.objects.get_or_404(fqdn_listname=list_id)
498
498
the_list.accept_message(msg_id)
499
499
except MailmanApiError:
500
500
return utils.render_api_error(request)
501
501
except HTTPError, e:
502
502
messages.error(request, e.msg)
503
return redirect('list_held_messages', the_list.fqdn_listname)
503
return redirect('list_held_messages', the_list.list_id)
504
504
messages.success(request, 'The message has been accepted.')
505
return redirect('list_held_messages', the_list.fqdn_listname)
505
return redirect('list_held_messages', the_list.list_id)
508
508
@list_owner_required
509
def discard_held_message(request, fqdn_listname, msg_id):
509
def discard_held_message(request, list_id, msg_id):
510
510
"""Accepts a held message.
513
the_list = List.objects.get_or_404(fqdn_listname=fqdn_listname)
513
the_list = List.objects.get_or_404(fqdn_listname=list_id)
514
514
the_list.discard_message(msg_id)
515
515
except MailmanApiError:
516
516
return utils.render_api_error(request)
517
517
except HTTPError, e:
518
518
messages.error(request, e.msg)
519
return redirect('list_held_messages', the_list.fqdn_listname)
519
return redirect('list_held_messages', the_list.list_id)
520
520
messages.success(request, 'The message has been discarded.')
521
return redirect('list_held_messages', the_list.fqdn_listname)
521
return redirect('list_held_messages', the_list.list_id)
524
524
@list_owner_required
525
def defer_held_message(request, fqdn_listname, msg_id):
525
def defer_held_message(request, list_id, msg_id):
526
526
"""Accepts a held message.
529
the_list = List.objects.get_or_404(fqdn_listname=fqdn_listname)
529
the_list = List.objects.get_or_404(fqdn_listname=list_id)
530
530
the_list.defer_message(msg_id)
531
531
except MailmanApiError:
532
532
return utils.render_api_error(request)
533
533
except HTTPError, e:
534
534
messages.error(request, e.msg)
535
return redirect('list_held_messages', the_list.fqdn_listname)
535
return redirect('list_held_messages', the_list.list_id)
536
536
messages.success(request, 'The message has been defered.')
537
return redirect('list_held_messages', the_list.fqdn_listname)
537
return redirect('list_held_messages', the_list.list_id)
540
540
@list_owner_required
541
def reject_held_message(request, fqdn_listname, msg_id):
541
def reject_held_message(request, list_id, msg_id):
542
542
"""Accepts a held message.
545
the_list = List.objects.get_or_404(fqdn_listname=fqdn_listname)
545
the_list = List.objects.get_or_404(fqdn_listname=list_id)
546
546
the_list.reject_message(msg_id)
547
547
except MailmanApiError:
548
548
return utils.render_api_error(request)
549
549
except HTTPError, e:
550
550
messages.error(request, e.msg)
551
return redirect('list_held_messages', the_list.fqdn_listname)
551
return redirect('list_held_messages', the_list.list_id)
552
552
messages.success(request, 'The message has been rejected.')
553
return redirect('list_held_messages', the_list.fqdn_listname)
553
return redirect('list_held_messages', the_list.list_id)
556
556
@list_owner_required
557
def list_settings(request, fqdn_listname=None, visible_section=None,
557
def list_settings(request, list_id=None, visible_section=None,
558
558
visible_option=None,
559
559
template='postorius/lists/settings.html'):
651
651
except HTTPError as e:
652
652
messages.error(request, _('The {0} could not be removed:'
653
653
' {1}'.format(role, e.msg)))
654
return redirect("list_members", the_list.fqdn_listname)
654
return redirect("list_members", the_list.list_id)
655
655
messages.success(request,
656
656
_('The user {0} has been removed as {1}.'
657
657
.format(address, role)))
658
return redirect("list_members", the_list.fqdn_listname)
658
return redirect("list_members", the_list.list_id)
660
660
return render_to_response(template,
661
661
{'role': role, 'address': address,
662
'fqdn_listname': the_list.fqdn_listname},
662
'list_id': the_list.list_id},
663
663
context_instance=RequestContext(request))