* chore: migrations and backmigration to move attachments to file asset * chore: move attachments to file assets * chore: update migration file to include created by and updated by and size * chore: remove uninmport errors * chore: make size as float field * fix: file asset uploads * chore: asset uploads migration changes * chore: v2 assets endpoint * chore: remove unused imports * chore: issue attachments * chore: issue attachments * chore: workspace logo endpoints * chore: private bucket changes * chore: user asset endpoint * chore: add logo_url validation * chore: cover image urlk * chore: change asset max length * chore: pages endpoint * chore: store the storage_metadata only when none * chore: attachment asset apis * chore: update create private bucket * chore: make bucket private * chore: fix response of user uploads * fix: response of user uploads * fix: job to fix file asset uploads * fix: user asset endpoints * chore: avatar for user profile * chore: external apis user url endpoint * chore: upload workspace and user asset actions updated * chore: analytics endpoint * fix: analytics export * chore: avatar urls * chore: update user avatar instances * chore: avatar urls for assignees and creators * chore: bucket permission script * fix: all user avatr instances in the web app * chore: update project cover image logic * fix: issue attachment endpoint * chore: patch endpoint for issue attachment * chore: attachments * chore: change attachment storage class * chore: update issue attachment endpoints * fix: issue attachment * chore: update issue attachment implementation * chore: page asset endpoints * fix: web build errors * chore: attachments * chore: page asset urls * chore: comment and issue asset endpoints * chore: asset endpoints * chore: attachment endpoints * chore: bulk asset endpoint * chore: restore endpoint * chore: project assets endpoints * chore: asset url * chore: add delete asset endpoints * chore: fix asset upload endpoint * chore: update patch endpoints * chore: update patch endpoint * chore: update editor image handling * chore: asset restore endpoints * chore: avatar url for space assets * chore: space app assets migration * fix: space app urls * chore: space endpoints * fix: old editor images rendering logic * fix: issue archive and attachment activity * chore: asset deletes * chore: attachment delete * fix: issue attachment * fix: issue attachment get * chore: cover image url for projects * chore: remove duplicate py file * fix: url check function * chore: chore project cover asset delete * fix: migrations * chore: delete migration files * chore: update bucket * fix: build errors * chore: add asset url in intake attachment * chore: project cover fix * chore: update next.config * chore: delete old workspace logos * chore: workspace assets * chore: asset get for space * chore: update project modal * chore: remove unused imports * fix: space app editor helper * chore: update rich-text read-only editor * chore: create multiple column for entity identifiers * chore: update migrations * chore: remove entity identifier * fix: issue assets * chore: update maximum file size logic * chore: update editor max file size logic * fix: close modal after removing workspace logo * chore: update uploaded asstes' status post issue creation * chore: added file size limit to the space app * dev: add file size limit restriction on all endpoints * fix: remove old workspace logo and user avatar --------- Co-authored-by: pablohashescobar <nikhilschacko@gmail.com>
310 lines
9.3 KiB
Python
310 lines
9.3 KiB
Python
from django.urls import path
|
|
|
|
from plane.app.views import (
|
|
BulkCreateIssueLabelsEndpoint,
|
|
BulkDeleteIssuesEndpoint,
|
|
SubIssuesEndpoint,
|
|
IssueLinkViewSet,
|
|
IssueAttachmentEndpoint,
|
|
CommentReactionViewSet,
|
|
ExportIssuesEndpoint,
|
|
IssueActivityEndpoint,
|
|
IssueArchiveViewSet,
|
|
IssueCommentViewSet,
|
|
IssueListEndpoint,
|
|
IssueReactionViewSet,
|
|
IssueRelationViewSet,
|
|
IssueSubscriberViewSet,
|
|
IssueUserDisplayPropertyEndpoint,
|
|
IssueViewSet,
|
|
LabelViewSet,
|
|
BulkArchiveIssuesEndpoint,
|
|
DeletedIssuesListViewSet,
|
|
IssuePaginatedViewSet,
|
|
IssueAttachmentV2Endpoint,
|
|
)
|
|
|
|
urlpatterns = [
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/list/",
|
|
IssueListEndpoint.as_view(),
|
|
name="project-issue",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/",
|
|
IssueViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue",
|
|
),
|
|
# updated v2 paginated issues
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/v2/issues/",
|
|
IssuePaginatedViewSet.as_view({"get": "list"}),
|
|
name="project-issues-paginated",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:pk>/",
|
|
IssueViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-labels/",
|
|
LabelViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-labels",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-labels/<uuid:pk>/",
|
|
LabelViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-labels",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/bulk-create-labels/",
|
|
BulkCreateIssueLabelsEndpoint.as_view(),
|
|
name="project-bulk-labels",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/bulk-delete-issues/",
|
|
BulkDeleteIssuesEndpoint.as_view(),
|
|
name="project-issues-bulk",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/bulk-archive-issues/",
|
|
BulkArchiveIssuesEndpoint.as_view(),
|
|
name="bulk-archive-issues",
|
|
),
|
|
##
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/sub-issues/",
|
|
SubIssuesEndpoint.as_view(),
|
|
name="sub-issues",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-links/",
|
|
IssueLinkViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-links",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-links/<uuid:pk>/",
|
|
IssueLinkViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-links",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-attachments/",
|
|
IssueAttachmentEndpoint.as_view(),
|
|
name="project-issue-attachments",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-attachments/<uuid:pk>/",
|
|
IssueAttachmentEndpoint.as_view(),
|
|
name="project-issue-attachments",
|
|
),
|
|
# V2 Attachments
|
|
path(
|
|
"assets/v2/workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/attachments/",
|
|
IssueAttachmentV2Endpoint.as_view(),
|
|
name="project-issue-attachments",
|
|
),
|
|
path(
|
|
"assets/v2/workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/attachments/<uuid:pk>/",
|
|
IssueAttachmentV2Endpoint.as_view(),
|
|
name="project-issue-attachments",
|
|
),
|
|
## Export Issues
|
|
path(
|
|
"workspaces/<str:slug>/export-issues/",
|
|
ExportIssuesEndpoint.as_view(),
|
|
name="export-issues",
|
|
),
|
|
## End Issues
|
|
## Issue Activity
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/history/",
|
|
IssueActivityEndpoint.as_view(),
|
|
name="project-issue-history",
|
|
),
|
|
## Issue Activity
|
|
## IssueComments
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/comments/",
|
|
IssueCommentViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-comment",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/comments/<uuid:pk>/",
|
|
IssueCommentViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-comment",
|
|
),
|
|
## End IssueComments
|
|
# Issue Subscribers
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-subscribers/",
|
|
IssueSubscriberViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-subscribers",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-subscribers/<uuid:subscriber_id>/",
|
|
IssueSubscriberViewSet.as_view({"delete": "destroy"}),
|
|
name="project-issue-subscribers",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/subscribe/",
|
|
IssueSubscriberViewSet.as_view(
|
|
{
|
|
"get": "subscription_status",
|
|
"post": "subscribe",
|
|
"delete": "unsubscribe",
|
|
}
|
|
),
|
|
name="project-issue-subscribers",
|
|
),
|
|
## End Issue Subscribers
|
|
# Issue Reactions
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/reactions/",
|
|
IssueReactionViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-reactions",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/reactions/<str:reaction_code>/",
|
|
IssueReactionViewSet.as_view(
|
|
{
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-reactions",
|
|
),
|
|
## End Issue Reactions
|
|
# Comment Reactions
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/comments/<uuid:comment_id>/reactions/",
|
|
CommentReactionViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-comment-reactions",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/comments/<uuid:comment_id>/reactions/<str:reaction_code>/",
|
|
CommentReactionViewSet.as_view(
|
|
{
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-comment-reactions",
|
|
),
|
|
## End Comment Reactions
|
|
## IssueUserProperty
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/user-properties/",
|
|
IssueUserDisplayPropertyEndpoint.as_view(),
|
|
name="project-issue-display-properties",
|
|
),
|
|
## IssueUserProperty End
|
|
## Issue Archives
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/archived-issues/",
|
|
IssueArchiveViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
}
|
|
),
|
|
name="project-issue-archive",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:pk>/archive/",
|
|
IssueArchiveViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"post": "archive",
|
|
"delete": "unarchive",
|
|
}
|
|
),
|
|
name="project-issue-archive-unarchive",
|
|
),
|
|
## End Issue Archives
|
|
## Issue Relation
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-relation/",
|
|
IssueRelationViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="issue-relation",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/remove-relation/",
|
|
IssueRelationViewSet.as_view(
|
|
{
|
|
"post": "remove_relation",
|
|
}
|
|
),
|
|
name="issue-relation",
|
|
),
|
|
## End Issue Relation
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/deleted-issues/",
|
|
DeletedIssuesListViewSet.as_view(),
|
|
name="deleted-issues",
|
|
),
|
|
]
|