Skip to content

Commit 4ce10b5

Browse files
committed
feat(program_v2): emfleshen the program admin skellington
1 parent 702d29b commit 4ce10b5

File tree

13 files changed

+556
-32
lines changed

13 files changed

+556
-32
lines changed

backend/dimensions/graphql/dimension.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class Meta:
3131
title = graphene.String(lang=graphene.String())
3232
resolve_title = resolve_localized_field_getattr("title")
3333

34+
# TODO Slow when called once for each dimension of Ropecon
3435
@staticmethod
3536
def resolve_can_remove(dimension: Dimension, info):
3637
request: HttpRequest = info.context

backend/dimensions/graphql/dimension_value.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class DimensionValueType(DjangoObjectType):
1010
title = graphene.String(lang=graphene.String())
1111
resolve_title = resolve_localized_field_getattr("title")
1212

13+
# TODO Slow when called once for each dimension value of Ropecon
1314
@staticmethod
1415
def resolve_can_remove(value: DimensionValue, info):
1516
request: HttpRequest = info.context

backend/dimensions/graphql/mutations/delete_dimension.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ def mutate(
3535

3636
dimension.delete()
3737

38-
return DeleteDimension(slug=input.survey_slug) # type: ignore
38+
return DeleteDimension(slug=input.dimension_slug) # type: ignore
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Generated by Django 5.1.5 on 2025-04-09 06:40
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("tracon2025", "0003_remove_signupextra_certificate_delivery_address_and_more"),
9+
]
10+
11+
operations = [
12+
migrations.AlterField(
13+
model_name="signupextra",
14+
name="shirt_size",
15+
field=models.CharField(
16+
choices=[
17+
("NO_SHIRT", "Ei paitaa"),
18+
("XS", "XS Unisex"),
19+
("S", "S Unisex"),
20+
("M", "M Unisex"),
21+
("L", "L Unisex"),
22+
("XL", "XL Unisex"),
23+
("XXL", "2XL Unisex"),
24+
("3XL", "3XL Unisex"),
25+
("4XL", "4XL Unisex"),
26+
("5XL", "5XL Unisex"),
27+
("LF_XS", "XS Ladyfit"),
28+
("LF_S", "S Ladyfit"),
29+
("LF_M", "M Ladyfit"),
30+
("LF_L", "L Ladyfit"),
31+
("LF_XL", "XL Ladyfit"),
32+
("LF_XXL", "2XL Ladyfit"),
33+
("LF_3XL", "3XL Ladyfit"),
34+
("BAG", "Kangaskassi"),
35+
],
36+
default="NO_SHIRT",
37+
help_text='Ajoissa ilmoittautuneet vänkärit saavat maksuttoman työvoimapaidan tai kangaskassin. Valitse tässä haluatko paidan vai kangaskassin, sekä paidan koko. <a href="/static/tracon2022/tracon2022_shirt_sizes.png" target="_blank" rel="noopener noreferrer">Kokotaulukko</a>',
38+
max_length=8,
39+
verbose_name="Swag-valinta",
40+
),
41+
),
42+
]

backend/program_v2/graphql/meta.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,28 +109,45 @@ def resolve_annotations(meta: ProgramV2EventMeta, info, lang: str = DEFAULT_LANG
109109
def resolve_dimensions(
110110
meta: ProgramV2EventMeta,
111111
info,
112+
# TODO unify naming
112113
is_list_filter: bool = False,
113114
is_shown_in_detail: bool = False,
115+
public_only: bool = True,
116+
key_dimensions_only: bool = False,
114117
):
115118
"""
116119
`is_list_filter` - only return dimensions that are shown in the list filter.
117120
`is_shown_in_detail` - only return dimensions that are shown in the detail view.
118121
If you supply both, you only get their intersection.
119122
"""
120-
dimensions = meta.universe.dimensions.all()
123+
if public_only:
124+
dimensions = meta.universe.dimensions.filter(is_public=True)
125+
else:
126+
graphql_check_instance(
127+
meta.universe, # type: ignore
128+
info,
129+
field="dimensions",
130+
app="program_v2",
131+
)
132+
dimensions = meta.universe.dimensions.all()
121133

122134
if is_list_filter:
123135
dimensions = dimensions.filter(is_list_filter=True)
124136

125137
if is_shown_in_detail:
126138
dimensions = dimensions.filter(is_shown_in_detail=True)
127139

140+
if key_dimensions_only:
141+
dimensions = dimensions.filter(is_key_dimension=True)
142+
128143
return dimensions.order_by("order")
129144

130145
dimensions = graphene.NonNull(
131146
graphene.List(graphene.NonNull(FullDimensionType)),
132147
is_list_filter=graphene.Boolean(),
133148
is_shown_in_detail=graphene.Boolean(),
149+
public_only=graphene.Boolean(),
150+
key_dimensions_only=graphene.Boolean(),
134151
description=normalize_whitespace(resolve_dimensions.__doc__ or ""),
135152
)
136153

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Generated by Django 5.1.5 on 2025-04-09 06:40
2+
3+
from django.db import migrations, models
4+
5+
import tickets_v2.optimized_server.models.enums
6+
7+
8+
class Migration(migrations.Migration):
9+
dependencies = [
10+
("tickets_v2", "0003_ticketsv2eventmeta_terms_and_conditions_url_en_and_more"),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name="ticketsv2eventmeta",
16+
name="provider_id",
17+
field=models.SmallIntegerField(
18+
choices=[(0, "NONE"), (1, "PAYTRAIL"), (2, "STRIPE")],
19+
default=tickets_v2.optimized_server.models.enums.PaymentProvider["NONE"],
20+
verbose_name="Payment provider",
21+
),
22+
),
23+
migrations.AlterField(
24+
model_name="ticketsv2eventmeta",
25+
name="terms_and_conditions_url_en",
26+
field=models.TextField(blank=True, default=""),
27+
),
28+
migrations.AlterField(
29+
model_name="ticketsv2eventmeta",
30+
name="terms_and_conditions_url_fi",
31+
field=models.TextField(blank=True, default=""),
32+
),
33+
migrations.AlterField(
34+
model_name="ticketsv2eventmeta",
35+
name="terms_and_conditions_url_sv",
36+
field=models.TextField(blank=True, default=""),
37+
),
38+
]

frontend/src/__generated__/gql.ts

Lines changed: 29 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)