diff --git a/apiserver/plane/app/urls/workspace.py b/apiserver/plane/app/urls/workspace.py index b94d871da5e..b5eb3ff1e05 100644 --- a/apiserver/plane/app/urls/workspace.py +++ b/apiserver/plane/app/urls/workspace.py @@ -229,11 +229,17 @@ ), name="workspace-quick-links", ), + # Widgets path( "workspaces//home-preferences/", WorkspacePreferenceViewSet.as_view(), name="workspace-home-preference", ), + path( + "workspaces//home-preferences//", + WorkspacePreferenceViewSet.as_view(), + name="workspace-home-preference", + ), path( "workspaces//recent-visits/", UserRecentVisitViewSet.as_view({"get": "list"}), diff --git a/apiserver/plane/app/views/workspace/preference.py b/apiserver/plane/app/views/workspace/preference.py index 67412aca89c..1980bd9e892 100644 --- a/apiserver/plane/app/views/workspace/preference.py +++ b/apiserver/plane/app/views/workspace/preference.py @@ -22,8 +22,6 @@ def get(self, request, slug): create_preference_keys = [] - print(WorkspaceHomePreference.HomeWidgetKeys.choices, "Print Choices") - keys = [key for key, _ in WorkspaceHomePreference.HomeWidgetKeys.choices] for preference in keys: @@ -46,7 +44,21 @@ def get(self, request, slug): workspace_user_home_preferences = WorkspaceHomePreference.objects.filter( workspace=workspace, user=request.user - ).values("key", "is_enabled", "sort_order", "config") + ).values("key", "is_enabled", "sort_order", "config", "id") - # for preference in home_preferences: return Response(workspace_user_home_preferences, status=status.HTTP_200_OK) + + @allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST], level="WORKSPACE") + def patch(self, request, slug, pk): + preference = WorkspaceHomePreference.objects.filter(pk=pk, workspace__slug=slug) + + if preference: + WorkspaceHomePreference.objects.update( + is_enabled=request.data["is_enabled"] + ) + + preference = WorkspaceHomePreference.objects.filter( + pk=pk, user=request.user + ).values("key", "is_enabled", "sort_order", "config", "id") + + return Response(preference, status=status.HTTP_200_OK)