Initial
This commit is contained in:
40
app/base/forms/fields.py
Normal file
40
app/base/forms/fields.py
Normal file
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user