diff --git a/src/unfold/admin.py b/src/unfold/admin.py index 7890464f..8bf6874a 100644 --- a/src/unfold/admin.py +++ b/src/unfold/admin.py @@ -49,6 +49,7 @@ UnfoldAdminSplitDateTimeWidget, UnfoldAdminTextareaWidget, UnfoldAdminTextInputWidget, + UnfoldAdminURLInputWidget, UnfoldAdminUUIDInputWidget, UnfoldBooleanSwitchWidget, UnfoldBooleanWidget, @@ -79,7 +80,7 @@ models.TimeField: {"widget": UnfoldAdminSingleTimeWidget}, models.EmailField: {"widget": UnfoldAdminEmailInputWidget}, models.CharField: {"widget": UnfoldAdminTextInputWidget}, - models.URLField: {"widget": UnfoldAdminTextInputWidget}, + models.URLField: {"widget": UnfoldAdminURLInputWidget}, models.GenericIPAddressField: {"widget": UnfoldAdminTextInputWidget}, models.UUIDField: {"widget": UnfoldAdminUUIDInputWidget}, models.TextField: {"widget": UnfoldAdminTextareaWidget}, diff --git a/src/unfold/templates/unfold/widgets/url.html b/src/unfold/templates/unfold/widgets/url.html new file mode 100644 index 00000000..14c790c5 --- /dev/null +++ b/src/unfold/templates/unfold/widgets/url.html @@ -0,0 +1,4 @@ +{% if url_valid %} + {{ current_label }} {{ widget.value }} +{% endif %} +{% include "django/forms/widgets/input.html" %} diff --git a/src/unfold/widgets.py b/src/unfold/widgets.py index 5b8e63a9..0c72a6f2 100644 --- a/src/unfold/widgets.py +++ b/src/unfold/widgets.py @@ -13,6 +13,7 @@ AdminTextareaWidget, AdminTextInputWidget, AdminTimeWidget, + AdminURLFieldWidget, AdminUUIDInputWidget, ForeignKeyRawIdWidget, RelatedFieldWidgetWrapper, @@ -255,6 +256,13 @@ def __init__(self, attrs: Optional[Dict[str, Any]] = None) -> None: super().__init__(attrs={"class": " ".join(INPUT_CLASSES), **(attrs or {})}) +class UnfoldAdminURLInputWidget(AdminURLFieldWidget): + template_name = "unfold/widgets/url.html" + + def __init__(self, attrs: Optional[Dict[str, Any]] = None) -> None: + super().__init__(attrs={"class": " ".join(INPUT_CLASSES), **(attrs or {})}) + + class UnfoldAdminColorInputWidget(AdminTextInputWidget): def __init__(self, attrs: Optional[Dict[str, Any]] = None) -> None: super().__init__(