Update the private and public key list views to CBV.

This commit is contained in:
Roberto Rosario
2015-08-12 04:04:43 -04:00
parent 49ec79b36a
commit 29df91db84
2 changed files with 37 additions and 25 deletions

View File

@@ -1,13 +1,17 @@
from __future__ import unicode_literals
from django.conf.urls import patterns, url
from .views import PrivateKeyListView, PublicKeyListView
urlpatterns = patterns(
'django_gpg.views',
url(
r'^delete/(?P<fingerprint>.+)/(?P<key_type>\w+)/$', 'key_delete',
name='key_delete'
),
url(r'^list/private/$', 'key_list', {'secret': True}, 'key_private_list'),
url(r'^list/public/$', 'key_list', {'secret': False}, 'key_public_list'),
url(r'^list/private/$', PrivateKeyListView.as_view(), name='key_private_list'),
url(r'^list/public/$', PublicKeyListView.as_view(), name='key_public_list'),
url(r'^query/$', 'key_query', name='key_query'),
url(r'^receive/(?P<key_id>.+)/$', 'key_receive', name='key_receive'),
)

View File

@@ -11,6 +11,7 @@ from django.shortcuts import redirect, render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from common.generics import SingleObjectListView
from common.utils import encapsulate
from permissions import Permission
@@ -63,31 +64,38 @@ def key_receive(request, key_id):
}, context_instance=RequestContext(request))
def key_list(request, secret=True):
Permission.check_permissions(request.user, [permission_key_view])
class PublicKeyListView(SingleObjectListView):
view_permission = permission_key_view
if secret:
object_list = Key.get_all(gpg, secret=True)
title = _('Private keys')
else:
object_list = Key.get_all(gpg)
title = _('Public keys')
def get_extra_context(self):
return {
'extra_columns': [
{
'name': _('Key ID'),
'attribute': 'key_id',
},
{
'name': _('Owner'),
'attribute': encapsulate(lambda x: ', '.join(x.uids)),
},
],
'hide_object': True,
'title': self.get_title()
}
return render_to_response('appearance/generic_list.html', {
'object_list': object_list,
'title': title,
'hide_object': True,
'extra_columns': [
{
'name': _('Key ID'),
'attribute': 'key_id',
},
{
'name': _('Owner'),
'attribute': encapsulate(lambda x: ', '.join(x.uids)),
},
]
}, context_instance=RequestContext(request))
def get_queryset(self):
return Key.get_all(gpg)
def get_title(self):
return _('Public keys')
class PrivateKeyListView(PublicKeyListView):
def get_title(self):
return _('Private keys')
def get_queryset(self):
return Key.get_all(gpg, secret=True)
def key_delete(request, fingerprint, key_type):