From a98c0d2904f3cdbbddadbb8dfbe03b73a07bf005 Mon Sep 17 00:00:00 2001 From: Mike Date: Fri, 10 Feb 2023 09:35:05 -0700 Subject: [PATCH] Use SplitDateTimeField for date Attribute types (#321) * fix: use field class SplitDateTimeField for type 'date' Fixes #261 * refactor: remove import conflict of django.forms * style: isort imports * docs: add fix #261 to changelog --- CHANGELOG.md | 1 + eav/forms.py | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23b0738..107083d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ We follow [Semantic Versions](https://semver.org/) starting at the `0.14.0` rele ### Bug Fixes - Fixes missing `Add another` button for inlines in `BaseEntityAdmin` +- Fixes saving of Attribute date types rendering using `BaseDynamicEntityForm` [#261](https://github.com/jazzband/django-eav2/issues/261) ## 1.2.3 (2022-08-15) diff --git a/eav/forms.py b/eav/forms.py index b6117d7..b34bcfe 100644 --- a/eav/forms.py +++ b/eav/forms.py @@ -2,29 +2,29 @@ from copy import deepcopy -from django import forms from django.contrib.admin.widgets import AdminSplitDateTime from django.core.exceptions import ValidationError from django.forms import ( BooleanField, CharField, ChoiceField, - DateTimeField, + Field, FloatField, IntegerField, ModelForm, + SplitDateTimeField, ) from django.utils.translation import gettext_lazy as _ +from eav.widgets import CSVWidget + try: from django.forms import JSONField except: JSONField = CharField -from eav.widgets import CSVWidget - -class CSVFormField(forms.Field): +class CSVFormField(Field): message = _('Enter comma-separated-values. eg: one;two;three.') code = 'invalid' widget = CSVWidget @@ -66,6 +66,7 @@ class BaseDynamicEntityForm(ModelForm): text CharField float IntegerField int DateTimeField + date SplitDateTimeField bool BooleanField enum ChoiceField json JSONField @@ -77,7 +78,7 @@ class BaseDynamicEntityForm(ModelForm): 'text': CharField, 'float': FloatField, 'int': IntegerField, - 'date': DateTimeField, + 'date': SplitDateTimeField, 'bool': BooleanField, 'enum': ChoiceField, 'json': JSONField,