Browse Source

Reforma přihlášky a editace osobních dat

pull/28/head
Jonas Havelka 1 year ago
parent
commit
c8023244bd
  1. 216
      personalni/forms.py
  2. 100
      personalni/templates/personalni/udaje/edit.html
  3. 135
      personalni/templates/personalni/udaje/prihlaska.html
  4. 75
      personalni/templates/personalni/udaje/udaje.html

216
personalni/forms.py

@ -25,106 +25,85 @@ class TelInput(forms.TextInput):
input_pattern="^[+]?[()/0-9. -]{9,}$"
class PrihlaskaForm(PasswordResetForm):
username = forms.CharField(label='Přihlašovací jméno',
max_length=256,
required=True,
help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři')
class UdajeForm(forms.Form):
username = None
err_logger = logging.getLogger('seminar.prihlaska.problem')
jmeno = forms.CharField(label='Jméno', max_length=256, required=True)
prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False)
prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True)
pohlavi_muz = forms.ChoiceField(label='Pohlaví',
choices = ((True,'muž'),(False,'žena')), required=True)
email = forms.EmailField(label='E-mail',max_length=256, required=True)
telefon = forms.CharField(widget=TelInput(),label='Telefon',max_length=256, required=False)
datum_narozeni = forms.DateField(widget=DateInput(),label='Datum narození', required=False)
pohlavi_muz = forms.ChoiceField(label='Pohlaví', choices=((True, 'muž'), (False, 'žena')), required=True)
email = forms.EmailField(label='E-mail', max_length=256, required=True)
telefon = forms.CharField(widget=TelInput(), label='Telefon', max_length=256, required=False)
datum_narozeni = forms.DateField(widget=DateInput(), label='Datum narození', required=False)
ulice = forms.CharField(label='Ulice a číslo popisné', max_length=256, required=False)
mesto = forms.CharField(label='Město', max_length=256, required=False)
psc = forms.CharField(label='PSČ', max_length=32, required=False)
stat = forms.ChoiceField(label='Stát',
choices = (('CZ', 'Česká Republika'),
('SK', 'Slovenská Republika'),
('other', 'Jiné')),
required=False)
stat = forms.ChoiceField(label='Stát', choices=(('CZ', 'Česká republika'), ('SK', 'Slovenská republika'), ('other', 'Jiné')), required=False)
stat_text = forms.CharField(label='Stát', max_length=256, required=False)
skola = forms.ModelChoiceField(label="Škola",
skola = forms.ModelChoiceField(
label="Škola",
queryset=Skola.objects.all(),
widget=autocomplete.ModelSelect2(
url='autocomplete_skola',
attrs = {'data-placeholder--id': '-1',
'data-placeholder--text' : '---',
'data-allow-clear': 'true'})
,required=False)
attrs={
'data-placeholder--id': '-1',
'data-placeholder--text': '---',
'data-allow-clear': 'true'
}
),
required=False,
)
skola_nazev = forms.CharField(label='Název školy', max_length=256, required=False)
skola_adresa = forms.CharField(label='Adresa školy', max_length=256, required=False)
# trida = forms.CharField(label='Třída',max_length=10, required=True)
rok_maturity = forms.IntegerField(
label='Rok maturity',
min_value=date.today().year,
label='Rok maturity',
min_value=date.today().year,
max_value=date.today().year+8,
required=True)
zasilat = forms.ChoiceField(label='Kam zasílat čísla (zasílání není zpoplatněno)',choices = Resitel.ZASILAT_CHOICES, required=True, initial=Resitel.ZASILAT_NIKAM)
zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False, initial=True)
jak_se_dozvedeli = forms.CharField(widget=forms.Textarea({"rows": 3, "cols": 20}), label='Jak ses o M&M dozvěděl(a)? (Nechceš-li odpovídat, napiš „nechci uvést“.)', required=True)
required=True,
)
gdpr = forms.BooleanField(label='Souhlasím se zpracováním osobních údajů', required=True)
spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False)
def clean_username(self):
err_logger = logging.getLogger('seminar.prihlaska.problem')
username = self.cleaned_data.get('username')
try:
User.objects.get(username=username)
msg = "Username {} exists".format(username)
err_logger.info(msg)
raise forms.ValidationError('Přihlašovací jméno je již použito')
zasilat = forms.ChoiceField(label='Kam zasílat (odměny, pozvánky, případně čísla nebo propagační materiály)', choices=[it for it in Resitel.ZASILAT_CHOICES if it[0] != Resitel.ZASILAT_NIKAM], required=True, initial=Resitel.ZASILAT_DOMU)
zasilat_cislo_papirove = forms.BooleanField(label='Chci dostávat čísla poštou (zasílání není zpoplatněno)', required=False, initial=False)
zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False, initial=True)
spam = forms.BooleanField(label='Souhlasím se zasíláním propagačních materiálů od MFF UK', required=False)
except ObjectDoesNotExist:
pass
return username
def clean_prezdivka_resitele(self):
prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele')
if prezdivka_resitele == '':
return prezdivka_resitele
if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).exclude(osoba__user__username=self.username).count() > 0:
raise forms.ValidationError('Přezdívka je již použita')
return prezdivka_resitele
def clean_email(self):
err_logger = logging.getLogger('seminar.prihlaska.problem')
email = self.cleaned_data.get('email')
try:
osoba = Osoba.objects.get(email=email)
osoba = Osoba.objects.exclude(user__username=self.username).get(email=email)
msg = "Email {} exists".format(email)
if osoba.user is not None:
err_logger.info(msg)
self.err_logger.info(msg)
raise forms.ValidationError('E-mail je již použit')
else:
msg += ', but currently has no User, so allowing registration.'
err_logger.info(msg)
self.err_logger.info(msg)
except ObjectDoesNotExist:
pass
return email
def clean_prezdivka_resitele(self):
prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele')
if prezdivka_resitele == '':
return prezdivka_resitele
if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).count() > 0:
raise forms.ValidationError('Přezdívka je již použita')
return prezdivka_resitele
def clean_zasilat(self):
zasilat = self.cleaned_data.get('zasilat')
ulice = self.cleaned_data.get('ulice')
if zasilat == Resitel.ZASILAT_DOMU and ulice == "":
raise forms.ValidationError('Nevyplněná adresa bydliště, nelze zasílat čísla domů.')
raise forms.ValidationError('Nevyplněná adresa bydliště, nelze zasílat domů.')
return zasilat
def clean(self):
super().clean()
err_logger = logging.getLogger('seminar.prihlaska.problem')
data = self.cleaned_data
if data.get('stat') != 'other' and data.get('stat_text') != '':
@ -140,106 +119,41 @@ class PrihlaskaForm(PasswordResetForm):
self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy'))
class ProfileEditForm(forms.Form):
username = forms.CharField(label='Přihlašovací jméno',
max_length=256,
required=False,
disabled=True)
jmeno = forms.CharField(label='Jméno', max_length=256, required=True)
prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False)
prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True)
pohlavi_muz = forms.ChoiceField(label='Pohlaví',
choices = ((True,'muž'),(False,'žena')), required=True)
email = forms.EmailField(label='E-mail',max_length=256, required=True)
telefon = forms.CharField(widget=TelInput(),label='Telefon',max_length=256, required=False)
datum_narozeni = forms.DateField(widget=DateInput(),label='Datum narození', required=False)
ulice = forms.CharField(label='Ulice', max_length=256, required=False)
mesto = forms.CharField(label='Město', max_length=256, required=False)
psc = forms.CharField(label='PSČ', max_length=32, required=False)
stat = forms.ChoiceField(label='Stát',
choices = (('CZ', 'Česká republika'),
('SK', 'Slovenská republika'),
('other', 'Jiné')),
required=False)
stat_text = forms.CharField(label='Stát', max_length=256, required=False)
skola = forms.ModelChoiceField(label="Škola",
queryset=Skola.objects.all(),
widget=autocomplete.ModelSelect2(
url='autocomplete_skola',
attrs = {'data-placeholder--id': '-1',
'data-placeholder--text' : '---',
'data-allow-clear': 'true'})
,required=False)
skola_nazev = forms.CharField(label='Název školy', max_length=256, required=False)
skola_adresa = forms.CharField(label='Adresa školy', max_length=256, required=False)
# trida = forms.CharField(label='Třída',max_length=10, required=True)
rok_maturity = forms.IntegerField(
label='Rok maturity',
min_value=date.today().year,
max_value=date.today().year+8,
required=True)
zasilat = forms.ChoiceField(label='Kam zasílat čísla',choices = Resitel.ZASILAT_CHOICES, required=True)
zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat email s upozorněním na vydání nového čísla', required=False)
spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False)
# def clean_username(self):
# err_logger = logging.getLogger('seminar.prihlaska.problem')
# username = self.cleaned_data.get('username')
# try:
# User.objects.get(username=username)
# msg = "Username {} exists".format(username)
# err_logger.info(msg)
# raise forms.ValidationError('Přihlašovací jméno je již použito')
#
# except ObjectDoesNotExist:
# pass
# return username
#
class PrihlaskaForm(PasswordResetForm, UdajeForm):
username = forms.CharField(
label='Přihlašovací jméno',
max_length=256,
required=True,
help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři',
)
def clean_prezdivka_resitele(self):
prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele')
if prezdivka_resitele == '':
return prezdivka_resitele
if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).exclude(osoba__user__username=self.username).count() > 0:
raise forms.ValidationError('Přezdívka je již použita')
return prezdivka_resitele
jak_se_dozvedeli = forms.CharField(widget=forms.Textarea({"rows": 3, "cols": 20}), label='Jak ses o M&M dozvěděl(a)? (Nechceš-li odpovídat, napiš „nechci uvést“.)', required=True)
def clean_email(self):
err_logger = logging.getLogger('seminar.prihlaska.problem')
email = self.cleaned_data.get('email')
gdpr = forms.BooleanField(label='Souhlasím se zpracováním osobních údajů', required=True)
def clean_username(self):
username = self.cleaned_data.get('username')
try:
Osoba.objects.exclude(user__username=self.username).get(email=email)
msg = "Email {} exists (in edit)".format(email)
err_logger.info(msg)
raise forms.ValidationError('Email je již použit')
User.objects.get(username=username)
msg = "Username {} exists".format(username)
self.err_logger.info(msg)
raise forms.ValidationError('Přihlašovací jméno je již použito')
except ObjectDoesNotExist:
pass
return email
#def clean(self):
# super().clean()
#
# err_logger = logging.getLogger('seminar.prihlaska.problem')
# data = self.cleaned_data
# if data.get('password') != data.get('password_check'):
# self.add_error('password_check',forms.ValidationError('Hesla se neshodují'))
# if data.get('stat') != '' and data.get('stat_text') != '':
# self.add_error('stat',forms.ValidationError('Nelze mít vybraný stát z menu a zároven zapsaný textem'))
# if data.get('skola') and (data.get('skola_nazev') or data.get('skola_adresa')):
# self.add_error('skola',forms.ValidationError('Pokud je škola v seznamu, nevypisujte ji ručně, pokud není, zrušte výběr ze seznamu (křížek vpravo)'))
# if not data.get('skola'):
# if data.get('skola_nazev')=='' and data.get('skola_adresa')=='':
# self.add_error('skola',forms.ValidationError('Je nutné vyplnit školu'))
# elif data.get('skola_nazev')=='':
# self.add_error('skola_nazev',forms.ValidationError('Je nutné vyplnit název školy'))
# elif data.get('skola_adresa')=='':
# self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy'))
return username
class ProfileEditForm(UdajeForm):
err_logger = logging.getLogger('seminar.edit.problem')
username = forms.CharField(
label='Přihlašovací jméno',
max_length=256,
required=False,
disabled=True,
)
class PoMaturiteProfileEditForm(ProfileEditForm):

