diff --git a/apiserver/plane/api/views/workspace.py b/apiserver/plane/api/views/workspace.py index 9aa0ebcd9..009863ab4 100644 --- a/apiserver/plane/api/views/workspace.py +++ b/apiserver/plane/api/views/workspace.py @@ -11,7 +11,6 @@ from django.conf import settings from django.utils import timezone from django.core.exceptions import ValidationError from django.core.validators import validate_email -from django.contrib.sites.shortcuts import get_current_site from django.db.models import ( Prefetch, OuterRef, @@ -34,7 +33,6 @@ from django.contrib.auth.hashers import make_password from rest_framework import status from rest_framework.response import Response from rest_framework.permissions import AllowAny -from sentry_sdk import capture_exception # Module imports from plane.api.serializers import ( diff --git a/apiserver/plane/db/models/workspace.py b/apiserver/plane/db/models/workspace.py index d1012f549..64fa1f0e7 100644 --- a/apiserver/plane/db/models/workspace.py +++ b/apiserver/plane/db/models/workspace.py @@ -1,6 +1,8 @@ # Django imports from django.db import models from django.conf import settings +from django.db.models.signals import post_save, post_delete +from django.dispatch import receiver # Module imports from . import BaseModel @@ -50,7 +52,7 @@ def get_default_props(): "state": True, "sub_issue_count": True, "updated_on": True, - } + }, } @@ -199,3 +201,23 @@ class WorkspaceTheme(BaseModel): verbose_name_plural = "Workspace Themes" db_table = "workspace_themes" ordering = ("-created_at",) + + +@receiver(post_save, sender=WorkspaceMember) +def workspace_member_add(sender, instance, created, **kwargs): + if created: + total_members_count = WorkspaceMember.objects.filter( + workspace=instance.workspace_id, member__is_bot=False + ) + action = "add" + # Update the license engine + + +@receiver(post_delete, sender=WorkspaceMember) +def workspace_member_delete(sender, instance, **kwargs): + total_members_count = WorkspaceMember.objects.filter( + workspace=instance.workspace_id, member__is_bot=False + ) + action = "delete" + + # Update the license engine