Files
mkspc-mgmt/app/base/forms/fields.py
2023-05-29 17:41:48 +02:00

41 lines
1.3 KiB
Python

from django.db import models
from django import forms
from app.base.forms.widgets.date_widget import DateWithNow
from app.base.forms.widgets.datetime_widget import DateTimeWithNow
from decimal import Decimal
class AutosizeTextarea(forms.Textarea):
template_name = 'forms/widgets/textarea.html'
class TextField(models.TextField):
def formfield(self, **kwargs):
if 'widget' not in kwargs: # only if no other is set (admin UI)
kwargs['widget'] = AutosizeTextarea
return super().formfield(**kwargs)
class DateTimeField(models.DateTimeField):
def formfield(self, **kwargs):
if 'widget' not in kwargs: # only if no other is set (admin UI)
kwargs['widget'] = DateTimeWithNow
return super().formfield(**kwargs)
class DateField(models.DateField):
def formfield(self, **kwargs):
if 'widget' not in kwargs: # only if no other is set (admin UI)
kwargs['widget'] = DateWithNow
return super().formfield(**kwargs)
class CurrencyField(models.DecimalField):
def __init__(self, *args, **kwargs) -> None:
kwargs['decimal_places'] = kwargs.get('decimal_places', 2)
kwargs['max_digits'] = kwargs.get('max_digits', 10)
kwargs['default'] = kwargs.get('default', Decimal(0))
super().__init__(*args, **kwargs)