100
personalni/templates/personalni/udaje/edit.html

@ -1,109 +1,19 @@
{% extends "base.html" %}
{% load static %}
{% block script %}
<script src="{% static 'personalni/prihlaska.js' %}"></script>
{% endblock %}
<!--
# pro přidání políčka do formuláře je potřeba
# - mít v modelu tu položku, kterou chci upravovat
# - přidat do views (prihlaskaView, resitelEditView)
# - přidat do forms
# - includovat do html
-->
{% block content %}
<h1>
{% block nadpis1a %}
Změna osobních údajů
{% endblock %}
</h1>
<form action="{% url 'seminar_resitel_edit' %}" method="post">
{% csrf_token %}
{{form.non_field_errors}}
<hr>
<p><a href="{% url 'reset_password' %}">Změnit heslo</a></p>
<h4>
Přihlašovací údaje
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.username %}
</table>
<p><a href="{% url 'reset_password' %}">
Změnit heslo
</a></p>
<hr>
<h4>
Osobní údaje
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%}
{% include "personalni/udaje/prihlaska_field.html" with field=form.email %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.telefon %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.datum_narozeni %}
</table>
<hr>
<h4>
Bydliště
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.ulice %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.mesto %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.psc %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.stat %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.stat_text id="id_li_stat_text"%}
</table>
<hr>
<h4>
Škola
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola %}
<tr><td colspan="2" ><button id="id_skola_text_button" type="button">Škola není v seznamu</button></td></tr>
<tr><td id="id_li_skola_vypln" colspan="2">Vyplň prosím celý název a adresu školy.</td></tr>
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola_nazev id="id_li_skola_nazev" %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola_adresa id="id_li_skola_adresa" %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.rok_maturity %}
</table>
<hr>
<h4>
Pošta
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_emailem %}
</table>
<hr>
<h4>
Zasílání propagačních materiálů
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.spam %}
</table>
<hr>
<input type="submit" value="Změnit">
<form action="{% url 'seminar_resitel_edit' %}" method="post">
{% include "personalni/udaje/udaje.html"%}
<input type="submit" value="Změnit">
</form>
<script>
$("#id_stat").on("change",addrCountryChanged);
$("#id_skola_text_button").on("click",schoolNotInList);
</script>
{% endblock %}

