Skip to content

Commit

Permalink
Use black to format floppyforms
Browse files Browse the repository at this point in the history
  • Loading branch information
rtpg committed Nov 7, 2024
1 parent ef111aa commit 22d0834
Show file tree
Hide file tree
Showing 13 changed files with 710 additions and 507 deletions.
6 changes: 4 additions & 2 deletions floppyforms/__future__/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@

if django.VERSION < (1, 6):
import warnings
warnings.warn("floppyforms.__future__ features are only available in "
"django 1.6+")

warnings.warn(
"floppyforms.__future__ features are only available in " "django 1.6+"
)
else:
from .models import *
175 changes: 107 additions & 68 deletions floppyforms/__future__/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,68 +2,78 @@

import django
from django.db import models as db_models
from django.forms.models import (ModelForm as _ModelForm,
ModelFormMetaclass as _ModelFormMetaclass,
modelform_factory as _modelform_factory,
modelformset_factory as _modelformset_factory,
inlineformset_factory as _inlineformset_factory,
model_to_dict, fields_for_model, BaseModelForm,
BaseModelFormSet,
BaseInlineFormSet)
from django.forms.models import (
ModelForm as _ModelForm,
ModelFormMetaclass as _ModelFormMetaclass,
modelform_factory as _modelform_factory,
modelformset_factory as _modelformset_factory,
inlineformset_factory as _inlineformset_factory,
model_to_dict,
fields_for_model,
BaseModelForm,
BaseModelFormSet,
BaseInlineFormSet,
)

from floppyforms import fields
from floppyforms.forms import LayoutRenderer
from floppyforms.models import (ModelChoiceField, ModelMultipleChoiceField)
from floppyforms.models import ModelChoiceField, ModelMultipleChoiceField
from floppyforms.widgets import Textarea

__all__ = (
'ModelForm', 'BaseModelForm', 'model_to_dict', 'fields_for_model',
'ModelChoiceField', 'ModelMultipleChoiceField',
'BaseModelFormSet', 'modelformset_factory', 'BaseInlineFormSet',
'inlineformset_factory',
"ModelForm",
"BaseModelForm",
"model_to_dict",
"fields_for_model",
"ModelChoiceField",
"ModelMultipleChoiceField",
"BaseModelFormSet",
"modelformset_factory",
"BaseInlineFormSet",
"inlineformset_factory",
)

if django.VERSION > (1, 7):
from django.forms.models import ALL_FIELDS

__all__ = __all__ + ('ALL_FIELDS',)
__all__ = __all__ + ("ALL_FIELDS",)


FORMFIELD_OVERRIDES = {
db_models.BooleanField: {'form_class': fields.BooleanField},
db_models.CharField: {'form_class': fields.CharField},
db_models.CommaSeparatedIntegerField: {'form_class': fields.CharField},
db_models.DateField: {'form_class': fields.DateField},
db_models.DateTimeField: {'form_class': fields.DateTimeField},
db_models.DecimalField: {'form_class': fields.DecimalField},
db_models.EmailField: {'form_class': fields.EmailField},
db_models.FilePathField: {'form_class': fields.FilePathField},
db_models.FloatField: {'form_class': fields.FloatField},
db_models.IntegerField: {'form_class': fields.IntegerField},
db_models.BigIntegerField: {'form_class': fields.IntegerField},
db_models.GenericIPAddressField: {'form_class': fields.GenericIPAddressField},
db_models.NullBooleanField: {'form_class': fields.NullBooleanField},
db_models.PositiveIntegerField: {'form_class': fields.IntegerField},
db_models.PositiveSmallIntegerField: {'form_class': fields.IntegerField},
db_models.SlugField: {'form_class': fields.SlugField},
db_models.SmallIntegerField: {'form_class': fields.IntegerField},
db_models.TextField: {'form_class': fields.CharField, 'widget': Textarea},
db_models.TimeField: {'form_class': fields.TimeField},
db_models.URLField: {'form_class': fields.URLField},
db_models.BooleanField: {"form_class": fields.BooleanField},
db_models.CharField: {"form_class": fields.CharField},
db_models.CommaSeparatedIntegerField: {"form_class": fields.CharField},
db_models.DateField: {"form_class": fields.DateField},
db_models.DateTimeField: {"form_class": fields.DateTimeField},
db_models.DecimalField: {"form_class": fields.DecimalField},
db_models.EmailField: {"form_class": fields.EmailField},
db_models.FilePathField: {"form_class": fields.FilePathField},
db_models.FloatField: {"form_class": fields.FloatField},
db_models.IntegerField: {"form_class": fields.IntegerField},
db_models.BigIntegerField: {"form_class": fields.IntegerField},
db_models.GenericIPAddressField: {"form_class": fields.GenericIPAddressField},
db_models.NullBooleanField: {"form_class": fields.NullBooleanField},
db_models.PositiveIntegerField: {"form_class": fields.IntegerField},
db_models.PositiveSmallIntegerField: {"form_class": fields.IntegerField},
db_models.SlugField: {"form_class": fields.SlugField},
db_models.SmallIntegerField: {"form_class": fields.IntegerField},
db_models.TextField: {"form_class": fields.CharField, "widget": Textarea},
db_models.TimeField: {"form_class": fields.TimeField},
db_models.URLField: {"form_class": fields.URLField},
# Binary field is never editable, so we don't need to convert it.

db_models.FileField: {'form_class': fields.FileField},
db_models.ImageField: {'form_class': fields.ImageField},

db_models.ForeignKey: {'form_class': ModelChoiceField},
db_models.ManyToManyField: {'form_class': ModelMultipleChoiceField},
db_models.OneToOneField: {'form_class': ModelChoiceField},
db_models.FileField: {"form_class": fields.FileField},
db_models.ImageField: {"form_class": fields.ImageField},
db_models.ForeignKey: {"form_class": ModelChoiceField},
db_models.ManyToManyField: {"form_class": ModelMultipleChoiceField},
db_models.OneToOneField: {"form_class": ModelChoiceField},
}
if django.VERSION < (1, 9):
FORMFIELD_OVERRIDES[db_models.IPAddressField] = {'form_class': fields.IPAddressField}
FORMFIELD_OVERRIDES[db_models.IPAddressField] = {
"form_class": fields.IPAddressField
}

