mirror of
				https://github.com/SectorLabs/django-localized-fields.git
				synced 2025-10-31 02:48:56 +03:00 
			
		
		
		
	Merge pull request #52 from SectorLabs/localized-integer-field-widget
Add LocalizedIntegerFieldWidget
This commit is contained in:
		| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user