Skip to content

Commit 126d587

Browse files
committed
feat(program_v2,forms): replace is_initial with SurveyDefaultDimensionValue (still lacks UI)
1 parent 622ab76 commit 126d587

File tree

50 files changed

+286
-144
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+286
-144
lines changed

backend/badges/tests.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,12 +399,14 @@ def test_survey_to_badge():
399399
slug="status",
400400
title={"en": "Status"},
401401
choices=[
402-
DimensionValueDTO(slug="new", title={"en": "New"}, is_initial=True),
402+
DimensionValueDTO(slug="new", title={"en": "New"}),
403403
DimensionValueDTO(slug="accepted", title={"en": "Accepted"}),
404404
DimensionValueDTO(slug="cancelled", title={"en": "New"}),
405405
],
406406
).save(survey.universe)
407407

408+
survey.set_default_dimension_values({"status": ["new"]}, cache=survey.universe.preload_dimensions())
409+
408410
form_en = Form.objects.create(
409411
event=event,
410412
survey=survey,

backend/core/models/event.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,9 @@ def program_universe(self) -> Universe:
226226
The Universe for Dimensions that are attached to program items.
227227
NOTE: Must return the same as ProgramV2EventMeta.universe.
228228
"""
229-
from program_v2.workflow import ProgramOfferWorkflow
229+
from program_v2.workflow import ProgramWorkflow
230230

231-
return ProgramOfferWorkflow.get_program_universe(self)
231+
return ProgramWorkflow.get_program_universe(self)
232232

233233
@classmethod
234234
def get_or_create_dummy(cls, name="Dummy event"):

backend/dimensions/graphql/dimension_value.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ class Meta:
2323
fields = (
2424
"slug",
2525
"color",
26-
"is_initial",
2726
"is_technical",
2827
# NOTE SUPPORTED_LANGUAGES
2928
"title_en",

backend/dimensions/graphql/mutations/put_dimension_value.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ class Meta:
1616
fields = (
1717
"slug",
1818
"color",
19-
"is_initial",
2019
# NOTE SUPPORTED_LANGUAGES
2120
"title_en",
2221
"title_fi",
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Generated by Django 5.1.5 on 2025-04-27 22:35
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("dimensions", "0008_alter_dimension_slug_alter_dimensionvalue_slug"),
9+
]
10+
11+
operations = [
12+
migrations.RemoveField(
13+
model_name="dimensionvalue",
14+
name="is_initial",
15+
),
16+
]

backend/dimensions/models/dimension_dto.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ def save_many(
9292
dimension=dim_dj,
9393
slug=choice.slug,
9494
is_technical=choice.is_technical,
95-
is_initial=choice.is_initial,
9695
# NOTE SUPPORTED_LANGUAGES
9796
title_en=choice.title.get("en", ""),
9897
title_fi=choice.title.get("fi", ""),
@@ -110,7 +109,6 @@ def save_many(
110109
unique_fields=("dimension", "slug"),
111110
update_fields=(
112111
"is_technical",
113-
"is_initial",
114112
# NOTE SUPPORTED_LANGUAGES
115113
"title_en",
116114
"title_fi",

backend/dimensions/models/dimension_value.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,6 @@
1818
class DimensionValue(models.Model):
1919
dimension = models.ForeignKey(Dimension, on_delete=models.CASCADE, related_name="values")
2020

21-
# Note that if we define a concept of default values, they should be pre-selected on forms and overridable by user.
22-
# Contrast this to initial values that are instead set always and cannot be overridden by user.
23-
# An initial value should probably not be set on a dimension that is presented as a form field.
24-
is_initial = models.BooleanField(
25-
default=False,
26-
help_text="Initial values are set on new atoms automatically.",
27-
)
2821
is_technical = models.BooleanField(
2922
default=False,
3023
help_text="Technical values cannot be edited in the UI. They are used for internal purposes and have some assumptions about them.",

backend/dimensions/models/dimension_value_dto.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ class DimensionValueDTO(pydantic.BaseModel):
66
title: dict[str, str]
77
color: str = ""
88
is_technical: bool = False
9-
is_initial: bool = False

backend/dimensions/models/universe.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@ def __str__(self):
4747
return f"{self.scope}/{self.slug} ({self.app})"
4848

4949
@property
50-
def survey(self):
51-
if self.app != "forms":
52-
return None
53-
54-
from forms.models.survey import Survey
55-
56-
return Survey.objects.filter(
57-
event=self.scope.event,
58-
slug=self.slug,
59-
).first()
50+
def surveys(self):
51+
from forms.models.survey import Survey, SurveyApp
52+
53+
match SurveyApp(self.app):
54+
case SurveyApp.FORMS:
55+
return Survey.objects.filter(event=self.scope.event, slug=self.slug, app="forms")
56+
case SurveyApp.PROGRAM_V2:
57+
return Survey.objects.filter(event=self.scope.event, app="program_v2")
58+
case _:
59+
raise ValueError(f"Unknown app type: {self.app}")
6060

6161
def preload_dimensions(self, dimension_slugs: Collection[str] | None = None) -> DimensionCache:
6262
from ..utils.dimension_cache import DimensionCache

backend/events/cosmocon2025/forms/artist-alley-application-dimensions.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
choices:
88
- slug: new
99
color: blue
10-
isInitial: true
1110
title:
1211
fi: Uusi
1312
en: New

0 commit comments

Comments
 (0)