Files
vapemap/app/stores/forms.py

60 lines
1.6 KiB
Python

from django import forms
from extra_views import InlineFormSet
from epiceditor.widgets import EpicEditorWidget
from .models import ClaimRequest, Store, Address
class BootstrapModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(BootstrapModelForm, self).__init__(*args, **kwargs)
if hasattr(self.Meta, 'classes'):
for field, css in self.Meta.classes.items():
if field in self.fields:
self.fields[field].widget.attrs['class'] = css
class ClaimRequestForm(BootstrapModelForm):
def __init__(self, *args, **kwargs):
super(ClaimRequestForm, self).__init__(*args, **kwargs)
for field, css in self.Meta.classes.items():
if field in self.fields:
self.fields[field].widget.attrs['class'] = css
class Meta:
model = ClaimRequest
fields = ('note',)
classes = {
'note': 'input-xxlarge',
}
class StoreForm(BootstrapModelForm):
class Meta:
model = Store
exclude = ('slug', 'address', 'chain', 'editor', 'created', 'changed')
classes = {
'name': 'input-xxlarge',
'long_description': 'input-xxlarge',
}
widgets = {
'long_description': EpicEditorWidget(attrs={'rows': 40}, themes={'editor': 'epic-light.css'})
}
class AddressForm(BootstrapModelForm):
class Meta:
model = Address
exclude = ('name',)
widgets = {
'geo_latitude': forms.widgets.HiddenInput(),
'geo_longitude': forms.widgets.HiddenInput(),
}
class AddressInline(InlineFormSet):
model = Address