Nested sitefeatures for new design

This commit is contained in:
Kuroshini 2019-10-16 14:11:07 +03:00
parent 19d23668e1
commit c1f89515c5
4 changed files with 30 additions and 3 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.4 on 2019-11-07 14:41
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('main', '0033_auto_20191106_0744'),
]
operations = [
migrations.AddField(
model_name='sitefeature',
name='nested',
field=models.ManyToManyField(to='main.SiteFeature'),
),
]

View File

@ -151,6 +151,7 @@ class SiteFeature(ProjectBaseMixin):
feature = models.ForeignKey(Feature, on_delete=models.PROTECT)
published = models.BooleanField(default=False, verbose_name=_('Published'))
main = models.BooleanField(default=False, verbose_name=_('Main'))
nested = models.ManyToManyField('self', symmetrical=False)
objects = SiteFeatureQuerySet.as_manager()

View File

@ -4,7 +4,7 @@ from rest_framework import serializers
from advertisement.serializers.web import AdvertisementSerializer
from location.serializers import CountrySerializer
from main import models
from utils.serializers import ProjectModelSerializer, TranslatedField
from utils.serializers import ProjectModelSerializer, TranslatedField, RecursiveFieldSerializer
class FeatureSerializer(serializers.ModelSerializer):
@ -27,6 +27,7 @@ class SiteFeatureSerializer(serializers.ModelSerializer):
priority = serializers.IntegerField(source='feature.priority')
route = serializers.CharField(source='feature.route.page_name')
source = serializers.IntegerField(source='feature.source')
nested = RecursiveFieldSerializer(many=True, allow_null=True)
class Meta:
"""Meta class."""
@ -36,8 +37,9 @@ class SiteFeatureSerializer(serializers.ModelSerializer):
'slug',
'priority',
'route',
'source'
)
'source',
'nested',
)
class CurrencySerializer(ProjectModelSerializer):

View File

@ -98,3 +98,9 @@ class FavoritesCreateSerializer(serializers.ModelSerializer):
@property
def slug(self):
return self.request.parser_context.get('kwargs').get('slug')
class RecursiveFieldSerializer(serializers.Serializer):
def to_representation(self, value):
serializer = self.parent.parent.__class__(value, context=self.context)
return serializer.data