Exemple #1
0
 class Meta:
     model = InputDataInformation
     exclude = ('impact_model', )
     widgets = {
         'climate_variables_info': MyTextInput(textarea=True),
         'additional_input_data_sets': MyTextInput(textarea=True),
     }
Exemple #2
0
 class Meta:
     model = ImpactModel
     exclude = ('base_model', 'public', 'simulation_round')
     widgets = {
         'version': MyTextInput(),
         'main_reference_paper': RefPaperWidget(),
         'other_references': RefPaperWidget(),
         'responsible_person': MyTextInput(),
     }
Exemple #3
0
 class Meta:
     model = ImpactModel
     exclude = ('base_model', 'public', 'simulation_round',
                'dataset_history')
     widgets = {
         'version': MyTextInput(),
         'main_reference_paper': RefPaperWidget(),
         'other_references': RefPaperWidget(),
         'responsible_person': MyTextInput(),
         'model_license': forms.TextInput(attrs={'readonly': 'readonly'})
     }
Exemple #4
0
 class Meta:
     model = TechnicalInformation
     exclude = ('impact_model', )
     widgets = {
         'spatial_resolution': MyMultiSelect(allowcustom=True),
         'spatial_resolution_info': MyTextInput(textarea=True),
         'temporal_resolution_climate': MyMultiSelect(allowcustom=True),
         'temporal_resolution_co2': MyMultiSelect(allowcustom=True),
         'temporal_resolution_land': MyMultiSelect(allowcustom=True),
         'temporal_resolution_soil': MyMultiSelect(allowcustom=True),
         'temporal_resolution_info': MyTextInput(textarea=True),
     }
Exemple #5
0
 class Meta:
     model = Attachment
     exclude = ('impact_model', )
     widgets = {
         'attachment1': ClearableFileInput,
         'attachment1_description': MyTextInput(),
         'attachment2': ClearableFileInput,
         'attachment2_description': MyTextInput(),
         'attachment3': ClearableFileInput,
         'attachment3_description': MyTextInput(),
         'attachment4': ClearableFileInput,
         'attachment4_description': MyTextInput(),
         'attachment5': ClearableFileInput,
         'attachment5_description': MyTextInput(),
     }
Exemple #6
0
 def __init__(self, *args, **kwargs):
     instance = kwargs.get('instance', None)
     super(BaseSectorForm, self).__init__(*args, **kwargs)
     if instance:
         sector = instance.impact_model.base_model.sector
         self.generic_groups = []
         for group in SectorInformationGroup.objects.filter(sector=sector):
             fields = []
             for field in group.fields.all():
                 fields.append(field.unique_identifier)
                 self.generic_fields.append(field.unique_identifier)
                 self.fields[field.unique_identifier] = forms.CharField(
                     widget=MyTextInput(textarea=True),
                     label=field.name,
                     help_text=field.help_text,
                     required=False,
                     initial='')
                 if instance.data and field.unique_identifier in instance.data:
                     field_initial = instance.data[field.unique_identifier]
                     if field_initial:
                         self.fields[
                             field.
                             unique_identifier].initial = field_initial
             self.generic_groups.append({
                 'name': group.name,
                 'fields': fields,
                 'description': group.description
             })
Exemple #7
0
 class Meta:
     model = MarineEcosystems
     exclude = ('impact_model', )
     widgets = {
         'defining_features': MyTextInput(textarea=True),
         'spatial_scale': MyTextInput(),
         'spatial_resolution': MyTextInput(),
         'temporal_scale': MyTextInput(),
         'temporal_resolution': MyTextInput(),
         'taxonomic_scope': MyTextInput(),
         'vertical_resolution': MyTextInput(),
         'spatial_dispersal_included': MyTextInput(),
         'fishbase_used_for_mass_length_conversion': MyTextInput(),
     }
Exemple #8
0
 class Meta:
     model = OtherInformation
     exclude = ('impact_model', )
     widgets = {
         'exceptions_to_protocol': MyTextInput(textarea=True),
         'spin_up': MyBooleanSelect(nullable=False),
         'spin_up_design': MyTextInput(textarea=True),
         'natural_vegetation_partition': MyTextInput(textarea=True),
         'natural_vegetation_dynamics': MyTextInput(textarea=True),
         'natural_vegetation_cover_dataset': MyTextInput(),
         'management': MyTextInput(textarea=True),
         'extreme_events': MyTextInput(textarea=True),
         'anything_else': MyTextInput(textarea=True),
     }
