diff --git a/localized_fields/value.py b/localized_fields/value.py index 19014db..b06dbd0 100644 --- a/localized_fields/value.py +++ b/localized_fields/value.py @@ -229,24 +229,9 @@ class LocalizedFileValue(LocalizedValue): return self.get(translation.get_language()) -class LocalizedIntegerValue(LocalizedValue): - """All values are integers.""" - - default_value = None - - def translate(self): - """Gets the value in the current language, or in the configured fallbck - language.""" - - value = super().translate() - if value is None or (isinstance(value, str) and value.strip() == ""): - return None - - return int(value) - +class LocalizedNumericValue(LocalizedValue): def __int__(self): """Gets the value in the current language as an integer.""" - value = self.translate() if value is None: return self.default_value @@ -259,8 +244,32 @@ class LocalizedIntegerValue(LocalizedValue): value = self.translate() return str(value) if value is not None else '' + def __float__(self): + """Gets the value in the current language as a float""" + value = self.translate() + if value is None: + return self.default_value -class LocalizedFloatValue(LocalizedValue): + return float(value) + + +class LocalizedIntegerValue(LocalizedNumericValue): + """All values are integers.""" + + default_value = None + + def translate(self): + """Gets the value in the current language, or + in the configured fallbck language.""" + + value = super().translate() + if value is None or (isinstance(value, str) and value.strip() == ''): + return None + + return int(value) + + +class LocalizedFloatValue(LocalizedNumericValue): """All values are floats""" default_value = None @@ -270,26 +279,8 @@ class LocalizedFloatValue(LocalizedValue): Gets the value in the current language, or in the configured fallback language. """ - value = super().translate() if value is None or (isinstance(value, str) and value.strip() == ''): return None return float(value) - - def __float__(self): - """ - Gets the value in the current language as a float - """ - value = self.translate() - if value is None: - return self.default_value - - return float(value) - - def __str__(self) -> str: - """ - Returns the string repsentation of value - """ - value = self.translate - return str(value) if value is not None else ''