mirror of
https://github.com/SectorLabs/django-localized-fields.git
synced 2025-04-24 19:32:53 +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 ..value import LocalizedValue, LocalizedIntegerValue
|
||||
from ..forms import LocalizedIntegerFieldForm
|
||||
|
||||
|
||||
class LocalizedIntegerField(LocalizedField):
|
||||
@ -63,6 +64,15 @@ class LocalizedIntegerField(LocalizedField):
|
||||
|
||||
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
|
||||
def _convert_localized_value(value: LocalizedValue) -> 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 .value import LocalizedValue, LocalizedStringValue, \
|
||||
LocalizedFileValue
|
||||
LocalizedFileValue, LocalizedIntegerValue
|
||||
from .widgets import LocalizedFieldWidget, LocalizedCharFieldWidget, \
|
||||
LocalizedFileWidget
|
||||
LocalizedFileWidget, AdminLocalizedIntegerFieldWidget
|
||||
|
||||
|
||||
class LocalizedFieldForm(forms.MultiValueField):
|
||||
@ -79,6 +79,14 @@ class LocalizedTextFieldForm(LocalizedFieldForm):
|
||||
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):
|
||||
"""Form for a localized file field, allows editing
|
||||
the field in multiple languages."""
|
||||
|
@ -228,3 +228,9 @@ class LocalizedIntegerValue(LocalizedValue):
|
||||
return self.default_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):
|
||||
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.utils import translation
|
||||
|
||||
from localized_fields.value import LocalizedIntegerValue
|
||||
from localized_fields.fields import LocalizedIntegerField
|
||||
|
||||
from .fake_model import get_fake_model
|
||||
|
Loading…
x
Reference in New Issue
Block a user