forked from github/plane
[WEB-406] chore: project inbox improvement (#4151)
* chore: inbox issue status pill improvement * chore: loader inconsistancy resolved * chore: accepted and decline inbox issue validation * chore: removed clear all button in applied filters * chore: inbox issue create label improvement * chore: updated label filter * chore: updated fetching activites and comments * chore: inbox filters date * chore: removed the print statement * chore: inbox date filter updated * chore: handled custom date filter in inbox issue query params * chore: handled custom date filter in inbox issue single select * chore: inbox custom date filter updated * chore: inbox sidebar filter improvement * chore: inbox sidebar filter improvement * chore: duplicate issue detail * chore: duplicate inbox issue improvement * chore: lint issue resolved --------- Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
This commit is contained in:
@@ -55,6 +55,9 @@ class InboxIssueSerializer(BaseSerializer):
|
||||
|
||||
class InboxIssueDetailSerializer(BaseSerializer):
|
||||
issue = IssueDetailSerializer(read_only=True)
|
||||
duplicate_issue_detail = IssueInboxSerializer(
|
||||
read_only=True, source="duplicate_to"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = InboxIssue
|
||||
@@ -63,6 +66,7 @@ class InboxIssueDetailSerializer(BaseSerializer):
|
||||
"status",
|
||||
"duplicate_to",
|
||||
"snoozed_till",
|
||||
"duplicate_issue_detail",
|
||||
"source",
|
||||
"issue",
|
||||
]
|
||||
|
||||
@@ -168,9 +168,8 @@ class InboxIssueViewSet(BaseViewSet):
|
||||
).distinct()
|
||||
|
||||
def list(self, request, slug, project_id):
|
||||
workspace = Workspace.objects.filter(slug=slug).first()
|
||||
inbox_id = Inbox.objects.filter(
|
||||
workspace_id=workspace.id, project_id=project_id
|
||||
workspace__slug=slug, project_id=project_id
|
||||
).first()
|
||||
filters = issue_filters(request.GET, "GET", "issue__")
|
||||
inbox_issue = (
|
||||
@@ -264,9 +263,8 @@ class InboxIssueViewSet(BaseViewSet):
|
||||
notification=True,
|
||||
origin=request.META.get("HTTP_ORIGIN"),
|
||||
)
|
||||
workspace = Workspace.objects.filter(slug=slug).first()
|
||||
inbox_id = Inbox.objects.filter(
|
||||
workspace_id=workspace.id, project_id=project_id
|
||||
workspace__slug=slug, project_id=project_id
|
||||
).first()
|
||||
# create an inbox issue
|
||||
inbox_issue = InboxIssue.objects.create(
|
||||
@@ -279,9 +277,8 @@ class InboxIssueViewSet(BaseViewSet):
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
|
||||
def partial_update(self, request, slug, project_id, issue_id):
|
||||
workspace = Workspace.objects.filter(slug=slug).first()
|
||||
inbox_id = Inbox.objects.filter(
|
||||
workspace_id=workspace.id, project_id=project_id
|
||||
workspace__slug=slug, project_id=project_id
|
||||
).first()
|
||||
inbox_issue = InboxIssue.objects.get(
|
||||
issue_id=issue_id,
|
||||
@@ -307,9 +304,12 @@ class InboxIssueViewSet(BaseViewSet):
|
||||
|
||||
# Get issue data
|
||||
issue_data = request.data.pop("issue", False)
|
||||
|
||||
if bool(issue_data):
|
||||
issue = self.get_queryset().filter(pk=inbox_issue.issue_id).first()
|
||||
issue = Issue.objects.get(
|
||||
pk=inbox_issue.issue_id,
|
||||
workspace__slug=slug,
|
||||
project_id=project_id,
|
||||
)
|
||||
# Only allow guests and viewers to edit name and description
|
||||
if project_member.role <= 10:
|
||||
# viewers and guests since only viewers and guests
|
||||
@@ -406,9 +406,8 @@ class InboxIssueViewSet(BaseViewSet):
|
||||
return Response(serializer, status=status.HTTP_200_OK)
|
||||
|
||||
def retrieve(self, request, slug, project_id, issue_id):
|
||||
workspace = Workspace.objects.filter(slug=slug).first()
|
||||
inbox_id = Inbox.objects.filter(
|
||||
workspace_id=workspace.id, project_id=project_id
|
||||
workspace__slug=slug, project_id=project_id
|
||||
).first()
|
||||
inbox_issue = (
|
||||
InboxIssue.objects.select_related("issue")
|
||||
@@ -445,9 +444,8 @@ class InboxIssueViewSet(BaseViewSet):
|
||||
)
|
||||
|
||||
def destroy(self, request, slug, project_id, issue_id):
|
||||
workspace = Workspace.objects.filter(slug=slug).first()
|
||||
inbox_id = Inbox.objects.filter(
|
||||
workspace_id=workspace.id, project_id=project_id
|
||||
workspace__slug=slug, project_id=project_id
|
||||
).first()
|
||||
inbox_issue = InboxIssue.objects.get(
|
||||
issue_id=issue_id,
|
||||
|
||||
@@ -52,9 +52,9 @@ def string_date_filter(
|
||||
filter[f"{date_filter}__gte"] = now - timedelta(weeks=duration)
|
||||
else:
|
||||
if offset == "fromnow":
|
||||
filter[f"{date_filter}__lte"] = now + timedelta(days=duration)
|
||||
filter[f"{date_filter}__lte"] = now + timedelta(weeks=duration)
|
||||
else:
|
||||
filter[f"{date_filter}__lte"] = now - timedelta(days=duration)
|
||||
filter[f"{date_filter}__lte"] = now - timedelta(weeks=duration)
|
||||
|
||||
|
||||
def date_filter(filter, date_term, queries):
|
||||
|
||||
Reference in New Issue
Block a user