135
personalni/templates/personalni/udaje/prihlaska.html

@ -5,16 +5,6 @@
<script src="{% static 'personalni/prihlaska.js' %}"></script>
{% endblock %}
<!--
# pro přidání políčka do formuláře je potřeba
# - mít v modelu tu položku, kterou chci upravovat
# - přidat do views (prihlaskaView, resitelEditView)
# - přidat do forms
# - includovat do html
-->
{% block content %}
<h1>
{% block nadpis1a %}
@ -25,109 +15,26 @@
<p><b>Tučně</b> popsaná pole jsou povinná.</p>
<form action="{% url 'seminar_prihlaska' %}" method="post">
{% csrf_token %}
{{form.non_field_errors}}
<hr>
<h4>
Přihlašovací údaje
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.username %}
{# {% include "personalni/udaje/prihlaska_field.html" with field=form.password %}#}
{# {% include "personalni/udaje/prihlaska_field.html" with field=form.password_check %}#}
</table>
<hr>
<h4>
Osobní údaje
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%}
{% include "personalni/udaje/prihlaska_field.html" with field=form.email %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.telefon %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.datum_narozeni %}
</table>
<hr>
<h4>
Bydliště
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.ulice %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.mesto %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.psc %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.stat %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.stat_text id="id_li_stat_text"%}
</table>
<hr>
<h4>
Škola
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola %}
<tr><td colspan="2" ><button id="id_skola_text_button" type="button">Škola není v seznamu</button></td><td>(Prosíme, zkuste ji najít, téměř jistě ji v seznamu máme. Školy se dobře hledají podle příjmení lidí v jejich názvu, podle ulice, případně název ulice <i>mezera</i> město, atd. Nezadávejte slova, která se často zkracují &ndash; gymnázium, střední odborná škola, křestní jména…)</td></tr>
<tr><td id="id_li_skola_vypln" colspan="2">Vyplň prosím celý název a adresu školy.</td></tr>
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola_nazev id="id_li_skola_nazev" %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola_adresa id="id_li_skola_adresa" %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.rok_maturity %}
</table>
<hr>
<h4>
Pošta
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_emailem %}
</table>
<hr>
<h4>
GDPR
</h4>
{% include "personalni/udaje/gdpr.html" %}
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.gdpr %}
</table>
<hr>
<h4>
Zasílání propagačních materiálů
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.spam %}
</table>
<hr>
<h4>
Ostatní
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.jak_se_dozvedeli %}
</table>
<input type="submit" value="Odeslat">
{% include "personalni/udaje/udaje.html" %}
<h4>
GDPR
</h4>
{% include "personalni/udaje/gdpr.html" %}
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.gdpr %}
</table>
<hr>
<h4>
Ostatní
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.jak_se_dozvedeli %}
</table>
<hr>
<input type="submit" value="Odeslat">
</form>
<script>
$("#id_stat").on("change",addrCountryChanged);
$("#id_skola_text_button").on("click",schoolNotInList);
</script>
{% endblock %}

