diff --git a/apps/api/plane/app/views/workspace/base.py b/apps/api/plane/app/views/workspace/base.py index c27b7adbb2..080dda5506 100644 --- a/apps/api/plane/app/views/workspace/base.py +++ b/apps/api/plane/app/views/workspace/base.py @@ -75,14 +75,12 @@ class WorkSpaceViewSet(BaseViewSet): def create(self, request): try: - (DISABLE_WORKSPACE_CREATION,) = get_configuration_value( - [ - { - "key": "DISABLE_WORKSPACE_CREATION", - "default": os.environ.get("DISABLE_WORKSPACE_CREATION", "0"), - } - ] - ) + (DISABLE_WORKSPACE_CREATION,) = get_configuration_value([ + { + "key": "DISABLE_WORKSPACE_CREATION", + "default": os.environ.get("DISABLE_WORKSPACE_CREATION", "0"), + } + ]) if DISABLE_WORKSPACE_CREATION == "1": return Response( diff --git a/apps/api/plane/bgtasks/workspace_seed_task.py b/apps/api/plane/bgtasks/workspace_seed_task.py index 57ac02ec12..772b0e2356 100644 --- a/apps/api/plane/bgtasks/workspace_seed_task.py +++ b/apps/api/plane/bgtasks/workspace_seed_task.py @@ -94,7 +94,7 @@ def create_project_and_member(workspace: Workspace, bot_user: User) -> Dict[int, project_seed.pop("name", None) project_seed.pop("identifier", None) - project = Project.objects.create( + project = Project( **project_seed, workspace=workspace, name=workspace.name, # Use workspace name @@ -105,6 +105,7 @@ def create_project_and_member(workspace: Workspace, bot_user: User) -> Dict[int, module_view=True, issue_views_view=True, ) + project.save(created_by_id=bot_user.id, disable_auto_set_user=True) # Create project members ProjectMember.objects.bulk_create([ @@ -187,13 +188,13 @@ def create_project_states( state_id = state_seed.pop("id") project_id = state_seed.pop("project_id") - state = State.objects.create( + state = State( **state_seed, project_id=project_map[project_id], workspace=workspace, created_by_id=bot_user.id, ) - + state.save(created_by_id=bot_user.id, disable_auto_set_user=True) state_map[state_id] = state.id logger.info(f"Task: workspace_seed_task -> State {state_id} created") return state_map @@ -220,12 +221,13 @@ def create_project_labels( for label_seed in label_seeds: label_id = label_seed.pop("id") project_id = label_seed.pop("project_id") - label = Label.objects.create( + label = Label( **label_seed, project_id=project_map[project_id], workspace=workspace, created_by_id=bot_user.id, ) + label.save(created_by_id=bot_user.id, disable_auto_set_user=True) label_map[label_id] = label.id logger.info(f"Task: workspace_seed_task -> Label {label_id} created") @@ -272,13 +274,14 @@ def create_project_issues( cycle_id = issue_seed.pop("cycle_id") module_ids = issue_seed.pop("module_ids") - issue = Issue.objects.create( + issue = Issue( **issue_seed, state_id=states_map[state_id], project_id=project_map[project_id], workspace=workspace, created_by_id=bot_user.id, ) + issue.save(created_by_id=bot_user.id, disable_auto_set_user=True) IssueSequence.objects.create( issue=issue, project_id=project_map[project_id], @@ -347,7 +350,7 @@ def create_pages(workspace: Workspace, project_map: Dict[int, uuid.UUID], bot_us for page_seed in page_seeds: page_id = page_seed.pop("id") - page = Page.objects.create( + page = Page( workspace_id=workspace.id, is_global=False, access=page_seed.get("access", Page.PUBLIC_ACCESS), @@ -361,16 +364,18 @@ def create_pages(workspace: Workspace, project_map: Dict[int, uuid.UUID], bot_us owned_by_id=bot_user.id, ) + page.save(created_by_id=bot_user.id, disable_auto_set_user=True) + logger.info(f"Task: workspace_seed_task -> Page {page_id} created") if page_seed.get("project_id") and page_seed.get("type") == "PROJECT": - ProjectPage.objects.create( + project_page = ProjectPage( workspace_id=workspace.id, project_id=project_map[page_seed.get("project_id")], page_id=page.id, created_by_id=bot_user.id, updated_by_id=bot_user.id, ) - + project_page.save(created_by_id=bot_user.id, disable_auto_set_user=True) logger.info(f"Task: workspace_seed_task -> Project Page {page_id} created") return @@ -410,7 +415,7 @@ def create_cycles(workspace: Workspace, project_map: Dict[int, uuid.UUID], bot_u start_date = timezone.now() + timedelta(days=14) end_date = start_date + timedelta(days=14) - cycle = Cycle.objects.create( + cycle = Cycle( **cycle_seed, start_date=start_date, end_date=end_date, @@ -419,6 +424,7 @@ def create_cycles(workspace: Workspace, project_map: Dict[int, uuid.UUID], bot_u created_by_id=bot_user.id, owned_by_id=bot_user.id, ) + cycle.save(created_by_id=bot_user.id, disable_auto_set_user=True) cycle_map[cycle_id] = cycle.id logger.info(f"Task: workspace_seed_task -> Cycle {cycle_id} created") @@ -446,7 +452,7 @@ def create_modules(workspace: Workspace, project_map: Dict[int, uuid.UUID], bot_ start_date = timezone.now() + timedelta(days=index * 2) end_date = start_date + timedelta(days=14) - module = Module.objects.create( + module = Module( **module_seed, start_date=start_date, target_date=end_date, @@ -454,6 +460,7 @@ def create_modules(workspace: Workspace, project_map: Dict[int, uuid.UUID], bot_ workspace=workspace, created_by_id=bot_user.id, ) + module.save(created_by_id=bot_user.id, disable_auto_set_user=True) module_map[module_id] = module.id logger.info(f"Task: workspace_seed_task -> Module {module_id} created") return module_map @@ -474,13 +481,15 @@ def create_views(workspace: Workspace, project_map: Dict[int, uuid.UUID], bot_us for view_seed in view_seeds: project_id = view_seed.pop("project_id") - IssueView.objects.create( + view_seed.pop("id") + issue_view = IssueView( **view_seed, project_id=project_map[project_id], workspace=workspace, created_by_id=bot_user.id, owned_by_id=bot_user.id, ) + issue_view.save(created_by_id=bot_user.id, disable_auto_set_user=True) @shared_task @@ -514,6 +523,14 @@ def workspace_seed(workspace_id: uuid.UUID) -> None: is_password_autoset=True, ) + # Add bot user to workspace as member + WorkspaceMember.objects.create( + workspace=workspace, + member=bot_user, + role=20, + company_role="", + ) + # Create a project with the same name as workspace project_map = create_project_and_member(workspace, bot_user)