django-utils

personal collection of django utilities
git clone https://git.ce9e.org/django-utils.git

commit
657451e1bdb08e26868985dba4b39bcbd14ecd42
parent
ff5835bb7f4a057cfcbd68533dfda66fd51a6e0e
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2018-12-28 18:16
fix format for date inputs

native datepickers do not work with localized formats

Diffstat

M utils/datefields.py 21 +++++++++++++++------

1 files changed, 15 insertions, 6 deletions


diff --git a/utils/datefields.py b/utils/datefields.py

@@ -2,11 +2,15 @@ from django import forms
    2     2 from django.db import models
    3     3 from django.utils.translation import ugettext_lazy as _
    4     4 
   -1     5 DATE_FORMAT = '%Y-%m-%d'
   -1     6 
    5     7 DATE_DEFAULTS = {
    6     8     'placeholder': _('yyyy-mm-dd'),
    7     9     'type': 'date',
    8    10 }
    9    11 
   -1    12 TIME_FORMAT = '%H:%M'
   -1    13 
   10    14 TIME_DEFAULTS = {
   11    15     'placeholder': _('HH:MM'),
   12    16     'type': 'time',
@@ -14,28 +18,33 @@ TIME_DEFAULTS = {
   14    18 
   15    19 
   16    20 class DateInput(forms.DateInput):
   17    -1     def __init__(self, attrs={}):
   -1    21     def __init__(self, attrs={}, **kwargs):
   18    22         defaults = TIME_DEFAULTS.copy()
   19    23         defaults.update(attrs)
   20    -1         super().__init__(attrs=defaults)
   -1    24         super().__init__(format=DATE_FORMAT, attrs=defaults, **kwargs)
   21    25 
   22    26 
   23    27 class TimeInput(forms.TimeInput):
   24    -1     def __init__(self, attrs={}):
   -1    28     def __init__(self, attrs={}, **kwargs):
   25    29         defaults = DATE_DEFAULTS.copy()
   26    30         defaults.update(attrs)
   27    -1         super().__init__(attrs=defaults)
   -1    31         super().__init__(format=TIME_FORMAT, attrs=defaults, **kwargs)
   28    32 
   29    33 
   30    34 class DateTimeInput(forms.SplitDateTimeWidget):
   31    -1     def __init__(self, date_attrs={}, time_attrs={}):
   -1    35     def __init__(self, date_attrs={}, time_attrs={}, **kwargs):
   32    36         date_defaults = DATE_DEFAULTS.copy()
   33    37         date_defaults.update(date_attrs)
   34    38 
   35    39         time_defaults = TIME_DEFAULTS.copy()
   36    40         time_defaults.update(time_attrs)
   37    41 
   38    -1         super().__init__(date_attrs=date_defaults, time_attrs=time_defaults)
   -1    42         super().__init__(
   -1    43             date_format=DATE_FORMAT,
   -1    44             date_attrs=date_defaults,
   -1    45             time_format=TIME_FORMAT,
   -1    46             time_attrs=time_defaults,
   -1    47             **kwargs)
   39    48 
   40    49 
   41    50 class DateFormField(forms.DateField):