75
personalni/templates/personalni/udaje/udaje.html

@ -0,0 +1,75 @@
{% load static %}
{% block script %}
<script src="{% static 'personalni/prihlaska.js' %}"></script>
{% endblock %}
{% csrf_token %}
{{form.non_field_errors}}
<hr>
<h4>
Přihlašovací údaje
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.username %}
</table>
<hr>
<h4>
Osobní údaje
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%}
{% include "personalni/udaje/prihlaska_field.html" with field=form.email %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.telefon %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.datum_narozeni %}
</table>
<hr>
<h4>
Škola
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola %}
<tr><td colspan="2" ><button id="id_skola_text_button" type="button">Škola není v seznamu</button></td><td>(Prosíme, zkuste ji najít, téměř jistě ji v seznamu máme. Školy se dobře hledají podle příjmení lidí v jejich názvu, podle ulice, případně název ulice <i>mezera</i> město, atd. Nezadávejte slova, která se často zkracují &ndash; gymnázium, střední odborná škola, křestní jména…)</td></tr>
<tr><td id="id_li_skola_vypln" colspan="2">Vyplň prosím celý název a adresu školy.</td></tr>
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola_nazev id="id_li_skola_nazev" %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.skola_adresa id="id_li_skola_adresa" %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.rok_maturity %}
</table>
<hr>
<h4>
Pošta
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_emailem %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_papirove %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.spam %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat %}
</table>
<hr>
<h4>
Bydliště (povinné při volbě „domů“)
</h4>
<table class="form">
{% include "personalni/udaje/prihlaska_field.html" with field=form.ulice %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.mesto %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.psc %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.stat %}
{% include "personalni/udaje/prihlaska_field.html" with field=form.stat_text id="id_li_stat_text"%}
</table>
<hr>
<script>
$("#id_stat").on("change",addrCountryChanged);
$("#id_skola_text_button").on("click",schoolNotInList);
</script>
Loading…
Cancel
Save