Initial updates to add document metadata editing
This commit is contained in:
@@ -17,12 +17,13 @@ document_create_sibling = {'text':_('upload using same metadata'), 'view':'docum
|
||||
document_view = {'text':_('details'), 'view':'document_view', 'args':'object.id', 'famfam':'page'}
|
||||
document_delete = {'text':_('delete'), 'view':'document_delete', 'args':'object.id', 'famfam':'page_delete'}
|
||||
document_edit = {'text':_('edit'), 'view':'document_edit', 'args':'object.id', 'famfam':'page_edit'}
|
||||
document_edit_metadata = {'text':_('edit metadata'), 'view':'document_edit_metadata', 'args':'object.id', 'famfam':'page_edit'}
|
||||
document_preview = {'text':_('preview'), 'class':'fancybox', 'view':'document_preview', 'args':'object.id', 'famfam':'magnifier'}
|
||||
document_download = {'text':_('download'), 'view':'document_download', 'args':'object.id', 'famfam':'page_save'}
|
||||
|
||||
staging_file_preview = {'text':_('preview'), 'class':'fancybox', 'view':'staging_file_preview', 'args':'object.id', 'famfam':'drive_magnify'}
|
||||
|
||||
register_links(Document, [document_edit, document_delete, document_preview, document_download])
|
||||
register_links(Document, [document_edit, document_edit_metadata, document_delete, document_preview, document_download])
|
||||
register_links(Document, [document_list, document_create, document_create_multiple, document_create_sibling, document_view], menu_name='sidebar')
|
||||
register_links(['document_list', 'document_create', 'document_create_multiple', 'upload_document_with_type', 'upload_multiple_documents_with_type'], [document_list, document_create, document_create_multiple], menu_name='sidebar')
|
||||
|
||||
|
||||
@@ -209,7 +209,7 @@ available_functions_string = (_(u' Available functions: %s') % ','.join(['%s()'
|
||||
available_models_string = (_(u' Available models: %s') % ','.join([name for name, model in AVAILABLE_MODELS.items()])) if AVAILABLE_MODELS else ''
|
||||
|
||||
class MetadataType(models.Model):
|
||||
name = models.CharField(max_length=48, verbose_name=_(u'name'))
|
||||
name = models.CharField(max_length=48, verbose_name=_(u'name'), help_text=_(u'Do not use python reserved words.'))
|
||||
title = models.CharField(max_length=48, verbose_name=_(u'title'), blank=True, null=True)
|
||||
default = models.CharField(max_length=128, blank=True, null=True,
|
||||
verbose_name=_(u'default'),
|
||||
|
||||
@@ -12,6 +12,7 @@ urlpatterns = patterns('documents.views',
|
||||
url(r'^document/(?P<document_id>\d+)/$', 'document_view', (), 'document_view'),
|
||||
url(r'^document/(?P<document_id>\d+)/delete/$', 'document_delete', (), 'document_delete'),
|
||||
url(r'^document/(?P<document_id>\d+)/edit/$', 'document_edit', (), 'document_edit'),
|
||||
url(r'^document/(?P<document_id>\d+)/edit/metadata/$', 'document_edit_metadata', (), 'document_edit_metadata'),
|
||||
url(r'^document/(?P<document_id>\d+)/preview/$', 'document_preview', (), 'document_preview'),
|
||||
url(r'^document/(?P<document_id>\d+)/thumbnail/$', 'document_thumbnail', (), 'document_thumbnail'),
|
||||
url(r'^document/(?P<document_id>\d+)/download/$', 'document_download', (), 'document_download'),
|
||||
|
||||
@@ -23,7 +23,7 @@ from utils import from_descriptor_to_tempfile
|
||||
from models import Document, DocumentMetadata, DocumentType, MetadataType
|
||||
from forms import DocumentTypeSelectForm, DocumentCreateWizard, \
|
||||
MetadataForm, DocumentForm, DocumentForm_edit, DocumentForm_view, \
|
||||
StagingDocumentForm
|
||||
StagingDocumentForm, DocumentTypeMetadataType
|
||||
|
||||
from staging import StagingFile
|
||||
|
||||
@@ -296,6 +296,51 @@ def document_edit(request, document_id):
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_edit_metadata(request, document_id):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
MetadataFormSet = formset_factory(MetadataForm, extra=0)
|
||||
|
||||
initial=[]
|
||||
for item in DocumentTypeMetadataType.objects.filter(document_type=document.document_type):
|
||||
initial.append({
|
||||
'metadata_type':item.metadata_type,
|
||||
'document_type':document.document_type,
|
||||
'metadata_options':item,
|
||||
})
|
||||
formset = MetadataFormSet(initial=initial)
|
||||
if request.method == 'POST':
|
||||
formset = MetadataFormSet(request.POST)
|
||||
if formset.is_valid():
|
||||
for item in formset.cleaned_data:
|
||||
pass
|
||||
#print item
|
||||
#_save_metadata(request.GET, document)
|
||||
try:
|
||||
document.delete_fs_links()
|
||||
except Exception, e:
|
||||
messages.error(request, e)
|
||||
return HttpResponseRedirect(reverse('document_list'))
|
||||
|
||||
messages.success(request, _(u'Document metadata edited successfully.'))
|
||||
|
||||
try:
|
||||
document.create_fs_links()
|
||||
messages.success(request, _(u'Document filesystem links updated successfully.'))
|
||||
except Exception, e:
|
||||
messages.error(request, e)
|
||||
return HttpResponseRedirect(reverse('document_list'))
|
||||
|
||||
return HttpResponseRedirect(reverse('document_list'))
|
||||
|
||||
|
||||
return render_to_response('generic_form.html', {
|
||||
'form_display_mode_table':True,
|
||||
'form':formset,
|
||||
'object':document,
|
||||
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def get_document_image(request, document_id, size=PREVIEW_SIZE):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user