Fixes #1873. ValueError at /ipr/new-specific. Commit ready for merge
- Legacy-Id: 10624
This commit is contained in:
parent
ebfebde27a
commit
57f3acb69c
|
@ -41,6 +41,10 @@ class SearchableIprDisclosuresField(forms.CharField):
|
|||
value = ""
|
||||
if isinstance(value, basestring):
|
||||
pks = self.parse_select2_value(value)
|
||||
# if the user posted a non integer value we need to remove it
|
||||
for key in pks:
|
||||
if not key.isdigit():
|
||||
pks.remove(key)
|
||||
value = self.model.objects.filter(pk__in=pks)
|
||||
if isinstance(value, self.model):
|
||||
value = [value]
|
||||
|
@ -57,6 +61,9 @@ class SearchableIprDisclosuresField(forms.CharField):
|
|||
value = super(SearchableIprDisclosuresField, self).clean(value)
|
||||
pks = self.parse_select2_value(value)
|
||||
|
||||
if not all([ key.isdigit() for key in pks ]):
|
||||
raise forms.ValidationError(u'You must enter IPR ID(s) as integers')
|
||||
|
||||
objs = self.model.objects.filter(pk__in=pks)
|
||||
|
||||
found_pks = [str(o.pk) for o in objs]
|
||||
|
|
|
@ -134,7 +134,7 @@ class GenericDisclosureForm(forms.Form):
|
|||
raise forms.ValidationError('Submitter information must be provided in section VII')
|
||||
|
||||
return cleaned_data
|
||||
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
nargs = self.cleaned_data.copy()
|
||||
same_as_ii_above = nargs.get('same_as_ii_above')
|
||||
|
|
|
@ -404,6 +404,32 @@ class IprTests(TestCase):
|
|||
self.assertTrue('New IPR Submission' in outbox[0]['Subject'])
|
||||
self.assertTrue('ietf-ipr@' in outbox[0]['To'])
|
||||
|
||||
def test_update_bad_post(self):
|
||||
draft = make_test_data()
|
||||
original_ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
|
||||
url = urlreverse("ietf.ipr.views.new", kwargs={ "type": "specific" })
|
||||
|
||||
# successful post
|
||||
empty_outbox()
|
||||
r = self.client.post(url, {
|
||||
"updates": "this is supposed to be an integer",
|
||||
"holder_legal_name": "Test Legal",
|
||||
"holder_contact_name": "Test Holder",
|
||||
"holder_contact_email": "test@holder.com",
|
||||
"iprdocrel_set-TOTAL_FORMS": 1,
|
||||
"iprdocrel_set-INITIAL_FORMS": 0,
|
||||
"iprdocrel_set-0-document": "%s" % draft.docalias_set.first().pk,
|
||||
"iprdocrel_set-0-revisions": '00',
|
||||
"patent_info": "none",
|
||||
"has_patent_pending": False,
|
||||
"licensing": "royalty-free",
|
||||
"submitter_name": "Test Holder",
|
||||
"submitter_email": "test@holder.com",
|
||||
})
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertTrue(q("#id_updates").parents(".form-group").hasClass("has-error"))
|
||||
|
||||
def test_addcomment(self):
|
||||
make_test_data()
|
||||
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
|
||||
|
|
Loading…
Reference in a new issue