Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ChangeLog
master (unreleased)
===================

Nothing here yet.
* Change `help_text` to `description` in the API (in order to catch up formidable-ui)

Release 0.7.1 (2017-02-22)
==========================
Expand Down
57 changes: 43 additions & 14 deletions demo/tests/test_end_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def test_text_field(self):
self.assertEquals(text_field['type_id'], 'text')
self.assertEquals(text_field['label'], 'test text')
self.assertEquals(text_field['placeholder'], 'put your name here')
self.assertEquals(text_field['help_text'], 'your name')
self.assertEquals(text_field['description'], 'your name')
self.assertEquals(text_field['defaults'], [])
self.assertNotIn('multiple', text_field)
self.assertNotIn('items', text_field)
Expand All @@ -111,7 +111,7 @@ def test_text_field2(self):
self.assertEquals(text_field['type_id'], 'text')
self.assertEquals(text_field['label'], 'test text 2')
self.assertEquals(text_field['placeholder'], 'put your name here')
self.assertEquals(text_field['help_text'], 'your name')
self.assertEquals(text_field['description'], 'your name')
self.assertNotIn('multiple', text_field)
self.assertNotIn('items', text_field)
self.assertIn('accesses', text_field)
Expand Down Expand Up @@ -155,7 +155,7 @@ def test_helptext_field(self):
data = serializer.data['fields'][0]
for field in list(set(RENDER_BASE_FIELDS) - set(['label'])):
self.assertIn(field, data)
self.assertEqual(data['help_text'],
self.assertEqual(data['description'],
'Please enter your information here')

def test_title_field(self):
Expand All @@ -167,11 +167,11 @@ def test_title_field(self):
)
serializer = FormidableSerializer(instance=self.form)
data = serializer.data['fields'][0]
for field in set(RENDER_BASE_FIELDS) - set(['help_text']):
for field in set(RENDER_BASE_FIELDS) - set(['description']):
self.assertIn(field, data)
self.assertEqual(data['label'],
'This is on onboarding form.')
self.assertNotIn('help_text', data)
self.assertNotIn('description', data)

def test_email_field(self):
self.form.fields.all().delete()
Expand Down Expand Up @@ -560,7 +560,7 @@ class CreateSerializerTestCase(TestCase):
{
'slug': 'myhelptext',
'type_id': 'help_text',
'help_text': 'Hello',
'description': 'Hello',
'accesses': [],
}
]
Expand Down Expand Up @@ -638,7 +638,7 @@ def test_create_field(self):
data = copy.deepcopy(self.data)
data['fields'] = copy.deepcopy(self.fields_without_items)
serializer = FormidableSerializer(data=data)
self.assertTrue(serializer.is_valid())
self.assertTrue(serializer.is_valid(), serializer.errors)
instance = serializer.save()
self.assertEquals(instance.label, 'test_create')
self.assertEquals(instance.description, 'description create')
Expand Down Expand Up @@ -733,7 +733,7 @@ def test_create_field_with_items(self):
data = copy.deepcopy(self.data)
data['fields'] = self.fields_with_items
serializer = FormidableSerializer(data=data)
self.assertTrue(serializer.is_valid())
self.assertTrue(serializer.is_valid(), serializer.errors)
instance = serializer.save()
self.assertEquals(instance.label, 'test_create')
self.assertEquals(instance.description, 'description create')
Expand Down Expand Up @@ -1197,8 +1197,8 @@ def test_render_preset_field_arg(self):
self.assertEqual(data['slug'], 'test')
self.assertIn('label', data)
self.assertEqual(data['label'], 'test')
self.assertIn('help_text', data)
self.assertEqual(data['help_text'], 'pick up the field to validated')
self.assertIn('description', data)
self.assertEqual(data['description'], 'pick up the field to validated')
self.assertIn('types', data)
self.assertEqual(len(data['types']), 1)
self.assertIn('field', data['types'])
Expand Down Expand Up @@ -1229,8 +1229,8 @@ def test_render_preset_value_arg(self):
self.assertEqual(data['slug'], 'test')
self.assertIn('label', data)
self.assertEqual(data['label'], 'test')
self.assertIn('help_text', data)
self.assertEqual(data['help_text'], 'pick up the value to compare')
self.assertIn('description', data)
self.assertEqual(data['description'], 'pick up the value to compare')
self.assertIn('types', data)
self.assertEqual(len(data['types']), 1)
self.assertIn('value', data['types'])
Expand All @@ -1247,8 +1247,8 @@ def test_render_preset_hybrid_arg(self):
self.assertEqual(data['slug'], 'test')
self.assertIn('label', data)
self.assertEqual(data['label'], 'test')
self.assertIn('help_text', data)
self.assertEqual(data['help_text'], 'pick up the value to compare')
self.assertIn('description', data)
self.assertEqual(data['description'], 'pick up the value to compare')
self.assertIn('types', data)
self.assertEqual(len(data['types']), 2)
self.assertIn('value', data['types'])
Expand All @@ -1264,3 +1264,32 @@ def test_render_preset_with_argument(self):
data = serializer.data
self.assertIn('arguments', data)
self.assertEqual(len(data['arguments']), 2)


