Because bundle names are used in URLs, we don't want slashes in them.
Include a SQL migration script.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
password = forms.CharField(widget = forms.PasswordInput)
class BundleForm(forms.ModelForm):
password = forms.CharField(widget = forms.PasswordInput)
class BundleForm(forms.ModelForm):
+ name = forms.RegexField(regex = r'^[^/]+$', max_length=50, label=u'Name',
+ error_messages = {'invalid': 'Bundle names can\'t contain slashes'})
+
class Meta:
model = Bundle
fields = ['name', 'public']
class Meta:
model = Bundle
fields = ['name', 'public']
-class CreateBundleForm(forms.ModelForm):
+class CreateBundleForm(BundleForm):
def __init__(self, *args, **kwargs):
super(CreateBundleForm, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
super(CreateBundleForm, self).__init__(*args, **kwargs)
bundle = None
if action == 'create':
bundle_name = data['bundle_name'].strip()
bundle = None
if action == 'create':
bundle_name = data['bundle_name'].strip()
+ if '/' in bundle_name:
+ return ['Bundle names can\'t contain slashes']
+
if not bundle_name:
return ['No bundle name was specified']
if not bundle_name:
return ['No bundle name was specified']
--- /dev/null
+BEGIN;
+UPDATE patchwork_bundle
+ SET name = replace(name, '/', '-')
+ WHERE name like '%/%';
+COMMIT;
+