Skip to content

Commit

Permalink
CDD-2371: refactor y_axis to use DecimalField
Browse files Browse the repository at this point in the history
  • Loading branch information
phill-stanley committed Jan 8, 2025
1 parent cf13241 commit 938b5de
Show file tree
Hide file tree
Showing 6 changed files with 1,951 additions and 10 deletions.
4 changes: 2 additions & 2 deletions cms/dynamic_content/cards.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,12 @@ class SimplifiedChartWithLink(blocks.StructBlock):
default="",
help_text=help_texts.CHART_Y_AXIS_TITLE,
)
y_axis_minimum_value = blocks.IntegerBlock(
y_axis_minimum_value = blocks.DecimalBlock(
required=False,
default=0,
help_text=help_texts.CHART_Y_AXIS_MINIMUM_VALUE,
)
y_axis_maximum_value = blocks.IntegerBlock(
y_axis_maximum_value = blocks.DecimalBlock(
required=False,
help_text=help_texts.CHART_Y_AXIS_MAXIMUM_VALUE,
)
Expand Down
1,296 changes: 1,296 additions & 0 deletions cms/home/migrations/0016_add_chart_y_axis_min_and_max_values.py

Large diffs are not rendered by default.

640 changes: 640 additions & 0 deletions cms/topic/migrations/0015_add_chart_y_axis_min_and_max_values.py

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions metrics/api/serializers/charts.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,17 +117,21 @@ class ChartsSerializer(serializers.Serializer):
default="",
help_text=help_texts.CHART_Y_AXIS_TITLE,
)
y_axis_minimum_value = serializers.IntegerField(
y_axis_minimum_value = serializers.DecimalField(
required=False,
allow_null=True,
help_text=help_texts.CHART_Y_AXIS_MINIMUM_VALUE,
default=None,
max_digits=10,
decimal_places=1,
)
y_axis_maximum_value = serializers.IntegerField(
y_axis_maximum_value = serializers.DecimalField(
required=False,
allow_null=True,
help_text=help_texts.CHART_Y_AXIS_MAXIMUM_VALUE,
default=None,
max_digits=10,
decimal_places=1,
)

plots = ChartPlotsListSerializer()
Expand Down
4 changes: 2 additions & 2 deletions metrics/domain/charts/chart_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ def height(self) -> int:
return self._chart_generation_payload.chart_height

@property
def y_axis_minimum_value(self) -> int | None:
def y_axis_minimum_value(self) -> int | Decimal:
return self._chart_generation_payload.y_axis_minimum_value

@property
def y_axis_maximum_value(self) -> int | None:
def y_axis_maximum_value(self) -> int | Decimal | None:
return self._chart_generation_payload.y_axis_maximum_value

@staticmethod
Expand Down
9 changes: 5 additions & 4 deletions metrics/domain/models/plots.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import datetime
from decimal import Decimal
from typing import Literal, Self

from dateutil.relativedelta import relativedelta
Expand Down Expand Up @@ -162,8 +163,8 @@ class ChartRequestParams(BaseModel):
x_axis_title: str = ""
y_axis: str
y_axis_title: str = ""
y_axis_minimum_value: int = 0
y_axis_maximum_value: int | None = None
y_axis_minimum_value: Decimal = 0
y_axis_maximum_value: Decimal | None = None


class NoReportingDelayPeriodFoundError(Exception): ...
Expand Down Expand Up @@ -244,8 +245,8 @@ class ChartGenerationPayload(BaseModel):
chart_height: int
x_axis_title: str
y_axis_title: str
y_axis_minimum_value: int = 0
y_axis_maximum_value: int | None = None
y_axis_minimum_value: Decimal = 0
y_axis_maximum_value: Decimal | None = None


class CompletePlotData(BaseModel):
Expand Down

0 comments on commit 938b5de

Please sign in to comment.