Skip to content

Commit 9c549e0

Browse files
committed
include ordering in config; preserve boolean label
1 parent 1677135 commit 9c549e0

4 files changed

Lines changed: 64 additions & 82 deletions

File tree

rest/serializers.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,15 @@ def get_fields_for_config(self):
148148
fields[name] = serializers.ChoiceField(
149149
choices=self.get_boolean_choices(field),
150150
required=False,
151+
label=field.label,
152+
help_text=field.help_text,
151153
)
152154
elif isinstance(field, serializers.BooleanField):
153155
fields[name] = serializers.ChoiceField(
154156
choices=self.get_boolean_choices(field),
155157
required=field.required,
158+
label=field.label,
159+
help_text=field.help_text,
156160
)
157161
return fields
158162

@@ -187,6 +191,8 @@ def get_wq_config(self):
187191
config.setdefault('name', meta.model_name)
188192
config.setdefault('verbose_name', meta.verbose_name)
189193
config.setdefault('verbose_name_plural', meta.verbose_name_plural)
194+
if meta.ordering:
195+
config.setdefault('ordering', meta.ordering)
190196

191197
if has_geo_fields:
192198
config.setdefault('map', True)
Lines changed: 53 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated by Django 2.1.7 on 2019-04-17 03:16
1+
# Generated by Django 3.1.1 on 2020-12-16 04:49
22

