route options UI
This commit is contained in:
parent
08e695a057
commit
d2e9a57343
7 changed files with 145 additions and 28 deletions
|
@ -116,14 +116,14 @@ class RouteOptions(models.Model):
|
|||
except AttributeError:
|
||||
return self.get_fields()[key].initial
|
||||
|
||||
def update(self, value_dict, ignore_errors=False):
|
||||
def update(self, value_dict, ignore_errors=False, ignore_unknown=False):
|
||||
if not value_dict:
|
||||
return
|
||||
fields = self.get_fields()
|
||||
for key, value in value_dict.items():
|
||||
field = fields.get(key)
|
||||
if not field:
|
||||
if ignore_errors:
|
||||
if ignore_errors or ignore_unknown:
|
||||
continue
|
||||
raise ValidationError(_('Unknown route option: %s') % key)
|
||||
if value is None or value not in dict(field.choices):
|
||||
|
@ -135,6 +135,24 @@ class RouteOptions(models.Model):
|
|||
def __setitem__(self, key, value):
|
||||
self.update({key: value})
|
||||
|
||||
def serialize(self):
|
||||
return [
|
||||
{
|
||||
'name': name,
|
||||
'type': field.widget.input_type,
|
||||
'label': field.label,
|
||||
'choices': [
|
||||
{
|
||||
'name': choice_name,
|
||||
'title': choice_title,
|
||||
}
|
||||
for choice_name, choice_title in field.choices
|
||||
],
|
||||
'value': self[name],
|
||||
}
|
||||
for name, field in self.get_fields().items()
|
||||
]
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.request is None or self.request.user.is_authenticated:
|
||||
self.user = self.request.user
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue