from outbo.apps.activity_log.models import ProductLogItem, ProjectLogItem from outbo.apps.activity_log.serializers import ( ProductLogItemSerializer, ProjectLogItemSerializer, ) from outbo.apps.core.viewsets import ( AutoPermissionViewSetMixin, ListModelMixin, MultipleSerializerViewSet, NestedViewSetMixin, CreateModelMixin, ) from outbo.apps.products.models import Product from outbo.apps.projects.models import Project class ProductLogItemNestedViewSet( AutoPermissionViewSetMixin, ListModelMixin, CreateModelMixin, NestedViewSetMixin, MultipleSerializerViewSet, ): queryset = ProductLogItem.objects.all() serializer_class_set = ProductLogItemSerializer def perform_create(self, *, serializer): current_user = self.request.user parents = self.get_parents_query_dict() product = Product.objects.get(pk=parents["product_id"]) return serializer.save(product=product, created_by=current_user) class ProjectLogItemNestedViewSet( AutoPermissionViewSetMixin, ListModelMixin, CreateModelMixin, NestedViewSetMixin, MultipleSerializerViewSet, ): queryset = ProjectLogItem.objects.all() serializer_class_set = ProjectLogItemSerializer def perform_create(self, *, serializer): current_user = self.request.user parents = self.get_parents_query_dict() project = Project.objects.get(pk=parents["project_id"]) return serializer.save(project=project, created_by=current_user)