33
from django.conf import settings
44
from django.db import migrations, models
@@ -25,16 +25,6 @@ class Migration(migrations.Migration):
2525
('nullableblankable_field', models.CharField(blank=True, max_length=20, null=True)),
2626
],
2727
),
28-
migrations.CreateModel(
29-
name='Child',
30-
fields=[
31-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
32-
('name', models.CharField(max_length=10)),
33-
],
34-
options={
35-
'abstract': False,
36-
},
37-
),
3828
migrations.CreateModel(
3929
name='ChoiceModel',
4030
fields=[
@@ -68,172 +58,154 @@ class Migration(migrations.Migration):
6858
},
6959
),
7060
migrations.CreateModel(
71-
name='ExtraModel',
61+
name='FileModel',
7262
fields=[
7363
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
64+
('name', models.CharField(max_length=255)),
65+
('file', models.FileField(upload_to='files')),
7466
],
7567
options={
7668
'abstract': False,
7769
},
7870
),
7971
migrations.CreateModel(
80-
name='FileModel',
72+
name='ImageModel',
8173
fields=[
8274
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
8375
('name', models.CharField(max_length=255)),
84-
('file', models.FileField(upload_to='files')),
76+
('image', models.ImageField(upload_to='files')),
8577
],
8678
options={
8779
'abstract': False,
8880
},
8981
),
9082
migrations.CreateModel(
91-
name='ForeignKeyModel',
83+
name='ItemType',
9284
fields=[
9385
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
86+
('name', models.CharField(max_length=10)),
87+
('active', models.NullBooleanField(default=True)),
9488
],
9589
options={
9690
'abstract': False,
9791
},
9892
),
9993
migrations.CreateModel(
100-
name='ImageModel',
94+
name='Parent',
10195
fields=[
10296
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
103-
('name', models.CharField(max_length=255)),
104-
('image', models.ImageField(upload_to='files')),
97+
('name', models.CharField(max_length=10)),
10598
],
10699
options={
107100
'abstract': False,
108101
},
109102
),
110103
migrations.CreateModel(
111-
name='Item',
104+
name='RootModel',
112105
fields=[
113106
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
114-
('name', models.CharField(max_length=10)),
107+
('slug', models.SlugField()),
108+
('description', models.TextField()),
115109
],
116110
options={
117111
'abstract': False,
118112
},
119113
),
120114
migrations.CreateModel(
121-
name='ItemType',
115+
name='SlugModel',
122116
fields=[
123117
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
124-
('name', models.CharField(max_length=10)),
125-
('active', models.NullBooleanField(default=True)),
118+
('code', models.SlugField()),
119+
('name', models.CharField(max_length=255)),
126120
],
127121
options={
128122
'abstract': False,
129123
},
130124
),
131125
migrations.CreateModel(
132-
name='OneToOneModel',
126+
name='TranslatedModel',
133127
fields=[
134128
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
129+
('name', models.CharField(max_length=255, verbose_name='translated model name')),
135130
],
136-
options={
137-
'abstract': False,
138-
},
139131
),
140132
migrations.CreateModel(
141-
name='Parent',
133+
name='UserManagedModel',
142134
fields=[
143135
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
144-
('name', models.CharField(max_length=10)),
136+
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
145137
],
146-
options={
147-
'abstract': False,
148-
},
149138
),
150139
migrations.CreateModel(
151-
name='RootModel',
140+
name='SlugRefParent',
152141
fields=[
153142
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
154-
('slug', models.SlugField()),
155-
('description', models.TextField()),
143+
('name', models.CharField(max_length=255)),
144+
('ref', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.slugmodel')),
156145
],
157146
options={
158147
'abstract': False,
159148
},
160149
),
161150
migrations.CreateModel(
162-
name='SlugModel',
151+
name='SlugRefChild',
163152
fields=[
164153
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
165-
('code', models.SlugField()),
166154
('name', models.CharField(max_length=255)),
155+
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.slugrefparent')),
156+
],
157+
),
158+
migrations.CreateModel(
159+
name='OneToOneModel',
160+
fields=[
161+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
162+
('root', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='rest_app.rootmodel')),
167163
],
168164
options={
169165
'abstract': False,
170166
},
171167
),
172168
migrations.CreateModel(
173-
name='SlugRefChild',
169+
name='Item',
174170
fields=[
175171
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
176-
('name', models.CharField(max_length=255)),
172+
('name', models.CharField(max_length=10)),
173+
('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.itemtype')),
177174
],
175+
options={
176+
'ordering': ('type', 'name'),
177+
},
178178
),
179179
migrations.CreateModel(
180-
name='SlugRefParent',
180+
name='ForeignKeyModel',
181181
fields=[
182182
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
183-
('name', models.CharField(max_length=255)),
184-
('ref', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.SlugModel')),
183+
('root', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.rootmodel')),
185184
],
186185
options={
187186
'abstract': False,
188187
},
189188
),
190189
migrations.CreateModel(
191-
name='TranslatedModel',
190+
name='ExtraModel',
192191
fields=[
193192
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
194-
('name', models.CharField(max_length=255, verbose_name='translated model name')),
193+
('alt_root', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='extramodel_set', to='rest_app.rootmodel')),
194+
('root', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='extramodels', to='rest_app.rootmodel')),
195195
],
196+
options={
197+
'abstract': False,
198+
},
196199
),
197200
migrations.CreateModel(
198-
name='UserManagedModel',
201+
name='Child',
199202
fields=[
200203
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
201-
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
204+
('name', models.CharField(max_length=10)),
205+
('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='children', to='rest_app.parent')),
202206
],
203-
),
204-
migrations.AddField(
205-
model_name='slugrefchild',
206-
name='parent',
207-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.SlugRefParent'),
208-
),
209-
migrations.AddField(
210-
model_name='onetoonemodel',
211-
name='root',
212-
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='rest_app.RootModel'),
213-
),
214-
migrations.AddField(
215-
model_name='item',
216-
name='type',
217-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.ItemType'),
218-
),
219-
migrations.AddField(
220-
model_name='foreignkeymodel',
221-
name='root',
222-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rest_app.RootModel'),
223-
),
224-
migrations.AddField(
225-
model_name='extramodel',
226-
name='alt_root',
227-
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='extramodel_set', to='rest_app.RootModel'),
228-
),
229-
migrations.AddField(
230-
model_name='extramodel',
231-
name='root',
232-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='extramodels', to='rest_app.RootModel'),
233-
),
234-
migrations.AddField(
235-
model_name='child',
236-
name='parent',
237-
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='children', to='rest_app.Parent'),
207+
options={
208+
'abstract': False,
209+
},
238210
),
239211
]

tests/rest_app/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ class Item(LabelModel):
6262
name = models.CharField(max_length=10)
6363
type = models.ForeignKey(ItemType, models.CASCADE)
6464

65+
class Meta:
66+
ordering = ('type', 'name')
67+
6568

6669
class FileModel(LabelModel):
6770
name = models.CharField(max_length=255)

tests/test_config.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ def test_rest_config_meta(self):
4646
'form': conf['form'],
4747
'label_template': '{{name}}',
4848
'verbose_name': 'item',
49-
'verbose_name_plural': 'items'
49+
'verbose_name_plural': 'items',
50+
'ordering': ['type', 'name'],
5051
}, conf)
5152

5253
def test_rest_config_json_fields(self):

0 commit comments

Comments
 (0)