From 0e7c7fc5a06770fedc185455b922e7833eaa5038 Mon Sep 17 00:00:00 2001
From: anonymous <anonymous>
Date: Thu, 21 Mar 2019 10:32:37 +0100
Subject: [PATCH] refactor validation

---
 ckanext/odsh/fanstatic/odsh_form.js           |   3 ++-
 ckanext/odsh/helpers.py                       |   3 ++-
 .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo  | Bin 6632 -> 6854 bytes
 .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po  |   7 ++++++-
 .../snippets/package_basic_fields.html        |   6 +++---
 5 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/ckanext/odsh/fanstatic/odsh_form.js b/ckanext/odsh/fanstatic/odsh_form.js
index 0562849c..768655b1 100644
--- a/ckanext/odsh/fanstatic/odsh_form.js
+++ b/ckanext/odsh/fanstatic/odsh_form.js
@@ -30,13 +30,14 @@ ckan.module('odsh_form', function ($)
                 // TODO: this implementation should be more generic
                 var id = '#field-license';
                 var id_name = '#field-licenseAttributionByText-value';
+                var autofill=this.options.autofill
                 var toggle = function ()
                 {
                     let text = $(id + ' option:selected').text()
                     if (text.indexOf('Namensnennung') !== -1)
                     {
                         $(id_name).prop('disabled', false);
-                        if (!$(id_name).val())
+                        if (!$(id_name).val()&&autofill)
                             $(id_name).val($('#field-organizations option:selected').text());
                     } else
                     {
diff --git a/ckanext/odsh/helpers.py b/ckanext/odsh/helpers.py
index 92ee251f..1627d920 100644
--- a/ckanext/odsh/helpers.py
+++ b/ckanext/odsh/helpers.py
@@ -165,7 +165,8 @@ def odsh_extract_error_new(key, errors):
     if not errors or not ('__extras' in errors):
         return None
     error = errors['__extras'][0].get(key,None)
-    return error
+    if error:
+        return key + ': ' + error
 
 def odsh_extract_value_from_extras(extras, key):
     if not extras:
diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo
index 621d249dadacd7b628fc15fa6ccd6f87096605a4..f6ea89603905f9e8c34163ed34e4c37f6745d5fb 100644
GIT binary patch
delta 1985
zcmaE1e9W}|o)F7a1_lO(JO%~^83qQ19%c{^f&Z{EFo1;qLTN^J2%nXmfq{jAfq@gs
z=VNDJ5Mp3p5MpOw;AUW8P-TahXUNXLz{<eD;K$Cuz|O$H5CWBtVP|0AXJDvj$Y5t+
z;9_84s9<Mc5M*FrXl7?%P+(wSn99z;Aj!bMunj7H0jlm1)PT28gMUIT{?E?9zy@*v
z2Ll5q0|SF32Lpoy0|SFH2SnV4gMmSSfq}u917c4I2Lpo`Lp=jS8VAH>wHy$Kv~oaP
zJOQe48V3Ud9|Hr!Tn+{XQ3eKvH5?2KstgPahd3A*co`TNUT`ols4y@veB)qX5Mf|o
zkmh7ykY!+CFyMs9`*A`%62l2Gr;HO~ek+Jy&%nUY%?Z&sixcAV^-y{zCnP8jbAp44
z;XEe;gA@Y;!+lOj(Es9OVBle3VE7L*h=GBDhl_zh7vumgh(kTOAQr`QF)(m2FfgQY
zK|&&r3*wMcE(V5rkVFd?1A{mN14Azt#G<8K5DT_K74CwHpX7o#@Fvv2$6SyQdjnPX
z9jcFwn}I=*fq{XW8xpd*+z<ztLTNjwxH~sPJvh$%xgkLn#tn(H6mE#mYq=R1v>6x}
zI=LAbtQi;>wsJ!f-$!mp9De17IFy}-fk7A)0z43(EAT)(WX1zYOMX0%D9h(zV9*4m
zEhv9KPd!AzQyvBeIR*v>HeLu{l^2qF-FP8!o6HM|(+*xpTrT5fV322EU^oEfKj4L=
z{$Eg<mk$zB3VaL<ObiSRT6_?Fx_k@_(hLj??tBakdJGH<$@P2;3|<Tj43qd67%UhV
z81C{hFic=%U=ZVngvfFMNR(_9fW+BRD1Ai$5<-s!AnM)=Ktk@X0K}(af)H^VK}Z_$
zg3{rFkPu1{1f_lkhWaX~z(hd?1~mo-hUJ0~pPhpm@D3{fM-buwAt6YdDhffelco?P
zQCSH=(t@K9BqV&G{CFV-24w~YhAbfl1|<dthCU%kNN<Gbt7o_XVK7`5f~3}aQ2rAk
zNUnG-1PL-w1cTCoj4;F@9>NfV!i6DGRVEB^_+(*7$ZQsdMA?2}NLslo3`rC3g&`rp
zE&}4$Gcd@CKzw2<0tqrV5lGyHh(O{jP6U!@DxmU<L?DT6g9yZ+BO(k8MhpxLw?rTg
z;1z{<L{}7Ij<F~tglwUF7g0!}^%G@aPy^-vU{Q!qt3)9|+b;@n@pMs$!&X8y?t;=s
zL?I462UT}R6p}06i83(gFfcHD5`|<pc`=9sG@!H*l(rFrq$xKs28Mc2fe|Lgz+le6
zz|bNFv2c$VBxuiyK~m`(F^G?(#UTz;6o>f8SRA6>N}Pc~gMop;TO3jVm54*kTO<xK
z=ax9coS)*5#Hk?xi5fo%hI(+&<w!sh-+T!M1}z2#hGP<t0_39v#6V$5NIBpr$-rR9
zz`&3z2?_f7k`M=Mm4qa^W0DY`-;{)e$RkNeiTO+tl13P%7#J)W7#QTF7#N%x7#Jd?
zI3RI5M{4sew%yE=*K>s_rWfUx78F}4B$g=Tq$U=ZDCFm*Du4wQ@={Y%Qd1_gaL1<Q
zWG1KP6{k9uloVwqm6l}Y=Q&k|q*jzzDWv8WlvFC@<(DWV=H%p;r=~FAR$G!<QG%>g
vAuYd1p(G=-SOKDEb3FF~&dEBW$&>$!=uYkzT{l@#NMy2rxYcG`vDM4~g74aO

delta 1833
zcmX?R`og&Wo)F7a1_lO(90mpk83qQ18fFj=f$y*}Fo1;aLg|N4`Y9U&0}BHK!%Hat
z9UB9K5Ca3lCpHEKZUzPhR(6Pag6s?otPBhcdh84g><kPHChQP-8+HZ;eg=km1`l=y
z1}+8$h6r{B20;b}hGcdI1_cHNhEjG021y16hG|go4N!H5paz_U8hn!-V)1=;1_m~e
z1K1fDI2jliezG$#NH8!kFmph}WjGiZ1Q-|?lsO>wm~b#Kh%wYNFt~9*To%g#aY!l$
z#Ki?rjb$7R415d>47D5#45ADS3_TnS45|za42w7z7<d^N7*237FsLvvFkItcU=U$o
zVEE0!z#z-Oz#za0k=Nsdc*KSiVon$*#Qanczn+1CA)6DTv5FJo@_r~ilM@nDi#fqT
z#ju`}fkBFafnh%<B<OE(GBEHkFfiN)8N|TA@P?CtK^NozPKZM_xgZwVb1^V*FfcH<
zazR4Ej|<|EP%Z|BdXPj47XyPh0|P@Y7sR4gE{Kb#azQLw57n>*Du0*@;?T=bgYR-d
zLhcz<-AAZCP(lF3IV(5B0lZLJj2jZ-^4tvd;5bv~h6WWkB+hKOAwCb~h9tg3Zb+P^
zazh+c&dtCe3`(rr5T8!qhIn8ZHze)s<Ay}heQpK@O;BRwf$;TtAo8I+3=DD%3=CyF
z^$>xnJdo77jRz8!mw6y@_=5)$5@Ngz4Dt*N3<kUqegH2d(PcsDT3$$qOyFf;U}9ik
zm<3fgmzRM-nt_2~J1+x+9s>izWnKmbF9rq%CO!rR3kC)T-+Dd<h6#)e3~hXn5D*uD
zM1iURB#um>w2J^FM1ln%>f!|;A(blt@mU*Ge2oAkP3(fw#|0oEbVUG^+8G#LLHUe=
z3=C=v3=H++f)JnC2|^5x6NG5U5rjCPNe~iO69pmJXQm(|5v>x0#Q8=+NJ#8~^3Mx0
zFeo!HFx(PkU{GRUVE88p32H?lh&~4>?JfjPob?QTP=OF3NG^yLf&^KC5CelYD7y(k
z9I`_QV$g9RNK`!&f;gO67!oqd!jLG_7lx!2Utvg^h!=)<s2s}g6^3|ZsW8aH^$ZN#
zgduTvL>Lmc=Y%1N<^@;*1A~wVB(W)oKnyYwVPG&~U|{ePfjFR61nd)rxgrpA7K=c9
zx)#dcA_7UY`$Ql?epm$J(N`i23_76v|6c?W#5$r7mz#(}T<9hWF)$oTCyIhx%)pQh
zRaYqr$sOIIknGhDRW}1lFM`r*L?LNvn<%7wI3~)#V9vn6@I{n?p&nEu>WD#nU@Hc3
zfU_9H2ccpRhs206Fld0v2Qi2N)5IVK91(*=$saLD>XsIVBt|cBNK_PvLqe)g9OCnX
z;tUL03=9k}#2FYA85kIZB^c7dC6=iKB(9Ss7#Iv07#R8`AVGal0^)${5|BjpLIUE`
z-x3g?vq(ZpL=H(vnoyQxV6bFhU~rIRU~pz&V5pLWMCCro&A-@oGfO6xDCDFj7MCdG
z=cOv77v+~0DCDK4rlh7!-oh0=S(iIz^GEJ^oRdF^>Q3$#O`a?-wr;bu_-bYV>VK?n

diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
index 65fedcd3..9fc567af 100644
--- a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
+++ b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
@@ -235,9 +235,14 @@ msgstr "Bitte geben Sie ein Format an"
 msgid "odsh_licence_text_missing_error_label"
 msgstr "Bitte geben Sie einen Namen an"
 
+msgid "licenseAttributionByText: empty not allowed"
+msgstr "Bitte geben Sie einen Namen an"
+
 msgid "odsh_licence_text_not_allowed_error_label"
 msgstr "Ein Name ist bei dieser Lizenz nicht zulässig"
 
+msgid "licenseAttributionByText: text not allowed for this license"
+msgstr "Ein Name ist bei dieser Lizenz nicht zulässig"
 
 msgid "Followers"
 msgstr "Abonennten"
@@ -351,5 +356,5 @@ msgstr "verwendet URIs"
 msgid "4LD"
 msgstr "Linked Data"
 
-msgid "at least one group needed"
+msgid "groups: at least one group needed"
 msgstr "Bitte geben Sie mindestens eine Kategorie an"
\ No newline at end of file
diff --git a/ckanext/odsh/templates/package/snippets/package_basic_fields.html b/ckanext/odsh/templates/package/snippets/package_basic_fields.html
index 29ba4e24..8371d5d7 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('licenseAttributionByText', errors) %}
+    {% set error_missing_attr = h.odsh_extract_error_new('licenseAttributionByText', errors) %}
     <label class="control-label" for="field-license">
         {{ _("License") }}:
         <span title="{{ _("This field is required") }}" class="control-required">*</span>
@@ -88,7 +88,7 @@ is_required=true,placeholder=_('Enter title')) }}
             <div class="control-group {{ " error" if error_missing_attr }} control-full">
                 <div class="controls">
                             {{ form.input_extra(field, value=value, index=h.odsh_create_checksum(field), type='text', attrs={'disabled':true,
-            'data-module':"odsh_form", 'data-module-licensetoggle':'true' }, placeholder=_('enter name')) }}
+            'data-module':"odsh_form", 'data-module-licensetoggle':'true', 'data-module-autofill':'true'}, placeholder=_('enter name')) }}
                 </div>
             </div>
         </div>
@@ -172,7 +172,7 @@ is_required=true,placeholder=_('Enter title')) }}
                 </div>
                 <div class="span6 inline-error">
                     {% if error %} 
-                    {{_('issued: ' + error)}}
+                    {{_(error)}}
                     {% endif %}
                 </div>
             </div>
-- 
GitLab