predavanja update

This commit is contained in:
msinkec 2021-06-11 12:39:29 +02:00
parent 6697c60c7f
commit 169e98bf32
2 changed files with 26 additions and 10 deletions

View File

@ -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):

View File

@ -38,7 +38,7 @@
<label for="predmet">* Predmet:</label>
<input type="text" id="predmet" name="predmet" required="required"/>
<label for="fakulteta">* Fakulteta:</label>
<label for="fakulteta">* Članica:</label>
<input type="text" id="fakulteta" name="fakulteta" required="required"/>
<label for="email">* E-Pošta:</label>
@ -47,18 +47,18 @@
<label for="telefon">Telefon:</label>
<input type="text" id="telefon" name="telefon"/>
<label for="kljucne-besede">* Ključne besede (ločene s presledkom):</label>
<label for="kljucne-besede">* Ključne besede (ločene z vejico):</label>
<input type="text" id="kljucne-besede" name="kljucne-besede" required="required"/>
<br>
<div style="display:flex; flex-direction: row; justify-content: left; align-items: center">
<label style="width: 95%; text-transform: none; font-size: 12px;"><b>*Privolitev:</b><br>Strinjam se, da Univerza v Ljubljani uporabi posnetek naloženega predavanja v okviru projekta za strojno prevajanje predavanj ON. Dostop do posnetka bodo imeli izključno sodelavci projekta za namen transkripcije govora.</label>
<input style="width: 5%;" type="checkbox" name="strojno-prevajanje" value="strojno-prevajanje" checked>
<input style="width: 5%;" type="checkbox" name="strojno-prevajanje" value="strojno-prevajanje">
</div>
<div style="display: flex; flex-direction: row; justify-content: left; align-items: center; width: 310px;">
<label style="text-transform: none; font-size: 12px;"><b>Javna objava posnetka:</b><br>Ali bi se v prihodnosti strinjali z javno objavo posnetka? (V primeru strinjanja bi podpisali poseben dogovor o pogojih objave.)</label>
<label style="text-transform: none; font-size: 12px;"><b>Objava posnetka na portalu ON:</b><br>Ali bi se v prihodnosti strinjali z objavo posnetka na portalu sistema ON? (V primeru strinjanja bi podpisali poseben dogovor o pogojih objave.)</label>
<div style="display: inline-block;">
<input type="radio" name="javna-objava-prihodnost" value="da" style="display: inline; float: left; width: 20px;" checked>
<input type="radio" name="javna-objava-prihodnost" value="da" style="display: inline; float: left; width: 20px;" >
<label for="da" style="display: inline; float: right; position: absolute; margin-top: 5px;">Da</label><br>
<input type="radio" name="javna-objava-prihodnost" value="morda" style="display: inline; float: left; width: 20px;">
<label for="morda" style="display: inline; float: right; position: absolute; margin-top: 10px;">Morda</label><br>
@ -69,7 +69,7 @@
<br>
<div style="display:flex; flex-direction: row; justify-content: left; align-items: center">
<label style="width: 95%; text-transform: none; font-size: 12px;"><b>Obvestila:</b><br>Želim, da me Center za jezikovne vire in tehnologije UL obvešča o novicah v zvezi s sistemom za strojno prevajanje predavanj ON.</label>
<input style="width: 5%;" type="checkbox" name="obvestila" value="obvestila" checked>
<input style="width: 5%;" type="checkbox" name="obvestila" value="obvestila">
</div>
<br>
@ -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