Exemple #9
0
 class Meta:
     model = WaterRegional
     exclude = ('impact_model', )
     widgets = {
         "methods_evapotranspiration": MyTextInput(textarea=True),
         'methods_snowmelt': MyTextInput(textarea=True),
         'vegetation': MyBooleanSelect(nullable=True),
         'vegetation_approach_used': MyTextInput(textarea=True),
         'vegetation_representation': MyMultiSelect(allowcustom=False),
         'routing': MyTextInput(textarea=True),
         'routing_data': MyTextInput(textarea=True),
         'calibration': MyBooleanSelect(nullable=True),
         'calibration_model_evaluated': MyBooleanSelect(nullable=True),
         'calibration_periods': MyTextInput(textarea=True),
         'calibration_methods': MyTextInput(textarea=True),
     }
Exemple #10
0
 class Meta:
     model = Biodiversity
     exclude = ('impact_model', )
     widgets = {
         'model_algorithm': MyMultiSelect(allowcustom=False),
         'explanatory_variables': MyTextInput(textarea=True),
         'response_variable': MyMultiSelect(allowcustom=False),
         'additional_information_response_variable':
         MyTextInput(textarea=True),
         'distribution_response_variable': MyMultiSelect(allowcustom=False),
         'parameters': MyTextInput(textarea=True),
         'additional_info_parameters': MyTextInput(textarea=True),
         'software_function': MyMultiSelect(allowcustom=False),
         'software_package': MyMultiSelect(allowcustom=False),
         'software_program': MyTextInput(textarea=True),
         'additional_info_model_output': MyTextInput(textarea=True),
     }
Exemple #11
0
 class Meta:
     model = Biomes
     exclude = ('impact_model', )
     widgets = {
         'output':
         MyTextInput(textarea=True),
         'output_per_pft':
         MyTextInput(),
         'considerations':
         MyTextInput(textarea=True),
         'dynamic_vegetation':
         MyTextInput(textarea=True),
         'nitrogen_limitation':
         MyTextInput(textarea=True),
         'co2_effects':
         MyTextInput(textarea=True),
         'light_interception':
         MyTextInput(textarea=True),
         'light_utilization':
         MyTextInput(textarea=True),
         'phenology':
         MyTextInput(textarea=True),
         'water_stress':
         MyTextInput(textarea=True),
         'heat_stress':
         MyTextInput(textarea=True),
         'evapotranspiration_approach':
         MyTextInput(textarea=True),
         'rooting_depth_differences':
         MyTextInput(textarea=True),
         'root_distribution':
         MyTextInput(textarea=True),
         'permafrost':
         MyTextInput(textarea=True),
         'closed_energy_balance':
         MyTextInput(textarea=True),
         'soil_moisture_surface_temperature_coupling':
         MyTextInput(textarea=True),
         'latent_heat':
         MyTextInput(textarea=True),
         'sensible_heat':
         MyTextInput(textarea=True),
         'mortality_age':
         MyTextInput(textarea=True),
         'mortality_fire':
         MyTextInput(textarea=True),
         'mortality_drought':
         MyTextInput(textarea=True),
         'mortality_insects':
         MyTextInput(textarea=True),
         'mortality_storm':
         MyTextInput(textarea=True),
         'mortality_stochastic_random_disturbance':
         MyTextInput(textarea=True),
         'mortality_other':
         MyTextInput(textarea=True),
         'mortality_remarks':
         MyTextInput(textarea=True),
         'nbp_fire':
         MyTextInput(textarea=True),
         'nbp_landuse_change':
         MyTextInput(textarea=True),
         'nbp_harvest':
         MyTextInput(textarea=True),
         'nbp_other':
         MyTextInput(textarea=True),
         'nbp_comments':
         MyTextInput(textarea=True),
         'list_of_pfts':
         MyTextInput(textarea=True),
         'pfts_comments':
         MyTextInput(textarea=True),
         'compute_soil_carbon':
         MyTextInput(textarea=True),
         'seperate_soil_carbon':
         MyTextInput(textarea=True),
         'harvest_npp_crops':
         MyTextInput(textarea=True),
         'treat_biofuel_npp':
         MyTextInput(textarea=True),
         'npp_litter_output':
         MyTextInput(textarea=True),
         'simulate_bioenergy':
         MyTextInput(textarea=True),
         'transition_cropland':
         MyTextInput(textarea=True),
         'simulate_pasture':
         MyTextInput(textarea=True),
     }
