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_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_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 = {'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_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'}
|
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'}
|
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, [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')
|
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 ''
|
available_models_string = (_(u' Available models: %s') % ','.join([name for name, model in AVAILABLE_MODELS.items()])) if AVAILABLE_MODELS else ''
|
||||||
|
|
||||||
class MetadataType(models.Model):
|
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)
|
title = models.CharField(max_length=48, verbose_name=_(u'title'), blank=True, null=True)
|
||||||
default = models.CharField(max_length=128, blank=True, null=True,
|
default = models.CharField(max_length=128, blank=True, null=True,
|
||||||
verbose_name=_(u'default'),
|
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+)/$', 'document_view', (), 'document_view'),
|
||||||
url(r'^document/(?P<document_id>\d+)/delete/$', 'document_delete', (), 'document_delete'),
|
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/$', '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+)/preview/$', 'document_preview', (), 'document_preview'),
|
||||||
url(r'^document/(?P<document_id>\d+)/thumbnail/$', 'document_thumbnail', (), 'document_thumbnail'),
|
url(r'^document/(?P<document_id>\d+)/thumbnail/$', 'document_thumbnail', (), 'document_thumbnail'),
|
||||||
url(r'^document/(?P<document_id>\d+)/download/$', 'document_download', (), 'document_download'),
|
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 models import Document, DocumentMetadata, DocumentType, MetadataType
|
||||||
from forms import DocumentTypeSelectForm, DocumentCreateWizard, \
|
from forms import DocumentTypeSelectForm, DocumentCreateWizard, \
|
||||||
MetadataForm, DocumentForm, DocumentForm_edit, DocumentForm_view, \
|
MetadataForm, DocumentForm, DocumentForm_edit, DocumentForm_view, \
|
||||||
StagingDocumentForm
|
StagingDocumentForm, DocumentTypeMetadataType
|
||||||
|
|
||||||
from staging import StagingFile
|
from staging import StagingFile
|
||||||
|
|
||||||
@@ -296,6 +296,51 @@ def document_edit(request, document_id):
|
|||||||
}, context_instance=RequestContext(request))
|
}, 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):
|
def get_document_image(request, document_id, size=PREVIEW_SIZE):
|
||||||
document = get_object_or_404(Document, pk=document_id)
|
document = get_object_or_404(Document, pk=document_id)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user