Skip to content

Commit 4f86565

Browse files
authored
Merge pull request #392 from peopledoc/allow-empty-defaults-value-hotfix
Allow empty defaults value hotfix
2 parents 03c92bd + 34fb43a commit 4f86565

File tree

4 files changed

+58
-1
lines changed

4 files changed

+58
-1
lines changed

CHANGELOG.rst

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
ChangeLog
33
=========
44

5+
Release 4.0.2 (unreleased)
6+
==========================
7+
8+
- HOTFIX: Allow empty values for ``defaults`` properties (#391).
9+
510
Release 4.0.1 (2020-01-21)
611
==========================
712

demo/tests/serializers/test_formidable_serializer.py

+34
Original file line numberDiff line numberDiff line change
@@ -103,5 +103,39 @@ def test_context_in_field_serializer(self):
103103
# remove mock and revert serializer
104104
self.field_register[self.custom_type_id] = backup_serializer
105105

106+
def test_empty_string_defaults(self):
107+
schema = {
108+
"label": "test",
109+
"description": "test",
110+
"fields": [
111+
{
112+
"slug": "custom-type-id",
113+
"label": "Custom field",
114+
"placeholder": None,
115+
"description": None,
116+
"defaults": [],
117+
"multiple": False,
118+
"values": [],
119+
"required": False,
120+
"disabled": False,
121+
"isVisible": True,
122+
"type_id": "text",
123+
"validations": [],
124+
"accesses": [
125+
{
126+
"id": "field-access868",
127+
"level": "EDITABLE",
128+
"access_id": "padawan"
129+
}
130+
]
131+
}
132+
]
133+
}
134+
# to make sure we know the use-case we want to test.
135+
schema['fields'][0]['defaults'] = [""]
136+
serializer = FormidableSerializer(data=schema)
137+
assert serializer.is_valid(), serializer.errors
138+
106139
def tearDown(self):
140+
super().tearDown()
107141
self.field_register.pop(self.custom_type_id)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from __future__ import unicode_literals
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('formidable', '0009_field_parameters'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='default',
15+
name='value',
16+
field=models.CharField(blank=True, max_length=256),
17+
),
18+
]

formidable/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def __str__(self):
103103
@python_2_unicode_compatible
104104
class Default(models.Model):
105105

106-
value = models.CharField(max_length=256)
106+
value = models.CharField(max_length=256, blank=True)
107107
field = models.ForeignKey(
108108
Field, related_name='defaults', on_delete=models.CASCADE
109109
)

0 commit comments

Comments
 (0)