Add new version upload option to use new file filename as the document filename
This commit is contained in:
@@ -156,6 +156,13 @@ class DocumentForm(forms.ModelForm):
|
|||||||
# To allow merging with DocumentForm_edit
|
# To allow merging with DocumentForm_edit
|
||||||
self.fields['document_type'].widget = forms.HiddenInput()
|
self.fields['document_type'].widget = forms.HiddenInput()
|
||||||
|
|
||||||
|
if instance:
|
||||||
|
self.fields['use_file_name'] = forms.BooleanField(
|
||||||
|
label=_(u'Use the new version filename as the document filename'),
|
||||||
|
initial=False,
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
|
||||||
# Instance's document_type overrides the passed document_type
|
# Instance's document_type overrides the passed document_type
|
||||||
if instance:
|
if instance:
|
||||||
if hasattr(instance, 'document_type'):
|
if hasattr(instance, 'document_type'):
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class BaseModel(models.Model):
|
|||||||
def get_transformation_list(self):
|
def get_transformation_list(self):
|
||||||
return SourceTransformation.transformations.get_for_object_as_list(self)
|
return SourceTransformation.transformations.get_for_object_as_list(self)
|
||||||
|
|
||||||
def upload_file(self, file_object, filename=None, document_type=None, expand=False, metadata_dict_list=None, user=None, document=None, new_version_data=None):
|
def upload_file(self, file_object, filename=None, use_file_name=False, document_type=None, expand=False, metadata_dict_list=None, user=None, document=None, new_version_data=None):
|
||||||
if expand:
|
if expand:
|
||||||
try:
|
try:
|
||||||
cf = CompressedFile(file_object)
|
cf = CompressedFile(file_object)
|
||||||
@@ -63,11 +63,11 @@ class BaseModel(models.Model):
|
|||||||
except NotACompressedFile:
|
except NotACompressedFile:
|
||||||
self.upload_single_file(file_object, filename, document_type, metadata_dict_list, user)
|
self.upload_single_file(file_object, filename, document_type, metadata_dict_list, user)
|
||||||
else:
|
else:
|
||||||
self.upload_single_file(file_object, filename, document_type, metadata_dict_list, user, document, new_version_data)
|
self.upload_single_file(file_object, filename, use_file_name, document_type, metadata_dict_list, user, document, new_version_data)
|
||||||
|
|
||||||
file_object.close()
|
file_object.close()
|
||||||
|
|
||||||
def upload_single_file(self, file_object, filename=None, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None):
|
def upload_single_file(self, file_object, filename=None, use_file_name=False, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None):
|
||||||
if not document:
|
if not document:
|
||||||
document = Document()
|
document = Document()
|
||||||
if document_type:
|
if document_type:
|
||||||
@@ -83,6 +83,11 @@ class BaseModel(models.Model):
|
|||||||
create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user})
|
create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user})
|
||||||
else:
|
else:
|
||||||
create_history(HISTORY_DOCUMENT_CREATED, document)
|
create_history(HISTORY_DOCUMENT_CREATED, document)
|
||||||
|
else:
|
||||||
|
if use_file_name:
|
||||||
|
filename = None
|
||||||
|
else:
|
||||||
|
filename = filename if filename else document.latest_version.filename
|
||||||
|
|
||||||
if not new_version_data:
|
if not new_version_data:
|
||||||
new_version_data = {}
|
new_version_data = {}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ def upload_interactive(request, source_type=None, source_id=None, document_pk=No
|
|||||||
instance=document
|
instance=document
|
||||||
)
|
)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
#try:
|
try:
|
||||||
if document:
|
if document:
|
||||||
expand = False
|
expand = False
|
||||||
else:
|
else:
|
||||||
@@ -139,22 +139,24 @@ def upload_interactive(request, source_type=None, source_id=None, document_pk=No
|
|||||||
expand = False
|
expand = False
|
||||||
|
|
||||||
new_filename = get_form_filename(form)
|
new_filename = get_form_filename(form)
|
||||||
|
|
||||||
web_form.upload_file(request.FILES['file'],
|
web_form.upload_file(request.FILES['file'],
|
||||||
new_filename, document_type=document_type,
|
new_filename, use_file_name=form.cleaned_data.get('use_file_name', False),
|
||||||
|
document_type=document_type,
|
||||||
expand=expand,
|
expand=expand,
|
||||||
metadata_dict_list=decode_metadata_from_url(request.GET),
|
metadata_dict_list=decode_metadata_from_url(request.GET),
|
||||||
user=request.user,
|
user=request.user,
|
||||||
document=document,
|
document=document,
|
||||||
new_version_data=form.cleaned_data.get('new_version_data')
|
new_version_data=form.cleaned_data.get('new_version_data')
|
||||||
)
|
)
|
||||||
#except Exception, e:
|
|
||||||
# messages.error(request, _(u'Unhandled exception: %s') % e)
|
|
||||||
if document:
|
if document:
|
||||||
messages.success(request, _(u'Document version uploaded successfully.'))
|
messages.success(request, _(u'Document version uploaded successfully.'))
|
||||||
return HttpResponseRedirect(reverse('document_view_simple', args=[document.pk]))
|
return HttpResponseRedirect(reverse('document_view_simple', args=[document.pk]))
|
||||||
else:
|
else:
|
||||||
messages.success(request, _(u'Document uploaded successfully.'))
|
messages.success(request, _(u'Document uploaded successfully.'))
|
||||||
return HttpResponseRedirect(request.get_full_path())
|
return HttpResponseRedirect(request.get_full_path())
|
||||||
|
except Exception, e:
|
||||||
|
messages.error(request, _(u'Unhandled exception: %s') % e)
|
||||||
else:
|
else:
|
||||||
form = WebFormForm(
|
form = WebFormForm(
|
||||||
show_expand=(web_form.uncompress == SOURCE_UNCOMPRESS_CHOICE_ASK) and not document,
|
show_expand=(web_form.uncompress == SOURCE_UNCOMPRESS_CHOICE_ASK) and not document,
|
||||||
@@ -186,7 +188,7 @@ def upload_interactive(request, source_type=None, source_id=None, document_pk=No
|
|||||||
instance=document
|
instance=document
|
||||||
)
|
)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
#try:
|
try:
|
||||||
staging_file = StagingFile.get(form.cleaned_data['staging_file_id'])
|
staging_file = StagingFile.get(form.cleaned_data['staging_file_id'])
|
||||||
if document:
|
if document:
|
||||||
expand = False
|
expand = False
|
||||||
@@ -200,8 +202,10 @@ def upload_interactive(request, source_type=None, source_id=None, document_pk=No
|
|||||||
expand = False
|
expand = False
|
||||||
|
|
||||||
new_filename = get_form_filename(form)
|
new_filename = get_form_filename(form)
|
||||||
|
|
||||||
staging_folder.upload_file(staging_file.upload(),
|
staging_folder.upload_file(staging_file.upload(),
|
||||||
new_filename, document_type=document_type,
|
new_filename, use_file_name=form.cleaned_data.get('use_file_name', False),
|
||||||
|
document_type=document_type,
|
||||||
expand=expand,
|
expand=expand,
|
||||||
metadata_dict_list=decode_metadata_from_url(request.GET),
|
metadata_dict_list=decode_metadata_from_url(request.GET),
|
||||||
user=request.user,
|
user=request.user,
|
||||||
@@ -217,12 +221,12 @@ def upload_interactive(request, source_type=None, source_id=None, document_pk=No
|
|||||||
transformations, errors = staging_folder.get_transformation_list()
|
transformations, errors = staging_folder.get_transformation_list()
|
||||||
staging_file.delete(preview_size=staging_folder.get_preview_size(), transformations=transformations)
|
staging_file.delete(preview_size=staging_folder.get_preview_size(), transformations=transformations)
|
||||||
messages.success(request, _(u'Staging file: %s, deleted successfully.') % staging_file.filename)
|
messages.success(request, _(u'Staging file: %s, deleted successfully.') % staging_file.filename)
|
||||||
#except Exception, e:
|
|
||||||
# messages.error(request, _(u'Unhandled exception: %s') % e)
|
|
||||||
if document:
|
if document:
|
||||||
return HttpResponseRedirect(reverse('document_view_simple', args=[document.pk]))
|
return HttpResponseRedirect(reverse('document_view_simple', args=[document.pk]))
|
||||||
else:
|
else:
|
||||||
return HttpResponseRedirect(request.get_full_path())
|
return HttpResponseRedirect(request.get_full_path())
|
||||||
|
except Exception, e:
|
||||||
|
messages.error(request, _(u'Unhandled exception: %s') % e)
|
||||||
else:
|
else:
|
||||||
form = StagingDocumentForm(cls=StagingFile,
|
form = StagingDocumentForm(cls=StagingFile,
|
||||||
document_type=document_type,
|
document_type=document_type,
|
||||||
|
|||||||
Reference in New Issue
Block a user