113 lines
3.8 KiB
Python
113 lines
3.8 KiB
Python
from django.urls import reverse
|
|
from crispy_forms.helper import FormHelper
|
|
from crispy_forms.layout import Submit, Layout
|
|
from crispy_forms.bootstrap import Tab, TabHolder
|
|
from leaflet.forms.widgets import LeafletWidget
|
|
from moderation.forms import BaseModeratedObjectForm
|
|
|
|
from .models import CaseStudy
|
|
|
|
|
|
class BaseCaseStudyForm(BaseModeratedObjectForm):
|
|
"""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',
|
|
'image_caption',
|
|
'image_credit',
|
|
'video',
|
|
'media_coverage_mainstream',
|
|
'media_coverage_independent',
|
|
'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')
|
|
self.helper.layout = Layout(
|
|
TabHolder(
|
|
Tab("First Page",
|
|
'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',
|
|
'image_caption',
|
|
'image_credit',
|
|
'video',
|
|
'media_coverage_mainstream',
|
|
'media_coverage_independent',
|
|
'community_voices'),
|
|
Tab(
|
|
"Second Page",
|
|
'generation_technology',
|
|
'biomass_detail',
|
|
'generation_technology_other',
|
|
'total_generation_capacity',
|
|
'total_investment',
|
|
'technical_or_economic_details',
|
|
'power_technology',
|
|
'power_technology_other',
|
|
'energy_storage_capacity',
|
|
)))
|
|
|
|
|
|
|
|
|
|
class Meta(BaseCaseStudyForm.Meta):
|
|
fields = '__all__' |