diff --git a/portal/predavanja.py b/portal/predavanja.py index 43b6f26..e00a589 100644 --- a/portal/predavanja.py +++ b/portal/predavanja.py @@ -43,6 +43,13 @@ class UploadHandlerPredavanja(UploadHandler): file_hashes = upload_metadata['file_hashes_dict'] sorted_f_hashes = list(file_hashes.values()) sorted_f_hashes.sort() + + # Normalize keywords list + keywords_list = [] + for keyword in form_data['kljucne-besede'].split(','): + keyword = keyword.strip() + keywords_list.append(keyword) + keywords = ','.join(keywords_list) try: model_obj = UploadPredavanja( @@ -54,7 +61,7 @@ class UploadHandlerPredavanja(UploadHandler): faculty=form_data['fakulteta'], email=form_data['email'], phone=form_data.get('phone'), - keywords=form_data['kljucne-besede'], + keywords=keywords, agree_publish_future=form_data['javna-objava-prihodnost'], agree_machine_translation=True if 'strojno-prevajanje' in form_data else False, agree_news_cjvt=True if 'obvestila' in form_data else False, @@ -102,6 +109,10 @@ class UploadHandlerPredavanja(UploadHandler): email = form.get('email') phone = form.get('telefon') keywords = form.get('kljucne-besede') + agree_publish_future = form.get('javna-objava-prihodnost') + + if not agree_publish_future: + return 'Manjkajoča izbrana vrednost pri polju za javno objavo.' if not name \ or not address \ @@ -111,8 +122,9 @@ class UploadHandlerPredavanja(UploadHandler): or not keywords: return 'Izpolnite vsa obvezna polja.' - for keyword in keywords.split(): - if not keyword.isalpha(): + for keyword in keywords.split(','): + keyword = keyword.strip() + if keyword.isspace() or not keyword.isalpha(): return 'Ključna beseda "{}" ni pravilnega formata.'.format(keyword) if not re.search(REGEX_EMAIL, email): diff --git a/templates/basic-predavanja.html b/templates/basic-predavanja.html index 8293206..a7be0bf 100644 --- a/templates/basic-predavanja.html +++ b/templates/basic-predavanja.html @@ -38,7 +38,7 @@ - + @@ -47,18 +47,18 @@ - +
- +
- +
- +

@@ -69,7 +69,7 @@
- +

@@ -97,7 +97,7 @@ } const reEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; - const reKeyword = /^[a-zA-Zščđ枊ČĐĆŽ ]+$/; + const reKeyword = /^[a-zA-Zščđ枊ČĐĆŽ,]+$/; Dropzone.options.myDropzone = { // The camelized version of the ID of the form element url: "/predavanja/upload", @@ -138,6 +138,8 @@ var email = form["email"].value; var telefon = form["telefon"].value; var privolitev = form["strojno-prevajanje"].checked; + var javnaObjava = form["javna-objava-prihodnost"]; + if (isEmptyOrSpaces(ime) || isEmptyOrSpaces(naslov) || isEmptyOrSpaces(predmet) || @@ -159,6 +161,8 @@ alert("Velikost polj je omejena na 100 znakov."); } else if (!privolitev) { alert("Odkljukana privolitev je pogoj za oddajo."); + } else if (javnaObjava.value == "") { + alert("Izberite eno izmed možnosti pri polju za objavo na portalu ON!"); } else { // Hand off data to dropzone