Handle unicode url data from the metadata
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
@@ -7,6 +6,7 @@ from django.utils.http import urlencode
|
|||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.forms.formsets import formset_factory
|
from django.forms.formsets import formset_factory
|
||||||
|
from django.utils.http import urlquote_plus
|
||||||
|
|
||||||
from staging import StagingFile
|
from staging import StagingFile
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ class DocumentCreateWizard(BoundFormWizard):
|
|||||||
for id, metadata in enumerate(form.cleaned_data):
|
for id, metadata in enumerate(form.cleaned_data):
|
||||||
if metadata['value']:
|
if metadata['value']:
|
||||||
self.urldata.append(('metadata%s_id' % id, metadata['id']))
|
self.urldata.append(('metadata%s_id' % id, metadata['id']))
|
||||||
self.urldata.append(('metadata%s_value' % id,metadata['value']))
|
self.urldata.append(('metadata%s_value' % id, urlquote_plus(metadata['value']))
|
||||||
|
|
||||||
def get_template(self, step):
|
def get_template(self, step):
|
||||||
return 'generic_wizard.html'
|
return 'generic_wizard.html'
|
||||||
@@ -211,5 +211,5 @@ class DocumentCreateWizard(BoundFormWizard):
|
|||||||
url = reverse(view, args=[self.document_type.id])
|
url = reverse(view, args=[self.document_type.id])
|
||||||
return HttpResponseRedirect('%s?%s' % (url, urlencode(self.urldata)))
|
return HttpResponseRedirect('%s?%s' % (url, urlencode(self.urldata)))
|
||||||
|
|
||||||
|
urlquote_plus
|
||||||
MetadataFormSet = formset_factory(MetadataForm, extra=0)
|
MetadataFormSet = formset_factory(MetadataForm, extra=0)
|
||||||
|
|||||||
@@ -97,5 +97,5 @@ def save_metadata(metadata_dict, document):
|
|||||||
metadata_type=get_object_or_404(MetadataType, pk=metadata_dict['id']),
|
metadata_type=get_object_or_404(MetadataType, pk=metadata_dict['id']),
|
||||||
)
|
)
|
||||||
#Handle 'plus sign as space' in the url
|
#Handle 'plus sign as space' in the url
|
||||||
document_metadata.value=unquote_plus(metadata_dict['value'])
|
document_metadata.value=unquote_plus(metadata_dict['value']).decode('utf-8')
|
||||||
document_metadata.save()
|
document_metadata.save()
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from django.conf import settings
|
|||||||
from django.utils.http import urlencode
|
from django.utils.http import urlencode
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
|
from django.utils.http import urlquote_plus
|
||||||
|
|
||||||
from common.utils import pretty_size
|
from common.utils import pretty_size
|
||||||
from permissions.api import check_permissions, Unauthorized
|
from permissions.api import check_permissions, Unauthorized
|
||||||
@@ -96,7 +97,7 @@ def document_create_sibling(request, document_id, multiple=True):
|
|||||||
for id, metadata in enumerate(document.documentmetadata_set.all()):
|
for id, metadata in enumerate(document.documentmetadata_set.all()):
|
||||||
if hasattr(metadata, 'value'):
|
if hasattr(metadata, 'value'):
|
||||||
urldata.append(('metadata%s_id' % id, metadata.metadata_type.id))
|
urldata.append(('metadata%s_id' % id, metadata.metadata_type.id))
|
||||||
urldata.append(('metadata%s_value' % id,metadata.value))
|
urldata.append(('metadata%s_value' % id, urlquote_plus(metadata.value)))
|
||||||
|
|
||||||
if multiple:
|
if multiple:
|
||||||
view = 'upload_multiple_documents_with_type'
|
view = 'upload_multiple_documents_with_type'
|
||||||
|
|||||||
Reference in New Issue
Block a user