diff options
Diffstat (limited to 'src/django_pgpmailman/views/list.py')
| -rw-r--r-- | src/django_pgpmailman/views/list.py | 62 |
1 files changed, 49 insertions, 13 deletions
diff --git a/src/django_pgpmailman/views/list.py b/src/django_pgpmailman/views/list.py index 680a1e7..e5a7e8a 100644 --- a/src/django_pgpmailman/views/list.py +++ b/src/django_pgpmailman/views/list.py @@ -24,9 +24,11 @@ from django.http import HttpResponse from django.shortcuts import render from django.utils.decorators import method_decorator from django.views.generic import FormView +from six.moves.urllib.error import HTTPError from django_pgpmailman.decorators import list_view -from django_pgpmailman.forms import ListSignatureSettingsForm +from django_pgpmailman.forms import (ListSignatureSettingsForm, + ListEncryptionSettingsForm) from django_pgpmailman.plugin import get_pgp_plugin @@ -42,29 +44,63 @@ def pgp_list_summary(request, pgp_list): {'pgp_list': pgp_list}) -@method_decorator(login_required, name='dispatch') -@method_decorator(list_view, name='dispatch') -class ListSignatureSettingsView(FormView): +# TODO: proper list owner auth +class ListSettings(FormView): + properties = None + + def get_initial(self): + result = {} + for key in self.properties: + result[key] = getattr(self.pgp_list, key, None) + return result + + def get_context_data(self, **kwargs): + data = super(ListSettings, self).get_context_data( + **kwargs) + data['pgp_list'] = self.pgp_list + data['mlist'] = self.pgp_list.mlist + return data + + @method_decorator(login_required) + def dispatch(self, request, *args, **kwargs): + self.pgp_list = get_pgp_plugin().get_list(kwargs['list_id']) + return super(ListSettings, self).dispatch(request, *args, **kwargs) + + +class ListSignatureSettingsView(ListSettings): form_class = ListSignatureSettingsForm template_name = 'django_pgpmailman/list/signature_settings.html' + properties = ('sign_outgoing', 'strip_original_sig', 'unsigned_msg_action', + 'inline_pgp_action', 'expired_sig_action', + 'revoked_sig_action', 'invalid_sig_action', + 'duplicate_sig_action') def form_valid(self, form): - pass + try: + pass + except HTTPError as e: + pass -# TODO: proper list owner auth -@login_required -@list_view -def pgp_list_key_management(request, pgp_list): - return render(request, 'django_pgpmailman/list/key_management.html', - {'pgp_list': pgp_list}) + +class ListEncryptionSettingsView(ListSettings): + form_class = ListEncryptionSettingsForm + template_name = 'django_pgpmailman/list/encryption_settings.html' + properties = ('nonencrypted_msg_action', 'encrypt_outgoing') + + def form_valid(self, form): + try: + + pass + except HTTPError as e: + pass # TODO: proper list owner auth @login_required @list_view -def pgp_list_encryption_settings(request, pgp_list): - return render(request, 'django_pgpmailman/list/encryption_settings.html', +def pgp_list_key_management(request, pgp_list): + return render(request, 'django_pgpmailman/list/key_management.html', {'pgp_list': pgp_list}) |
