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 ..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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user