Exemple #12
0
 class Meta:
     model = Water
     exclude = ('impact_model', )
     widgets = {
         'technological_progress': MyTextInput(textarea=True),
         'soil_layers': MyTextInput(textarea=True),
         'water_use': MyTextInput(textarea=True),
         'water_sectors': MyTextInput(textarea=True),
         'routing': MyTextInput(textarea=True),
         'routing_data': MyTextInput(textarea=True),
         'land_use': MyTextInput(textarea=True),
         'dams_reservoirs': MyTextInput(textarea=True),
         'calibration': MyBooleanSelect(nullable=True),
         'calibration_years': MyTextInput(),
         'calibration_dataset': MyTextInput(),
         'calibration_catchments': MyTextInput(),
         'vegetation': MyBooleanSelect(nullable=True),
         'vegetation_representation': MyTextInput(textarea=True),
         "methods_evapotranspiration": MyTextInput(textarea=True),
         'methods_snowmelt': MyTextInput(textarea=True),
     }
Exemple #13
0
 class Meta:
     model = Energy
     exclude = ('impact_model', )
     widgets = {
         'model_type':
         MyTextInput(textarea=True),
         'temporal_extent':
         MyTextInput(textarea=True),
         'temporal_resolution':
         MyTextInput(textarea=True),
         'data_format_for_input':
         MyTextInput(textarea=True),
         'impact_types_energy_demand':
         MyTextInput(textarea=True),
         'impact_types_temperature_effects_on_thermal_power':
         MyTextInput(textarea=True),
         'impact_types_weather_effects_on_renewables':
         MyTextInput(textarea=True),
         'impact_types_water_scarcity_impacts':
         MyTextInput(textarea=True),
         'impact_types_other':
         MyTextInput(textarea=True),
         'output_energy_demand':
         MyTextInput(textarea=True),
         'output_energy_supply':
         MyTextInput(textarea=True),
         'output_water_scarcity':
         MyTextInput(textarea=True),
         'output_economics':
         MyTextInput(textarea=True),
         'output_other':
         MyTextInput(textarea=True),
         'variables_not_directly_from_GCMs':
         MyTextInput(textarea=True),
         'response_function_of_energy_demand_to_HDD_CDD':
         MyTextInput(textarea=True),
         'factor_definition_and_calculation':
         MyTextInput(textarea=True),
         'biomass_types':
         MyTextInput(textarea=True),
         'maximum_potential_assumption':
         MyTextInput(textarea=True),
         'bioenergy_supply_costs':
         MyTextInput(textarea=True),
         'socioeconomic_input':
         MyTextInput(textarea=True),
     }
