Initial updates to add document metadata editing

This commit is contained in:
Roberto Rosario
2011-02-09 16:43:40 -04:00
parent f3f763d762
commit 9d046a96af
4 changed files with 50 additions and 3 deletions

View File

@@ -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')

View File

@@ -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'),

View File

@@ -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'),

View File

@@ -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)