From d2d237a1c7869674cfea6fb34a466283644435ca Mon Sep 17 00:00:00 2001 From: Jesper Zedlitz <jesper.zedlitz@melund.landsh.de> Date: Thu, 9 Jun 2022 09:10:49 +0200 Subject: [PATCH] =?UTF-8?q?Pr=C3=BCfung=20der=20Formatangabe=20geben=20die?= =?UTF-8?q?=20Liste=20der=20EU?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ckanext/odsh/plugin.py | 2 +- ckanext/odsh/validation.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py index 02f683a2..46bebec5 100644 --- a/ckanext/odsh/plugin.py +++ b/ckanext/odsh/plugin.py @@ -106,7 +106,7 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm schema['resources'].update({ 'url': [toolkit.get_converter('not_empty')], - 'format': [toolkit.get_converter('not_empty')], + 'format': [toolkit.get_converter('odsh_validate_format')], }) schema['extras'].update({ diff --git a/ckanext/odsh/validation.py b/ckanext/odsh/validation.py index a7ca167e..762877d4 100644 --- a/ckanext/odsh/validation.py +++ b/ckanext/odsh/validation.py @@ -354,6 +354,12 @@ def validate_relatedPackage(data): except logic.NotFound: raise toolkit.Invalid("relatedPackage: package '{}' not found".format(data)) +def validate_formats(data, errors): + if not data in ['7Z','AAB','AAC','AKN4EU','AKN4EU_ZIP','APK','APPX','ARC','ARC_GZ','ARCINFO_COV','ARJ','ATOM','AZW','BIN','BITS','BMP','BWF','BZIP2','CSS','CSV','DBF','DCR','DEB','DGN','DMG','DMP','DOC','DOCX','DTD_SGML','DTD_XML','DWG','DXF','E00','EAR','ECW','EPS','EPUB','ETSI_XML','EXE','FMX2','FMX3','FMX4','FMX4_ZIP','GDB','GEOJSON','GEOTIFF','GIF','GML','GMZ','GPKG','GRID','GRID_ASCII','GZIP','HDF','HDT','HTML','HTML5','HTML_SIMPL','ICS','IMMC_XML','INDD','IPA','ISO','ISO_ZIP','JAR','JATS','JPEG','JPEG2000','JS','JSON','JSON_LD','KML','KMZ','LAS','LAZ','LEG','LHA','LPK','LZIP','LZMA','LZO','MAP_PRVW','MAP_SRVC','MBOX','MDB','METS','METS_ZIP','MHTML','MIF_MID','MOBI','MOP','MPEG2','MPEG4','MPEG4_AVC','MRSID','MSG_HTTP','MSI','MXD','N3','NETCDF','OCTET','ODB','ODC','ODF','ODG','ODP','ODS','ODT','OP_DATPRO','OVF','OWL','PDF','PDF1X','PDFA1A','PDFA1B','PDFA2A','PDFA2B','PDFA3','PDFUA','PDFX','PDFX1A','PDFX2A','PDFX4','PL','PNG','PPS','PPSX','PPT','PPTX','PS','PSD','PWP','QGS','RAR','RDF','RDFA','RDF_N_QUADS','RDF_N_TRIPLES','RDF_TRIG','RDF_TRIX','RDF_TURTLE','RDF_XML','REST','RPM','RSS','RTF','SB3','SCHEMA_XML','SDMX','SGML','SHP','SKOS_XML','SPARQLQ','SPARQLQRES','SQL','STL','SVG','SWM','TAB','TAB_RSTR','TAR','TAR_GZ','TAR_XZ','TIFF','TIFF_FX','TMX','TSV','TXT','UNGEN','WAR','WARC','WARC_GZ','WCS_SRVC','WFS_SRVC','WIM','WMS_SRVC','WORLD','XHTML','XHTML_SIMPL','XLIFF','XLS','XLSB','XLSM','XLSX','XML','XSLFO','XSLT','XYZ','XZ','Z','ZIP']: + raise toolkit.Invalid(_('Only formats on the list of the EU Publications Office are allowed.')) + + return data + def get_validators(): return { 'known_spatial_uri': known_spatial_uri, @@ -362,4 +368,5 @@ def get_validators(): 'validate_licenseAttributionByText': validate_licenseAttributionByText, 'tpsh_validate_subject': validate_subject, 'tpsh_validate_relatedPackage': validate_relatedPackage, + 'odsh_validate_format': validate_formats, } -- GitLab