0001-profile-add-extra-validation-to-profile-field-names-.patch
hobo/profile/migrations/0001_initial.py | ||
---|---|---|
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
from __future__ import unicode_literals |
3 | 3 | |
4 |
import django.core.validators |
|
4 | 5 |
from django.db import models, migrations |
5 | 6 | |
6 | 7 | |
... | ... | |
16 | 17 |
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
17 | 18 |
('label', models.CharField(unique=True, max_length=63, verbose_name='label')), |
18 | 19 |
('description', models.TextField(verbose_name='description', blank=True)), |
19 |
('name', models.SlugField(unique=True, max_length=256, verbose_name='name')), |
|
20 |
('name', models.SlugField(unique=True, max_length=256, verbose_name='name', |
|
21 |
error_messages={b'unique': 'Field names must be unique.'}, |
|
22 |
validators=[django.core.validators.RegexValidator( |
|
23 |
b'^[a-z][a-z0-9_]*\\Z', |
|
24 |
'Enter valid variable name starting with a letter and consisting of letters, numbers, or underscores.')] |
|
25 |
)), |
|
20 | 26 |
('required', models.BooleanField(default=False, verbose_name='required')), |
21 | 27 |
('asked_on_registration', models.BooleanField(default=False, verbose_name='asked on registration')), |
22 | 28 |
('user_editable', models.BooleanField(default=True, verbose_name='user editable')), |
hobo/profile/models.py | ||
---|---|---|
14 | 14 |
# You should have received a copy of the GNU Affero General Public License |
15 | 15 |
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
16 | 16 | |
17 |
from django.core.validators import RegexValidator |
|
17 | 18 |
from django.db import models |
18 | 19 |
from django.utils.translation import ugettext_lazy as _ |
19 | 20 | |
20 | 21 | |
22 |
validate_attribute_name = RegexValidator( |
|
23 |
r'^[a-z][a-z0-9_]*\Z', |
|
24 |
_('Enter valid variable name starting with a letter and consisting of letters, numbers, or underscores.'), |
|
25 |
) |
|
26 | ||
27 | ||
21 | 28 |
class AttributeDefinition(models.Model): |
22 | 29 |
label = models.CharField(verbose_name=_('label'), |
23 | 30 |
max_length=63, unique=True) |
24 | 31 |
description = models.TextField(verbose_name=_('description'), |
25 | 32 |
blank=True) |
26 | 33 |
name = models.SlugField(verbose_name=_('name'), |
27 |
max_length=256, unique=True) |
|
34 |
max_length=256, unique=True, |
|
35 |
validators=[validate_attribute_name], |
|
36 |
error_messages={'unique': _('Field names must be unique.')}) |
|
28 | 37 |
required = models.BooleanField(verbose_name=_('required'), |
29 | 38 |
blank=True, default=False) |
30 | 39 |
asked_on_registration = models.BooleanField(verbose_name=_('asked on registration'), |
31 |
- |