team-3/src/c3nav/mapdata/models/base.py

37 lines
928 B
Python
Raw Normal View History

from collections import OrderedDict
2017-05-07 12:06:13 +02:00
2017-05-09 13:32:32 +02:00
from django.db import models
2017-05-09 09:36:08 +02:00
EDITOR_FORM_MODELS = OrderedDict()
2016-11-27 23:51:44 +01:00
class SerializableMixin(models.Model):
class Meta:
abstract = True
2017-05-11 19:36:49 +02:00
def serialize(self, **kwargs):
return self._serialize(**kwargs)
2017-05-11 21:30:29 +02:00
@classmethod
def serialize_type(cls, **kwargs):
return OrderedDict((
('name', cls.__name__.lower()),
('name_plural', cls._meta.default_related_name),
('title', str(cls._meta.verbose_name)),
('title_plural', str(cls._meta.verbose_name_plural)),
))
2017-05-11 19:36:49 +02:00
def _serialize(self, include_type=False, **kwargs):
result = OrderedDict()
if include_type:
result['type'] = self.__class__.__name__.lower()
result['id'] = self.id
return result
class EditorFormMixin(SerializableMixin, models.Model):
EditorForm = None
class Meta:
abstract = True