diff --git a/eprihlaska/consts.py b/eprihlaska/consts.py index b15ac3e..4569727 100644 --- a/eprihlaska/consts.py +++ b/eprihlaska/consts.py @@ -6,8 +6,9 @@ DIR = os.path.dirname(os.path.abspath(__file__)) -SELECT_STUDY_PROGRAMME = _('Vyberte si, prosím, aspoň prvý študijný program') -NO_ACCESS_MSG = _('Nemáte oprávnenie pre prístup k danému prístupovému bodu') +SELECT_STUDY_PROGRAMME = _('Vyberte si, prosím, aspoň prvý študijný program') # noqa +SELECT_STUDY_PROGRAMME_ONCE = _('Vyberte si, prosím, študijný program najviac jeden krát') # noqa +NO_ACCESS_MSG = _('Nemáte oprávnenie pre prístup k danému prístupovému bodu') # noqa DEAN_LIST_MSG = _('Na základe listu dekana nie je potrebné zadávať údaje o prospechu na strednej škole.') # noqa LOGIN_CONGRATS_MSG = _('Gratulujeme, boli ste prihlásení do prostredia ePrihlaska!') # noqa PASSWD_CHANGED_MSG = _('Gratulujeme, Vaše heslo bolo nastavené! Prihláste sa ním, prosím, nižšie.') # noqa diff --git a/eprihlaska/views.py b/eprihlaska/views.py index bda41a5..10ab66e 100644 --- a/eprihlaska/views.py +++ b/eprihlaska/views.py @@ -169,6 +169,14 @@ def study_programme(): session['study_programme'] = study_programme + set_ssp = set([x for x in study_programme if x != '_']) + list_ssp = list([x for x in study_programme if x != '_']) + + # Ensure there are no duplicates within the study_programme list + if len(set_ssp) != len(list_ssp): + flash(consts.SELECT_STUDY_PROGRAMME_ONCE, 'error') + return redirect(url_for('study_programme')) + # Select at least one study programme if study_programme[0] == '_': flash(consts.SELECT_STUDY_PROGRAMME, 'error')