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:
return queryset.by_employee_id(value, content_type='establishmentemployee')
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."""
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):
"""AwardType model."""

View File

@ -9,7 +9,7 @@ from establishment.models import Employee
from establishment.serializers.back import EmployeeBackSerializers
from main import serializers
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.serializers.back import PanelSerializer
from main.views import SiteSettingsView, SiteListView
@ -31,19 +31,19 @@ class AwardLstView(generics.ListCreateAPIView):
* vintage_year (`str`) - Filter by a vintage year
##### Response
E.g.:
```
```
{
"count": 58,
"next": 2,
"previous": null,
"results": [
{
"count": 58,
"next": 2,
"previous": null,
"results": [
{
"id": 1,
...
}
]
"id": 1,
...
}
```
]
}
```
### *POST*
#### Description
@ -168,20 +168,32 @@ class AwardRUDView(generics.RetrieveUpdateDestroyAPIView):
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
serializer_class = serializers.AwardTypeBaseSerializer
permission_classes = get_permission_classes()
filter_backends = (DjangoFilterBackend,)
ordering_fields = '__all__'
lookup_field = 'id'
filterset_fields = (
'id',
'name',
)
filter_class = AwardTypeFilterSet
def get_queryset(self):
"""Overridden get_queryset method."""
"""An overridden get_queryset method."""
if hasattr(self, 'request') and hasattr(self.request, 'country_code'):
return AwardType.objects.by_country_code(self.request.country_code)
return AwardType.objects.none()