Merge branch 'feature/cities_by_country' into 'develop'

Feature/cities by country

See merge request gm/gm-backend!62
This commit is contained in:
e.stoyushko 2019-10-22 13:00:22 +00:00
commit 7b3a379b3f
4 changed files with 23 additions and 10 deletions

View File

@ -53,6 +53,14 @@ class Region(models.Model):
return self.name return self.name
class CityQuerySet(models.QuerySet):
"""Extended queryset for City model."""
def by_country_code(self, code):
"""Return establishments by country code"""
return self.filter(country__code=code)
class City(models.Model): class City(models.Model):
"""Region model.""" """Region model."""
@ -68,6 +76,8 @@ class City(models.Model):
is_island = models.BooleanField(_('is island'), default=False) is_island = models.BooleanField(_('is island'), default=False)
objects = CityQuerySet.as_manager()
class Meta: class Meta:
verbose_name_plural = _('cities') verbose_name_plural = _('cities')
verbose_name = _('city') verbose_name = _('city')
@ -77,7 +87,6 @@ class City(models.Model):
class Address(models.Model): class Address(models.Model):
"""Address model.""" """Address model."""
city = models.ForeignKey(City, verbose_name=_('city'), on_delete=models.CASCADE) city = models.ForeignKey(City, verbose_name=_('city'), on_delete=models.CASCADE)
street_name_1 = models.CharField( street_name_1 = models.CharField(

View File

@ -1,7 +1,6 @@
"""Location app mobile urlconf.""" """Location app mobile urlconf."""
from location.urls.common import urlpatterns as common_urlpatterns from location.urls.common import urlpatterns as common_urlpatterns
urlpatterns = [] urlpatterns = []
urlpatterns.extend(common_urlpatterns) urlpatterns.extend(common_urlpatterns)

View File

@ -86,6 +86,12 @@ class CityListView(CityViewMixin, generics.ListAPIView):
permission_classes = (permissions.AllowAny,) permission_classes = (permissions.AllowAny,)
serializer_class = serializers.CitySerializer serializer_class = serializers.CitySerializer
def get_queryset(self):
qs = super().get_queryset()
if self.request.country_code:
qs = qs.by_country_code(self.request.country_code)
return qs
class CityDestroyView(CityViewMixin, generics.DestroyAPIView): class CityDestroyView(CityViewMixin, generics.DestroyAPIView):
"""Destroy view for model City""" """Destroy view for model City"""
@ -112,5 +118,3 @@ class AddressListView(AddressViewMixin, generics.ListAPIView):
"""List view for model Address""" """List view for model Address"""
permission_classes = (permissions.AllowAny,) permission_classes = (permissions.AllowAny,)
serializer_class = serializers.AddressDetailSerializer serializer_class = serializers.AddressDetailSerializer

View File

@ -4,7 +4,8 @@ app_name = 'mobile'
urlpatterns = [ urlpatterns = [
path('establishments/', include('establishment.urls.mobile')), path('establishments/', include('establishment.urls.mobile')),
path('main/', include('main.urls.mobile')) path('main/', include('main.urls.mobile')),
path('location/', include('location.urls.mobile'))
# path('account/', include('account.urls.web')), # path('account/', include('account.urls.web')),
# path('advertisement/', include('advertisement.urls.web')), # path('advertisement/', include('advertisement.urls.web')),
# path('collection/', include('collection.urls.web')), # path('collection/', include('collection.urls.web')),