for value in FORMFIELD_OVERRIDES.values():
value['choices_form_class'] = fields.TypedChoiceField
value["choices_form_class"] = fields.TypedChoiceField


def formfield_callback(db_field, **kwargs):
Expand All @@ -74,35 +84,64 @@ def formfield_callback(db_field, **kwargs):

class ModelFormMetaclass(_ModelFormMetaclass):
def __new__(mcs, name, bases, attrs):
if not attrs.get('formfield_callback'):
attrs['formfield_callback'] = formfield_callback
if not attrs.get("formfield_callback"):
attrs["formfield_callback"] = formfield_callback
return super(ModelFormMetaclass, mcs).__new__(mcs, name, bases, attrs)


class ModelForm(LayoutRenderer, _ModelForm, metaclass=ModelFormMetaclass):
pass


def modelform_factory(model, form=ModelForm, fields=None, exclude=None,
formfield_callback=formfield_callback, *args, **kwargs):
return _modelform_factory(model, form, fields, exclude, formfield_callback,
*args, **kwargs)


def modelformset_factory(model, form=ModelForm,
formfield_callback=formfield_callback,
*args, **kwargs):
return _modelformset_factory(model, form, formfield_callback,
*args, **kwargs)


def inlineformset_factory(parent_model, model, form=ModelForm,
formset=BaseInlineFormSet, fk_name=None,
fields=None, exclude=None, extra=3, can_order=False,
can_delete=True, max_num=None,
formfield_callback=formfield_callback,
*args, **kwargs):
return _inlineformset_factory(parent_model, model, form, formset, fk_name,
fields, exclude, extra, can_order,
can_delete, max_num, formfield_callback,
*args, **kwargs)
def modelform_factory(
model,
form=ModelForm,
fields=None,
exclude=None,
formfield_callback=formfield_callback,
*args,
**kwargs
):
return _modelform_factory(
model, form, fields, exclude, formfield_callback, *args, **kwargs
)


def modelformset_factory(
model, form=ModelForm, formfield_callback=formfield_callback, *args, **kwargs
):
return _modelformset_factory(model, form, formfield_callback, *args, **kwargs)


def inlineformset_factory(
parent_model,
model,
form=ModelForm,
formset=BaseInlineFormSet,
fk_name=None,
fields=None,
exclude=None,
extra=3,
can_order=False,
can_delete=True,
max_num=None,
formfield_callback=formfield_callback,
*args,
**kwargs
):
return _inlineformset_factory(
parent_model,
model,
form,
formset,
fk_name,
fields,
exclude,
extra,
can_order,
can_delete,
max_num,
formfield_callback,
*args,
**kwargs
)
16 changes: 11 additions & 5 deletions floppyforms/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# flake8: noqa
from django.forms import (BaseModelForm, model_to_dict, fields_for_model,
ValidationError, Media, MediaDefiningClass)
from django.forms import (
BaseModelForm,
model_to_dict,
fields_for_model,
ValidationError,
Media,
MediaDefiningClass,
)

from .fields import *
from .forms import *
Expand All @@ -17,7 +23,7 @@
from . import gis
except Exception:
import warnings
warnings.warn(
"Unable to import floppyforms.gis, geometry widgets not available")

__version__ = '1.9.0'
warnings.warn("Unable to import floppyforms.gis, geometry widgets not available")

__version__ = "1.9.0"
7 changes: 5 additions & 2 deletions floppyforms/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@


REQUIRED_CONTEXT_ATTRIBTUES = (
'_form_config',
'_form_render',
"_form_config",
"_form_render",
)


Expand All @@ -20,8 +20,10 @@ class DictContext(dict):


if django.VERSION < (1, 8):

def get_template(context, template_name):
from django.template.loader import get_template

return get_template(template_name)

def get_context(context):
Expand All @@ -32,6 +34,7 @@ def get_context(context):
return context

else:

def get_template(context, template_name):
# Django 1.8 and higher support multiple template engines. We need to
# load child templates used in the floppyform template tags from the
Expand Down
Loading

0 comments on commit 22d0834

Please sign in to comment.