59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
"""Common views for application report."""
|
|
from rest_framework import generics
|
|
|
|
from report.filters import ReportFilterSet
|
|
from report.models import Report
|
|
from report.serializers import ReportBaseSerializer
|
|
from utils.methods import get_permission_classes
|
|
from utils.permissions import (
|
|
IsEstablishmentManager, IsContentPageManager, IsReviewManager,
|
|
IsModerator, IsRestaurantInspector, IsArtisanInspector,
|
|
IsWineryWineInspector, IsDistilleryLiquorInspector, IsProducerFoodInspector,
|
|
IsEstablishmentAdministrator
|
|
)
|
|
|
|
|
|
class ReportBaseView(generics.GenericAPIView):
|
|
"""
|
|
## Report base view.
|
|
"""
|
|
queryset = Report.objects.all()
|
|
serializer_class = ReportBaseSerializer
|
|
filter_class = ReportFilterSet
|
|
permission_classes = get_permission_classes(
|
|
IsEstablishmentManager, IsContentPageManager, IsReviewManager,
|
|
IsModerator, IsRestaurantInspector, IsArtisanInspector,
|
|
IsWineryWineInspector, IsDistilleryLiquorInspector, IsProducerFoodInspector,
|
|
IsEstablishmentAdministrator
|
|
)
|
|
|
|
@staticmethod
|
|
def get_source():
|
|
"""Return a source for view."""
|
|
return NotImplementedError('You must implement "get_source" method')
|
|
|
|
|
|
class ReportRetrieveView(ReportBaseView, generics.RetrieveAPIView):
|
|
"""
|
|
## View for retrieving serialized instance.
|
|
### Response
|
|
Return serialized object.
|
|
I.e.:
|
|
```
|
|
{
|
|
"count": 7,
|
|
"next": null,
|
|
"previous": null,
|
|
"results": [
|
|
{
|
|
"id": 1,
|
|
...
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Description
|
|
Method that allows retrieving serialized report object.
|
|
"""
|