Exemple #14
0
 class Meta:
     model = Fire
     exclude = ('impact_model', )
     widgets = {
         'output':
         MyTextInput(textarea=True),
         'output_per_pft':
         MyTextInput(),
         'considerations':
         MyTextInput(textarea=True),
         'dynamic_vegetation':
         MyTextInput(textarea=True),
         'nitrogen_limitation':
         MyTextInput(textarea=True),
         'co2_effects':
         MyTextInput(textarea=True),
         'light_interception':
         MyTextInput(textarea=True),
         'light_utilization':
         MyTextInput(textarea=True),
         'phenology':
         MyTextInput(textarea=True),
         'water_stress':
         MyTextInput(textarea=True),
         'heat_stress':
         MyTextInput(textarea=True),
         'evapotranspiration_approach':
         MyTextInput(textarea=True),
         'rooting_depth_differences':
         MyTextInput(textarea=True),
         'root_distribution':
         MyTextInput(textarea=True),
         'permafrost':
         MyTextInput(textarea=True),
         'closed_energy_balance':
         MyTextInput(textarea=True),
         'soil_moisture_surface_temperature_coupling':
         MyTextInput(textarea=True),
         'latent_heat':
         MyTextInput(textarea=True),
         'sensible_heat':
         MyTextInput(textarea=True),
         'mortality_age':
         MyTextInput(textarea=True),
         'mortality_fire':
         MyTextInput(textarea=True),
         'mortality_drought':
         MyTextInput(textarea=True),
         'mortality_insects':
         MyTextInput(textarea=True),
         'mortality_storm':
         MyTextInput(textarea=True),
         'mortality_stochastic_random_disturbance':
         MyTextInput(textarea=True),
         'mortality_other':
         MyTextInput(textarea=True),
         'mortality_remarks':
         MyTextInput(textarea=True),
         'nbp_fire':
         MyTextInput(textarea=True),
         'nbp_landuse_change':
         MyTextInput(textarea=True),
         'nbp_harvest':
         MyTextInput(textarea=True),
         'nbp_other':
         MyTextInput(textarea=True),
         'nbp_comments':
         MyTextInput(textarea=True),
         'list_of_pfts':
         MyTextInput(textarea=True),
         'pfts_comments':
         MyTextInput(textarea=True),
         'compute_soil_carbon':
         MyTextInput(textarea=True),
         'seperate_soil_carbon':
         MyTextInput(textarea=True),
         'harvest_npp_crops':
         MyTextInput(textarea=True),
         'treat_biofuel_npp':
         MyTextInput(textarea=True),
         'npp_litter_output':
         MyTextInput(textarea=True),
         'simulate_bioenergy':
         MyTextInput(textarea=True),
         'transition_cropland':
         MyTextInput(textarea=True),
         'simulate_pasture':
         MyTextInput(textarea=True),
         'main_components_burnt_area':
         MyTextInput(textarea=True),
         'sources_of_ignition':
         MyTextInput(textarea=True),
         'fire_ignition_implemented':
         MyTextInput(textarea=True),
         'natural_ignition_implemented':
         MyTextInput(textarea=True),
         'human_ignition':
         MyTextInput(textarea=True),
         'human_ignition_conditions':
         MyTextInput(textarea=True),
         'how_does_fire_spread':
         MyTextInput(textarea=True),
         'fire_duration_computed':
         MyTextInput(textarea=True),
         'model_compute_fuel_load':
         MyTextInput(textarea=True),
         'list_of_fuel_classes':
         MyTextInput(textarea=True),
         'fuel_moisture_linked':
         MyTextInput(textarea=True),
         'carbon_pools_combusted':
         MyTextInput(textarea=True),
         'combustion_completeness':
         MyTextInput(textarea=True),
         'min_max_burned_area_grid':
         MyTextInput(textarea=True),
         'land_cover_classes_allowed':
         MyTextInput(textarea=True),
         'burned_area_computed_separately':
         MyTextInput(textarea=True),
         'peatland_fires_included':
         MyTextInput(textarea=True),
         'deforestation_or_clearing_included':
         MyTextInput(textarea=True),
         'pastures_represented':
         MyTextInput(textarea=True),
         'cropland_burn_differ':
         MyTextInput(textarea=True),
         'pasture_burn_differ':
         MyTextInput(textarea=True),
         'vegetation_fire_mortality':
         MyTextInput(textarea=True),
     }
Exemple #15
0
 class Meta:
     model = BaseImpactModel
     exclude = ('owners', 'public', 'sector', 'name', 'drkz_folder_name')
     widgets = {
         'short_description': MyTextInput(textarea=True),
     }
