add active flag for languages and Countries

This commit is contained in:
Dmitriy Kuzmenko 2019-11-14 22:54:27 +03:00
parent 5718955ba8
commit 141bddc0db
6 changed files with 54 additions and 2 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.4 on 2019-11-14 19:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('location', '0025_auto_20191114_0809'),
]
operations = [
migrations.AddField(
model_name='country',
name='is_active',
field=models.BooleanField(default=True, verbose_name='is active'),
),
]

View File

@ -11,6 +11,13 @@ from utils.models import (ProjectBaseMixin, SVGImageMixin, TJSONField,
TranslatedFieldsMixin, get_current_locale)
class CountryQuerySet(models.QuerySet):
"""Country queryset."""
def active(self, switcher=True):
"""Filter only active users."""
return self.filter(is_active=switcher)
class Country(TranslatedFieldsMixin, SVGImageMixin, ProjectBaseMixin):
"""Country model."""
@ -29,8 +36,11 @@ class Country(TranslatedFieldsMixin, SVGImageMixin, ProjectBaseMixin):
low_price = models.IntegerField(default=25, verbose_name=_('Low price'))
high_price = models.IntegerField(default=50, verbose_name=_('High price'))
languages = models.ManyToManyField(Language, verbose_name=_('Languages'))
is_active = models.BooleanField(_('is active'), default=True)
old_id = models.IntegerField(null=True, blank=True, default=None)
objects = CountryQuerySet.as_manager()
@property
def time_format(self):
if self.code.lower() not in self.TWELVE_HOURS_FORMAT_COUNTRIES:

View File

@ -11,7 +11,7 @@ class CountryViewMixin(generics.GenericAPIView):
serializer_class = serializers.CountrySerializer
permission_classes = (permissions.AllowAny,)
queryset = models.Country.objects.all()
queryset = models.Country.objects.active()
class RegionViewMixin(generics.GenericAPIView):

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.4 on 2019-11-14 19:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('translation', '0006_language_old_id'),
]
operations = [
migrations.AddField(
model_name='language',
name='is_active',
field=models.BooleanField(default=True, verbose_name='is active'),
),
]

View File

@ -8,6 +8,10 @@ from utils.models import ProjectBaseMixin, LocaleManagerMixin
class LanguageQuerySet(models.QuerySet):
"""QuerySet for model Language"""
def active(self, switcher=True):
"""Filter only active users."""
return self.filter(is_active=switcher)
def by_locale(self, locale: str) -> models.QuerySet:
"""Filter by locale"""
return self.filter(locale=locale)
@ -27,6 +31,8 @@ class Language(models.Model):
old_id = models.IntegerField(null=True, blank=True, default=None)
is_active = models.BooleanField(_('is active'), default=True)
objects = LanguageQuerySet.as_manager()
class Meta:

View File

@ -9,7 +9,7 @@ from utils.views import JWTGenericViewMixin
class LanguageViewMixin(generics.GenericAPIView):
"""Mixin for Language views"""
queryset = models.Language.objects.all()
queryset = models.Language.objects.active()
serializer_class = serializers.LanguageSerializer