67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
from django import forms
|
|
from django.urls import reverse
|
|
from crispy_forms.helper import FormHelper
|
|
from crispy_forms.layout import Submit
|
|
from leaflet.forms.widgets import LeafletWidget
|
|
|
|
from .models import CaseStudy
|
|
|
|
|
|
class BaseCaseStudyForm(forms.ModelForm):
|
|
"""Base form class for the CaseStudy model."""
|
|
def __init__(self, *args, **kwargs):
|
|
super(BaseCaseStudyForm, self).__init__(*args, **kwargs)
|
|
self.helper = FormHelper()
|
|
self.helper.form_id = 'case-study-form'
|
|
self.helper.form_class = 'form-horizontal'
|
|
self.helper.form_method = 'post'
|
|
self.helper.form_action = 'add'
|
|
self.helper.label_class = 'col-lg-2'
|
|
self.helper.field_class = 'col-lg-8'
|
|
self.helper.add_input(Submit('submit', 'Submit'))
|
|
|
|
class Meta:
|
|
model = CaseStudy
|
|
fields = '__all__'
|
|
widgets = {'location': LeafletWidget(attrs={})}
|
|
|
|
|
|
class ShortCaseStudyForm(BaseCaseStudyForm):
|
|
"""Short version of the CaseStudy form."""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(ShortCaseStudyForm, self).__init__(*args, **kwargs)
|
|
self.helper.form_action = reverse('short-form')
|
|
|
|
class Meta(BaseCaseStudyForm.Meta):
|
|
fields = [
|
|
'entry_name',
|
|
'location',
|
|
'sector_of_economy',
|
|
'positive_or_negative',
|
|
'country',
|
|
'area_of_land',
|
|
'land_ownership',
|
|
'land_ownership_details',
|
|
'location_context',
|
|
'type_of_ecosystem',
|
|
'describe_ecosystem',
|
|
'affects_indigenous',
|
|
'affects_indigenous_detail',
|
|
'project_status',
|
|
'synopsis',
|
|
'full_description',
|
|
'image',
|
|
'community_voices'
|
|
]
|
|
|
|
|
|
class LongCaseStudyForm(BaseCaseStudyForm):
|
|
"""Long version of the CaseStudy form."""
|
|
def __init__(self, *args, **kwargs):
|
|
super(LongCaseStudyForm, self).__init__(*args, **kwargs)
|
|
self.helper.form_action = reverse('long-form')
|
|
|
|
class Meta(BaseCaseStudyForm.Meta):
|
|
fields = '__all__'
|