Compare commits

...

12 Commits

Author SHA1 Message Date
NarayanBavisetti
7f7a85d235 Merge branch 'develop' of github.com:makeplane/plane into chore/page_structuring 2023-11-16 18:28:23 +05:30
NarayanBavisetti
f113375a15 fix: lock and archive fixes 2023-11-16 17:33:06 +05:30
NarayanBavisetti
71de47496a fix: resolved changes 2023-11-16 14:19:06 +05:30
NarayanBavisetti
cd8f1eb952 fix: migration fixes 2023-11-16 12:45:39 +05:30
NarayanBavisetti
2028f3ede2 Merge branch 'develop' of github.com:makeplane/plane into fix/page_structuring 2023-11-16 12:39:49 +05:30
NarayanBavisetti
572be0fe60 fix: added issue embed 2023-11-16 12:36:30 +05:30
NarayanBavisetti
176e184220 fix: back migration of page blocks 2023-11-15 17:18:21 +05:30
NarayanBavisetti
73c2416055 fix: migration and optimisation 2023-11-13 19:12:55 +05:30
NarayanBavisetti
598c22f91d Merge branch 'develop' of github.com:makeplane/plane into fix/page_structuring 2023-11-13 17:23:00 +05:30
NarayanBavisetti
03026449ea fix: page transaction model 2023-10-11 15:13:05 +05:30
NarayanBavisetti
1039337c45 Merge branch 'develop' of github.com:makeplane/plane into fix/page_structuring 2023-10-09 11:16:33 +05:30
NarayanBavisetti
5216f184c1 fix: page transaction model 2023-10-06 12:00:18 +05:30

View File

@@ -87,15 +87,10 @@ class PageViewSet(BaseViewSet):
.annotate(is_favorite=Exists(subquery))
.order_by(self.request.GET.get("order_by", "-created_at"))
.prefetch_related("labels")
.order_by("-is_favorite","-created_at")
.order_by("-is_favorite", "-created_at")
.distinct()
)
def perform_create(self, serializer):
serializer.save(
project_id=self.kwargs.get("project_id"), owned_by=self.request.user
)
def create(self, request, slug, project_id):
serializer = PageSerializer(
data=request.data,
@@ -148,10 +143,8 @@ class PageViewSet(BaseViewSet):
status=status.HTTP_400_BAD_REQUEST,
)
def lock(self, request, slug, project_id, pk):
page = Page.objects.filter(
pk=pk, workspace__slug=slug, project_id=project_id
)
def lock(self, request, slug, project_id, page_id):
page = Page.objects.get(pk=page_id, workspace__slug=slug, project_id=project_id)
# only the owner can lock the page
if request.user.id != page.owned_by_id:
@@ -163,8 +156,8 @@ class PageViewSet(BaseViewSet):
page.save()
return Response(status=status.HTTP_204_NO_CONTENT)
def unlock(self, request, slug, project_id, pk):
page = Page.objects.get(pk=pk, workspace__slug=slug, project_id=project_id)
def unlock(self, request, slug, project_id, page_id):
page = Page.objects.get(pk=page_id, workspace__slug=slug, project_id=project_id)
# only the owner can unlock the page
if request.user.id != page.owned_by_id:
@@ -242,11 +235,46 @@ class PageViewSet(BaseViewSet):
)
def archive(self, request, slug, project_id, page_id):
_ = Page.objects.get(
project_id=project_id,
owned_by_id=request.user.id,
workspace__slug=slug,
pk=page_id,
page = Page.objects.get(pk=page_id, workspace__slug=slug, project_id=project_id)
if page.owned_by_id != request.user.id:
return Response(
{"error": "Only the owner of the page can archive a page"},
status=status.HTTP_204_NO_CONTENT,
)
unarchive_archive_page_and_descendants(page_id, datetime.now())
return Response(status=status.HTTP_400_BAD_REQUEST)
def unarchive(self, request, slug, project_id, page_id):
page = Page.objects.get(pk=page_id, workspace__slug=slug, project_id=project_id)
if page.owned_by_id != request.user.id:
return Response(
{"error": "Only the owner of the page can unarchive a page"},
status=status.HTTP_400_BAD_REQUEST,
)
page.parent = None
page.save()
unarchive_archive_page_and_descendants(page_id, None)
return Response(status=status.HTTP_204_NO_CONTENT)
def archive_list(self, request, slug, project_id):
pages = (
Page.objects.filter(
project_id=project_id,
workspace__slug=slug,
)
.filter(archived_at__isnull=False)
.filter(parent_id__isnull=True)
)
return Response(
PageSerializer(pages, many=True).data, status=status.HTTP_200_OK
)
unarchive_archive_page_and_descendants(page_id, datetime.now())
@@ -417,4 +445,3 @@ class SubPagesEndpoint(BaseAPIView):
return Response(
SubPageSerializer(pages, many=True).data, status=status.HTTP_200_OK
)