Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release: v0.24.1 #6183

Merged
merged 52 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
d0f9a4d
chore: add redirection to plane logo in invitations page (#6125)
prateekshourya29 Nov 29, 2024
75ada1b
fix: constants package updates
sriramveeraghanta Dec 1, 2024
1b90339
[WEB-2799] chore: global component and code refactor (#6131)
anmolsinghbhatia Dec 2, 2024
1953d6f
[WEB-2762] chore: loader code refactor (#5992)
anmolsinghbhatia Dec 2, 2024
63bc01f
[WEB-2774]fix:reordering favorites and favorite folders (#6119)
vamsikrishnamathala Dec 2, 2024
5150c66
reduced the components moved (#6110)
vamsikrishnamathala Dec 2, 2024
fc52936
fix: escape markdown content for images (#6096)
aaryan610 Dec 2, 2024
11bfbe5
fix: checked colored todo list item (#6113)
aaryan610 Dec 2, 2024
9f14167
refactor: editor code splitting (#6102)
aaryan610 Dec 2, 2024
8c04aa6
dev: revamp pages authorization (#6094)
aaryan610 Dec 2, 2024
3c6006d
[PE-31] feat: Add lock unlock archive restore realtime sync (#5629)
Palanikannan1437 Dec 2, 2024
da00712
fix half block dragging (#6135)
rahulramesha Dec 2, 2024
fe5999c
fix: intake issue permission (#6136)
anmolsinghbhatia Dec 2, 2024
2768f56
[WEB-2802]fix:filters drop down fix safari (#6133)
vamsikrishnamathala Dec 3, 2024
849d989
chore: community edition product updates link (#6132)
prateekshourya29 Dec 3, 2024
fe43300
fix: pages empty state authorization (#6141)
aaryan610 Dec 3, 2024
b6ab853
chore: filter out the removed cycle from issue detail (#6138)
NarayanBavisetti Dec 3, 2024
f02a2b0
fix: export btn overlap issue (#6149)
gakshita Dec 4, 2024
bb8a156
fix: removed changelog endpoint (#6146)
gurusainath Dec 4, 2024
64a44f4
style: add custom class to editor paragraph and heading blocks (#6143)
aaryan610 Dec 4, 2024
a153de3
fixed piority icons shape (#6144)
vamsikrishnamathala Dec 4, 2024
31b6d52
fix root issue store to have updated url params at all times (#6147)
rahulramesha Dec 4, 2024
1b92a18
chore: updated the ssr rendering on sites (#6145)
gurusainath Dec 4, 2024
d537e56
[WEB-2802]fix: dorpdown visibility issue in safari (#6151)
vamsikrishnamathala Dec 4, 2024
b73ea37
chore: improve the cascading logic (#6152)
NarayanBavisetti Dec 4, 2024
fa3aa36
fix: lint errors
sriramveeraghanta Dec 4, 2024
fb3295f
fix: sites opengraph title and description added
sriramveeraghanta Dec 4, 2024
3bccda0
chore: formatting and typo fixes
sriramveeraghanta Dec 4, 2024
66652a5
refactor project states to ake way for new features (#6156)
rahulramesha Dec 5, 2024
6cd8af1
chore: updated powered by (#6160)
gurusainath Dec 5, 2024
aa1e192
improvement: update fetch map during workspace-level module fetch to …
prateekshourya29 Dec 5, 2024
d55ee6d
fix: remove unwanted states fetching logic to avoid multiple API call…
prateekshourya29 Dec 5, 2024
a612a17
chore remove unnecessary CTA (#6161)
rahulramesha Dec 5, 2024
b1c340b
fix: build branch workflow upload artifacts
sriramveeraghanta Dec 5, 2024
4b5a2bc
chore: lint related changes and packaging fixes (#6163)
sriramveeraghanta Dec 6, 2024
727dd40
fix: updated lint command in packages
sriramveeraghanta Dec 6, 2024
4499a5f
Sync issues and workspace data when the issue properties like labels/…
SatishGandham Dec 6, 2024
666ddf7
[WEB-2382]chore:notification snooze modal (#6164)
vamsikrishnamathala Dec 6, 2024
9ee41ec
fix: email check validation to handle case in-sensitive email (#6168)
gurusainath Dec 7, 2024
02308ee
fix: django version upgrade
sriramveeraghanta Dec 8, 2024
cba41e0
fix: upgrading the express version
sriramveeraghanta Dec 8, 2024
b21d190
fix: added github pull request template
sriramveeraghanta Dec 8, 2024
a85e592
fix: creating a new sub-issue from workspace level (#6169)
aaryan610 Dec 9, 2024
5c907db
[WEB-2818] chore: project navigation items code refactor (#6170)
anmolsinghbhatia Dec 9, 2024
547c138
fix: ui package module resolution
sriramveeraghanta Dec 9, 2024
d046194
[WEB-2382]chore: notifications code improvement (#6172)
vamsikrishnamathala Dec 9, 2024
ff8bbed
chore: changed the soft deletion logic (#6171)
NarayanBavisetti Dec 9, 2024
205395e
fix: changed checkboxes to toggles on notifications settings page (#6…
vihar Dec 9, 2024
216a69f
chore: workspace draft and inbox issue local db mutation (#6180)
anmolsinghbhatia Dec 10, 2024
6e56ea4
fix: updated changelog url in apiserver
sriramveeraghanta Dec 10, 2024
f06b1b8
fix: updated package version
sriramveeraghanta Dec 10, 2024
d0f3987
fix: instance changelog url updated
sriramveeraghanta Dec 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 20 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
### Description
<!-- Provide a detailed description of the changes in this PR -->

### Type of Change
<!-- Put an 'x' in the boxes that apply -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Feature (non-breaking change which adds functionality)
- [ ] Improvement (change that would cause existing functionality to not work as expected)
- [ ] Code refactoring
- [ ] Performance improvements
- [ ] Documentation update

### Screenshots and Media (if applicable)
<!-- Add screenshots to help explain your changes, ideally showcasing before and after -->

### Test Scenarios
<!-- Please describe the tests that you ran to verify your changes -->

### References
<!-- Link related issues if there are any -->
4 changes: 2 additions & 2 deletions .github/workflows/build-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -314,8 +314,8 @@ jobs:
buildx-endpoint: ${{ needs.branch_build_setup.outputs.gh_buildx_endpoint }}

attach_assets_to_build:
if: ${{ needs.branch_build_setup.outputs.build_type == 'Build' }}
name: Attach Assets to Build
if: ${{ needs.branch_build_setup.outputs.build_type == 'Release' }}
name: Attach Assets to Release
runs-on: ubuntu-20.04
needs: [branch_build_setup]
steps:
Expand Down
2 changes: 1 addition & 1 deletion admin/core/components/admin-sidebar/root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import { FC, useEffect, useRef } from "react";
import { observer } from "mobx-react";
// plane helpers
import { useOutsideClickDetector } from "@plane/helpers";
import { useOutsideClickDetector } from "@plane/hooks";
// components
import { HelpSection, SidebarMenu, SidebarDropdown } from "@/components/admin-sidebar";
// hooks
Expand Down
7 changes: 4 additions & 3 deletions admin/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "admin",
"version": "0.24.0",
"version": "0.24.1",
"private": true,
"scripts": {
"dev": "turbo run develop",
Expand All @@ -14,9 +14,10 @@
"dependencies": {
"@headlessui/react": "^1.7.19",
"@plane/constants": "*",
"@plane/helpers": "*",
"@plane/hooks": "*",
"@plane/types": "*",
"@plane/ui": "*",
"@plane/utils": "*",
"@sentry/nextjs": "^8.32.0",
"@tailwindcss/typography": "^0.5.9",
"@types/lodash": "^4.17.0",
Expand All @@ -26,7 +27,7 @@
"lucide-react": "^0.356.0",
"mobx": "^6.12.0",
"mobx-react": "^9.1.1",
"next": "^14.2.12",
"next": "^14.2.20",
"next-themes": "^0.2.1",
"postcss": "^8.4.38",
"react": "^18.3.1",
Expand Down
2 changes: 1 addition & 1 deletion apiserver/Dockerfile.api
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ FROM python:3.12.5-alpine AS backend
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV PIP_DISABLE_PIP_VERSION_CHECK=1
ENV INSTANCE_CHANGELOG_URL https://api.plane.so/api/public/anchor/8e1c2e4c7bc5493eb7731be3862f6960/pages/
ENV INSTANCE_CHANGELOG_URL https://sites.plane.so/pages/691ef037bcfe416a902e48cb55f59891/

WORKDIR /code

Expand Down
2 changes: 1 addition & 1 deletion apiserver/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ FROM python:3.12.5-alpine AS backend
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV PIP_DISABLE_PIP_VERSION_CHECK=1
ENV INSTANCE_CHANGELOG_URL https://api.plane.so/api/public/anchor/8e1c2e4c7bc5493eb7731be3862f6960/pages/
ENV INSTANCE_CHANGELOG_URL https://sites.plane.so/pages/691ef037bcfe416a902e48cb55f59891/

RUN apk --no-cache add \
"bash~=5.2" \
Expand Down
2 changes: 1 addition & 1 deletion apiserver/package.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"name": "plane-api",
"version": "0.24.0"
"version": "0.24.1"
}
4 changes: 1 addition & 3 deletions apiserver/plane/app/urls/workspace.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,7 @@
# user workspace invitations
path(
"users/me/workspaces/invitations/",
UserWorkspaceInvitationsViewSet.as_view(
{"get": "list", "post": "create"}
),
UserWorkspaceInvitationsViewSet.as_view({"get": "list", "post": "create"}),
name="user-workspace-invitations",
),
path(
Expand Down
12 changes: 4 additions & 8 deletions apiserver/plane/app/views/issue/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
UUIDField,
Value,
Subquery,
Case,
When,
)
from django.db.models.functions import Coalesce
from django.utils import timezone
Expand Down Expand Up @@ -445,12 +443,10 @@ def retrieve(self, request, slug, project_id, pk=None):
.select_related("workspace", "project", "state", "parent")
.prefetch_related("assignees", "labels", "issue_module__module")
.annotate(
cycle_id=Case(
When(
issue_cycle__cycle__deleted_at__isnull=True,
then=F("issue_cycle__cycle_id"),
),
default=None,
cycle_id=Subquery(
CycleIssue.objects.filter(issue=OuterRef("id")).values("cycle_id")[
:1
]
)
)
.annotate(
Expand Down
16 changes: 8 additions & 8 deletions apiserver/plane/app/views/page/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def get_queryset(self):
.distinct()
)

@allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST])
@allow_permission([ROLE.ADMIN, ROLE.MEMBER])
def create(self, request, slug, project_id):
serializer = PageSerializer(
data=request.data,
Expand All @@ -134,7 +134,7 @@ def create(self, request, slug, project_id):
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

@allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST])
@allow_permission([ROLE.ADMIN, ROLE.MEMBER])
def partial_update(self, request, slug, project_id, pk):
try:
page = Page.objects.get(
Expand Down Expand Up @@ -234,7 +234,7 @@ def retrieve(self, request, slug, project_id, pk=None):
)
return Response(data, status=status.HTTP_200_OK)

@allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST])
@allow_permission([ROLE.ADMIN], model=Page, creator=True)
def lock(self, request, slug, project_id, pk):
page = Page.objects.filter(
pk=pk, workspace__slug=slug, projects__id=project_id
Expand All @@ -244,7 +244,7 @@ def lock(self, request, slug, project_id, pk):
page.save()
return Response(status=status.HTTP_204_NO_CONTENT)

@allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST])
@allow_permission([ROLE.ADMIN], model=Page, creator=True)
def unlock(self, request, slug, project_id, pk):
page = Page.objects.filter(
pk=pk, workspace__slug=slug, projects__id=project_id
Expand All @@ -255,7 +255,7 @@ def unlock(self, request, slug, project_id, pk):

return Response(status=status.HTTP_204_NO_CONTENT)

@allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST])
@allow_permission([ROLE.ADMIN], model=Page, creator=True)
def access(self, request, slug, project_id, pk):
access = request.data.get("access", 0)
page = Page.objects.filter(
Expand Down Expand Up @@ -296,7 +296,7 @@ def list(self, request, slug, project_id):
pages = PageSerializer(queryset, many=True).data
return Response(pages, status=status.HTTP_200_OK)

@allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST])
@allow_permission([ROLE.ADMIN], model=Page, creator=True)
def archive(self, request, slug, project_id, pk):
page = Page.objects.get(pk=pk, workspace__slug=slug, projects__id=project_id)

Expand All @@ -323,7 +323,7 @@ def archive(self, request, slug, project_id, pk):

return Response({"archived_at": str(datetime.now())}, status=status.HTTP_200_OK)

@allow_permission([ROLE.ADMIN, ROLE.MEMBER, ROLE.GUEST])
@allow_permission([ROLE.ADMIN], model=Page, creator=True)
def unarchive(self, request, slug, project_id, pk):
page = Page.objects.get(pk=pk, workspace__slug=slug, projects__id=project_id)

Expand All @@ -348,7 +348,7 @@ def unarchive(self, request, slug, project_id, pk):

return Response(status=status.HTTP_204_NO_CONTENT)

@allow_permission([ROLE.ADMIN], creator=True, model=Page)
@allow_permission([ROLE.ADMIN], model=Page, creator=True)
def destroy(self, request, slug, project_id, pk):
page = Page.objects.get(pk=pk, workspace__slug=slug, projects__id=project_id)

Expand Down
40 changes: 9 additions & 31 deletions apiserver/plane/app/views/project/member.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,7 @@
WorkspaceUserPermission,
)

from plane.db.models import (
Project,
ProjectMember,
IssueUserProperty,
WorkspaceMember,
)
from plane.db.models import Project, ProjectMember, IssueUserProperty, WorkspaceMember
from plane.bgtasks.project_add_user_email_task import project_add_user_email
from plane.utils.host import base_host
from plane.app.permissions.base import allow_permission, ROLE
Expand Down Expand Up @@ -83,21 +78,15 @@ def create(self, request, slug, project_id):
workspace_member_role = WorkspaceMember.objects.get(
workspace__slug=slug, member=member, is_active=True
).role
if workspace_member_role in [20] and member_roles.get(member) in [
5,
15,
]:
if workspace_member_role in [20] and member_roles.get(member) in [5, 15]:
return Response(
{
"error": "You cannot add a user with role lower than the workspace role"
},
status=status.HTTP_400_BAD_REQUEST,
)

if workspace_member_role in [5] and member_roles.get(member) in [
15,
20,
]:
if workspace_member_role in [5] and member_roles.get(member) in [15, 20]:
return Response(
{
"error": "You cannot add a user with role higher than the workspace role"
Expand Down Expand Up @@ -135,8 +124,7 @@ def create(self, request, slug, project_id):
sort_order = [
project_member.get("sort_order")
for project_member in project_members
if str(project_member.get("member_id"))
== str(member.get("member_id"))
if str(project_member.get("member_id")) == str(member.get("member_id"))
]
# Create a new project member
bulk_project_members.append(
Expand All @@ -145,9 +133,7 @@ def create(self, request, slug, project_id):
role=member.get("role", 5),
project_id=project_id,
workspace_id=project.workspace_id,
sort_order=(
sort_order[0] - 10000 if len(sort_order) else 65535
),
sort_order=(sort_order[0] - 10000 if len(sort_order) else 65535),
)
)
# Create a new issue property
Expand Down Expand Up @@ -238,9 +224,7 @@ def partial_update(self, request, slug, project_id, pk):
> requested_project_member.role
):
return Response(
{
"error": "You cannot update a role that is higher than your own role"
},
{"error": "You cannot update a role that is higher than your own role"},
status=status.HTTP_400_BAD_REQUEST,
)

Expand Down Expand Up @@ -280,9 +264,7 @@ def destroy(self, request, slug, project_id, pk):
# User cannot deactivate higher role
if requesting_project_member.role < project_member.role:
return Response(
{
"error": "You cannot remove a user having role higher than you"
},
{"error": "You cannot remove a user having role higher than you"},
status=status.HTTP_400_BAD_REQUEST,
)

Expand All @@ -303,10 +285,7 @@ def leave(self, request, slug, project_id):
if (
project_member.role == 20
and not ProjectMember.objects.filter(
workspace__slug=slug,
project_id=project_id,
role=20,
is_active=True,
workspace__slug=slug, project_id=project_id, role=20, is_active=True
).count()
> 1
):
Expand Down Expand Up @@ -344,7 +323,6 @@ def get(self, request, slug):
).values("project_id", "role")

project_members = {
str(member["project_id"]): member["role"]
for member in project_members
str(member["project_id"]): member["role"] for member in project_members
}
return Response(project_members, status=status.HTTP_200_OK)
5 changes: 3 additions & 2 deletions apiserver/plane/app/views/workspace/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
from plane.utils.constants import RESTRICTED_WORKSPACE_SLUGS
from plane.license.utils.instance_value import get_configuration_value


class WorkSpaceViewSet(BaseViewSet):
model = Workspace
serializer_class = WorkSpaceSerializer
Expand Down Expand Up @@ -81,12 +82,12 @@ def get_queryset(self):

def create(self, request):
try:
DISABLE_WORKSPACE_CREATION, = get_configuration_value(
(DISABLE_WORKSPACE_CREATION,) = get_configuration_value(
[
{
"key": "DISABLE_WORKSPACE_CREATION",
"default": os.environ.get("DISABLE_WORKSPACE_CREATION", "0"),
},
}
]
)

Expand Down
Loading
Loading