2016-10-12 15:25:00 +02:00
|
|
|
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
|
2016-10-12 15:25:00 +02:00
|
|
|
|
2017-05-09 09:36:08 +02:00
|
|
|
EDITOR_FORM_MODELS = OrderedDict()
|
2016-10-12 15:25:00 +02:00
|
|
|
|
2016-11-27 23:51:44 +01:00
|
|
|
|
2017-05-11 22:40:48 +02:00
|
|
|
class SerializableMixin(models.Model):
|
2017-05-09 12:50:32 +02:00
|
|
|
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
|
2017-05-11 22:40:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
class EditorFormMixin(SerializableMixin, models.Model):
|
|
|
|
EditorForm = None
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
abstract = True
|