feat(datepicker): drop native datepickers in favor of AirDatePicker for better compatibility

As Firefox (still) doesn't support month input type
This commit is contained in:
Herculino Trotta
2025-01-14 23:47:03 -03:00
parent 4fe62244cd
commit 6955294283
19 changed files with 545 additions and 35 deletions

View File

@@ -61,7 +61,6 @@ class DynamicModelChoiceField(forms.ModelChoiceField):
self._created_instance = instance
return instance
except Exception as e:
print(e)
raise ValidationError(
self.error_messages["invalid_choice"], code="invalid_choice"
)

View File

@@ -1,9 +1,11 @@
import datetime
from django import forms
from django.db import models
from django.core.exceptions import ValidationError
from django.db import models
from django.utils.translation import gettext_lazy as _
from apps.common.widgets.datepicker import AirMonthYearPickerInput
from apps.common.widgets.month_year import MonthYearWidget
@@ -27,7 +29,7 @@ class MonthYearModelField(models.DateField):
class MonthYearFormField(forms.DateField):
widget = MonthYearWidget
widget = AirMonthYearPickerInput
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -42,7 +44,11 @@ class MonthYearFormField(forms.DateField):
date = datetime.datetime.strptime(value, "%Y-%m")
return date.replace(day=1).date()
except ValueError:
raise ValidationError(_("Invalid date format. Use YYYY-MM."))
try:
date = datetime.datetime.strptime(value, "%Y-%m-%d")
return date.replace(day=1).date()
except ValueError:
raise ValidationError(_("Invalid date format. Use YYYY-MM."))
def prepare_value(self, value):
if isinstance(value, datetime.date):