Exemple #16
0
 class Meta:
     model = Forests
     exclude = ('impact_model', )
     widgets = {
         # Forest Model Set-up Specifications
         'initialize_model':
         MyTextInput(textarea=True),
         'data_profound_db':
         MyTextInput(textarea=True),
         'management_implementation':
         MyTextInput(textarea=True),
         'harvesting_simulated':
         MyTextInput(textarea=True),
         'regenerate':
         MyTextInput(textarea=True),
         'unmanaged_simulations':
         MyTextInput(textarea=True),
         'noco2_scenario':
         MyTextInput(textarea=True),
         'leap_years':
         MyTextInput(textarea=True),
         'simulate_minor_tree':
         MyTextInput(textarea=True),
         'nitrogen_simulation':
         MyTextInput(textarea=True),
         'soil_depth':
         MyTextInput(textarea=True),
         'upload_parameter_list':
         MyTextInput(textarea=True),
         'minimum_diameter_tree':
         MyTextInput(textarea=True),
         'model_historically_calibrated':
         MyTextInput(textarea=True),
         'stochastic_element':
         MyTextInput(textarea=True),
         # Forest Model Output Specifications
         'initial_state':
         MyTextInput(textarea=True),
         'total_calculation':
         MyTextInput(textarea=True),
         'output_dbh_class':
         MyTextInput(textarea=True),
         'output':
         MyTextInput(textarea=True),
         'output_per_pft':
         MyTextInput(),
         'considerations':
         MyTextInput(textarea=True),
         'dynamic_vegetation':
         MyTextInput(textarea=True),
         'nitrogen_limitation':
         MyTextInput(textarea=True),
         'co2_effects':
         MyTextInput(textarea=True),
         'light_interception':
         MyTextInput(textarea=True),
         'light_utilization':
         MyTextInput(textarea=True),
         'phenology':
         MyTextInput(textarea=True),
         'water_stress':
         MyTextInput(textarea=True),
         'heat_stress':
         MyTextInput(textarea=True),
         'evapotranspiration_approach':
         MyTextInput(textarea=True),
         'rooting_depth_differences':
         MyTextInput(textarea=True),
         'root_distribution':
         MyTextInput(textarea=True),
         'permafrost':
         MyTextInput(textarea=True),
         'closed_energy_balance':
         MyTextInput(textarea=True),
         'soil_moisture_surface_temperature_coupling':
         MyTextInput(textarea=True),
         'latent_heat':
         MyTextInput(textarea=True),
         'sensible_heat':
         MyTextInput(textarea=True),
         'mortality_age':
         MyTextInput(textarea=True),
         'mortality_fire':
         MyTextInput(textarea=True),
         'mortality_drought':
         MyTextInput(textarea=True),
         'mortality_insects':
         MyTextInput(textarea=True),
         'mortality_storm':
         MyTextInput(textarea=True),
         'mortality_stochastic_random_disturbance':
         MyTextInput(textarea=True),
         'mortality_other':
         MyTextInput(textarea=True),
         'mortality_remarks':
         MyTextInput(textarea=True),
         'nbp_fire':
         MyTextInput(textarea=True),
         'nbp_landuse_change':
         MyTextInput(textarea=True),
         'nbp_harvest':
         MyTextInput(textarea=True),
         'nbp_other':
         MyTextInput(textarea=True),
         'nbp_comments':
         MyTextInput(textarea=True),
         'list_of_pfts':
         MyTextInput(textarea=True),
         'pfts_comments':
         MyTextInput(textarea=True),
         'assimilation':
         MyTextInput(textarea=True),
         'respiration':
         MyTextInput(textarea=True),
         'carbon_allocation':
         MyTextInput(textarea=True),
         'regeneration_planting':
         MyTextInput(textarea=True),
         'soil_water_balance':
         MyTextInput(textarea=True),
         'carbon_nitrogen_balance':
         MyTextInput(textarea=True),
         'feedbacks_considered':
         MyTextInput(textarea=True),
     }
