Update Document type filenames list and edit views to CBV.

This commit is contained in:
Roberto Rosario
2015-08-13 20:47:34 -04:00
parent 97bba65668
commit 5ae033eb77
2 changed files with 44 additions and 50 deletions

View File

@@ -16,7 +16,8 @@ from .views import (
DeletedDocumentDeleteView, DeletedDocumentListView, DocumentListView,
DocumentManyDeleteView, DocumentManyRestoreView, DocumentPageListView,
DocumentRestoreView, DocumentTypeCreateView, DocumentTypeDeleteView,
DocumentTypeDocumentListView, DocumentTypeListView, DocumentTypeEditView,
DocumentTypeDocumentListView, DocumentTypeFilenameEditView,
DocumentTypeFilenameListView, DocumentTypeListView, DocumentTypeEditView,
EmptyTrashCanView, RecentDocumentListView
)
@@ -212,12 +213,12 @@ urlpatterns = patterns(
name='document_type_document_list'
),
url(
r'^type/(?P<document_type_id>\d+)/filename/list/$',
'document_type_filename_list', name='document_type_filename_list'
r'^type/(?P<pk>\d+)/filename/list/$',
DocumentTypeFilenameListView.as_view(), name='document_type_filename_list'
),
url(
r'^type/filename/(?P<document_type_filename_id>\d+)/edit/$',
'document_type_filename_edit', name='document_type_filename_edit'
r'^type/filename/(?P<pk>\d+)/edit/$',
DocumentTypeFilenameEditView.as_view(), name='document_type_filename_edit'
),
url(
r'^type/filename/(?P<document_type_filename_id>\d+)/delete/$',

View File

@@ -991,58 +991,51 @@ class DocumentTypeCreateView(SingleObjectCreateView):
}
def document_type_filename_list(request, document_type_id):
Permission.check_permissions(request.user, (permission_document_type_view,))
document_type = get_object_or_404(DocumentType, pk=document_type_id)
class DocumentTypeFilenameListView(SingleObjectListView):
model = DocumentType
view_permission = permission_document_type_view
context = {
'document_type': document_type,
'extra_columns': [
{
'name': _('Enabled'),
'attribute': encapsulate(lambda x: two_state_template(x.enabled)),
}
],
'hide_link': True,
'navigation_object_list': ('document_type',),
'object_list': document_type.filenames.all(),
'title': _('Filenames for document type: %s') % document_type,
}
def get_document_type(self):
return get_object_or_404(DocumentType, pk=self.kwargs['pk'])
return render_to_response('appearance/generic_list.html', context,
context_instance=RequestContext(request))
def get_extra_context(self):
return {
'document_type': self.get_document_type(),
'extra_columns': (
{
'name': _('Enabled'),
'attribute': encapsulate(lambda filename: two_state_template(filename.enabled)),
},
),
'hide_link': True,
'navigation_object_list': ('document_type',),
'object_list': self.get_document_type().filenames.all(),
'title': _('Filenames for document type: %s') % self.get_document_type(),
}
def document_type_filename_edit(request, document_type_filename_id):
Permission.check_permissions(request.user, (permission_document_type_edit,))
document_type_filename = get_object_or_404(DocumentTypeFilename, pk=document_type_filename_id)
class DocumentTypeFilenameEditView(SingleObjectEditView):
fields = ('enabled', 'filename',)
model = DocumentTypeFilename
view_permission = permission_document_type_edit
next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('documents:document_type_filename_list', args=[document_type_filename.document_type_id]))))
def get_post_action_redirect(self):
return reverse(
'documents:document_type_filename_list',
args=(self.get_object().document_type.pk,)
)
if request.method == 'POST':
form = DocumentTypeFilenameForm(instance=document_type_filename, data=request.POST)
if form.is_valid():
try:
document_type_filename.filename = form.cleaned_data['filename']
document_type_filename.enabled = form.cleaned_data['enabled']
document_type_filename.save()
messages.success(request, _('Document type filename edited successfully'))
return HttpResponseRedirect(next)
except Exception as exception:
messages.error(request, _('Error editing document type filename; %s') % exception)
else:
form = DocumentTypeFilenameForm(instance=document_type_filename)
def get_extra_context(self):
document_type_filename = self.get_object()
return render_to_response('appearance/generic_form.html', {
'document_type': document_type_filename.document_type,
'filename': document_type_filename,
'form': form,
'navigation_object_list': ('document_type', 'filename',),
'next': next,
'title': _('Edit filename "%(filename)s" from document type "%(document_type)s"') % {
'document_type': document_type_filename.document_type, 'filename': document_type_filename
},
}, context_instance=RequestContext(request))
return {
'document_type': document_type_filename.document_type,
'filename': document_type_filename,
'navigation_object_list': ('document_type', 'filename',),
'title': _('Edit filename "%(filename)s" from document type "%(document_type)s"') % {
'document_type': document_type_filename.document_type, 'filename': document_type_filename
},
}
def document_type_filename_delete(request, document_type_filename_id):