mirror of
https://github.com/SectorLabs/django-localized-fields.git
synced 2025-04-25 19:52:54 +03:00
Merge pull request #52 from SectorLabs/localized-integer-field-widget
Add LocalizedIntegerFieldWidget
This commit is contained in:
commit
acf8867974
@ -5,6 +5,7 @@ from django.db.utils import IntegrityError
|
|||||||
|
|
||||||
from .field import LocalizedField
|
from .field import LocalizedField
|
||||||
from ..value import LocalizedValue, LocalizedIntegerValue
|
from ..value import LocalizedValue, LocalizedIntegerValue
|
||||||
|
from ..forms import LocalizedIntegerFieldForm
|
||||||
|
|
||||||
|
|
||||||
class LocalizedIntegerField(LocalizedField):
|
class LocalizedIntegerField(LocalizedField):
|
||||||
@ -63,6 +64,15 @@ class LocalizedIntegerField(LocalizedField):
|
|||||||
|
|
||||||
return prepped_value
|
return prepped_value
|
||||||
|
|
||||||
|
def formfield(self, **kwargs):
|
||||||
|
"""Gets the form field associated with this field."""
|
||||||
|
defaults = {
|
||||||
|
'form_class': LocalizedIntegerFieldForm
|
||||||
|
}
|
||||||
|
|
||||||
|
defaults.update(kwargs)
|
||||||
|
return super().formfield(**defaults)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _convert_localized_value(value: LocalizedValue) -> LocalizedIntegerValue:
|
def _convert_localized_value(value: LocalizedValue) -> LocalizedIntegerValue:
|
||||||
"""Converts from :see:LocalizedValue to :see:LocalizedIntegerValue."""
|
"""Converts from :see:LocalizedValue to :see:LocalizedIntegerValue."""
|
||||||
|
@ -6,9 +6,9 @@ from django.core.exceptions import ValidationError
|
|||||||
from django.forms.widgets import FILE_INPUT_CONTRADICTION
|
from django.forms.widgets import FILE_INPUT_CONTRADICTION
|
||||||
|
|
||||||
from .value import LocalizedValue, LocalizedStringValue, \
|
from .value import LocalizedValue, LocalizedStringValue, \
|
||||||
LocalizedFileValue
|
LocalizedFileValue, LocalizedIntegerValue
|
||||||
from .widgets import LocalizedFieldWidget, LocalizedCharFieldWidget, \
|
from .widgets import LocalizedFieldWidget, LocalizedCharFieldWidget, \
|
||||||
LocalizedFileWidget
|
LocalizedFileWidget, AdminLocalizedIntegerFieldWidget
|
||||||
|
|
||||||
|
|
||||||
class LocalizedFieldForm(forms.MultiValueField):
|
class LocalizedFieldForm(forms.MultiValueField):
|
||||||
@ -79,6 +79,14 @@ class LocalizedTextFieldForm(LocalizedFieldForm):
|
|||||||
value_class = LocalizedStringValue
|
value_class = LocalizedStringValue
|
||||||
|
|
||||||
|
|
||||||
|
class LocalizedIntegerFieldForm(LocalizedFieldForm):
|
||||||
|
"""Form for a localized integer field, allows editing
|
||||||
|
the field in multiple languages."""
|
||||||
|
|
||||||
|
widget = AdminLocalizedIntegerFieldWidget
|
||||||
|
value_class = LocalizedIntegerValue
|
||||||
|
|
||||||
|
|
||||||
class LocalizedFileFieldForm(LocalizedFieldForm, forms.FileField):
|
class LocalizedFileFieldForm(LocalizedFieldForm, forms.FileField):
|
||||||
"""Form for a localized file field, allows editing
|
"""Form for a localized file field, allows editing
|
||||||
the field in multiple languages."""
|
the field in multiple languages."""
|
||||||
|
@ -228,3 +228,9 @@ class LocalizedIntegerValue(LocalizedValue):
|
|||||||
return self.default_value
|
return self.default_value
|
||||||
|
|
||||||
return int(value)
|
return int(value)
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
"""Returns string representation of value"""
|
||||||
|
|
||||||
|
value = self.translate()
|
||||||
|
return str(value) if value is not None else None
|
||||||
|
@ -120,3 +120,7 @@ class AdminLocalizedCharFieldWidget(AdminLocalizedFieldWidget):
|
|||||||
|
|
||||||
class AdminLocalizedFileFieldWidget(AdminLocalizedFieldWidget):
|
class AdminLocalizedFileFieldWidget(AdminLocalizedFieldWidget):
|
||||||
widget = widgets.AdminFileWidget
|
widget = widgets.AdminFileWidget
|
||||||
|
|
||||||
|
|
||||||
|
class AdminLocalizedIntegerFieldWidget(AdminLocalizedFieldWidget):
|
||||||
|
widget = widgets.AdminIntegerFieldWidget
|
||||||
|
@ -4,6 +4,7 @@ from django.conf import settings
|
|||||||
from django.db import connection
|
from django.db import connection
|
||||||
from django.utils import translation
|
from django.utils import translation
|
||||||
|
|
||||||
|
from localized_fields.value import LocalizedIntegerValue
|
||||||
from localized_fields.fields import LocalizedIntegerField
|
from localized_fields.fields import LocalizedIntegerField
|
||||||
|
|
||||||
from .fake_model import get_fake_model
|
from .fake_model import get_fake_model
|
||||||
|
Loading…
x
Reference in New Issue
Block a user