from rest_framework import permissions, viewsets from apps.api.serializers import ( TransactionSerializer, TransactionCategorySerializer, TransactionTagSerializer, InstallmentPlanSerializer, ) from apps.transactions.models import ( Transaction, TransactionCategory, TransactionTag, InstallmentPlan, ) from apps.rules.signals import transaction_updated, transaction_created class TransactionViewSet(viewsets.ModelViewSet): queryset = Transaction.objects.all() serializer_class = TransactionSerializer def perform_create(self, serializer): instance = serializer.save() transaction_created.send(sender=instance) def perform_update(self, serializer): instance = serializer.save() transaction_updated.send(sender=instance) def partial_update(self, request, *args, **kwargs): kwargs["partial"] = True return self.update(request, *args, **kwargs) class TransactionCategoryViewSet(viewsets.ModelViewSet): queryset = TransactionCategory.objects.all() serializer_class = TransactionCategorySerializer class TransactionTagViewSet(viewsets.ModelViewSet): queryset = TransactionTag.objects.all() serializer_class = TransactionTagSerializer class InstallmentPlanViewSet(viewsets.ModelViewSet): queryset = InstallmentPlan.objects.all() serializer_class = InstallmentPlanSerializer def perform_create(self, serializer): instance = serializer.save() instance.create_transactions() def perform_update(self, serializer): instance = serializer.save() instance.create_transactions()