added a documentation for awards types

This commit is contained in:
Anatoly 2020-02-07 12:58:38 +03:00
parent 26b7ef8ad6
commit c866721c8d
3 changed files with 56 additions and 20 deletions

View File

@ -38,3 +38,23 @@ class AwardFilter(filters.FilterSet):
if value not in EMPTY_VALUES: if value not in EMPTY_VALUES:
return queryset.by_employee_id(value, content_type='establishmentemployee') return queryset.by_employee_id(value, content_type='establishmentemployee')
return queryset return queryset
class AwardTypeFilterSet(filters.FilterSet):
"""Award type FilterSet."""
id = filters.NumberFilter(help_text='Filter by AwardType identifier.')
name = filters.CharFilter(method='by_name', help_text='Filter by AwardType name.')
class Meta:
"""Meta class."""
model = models.AwardType
fields = [
'id',
'name',
]
def by_name(self, queryset, name, value):
if value not in EMPTY_VALUES:
return queryset.by_name(value)
return queryset

View File

@ -223,6 +223,10 @@ class AwardTypeQuerySet(models.QuerySet):
"""Filter QuerySet by country code.""" """Filter QuerySet by country code."""
return self.filter(country__code=country_code) return self.filter(country__code=country_code)
def by_name(self, name: str):
"""Filter by name field."""
return self.filter(name__icontains=name)
class AwardType(models.Model): class AwardType(models.Model):
"""AwardType model.""" """AwardType model."""

View File

@ -9,7 +9,7 @@ from establishment.models import Employee
from establishment.serializers.back import EmployeeBackSerializers from establishment.serializers.back import EmployeeBackSerializers
from main import serializers from main import serializers
from main import tasks from main import tasks
from main.filters import AwardFilter from main.filters import AwardFilter, AwardTypeFilterSet
from main.models import Award, Footer, PageType, Panel, SiteFeature, Feature, AwardType from main.models import Award, Footer, PageType, Panel, SiteFeature, Feature, AwardType
from main.serializers.back import PanelSerializer from main.serializers.back import PanelSerializer
from main.views import SiteSettingsView, SiteListView from main.views import SiteSettingsView, SiteListView
@ -168,20 +168,32 @@ class AwardRUDView(generics.RetrieveUpdateDestroyAPIView):
class AwardTypesListView(generics.ListAPIView): class AwardTypesListView(generics.ListAPIView):
"""AwardType List view.""" """
## List of Award types view.
### *GET*
#### Description
Return non paginated list of Award types filtered by request country code.
Available filters:
* id (`int`) - award type identifier
* name (`str`) - award type name
##### Response
```
[
{
"id": 1,
...
}
]
```
"""
pagination_class = None pagination_class = None
serializer_class = serializers.AwardTypeBaseSerializer serializer_class = serializers.AwardTypeBaseSerializer
permission_classes = get_permission_classes() permission_classes = get_permission_classes()
filter_backends = (DjangoFilterBackend,)
ordering_fields = '__all__'
lookup_field = 'id' lookup_field = 'id'
filterset_fields = ( filter_class = AwardTypeFilterSet
'id',
'name',
)
def get_queryset(self): def get_queryset(self):
"""Overridden get_queryset method.""" """An overridden get_queryset method."""
if hasattr(self, 'request') and hasattr(self.request, 'country_code'): if hasattr(self, 'request') and hasattr(self.request, 'country_code'):
return AwardType.objects.by_country_code(self.request.country_code) return AwardType.objects.by_country_code(self.request.country_code)
return AwardType.objects.none() return AwardType.objects.none()