Exemple #17
0
class ForestsForm(BaseSectorForm):
    template = 'edit_forests.html'
    upload_parameter_list = forms.CharField(
        widget=MyTextInput(textarea=True),
        required=False,
        label=mark_safe(
            'Please upload a list of your parameters as an attachment (Section 7). The list should include species-specific parameters and other parameters not depending on initialization data including the following information: short name, long name, short explanation, unit, value, see here for an example (<a href="http://www.pik-potsdam.de/4c/web_4c/theory/parameter_table_0514.pdf" target="_blank">parameter_table_0514.pdf</a>)'
        ))

    class Meta:
        model = Forests
        exclude = ('impact_model', )
        widgets = {
            # Forest Model Set-up Specifications
            'initialize_model':
            MyTextInput(textarea=True),
            'data_profound_db':
            MyTextInput(textarea=True),
            'management_implementation':
            MyTextInput(textarea=True),
            'harvesting_simulated':
            MyTextInput(textarea=True),
            'regenerate':
            MyTextInput(textarea=True),
            'unmanaged_simulations':
            MyTextInput(textarea=True),
            'noco2_scenario':
            MyTextInput(textarea=True),
            'leap_years':
            MyTextInput(textarea=True),
            'simulate_minor_tree':
            MyTextInput(textarea=True),
            'nitrogen_simulation':
            MyTextInput(textarea=True),
            'soil_depth':
            MyTextInput(textarea=True),
            'upload_parameter_list':
            MyTextInput(textarea=True),
            'minimum_diameter_tree':
            MyTextInput(textarea=True),
            'model_historically_calibrated':
            MyTextInput(textarea=True),
            'stochastic_element':
            MyTextInput(textarea=True),
            # Forest Model Output Specifications
            'initial_state':
            MyTextInput(textarea=True),
            'total_calculation':
            MyTextInput(textarea=True),
            'output_dbh_class':
            MyTextInput(textarea=True),
            'output':
            MyTextInput(textarea=True),
            'output_per_pft':
            MyTextInput(),
            'considerations':
            MyTextInput(textarea=True),
            'dynamic_vegetation':
            MyTextInput(textarea=True),
            'nitrogen_limitation':
            MyTextInput(textarea=True),
            'co2_effects':
            MyTextInput(textarea=True),
            'light_interception':
            MyTextInput(textarea=True),
            'light_utilization':
            MyTextInput(textarea=True),
            'phenology':
            MyTextInput(textarea=True),
            'water_stress':
            MyTextInput(textarea=True),
            'heat_stress':
            MyTextInput(textarea=True),
            'evapotranspiration_approach':
            MyTextInput(textarea=True),
            'rooting_depth_differences':
            MyTextInput(textarea=True),
            'root_distribution':
            MyTextInput(textarea=True),
            'permafrost':
            MyTextInput(textarea=True),
            'closed_energy_balance':
            MyTextInput(textarea=True),
            'soil_moisture_surface_temperature_coupling':
            MyTextInput(textarea=True),
            'latent_heat':
            MyTextInput(textarea=True),
            'sensible_heat':
            MyTextInput(textarea=True),
            'mortality_age':
            MyTextInput(textarea=True),
            'mortality_fire':
            MyTextInput(textarea=True),
            'mortality_drought':
            MyTextInput(textarea=True),
            'mortality_insects':
            MyTextInput(textarea=True),
            'mortality_storm':
            MyTextInput(textarea=True),
            'mortality_stochastic_random_disturbance':
            MyTextInput(textarea=True),
            'mortality_other':
            MyTextInput(textarea=True),
            'mortality_remarks':
            MyTextInput(textarea=True),
            'nbp_fire':
            MyTextInput(textarea=True),
            'nbp_landuse_change':
            MyTextInput(textarea=True),
            'nbp_harvest':
            MyTextInput(textarea=True),
            'nbp_other':
            MyTextInput(textarea=True),
            'nbp_comments':
            MyTextInput(textarea=True),
            'list_of_pfts':
            MyTextInput(textarea=True),
            'pfts_comments':
            MyTextInput(textarea=True),
            'assimilation':
            MyTextInput(textarea=True),
            'respiration':
            MyTextInput(textarea=True),
            'carbon_allocation':
            MyTextInput(textarea=True),
            'regeneration_planting':
            MyTextInput(textarea=True),
            'soil_water_balance':
            MyTextInput(textarea=True),
            'carbon_nitrogen_balance':
            MyTextInput(textarea=True),
            'feedbacks_considered':
            MyTextInput(textarea=True),
        }
Exemple #18
0
 class Meta:
     model = Agriculture
     exclude = ('impact_model', )
     widgets = {
         'crops': MyTextInput(textarea=True),
         'land_coverage': MyTextInput(textarea=True),
         'planting_date_decision': MyTextInput(textarea=True),
         'planting_density': MyTextInput(textarea=True),
         'crop_cultivars': MyTextInput(textarea=True),
         'fertilizer_application': MyTextInput(textarea=True),
         'irrigation': MyTextInput(textarea=True),
         'crop_residue': MyTextInput(textarea=True),
         'initial_soil_water': MyTextInput(textarea=True),
         'initial_soil_nitrate_and_ammonia': MyTextInput(textarea=True),
         'initial_soil_C_and_OM': MyTextInput(textarea=True),
         'initial_crop_residue': MyTextInput(textarea=True),
         'lead_area_development': MyTextInput(textarea=True),
         'light_interception': MyTextInput(textarea=True),
         'light_utilization': MyTextInput(textarea=True),
         'yield_formation': MyTextInput(textarea=True),
         'crop_phenology': MyTextInput(textarea=True),
         'root_distribution_over_depth': MyTextInput(textarea=True),
         'stresses_involved': MyTextInput(textarea=True),
         'type_of_water_stress': MyTextInput(textarea=True),
         'type_of_heat_stress': MyTextInput(textarea=True),
         'water_dynamics': MyTextInput(textarea=True),
         'evapo_transpiration': MyTextInput(textarea=True),
         'soil_CN_modeling': MyTextInput(textarea=True),
         'co2_effects': MyTextInput(textarea=True),
         'parameters_number_and_description': MyTextInput(textarea=True),
         'calibrated_values': MyTextInput(textarea=True),
         'output_variable_and_dataset': MyTextInput(textarea=True),
         'spatial_scale_of_calibration_validation':
         MyTextInput(textarea=True),
         'temporal_scale_of_calibration_validation':
         MyTextInput(textarea=True),
         'criteria_for_evaluation': MyTextInput(textarea=True),
     }