Added views to add, edit and delete document type filenames
This commit is contained in:
@@ -10,7 +10,7 @@ from tags.widgets import get_tags_inline_widget_simple
|
||||
from history.api import register_history_type
|
||||
|
||||
from documents.models import Document, DocumentPage, \
|
||||
DocumentPageTransformation, DocumentType
|
||||
DocumentPageTransformation, DocumentType, DocumentTypeFilename
|
||||
from documents.staging import StagingFile
|
||||
from documents.conf.settings import USE_STAGING_DIRECTORY
|
||||
from documents.conf.settings import PER_USER_STAGING_DIRECTORY
|
||||
@@ -94,15 +94,26 @@ staging_file_delete = {'text': _(u'delete'), 'view': 'staging_file_delete', 'arg
|
||||
|
||||
# Document type related links
|
||||
document_type_list = {'text': _(u'document type list'), 'view': 'document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_type_document_list = {'text': _(u'document list for type'), 'view': 'document_type_document_list', 'args': 'object.id', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_type_document_list = {'text': _(u'list of documents of this type'), 'view': 'document_type_document_list', 'args': 'object.id', 'famfam': 'page_go', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_type_edit = {'text': _(u'edit'), 'view': 'document_type_edit', 'args': 'object.id', 'famfam': 'layout_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
|
||||
document_type_delete = {'text': _(u'delete'), 'view': 'document_type_delete', 'args': 'object.id', 'famfam': 'layout_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_DELETE]}
|
||||
document_type_create = {'text': _(u'Create document type'), 'view': 'document_type_create', 'famfam': 'layout_add', 'permissions': [PERMISSION_DOCUMENT_TYPE_CREATE]}
|
||||
document_type_create = {'text': _(u'create document type'), 'view': 'document_type_create', 'famfam': 'layout_add', 'permissions': [PERMISSION_DOCUMENT_TYPE_CREATE]}
|
||||
|
||||
# Register links
|
||||
register_links(DocumentType, [document_type_document_list, document_type_edit, document_type_delete])
|
||||
register_links(['document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete'], [document_type_list, document_type_create], menu_name='sidebar')
|
||||
document_type_filename_list = {'text': _(u'document type filenames'), 'view': 'document_type_filename_list', 'args': 'object.id', 'famfam': 'database', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_type_filename_create = {'text': _(u'add filename to document type'), 'view': 'document_type_filename_create', 'args': 'document_type.id', 'famfam': 'database_add', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
|
||||
document_type_filename_edit = {'text': _(u'edit'), 'view': 'document_type_filename_edit', 'args': 'object.id', 'famfam': 'database_edit', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
|
||||
document_type_filename_delete = {'text': _(u'delete'), 'view': 'document_type_filename_delete', 'args': 'object.id', 'famfam': 'database_delete', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
|
||||
document_type_filename_return_to_document_type = {'text': _(u'return to document type filenames'), 'view': 'document_type_filename_list', 'args': 'object.document_type.id', 'famfam': 'database', 'permissions': [PERMISSION_DOCUMENT_TYPE_EDIT]}
|
||||
|
||||
# Register document type links
|
||||
register_links(DocumentType, [document_type_document_list, document_type_filename_list, document_type_edit, document_type_delete])
|
||||
register_links(DocumentTypeFilename, [document_type_filename_edit, document_type_filename_delete])
|
||||
|
||||
register_links(['document_type_filename_delete', 'document_type_create', 'document_type_filename_create', 'document_type_filename_edit', 'document_type_filename_list', 'document_type_list', 'document_type_document_list', 'document_type_edit', 'document_type_delete'], [document_type_list, document_type_create], menu_name='sidebar')
|
||||
register_links(['document_type_filename_create', 'document_type_filename_list', 'document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_create], menu_name='sidebar')
|
||||
register_links(['document_type_filename_edit', 'document_type_filename_delete'], [document_type_filename_return_to_document_type], menu_name='sidebar')
|
||||
|
||||
# Register document links
|
||||
register_links(Document, [document_view_simple, document_view_advanced, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_history_view])
|
||||
register_links(Document, [document_create_siblings], menu_name='sidebar')
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from common.conf.settings import DEFAULT_PAPER_SIZE
|
||||
from common.conf.settings import DEFAULT_PAGE_ORIENTATION
|
||||
|
||||
from documents.models import Document, DocumentType, \
|
||||
DocumentPage, DocumentPageTransformation
|
||||
DocumentPage, DocumentPageTransformation, DocumentTypeFilename
|
||||
|
||||
|
||||
# Document page forms
|
||||
@@ -279,3 +279,21 @@ class DocumentTypeForm(forms.ModelForm):
|
||||
"""
|
||||
class Meta:
|
||||
model = DocumentType
|
||||
|
||||
|
||||
class DocumentTypeFilenameForm(forms.ModelForm):
|
||||
"""
|
||||
Model class form to edit a document type filename
|
||||
"""
|
||||
class Meta:
|
||||
model = DocumentTypeFilename
|
||||
fields = ('filename', 'enabled')
|
||||
|
||||
|
||||
class DocumentTypeFilenameForm_create(forms.ModelForm):
|
||||
"""
|
||||
Model class form to create a new document type filename
|
||||
"""
|
||||
class Meta:
|
||||
model = DocumentTypeFilename
|
||||
fields = ('filename',)
|
||||
|
||||
@@ -70,4 +70,10 @@ urlpatterns = patterns('documents.views',
|
||||
url(r'^type/(?P<document_type_id>\d+)/list/documents/$', 'document_type_document_list', (), 'document_type_document_list'),
|
||||
url(r'^type/(?P<document_type_id>\d+)/edit/$', 'document_type_edit', (), 'document_type_edit'),
|
||||
url(r'^type/(?P<document_type_id>\d+)/delete/$', 'document_type_delete', (), 'document_type_delete'),
|
||||
|
||||
url(r'^type/(?P<document_type_id>\d+)/filename/list/$', 'document_type_filename_list', (), 'document_type_filename_list'),
|
||||
url(r'^type/filename/(?P<document_type_filename_id>\d+)/edit/$', 'document_type_filename_edit', (), 'document_type_filename_edit'),
|
||||
url(r'^type/filename/(?P<document_type_filename_id>\d+)/delete/$', 'document_type_filename_delete', (), 'document_type_filename_delete'),
|
||||
url(r'^type/(?P<document_type_id>\d+)/filename/create/$', 'document_type_filename_create', (), 'document_type_filename_create'),
|
||||
|
||||
)
|
||||
|
||||
@@ -17,7 +17,8 @@ from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
from django.contrib.comments.models import Comment
|
||||
|
||||
import sendfile
|
||||
from common.utils import pretty_size, parse_range, urlquote, return_diff
|
||||
from common.utils import pretty_size, parse_range, urlquote, \
|
||||
return_diff, two_state_template
|
||||
from common.literals import PAGE_SIZE_DIMENSIONS, \
|
||||
PAGE_ORIENTATION_PORTRAIT, PAGE_ORIENTATION_LANDSCAPE
|
||||
from common.conf.settings import DEFAULT_PAPER_SIZE
|
||||
@@ -67,10 +68,11 @@ from documents.forms import DocumentTypeSelectForm, \
|
||||
StagingDocumentForm, DocumentPreviewForm, \
|
||||
DocumentPageForm, DocumentPageTransformationForm, \
|
||||
DocumentContentForm, DocumentPageForm_edit, \
|
||||
DocumentPageForm_text, PrintForm, DocumentTypeForm
|
||||
DocumentPageForm_text, PrintForm, DocumentTypeForm, \
|
||||
DocumentTypeFilenameForm, DocumentTypeFilenameForm_create
|
||||
from documents.wizards import DocumentCreateWizard
|
||||
from documents.models import Document, DocumentType, DocumentPage, \
|
||||
DocumentPageTransformation, RecentDocument
|
||||
DocumentPageTransformation, RecentDocument, DocumentTypeFilename
|
||||
from documents.staging import create_staging_file_class
|
||||
from documents.literals import PICTURE_ERROR_SMALL, PICTURE_ERROR_MEDIUM, \
|
||||
PICTURE_UNKNOWN_SMALL, PICTURE_UNKNOWN_MEDIUM
|
||||
@@ -1082,6 +1084,7 @@ def document_type_list(request):
|
||||
context = {
|
||||
'object_list': DocumentType.objects.all(),
|
||||
'title': _(u'document types'),
|
||||
'hide_link': True,
|
||||
}
|
||||
|
||||
return render_to_response('generic_list.html', context,
|
||||
@@ -1099,6 +1102,7 @@ def document_type_document_list(request, document_type_id):
|
||||
title=_(u'documents of type "%s"') % document_type,
|
||||
extra_context={
|
||||
'object': document_type,
|
||||
'object_name': _(u'document type'),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1107,13 +1111,15 @@ def document_type_edit(request, document_type_id):
|
||||
check_permissions(request.user, [PERMISSION_DOCUMENT_TYPE_EDIT])
|
||||
document_type = get_object_or_404(DocumentType, pk=document_type_id)
|
||||
|
||||
next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('document_type_list'))))
|
||||
|
||||
if request.method == 'POST':
|
||||
form = DocumentTypeForm(instance=document_type, data=request.POST)
|
||||
if form.is_valid():
|
||||
try:
|
||||
form.save()
|
||||
messages.success(request, _(u'Document type edited successfully'))
|
||||
return HttpResponseRedirect(reverse('document_type_list'))
|
||||
return HttpResponseRedirect(next)
|
||||
except Exception, e:
|
||||
messages.error(request, _(u'Error editing document type; %s') % e)
|
||||
else:
|
||||
@@ -1124,6 +1130,7 @@ def document_type_edit(request, document_type_id):
|
||||
'form': form,
|
||||
'object': document_type,
|
||||
'object_name': _(u'document type'),
|
||||
'next': next
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
@@ -1149,12 +1156,12 @@ def document_type_delete(request, document_type_id):
|
||||
return HttpResponseRedirect(next)
|
||||
|
||||
context = {
|
||||
'object_name': _(u'document tyep'),
|
||||
'object_name': _(u'document type'),
|
||||
'delete_view': True,
|
||||
'previous': previous,
|
||||
'next': next,
|
||||
'object': document_type,
|
||||
'title': _(u'Are you sure you with to delete the document type: %s?') % document_type,
|
||||
'title': _(u'Are you sure you wish to delete the document type: %s?') % document_type,
|
||||
'message': _(u'The document type of all documents using this document type will be set to none.'),
|
||||
'form_icon': u'layout_delete.png',
|
||||
}
|
||||
@@ -1184,3 +1191,127 @@ def document_type_create(request):
|
||||
'form': form,
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_list(request, document_type_id):
|
||||
check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW])
|
||||
document_type = get_object_or_404(DocumentType, pk=document_type_id)
|
||||
|
||||
context = {
|
||||
'object_list': document_type.documenttypefilename_set.all(),
|
||||
'title': _(u'filenames for document type: %s') % document_type,
|
||||
'object': document_type,
|
||||
'object_name': _(u'document type'),
|
||||
'document_type': document_type,
|
||||
'hide_link': True,
|
||||
'extra_columns': [
|
||||
{
|
||||
'name': _(u'enabled'),
|
||||
'attribute': lambda x: two_state_template(x.enabled),
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
return render_to_response('generic_list.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_edit(request, document_type_filename_id):
|
||||
check_permissions(request.user, [PERMISSION_DOCUMENT_TYPE_EDIT])
|
||||
document_type_filename = get_object_or_404(DocumentTypeFilename, pk=document_type_filename_id)
|
||||
|
||||
next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('document_type_filename_list', args=[document_type_filename.document_type_id]))))
|
||||
|
||||
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, _(u'Document type filename edited successfully'))
|
||||
return HttpResponseRedirect(next)
|
||||
except Exception, e:
|
||||
messages.error(request, _(u'Error editing document type filename; %s') % e)
|
||||
else:
|
||||
form = DocumentTypeFilenameForm(instance=document_type_filename)
|
||||
|
||||
return render_to_response('generic_form.html', {
|
||||
'title': _(u'edit filename "%(filename)s" from document type "%(document_type)s"') % {
|
||||
'document_type': document_type_filename.document_type, 'filename': document_type_filename
|
||||
},
|
||||
'form': form,
|
||||
'object': document_type_filename,
|
||||
'object_name': _(u'document type filename'),
|
||||
'next': next,
|
||||
'document_type': document_type_filename.document_type,
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_delete(request, document_type_filename_id):
|
||||
check_permissions(request.user, [PERMISSION_DOCUMENT_TYPE_EDIT])
|
||||
document_type_filename = get_object_or_404(DocumentTypeFilename, pk=document_type_filename_id)
|
||||
|
||||
post_action_redirect = reverse('document_type_filename_list', args=[document_type_filename.document_type_id])
|
||||
|
||||
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
|
||||
next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/')))
|
||||
|
||||
if request.method == 'POST':
|
||||
try:
|
||||
document_type_filename.delete()
|
||||
messages.success(request, _(u'Document type filename: %s deleted successfully.') % document_type_filename)
|
||||
except Exception, e:
|
||||
messages.error(request, _(u'Document type filename: %(document_type_filename)s delete error: %(error)s') % {
|
||||
'document_type_filename': document_type_filename, 'error': e})
|
||||
|
||||
return HttpResponseRedirect(next)
|
||||
|
||||
context = {
|
||||
'object_name': _(u'document type filename'),
|
||||
'delete_view': True,
|
||||
'previous': previous,
|
||||
'next': next,
|
||||
'object': document_type_filename,
|
||||
'title': _(u'Are you sure you wish to delete the filename: %(filename)s, from document type "%(document_type)s"?') % {
|
||||
'document_type': document_type_filename.document_type, 'filename': document_type_filename
|
||||
},
|
||||
'form_icon': u'database_delete.png',
|
||||
'document_type': document_type_filename.document_type,
|
||||
}
|
||||
|
||||
return render_to_response('generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_type_filename_create(request, document_type_id):
|
||||
check_permissions(request.user, [PERMISSION_DOCUMENT_TYPE_EDIT])
|
||||
|
||||
document_type = get_object_or_404(DocumentType, pk=document_type_id)
|
||||
|
||||
if request.method == 'POST':
|
||||
form = DocumentTypeFilenameForm_create(request.POST)
|
||||
if form.is_valid():
|
||||
try:
|
||||
document_type_filename = DocumentTypeFilename(
|
||||
document_type=document_type,
|
||||
filename=form.cleaned_data['filename'],
|
||||
enabled=True
|
||||
)
|
||||
document_type_filename.save()
|
||||
messages.success(request, _(u'Document type filename created successfully'))
|
||||
return HttpResponseRedirect(reverse('document_type_filename_list', args=[document_type_id]))
|
||||
except Exception, e:
|
||||
messages.error(request, _(u'Error creating document type filename; %(error)s') % {
|
||||
'error': e})
|
||||
else:
|
||||
form = DocumentTypeFilenameForm_create()
|
||||
|
||||
return render_to_response('generic_form.html', {
|
||||
'title': _(u'create filename for document type: %s') % document_type,
|
||||
'form': form,
|
||||
'document_type': document_type,
|
||||
'object': document_type,
|
||||
},
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
BIN
site_media/images/icons/database_delete.png
Normal file
BIN
site_media/images/icons/database_delete.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
Reference in New Issue
Block a user