update site feautures

This commit is contained in:
evgeniy-st 2019-08-26 18:12:15 +03:00
parent 5edcd0afe9
commit f33fa21c0c
3 changed files with 50 additions and 15 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.4 on 2019-08-26 14:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('main', '0006_auto_20190822_1118'),
]
operations = [
migrations.AddField(
model_name='sitefeature',
name='main',
field=models.BooleanField(default=False, verbose_name='Main'),
),
]

View File

@ -133,6 +133,10 @@ class SiteSettings(ProjectBaseMixin):
return self.feature_set.filter(sitefeature__site_settings=self, return self.feature_set.filter(sitefeature__site_settings=self,
sitefeature__published=True) sitefeature__published=True)
@property
def published_sitefeatures(self):
return self.sitefeature_set.filter(published=True)
@property @property
def site_url(self): def site_url(self):
return methods.site_url(schema=settings.SCHEMA_URI, return methods.site_url(schema=settings.SCHEMA_URI,
@ -168,6 +172,7 @@ class SiteFeature(ProjectBaseMixin):
site_settings = models.ForeignKey(SiteSettings, on_delete=models.CASCADE) site_settings = models.ForeignKey(SiteSettings, on_delete=models.CASCADE)
feature = models.ForeignKey(Feature, on_delete=models.PROTECT) feature = models.ForeignKey(Feature, on_delete=models.PROTECT)
published = models.BooleanField(default=False, verbose_name=_('Published')) published = models.BooleanField(default=False, verbose_name=_('Published'))
main = models.BooleanField(default=False, verbose_name=_('Main'))
objects = SiteFeatureQuerySet.as_manager() objects = SiteFeatureQuerySet.as_manager()

View File

@ -16,11 +16,23 @@ class FeatureSerializer(serializers.ModelSerializer):
) )
class SiteFeatureSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(source='feature.id')
slug = serializers.CharField(source='feature.slug')
class Meta:
"""Meta class."""
model = models.SiteFeature
fields = ('main',
'id',
'slug')
class SiteSettingsSerializer(serializers.ModelSerializer): class SiteSettingsSerializer(serializers.ModelSerializer):
"""Site settings serializer.""" """Site settings serializer."""
published_features = FeatureSerializer(many=True, allow_null=None) published_features = SiteFeatureSerializer(many=True, allow_null=True)
#todo: remove this #todo: remove this
country_code = serializers.CharField(source='subdomain', read_only=True) country_code = serializers.CharField(source='subdomain', read_only=True)
@ -42,16 +54,16 @@ class SiteSettingsSerializer(serializers.ModelSerializer):
) )
class SiteFeatureSerializer(serializers.ModelSerializer): # class SiteFeatureSerializer(serializers.ModelSerializer):
"""Site feature serializer.""" # """Site feature serializer."""
#
class Meta: # class Meta:
"""Meta class.""" # """Meta class."""
#
model = models.SiteFeature # model = models.SiteFeature
fields = ( # fields = (
'id', # 'id',
'published', # 'published',
'site_settings', # 'site_settings',
'feature', # 'feature',
) # )