Skip to content

Commit 84010c0

Browse files
committed
fixup! feat(project): add mutation to delete assets in bulk
1 parent 8b17f8c commit 84010c0

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

apps/project/graphql/mutations.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ async def delete_project_assets(
122122
project_id=project_id,
123123
type=AssetTypeEnum.INPUT,
124124
input_type__in=asset_input_type,
125-
marked_as_deleted=False,
126125
)
127126
.aupdate(marked_as_deleted=True)
128127
)

apps/project/graphql/queries.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from apps.project.custom_options import get_custom_options
99
from apps.project.graphql.inputs.inputs import ProjectNameInput
10-
from apps.project.models import Organization, Project, ProjectTypeEnum
10+
from apps.project.models import Organization, Project, ProjectAsset, ProjectTypeEnum
1111
from utils.geo.raster_tile_server.config import RasterConfig, RasterTileServerNameEnum, RasterTileServerNameEnumWithoutCustom
1212
from utils.geo.vector_tile_server.config import VectorConfig, VectorTileServerNameEnum, VectorTileServerNameEnumWithoutCustom
1313

@@ -88,11 +88,19 @@ def default_custom_options(self, project_type: ProjectTypeEnum) -> list[CustomOp
8888
project_asset: ProjectAssetType = strawberry_django.field(extensions=[IsAuthenticated()])
8989

9090
# --- Paginated
91-
project_assets: OffsetPaginated[ProjectAssetType] = strawberry_django.offset_paginated(
91+
@strawberry_django.offset_paginated(
92+
OffsetPaginated[ProjectAssetType],
9293
order=ProjectAssetOrder,
9394
filters=ProjectAssetFilter,
9495
extensions=[IsAuthenticated()],
9596
)
97+
def project_assets(
98+
self,
99+
include_all: bool = False,
100+
) -> QuerySet[ProjectAsset]:
101+
if include_all:
102+
return ProjectAsset.objects.all()
103+
return ProjectAsset.usable_objects()
96104

97105
organization: OrganizationType = strawberry_django.field(extensions=[IsAuthenticated()])
98106
public_organization: OrganizationType = strawberry_django.field()

apps/tutorial/graphql/queries.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from strawberry_django.pagination import OffsetPaginated
55
from strawberry_django.permissions import IsAuthenticated
66

7-
from apps.tutorial.models import Tutorial
7+
from apps.tutorial.models import Tutorial, TutorialAsset
88

99
from .filters import TutorialAssetFilter, TutorialFilter
1010
from .orders import TutorialAssetOrder, TutorialOrder
@@ -35,8 +35,16 @@ def tutorials(
3535
tutorial_asset: TutorialAssetType = strawberry_django.field(extensions=[IsAuthenticated()])
3636

3737
# --- Paginated
38-
tutorial_assets: OffsetPaginated[TutorialAssetType] = strawberry_django.offset_paginated(
38+
@strawberry_django.offset_paginated(
39+
OffsetPaginated[TutorialAssetType],
3940
order=TutorialAssetOrder,
4041
filters=TutorialAssetFilter,
4142
extensions=[IsAuthenticated()],
4243
)
44+
def tutorial_assets(
45+
self,
46+
include_all: bool = False,
47+
) -> QuerySet[TutorialAsset]:
48+
if include_all:
49+
return TutorialAsset.objects.all()
50+
return TutorialAsset.usable_objects()

schema.graphql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2046,7 +2046,7 @@ type Query {
20462046
organizations(includeAll: Boolean! = false, filters: OrganizationFilter, order: OrganizationOrder, pagination: OffsetPaginationInput): OrganizationTypeOffsetPaginated! @isAuthenticated
20472047
project(id: ID!): ProjectType! @isAuthenticated
20482048
projectAsset(id: ID!): ProjectAssetType! @isAuthenticated
2049-
projectAssets(pagination: OffsetPaginationInput, filters: ProjectAssetFilter, order: ProjectAssetOrder): ProjectAssetTypeOffsetPaginated! @isAuthenticated
2049+
projectAssets(includeAll: Boolean! = false, filters: ProjectAssetFilter, order: ProjectAssetOrder, pagination: OffsetPaginationInput): ProjectAssetTypeOffsetPaginated! @isAuthenticated
20502050
projectName(params: ProjectNameInput): String!
20512051
projects(includeAll: Boolean! = false, filters: ProjectFilter, order: ProjectOrder, pagination: OffsetPaginationInput): ProjectTypeOffsetPaginated! @isAuthenticated
20522052
publicOrganization(id: ID!): OrganizationType!
@@ -2056,7 +2056,7 @@ type Query {
20562056
tileServers: RasterTileServersType! @isAuthenticated
20572057
tutorial(id: ID!): TutorialType! @isAuthenticated
20582058
tutorialAsset(id: ID!): TutorialAssetType! @isAuthenticated
2059-
tutorialAssets(pagination: OffsetPaginationInput, filters: TutorialAssetFilter, order: TutorialAssetOrder): TutorialAssetTypeOffsetPaginated! @isAuthenticated
2059+
tutorialAssets(includeAll: Boolean! = false, filters: TutorialAssetFilter, order: TutorialAssetOrder, pagination: OffsetPaginationInput): TutorialAssetTypeOffsetPaginated! @isAuthenticated
20602060
tutorials(includeAll: Boolean! = false, filters: TutorialFilter, order: TutorialOrder, pagination: OffsetPaginationInput): TutorialTypeOffsetPaginated! @isAuthenticated
20612061
users(filters: UserFilter, order: UserOrder, pagination: OffsetPaginationInput): UserTypeOffsetPaginated! @isAuthenticated
20622062
}

0 commit comments

Comments
 (0)