Handle unicode url data from the metadata

This commit is contained in:
Roberto Rosario
2011-02-14 13:41:15 -04:00
parent b2565b8223
commit e7600fa876
3 changed files with 8 additions and 7 deletions

View File

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

View File

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

View File

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