Through to the end
This commit is contained in:
parent
d87604c6bd
commit
9384b6c9cb
@ -176,39 +176,6 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
initial=4326,
|
initial=4326,
|
||||||
)
|
)
|
||||||
|
|
||||||
POSITIVE_CASE_TYPE_HELP = {
|
|
||||||
'CREP': _("We are using the World Wind Energy Association's Community Power definition, \
|
|
||||||
which is that a community project is one where at least \
|
|
||||||
two of the following three criteria are met:<br> \
|
|
||||||
1. Local stakeholders own the majority or all of a project,<br> \
|
|
||||||
2. Voting control rests with the community-based organization,<br> \
|
|
||||||
3. The majority of social and economic benefits are distributed locally."),
|
|
||||||
'EACP': _(""),
|
|
||||||
'PSEP': _(""),
|
|
||||||
'CORS': _("The extraction of non-renewable resources, such as iron, copper, \
|
|
||||||
rare-earth elements or other minerals and metals used in \
|
|
||||||
renewable technologies, directly from the Earth is by definition \
|
|
||||||
an unsustainable practice. Despite this, the extraction of such elements \
|
|
||||||
this way for use in the renewable energy transition is, to an extent, \
|
|
||||||
a necessary evil in the immediate term. Bearing this in mind, \
|
|
||||||
a case involving extraction may be considered 'positive' if it helps \
|
|
||||||
to reduce, overall, the need for more extraction; if it drastically \
|
|
||||||
reduces ecological harms often caused by mining and does not infringe \
|
|
||||||
on areas of high biodiversity; and if it meets outstanding social \
|
|
||||||
and human rights standards that are enjoyed and affirmed by \
|
|
||||||
host communities and other stakeholders. Such social standards include: \
|
|
||||||
ensuring communities, and especially indigenous peoples, \
|
|
||||||
enjoy their right to Free Prior and Informed Consent, \
|
|
||||||
which includes the right to reject projects; abiding by \
|
|
||||||
the UN's guiding principles on Business and Human Rights; \
|
|
||||||
full collaboration with the Extractive Industries Transparency Initiative, \
|
|
||||||
assuring excellence in the transparency of project financing, \
|
|
||||||
tax affairs and other transactions; the highest labour standards; \
|
|
||||||
equitable distribution of any benefits accruing from mining; \
|
|
||||||
respect for the rule of law and the constitutional rights of citizens \
|
|
||||||
in host countries."),
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTOR_HELP = {
|
SECTOR_HELP = {
|
||||||
'RN': _("including electricity, heat or combined heat and power generation"),
|
'RN': _("including electricity, heat or combined heat and power generation"),
|
||||||
'PG': '',
|
'PG': '',
|
||||||
@ -238,10 +205,7 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
|
|
||||||
self.fields['positive_case_type'] = forms.ChoiceField(
|
self.fields['positive_case_type'] = forms.ChoiceField(
|
||||||
widget=forms.RadioSelect(),
|
widget=forms.RadioSelect(),
|
||||||
choices=self.add_explanatory_text(
|
choices=CaseStudy.POSITIVE_CASE_TYPE_CHOICES,
|
||||||
CaseStudy.POSITIVE_CASE_TYPE_CHOICES,
|
|
||||||
self.POSITIVE_CASE_TYPE_HELP,
|
|
||||||
),
|
|
||||||
required=False
|
required=False
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -266,6 +230,40 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
self.fields['project_owners'].required = True
|
self.fields['project_owners'].required = True
|
||||||
self.fields['shareholders'].required = True
|
self.fields['shareholders'].required = True
|
||||||
|
|
||||||
|
|
||||||
|
self.fields['socioeconomic_benefits'].label = \
|
||||||
|
'<span class="organising organising-vs">' + \
|
||||||
|
_('Socio-environmental impacts (negative and potentially positive)') + \
|
||||||
|
'</span>' + \
|
||||||
|
'<span class="organising organising-pro">' + \
|
||||||
|
_('Socio-environmental impacts (positive and potentially negative)') + \
|
||||||
|
'</span>' + \
|
||||||
|
'<span class="organising organising-none organising-idk">' + \
|
||||||
|
_('Socio-environmental impacts (positive and negative)') + \
|
||||||
|
'</span>'
|
||||||
|
|
||||||
|
self.fields['socioeconomic_benefits'].help_text = \
|
||||||
|
'<span class="organising organising-none organising-idk">' + \
|
||||||
|
_('Please expand on your response given in the full description on page one. \
|
||||||
|
We would expect benefits to go beyond emissions savings, paying rent for land, \
|
||||||
|
or complying with environmental or social legislation. Please include other \
|
||||||
|
reasons, noting that we aim to focus on projects with substantive impacts on \
|
||||||
|
vulnerable groups.') + \
|
||||||
|
'</span>' + \
|
||||||
|
'<span class="organising organising-vs">' + \
|
||||||
|
_('Please expand on your response given in the description. Note that we aim to \
|
||||||
|
focus on violation of land rights / human rights / collective rights, substantive \
|
||||||
|
negative impacts on vulnerable groups, aggression / threats / violence, \
|
||||||
|
severe environmental and/or cultural impacts, abusive labor practices, and \
|
||||||
|
corruption / governance issues, but feel free to cover any additional aspect \
|
||||||
|
that you consider relevant. Please also describe and analyze socio-environmental \
|
||||||
|
impacts that could be presented or considered as positive.') + \
|
||||||
|
'</span>' + \
|
||||||
|
'<span class="organising organising-pro">' + \
|
||||||
|
_('Please expand on your response given in the description. Please also describe \
|
||||||
|
and analyze socio-environmental impacts that could be considered as negative.') + \
|
||||||
|
'</span>'
|
||||||
|
|
||||||
self.helper.form_action = reverse('long-form')
|
self.helper.form_action = reverse('long-form')
|
||||||
self.helper.layout = Layout(
|
self.helper.layout = Layout(
|
||||||
TabHolder(
|
TabHolder(
|
||||||
@ -273,14 +271,17 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
'entry_name',
|
'entry_name',
|
||||||
'location',
|
'location',
|
||||||
'country',
|
'country',
|
||||||
|
'shapefiles',
|
||||||
|
'shapefiles_files',
|
||||||
|
'coordinate_reference_system',
|
||||||
|
'name_of_territory_or_area',
|
||||||
'area_of_land',
|
'area_of_land',
|
||||||
'land_ownership',
|
'land_ownership',
|
||||||
'land_ownership_details',
|
'land_ownership_details',
|
||||||
'location_context',
|
'location_context',
|
||||||
'type_of_ecosystem',
|
'type_of_ecosystem',
|
||||||
'describe_ecosystem',
|
'describe_ecosystem',
|
||||||
'people_affected_indigenous',
|
'affected_communities',
|
||||||
'people_affected_other',
|
|
||||||
'project_status',
|
'project_status',
|
||||||
'synopsis',
|
'synopsis',
|
||||||
'full_description',
|
'full_description',
|
||||||
@ -321,7 +322,7 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
'generation_technology_other',
|
'generation_technology_other',
|
||||||
'total_generation_capacity',
|
'total_generation_capacity',
|
||||||
'generation_equipment_supplier',
|
'generation_equipment_supplier',
|
||||||
'total_investment',
|
PrependedText('total_investment', 'USD$'),
|
||||||
'technical_or_economic_details',
|
'technical_or_economic_details',
|
||||||
css_id="power_generation_questions"
|
css_id="power_generation_questions"
|
||||||
),
|
),
|
||||||
@ -332,7 +333,7 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
'energy_storage_capacity',
|
'energy_storage_capacity',
|
||||||
'energy_transmission_capacity',
|
'energy_transmission_capacity',
|
||||||
'contractor_or_supplier_of_technology',
|
'contractor_or_supplier_of_technology',
|
||||||
'approximate_total_investment',
|
PrependedText('approximate_total_investment', 'USD$'),
|
||||||
'additional_technical_details',
|
'additional_technical_details',
|
||||||
css_id="power_grids_energy_storage_questions"
|
css_id="power_grids_energy_storage_questions"
|
||||||
),
|
),
|
||||||
@ -366,31 +367,25 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
),
|
),
|
||||||
Tab(
|
Tab(
|
||||||
_("Socio-environmental analysis"),
|
_("Socio-environmental analysis"),
|
||||||
|
HTML("<p>" + _("In the following, we expect the analysis to reflect the perspective of the organization(s) or person(s) describing the case.") + "</p>"),
|
||||||
'positive_or_negative',
|
'positive_or_negative',
|
||||||
Fieldset(
|
HTML("<b>What kind of case is this entry about?</b>"),
|
||||||
_("Positive Case Questions"),
|
'positive_case_type',
|
||||||
'positive_case_type',
|
'negative_case_reasons',
|
||||||
'socioeconomic_benefits',
|
'negative_case_reasons_other',
|
||||||
'project_status_detail',
|
'socioeconomic_benefits',
|
||||||
'obstacles_and_hindrances',
|
'isolated_or_widespread',
|
||||||
'identified_partnerships',
|
'key_actors_involved',
|
||||||
css_id="positive_case_questions"
|
'project_status_detail',
|
||||||
),
|
'obstacles_and_hindrances',
|
||||||
Fieldset(
|
'negative_socioenvironmental_impacts',
|
||||||
_("Negative Case Questions"),
|
'when_did_organising_start',
|
||||||
'negative_case_reasons',
|
'who_has_been_involved',
|
||||||
'negative_case_reasons_other',
|
'participation_mechanisms',
|
||||||
'negative_socioenvironmental_impacts',
|
'identified_partnerships',
|
||||||
'isolated_or_widespread',
|
'potential_partnerships',
|
||||||
'when_did_organising_start',
|
'wants_conversation_with_ojuso',
|
||||||
'who_has_been_involved',
|
|
||||||
'participation_mechanisms',
|
|
||||||
'potential_partnerships',
|
|
||||||
'wants_conversation_with_ojuso',
|
|
||||||
css_id="negative_case_questions"
|
|
||||||
),
|
|
||||||
Div(
|
Div(
|
||||||
'key_actors_involved',
|
|
||||||
css_id="common_questions"
|
css_id="common_questions"
|
||||||
),
|
),
|
||||||
FormActions(
|
FormActions(
|
||||||
@ -417,10 +412,6 @@ class LongCaseStudyForm(BaseCaseStudyForm):
|
|||||||
'official_project_documents_files',
|
'official_project_documents_files',
|
||||||
'other_documents',
|
'other_documents',
|
||||||
'other_documents_files',
|
'other_documents_files',
|
||||||
'shapefiles',
|
|
||||||
'shapefiles_files',
|
|
||||||
'coordinate_reference_system',
|
|
||||||
'name_of_territory_or_area',
|
|
||||||
'shown_on_other_platforms',
|
'shown_on_other_platforms',
|
||||||
'shown_on_other_platforms_detail',
|
'shown_on_other_platforms_detail',
|
||||||
FormActions(
|
FormActions(
|
||||||
|
@ -107,7 +107,7 @@ class CaseStudy(models.Model):
|
|||||||
('UCONST', _('Under construction')),
|
('UCONST', _('Under construction')),
|
||||||
('EXSTNG', _('In operation')),
|
('EXSTNG', _('In operation')),
|
||||||
('DECOMM', _('Undergoing decommissioning')),
|
('DECOMM', _('Undergoing decommissioning')),
|
||||||
('END', _('Decommissioned]')),
|
('END', _('Decommissioned')),
|
||||||
)
|
)
|
||||||
|
|
||||||
FINANCIAL_INSTITUTIONS = (
|
FINANCIAL_INSTITUTIONS = (
|
||||||
@ -271,10 +271,11 @@ class CaseStudy(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
POSITIVE_CASE_TYPE_CHOICES = (
|
POSITIVE_CASE_TYPE_CHOICES = (
|
||||||
('CREP', _('Community renewable energy project')),
|
('CREP', _('Community project (co-)owned by individuals')),
|
||||||
('EACP', _('Energy as a commons project')),
|
('EACP', _('Community project owned by not-for-profit organizations and/or serving the public interest')),
|
||||||
('PSEP', _('Public/state (federal, state, municipal) energy project')),
|
('PSEP', _('Public/state (federal, state, municipal) project')),
|
||||||
('CORS', _('A case of responsible sourcing/supply chain/lifecycle management')),
|
('CORS', _('Reuse / Recycling / Circular economy project')),
|
||||||
|
('OTHR', _('Other(s)'))
|
||||||
)
|
)
|
||||||
|
|
||||||
NEGATIVE_CASE_REASONS_OTHER_TEXT = _('Other reasons')
|
NEGATIVE_CASE_REASONS_OTHER_TEXT = _('Other reasons')
|
||||||
@ -324,6 +325,45 @@ class CaseStudy(models.Model):
|
|||||||
# Slug derived from entry_name, used in urls for SEO
|
# Slug derived from entry_name, used in urls for SEO
|
||||||
slug = AutoSlugField(populate_from=['entry_name'], editable=False)
|
slug = AutoSlugField(populate_from=['entry_name'], editable=False)
|
||||||
|
|
||||||
|
##
|
||||||
|
# Territory info
|
||||||
|
##
|
||||||
|
|
||||||
|
location = models.PointField(
|
||||||
|
verbose_name=_("Project location")
|
||||||
|
)
|
||||||
|
|
||||||
|
shapefiles = models.ManyToManyField(
|
||||||
|
'files.File',
|
||||||
|
related_name='shapefile_for',
|
||||||
|
verbose_name=_("Geographic data"),
|
||||||
|
help_text=_("If you have territory that you would like to show in relation to this project \
|
||||||
|
- e.g. Bienes Comunales de Ixtepec etc. This is a set of 3 or more (often 5-6) \
|
||||||
|
files with file extensions like .cpg, .dbf, .prj, .qpj, .shp, .shx. \
|
||||||
|
\
|
||||||
|
Hold down Control, or Command on a Mac, to select more than one. \
|
||||||
|
Let us know (database@ojuso.org) if you have other file types or need help and we \
|
||||||
|
can work out how to import it. You may have data as GeoPackage (gpkg), GeoJSON, \
|
||||||
|
KML, GML, etc. or have data in PostGIS or another spatial database management \
|
||||||
|
system already."),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
coordinate_reference_system = models.ForeignKey(
|
||||||
|
SpatialRefSys,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
default=4326,
|
||||||
|
on_delete=models.PROTECT
|
||||||
|
)
|
||||||
|
|
||||||
|
name_of_territory_or_area = models.CharField(
|
||||||
|
verbose_name=_("Name of territory or area"),
|
||||||
|
max_length=512,
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# First Screen - Basic information
|
# First Screen - Basic information
|
||||||
##
|
##
|
||||||
@ -338,11 +378,6 @@ class CaseStudy(models.Model):
|
|||||||
max_length=128
|
max_length=128
|
||||||
)
|
)
|
||||||
|
|
||||||
# N/A - Not explicitly listed in spec
|
|
||||||
location = models.PointField(
|
|
||||||
verbose_name=_("Project location")
|
|
||||||
)
|
|
||||||
|
|
||||||
# 1.2
|
# 1.2
|
||||||
sector_of_economy = models.CharField(
|
sector_of_economy = models.CharField(
|
||||||
verbose_name=_("Sector of economy"),
|
verbose_name=_("Sector of economy"),
|
||||||
@ -350,14 +385,6 @@ class CaseStudy(models.Model):
|
|||||||
choices=SECTOR_CHOICES
|
choices=SECTOR_CHOICES
|
||||||
)
|
)
|
||||||
|
|
||||||
# 1.3
|
|
||||||
positive_or_negative = models.CharField(
|
|
||||||
verbose_name=_("What is the relationship of local community organization(s) to this project?"),
|
|
||||||
help_text=_("Please reflect the perspective of the organization(s) or person(s) describing the case."),
|
|
||||||
max_length=1,
|
|
||||||
choices=POSITIVE_NEGATIVE_CHOICES
|
|
||||||
)
|
|
||||||
|
|
||||||
# 1.4
|
# 1.4
|
||||||
country = CountryField(
|
country = CountryField(
|
||||||
verbose_name=_("Country"),
|
verbose_name=_("Country"),
|
||||||
@ -852,102 +879,81 @@ class CaseStudy(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Third Screen - Socio-economic analysis
|
# Socio-economic analysis
|
||||||
##
|
##
|
||||||
|
|
||||||
# 3.1.1
|
positive_or_negative = models.CharField(
|
||||||
|
verbose_name=_("What is the relationship of local community organization(s) to this project?"),
|
||||||
|
max_length=1,
|
||||||
|
choices=POSITIVE_NEGATIVE_CHOICES
|
||||||
|
)
|
||||||
|
|
||||||
positive_case_type = models.CharField(
|
positive_case_type = models.CharField(
|
||||||
verbose_name=_('What kind of positive case is this entry about?'),
|
verbose_name=_('What kind of case is this entry about?'),
|
||||||
help_text=_('Select the most relevant type of positive case'),
|
help_text=_('Select the most relevant type of positive case'),
|
||||||
choices=POSITIVE_CASE_TYPE_CHOICES,
|
choices=POSITIVE_CASE_TYPE_CHOICES,
|
||||||
max_length=4,
|
max_length=4,
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.1.2
|
negative_case_reasons = MultiSelectField(
|
||||||
socioeconomic_benefits = models.TextField(
|
verbose_name=("What kind of case is this entry about?"),
|
||||||
verbose_name=_('Socio-economic benefits'),
|
choices=NEGATIVE_CASE_REASONS_CHOICES,
|
||||||
help_text=_('Please expand on your response given in the full description on page one. We would expect \
|
blank=True
|
||||||
benefits to go beyond emissions savings, paying rent for land, or complying with environmental or social \
|
)
|
||||||
legislation'),
|
|
||||||
|
socioeconomic_benefits = models.TextField(
|
||||||
|
verbose_name=_('Socio-economic impacts'),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
negative_socioenvironmental_impacts = models.TextField(
|
||||||
|
verbose_name=_("Describe the socio-environmental impacts (positive and negative):"),
|
||||||
|
help_text=_("Provide a detailed description of the socio-environmental impacts \
|
||||||
|
(please provide all relevant details, such as type of ecosystem and \
|
||||||
|
presence of any existing reserve in the area, land to have increased \
|
||||||
|
biodiversity as a result of the project, new protection of lands/waters, \
|
||||||
|
specific communities affected by the project, total geographic footprint \
|
||||||
|
of the project, and tenure system affected in the case of land grabs, \
|
||||||
|
kind of permits that were irregularly issued if this is the case."),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
isolated_or_widespread = models.TextField(
|
||||||
|
verbose_name=_("Is the project part of developments which are causing a cumulative effect?"),
|
||||||
|
help_text=_("Is this an isolated project or are there similar projects in the same \
|
||||||
|
geographic area? If so, can you describe them? Is there an analysis of \
|
||||||
|
cumulative or synergetic effects?"),
|
||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.1.3 + 3.2.5
|
|
||||||
key_actors_involved = models.TextField(
|
key_actors_involved = models.TextField(
|
||||||
verbose_name=_('Key actors involved (individual/organisational)'),
|
verbose_name=_('Key actors involved (individual/organisational)'),
|
||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.1.4
|
|
||||||
project_status_detail = models.TextField(
|
project_status_detail = models.TextField(
|
||||||
verbose_name=_('Current status of the project'),
|
verbose_name=_('Current status of the case'),
|
||||||
help_text=_("Describe the current status of the project, expanding beyond 'existing', 'under construction' etc"),
|
help_text=_("Describe the current situation and likely future scenarios."),
|
||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.1.5
|
obstacles_and_hindrances = models.TextField(
|
||||||
obstacles_and_hindrances = models.CharField(
|
verbose_name=_('Current status of the organizing process around this case'),
|
||||||
verbose_name=_('Obstacles and hindrances'),
|
help_text=_('Please describe the status of the organizing process, including the obstacles and hindrances faced.'),
|
||||||
help_text=_('List any obstacles or hindrances experienced in the course of the project'),
|
|
||||||
max_length=512,
|
max_length=512,
|
||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.1.6
|
|
||||||
identified_partnerships = models.CharField(
|
identified_partnerships = models.CharField(
|
||||||
verbose_name=_('Identified partnerships'),
|
verbose_name=_('Identified partnerships'),
|
||||||
help_text=_('Are you looking for partnerships or have any clearly identified need? If so, please describe it \
|
help_text=_('Are you, or the organizing process that you represent, looking for partnerships, \
|
||||||
here.'),
|
or have any clearly identified need? If so, please describe and we will try \
|
||||||
|
to connect you to appropriate partners.'),
|
||||||
max_length=256,
|
max_length=256,
|
||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.1.7.1 + 3.2.8.1
|
|
||||||
contact_email = models.EmailField(
|
|
||||||
verbose_name=_('Email address'),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.1.7.2 + 3.2.8.1
|
|
||||||
contact_phone = PhoneNumberField(
|
|
||||||
verbose_name=_('Phone number'),
|
|
||||||
help_text=_('Please include the international prefix, beginning with "+".'),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.1.7.3 + 3.2.8.1
|
|
||||||
contact_website = models.URLField(
|
|
||||||
verbose_name=_('Website'),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.1.7.4 + 3.2.8.1
|
|
||||||
contact_twitter = models.CharField(
|
|
||||||
verbose_name=_('Twitter username'),
|
|
||||||
max_length=50,
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.1.7.5 + 3.2.8.1
|
|
||||||
contact_facebook = models.URLField(
|
|
||||||
verbose_name=_('Facebook page'),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.1.7.6 + 3.2.8.1
|
|
||||||
contact_other = models.TextField(
|
|
||||||
verbose_name=_('Other contact details'),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.2.1
|
|
||||||
negative_case_reasons = MultiSelectField(
|
|
||||||
verbose_name=("Reasons this is a negative case study"),
|
|
||||||
choices=NEGATIVE_CASE_REASONS_CHOICES,
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.2.1.9
|
# 3.2.1.9
|
||||||
negative_case_reasons_other = models.CharField(
|
negative_case_reasons_other = models.CharField(
|
||||||
verbose_name=_("Other reason for negative case"),
|
verbose_name=_("Other reason for negative case"),
|
||||||
@ -957,30 +963,11 @@ class CaseStudy(models.Model):
|
|||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.2.2
|
|
||||||
negative_socioenvironmental_impacts = models.TextField(
|
|
||||||
verbose_name=_("Describe the negative socio-environmental impacts"),
|
|
||||||
help_text=_("Provide a detailed description of the negative socio-environmental impacts (please provide all \
|
|
||||||
relevant details, such as type of ecosystem and presence of any existing reserve in the area, \
|
|
||||||
, specific communities affected by the project, total geographic footprint of the project, and \
|
|
||||||
tenure system affected in the case of land grabs, kind of permits that were irregularly issued if \
|
|
||||||
this is the case."),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.2.3
|
|
||||||
isolated_or_widespread = models.TextField(
|
|
||||||
verbose_name=_("Describe if the project is isolated or commonplace."),
|
|
||||||
help_text=_("Is this an isolated project or are there similar projects in the same geographic area? If there \
|
|
||||||
are more, can you describe them? Are there any significant cumulative synergistic effects?"),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.2.4.1
|
# 3.2.4.1
|
||||||
when_did_organising_start = models.CharField(
|
when_did_organising_start = models.CharField(
|
||||||
verbose_name=_("When did local organising efforts begin?"),
|
verbose_name=_("When did local organising efforts begin?"),
|
||||||
help_text=_("Before the project started? During project implementation? After project implementation? \
|
help_text=_("Before the project started? During project implementation? \
|
||||||
Describe in your own words."),
|
After project implementation? Describe in your own words."),
|
||||||
max_length=512,
|
max_length=512,
|
||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
@ -998,15 +985,6 @@ class CaseStudy(models.Model):
|
|||||||
blank=True
|
blank=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.2.6
|
|
||||||
potential_partnerships = models.CharField(
|
|
||||||
verbose_name=_("Describe potential partnerships"),
|
|
||||||
help_text=_("Are you looking for partnerships or do you have any clearly identified need? If so, please \
|
|
||||||
describe it here."),
|
|
||||||
max_length=512,
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 3.2.7
|
# 3.2.7
|
||||||
wants_conversation_with_ojuso = models.BooleanField(
|
wants_conversation_with_ojuso = models.BooleanField(
|
||||||
verbose_name=_("Would you like to have a conversation with the ojuso team?"),
|
verbose_name=_("Would you like to have a conversation with the ojuso team?"),
|
||||||
@ -1015,8 +993,46 @@ class CaseStudy(models.Model):
|
|||||||
default=True
|
default=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Fourth Screen - Uploads
|
# Contact details
|
||||||
|
##
|
||||||
|
|
||||||
|
contact_email = models.EmailField(
|
||||||
|
verbose_name=_('Email address'),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
contact_phone = PhoneNumberField(
|
||||||
|
verbose_name=_('Phone number'),
|
||||||
|
help_text=_('Please include the international prefix, beginning with "+".'),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
contact_website = models.URLField(
|
||||||
|
verbose_name=_('Website'),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
contact_twitter = models.CharField(
|
||||||
|
verbose_name=_('Twitter username'),
|
||||||
|
max_length=50,
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
contact_facebook = models.URLField(
|
||||||
|
verbose_name=_('Facebook page'),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
contact_other = models.TextField(
|
||||||
|
verbose_name=_('Other contact details'),
|
||||||
|
blank=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Uploads
|
||||||
##
|
##
|
||||||
|
|
||||||
# 4.1
|
# 4.1
|
||||||
@ -1024,7 +1040,8 @@ class CaseStudy(models.Model):
|
|||||||
'files.File',
|
'files.File',
|
||||||
related_name='official_project_document_for',
|
related_name='official_project_document_for',
|
||||||
verbose_name=_("Official project documents"),
|
verbose_name=_("Official project documents"),
|
||||||
help_text=_("Attach any legal or official documents that relate to the project."),
|
help_text=_("Attach any legal or official documents that relate to the project. \
|
||||||
|
Hold down Control, or Command on a Mac, to select more than one."),
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1033,37 +1050,11 @@ class CaseStudy(models.Model):
|
|||||||
'files.File',
|
'files.File',
|
||||||
related_name='other_document_for',
|
related_name='other_document_for',
|
||||||
verbose_name=_("Other documents"),
|
verbose_name=_("Other documents"),
|
||||||
help_text=_("Attach any other documents that relate to the project."),
|
help_text=_("Attach any other documents that relate to the project. \
|
||||||
|
Hold down Control, or Command on a Mac, to select more than one."),
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# 4.3.1
|
|
||||||
shapefiles = models.ManyToManyField(
|
|
||||||
'files.File',
|
|
||||||
related_name='shapefile_for',
|
|
||||||
verbose_name=_("Shapefiles"),
|
|
||||||
help_text=_("If you have territory that you would like to show in relation to this project - e.g. Bienes \
|
|
||||||
Comunales de Ixtepec etc. This is a set of 3 or more (often 5-6) files with file extensions like \
|
|
||||||
.cpg, .dbf, .prj, .qpj, .shp, .shx"),
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 4.3.2
|
|
||||||
coordinate_reference_system = models.ForeignKey(
|
|
||||||
SpatialRefSys,
|
|
||||||
null=True,
|
|
||||||
blank=True,
|
|
||||||
default=4326,
|
|
||||||
on_delete=models.PROTECT
|
|
||||||
)
|
|
||||||
|
|
||||||
# 4.3.3
|
|
||||||
name_of_territory_or_area = models.CharField(
|
|
||||||
verbose_name=_("Name of territory or area"),
|
|
||||||
max_length=512,
|
|
||||||
blank=True
|
|
||||||
)
|
|
||||||
|
|
||||||
# 4.4
|
# 4.4
|
||||||
shown_on_other_platforms = models.BooleanField(
|
shown_on_other_platforms = models.BooleanField(
|
||||||
verbose_name=_("Is this case study shown on other platforms?"),
|
verbose_name=_("Is this case study shown on other platforms?"),
|
||||||
|
@ -40,8 +40,8 @@
|
|||||||
|
|
||||||
<!-- Conditional logic for hiding and un-hiding fields. -->
|
<!-- Conditional logic for hiding and un-hiding fields. -->
|
||||||
<script>
|
<script>
|
||||||
function showIf(thingToShow, whetherToShowIt) {
|
function showIf(thingToShow, shouldShow) {
|
||||||
if (whetherToShowIt) {
|
if (shouldShow) {
|
||||||
$(thingToShow).show()
|
$(thingToShow).show()
|
||||||
} else {
|
} else {
|
||||||
$(thingToShow).hide()
|
$(thingToShow).hide()
|
||||||
@ -76,15 +76,10 @@
|
|||||||
"showHide": ["#mineral_commodity_questions"],
|
"showHide": ["#mineral_commodity_questions"],
|
||||||
"condition": ["SM"]
|
"condition": ["SM"]
|
||||||
},
|
},
|
||||||
{ // 3.1
|
|
||||||
"field": "#id_positive_or_negative",
|
|
||||||
"showHide": ["#positive_case_questions"],
|
|
||||||
"condition": ["P"]
|
|
||||||
},
|
|
||||||
{ // 3.2
|
{ // 3.2
|
||||||
"field": "#id_positive_or_negative",
|
"field": "#id_positive_or_negative",
|
||||||
"showHide": ["#negative_case_questions"],
|
"showHide": ["#div_id_obstacles_and_hindrances"],
|
||||||
"condition": ["N"]
|
"condition": ["P", "N"]
|
||||||
}];
|
}];
|
||||||
|
|
||||||
// Here we define the checkboxes that we need to use to
|
// Here we define the checkboxes that we need to use to
|
||||||
@ -109,7 +104,7 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
var conditionalRadioGroups = [
|
var conditionalControls = [
|
||||||
{
|
{
|
||||||
name: "power_technology",
|
name: "power_technology",
|
||||||
redraw: function() {
|
redraw: function() {
|
||||||
@ -153,7 +148,46 @@
|
|||||||
showIf(section, input.checked)
|
showIf(section, input.checked)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: "sector_of_economy",
|
||||||
|
redraw: function() {
|
||||||
|
const sector = document.forms['case-study-form'].sector_of_economy
|
||||||
|
const input = document.querySelector(`[name=positive_case_type][value=CORS]`)
|
||||||
|
|
||||||
|
// If sector of economy is transmission, mining, or processing
|
||||||
|
// Then enable this input. Otherwise, disable.
|
||||||
|
input.disabled = ['PG', 'SM', 'MA'].includes(sector.value) ? false : true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: "positive_or_negative",
|
||||||
|
redraw: function() {
|
||||||
|
const setting = document.forms['case-study-form'].positive_or_negative
|
||||||
|
|
||||||
|
const relatedElements = [
|
||||||
|
{ value: 'P', elements: '.organising-pro' },
|
||||||
|
{ value: 'N', elements: '.organising-vs' },
|
||||||
|
{ value: 'X', elements: '.organising-none' },
|
||||||
|
{ value: 'U', elements: '.organising-idk' },
|
||||||
|
{ value: '', elements: '.organising-idk' },
|
||||||
|
]
|
||||||
|
|
||||||
|
let show = null
|
||||||
|
|
||||||
|
for (const { value, elements } of relatedElements) {
|
||||||
|
if (value === setting.value) {
|
||||||
|
show = elements
|
||||||
|
}
|
||||||
|
|
||||||
|
$(elements).css("display", "")
|
||||||
|
}
|
||||||
|
|
||||||
|
$(show).css("display", "inline")
|
||||||
|
}
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
// Define a function that hides the field and then creates a listener to toggle the field.
|
// Define a function that hides the field and then creates a listener to toggle the field.
|
||||||
@ -230,8 +264,8 @@
|
|||||||
$(item.checkbox).change();
|
$(item.checkbox).change();
|
||||||
});
|
});
|
||||||
|
|
||||||
conditionalRadioGroups.forEach(function (group) {
|
conditionalControls.forEach(function (group) {
|
||||||
$(`input[name=${group.name}]`).on('change', group.redraw)
|
$(`[name=${group.name}]`).on('change', group.redraw)
|
||||||
group.redraw();
|
group.redraw();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -146,6 +146,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* socio-environmental analysis tab styles */
|
||||||
|
.organising {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HOME PAGE
|
* HOME PAGE
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user