From 96f5680e6de7bf84a490d1550383983310947885 Mon Sep 17 00:00:00 2001
From: chbaeh <chbaeh@gmail.com>
Date: Thu, 4 Apr 2019 16:15:52 +0200
Subject: [PATCH] ODPSH-368: fix validation

---
 ckanext/odsh/helpers.py                       |   4 +--
 .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo  | Bin 7280 -> 7431 bytes
 .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po  |   4 +--
 .../snippets/package_basic_fields.html        |   2 +-
 ckanext/odsh/validation.py                    |  32 ++----------------
 5 files changed, 7 insertions(+), 35 deletions(-)

diff --git a/ckanext/odsh/helpers.py b/ckanext/odsh/helpers.py
index fc8a8300..0b7eec7b 100644
--- a/ckanext/odsh/helpers.py
+++ b/ckanext/odsh/helpers.py
@@ -162,11 +162,9 @@ def odsh_extract_error(key, errors, field='extras'):
         if 'key' in item:
             for error in item['key']:
                 if error.startswith(key):
-                    return error.replace(key+':', '')
+                    return error
 
 def odsh_extract_error_new(key, errors):
-    print('ERRORS')
-    print(errors)
     if not errors or not ('__extras' in errors):
         return None
     error = errors['__extras'][0].get(key,None)
diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo
index 15559973318ab1ec1d1fd1212ddb1080d91b222e..3b5f6c5cb8bf495518677cd9f7a31b01781e1e9f 100644
GIT binary patch
delta 2130
zcmexh(QZ|LPl#nI0|Ns?2?GOz3<Cqh9%c{^fn(Si7(ha?P&yGxr?N9JurM$%WJ39Q
z><kP-3=9lK><kRt3=9md>=5%NvNJHSGB7Z#V`pGsXJBC10+rvx&cMLWz);U{f}MeZ
zi-CdR20H_TAOi!#V|E4x1qKF&uj~vAk_-$CVjK{00}hBfCk}`Oz8nyPBRL=z$8#_+
zuz?)F!N9=Dz`#(+!N4HFz`)Q96`#Ywz#zcDz_1u<-WCo91~G<u28LrC5SQJBTJRKV
z@CT^IZyXE^d<+Z>e>oT!L>U+ucsLmtR2di;lsFj}co`TNJUAH`R2Uc-!Z;ZiL>L$t
zsyP`LWEmJ3CP3xaaY8(@hZADXHBN}bpMv=H3=9mfp&Ea2LR`+z1)(LmAU;**0tXd?
zJ{JRnH3I{KJr@Im6v!ejNEA%tVqoB5U|^Wd1+icS7XyPX0|Uc$E{KDlazQNo&BegL
z!N9=4$PEc8E^Y>fdXUcqxgin?+zbrj3=9mK+z<;Lxgiz=azhLbgNmneLmXHN)mP6A
ziJA_my2(&|i?|sW6d4#8mUBZw_#{;QMJRoXo1q?@C>}#y^qLzIq@TDUaR>4iC^1R$
zFfeE{Ffgd{Ktdpp2a+gzc_3+HA`ip^i+LapUc<w{Ak4tPu#pE60!Miu9=pv0Nn4+J
zAW<m7ThG9t$-uy1#S0Ng;e{yZ;$>ivV_;xd4dtKWg~aJ=UPxSW@-Z;TGcYhH^FjE|
ze2_#K%Lma{zz6X_KU91LAH+esq4MYXAP##63V%>)XW@qgsVYAM0}}%SgFZjRU?YA8
z25ANc1|NO~20aD_h75iN1}_E%hUxqa3>FLw43GF37$z_>Fh~nPLT-&9B<gkvLZa*x
zl)fnlNlPyTA?m&eLL6AnBn0ufv=BtXQ3#Tl{GoJ=5X7aKLZIxzz)%n6PZMHbP-9?V
zSR(`piOW#^pP}-M!Vm|D3q#^wO&F5>^n@9}+0<SboM!47+=L-P7YGqxND*dWP-b9Y
z$QNc{P-0+Um@Etl(rr+USE2MBVMwZe4CTKRhGf4F!jKSS6@jD~MG=TYd_^GU#E3u&
zrfLz8!|NFsW{5z7W`_tQj*o~y64fISNTT^70to>gQ3zj26yg&rQAmh+i$bC<QWO$p
z$)XGlAq)%*wW5%;bqT8Ok0>M!aEU?8lM`cLFaqU&6EOyGVoDc-_^4eBVqmWrB&eoC
z`SZjese6SOB<R<QL415g3=+gI#UKv<C<bvLvpB>Y5hyJu4so!CI7FS9I0HjHsBHHT
zXJF7_U|{eOhh(ElsD>se-2<hki9-_C0&z$Ivq7AJ!JL7C;hs3eLNN(Q5UWc-604g8
z#6zVL5DTj%AW_{b0rA)Z35I%bnY>(rfkA_TfnkRP#NdY#5QF(8AqKijLJUlkge2Cf
zl8~s{Ey=)O#K6FCQxXy)JW>$-#!`^DPn2R{Fl1n0=#_#5`F<&gL$69PFlaF_Fg%k=
zhm=r)(h!#!OG6BBlZH5;L>gki8fi$ub59x)LQ*o20!Uc~QWUGpKoXUc3<HBD0|P_6
z3<HBR0|UcM8AuwqyV;Zd6_dG=YO#_+ZfS9eLQ<+iVopIuVqR%(YEfpgLUKl8QDSmQ
zYEiL5evv|PWo}Y_PO+7OZoHnAhUR8Ht}^Dya(tYV-}6>*6(p8qCg#MK7G+NU$SopK
zjNn@-lon+wl;&mU<(KDePUXAC77~(}UaSDI_VAwK;?z8a#L{B0)p@14Agha$Gg9*u
zqEa)#bbd-|kwQvlDo9~4*b%9D3Q4KOC8-&yd2r`giDs}&-YTUxSyrlka+8SI<V}+1
Ko99SfVFUoq1@xu>

delta 1986
zcmZp-`e0FiPl#nI0|Ns?F#`jG3<Cqh7G@9+fqmE+7(hb4P&yDwhq5y;urM$%L_+y-
z><kP-3=9lO><kRt3=9mV>=5%B*%=sE85kJmu`@8RGcYhLfy%F8XJFuGV5n!<!Op<I
z#lXODf}Mdukb!~WGCKo<0s{lXQ+5UhNd^W6HV%lm0tZB$5eLKqTMmf9o*WR1{W%yI
z*gy{8U|`^6U|`7PU|^5{c?>Gv!@<BHz`(#T8EW1V4h9A>hI$5uZ5$AnorPL(6>9JU
zsK#d;3=Dh>3=D5M7#Ktu7#RL=FfgbxFfa&lGBEHmFfdqfGBBtxFfh1rGBAiRFfe3u
zGBC(8FfcSg<>zriJhFxpV$Ly6h{Laf`1K4747Z^gUvWZQ{vS$nazT75%mofA26-+9
z1}O#x27N9_(0g$)Fz_%iF!*yp436PqV9*6QfD7W#nOqQy)^jm1a4;}1Y~_N4&_1a8
zqg)IO^&p8WTnr523=9l+p%#6GTENN;F_?=R;s8l*hyyjbAqE<AL!!h6s?MDo;;=Ao
z1_nh228L*ENXXVg)we?FKB)L~ZiaeroXzKk1m!YrNStlqhWPv}Hv@w<0|UcNZUzQx
z1_lOJ9!O$z<bk9KS00E%!g(MTC-5*Z2s1D+r1C&QpppmTv3?#%np(~SiMkU!3=EnK
z3=Hph>LCIWybuL;ybKI-3=9nMP<|aRBo)u+g~ah5UP#<N<b}lPe_jR#c?JdsNj?bQ
zk`Iy?gQ0X9AH+eGd=PVc`5+Ek!w0eNP(2?cNFVbtFff4<8PuQ;d<+cI3=9lh{0t0w
z3=9lv{0t0U3=9mR{0s~h3=9kl_!$@`FfuUQ<cEY@mLMdGDg+@>)&Zrb3qnG2nIJ^n
zCP7FD9}t9iy#6Ls;=dpyG4TpPXel9xOVx!y*@S_?7RnD1Vqj2XU|`4+g7|!*5X9h(
zQ2G5r5C>cpg2eq3AxO4+BLqo&e}y1vhD8`0QuPe{!Vm!^VFm_e1_lOQVFm^z1_p*e
zVMvgb2tzbZhSIZyA*p&Hl)qdUlI_+BLqhDZFeJ^~7lt^5TLfZ`ln5j$Ekz&>4-)}}
zOg#fbnFu6Kn?xXqYJmtO(QFcdgup2%|A7d^CqG0WKIRmKM4h-OB<>YOA&JUb6e6E0
z3W@t-QHVM1q6`d13=9l&MIjEjAj-hN3d;W<pay*th4_>~3}P_57$j8-ia~;0Obp^v
zTQNw`28lr&93=*ESPoQQEtGB-gE(X&RNZ_rNbcDv#=xM%z`(Fo44VHRK{dRF(qEzU
ze=$g+;uMDzERy034CV|B4DR9(3+u%pK|4Vll1SH!L!#!MIK*L3#KCdQ@J$@zF-{4H
zJ^={^1`P%V21N;mdT@#5B>^$GLIPso1__9P=OrMi^q&MIic};aLFgn236WAs1_mt#
z28KD3kOJqpB*dXFB_U}*T#A9gkb!~0Sqc&brBV<FbW1@THb*KPqG7!h!~u7q8bqZb
z1&+Hkq=0Fbh6G)YG^7ZgAPq@OtECwjEJ2l*Gy{V(0|Nt-3?vP>ZH{Dr#k9GetB~2C
zxFE44GchN=v?wz^wWuh+C_X1KDK&>7KczS$9$B(9FFP;4Ja6(n-pQL+@?Bxud`UE&
jWpcWdz~nzt=94dp3QhhX&N4YhT5fW>RQ+aS=_`x?fC$PR

diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
index 409f3d35..f680c17b 100644
--- a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
+++ b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
@@ -171,10 +171,10 @@ msgstr "Dateien"
 msgid "Spatial uri"
 msgstr "Raumbezug"
 
-msgid "odsh_spatial_uri_unknown_error_label"
+msgid "spatial_uri: uri unknown"
 msgstr "Der räumliche Bezug is ungültig"
 
-msgid "odsh_spatial_uri_error_label"
+msgid "spatial_uri: empty not allowed"
 msgstr "Bitte geben Sie einen räumlichen Bezug an"
 
 msgid "odsh_temporal_start_error_label"
diff --git a/ckanext/odsh/templates/package/snippets/package_basic_fields.html b/ckanext/odsh/templates/package/snippets/package_basic_fields.html
index 342bebc8..4e585fe7 100644
--- a/ckanext/odsh/templates/package/snippets/package_basic_fields.html
+++ b/ckanext/odsh/templates/package/snippets/package_basic_fields.html
@@ -59,7 +59,7 @@ is_required=true,placeholder=_('Enter title')) }}
 
 
     <!-- field license -->
-    {% set error_missing_attr = h.odsh_extract_error_new('licenseAttributionByText', errors) %}
+    {% set error_missing_attr = h.odsh_extract_error('licenseAttributionByText', errors) %}
     <label class="control-label" for="field-license">
         {{ _("License") }}:
         <span title="{{ _("This field is required") }}" class="control-required">*</span>
diff --git a/ckanext/odsh/validation.py b/ckanext/odsh/validation.py
index 13c38a24..e90bd870 100644
--- a/ckanext/odsh/validation.py
+++ b/ckanext/odsh/validation.py
@@ -95,30 +95,6 @@ def validate_extra_date_new(key, field, data, optional, errors):
                 pass
         errors[field] = 'not a valid date'
 
-def validate_extra_date(key, field, data, optional=False):
-    value = _extract_value(data, field)
-
-    if not value:
-        if optional:
-            return 
-        # Statistikamt Nord does not always provide temporal_start/end,
-        # but their datasets have to be accepted as they are.
-        if not ('id',) in data or data[('id',)][:7] != 'StaNord':
-            raise toolkit.Invalid(field+':odsh_'+field+'_error_label')
-    else:
-        if re.match(r'\d\d\d\d-\d\d-\d\d', value):
-            try:
-                dt=parse(value)
-                _set_value(data, field, dt.isoformat())
-                return
-            except ValueError:
-                pass
-        raise toolkit.Invalid(field+':odsh_'+field+'_not_date_error_label')
-
-
-def validate_extra_date_factory(field, optional=False):
-    return lambda key, data, errors, context: validate_extra_date(key, field, data, optional)
-
 def validate_licenseAttributionByText(key, data, errors,context):
     register = model.Package.get_license_register()
     isByLicense=False
@@ -148,11 +124,9 @@ def validate_licenseAttributionByText(key, data, errors,context):
 
     if isByLicense and not hasAttribution:
         raise toolkit.Invalid(
-            'licenseAttributionByText:licenseAttributionByText: empty not allowed')
+            'licenseAttributionByText: empty not allowed')
 
-#        errors['licenseAttributionByText'] = 'empty not allowed'
     if not isByLicense and hasAttribution:
-        #errors['licenseAttributionByText'] = 'text not allowed for this license'
         raise toolkit.Invalid(
             'licenseAttributionByText: text not allowed for this license')
 
@@ -164,7 +138,7 @@ def known_spatial_uri(key, data, errors, context):
         # some harvesters might import a polygon directly...
         poly = _extract_value(data, 'spatial')
         if not poly:
-            raise toolkit.Invalid('spatial_uri:odsh_spatial_uri_error_label')
+            raise toolkit.Invalid('spatial_uri: empty not allowed')
         else:
             return 
                 
@@ -187,7 +161,7 @@ def known_spatial_uri(key, data, errors, context):
             break
     if not_found:
         raise toolkit.Invalid(
-            'spatial_uri:odsh_spatial_uri_unknown_error_label')
+            'spatial_uri: uri unknown')
 
     # Get the current extras index
     current_indexes = [k[1] for k in data.keys()
-- 
GitLab