Example #1
0
    def show_package_schema(self):
        schema = super(YTPDatasetForm, self).show_package_schema()

        ignore_missing = toolkit.get_validator('ignore_missing')
        convert_from_extras = toolkit.get_converter('convert_from_extras')

        schema['tags']['__extras'].append(
            toolkit.get_converter('free_tags_only'))

        schema.update(
            {'copyright_notice': [convert_from_extras, ignore_missing]})
        schema.update(
            {'collection_type': [convert_from_extras, ignore_missing]})
        schema.update({
            'extra_information':
            [convert_from_extras, from_json_list, ignore_missing]
        })
        schema.update({'valid_from': [convert_from_extras, ignore_missing]})
        schema.update({'valid_till': [convert_from_extras, ignore_missing]})
        schema.update(
            {'temporal_granularity': [convert_from_extras, ignore_missing]})
        schema.update(
            {'update_frequency': [convert_from_extras, ignore_missing]})
        schema.update({
            'content_type': [
                toolkit.get_converter('convert_from_tags')('content_type'),
                string_join, ignore_missing
            ]
        })
        schema.update({'owner': [convert_from_extras, ignore_missing]})

        schema = add_translation_show_schema(schema)
        schema = add_languages_show(schema, self._localized_fields)

        return schema
Example #2
0
    def _update_with_requestdata_show_package_schema(self, schema):
        log.debug('Update with requestdata show package schema')

        # Adding requestdata related schema
        for plugin in plugins.PluginImplementations(plugins.IDatasetForm):
            if plugin.name == 'requestdata':
                requestdata_schema = plugin.show_package_schema()
                schema.update(requestdata_schema)

        # Adding hdx specific request data schema
        schema.update({
            'field_names': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('not_empty')
            ],
            'file_types': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('not_empty')
            ],
            'num_of_rows': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing'),
                tk.get_validator('is_positive_integer')
            ],
            'data_update_frequency': [
                tk.get_validator('convert_from_extras'),
                tk.get_converter('ignore_missing')
            ],
            'methodology': [
                tk.get_validator('convert_from_extras'),
                tk.get_converter('ignore_missing')
            ]
        })
Example #3
0
    def _modify_package_schema(self, schema):
        # Add our custom country_code metadata field to the schema.
#       schema.update({
#               'country_code': [tk.get_validator('ignore_missing'),
#			tk.get_converter('convert_to_tags')('country_codes')]
#                })
        schema.update({
                'megasites': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_tags')('megasites')]
                })
        schema.update({
                'countries': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_tags')('countries')]
                })
        schema.update({
                'villages': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_tags')('villages')]
                })

        # Add our custom_test metadata field to the schema, this one will use
        # convert_to_extras instead of convert_to_tags.
        schema.update({
                'citation': [tk.get_validator('ignore_missing'),
		    tk.get_converter('convert_to_extras')]
                })
#	schema['resources'].update({
#        	'citation_resource' : [ tk.get_validator('ignore_missing') ]
#	})
        return schema
 def _modify_package_schema(self, schema):
     schema.update({
         'asset_code': [tk.get_converter('convert_to_extras')],
         'building_code':
         [tk.get_converter('convert_to_tags')('building_codes')]
     })
     return schema
Example #5
0
    def _modify_package_schema(self, schema):
        defaults = [
            toolkit.get_validator('ignore_missing'),
            toolkit.get_converter('convert_to_extras')
        ]
        not_empty = [
            toolkit.get_validator('not_empty'),
            toolkit.get_converter('convert_to_extras')
        ]

        schema.update({
            'notes':
            not_empty,
            'comment':
            defaults,
            'resolution':
            not_empty,
            'related-datasets':
            defaults,
            'metadata_language':
            defaults,
            'update_frequency':
            not_empty,
            'author':
            not_empty,
            'author_email': [
                toolkit.get_validator('not_empty'),
                toolkit.get_converter('convert_to_extras'), _validate_email
            ]
        })
        schema['resources'].update({'attributes': defaults})

        return schema
