Update document comment list view to CBV.

This commit is contained in:
Roberto Rosario
2015-08-12 04:11:39 -04:00
parent 29df91db84
commit 31f05ee3f3
2 changed files with 26 additions and 21 deletions

View File

@@ -2,6 +2,8 @@ from __future__ import unicode_literals
from django.conf.urls import patterns, url from django.conf.urls import patterns, url
from .views import DocumentCommentListView
urlpatterns = patterns( urlpatterns = patterns(
'document_comments.views', 'document_comments.views',
url( url(
@@ -17,7 +19,7 @@ urlpatterns = patterns(
name='comment_add' name='comment_add'
), ),
url( url(
r'^(?P<document_id>\d+)/comment/list/$', 'comments_for_document', r'^(?P<pk>\d+)/comment/list/$',
name='comments_for_document' DocumentCommentListView.as_view(), name='comments_for_document'
), ),
) )

View File

@@ -10,6 +10,7 @@ from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from acls.models import AccessControlList from acls.models import AccessControlList
from common.generics import SingleObjectListView
from documents.models import Document from documents.models import Document
from permissions import Permission from permissions import Permission
@@ -132,24 +133,26 @@ def comment_add(request, document_id):
}, context_instance=RequestContext(request)) }, context_instance=RequestContext(request))
def comments_for_document(request, document_id): class DocumentCommentListView(SingleObjectListView):
""" def get_document(self):
Show a list of all the comments related to the passed object return get_object_or_404(Document, pk=self.kwargs['pk'])
"""
document = get_object_or_404(Document, pk=document_id)
try: def get_queryset(self):
Permission.check_permissions(request.user, (permission_comment_view,)) try:
except PermissionDenied: Permission.check_permissions(
AccessControlList.objects.check_access( self.request.user, (permission_comment_view,)
permission_comment_view, request.user, document )
) except PermissionDenied:
AccessControlList.objects.check_access(
permission_comment_view, self.request.user, self.get_document()
)
return render_to_response('appearance/generic_list.html', { return self.get_document().comments.all()
'object': document,
'access_object': document, def get_extra_context(self):
'title': _('Comments for document: %s') % document, return {
'object_list': document.comments.all(), 'hide_link': True,
'hide_link': True, 'hide_object': True,
'hide_object': True, 'object': self.get_document(),
}, context_instance=RequestContext(request)) 'title': _('Comments for document: %s') % self.get_document(),
}