taiga-back/greenmine/base/api.py

36 lines
899 B
Python

# -*- coding: utf-8 -*-
from rest_framework import viewsets
from .pagination import HeadersPaginationMixin, ConditionalPaginationMixin
class PreconditionMixin(object):
def pre_conditions_on_save(self, obj):
pass
def pre_conditions_on_delete(self, obj):
pass
def pre_save(self, obj):
super().pre_save(obj)
self.pre_conditions_on_save(obj)
def pre_delete(self, obj):
super().pre_delete(obj)
self.pre_conditions_on_delete(obj)
class ModelCrudViewSet(PreconditionMixin,
HeadersPaginationMixin,
ConditionalPaginationMixin,
viewsets.ModelViewSet):
pass
class ModelListViewSet(PreconditionMixin,
HeadersPaginationMixin,
ConditionalPaginationMixin,
viewsets.ReadOnlyModelViewSet):
pass