class CreateSerializerMigrationTestCase(TestCase):
data = {
'label': 'test_create',
'description': 'description create',
'fields': [
{
'type_id': 'dropdown',
'slug': 'dropdown-input', 'label': 'dropdown label',
'help_text': 'Field Help',
'multiple': False,
'items': [
{'value': 'tutu', 'label': 'toto',
'help_text': 'Item Help'},
{'value': 'tata', 'label': 'plop'},
],
'accesses': []
}
]
}

def test_create(self):
serializer = FormidableSerializer(data=self.data)
self.assertTrue(serializer.is_valid(), serializer.errors)
form = serializer.save()
self.assertEqual(form.fields.all()[0].help_text, 'Field Help')
self.assertEqual(form.fields.all()[0].items.all()[0].help_text,
'Item Help')
24 changes: 17 additions & 7 deletions formidable/serializers/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from rest_framework import serializers

BASE_FIELDS = (
'slug', 'label', 'type_id', 'placeholder', 'help_text',
'slug', 'label', 'type_id', 'placeholder', 'description',
'accesses', 'validations', 'order', 'defaults'
)

Expand Down Expand Up @@ -67,9 +67,17 @@ class FieldSerializer(WithNestedSerializer):
# incomming payload, it will be automatically overrided.
order = serializers.IntegerField(write_only=True, required=False)
defaults = DefaultSerializer(many=True, required=False)
description = serializers.CharField(required=False, allow_null=True,
source='help_text')

nested_objects = ['accesses', 'validations', 'defaults']

def to_internal_value(self, data):
# XXX FIX ME: temporary fix
if 'help_text' in data:
data['description'] = data.pop('help_text')
return super(FieldSerializer, self).to_internal_value(data)

class Meta:
model = Field
list_serializer_class = FieldListSerializer
Expand Down Expand Up @@ -127,12 +135,14 @@ class ContextFieldSerializer(serializers.ModelSerializer):
validations = ValidationSerializer(many=True, required=False)
items = ItemSerializer(many=True, required=False)
defaults = DefaultSerializer(many=True, required=False)
description = serializers.CharField(required=False, allow_null=True,
source='help_text')

class Meta:
list_serializer_class = ListContextFieldSerializer
model = Field
fields = (
'slug', 'label', 'type_id', 'placeholder', 'help_text',
'slug', 'label', 'type_id', 'placeholder', 'description',
'validations', 'disabled', 'required', 'multiple', 'items',
'defaults',
)
Expand Down Expand Up @@ -278,7 +288,7 @@ class Meta(FieldSerializer.Meta):
class HelpTextFieldSerializer(FieldSerializer):

type_id = 'help_text'
help_text = serializers.CharField(required=True)
description = serializers.CharField(required=True, source='help_text')

class Meta(FieldSerializer.Meta):
# Remove "label" attribute
Expand All @@ -291,8 +301,8 @@ class TitleFieldSerializer(FieldSerializer):
type_id = 'title'

class Meta(FieldSerializer.Meta):
# Remove "help_text" attribute
fields = list(set(BASE_FIELDS) - set(['help_text']))
# Remove "description" attribute
fields = list(set(BASE_FIELDS) - set(['description']))


@load_serializer(field_register)
Expand All @@ -301,5 +311,5 @@ class SeparatorFieldSerializer(FieldSerializer):
type_id = 'separator'

class Meta(FieldSerializer.Meta):
# Remove "help_text" and "label" attributes
fields = list(set(BASE_FIELDS) - set(['label', 'help_text']))
# Remove "description" and "label" attributes
fields = list(set(BASE_FIELDS) - set(['label', 'description']))
11 changes: 10 additions & 1 deletion formidable/serializers/items.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,16 @@ def validate(self, data):

class ItemSerializer(serializers.ModelSerializer):

description = serializers.CharField(required=False, allow_null=True,
source='help_text')

def to_internal_value(self, data):
# XXX FIX ME: temporary fix
if 'help_text' in data:
data['description'] = data.pop('help_text')
return super(ItemSerializer, self).to_internal_value(data)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is the magic 😉


class Meta:
model = Item
list_serializer_class = ItemListSerializer
fields = ('value', 'label', 'help_text')
fields = ('value', 'label', 'description')
2 changes: 1 addition & 1 deletion formidable/serializers/presets.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class Meta:

slug = fields.SlugField()
label = fields.CharField()
help_text = fields.CharField(required=False)
description = fields.CharField(required=False, source='help_text')
placehorlder = fields.CharField(required=False)
types = fields.ListField()

Expand Down