Perform coercion in to_grams

This commit is contained in:
Brian Tiemann 2024-11-20 10:48:19 -05:00
parent 634634d65b
commit cb949283ea
2 changed files with 7 additions and 7 deletions

View File

@ -37,7 +37,7 @@ class WeightMixin(models.Model):
# Store the given weight (if any) in grams for use in database ordering # Store the given weight (if any) in grams for use in database ordering
if self.weight and self.weight_unit: if self.weight and self.weight_unit:
self._abs_weight = int(to_grams(self.weight, self.weight_unit)) self._abs_weight = to_grams(self.weight, self.weight_unit)
else: else:
self._abs_weight = None self._abs_weight = None

View File

@ -10,9 +10,9 @@ __all__ = (
) )
def to_grams(weight, unit) -> float: def to_grams(weight, unit) -> int:
""" """
Convert the given weight to kilograms. Convert the given weight to integer grams.
""" """
try: try:
if weight < 0: if weight < 0:
@ -21,13 +21,13 @@ def to_grams(weight, unit) -> float:
raise TypeError(_("Invalid value '{weight}' for weight (must be a number)").format(weight=weight)) raise TypeError(_("Invalid value '{weight}' for weight (must be a number)").format(weight=weight))
if unit == WeightUnitChoices.UNIT_KILOGRAM: if unit == WeightUnitChoices.UNIT_KILOGRAM:
return weight * 1000 return int(weight * 1000)
if unit == WeightUnitChoices.UNIT_GRAM: if unit == WeightUnitChoices.UNIT_GRAM:
return weight return int(weight)
if unit == WeightUnitChoices.UNIT_POUND: if unit == WeightUnitChoices.UNIT_POUND:
return weight * Decimal(453.592) return int(weight * Decimal(453.592))
if unit == WeightUnitChoices.UNIT_OUNCE: if unit == WeightUnitChoices.UNIT_OUNCE:
return weight * Decimal(28.3495) return int(weight * Decimal(28.3495))
raise ValueError( raise ValueError(
_("Unknown unit {unit}. Must be one of the following: {valid_units}").format( _("Unknown unit {unit}. Must be one of the following: {valid_units}").format(
unit=unit, unit=unit,