Example #6
0
    def show_package_schema(self) -> Schema:
        schema: Schema = super(
            ExampleIDatasetFormPlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        _extras = cast("list[Validator]",
                       cast(Schema, schema['tags'])['__extras'])
        _extras.append(tk.get_converter('free_tags_only'))

        # Add our custom country_code metadata field to the schema.
        schema.update({
            'country_code': [
                cast(
                    ValidatorFactory,
                    tk.get_converter('convert_from_tags'))('country_codes'),
                tk.get_validator('ignore_missing')]
            })

        # Add our custom_text field to the dataset schema.
        schema.update({
            'custom_text': [tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')]
            })

        cast(Schema, schema['resources']).update({
                'custom_resource_text' : [ tk.get_validator('ignore_missing') ]
            })
        return schema
Example #7
0
    def show_package_schema(self):
        schema = super(SurreyTemplatePlugin, self).show_package_schema()

        # Add our custom_text field to the dataset schema.
        schema.update({
            'update_frequency': [tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')]
            })

        schema.update({
            'coordinate_system': [tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')]
            })

        schema.update({
            'more_information': [tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')]
            })

        schema.update({
            'attribute_details': [tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')]
            })


        schema.update({
            'is_geospatial': [tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')]
            })




        return schema
Example #8
0
    def show_package_schema(self):
        schema = super(SokigoPlugin, self).show_package_schema()
        defaults = [t.get_validator('ignore_missing')]
        package_defaults = [t.get_converter('convert_from_extras'),
                            t.get_validator('ignore_missing')]
        mandatory_defaults = [t.get_validator('not_empty'),
                            t.get_converter('convert_from_extras')]

        schema.update({
            'metadata_language': package_defaults,

        })

        schema['resources'].update({
            'resource_language': defaults,
            'completeness': defaults,
            'classification': defaults,
            'update_frequency': defaults,
            'area': defaults,
            'coordinate_system': defaults,
            'scale_factor': defaults,
            'z_min': defaults,
            'z_max': defaults,
            'north': defaults,
            'south': defaults,
            'east': defaults,
            'west': defaults,
        })
        return schema
    def show_package_schema(self):
        schema = super(ExampleIDatasetFormPlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        # Add our custom country_code metadata field to the schema.
        schema.update({
            'country_code': [
                tk.get_converter('convert_from_tags')('country_codes'),
                tk.get_validator('ignore_missing')]
            })

        # Add our custom_text field to the dataset schema.
        schema.update({
            'custom_text': [tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')]
            })

        #XXX this is the additional field for bug demo XXX
        schema.update({
            'another_custom_text' : [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing'),
                ]
            })
 

        return schema
Example #10
0
    def show_package_schema(self):
        schema = super(ModelPackagePlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        # Add all custom metadata fields for this package/dataset type
        # make sure you specify the converter before you specify the validators for
        # each metadata elements. It looks like the validator needs to be always 'ignore-missing'
        # since this schema is used in dataset readonly mode
        _ignore_missing = tk.get_validator('ignore_missing')
        _convert_from_extras = tk.get_converter('convert_from_extras')

        schema.update({
            'pkg_model_name': [_convert_from_extras, _ignore_missing],
            'model_version': [_convert_from_extras, _ignore_missing],
            'north_extent': [_convert_from_extras, _ignore_missing],
            'west_extent': [_convert_from_extras, _ignore_missing],
            'south_extent': [_convert_from_extras, _ignore_missing],
            'east_extent': [_convert_from_extras, _ignore_missing],
            'simulation_start_day': [_convert_from_extras, _ignore_missing],
            'simulation_end_day': [_convert_from_extras, _ignore_missing],
            'time_step': [_convert_from_extras, _ignore_missing],
            'package_type': [
                tk.get_converter('convert_from_tags')('model_package_types'),
                _ignore_missing
            ],
            'package_run_status': [_convert_from_extras, _ignore_missing],
            'package_run_job_id': [_convert_from_extras, _ignore_missing],
            'dataset_type': [_convert_from_extras, _ignore_missing]
        })

        return schema
Example #11
0
    def show_package_schema(self):
        schema = super(GeographicRasterPlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        # Add all custom metadata fields for this package/dataset type
        # make sure you specify the converter before you specify the validators for
        # each metadata elements. It looks like the validator needs to be always 'ignore-missing'
        # since this schema is used in dataset readonly mode
        _ignore_missing = tk.get_validator('ignore_missing')
        _convert_from_extras = tk.get_converter('convert_from_extras')

        schema.update({
            'variable_names': [_convert_from_extras, _ignore_missing],
            'variable_units': [_convert_from_extras, _ignore_missing],
            'north_extent': [_convert_from_extras, _ignore_missing],
            'west_extent': [_convert_from_extras, _ignore_missing],
            'south_extent': [_convert_from_extras, _ignore_missing],
            'east_extent': [_convert_from_extras, _ignore_missing],
            'cell_size': [_convert_from_extras, _ignore_missing],
            'projection': [_convert_from_extras, _ignore_missing],
            'dataset_type': [_convert_from_extras, _ignore_missing]
        })

        return schema
Example #12
0
    def show_package_schema(self):
        schema = super(GeographicFeatureSetPlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        # Add all custom metadata fields for this package/dataset type
        # make sure you specify the converter before you specify the validators for
        # each metadata elements. It looks like the validator needs to be always 'ignore-missing'
        # since this schema is used in dataset readonly mode
        _ignore_missing = tk.get_validator('ignore_missing')
        _convert_from_extras = tk.get_converter('convert_from_extras')

        schema.update({
                'variable_name': [_convert_from_extras, _ignore_missing],
                'variable_unit': [_convert_from_extras, _ignore_missing],
                'north_extent': [_convert_from_extras, _ignore_missing],
                'west_extent': [_convert_from_extras, _ignore_missing],
                'south_extent': [_convert_from_extras, _ignore_missing],
                'east_extent': [_convert_from_extras, _ignore_missing],
                'projection': [_convert_from_extras, _ignore_missing],
                'dataset_type': [_convert_from_extras, _ignore_missing]
                })

        return schema
Example #13
0
    def show_package_schema(self):
        schema = super(ModelPackagePlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        # Add all custom metadata fields for this package/dataset type
        # make sure you specify the converter before you specify the validators for
        # each metadata elements. It looks like the validator needs to be always 'ignore-missing'
        # since this schema is used in dataset readonly mode
        _ignore_missing = tk.get_validator('ignore_missing')
        _convert_from_extras = tk.get_converter('convert_from_extras')

        schema.update({
                'pkg_model_name': [_convert_from_extras, _ignore_missing],
                'model_version': [_convert_from_extras, _ignore_missing],
                'north_extent': [_convert_from_extras, _ignore_missing],
                'west_extent': [_convert_from_extras, _ignore_missing],
                'south_extent': [_convert_from_extras, _ignore_missing],
                'east_extent': [_convert_from_extras, _ignore_missing],
                'simulation_start_day': [_convert_from_extras, _ignore_missing],
                'simulation_end_day': [_convert_from_extras, _ignore_missing],
                'time_step': [_convert_from_extras, _ignore_missing],
                'package_type': [tk.get_converter('convert_from_tags')('model_package_types'), _ignore_missing],
                'package_run_status': [_convert_from_extras, _ignore_missing],
                'package_run_job_id': [_convert_from_extras, _ignore_missing],
                'dataset_type': [_convert_from_extras, _ignore_missing]
                })

        return schema
Example #14
0
    def _modify_package_schema(self, schema):

        # TODO: need to implement chained validators
        # that allows to validate a group of fields together
        # e.g if start_date is entered then end_date is required

        # Add custom metadata fields to the schema, this one will use
        # convert_to_extras for all fields except for package_type for which convert_to_tags will be used.
        _not_empty = tk.get_validator('not_empty')
        _ignore_missing = tk.get_validator('ignore_missing')
        _convert_to_extras = tk.get_converter('convert_to_extras')

        schema.update({
                'pkg_model_name': [_not_empty, _convert_to_extras],
                'model_version': [_not_empty, _convert_to_extras],
                'north_extent': [_ignore_missing, v.Number(), _convert_to_extras],
                'west_extent': [_ignore_missing, v.Number(), _convert_to_extras],
                'south_extent': [_ignore_missing, v.Number(), _convert_to_extras],
                'east_extent': [_ignore_missing, v.Number(), _convert_to_extras],
                'simulation_start_day': [_ignore_missing, v.DateConverter(), _convert_to_extras],
                'simulation_end_day': [_ignore_missing, v.DateConverter(), _convert_to_extras],
                'time_step': [_ignore_missing, v.Number(), _convert_to_extras],
                'package_type': [_not_empty, tk.get_converter('convert_to_tags')('model_package_types')],
                'package_run_status': [_ignore_missing, _convert_to_extras],
                'package_run_job_id': [_ignore_missing, _convert_to_extras],
                'dataset_type': [_not_empty, _convert_to_extras]
                })

        schema = super(ModelPackagePlugin, self).modify_schema(schema)
        return schema
Example #15
0
    def show_package_schema(self):
        schema = super(EDSMetadataPlugin, self).show_package_schema()
        defaults = [
            toolkit.get_converter('convert_from_extras'),
            toolkit.get_validator('ignore_missing')
        ]

        schema.update({
            'notes':
            defaults,
            'comment':
            defaults,
            'resolution':
            defaults,
            'metadata_language':
            defaults,
            'update_frequency':
            defaults,
            'author':
            defaults,
            'author_email': [
                toolkit.get_validator('not_empty'),
                toolkit.get_converter('convert_from_extras'), _validate_email
            ],
            'related-datasets':
            defaults
        })
        schema['resources'].update({
            'attributes': defaults,
        })

        return schema
Example #16
0
    def create_package_schema(self):
        '''
        Returns the schema for mapping package data from a form to a format
        suitable for the database.
        '''
        from ckanext.harvest.logic.schema import harvest_source_create_package_schema
        schema = harvest_source_create_package_schema()
        if self.startup:
            schema['id'] = [unicode]
	schema.update({
            'catalogue_country': [tk.get_validator('ignore_missing'),
                            tk.get_converter('convert_to_extras')]
        })
	schema.update({
            'catalogue_date_created': [tk.get_validator('ignore_missing'),
                            tk.get_converter('convert_to_extras')]
        })
	schema.update({
            'catalogue_date_updated': [tk.get_validator('ignore_missing'),
                            tk.get_converter('convert_to_extras')]
        })
	schema.update({
            'language': [tk.get_validator('ignore_missing'),
                            tk.get_converter('convert_to_extras')]
        })
        return schema
Example #17
0
 def _modify_package_schema(self, schema):
     schema.update(
         {
             "domain": [
                 toolkit.get_validator("ignore_missing"),
                 toolkit.get_converter("convert_to_tags")("domains"),
             ],
             "solution": [
                 toolkit.get_validator("ignore_missing"),
                 toolkit.get_converter("convert_to_tags")("solutions"),
             ],
             "project_id": [
                 toolkit.get_validator("ignore_missing"),
                 toolkit.get_converter("convert_to_extras"),
             ],
             "schema": [
                 toolkit.get_validator("ignore_missing"),
                 toolkit.get_converter("convert_to_extras"),
             ],
             "schema_tag": [
                 toolkit.get_validator("ignore_missing"),
                 toolkit.get_converter("convert_to_extras"),
             ],
         }
     )
     return schema
Example #18
0
    def show_package_schema(self):
        schema = super(DatasetForm, self).show_package_schema()

        optional = tk.get_validator('ignore_missing')
        from_extras = tk.get_converter('convert_from_extras')
        checkboxes = [
            from_extras, optional,
            tk.get_validator('boolean_validator')
        ]

        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))
        schema.update({
            'category': [category_from_group],
            'update_frequency': [from_extras],
            'api': [from_extras],
            # Reuse conditions specified in http://mojepanstwo.pl/dane/prawo/2007,ustawa-dostepie-informacji-publicznej/tresc
            'license_condition_source':
            checkboxes,
            'license_condition_original':
            checkboxes,
            'license_condition_modification':
            checkboxes,
            'license_condition_responsibilities': [from_extras, optional],
            'license_condition_db_or_copyrighted': [from_extras, optional]
        })
        return schema
Example #19
0
    def show_package_schema(self):
        """
        Return a schema to validate datasets before they’re shown to the user.
        is used when the package_show() action is called, we want the default_show_package_schema to be updated to include our custom field. 
        This time, instead of converting to an extras field, we want our field to be converted from an extras field. 
        So we want to use the convert_from_extras() converter.

        """
        schema = super(DatalineagePlugin, self).show_package_schema()
        schema.update({
            # parent represents the model/process that procuded the dataset, it should be a dataset id
            'parent': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing'),
            ],
            # producers are comma seperated list of datasets ids that produced the current dataset
            'producers': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing'),
            ],

            # consumers are comma seperated list of datasets ids that produced using the current dataset
            'consumers': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing'),
            ],

            # code that identify the dataset/activity
            'code': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing'),
            ],
        })

        return schema
Example #20
0
    def _modify_package_schema(self, schema):
        # Add our custom data_types metadata field to the schema.
        schema.update({
                'data_type': [toolkit.get_validator('ignore_missing'),
                    toolkit.get_converter('convert_to_tags')('data_types')]
                })
        # Add our custom geographies metadata field to the schema.
        schema.update({
                'geography': [toolkit.get_validator('ignore_missing'),
                    toolkit.get_converter('convert_to_tags')('geographies')]
                })
        # Add source_url and date fields to the schema
        schema.update({
                'source_url': [toolkit.get_validator('ignore_missing'),
                    toolkit.get_converter('convert_to_extras')]
                })
        schema.update({
                'date': [toolkit.get_validator('ignore_missing'),
                    toolkit.get_converter('convert_to_extras')]
                })
        schema.update({
                'availability_notes': [toolkit.get_validator('ignore_missing'),
                    toolkit.get_converter('convert_to_extras')]
                })

        return schema
Example #21
0
    def _modify_package_schema(self, schema):
        schema.update({
                'update_frequency': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })

        schema.update({
                'coordinate_system': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })


        schema.update({
                'more_information': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })

        schema.update({
                'attribute_details': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })

        schema.update({
                'is_geospatial': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })

        return schema
Example #22
0
    def show_package_schema(self):
        schema = super(NewZealandLandcarePlugin, self).show_package_schema()

        schema.update({
            'publisher': [toolkit.get_converter('convert_from_extras'),
                          toolkit.get_validator('ignore_empty')],
            'publication_year': [toolkit.get_converter('convert_from_extras'),
                                 toolkit.get_validator('ignore_empty'),
                                 toolkit.get_validator('ckanext_lcrnz_is_year'),
                                 ],
            'start_date': [toolkit.get_converter('convert_from_extras'),
                           toolkit.get_validator('ignore_empty'),
                           toolkit.get_validator('ckanext_lcrnz_is_date'),
                           ],
            'end_date': [toolkit.get_converter('convert_from_extras'),
                         toolkit.get_validator('ignore_empty'),
                         toolkit.get_validator('ckanext_lcrnz_is_date'),
                         ],
            'doi': [toolkit.get_converter('convert_from_extras'),
                    toolkit.get_validator('ignore_empty')],
        })
        schema['author'] = [toolkit.get_validator('repeating_text_output'),
                            toolkit.get_validator('ignore_empty')]

        return schema
Example #23
0
    def show_package_schema(self):
        schema = super(ExtrafieldsPlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        # Add our custom country_code metadata field to the schema.
        schema.update({
            'country_code': [
                tk.get_converter('convert_from_tags')('country_codes'),
                tk.get_validator('ignore_missing')
            ]
        })

        # Add our custom_text field to the dataset schema.
        schema.update({
            'custom_text': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')
            ]
        })

        schema['resources'].update(
            {'custom_resource_text': [tk.get_validator('ignore_missing')]})
        return schema
    def _modify_package_schema(self, schema):
        to_extras = tk.get_converter('convert_to_extras')
        to_tags = tk.get_converter('convert_to_tags')
        to_dataset_name = dp.convert_to_dataset_name
        optional = tk.get_validator('ignore_missing')
        boolean_validator = tk.get_validator('boolean_validator')
        not_empty = tk.get_validator('not_empty')
        checkboxes = [
            optional,
            tk.get_validator('boolean_validator'), to_extras
        ]

        def fixed_type(value, context):
            return Application._PACKAGE_TYPE

        schema = {
            'id': schema['id'],
            'name': schema['name'],
            'title': [not_empty, unicode],
            'author': schema['author'],
            'notes': [not_empty, unicode],  # notes [content] is obligatory
            'type': [fixed_type],
            'private': [optional, boolean_validator],
            'status': [to_extras],
            'dataset_name': [optional, to_dataset_name, to_extras],
            'tag_string': schema['tag_string'],
            'resources': schema['resources'],
            'image_url': [optional, to_extras],
            'date': [optional, to_extras],
            'app_url': [optional, to_extras]
        }

        return schema
Example #25
0
    def _modify_package_schema(self, schema):
        to_extras = tk.get_converter('convert_to_extras')
        to_tags = tk.get_converter('convert_to_tags')
        optional = tk.get_validator('ignore_missing')
        checkboxes = [optional, tk.get_validator('boolean_validator'), to_extras]

        # License is fixed to Open (Public Domain)
        def fixed_license(value, context):
            return 'other-pd'

        schema.update({
            'category': [category_exists, category_to_group],
            'update_frequency': [to_tags('update_frequencies')],

            'license_id': [fixed_license, unicode],

            # Reuse conditions specified in http://mojepanstwo.pl/dane/prawo/2007,ustawa-dostepie-informacji-publicznej/tresc
            'license_condition_source': checkboxes,
            'license_condition_timestamp': checkboxes,
            'license_condition_original': checkboxes,
            'license_condition_modification': checkboxes,
            'license_condition_responsibilities': [optional, to_extras]
        })
        # Add our custom_resource_text metadata field to the schema
        # schema['resources'].update({
        # 'custom_resource_text' : [ tk.get_validator('ignore_missing') ]
        # })

        return schema
Example #26
0
    def _modify_package_schema(self, schema):
        to_extras = tk.get_converter('convert_to_extras')
        to_tags = tk.get_converter('convert_to_tags')
        optional = tk.get_validator('ignore_missing')
        not_empty = tk.get_validator('not_empty')
        checkboxes = [
            optional,
            tk.get_validator('boolean_validator'), to_extras
        ]

        def fixed_type(value, context):
            return Article._PACKAGE_TYPE

        schema = {
            'id': schema['id'],
            'name': schema['name'],
            'title': [not_empty, unicode],
            'author': schema['author'],
            'notes': [not_empty, unicode],  # notes [content] is obligatory
            'type': [fixed_type],
            'license_id': [not_empty, unicode],
            'tag_string': schema['tag_string']
        }

        return schema
Example #27
0
def showcase_base_schema():
    schema = {
        'id': [empty],
        'revision_id': [ignore],
        'name': [not_empty, unicode, name_validator, package_name_validator],
        'title': [if_empty_same_as("name"), unicode],
        'author': [ignore_missing, unicode],
        'author_email': [ignore_missing, unicode],
        'notes': [ignore_missing, unicode],
        'url': [ignore_missing, unicode],
        'state': [ignore_not_package_admin, ignore_missing],
        'type': [ignore_missing, unicode],
        'log_message': [ignore_missing, unicode, no_http],
        '__extras': [ignore],
        '__junk': [empty],
        'resources': default_resource_schema(),
        'tags': default_tags_schema(),
        'tag_string': [ignore_missing, tag_string_convert],
        'extras': default_extras_schema(),
        'save': [ignore],
        'return_to': [ignore],
        'image_url': [toolkit.get_validator('ignore_missing'),
                      toolkit.get_converter('convert_to_extras')],
        'original_related_item_id': [
            toolkit.get_validator('ignore_missing'),
            toolkit.get_converter('convert_to_extras')]
    }
    return schema
Example #28
0
    def show_package_schema(self):
        # Get default schema
        schema = super(FAOCLHGUIPlugin, self).show_package_schema()
        # Our custom field

        schema.update({
            FIELD_RESOURCE_TYPE: [
                toolkit.get_converter('convert_from_extras'),
                toolkit.get_validator('ignore_missing')
            ],
        })
        schema.update({
            FIELD_ACTIVITY_TYPE: [
                toolkit.get_converter('convert_from_extras'),
                toolkit.get_validator('ignore_missing')
            ],
        })
        schema.update({
            FIELD_FOCUS: [
                toolkit.get_converter('convert_from_extras'),
                toolkit.get_validator('ignore_missing')
            ],
        })
        schema.update({
            FIELD_RELEASE_YEAR: [
                toolkit.get_converter('convert_from_extras'),
                toolkit.get_validator('ignore_missing')
            ],
        })

        schema['resources'].update(
            {FIELD_RESOURCE_YEAR: [toolkit.get_validator('ignore_missing')]})

        return schema
Example #29
0
 def show_package_schema(self):
     cnvrt_from_tags = toolkit.get_converter('convert_from_tags')
     schema = super(EDC_NonGeoSpatialForm, self).show_package_schema()
     schema['tags']['__extras'].append(
         toolkit.get_converter('free_tags_only'))
     schema.update({
         'download_audience': [convert_from_extras, not_empty],
         'url': [not_empty, unicode],
         'purpose': [convert_from_extras, ignore_missing],
         'data_quality': [convert_from_extras, ignore_missing],
         'lineage_statement': [convert_from_extras, ignore_missing],
         'object_name': [convert_from_extras, ignore_missing],
         'west_bound_longitude': [convert_from_extras, ignore_missing],
         'east_bound_longitude': [convert_from_extras, ignore_missing],
         'south_bound_latitude': [convert_from_extras, ignore_missing],
         'north_bound_latitude': [convert_from_extras, ignore_missing],
         'dates': [convert_from_extras, ignore_missing]
     })
     schema['resources'].update({
         'download_audience': [convert_from_extras, not_empty],
         'url': [not_empty, unicode, remove_whitespace, check_extension],
         'resource_update_cycle': [convert_from_extras, not_empty],
         'format': [not_empty, unicode],
         'edc_resource_type': [convert_from_extras, not_empty],
         'resource_storage_access_method': [convert_from_extras, not_empty],
         'resource_storage_location':
         [not_empty, convert_from_extras, ignore_missing, unicode],
         'data_collection_start_date':
         [convert_from_extras, ignore_missing],
         'data_collection_end_date': [convert_from_extras, ignore_missing],
     })
     return schema
Example #30
0
    def show_package_schema(self):
        # IDatasetForm
        schema = super(MetametaPlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        #retrieve metameta data
        org_id = h.get_organization_id()
        records = h.select_metametadata_for_org(org_id,
                                                metameta_id=None,
                                                active_only=True,
                                                withPrefix=True)

        for record in records:
            validator = record['validator']
            if h.is_metameta_validator(record['validator']):
                validator = h.get_validator(validator)
            else:
                validator = tk.get_validator(validator)

            # convert_from_extras instead of convert_from_tags.
            schema.update({
                record['key']:
                [tk.get_converter('convert_from_extras'), validator]
            })

        return schema
Example #31
0
    def _modify_package_schema(self, schema):
        defaults = [t.get_validator('ignore_missing')]
        package_defaults = [
            t.get_validator('ignore_missing'),
            t.get_converter('convert_to_extras')
        ]

        mandatory_defaults = [
            t.get_validator('not_empty'),
            t.get_converter('convert_to_extras')
        ]

        schema.update({
            'metadata_language': package_defaults,
        })

        schema['resources'].update({
            'resource_language': defaults,
            'completeness': defaults,
            'classification': defaults,
            'update_frequency': defaults,
            'area': defaults,
            'coordinate_system': defaults,
            'scale_factor': defaults,
            'z_min': defaults,
            'z_max': defaults,
        })

        return schema
Example #32
0
 def show_package_schema(self):
     cnvrt_from_tags = toolkit.get_converter('convert_from_tags')
     schema = super(EDC_NonGeoSpatialForm, self).show_package_schema()
     schema['tags']['__extras'].append(toolkit.get_converter('free_tags_only'))
     schema.update({
         'download_audience': [convert_from_extras, not_empty],
         'url': [not_empty, unicode],
         'purpose': [convert_from_extras, ignore_missing],
         'data_quality': [convert_from_extras, ignore_missing],
         'lineage_statement': [convert_from_extras, ignore_missing],
         'object_name': [convert_from_extras, ignore_missing],
         'west_bound_longitude': [convert_from_extras, ignore_missing],
         'east_bound_longitude': [convert_from_extras, ignore_missing],
         'south_bound_latitude': [convert_from_extras, ignore_missing],
         'north_bound_latitude': [convert_from_extras, ignore_missing],
         'dates': [convert_from_extras, ignore_missing]
     })
     schema['resources'].update({
         'download_audience': [convert_from_extras, not_empty],
         'url': [not_empty, unicode, remove_whitespace, check_extension],
         'resource_update_cycle': [convert_from_extras, not_empty],
         'format': [not_empty, unicode],
         'edc_resource_type': [convert_from_extras, not_empty],
         'resource_storage_access_method': [convert_from_extras, not_empty],
         'resource_storage_location': [not_empty, convert_from_extras, ignore_missing, unicode],
         'data_collection_start_date': [convert_from_extras, ignore_missing],
         'data_collection_end_date': [convert_from_extras, ignore_missing],
     })
     return schema
Example #33
0
File: plugin.py Project: haphut/ytp
    def show_package_schema(self):
        schema = super(YTPServiceForm, self).show_package_schema()

        ignore_missing = toolkit.get_validator('ignore_missing')
        convert_from_extras = toolkit.get_converter('convert_from_extras')

        schema = add_translation_show_schema(schema)
        schema = add_languages_show(schema, self._localized_fields)

        for text_field in self._custom_text_fields:
            schema.update({text_field: [convert_from_extras, ignore_missing]})

        schema['tags']['__extras'].append(toolkit.get_converter('free_tags_only'))
        schema.update({'collection_type': [static_value(u'Public Service')]})
        schema.update({'municipalities': [toolkit.get_converter('convert_from_tags')('municipalities'), string_join, ignore_missing]})
        schema.update({'target_groups': [toolkit.get_converter('convert_from_tags')('target_groups'), string_join, ignore_missing]})
        schema.update({'life_situations': [toolkit.get_converter('convert_from_tags')('life_situations'), string_join, ignore_missing]})

        schema.update({'service_charge': [convert_from_extras, ignore_missing]})
        schema.update({'pricing_information_url': [convert_from_extras, ignore_missing]})
        schema.update({'service_price_description': [convert_from_extras, ignore_missing]})

        # Do not show the tags
        del schema['tag_string']

        return schema
    def _modify_package_schema(self, schema):
        #schema.update({
        #        'access_level': [tk.get_validator('ignore_missing'),
        #            tk.get_converter('convert_to_tags')('access_levels')]
        #        })

        # Add custom access_level as extra field
        schema.update({
                'accessLevel': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })

        # Add custom systemOfRecord as extra field
        schema.update({
                'systemOfRecords': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })

        # Add custom granularity as extra field
        schema.update({
                'granularity': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })


        # Add our custom_text metadata field to the schema, this one will use               
        # convert_to_extras instead of convert_to_tags.
        schema.update({
                'dataDictionary': [tk.get_validator('ignore_missing'),
                    tk.get_converter('convert_to_extras')]
                })
        return schema
Example #35
0
    def show_package_schema(self):
        # IDatasetForm
        schema = super(MetametaPlugin, self).show_package_schema()

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))

        #retrieve metameta data
        org_id = h.get_organization_id()
        records = h.select_metametadata_for_org(org_id, metameta_id=None, active_only=True, withPrefix=True)

        for record in records:
            validator = record['validator']
            if h.is_metameta_validator(record['validator']):
               validator = h.get_validator(validator)
            else:
               validator = tk.get_validator(validator)

            # convert_from_extras instead of convert_from_tags.
            schema.update({
                record['key']: [
                    tk.get_converter('convert_from_extras'),
                    validator]
                })


        return schema
Example #36
0
 def _modify_package_schema(self):
     return {
         # remove datasets_with_no_organization_cannot_be_private validator
         'private': [
             tk.get_validator('ignore_missing'),
             tk.get_validator('boolean_validator')
         ],
         constants.ALLOWED_USERS_STR: [
             tk.get_validator('ignore_missing'),
             conv_val.private_datasets_metadata_checker
         ],
         constants.ALLOWED_USERS: [
             conv_val.allowed_users_convert,
             tk.get_validator('ignore_missing'),
             conv_val.private_datasets_metadata_checker
         ],
         constants.ACQUIRE_URL: [
             tk.get_validator('ignore_missing'),
             conv_val.private_datasets_metadata_checker,
             conv_val.url_checker,
             tk.get_converter('convert_to_extras')
         ],
         constants.SEARCHABLE: [
             tk.get_validator('ignore_missing'),
             conv_val.private_datasets_metadata_checker,
             tk.get_converter('convert_to_extras'),
             tk.get_validator('boolean_validator')
         ]
     }
Example #37
0
 def _modify_package_schema(self, schema):
     schema.update({
         'inventory_entry_id': [
             get_converter('convert_to_extras'),
             get_converter('update_package_inventory_entry')
         ]
     })
     return schema
 def show_package_schema(self):
     schema = super(EISMetadataFields, self).show_package_schema()
     schema.update({
         'building_code':
         [tk.get_converter('convert_from_tags')('building_codes')],
         'asset_code': [tk.get_converter('convert_from_extras')]
     })
     schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))
     return schema
Example #39
0
 def _modify_package_schema(self, schema):
     # Add our custom country_code metadata field to the schema.
     schema.update(
         {"country_code": [tk.get_validator("ignore_missing"), tk.get_converter("convert_to_tags")("country_codes")]}
     )
     # Add our custom_test metadata field to the schema, this one will use
     # convert_to_extras instead of convert_to_tags.
     schema.update({"custom_text": [tk.get_validator("ignore_missing"), tk.get_converter("convert_to_extras")]})
     return schema
Example #40
0
 def show_package_schema(self):
     schema = super(ExampleIDatasetFormPlugin, self).show_package_schema()
     schema.update({
         u'custom_text': [tk.get_converter(u'convert_from_extras'),
                          tk.get_validator(u'ignore_missing')],
         u'custom_text_2': [tk.get_converter(u'convert_from_extras'),
                            tk.get_validator(u'ignore_missing')],
     })
     return schema
Example #41
0
 def _modify_group_schema(self, schema):
     schema.update(
         {
             "description": [tk.get_validator("not_empty")],
             "org_url": [tk.get_validator("not_missing"), tk.get_converter("convert_to_extras")],
             "fts_id": [tk.get_validator("ignore_missing"), tk.get_converter("convert_to_extras")],
         }
     )
     return schema
Example #42
0
 def _modify_package_schema(self, schema):
     schema.update({
         'res_access': [toolkit.get_validator('boolean_validator'),
             toolkit.get_converter('convert_to_extras')]
     })
     schema.update({
         'md_profile': [toolkit.get_validator('ignore_missing'),
             toolkit.get_converter('convert_to_extras')]
     })
     return schema
Example #43
0
 def _modify_package_schema(self, schema):
     schema.update({
         'author': [toolkit.get_validator('not_empty'), unicode],
         'doi_id': [
             toolkit.get_converter('ignore_missing'),
             toolkit.get_converter('ignore_not_sysadmin'),
             toolkit.get_converter('convert_to_extras'),
         ]
     })
     return schema
Example #44
0
 def _modify_package_schema(self, schema):
     schema.update({
         'eurovoc_uri': [tk.get_validator('ignore_missing'),
                         tk.get_converter('convert_to_extras')],
         'eurovoc_concept': [tk.get_validator('ignore_missing'),
                         tk.get_converter('convert_to_extras')],        
         'spatial': [tk.get_validator('ignore_missing'),
                         tk.get_converter('convert_to_extras')]        
     })
     return schema
Example #45
0
    def _update_schema(self, schema, converter, before=False):
        for k in schema.keys():
            if k.startswith('fao_'):
                field = schema[k]
                if before:
                    schema[k] = [t.get_converter(converter)] + field
                else:
                    schema[k] = field + [t.get_converter(converter)]

        return schema
Example #46
0
 def _modify_package_schema(self, schema):
     schema.update({
         '__authors': [toolkit.get_validator('ignore')],
         'authors': self._authors_schema(),
         'publisher': [toolkit.get_validator('not_empty'),
             toolkit.get_converter('convert_to_extras')],
         'publication_year':
         [toolkit.get_validator('natural_number_validator'),
             toolkit.get_converter('convert_to_extras')],
         'rel_citation': [toolkit.get_validator('ignore_empty'),
             toolkit.get_converter('convert_to_extras')],
         'sci_discipline': [toolkit.get_validator('ignore_missing'),
             toolkit.get_converter('convert_to_tags')('sci_disciplines')],
         'res_type': [toolkit.get_validator('ignore_missing'),
             toolkit.get_converter('convert_to_tags')('res_types')],
         'oa_funder': [toolkit.get_validator('ignore_missing'),
             convert_to_oa_tags('oa_funders')],
         'oa_funding_program': [toolkit.get_validator('ignore_missing'),
             convert_to_oa_tags('oa_funding_programs')],
         'oa_grant_number': [toolkit.get_validator('ignore_empty'),
             toolkit.get_converter('convert_to_extras')],
         'ancestral_license': [toolkit.get_validator('ignore_missing'),
             toolkit.get_converter('convert_to_extras')],
         'moderationStatus': [toolkit.get_validator('ignore_empty'), 
                              toolkit.get_converter('convert_to_extras'), ],
         'moderationNotes': [toolkit.get_validator('ignore_empty'), 
                             toolkit.get_converter('convert_to_extras'), ]
         })
     return schema
Example #47
0
 def show_package_schema(self):
     schema = super(PrivateDatasets, self).show_package_schema()
     schema.update({
         constants.ALLOWED_USERS: [conv_val.get_allowed_users,
                                   tk.get_validator('ignore_missing')],
         constants.ACQUIRE_URL: [tk.get_converter('convert_from_extras'),
                                 tk.get_validator('ignore_missing')],
         constants.SEARCHABLE: [tk.get_converter('convert_from_extras'),
                                tk.get_validator('ignore_missing')]
     })
     return schema
Example #48
0
 def show_package_schema(self):
     schema = super(oaksPlugin, self).show_package_schema()
     schema.update({
         'eurovoc_uri': [tk.get_converter('convert_from_extras'),
                         tk.get_validator('ignore_missing')],
         'eurovoc_concept': [tk.get_converter('convert_from_extras'),
                         tk.get_validator('ignore_missing')],        
         'spatial': [tk.get_converter('convert_from_extras'),
                         tk.get_validator('ignore_missing')]        
     })
     return schema
Example #49
0
 def show_package_schema(self):
     schema = super(PrivateDatasets, self).show_package_schema()
     schema.update({
         constants.ALLOWED_USERS: [conv_val.get_allowed_users,
                                   tk.get_validator('ignore_missing')],
         constants.ACQUIRE_URL: [tk.get_converter('convert_from_extras'),
                                 tk.get_validator('ignore_missing')],
         constants.SEARCHABLE: [tk.get_converter('convert_from_extras'),
                                tk.get_validator('ignore_missing')]
     })
     return schema
Example #50
0
    def show_package_schema(self):
        schema = super(AtbrepoPlugin, self).show_package_schema()
        schema.update({
            'temperature': [
                toolkit.get_validator('ignore_missing'),
                toolkit.get_converter('convert_from_extras')
            ],
            'pressure': [
                toolkit.get_validator('ignore_missing'),
                toolkit.get_converter('convert_from_extras')
            ],
            'initial_temperature': [
                toolkit.get_validator('ignore_missing'),
                toolkit.get_converter('convert_from_extras')
            ],
            'simulation_time': [
                toolkit.get_validator('ignore_missing'),
                toolkit.get_converter('convert_from_extras')
            ],
            'runtime': [
                toolkit.get_validator('ignore_missing'),
                toolkit.get_converter('convert_from_extras')
            ],
            'num_atoms': [
                toolkit.get_validator('ignore_missing'),
                toolkit.get_converter('convert_from_extras')
            ],
        })

        # Don't show vocab tags mixed in with normal 'free' tags
        # (e.g. on dataset pages, or on the search page)
        schema['tags']['__extras'].append(
            toolkit.get_converter('free_tags_only'))
        # add custom program tag to the schema
        schema.update({
            'program': [
                toolkit.get_converter('convert_from_tags')('programs'),
                toolkit.get_validator('ignore_missing')
            ],
            'barostat': [
                toolkit.get_converter('convert_from_tags')('barostats'),
                toolkit.get_validator('ignore_missing')
            ],
            'thermostat': [
                toolkit.get_converter('convert_from_tags')('thermostats'),
                toolkit.get_validator('ignore_missing')
            ],
        })

        # Validates run metadata field for resources before showing to user
        schema['resources'].update(
            {'run': [toolkit.get_validator('is_positive_integer')]})

        return schema
Example #51
0
    def show_package_schema(self):
        schema = super(ExtrafieldsPlugin, self).show_package_schema()
        schema.update({
            'compiled_at': [tk.get_converter('convert_from_extras'),
                            tk.get_validator('ignore_missing')],
            'expires_on': [tk.get_converter('convert_from_extras'),
                           tk.get_validator('ignore_missing')],
            'expiration_info': [tk.get_converter('convert_from_extras'),
                                tk.get_validator('ignore_missing')],

        })
        return schema
Example #52
0
    def _modify_package_schema(self, schema):
        schema.update({
            'compiled_at': [tk.get_validator('ignore_missing'),
                            tk.get_converter('convert_to_extras')],
            'expires_on': [tk.get_validator('ignore_missing'),
                           tk.get_converter('convert_to_extras')],
            'expiration_info': [tk.get_validator('ignore_missing'),
                                tk.get_converter('convert_to_extras')],
            '__after': [tk.get_validator('either_compiled_at_or_expires_on')]
        })

        return schema
Example #53
0
 def show_package_schema(self):
     schema = super(CccaPlugin, self).show_package_schema()
     schema.update({
         'res_access': [toolkit.get_converter('convert_from_extras'),
                        toolkit.get_validator('boolean_validator')]
     })
     schema.update({
         'md_profile': [toolkit.get_converter('convert_from_extras'),
                        toolkit.get_validator('ignore_missing')]
     })
     
     return schema
Example #54
0
 def _modify_package_schema(self, schema):
     schema.update({
         'custom_text': [tk.get_validator('ignore_missing'),
                         tk.get_converter('convert_to_extras')]
     })
     schema.update({
         'country_code': [
             tk.get_validator('ignore_missing'),
             tk.get_converter('convert_to_tags')('country_codes')
         ]
     })
     return schema
Example #55
0
 def _modify_package_schema(self, schema):
     # Add our custom country_code metadata field to the schema.
     schema.update({
             'country_code': [tk.get_validator('ignore_missing'),
                 tk.get_converter('convert_to_tags')('country_codes')]
             })
     # Add our custom_test metadata field to the schema, this one will use
     # convert_to_extras instead of convert_to_tags.
     schema.update({
             'experiment_method': [tk.get_validator('ignore_missing'),
                 tk.get_converter('convert_to_extras')]
             })
     return schema
Example #56
0
 def show_package_schema(self):
     schema = super(Nasa_AceDatasetPlugin, self).show_package_schema()
     #~ schema.update({
         #~ 'custom_text': [toolkit.get_converter('convert_from_extras'),
                         #~ toolkit.get_validator('ignore_missing')]
     #~ })
     schema['tags']['__extras'].append(toolkit.get_converter('free_tags_only'))
     schema.update({
         'dataset_type': [
             toolkit.get_converter('convert_from_tags')('dataset_types'),
             toolkit.get_validator('ignore_missing')]
         })
     return schema
Example #57
0
    def show_package_schema(self):
        schema = super(WotkitPlugin, self).show_package_schema()
        schema.update({
            'pkg_invisible': [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')
                ],
            'pkg_creator' : [
                tk.get_converter('convert_from_extras'),
                tk.get_validator('ignore_missing')
                ]
            })

        return schema
Example #58
0
 def db_to_form_schema(self):
     # There's a bug in dictionary validation when form isn't present
     if (
         tk.request.urlvars["action"] == "index"
         or tk.request.urlvars["action"] == "edit"
         or tk.request.urlvars["action"] == "new"
     ):
         schema = super(HDXOrgGroupPlugin, self).form_to_db_schema()
         schema.update({"description": [tk.get_validator("not_empty")]})
         schema.update({"org_url": [tk.get_validator("not_missing"), tk.get_converter("convert_to_extras")]})
         schema.update({"fts_id": [tk.get_validator("ignore_missing"), tk.get_converter("convert_to_extras")]})
         return schema
     else:
         return None
Example #59
0
    def show_package_schema(self):
        schema = super(ExampleIDatasetFormPlugin, self).show_package_schema()
        schema.update({
            'custom_text': [tk.get_converter('convert_from_extras'),
                            tk.get_validator('ignore_missing')]
        })

        schema['tags']['__extras'].append(tk.get_converter('free_tags_only'))
        schema.update({
            'country_code': [
                tk.get_converter('convert_from_tags')('country_codes'),
                tk.get_validator('ignore_missing')]
            })
        return schema