From 37437b9674b744f37da392b7a426596330ff1cde Mon Sep 17 00:00:00 2001 From: MaM Web user <mam-web@gimli.ms.mff.cuni.cz> Date: Mon, 20 Nov 2023 21:46:42 +0100 Subject: [PATCH 001/225] =?UTF-8?q?Jid=C3=A1=C5=A1:=20oprava=20pad=C3=A1n?= =?UTF-8?q?=C3=AD=20sphinxu=20(dokumentace)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_prod.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index ebe827e4..060ba870 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -20,7 +20,9 @@ INSTALLED_APPS += ( ) # SECURITY WARNING: keep the secret key used in production secret! -assert not SECRET_KEY.startswith('12345') +# `'DOCUTILSCONFIG' in os.environ` kvůli sphinxu +# FIXME zjistit, zda je bezpečné a zda se to nedá udělat lépe +assert 'DOCUTILSCONFIG' in os.environ or not SECRET_KEY.startswith('12345') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False From 7a4213a61e8222a9a7ff2541177b7cc0d3a71b26 Mon Sep 17 00:00:00 2001 From: MaM Web user <mam-web@gimli.ms.mff.cuni.cz> Date: Mon, 20 Nov 2023 22:06:42 +0100 Subject: [PATCH 002/225] =?UTF-8?q?Jid=C3=A1=C5=A1:=20django=20chce=20migr?= =?UTF-8?q?aci=20related=5Fname=20=20->=20,=20tak=20ji=20dostane?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...django_chce_migraci_tak_dostane_migraci.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py diff --git a/seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py b/seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py new file mode 100644 index 00000000..fccc850c --- /dev/null +++ b/seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py @@ -0,0 +1,40 @@ +# Generated by Django 4.2.7 on 2023-11-20 21:02 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + ('seminar', '0113_resitel_zasilat_cislo_papirove'), + ] + + operations = [ + migrations.AlterField( + model_name='problem', + name='autor', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='autor_problemu_%(class)s', to='seminar.organizator', verbose_name='autor problému'), + ), + migrations.AlterField( + model_name='problem', + name='garant', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='garant_problemu_%(class)s', to='seminar.organizator', verbose_name='garant zadaného problému'), + ), + migrations.AlterField( + model_name='problem', + name='opravovatele', + field=models.ManyToManyField(blank=True, related_name='opravovatele_%(class)s', to='seminar.organizator', verbose_name='opravovatelé'), + ), + migrations.AlterField( + model_name='problem', + name='polymorphic_ctype', + field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype'), + ), + migrations.AlterField( + model_name='treenode', + name='polymorphic_ctype', + field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype'), + ), + ] From c55fbb9dca53c392a9808edceb21a0c6079f1679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 22 Nov 2023 13:42:15 +0100 Subject: [PATCH 003/225] =?UTF-8?q?WTF=20(fix=20admin=20soust=C5=99ed?= =?UTF-8?q?=C4=9Bn=C3=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soustredeni/admin.py b/soustredeni/admin.py index 091f9c59..c6f048db 100644 --- a/soustredeni/admin.py +++ b/soustredeni/admin.py @@ -25,7 +25,7 @@ class SoustredeniOrganizatoriInline(admin.TabularInline): extra = 1 fields = ['organizator','poznamka'] autocomplete_fields = ['organizator'] - ordering = ['organizator__osoba__jmeno','organizator__prijmeni'] + ordering = ['organizator__osoba__jmeno','organizator__osoba__prijmeni'] formfield_overrides = { models.TextField: {'widget': widgets.TextInput} } From 0fbfb1e3cd9e14dd715b5d73409bdfe62a7ab382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 4 Dec 2023 10:51:28 +0100 Subject: [PATCH 004/225] =?UTF-8?q?Fix=20=E2=80=9Eget=5Fapp=5Flist()=20tak?= =?UTF-8?q?es=202=20positional=20arguments=20but=203=20were=20given?= =?UTF-8?q?=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mamweb/admin.py b/mamweb/admin.py index b6924468..5d0351df 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -35,13 +35,13 @@ locale.setlocale(locale.LC_COLLATE, 'cs_CZ.UTF-8') # https://books.agiliq.com/projects/django-admin-cookbook/en/latest/set_ordering.html # FIXME zpraseno pomocí toho, že Python umí bez problému přepisovat funkce -def get_app_list(self, request): +def get_app_list(self, request, app_label=None): """ Return a sorted list of all the installed apps that have been registered in this site. """ - app_dict = self._build_app_dict(request) + app_dict = self._build_app_dict(request, label=app_label) # Sort the apps alphabetically. app_list = sorted(app_dict.values(), key=lambda x: locale.strxfrm('!') if (x['name'] == "Seminar") else locale.strxfrm(x['name'].lower())) From ffa0c682f425427a275556c11386a3c500580780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 20:16:04 +0100 Subject: [PATCH 005/225] =?UTF-8?q?Pokus=20o=20=C5=99e=C5=A1en=C3=AD=20pro?= =?UTF-8?q?bl=C3=A9m=C5=AF=20s=20v=C3=BDsledkovkou=20posledn=C3=ADho=20?= =?UTF-8?q?=C4=8D=C3=ADsla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo.html | 6 ++++-- seminar/templates/seminar/archiv/rocnik.html | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/seminar/templates/seminar/archiv/cislo.html b/seminar/templates/seminar/archiv/cislo.html index b8edce90..fa34e965 100644 --- a/seminar/templates/seminar/archiv/cislo.html +++ b/seminar/templates/seminar/archiv/cislo.html @@ -38,9 +38,11 @@ <h2> Orgovské odkazy </h2> <ul> <li><a href="obalky.pdf">Obálky (PDF)</a></li> - <li><a href="tituly.tex" download>Tituly (TeX)</a></li> - <li><a href="vysledkovka.tex" download>Výsledkovka (TeX)</a></li> + <li><a href="tituly.tex" download>Tituly (TeX, 2. deadline předchozího čísla a 1.deadline tohoto)</a></li> + <li><a href="vysledkovka.tex" download>Výsledkovka (TeX, 2. deadline předchozího čísla a 1.deadline tohoto)</a></li> <li><a href="odmeny/{{prevcislo.rocnik.rocnik}}.{{prevcislo.poradi}}/">Odměny</a></li> + <li><a href="{% url "seminar_rocnik_titul" rocnik=cislo.rocnik.rocnik %}" download="posledni_tituly.tex">Tituly do závěrečného čísla (TeX, 2. deadline předchozího čísla a oba tohoto)</a></li> + <li><a href="{% url "seminar_rocnik_posledni_vysledkovka" rocnik=cislo.rocnik.rocnik %}" download>Výsledkovka závěrečného čísla ročníku (TeX, 2. deadline předchozího čísla a oba tohoto)</a></li> </ul> </div> {% endif %} diff --git a/seminar/templates/seminar/archiv/rocnik.html b/seminar/templates/seminar/archiv/rocnik.html index 66336086..fd2a99b6 100644 --- a/seminar/templates/seminar/archiv/rocnik.html +++ b/seminar/templates/seminar/archiv/rocnik.html @@ -120,8 +120,7 @@ {% if user.je_org %} <div class='mam-org-only'> <p><a href='vysledkovka.tex' download>Výsledkovka ročníku (LaTeX, včetně neveřejných)</a></p> - <p><a href="tituly.tex" download>Tituly (TeX, do konce ročníku = pro poslední číslo)</a></p> - <p><a href="posledni_vysledkovka.tex" download>Výsledkovka posledního čísla</a></p> + <p><a href="tituly.tex" download>Tituly (TeX, včetně neveřejných, všechny, nevhodné do mamtexu)</a></p> {# FIXME: Sice to sem asi nepatří sémanticky, ale bylo to nejjednodušší… #} <p><a href='{% url 'seminar_rocnik_resitele_csv' rocnik=rocnik.rocnik %}' download>CSV export řešitelů</a></p> <h2>Výsledková listina včetně neveřejných bodů</h2> From df2e4f086a9a0e12dfb77cb0a809cbf07a153984 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 20:20:24 +0100 Subject: [PATCH 006/225] Unmanage seminar.Nastaveni MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sry, nebudu to psát česky :-) --- .../migrations/0115_alter_nastaveni_options.py | 17 +++++++++++++++++ seminar/models/tvorba.py | 1 + 2 files changed, 18 insertions(+) create mode 100644 seminar/migrations/0115_alter_nastaveni_options.py diff --git a/seminar/migrations/0115_alter_nastaveni_options.py b/seminar/migrations/0115_alter_nastaveni_options.py new file mode 100644 index 00000000..9153bc4d --- /dev/null +++ b/seminar/migrations/0115_alter_nastaveni_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:14 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci'), + ] + + operations = [ + migrations.AlterModelOptions( + name='nastaveni', + options={'managed': False, 'verbose_name': 'Nastavení semináře'}, + ), + ] diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 1c1a3285..bc5636b8 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -730,6 +730,7 @@ class Nastaveni(SingletonModel): class Meta: db_table = 'seminar_nastaveni' verbose_name = 'Nastavení semináře' + managed = False # aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', # null=False, on_delete=models.PROTECT) From f19726127154d1b946f08d65e4085e2f87178424 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 20:20:48 +0100 Subject: [PATCH 007/225] =?UTF-8?q?Opraven=C3=AD=20related=5Fname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tohle by mělo být nezávislé, nemůžeme vyrobit foreign key na něco, co už existuje… ERRORS: seminar.Nastaveni.aktualni_cislo: (fields.E304) Reverse accessor for 'seminar.Nastaveni.aktualni_cislo' clashes with reverse accessor for 'various.Nastaveni.aktualni_cislo'. HINT: Add or change a related_name argument to the definition for 'seminar.Nastaveni.aktualni_cislo' or 'various.Nastaveni.aktualni_cislo'. various.Nastaveni.aktualni_cislo: (fields.E304) Reverse accessor for 'various.Nastaveni.aktualni_cislo' clashes with reverse accessor for 'seminar.Nastaveni.aktualni_cislo'. HINT: Add or change a related_name argument to the definition for 'various.Nastaveni.aktualni_cislo' or 'seminar.Nastaveni.aktualni_cislo'. --- seminar/models/tvorba.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index bc5636b8..8049d8cf 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -736,7 +736,7 @@ class Nastaveni(SingletonModel): # null=False, on_delete=models.PROTECT) aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', - null=False, on_delete=models.PROTECT) + null=False, on_delete=models.PROTECT, related_name='aktualni_cislo_old') cena_sous = models.IntegerField(null=False, verbose_name="Účastnický poplatek za soustředění", From 6a5390cdf6463ec2908fa8fa4f965b4f82698d93 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 20:21:27 +0100 Subject: [PATCH 008/225] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20Nastaveni=20do?= =?UTF-8?q?=20various?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 26 ++++++++++++++++++++ various/models.py | 38 +++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 various/migrations/0001_initial.py diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py new file mode 100644 index 00000000..5d1232cf --- /dev/null +++ b/various/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Nastaveni', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cena_sous', models.IntegerField(default=1000, verbose_name='Účastnický poplatek za soustředění')), + ], + options={ + 'verbose_name': 'Nastavení semináře', + 'db_table': 'seminar_nastaveni', + 'managed': False, + }, + ), + ] diff --git a/various/models.py b/various/models.py index 71a83623..28a33057 100644 --- a/various/models.py +++ b/various/models.py @@ -1,3 +1,39 @@ from django.db import models -# Create your models here. +from reversion import revisions as reversion +from solo.models import SingletonModel + +from seminar.models import Cislo + +from django.urls import reverse + +@reversion.register(ignore_duplicates=True) +class Nastaveni(SingletonModel): + + class Meta: + db_table = 'seminar_nastaveni' + verbose_name = 'Nastavení semináře' + managed = False + +# aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', +# null=False, on_delete=models.PROTECT) + + aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', + null=False, on_delete=models.PROTECT) + + cena_sous = models.IntegerField(null=False, + verbose_name="Účastnický poplatek za soustředění", + default=1000) + + @property + def aktualni_rocnik(self): + return self.aktualni_cislo.rocnik + + def __str__(self): + return 'Nastavení semináře' + + def admin_url(self): + return reverse('admin:seminar_nastaveni_change', args=(self.id, )) + + def verejne(self): + return False From 0bbb860b163809ba1d3e745079cb530ec092d8df Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 20:25:33 +0100 Subject: [PATCH 009/225] =?UTF-8?q?Zru=C5=A1en=C3=AD=20seminar.Nastaveni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/migrations/0116_delete_nastaveni.py | 16 +++++++++++ seminar/models/__init__.py | 2 ++ seminar/models/tvorba.py | 32 --------------------- 3 files changed, 18 insertions(+), 32 deletions(-) create mode 100644 seminar/migrations/0116_delete_nastaveni.py diff --git a/seminar/migrations/0116_delete_nastaveni.py b/seminar/migrations/0116_delete_nastaveni.py new file mode 100644 index 00000000..b820ea16 --- /dev/null +++ b/seminar/migrations/0116_delete_nastaveni.py @@ -0,0 +1,16 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0115_alter_nastaveni_options'), + ] + + operations = [ + migrations.DeleteModel( + name='Nastaveni', + ), + ] diff --git a/seminar/models/__init__.py b/seminar/models/__init__.py index 34712ee4..6df1478f 100644 --- a/seminar/models/__init__.py +++ b/seminar/models/__init__.py @@ -6,3 +6,5 @@ from .soustredeni import * from .pomocne import * from .treenode import * from .novinky import * + +from various.models import Nastaveni diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 8049d8cf..41def9c4 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -722,35 +722,3 @@ class Pohadka(SeminarModelBase): except ObjectDoesNotExist: # Neexistující *Node nemá smysl aktualizovat. pass - - -@reversion.register(ignore_duplicates=True) -class Nastaveni(SingletonModel): - - class Meta: - db_table = 'seminar_nastaveni' - verbose_name = 'Nastavení semináře' - managed = False - -# aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', -# null=False, on_delete=models.PROTECT) - - aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', - null=False, on_delete=models.PROTECT, related_name='aktualni_cislo_old') - - cena_sous = models.IntegerField(null=False, - verbose_name="Účastnický poplatek za soustředění", - default=1000) - - @property - def aktualni_rocnik(self): - return self.aktualni_cislo.rocnik - - def __str__(self): - return 'Nastavení semináře' - - def admin_url(self): - return reverse('admin:seminar_nastaveni_change', args=(self.id, )) - - def verejne(self): - return False From f7382fb9464cf116ae01d306cf5df9664a6a962e Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 20:28:10 +0100 Subject: [PATCH 010/225] =?UTF-8?q?Zapomenut=C3=A1=20z=C3=A1vislost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ještě mi chybí jedna :-/ --- seminar/migrations/0116_delete_nastaveni.py | 1 + 1 file changed, 1 insertion(+) diff --git a/seminar/migrations/0116_delete_nastaveni.py b/seminar/migrations/0116_delete_nastaveni.py index b820ea16..21d90b63 100644 --- a/seminar/migrations/0116_delete_nastaveni.py +++ b/seminar/migrations/0116_delete_nastaveni.py @@ -7,6 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('seminar', '0115_alter_nastaveni_options'), + ('various', '0001_initial'), ] operations = [ From 158c0e4d90711c19ee83e976e5a70ecc98a49ed5 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 20:28:58 +0100 Subject: [PATCH 011/225] =?UTF-8?q?Druh=C3=A1=20zapomenut=C3=A1=20z=C3=A1v?= =?UTF-8?q?islost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 1 + 1 file changed, 1 insertion(+) diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py index 5d1232cf..08bc1ea0 100644 --- a/various/migrations/0001_initial.py +++ b/various/migrations/0001_initial.py @@ -8,6 +8,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ('seminar', '0115_alter_nastaveni_options'), ] operations = [ From ca0bbb124736168855b94eacc951e10cc6a78253 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 20:32:22 +0100 Subject: [PATCH 012/225] Manage --- .../migrations/0002_alter_nastaveni_options.py | 18 ++++++++++++++++++ various/models.py | 1 - 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 various/migrations/0002_alter_nastaveni_options.py diff --git a/various/migrations/0002_alter_nastaveni_options.py b/various/migrations/0002_alter_nastaveni_options.py new file mode 100644 index 00000000..6ef9c285 --- /dev/null +++ b/various/migrations/0002_alter_nastaveni_options.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:30 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('various', '0001_initial'), + ('seminar', '0116_delete_nastaveni'), + ] + + operations = [ + migrations.AlterModelOptions( + name='nastaveni', + options={'verbose_name': 'Nastavení semináře'}, + ), + ] diff --git a/various/models.py b/various/models.py index 28a33057..6fc48e44 100644 --- a/various/models.py +++ b/various/models.py @@ -13,7 +13,6 @@ class Nastaveni(SingletonModel): class Meta: db_table = 'seminar_nastaveni' verbose_name = 'Nastavení semináře' - managed = False # aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', # null=False, on_delete=models.PROTECT) From 6cb41a1263a24a0a268d56033952a8fff88d0001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:07:18 +0100 Subject: [PATCH 013/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django=20comment?= =?UTF-8?q?s,=20data=20jsou=20v=20/akce/mam/www/old=5Fdata/django=5Fcommen?= =?UTF-8?q?ts.json.gz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 1 - mamweb/static/css/mamweb.css | 9 --------- mamweb/urls.py | 4 ---- requirements.txt | 3 --- seminar/templates/seminar/archiv/problem.html | 6 ------ treenode/templates/treenode/orphanage.html | 2 -- 6 files changed, 25 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index d6ed2852..1c7bafab 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -121,7 +121,6 @@ INSTALLED_APPS = ( 'dal_select2', 'crispy_forms', - 'django_comments', 'django.contrib.flatpages', 'django.contrib.humanize', diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 84e4c79b..e6839727 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -199,15 +199,6 @@ h1 { margin-top: 0px; } - - -/* Comments */ - -#id_comment { - width: 100%; - height: 6em; -} - /* Headline & Header */ #title { /*dělá blbosti šířka, je to kvůli fixed pozici, zatím natvrdo, vyřešit*/ diff --git a/mamweb/urls.py b/mamweb/urls.py index 9ef2750a..cdd7df09 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -13,7 +13,6 @@ Soubor sloužící jako základní „router“, tj. zde se includují veškeré - :mod:`api.urls` - :mod:`treenode.urls` - :mod:`aesop.urls` -- ``comments_dj/`` :mod:`django_comments.urls` """ from django.urls import path, include from django.contrib.staticfiles.urls import staticfiles_urlpatterns @@ -62,9 +61,6 @@ urlpatterns = [ # Aesop (ma vlastni podadresare) path('', include('aesop.urls')), - # Comments (interni i verejne) - path('comments_dj/', include('django_comments.urls')), - # REST API # path('api/', include(router.urls)), diff --git a/requirements.txt b/requirements.txt index 53c528ab..2e5d9761 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,9 +35,6 @@ django-rest-framework django-webpack-loader django-rest-polymorphic -# Comments -django-contrib-comments - # debug tools/extensions django-debug-toolbar diff --git a/seminar/templates/seminar/archiv/problem.html b/seminar/templates/seminar/archiv/problem.html index 1aa94219..cae8f56c 100644 --- a/seminar/templates/seminar/archiv/problem.html +++ b/seminar/templates/seminar/archiv/problem.html @@ -1,7 +1,5 @@ {% extends "base.html" %} -{% load comments %} - {% block content %} <div {% if not problem.verejne and user.je_org %}class="mam-org-only"{% endif %}> {% block problem %} @@ -13,10 +11,6 @@ <h2>Text - org</h2> {{ problem.text_org |safe }} - <h2>Diskuse - org</h2> - {% render_comment_list for object %} - {% render_comment_form for object %} - </div> {% endif %} diff --git a/treenode/templates/treenode/orphanage.html b/treenode/templates/treenode/orphanage.html index 6408749e..31a20e6d 100644 --- a/treenode/templates/treenode/orphanage.html +++ b/treenode/templates/treenode/orphanage.html @@ -12,8 +12,6 @@ dfsdfs <link rel="stylesheet" type="text/css" href="{% static 'css/mamweb-dev.css' %}" /> {% endblock custom_css %} -{% load comments %} - {% block content %} <ul> {% for obj in object_list %} From 3fd0c7f917586dad9c0019636a16235cbd37ae54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:17:12 +0100 Subject: [PATCH 014/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20six=20(knihovna?= =?UTF-8?q?=20pro=20p=C5=99echod=20mezi=20python2=20a=20python3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2e5d9761..ca6b0a6a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,6 @@ ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 pytz -six pexpect traitlets Unidecode From 0204bd2444736979ff7159c8a9921e0221128c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:25:36 +0100 Subject: [PATCH 015/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20pytz=20(pou?= =?UTF-8?q?=C5=BEit=20pouze=20v=20testdatech,=20ale=20tam=20naopak=20budem?= =?UTF-8?q?e=20l=C3=A9pe=20simulovat=20aktu=C3=A1ln=C3=AD=20stav,=20kdy?= =?UTF-8?q?=C5=BE=20tam=20nacpeme=20UTC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - seminar/templatetags/utils.py | 1 - seminar/testutils.py | 5 ++--- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index ca6b0a6a..df4ea6ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,6 @@ html5lib ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -pytz pexpect traitlets Unidecode diff --git a/seminar/templatetags/utils.py b/seminar/templatetags/utils.py index 4ba33a0e..ca400050 100644 --- a/seminar/templatetags/utils.py +++ b/seminar/templatetags/utils.py @@ -1,7 +1,6 @@ from django import template from django.utils.safestring import mark_safe from datetime import datetime, timedelta -from pytz import timezone from mamweb.settings import TIME_ZONE import logging register = template.Library() diff --git a/seminar/testutils.py b/seminar/testutils.py index 7076d5f0..c3d64f56 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -4,7 +4,6 @@ import datetime from django.contrib.auth.models import Permission from django.contrib.auth.models import Group -from pytz import timezone import random import lorem import django.contrib.auth @@ -177,13 +176,13 @@ def gen_organizatori(rnd, osoby, last_rocnik): year=1993 + pusobnost, month=rnd.randint(1, 12), day=rnd.randint(1, 28), - tzinfo=timezone('CET'), + tzinfo=datetime.timezone.utc, ) do = datetime.datetime( year=od.year + rnd.randint(1, 6), month=rnd.randint(1, 12), day=rnd.randint(1, 28), - tzinfo=timezone('CET'), + tzinfo=datetime.timezone.utc, ) #aktualni organizatori jeste nemaji vyplnene organizuje_do From b5de60d681b92cfdd6b95278d687b6780359a3bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:26:56 +0100 Subject: [PATCH 016/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20html5lib=20(pro?= =?UTF-8?q?=20parsov=C3=A1n=C3=AD=20html=20v=20Pythonu,=20nepou=C5=BE?= =?UTF-8?q?=C3=ADvan=C3=A1,=20nav=C3=ADc=20u=C5=BE=203=20roky=20neudr?= =?UTF-8?q?=C5=BEovan=C3=A1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index df4ea6ce..2cff57b1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,6 @@ # basic libs psycopg2 -html5lib ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 From 3bfdde10e8b2fa885ccfde1c2ec36a39699d9e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:30:09 +0100 Subject: [PATCH 017/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20pexpect=20(kniho?= =?UTF-8?q?vna=20pro=20spawnov=C3=A1n=C3=AD=20podproces=C5=AF=20z=20python?= =?UTF-8?q?u,=20nepou=C5=BE=C3=ADvan=C3=A1=3F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2cff57b1..97f95e53 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ psycopg2 ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -pexpect traitlets Unidecode From 37586d7433969d4a06b8818338265463dd8d777e Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 11 Dec 2023 21:31:54 +0100 Subject: [PATCH 018/225] =?UTF-8?q?Opraven=C3=AD=20pr=C3=A1v?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO: je na těch ContentTypech navěšené ještě něco dalšího? Pro nastavení asi ne, ale co ostatní aplikace? --- various/migrations/0003_fix_permissions.py | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 various/migrations/0003_fix_permissions.py diff --git a/various/migrations/0003_fix_permissions.py b/various/migrations/0003_fix_permissions.py new file mode 100644 index 00000000..2364f160 --- /dev/null +++ b/various/migrations/0003_fix_permissions.py @@ -0,0 +1,41 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:40 + +from django.db import migrations + +def oprav_prava_k_nastaveni(apps, schema_editor): + # Tohle je trošku hnus, nešlo by to snáz? + ContentType = apps.get_model('contenttypes', 'ContentType') + Permission = apps.get_model('auth', 'Permission') + Group = apps.get_model('auth', 'Group') + old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') + new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') + old_perms = Permission.objects.filter(content_type=old_ct) + new_perms = Permission.objects.filter(content_type=new_ct) + for g in Group.objects.filter(permissions__in=old_perms): + old_codenames = Permission.objects.filter(group__in=[g], content_type=old_ct).values('codename') + g.permissions.add(*new_perms.filter(codename__in=old_codenames)) + g.permissions.remove(*old_perms) + +def obnov_prava_k_nastaveni(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + Permission = apps.get_model('auth', 'Permission') + Group = apps.get_model('auth', 'Group') + old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') + new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') + old_perms = Permission.objects.filter(content_type=old_ct) + new_perms = Permission.objects.filter(content_type=new_ct) + for g in Group.objects.filter(permissions__in=old_perms): + new_codenames = Permission.objects.filter(group__in=[g], content_type=new_ct).values('codename') + g.permissions.add(*old_perms.filter(codename__in=new_codenames)) + g.permissions.remove(*new_perms) + + +class Migration(migrations.Migration): + + dependencies = [ + ('various', '0002_alter_nastaveni_options'), + ] + + operations = [ + migrations.RunPython(oprav_prava_k_nastaveni, obnov_prava_k_nastaveni), + ] From 191177aea09a774d683a3117ad4c6590184de8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:33:07 +0100 Subject: [PATCH 019/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20traitlets=20(kon?= =?UTF-8?q?trola=20typov=C3=A1n=C3=AD,=20ale=20pokud=20spr=C3=A1vn=C4=9B?= =?UTF-8?q?=20ch=C3=A1pu,=20tak=20n=C4=9Bjak=C3=A9ho=20sv=C3=A9ho)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 97f95e53..1026bbf2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ psycopg2 ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -traitlets Unidecode # Django and modules From 0f3874beb57829f37f518c822bffadc67e7d4c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:49:14 +0100 Subject: [PATCH 020/225] =?UTF-8?q?N=C4=9Bjak=C3=A9=20koment=C3=A1=C5=99e?= =?UTF-8?q?=20k=20requirements.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 1026bbf2..ca8a8e72 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ -c constraints.txt # basic libs -psycopg2 -ipython +psycopg2 # PostgreSQL adaptér +ipython # Interaktivní shell +Unidecode # Přepisuje unicode do ASCII (např. soubory nebo e-maily) Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -Unidecode # Django and modules From 1802e909523a6397bd89d598050db47610b33aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:51:20 +0100 Subject: [PATCH 021/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django-mptt=20(k?= =?UTF-8?q?nihovna=20pro=20stromy=20v=20Djangu,=20nap=C5=99.=20v=20adminu,?= =?UTF-8?q?=20na=20prvn=C3=AD=20pohled=20nepou=C5=BE=C3=ADvan=C3=A1,=20nav?= =?UTF-8?q?=C3=ADc=20unmaintained)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ca8a8e72..d91220cc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,6 @@ pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 Django<5.0 #django-bootstrap-sass -django-mptt django-reversion django-sekizai django-countries From 7a28649436c7deeef474e3cccd9df45e5b735c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 21:59:13 +0100 Subject: [PATCH 022/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django-flat-them?= =?UTF-8?q?e=20(d=C3=A1vno,=20d=C3=A1vno,=20p=C5=99ed=C3=A1vno=20(Django?= =?UTF-8?q?=201.9)=20includovan=C3=A9=20do=20Djanga)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d91220cc..bf0ed683 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,7 +17,6 @@ django-countries django-solo django-ckeditor django-cleanup # Uklízí media/ od smazaných „databázových“ souborů -django-flat-theme django-taggit django-autocomplete-light>=3.9.0 django-crispy-forms From 187ca0ec93f5147efeb32216a554eddf9bee545e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 22:02:22 +0100 Subject: [PATCH 023/225] =?UTF-8?q?Dal=C5=A1=C3=AD=20koment=C3=A1=C5=99e?= =?UTF-8?q?=20v=20requirements.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index bf0ed683..ac63f0ef 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,16 +11,16 @@ pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 Django<5.0 #django-bootstrap-sass -django-reversion -django-sekizai -django-countries -django-solo -django-ckeditor +django-reversion # Version control na datech v databázi +django-sekizai # Vylepšení bloků v templatech +django-countries # Políčko ve formu / field v modelu ohledně států +django-solo # Singleton model (speciálně Nastavení) +django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) django-cleanup # Uklízí media/ od smazaných „databázových“ souborů django-taggit django-autocomplete-light>=3.9.0 django-crispy-forms -django-imagekit +django-imagekit # Všechny možné obrázky v Djangu django-polymorphic django-sitetree django_reverse_admin From ea5ee85e7a789c0b2ad7e482e06c76c3508ac172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 22:03:42 +0100 Subject: [PATCH 024/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django-crispy-fo?= =?UTF-8?q?rms=20(n=C4=9Bjak=C3=A9=20fancy=20formy,=20ale=20vypad=C3=A1=20?= =?UTF-8?q?nepou=C5=BE=C3=ADvan=C4=9B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 2 -- requirements.txt | 1 - 2 files changed, 3 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 1c7bafab..42acf0d7 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -120,8 +120,6 @@ INSTALLED_APPS = ( 'dal', 'dal_select2', - 'crispy_forms', - 'django.contrib.flatpages', 'django.contrib.humanize', diff --git a/requirements.txt b/requirements.txt index ac63f0ef..6f6ea3f8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,7 +19,6 @@ django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) django-cleanup # Uklízí media/ od smazaných „databázových“ souborů django-taggit django-autocomplete-light>=3.9.0 -django-crispy-forms django-imagekit # Všechny možné obrázky v Djangu django-polymorphic django-sitetree From 8babbd988cc08cfba3065335889b23e431b92713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 11 Dec 2023 22:20:38 +0100 Subject: [PATCH 025/225] =?UTF-8?q?A=20dal=C5=A1=C3=AD=20koment=C3=A1?= =?UTF-8?q?=C5=99e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6f6ea3f8..b165c781 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,12 +17,12 @@ django-countries # Políčko ve formu / field v modelu ohledně států django-solo # Singleton model (speciálně Nastavení) django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) django-cleanup # Uklízí media/ od smazaných „databázových“ souborů -django-taggit -django-autocomplete-light>=3.9.0 +django-taggit # Taggy v djangu (speciálně zaměření problémů) +django-autocomplete-light>=3.9.0 # Automatické doplňování (problémů, účastníků, …) ve formulářích django-imagekit # Všechny možné obrázky v Djangu -django-polymorphic -django-sitetree -django_reverse_admin +django-polymorphic # Polymorfismus na django modelech (hlavně Problém nebo treenode) +django-sitetree # Struktura stránek, hlavně pro meníčko +django_reverse_admin # Lepší handlování OneToOne fieldů v adminu django-rest-framework django-webpack-loader django-rest-polymorphic From f41d5587fc05585da214e122f8926941a1ca95a9 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 18 Dec 2023 21:21:17 +0100 Subject: [PATCH 026/225] =?UTF-8?q?Pokus=20o=20hack:=20p=C5=99i=20v=C3=BDr?= =?UTF-8?q?ob=C4=9B=20modelu=20na=20n=C4=9Bj=20rovnou=20p=C5=99esm=C4=9Bru?= =?UTF-8?q?jeme=20p=C5=AFvodn=C3=AD=20contenttype.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 10 ++++++++++ various/migrations/0003_fix_permissions.py | 1 - 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py index 08bc1ea0..1cc24c3d 100644 --- a/various/migrations/0001_initial.py +++ b/various/migrations/0001_initial.py @@ -2,6 +2,15 @@ from django.db import migrations, models +def nastav_nove_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') + old_ct.update(appname='various') + +def nastav_stare_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') + new_ct.update(appname='seminar') class Migration(migrations.Migration): @@ -24,4 +33,5 @@ class Migration(migrations.Migration): 'managed': False, }, ), + migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), ] diff --git a/various/migrations/0003_fix_permissions.py b/various/migrations/0003_fix_permissions.py index 2364f160..9c3396f6 100644 --- a/various/migrations/0003_fix_permissions.py +++ b/various/migrations/0003_fix_permissions.py @@ -37,5 +37,4 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(oprav_prava_k_nastaveni, obnov_prava_k_nastaveni), ] From 46fd51e7d927a5c1739a1484ec100da8e7fa06d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 18 Dec 2023 21:24:14 +0100 Subject: [PATCH 027/225] =?UTF-8?q?Odstran=C4=9Bno=20sekizai=20(nepou?= =?UTF-8?q?=C5=BE=C3=ADvalo=20se,=20zbyte=C4=8Dn=C4=9B=20zeslo=C5=BEi?= =?UTF-8?q?=C5=A5uje,=20jde=20to=20d=C4=9Blat=20i=20jinak=20a=20h=C3=A1zel?= =?UTF-8?q?o=20n=C4=9Bkdy=20n=C4=9Bkde=20chyby)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 2 -- mamweb/templates/base.html | 5 ++--- requirements.txt | 1 - treenode/templates/treenode/orphanage.html | 7 ------- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 42acf0d7..d5b35281 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -87,7 +87,6 @@ TEMPLATES = [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.request', 'django.contrib.messages.context_processors.messages', - 'sekizai.context_processors.sekizai', 'header_fotky.context_processors.vzhled', 'various.context_processors.rozliseni', 'various.context_processors.april', @@ -110,7 +109,6 @@ INSTALLED_APPS = ( 'django.contrib.auth', # Utilities - 'sekizai', 'reversion', 'django_countries', 'solo', diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 4281c6df..a29d4697 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -1,4 +1,4 @@ -{% load static sekizai_tags %} +{% load static %} {% load sitetree %} <!DOCTYPE html> <html lang='cs'> @@ -7,7 +7,6 @@ <title>{% block title %}{% block nadpis1a %}🦊{% endblock %} | Korespondenční seminář M&M{% endblock title %}</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="{% static 'images/MATFYZ_MM_barevne.svg' %}" type="image/x-icon"> -{# {% render_block css %}#} {% block custom_css %}{% endblock %} <link href="{% static 'css/bootstrap-theme.css' %}" rel="stylesheet"> <link href="{% static 'css/bootstrap.css' %}" rel="stylesheet"> @@ -189,6 +188,6 @@ walkText(document.body); </script> {% endif %} - {% render_block "js" %} + {% block js %}{% endblock %} </body> </html> diff --git a/requirements.txt b/requirements.txt index b165c781..6855e0ae 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,6 @@ pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 Django<5.0 #django-bootstrap-sass django-reversion # Version control na datech v databázi -django-sekizai # Vylepšení bloků v templatech django-countries # Políčko ve formu / field v modelu ohledně států django-solo # Singleton model (speciálně Nastavení) django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) diff --git a/treenode/templates/treenode/orphanage.html b/treenode/templates/treenode/orphanage.html index 31a20e6d..53d4ed67 100644 --- a/treenode/templates/treenode/orphanage.html +++ b/treenode/templates/treenode/orphanage.html @@ -1,12 +1,5 @@ {% extends "seminar/archiv/base.html" %} {% load static %} -{% load sekizai_tags %} - -{# toto z nejakeho duvodu nefunguje #} -{% addtoblock css %} -dfsdfs -<link rel="stylesheet" type="text/css" href="{% static 'css/mamweb-dev.css' %}" /> -{% endaddtoblock "css" %} {% block custom_css %} <link rel="stylesheet" type="text/css" href="{% static 'css/mamweb-dev.css' %}" /> From 39d618834bf3f066544f97b4ff28e56dd42d889b Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Mon, 18 Dec 2023 21:32:58 +0100 Subject: [PATCH 028/225] =?UTF-8?q?fixup!=20Pokus=20o=20hack:=20p=C5=99i?= =?UTF-8?q?=20v=C3=BDrob=C4=9B=20modelu=20na=20n=C4=9Bj=20rovnou=20p=C5=99?= =?UTF-8?q?esm=C4=9Brujeme=20p=C5=AFvodn=C3=AD=20contenttype.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py index 1cc24c3d..38f2a029 100644 --- a/various/migrations/0001_initial.py +++ b/various/migrations/0001_initial.py @@ -4,13 +4,15 @@ from django.db import migrations, models def nastav_nove_contenttypes(apps, schema_editor): ContentType = apps.get_model('contenttypes', 'ContentType') - old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') - old_ct.update(appname='various') + old_ct = ContentType.objects.filter(app_label='seminar', model='nastaveni') + # Pozn: tohle může být prázdné (pokud Django nedostalo signál o dokončených migracích, např. při vyrábění databáze z nuly) + # Ale .update to nevadí… + old_ct.update(app_label='various') def nastav_stare_contenttypes(apps, schema_editor): ContentType = apps.get_model('contenttypes', 'ContentType') - new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') - new_ct.update(appname='seminar') + new_ct = ContentType.objects.filter(app_label='various', model='nastaveni') + new_ct.update(app_label='seminar') class Migration(migrations.Migration): From 824a4d9eb3e313186399149935b75ab05a3e6677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 18 Dec 2023 22:13:17 +0100 Subject: [PATCH 029/225] =?UTF-8?q?Fixnuto=20p=C5=99et=C3=A9k=C3=A1n=C3=AD?= =?UTF-8?q?=20select=C5=AF=20p=C5=99es=20title=20a=20login=20bar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 84e4c79b..6847ba69 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -39,7 +39,7 @@ div.login-bar { position: fixed; margin-top: -20px; min-height: 20px; - z-index: 20; + z-index: 4086; padding-left: 5px; padding-right: 5px; @@ -214,7 +214,7 @@ h1 { height: 55px; width: 970px; position: fixed; - z-index: 10; + z-index: 2048; background-color: #e84e10; filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); From 8e1a03863fd1f54377a7060f3dd519781597dffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Thu, 28 Dec 2023 09:50:13 +0100 Subject: [PATCH 030/225] =?UTF-8?q?PLS,=20Windowsy=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 6855e0ae..4a7163d3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- -c constraints.txt # basic libs From a72435dd724b0a2a394a8a77973b4ce2d60f4d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Jan 2024 00:02:27 +0100 Subject: [PATCH 031/225] =?UTF-8?q?Zrychlen=C3=AD=20na=C4=8D=C3=ADt=C3=A1n?= =?UTF-8?q?=C3=AD=20archivu=20soust=C5=99ed=C4=9Bn=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/soustredeni/seznam_soustredeni.html | 8 ++++---- soustredeni/views.py | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/soustredeni/templates/soustredeni/seznam_soustredeni.html b/soustredeni/templates/soustredeni/seznam_soustredeni.html index fcb7c287..e5f68bfc 100644 --- a/soustredeni/templates/soustredeni/seznam_soustredeni.html +++ b/soustredeni/templates/soustredeni/seznam_soustredeni.html @@ -58,16 +58,16 @@ {# Účastníci #} <h2>Soustředění se zúčastnili tito účastníci:</h2> <p> - {% for i in soustredeni.soustredeni_ucastnici_set.all %} - {{i.resitel}}{% if forloop.last %}.{% else %},{% endif %} + {% for i in soustredeni.ucastnici.all %} + {{i}}{% if forloop.last %}.{% else %},{% endif %} {% empty %} Nic! {% endfor %} </p> <h2>Soustředění se účastnili tito organizátoři:</h2> <p> - {% for i in soustredeni.soustredeni_organizatori_set.all %} - {{i.organizator}}{% if forloop.last %}.{% else %},{% endif %} + {% for i in soustredeni.organizatori.all %} + {{i}}{% if forloop.last %}.{% else %},{% endif %} {% empty %} Nic! {% endfor %} diff --git a/soustredeni/views.py b/soustredeni/views.py index e5ae2992..da59e779 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -17,6 +17,17 @@ class SoustredeniListView(generic.ListView): model = Soustredeni template_name = 'soustredeni/seznam_soustredeni.html' + def get_queryset(self): + return ( + Soustredeni.objects + .prefetch_related( + "ucastnici", "ucastnici__osoba", + "organizatori", "organizatori__osoba", + "galerie_set" + ) + .select_related("rocnik") + ) + def soustredeniObalkyView(request, soustredeni): soustredeni = get_object_or_404(Soustredeni, id=soustredeni) From c130ab842649e3d5f9028dcb2131526c44822ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Jan 2024 00:11:13 +0100 Subject: [PATCH 032/225] =?UTF-8?q?Zrychlen=C3=AD=20na=C4=8D=C3=ADt=C3=A1n?= =?UTF-8?q?=C3=AD=20archivu=20soust=C5=99ed=C4=9Bn=C3=AD=20pro=20=C3=BA?= =?UTF-8?q?=C4=8Dastn=C3=ADky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index da59e779..f2aafdf7 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -18,12 +18,14 @@ class SoustredeniListView(generic.ListView): template_name = 'soustredeni/seznam_soustredeni.html' def get_queryset(self): + if not self.request.user.je_org: + return super().get_queryset() return ( Soustredeni.objects .prefetch_related( "ucastnici", "ucastnici__osoba", "organizatori", "organizatori__osoba", - "galerie_set" + "galerie_set", ) .select_related("rocnik") ) From b4c693a9ab3c64618028c127728105b42ad0a03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 5 Feb 2024 19:50:17 +0100 Subject: [PATCH 033/225] =?UTF-8?q?Uchycen=C3=AD=20=C5=99=C3=A1dku=20a=20s?= =?UTF-8?q?loupce=20v=20tabulce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 29 +++++++++++++++++++ .../templates/odevzdavatko/tabulka.html | 6 ++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 4b4a5e51..0d699d5c 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1243,6 +1243,35 @@ div.gdpr { background: rgb(253, 237, 213); } +/*Přichycování prvního sloupce a řádku*/ +.dosla_reseni { + display: block; + max-height: 90vh; + max-width: 90vw; + overflow: auto; + margin-left: 5vw; +} + +.dosla_reseni thead tr { + position: sticky; + top: 0; + z-index: 1; +} + +.dosla_reseni tr:nth-child(even) td:first-child, .dosla_reseni thead tr, .dosla_reseni thead tr:first-child td:first-child { + background: rgb(253, 237, 213); +} + +.dosla_reseni tr:nth-child(odd) td:first-child { + background: #fffbf6; +} + +.dosla_reseni tr td:first-child { + position: sticky; + left: 0; +} +/* */ + .odevzdana_reseni tr th, .odevzdana_reseni tr td { border: 1px solid black; diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 7cd317e5..7ee90ea9 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -21,8 +21,8 @@ Do data (včetně): {{ filtr.reseni_do }} <input type=submit value="Změň ročník"> </form> -<div style="overflow-x: scroll;"> <table class="dosla_reseni"> + <thead> <tr> <td></td> {# Prázdná buňka v levém horním rohu #} {% for p in problemy %} @@ -32,6 +32,8 @@ Do data (včetně): {{ filtr.reseni_do }} </th> {% endfor %} </tr> + </thead> + <tbody> {% for resitel,hodnoty in radky%} <tr> <td> @@ -52,8 +54,8 @@ Do data (včetně): {{ filtr.reseni_do }} {% endfor %} </tr> {% endfor %} + </tbody> </table> -</div> {% endblock %} From c0a3e3df8f265011de3aa4404c3a71fb061f57ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 5 Feb 2024 20:08:25 +0100 Subject: [PATCH 034/225] =?UTF-8?q?Lep=C5=A1=C3=AD=20vy=C5=99e=C5=A1en?= =?UTF-8?q?=C3=AD=20rozli=C5=A1en=C3=AD=20web=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/rozliseni.css | 45 ++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/mamweb/static/css/rozliseni.css b/mamweb/static/css/rozliseni.css index baf2d837..52d2a481 100644 --- a/mamweb/static/css/rozliseni.css +++ b/mamweb/static/css/rozliseni.css @@ -1,29 +1,32 @@ /* Rozlišení mezi lokálním, test a produkčním webem */ -.localweb { - border-left: 20px solid greenyellow; - border-right: 20px solid greenyellow; +.localweb:before, .localweb:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + left: 0; + right: 0; + background: greenyellow; } -.localweb .login-bar { - margin-left: -20px; -} - -.testweb { - border-left: 20px solid darkorange; - border-right: 20px solid darkorange; -} - -.testweb .login-bar { - margin-left: -20px; +.testweb:before, .testweb:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + left: 0; + right: 0; + background: darkorange; } /* Produkční web z pohledu superuživatele */ -.suprodweb { - border-left: 20px solid red; - border-right: 20px solid red; -} - -.suprodweb .login-bar { - margin-left: -20px; +.suprodweb:before, .suprodweb:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + left: 0; + right: 0; + background: red; } From 239a324a191a63ebea8df4afde2cebc9f6279d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 5 Feb 2024 20:34:25 +0100 Subject: [PATCH 035/225] =?UTF-8?q?Je=C5=A1t=C4=9B=20lep=C5=A1=C3=AD=20vy?= =?UTF-8?q?=C5=99e=C5=A1en=C3=AD=20rozli=C5=A1en=C3=AD=20web=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/rozliseni.css | 35 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/mamweb/static/css/rozliseni.css b/mamweb/static/css/rozliseni.css index 52d2a481..35f52f88 100644 --- a/mamweb/static/css/rozliseni.css +++ b/mamweb/static/css/rozliseni.css @@ -1,32 +1,35 @@ /* Rozlišení mezi lokálním, test a produkčním webem */ -.localweb:before, .localweb:after { +body.localweb:before, body.localweb:after, +body.testweb:before, body.testweb:after, +body.suprodweb:before, body.suprodweb:after { content: ""; position: fixed; width: 20px; height: 100%; + top: 0; +} + +body.localweb:before, +body.testweb:before, +body.suprodweb:before { left: 0; +} + +body.localweb:after, +body.testweb:after, +body.suprodweb:after { right: 0; +} + +body.localweb:before, body.localweb:after { background: greenyellow; } -.testweb:before, .testweb:after { - content: ""; - position: fixed; - width: 20px; - height: 100%; - left: 0; - right: 0; +body.testweb:before, body.testweb:after { background: darkorange; } -/* Produkční web z pohledu superuživatele */ -.suprodweb:before, .suprodweb:after { - content: ""; - position: fixed; - width: 20px; - height: 100%; - left: 0; - right: 0; +body.suprodweb:before, body.suprodweb:after { background: red; } From b2911d5e9f0d272c4a5e8cf11eb13474bbbbc797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 12 Feb 2024 18:55:41 +0100 Subject: [PATCH 036/225] Separace bootstrapu --- .../static/{ => bootstrap}/css/bootstrap-theme.css | 0 mamweb/static/{ => bootstrap}/css/bootstrap.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin mamweb/static/{ => bootstrap}/js/bootstrap.js | 0 mamweb/templates/base.html | 6 +++--- requirements.txt | 1 - 9 files changed, 3 insertions(+), 4 deletions(-) rename mamweb/static/{ => bootstrap}/css/bootstrap-theme.css (100%) rename mamweb/static/{ => bootstrap}/css/bootstrap.css (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.eot (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.svg (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.ttf (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.woff (100%) rename mamweb/static/{ => bootstrap}/js/bootstrap.js (100%) diff --git a/mamweb/static/css/bootstrap-theme.css b/mamweb/static/bootstrap/css/bootstrap-theme.css similarity index 100% rename from mamweb/static/css/bootstrap-theme.css rename to mamweb/static/bootstrap/css/bootstrap-theme.css diff --git a/mamweb/static/css/bootstrap.css b/mamweb/static/bootstrap/css/bootstrap.css similarity index 100% rename from mamweb/static/css/bootstrap.css rename to mamweb/static/bootstrap/css/bootstrap.css diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.eot b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.eot rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.svg b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.svg rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.ttf b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.ttf rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.woff b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.woff rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/mamweb/static/js/bootstrap.js b/mamweb/static/bootstrap/js/bootstrap.js similarity index 100% rename from mamweb/static/js/bootstrap.js rename to mamweb/static/bootstrap/js/bootstrap.js diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index a29d4697..c55ca7f2 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -8,8 +8,8 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="{% static 'images/MATFYZ_MM_barevne.svg' %}" type="image/x-icon"> {% block custom_css %}{% endblock %} - <link href="{% static 'css/bootstrap-theme.css' %}" rel="stylesheet"> - <link href="{% static 'css/bootstrap.css' %}" rel="stylesheet"> + <link href="{% static 'bootstrap/css/bootstrap-theme.css' %}" rel="stylesheet"> + <link href="{% static 'bootstrap/css/bootstrap.css' %}" rel="stylesheet"> <link href="{% static 'css/mamweb.css' %}?version=1" rel="stylesheet"> <link href="{% static 'css/prettyPhoto.css' %}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> <script src="{% static 'js/jquery-1.11.1.js' %}"></script> @@ -118,7 +118,7 @@ </div> <!-- container --> - <script src="{% static 'js/bootstrap.js' %}"></script> + <script src="{% static 'bootstrap/js/bootstrap.js' %}"></script> <script src="{% static 'js/jquery.jcarousel-core.js' %}" type="text/javascript"></script> <script src="{% static 'js/jquery.prettyPhoto.js' %}" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8"> diff --git a/requirements.txt b/requirements.txt index 4a7163d3..ecc41db0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,6 @@ pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 # Django and modules Django<5.0 -#django-bootstrap-sass django-reversion # Version control na datech v databázi django-countries # Políčko ve formu / field v modelu ohledně států django-solo # Singleton model (speciálně Nastavení) From 72c20d2b949f6e90bdb5270fde1332be3ef4117d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 12 Feb 2024 19:04:46 +0100 Subject: [PATCH 037/225] Separace prettyPhoto --- .../prettyPhoto_uncompressed_3.1.5/README | 30 - .../css/prettyPhoto.css | 525 ---------- .../images/fullscreen/1.jpg | Bin 61924 -> 0 bytes .../images/fullscreen/2.jpg | Bin 84412 -> 0 bytes .../images/fullscreen/3.jpg | Bin 35532 -> 0 bytes .../images/fullscreen/4.jpg | Bin 98304 -> 0 bytes .../images/fullscreen/5.jpg | Bin 44257 -> 0 bytes .../images/fullscreen/6.jpg | Bin 962237 -> 0 bytes .../images/fullscreen/high.gif | Bin 4053 -> 0 bytes .../images/fullscreen/huge.gif | Bin 7006 -> 0 bytes .../images/fullscreen/wide.gif | Bin 4053 -> 0 bytes .../images/thumbnails/flash-logo.png | Bin 6410 -> 0 bytes .../images/thumbnails/quicktime-logo.gif | Bin 8769 -> 0 bytes .../images/thumbnails/t_1.jpg | Bin 3002 -> 0 bytes .../images/thumbnails/t_2.jpg | Bin 2379 -> 0 bytes .../images/thumbnails/t_3.jpg | Bin 1937 -> 0 bytes .../images/thumbnails/t_4.jpg | Bin 3341 -> 0 bytes .../images/thumbnails/t_5.jpg | Bin 2534 -> 0 bytes .../prettyPhoto_uncompressed_3.1.5/index.html | 236 ----- .../js/jquery-1.3.2.min.js | 19 - .../js/jquery-1.4.4.min.js | 167 ---- .../js/jquery-1.6.1.min.js | 18 - .../xhr_response.html | 5 - mamweb/static/js/jquery.prettyPhoto.js | 911 ------------------ .../{ => prettyPhoto}/css/prettyPhoto.css | 208 ++-- .../images}/dark_rounded/btnNext.png | Bin .../images}/dark_rounded/btnPrevious.png | Bin .../images}/dark_rounded/contentPattern.png | Bin .../dark_rounded/default_thumbnail.gif | Bin .../images}/dark_rounded/loader.gif | Bin .../images}/dark_rounded/sprite.png | Bin .../images}/dark_square/btnNext.png | Bin .../images}/dark_square/btnPrevious.png | Bin .../images}/dark_square/contentPattern.png | Bin .../images}/dark_square/default_thumbnail.gif | Bin .../images}/dark_square/loader.gif | Bin .../images}/dark_square/sprite.png | Bin .../images}/default/default_thumb.png | Bin .../images}/default/loader.gif | Bin .../images}/default/sprite.png | Bin .../images}/default/sprite_next.png | Bin .../images}/default/sprite_prev.png | Bin .../images}/default/sprite_x.png | Bin .../images}/default/sprite_y.png | Bin .../images}/facebook/btnNext.png | Bin .../images}/facebook/btnPrevious.png | Bin .../images}/facebook/contentPatternBottom.png | Bin .../images}/facebook/contentPatternLeft.png | Bin .../images}/facebook/contentPatternRight.png | Bin .../images}/facebook/contentPatternTop.png | Bin .../images}/facebook/default_thumbnail.gif | Bin .../images}/facebook/loader.gif | Bin .../images}/facebook/sprite.png | Bin .../images}/light_rounded/btnNext.png | Bin .../images}/light_rounded/btnPrevious.png | Bin .../light_rounded/default_thumbnail.gif | Bin .../images}/light_rounded/loader.gif | Bin .../images}/light_rounded/sprite.png | Bin .../images}/light_square/btnNext.png | Bin .../images}/light_square/btnPrevious.png | Bin .../light_square/default_thumbnail.gif | Bin .../images}/light_square/loader.gif | Bin .../images}/light_square/sprite.png | Bin .../js/jquery.prettyPhoto.js | 0 mamweb/templates/base.html | 4 +- 65 files changed, 106 insertions(+), 2017 deletions(-) delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/README delete mode 100644 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/css/prettyPhoto.css delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/1.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/2.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/3.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/4.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/5.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/6.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/high.gif delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/huge.gif delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/wide.gif delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/flash-logo.png delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/quicktime-logo.gif delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_1.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_2.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_3.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_4.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_5.jpg delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/index.html delete mode 100755 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.3.2.min.js delete mode 100644 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.4.4.min.js delete mode 100644 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.6.1.min.js delete mode 100644 mamweb/static/images/prettyPhoto_uncompressed_3.1.5/xhr_response.html delete mode 100644 mamweb/static/js/jquery.prettyPhoto.js rename mamweb/static/{ => prettyPhoto}/css/prettyPhoto.css (51%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_rounded/btnNext.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_rounded/btnPrevious.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_rounded/contentPattern.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_rounded/default_thumbnail.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_rounded/loader.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_rounded/sprite.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_square/btnNext.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_square/btnPrevious.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_square/contentPattern.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_square/default_thumbnail.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_square/loader.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/dark_square/sprite.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/default/default_thumb.png (100%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/default/loader.gif (100%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/default/sprite.png (100%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/default/sprite_next.png (100%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/default/sprite_prev.png (100%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/default/sprite_x.png (100%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/default/sprite_y.png (100%) rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/btnNext.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/btnPrevious.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/contentPatternBottom.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/contentPatternLeft.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/contentPatternRight.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/contentPatternTop.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/default_thumbnail.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/loader.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/facebook/sprite.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_rounded/btnNext.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_rounded/btnPrevious.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_rounded/default_thumbnail.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_rounded/loader.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_rounded/sprite.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_square/btnNext.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_square/btnPrevious.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_square/default_thumbnail.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_square/loader.gif (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto => prettyPhoto/images}/light_square/sprite.png (100%) mode change 100755 => 100644 rename mamweb/static/{images/prettyPhoto_uncompressed_3.1.5 => prettyPhoto}/js/jquery.prettyPhoto.js (100%) diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/README b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/README deleted file mode 100755 index 1e568425..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/README +++ /dev/null @@ -1,30 +0,0 @@ -prettyPhoto v3.1.4 -© Copyright, Stephane Caron -http://www.no-margin-for-errors.com - - -============================= Released under ============================= - -Creative Commons 2.5 -http://creativecommons.org/licenses/by/2.5/ - -OR - -GPLV2 license -http://www.gnu.org/licenses/gpl-2.0.html - -You are free to use prettyPhoto in commercial projects as long as the -copyright header is left intact. - -============================ More information ============================ -http://www.no-margin-for-errors.com/projects/prettyPhoto/ - - -============================== Description =============================== - -prettyPhoto is a jQuery based lightbox clone. Not only does it support images, -it also add support for videos, flash, YouTube, iFrame. It's a full blown -media modal box. - -Please refer to http://www.no-margin-for-errors.com/projects/prettyPhoto/ -for all the details on how to use. diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/css/prettyPhoto.css b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/css/prettyPhoto.css deleted file mode 100644 index a7e04122..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/css/prettyPhoto.css +++ /dev/null @@ -1,525 +0,0 @@ -/* ------------------------------------------------------------------------ - This you can edit. -------------------------------------------------------------------------- */ - - /* ---------------------------------- - Default Theme - ----------------------------------- */ - - div.pp_default .pp_top, - div.pp_default .pp_top .pp_middle, - div.pp_default .pp_top .pp_left, - div.pp_default .pp_top .pp_right, - div.pp_default .pp_bottom, - div.pp_default .pp_bottom .pp_left, - div.pp_default .pp_bottom .pp_middle, - div.pp_default .pp_bottom .pp_right { height: 13px; } - - div.pp_default .pp_top .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ - div.pp_default .pp_top .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ - div.pp_default .pp_top .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ - - div.pp_default .pp_content .ppt { color: #f8f8f8; } - div.pp_default .pp_content_container .pp_left { background: url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } - div.pp_default .pp_content_container .pp_right { background: url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y; padding-right: 13px; } - div.pp_default .pp_content { background-color: #fff; } /* Content background */ - div.pp_default .pp_next:hover { background: url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.pp_default .pp_previous:hover { background: url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.pp_default .pp_expand { background: url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ - div.pp_default .pp_expand:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ - div.pp_default .pp_contract { background: url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ - div.pp_default .pp_contract:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ - div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ - div.pp_default #pp_full_res .pp_inline { color: #000; } - div.pp_default .pp_gallery ul li a { background: url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } - div.pp_default .pp_gallery ul li a:hover, - div.pp_default .pp_gallery ul li.selected a { border-color: #fff; } - div.pp_default .pp_social { margin-top: 7px; } - - div.pp_default .pp_gallery a.pp_arrow_previous, - div.pp_default .pp_gallery a.pp_arrow_next { position: static; left: auto; } - div.pp_default .pp_nav .pp_play, - div.pp_default .pp_nav .pp_pause { background: url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } - div.pp_default .pp_nav .pp_pause { background-position: -51px -29px; } - div.pp_default .pp_details { position: relative; } - div.pp_default a.pp_arrow_previous, - div.pp_default a.pp_arrow_next { background: url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } - div.pp_default a.pp_arrow_next { left: 52px; background-position: -82px -3px; } /* The next arrow in the bottom nav */ - div.pp_default .pp_content_container .pp_details { margin-top: 5px; } - div.pp_default .pp_nav { clear: none; height: 30px; width: 110px; position: relative; } - div.pp_default .pp_nav .currentTextHolder{ font-family: Georgia; font-style: italic; color:#999; font-size: 11px; left: 75px; line-height: 25px; margin: 0; padding: 0 0 0 10px; position: absolute; top: 2px; } - - div.pp_default .pp_close:hover, div.pp_default .pp_nav .pp_play:hover, div.pp_default .pp_nav .pp_pause:hover, div.pp_default .pp_arrow_next:hover, div.pp_default .pp_arrow_previous:hover { opacity:0.7; } - - div.pp_default .pp_description{ font-size: 11px; font-weight: bold; line-height: 14px; margin: 5px 50px 5px 0; } - - div.pp_default .pp_bottom .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ - div.pp_default .pp_bottom .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ - div.pp_default .pp_bottom .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ - - div.pp_default .pp_loaderIcon { background: url(../images/prettyPhoto/default/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Light Rounded Theme - ----------------------------------- */ - - - div.light_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.light_rounded .pp_top .pp_middle { background: #fff; } /* Top pattern/color */ - div.light_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.light_rounded .pp_content .ppt { color: #000; } - div.light_rounded .pp_content_container .pp_left, - div.light_rounded .pp_content_container .pp_right { background: #fff; } - div.light_rounded .pp_content { background-color: #fff; } /* Content background */ - div.light_rounded .pp_next:hover { background: url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_rounded .pp_previous:hover { background: url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.light_rounded .pp_expand { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_rounded .pp_expand:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_rounded .pp_contract { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_rounded .pp_contract:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.light_rounded .pp_details { position: relative; } - div.light_rounded .pp_description { margin-right: 85px; } - div.light_rounded #pp_full_res .pp_inline { color: #000; } - div.light_rounded .pp_gallery a.pp_arrow_previous, - div.light_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.light_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.light_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_rounded .pp_arrow_next { background: url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.light_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.light_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.light_rounded .pp_bottom .pp_middle { background: #fff; } /* Bottom pattern/color */ - div.light_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - div.light_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - /* ---------------------------------- - Dark Rounded Theme - ----------------------------------- */ - - div.dark_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.dark_rounded .pp_top .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ - div.dark_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.dark_rounded .pp_content_container .pp_left { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ - div.dark_rounded .pp_content_container .pp_right { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ - div.dark_rounded .pp_content { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ - div.dark_rounded .pp_next:hover { background: url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_rounded .pp_previous:hover { background: url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.dark_rounded .pp_expand { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_rounded .pp_expand:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_rounded .pp_contract { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_rounded .pp_contract:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.dark_rounded .pp_details { position: relative; } - div.dark_rounded .pp_description { margin-right: 85px; } - div.dark_rounded .currentTextHolder { color: #c4c4c4; } - div.dark_rounded .pp_description { color: #fff; } - div.dark_rounded #pp_full_res .pp_inline { color: #fff; } - div.dark_rounded .pp_gallery a.pp_arrow_previous, - div.dark_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.dark_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.dark_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_rounded .pp_arrow_next { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.dark_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.dark_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.dark_rounded .pp_bottom .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ - div.dark_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - div.dark_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Dark Square Theme - ----------------------------------- */ - - div.dark_square .pp_left , - div.dark_square .pp_middle, - div.dark_square .pp_right, - div.dark_square .pp_content { background: #000; } - - div.dark_square .currentTextHolder { color: #c4c4c4; } - div.dark_square .pp_description { color: #fff; } - div.dark_square .pp_loaderIcon { background: url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ - - div.dark_square .pp_expand { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_square .pp_expand:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_square .pp_contract { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_square .pp_contract:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.dark_square .pp_details { position: relative; } - div.dark_square .pp_description { margin: 0 85px 0 0; } - div.dark_square #pp_full_res .pp_inline { color: #fff; } - div.dark_square .pp_gallery a.pp_arrow_previous, - div.dark_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_square .pp_nav { clear: none; } - div.dark_square .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.dark_square .pp_arrow_previous { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.dark_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_square .pp_arrow_next { background: url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.dark_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.dark_square .pp_next:hover { background: url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_square .pp_previous:hover { background: url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - - /* ---------------------------------- - Light Square Theme - ----------------------------------- */ - - div.light_square .pp_left , - div.light_square .pp_middle, - div.light_square .pp_right, - div.light_square .pp_content { background: #fff; } - - div.light_square .pp_content .ppt { color: #000; } - div.light_square .pp_expand { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_square .pp_expand:hover { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_square .pp_contract { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_square .pp_contract:hover { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.light_square .pp_details { position: relative; } - div.light_square .pp_description { margin-right: 85px; } - div.light_square #pp_full_res .pp_inline { color: #000; } - div.light_square .pp_gallery a.pp_arrow_previous, - div.light_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_square .pp_nav .pp_play { background: url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.light_square .pp_arrow_previous { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.light_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_square .pp_arrow_next { background: url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.light_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.light_square .pp_next:hover { background: url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_square .pp_previous:hover { background: url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - div.light_square .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Facebook style Theme - ----------------------------------- */ - - div.facebook .pp_top .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.facebook .pp_top .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ - div.facebook .pp_top .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.facebook .pp_content .ppt { color: #000; } - div.facebook .pp_content_container .pp_left { background: url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ - div.facebook .pp_content_container .pp_right { background: url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ - div.facebook .pp_content { background: #fff; } /* Content background */ - div.facebook .pp_expand { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.facebook .pp_expand:hover { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.facebook .pp_contract { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.facebook .pp_contract:hover { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.facebook .pp_details { position: relative; } - div.facebook .pp_description { margin: 0 37px 0 0; } - div.facebook #pp_full_res .pp_inline { color: #000; } - div.facebook .pp_loaderIcon { background: url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat; } /* Loader icon */ - - div.facebook .pp_arrow_previous { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ - div.facebook .pp_arrow_previous.disabled { background-position: 0 -96px; cursor: default; } - div.facebook .pp_arrow_next { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ - div.facebook .pp_arrow_next.disabled { background-position: -32px -96px; cursor: default; } - div.facebook .pp_nav { margin-top: 0; } - div.facebook .pp_nav p { font-size: 15px; padding: 0 3px 0 4px; } - div.facebook .pp_nav .pp_play { background: url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } - div.facebook .pp_nav .pp_pause { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } - - div.facebook .pp_next:hover { background: url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.facebook .pp_previous:hover { background: url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - div.facebook .pp_bottom .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.facebook .pp_bottom .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ - div.facebook .pp_bottom .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - -/* ------------------------------------------------------------------------ - DO NOT CHANGE -------------------------------------------------------------------------- */ - - div.pp_pic_holder a:focus { outline:none; } - - div.pp_overlay { - background: #000; - display: none; - left: 0; - position: absolute; - top: 0; - width: 100%; - z-index: 9500; - } - - div.pp_pic_holder { - display: none; - position: absolute; - width: 100px; - z-index: 10000; - } - - - .pp_top { - height: 20px; - position: relative; - } - * html .pp_top { padding: 0 20px; } - - .pp_top .pp_left { - height: 20px; - left: 0; - position: absolute; - width: 20px; - } - .pp_top .pp_middle { - height: 20px; - left: 20px; - position: absolute; - right: 20px; - } - * html .pp_top .pp_middle { - left: 0; - position: static; - } - - .pp_top .pp_right { - height: 20px; - left: auto; - position: absolute; - right: 0; - top: 0; - width: 20px; - } - - .pp_content { height: 40px; min-width: 40px; } - * html .pp_content { width: 40px; } - - .pp_fade { display: none; } - - .pp_content_container { - position: relative; - text-align: left; - width: 100%; - } - - .pp_content_container .pp_left { padding-left: 20px; } - .pp_content_container .pp_right { padding-right: 20px; } - - .pp_content_container .pp_details { - float: left; - margin: 10px 0 2px 0; - } - .pp_description { - display: none; - margin: 0; - } - - .pp_social { float: left; margin: 0; } - .pp_social .facebook { float: left; margin-left: 5px; width: 55px; overflow: hidden; } - .pp_social .twitter { float: left; } - - .pp_nav { - clear: right; - float: left; - margin: 3px 10px 0 0; - } - - .pp_nav p { - float: left; - margin: 2px 4px; - white-space: nowrap; - } - - .pp_nav .pp_play, - .pp_nav .pp_pause { - float: left; - margin-right: 4px; - text-indent: -10000px; - } - - a.pp_arrow_previous, - a.pp_arrow_next { - display: block; - float: left; - height: 15px; - margin-top: 3px; - overflow: hidden; - text-indent: -10000px; - width: 14px; - } - - .pp_hoverContainer { - position: absolute; - top: 0; - width: 100%; - z-index: 2000; - } - - .pp_gallery { - display: none; - left: 50%; - margin-top: -50px; - position: absolute; - z-index: 10000; - } - - .pp_gallery div { - float: left; - overflow: hidden; - position: relative; - } - - .pp_gallery ul { - float: left; - height: 35px; - margin: 0 0 0 5px; - padding: 0; - position: relative; - white-space: nowrap; - } - - .pp_gallery ul a { - border: 1px #000 solid; - border: 1px rgba(0,0,0,0.5) solid; - display: block; - float: left; - height: 33px; - overflow: hidden; - } - - .pp_gallery ul a:hover, - .pp_gallery li.selected a { border-color: #fff; } - - .pp_gallery ul a img { border: 0; } - - .pp_gallery li { - display: block; - float: left; - margin: 0 5px 0 0; - padding: 0; - } - - .pp_gallery li.default a { - background: url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat; - display: block; - height: 33px; - width: 50px; - } - - .pp_gallery li.default a img { display: none; } - - .pp_gallery .pp_arrow_previous, - .pp_gallery .pp_arrow_next { - margin-top: 7px !important; - } - - a.pp_next { - background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; - display: block; - float: right; - height: 100%; - text-indent: -10000px; - width: 49%; - } - - a.pp_previous { - background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; - display: block; - float: left; - height: 100%; - text-indent: -10000px; - width: 49%; - } - - a.pp_expand, - a.pp_contract { - cursor: pointer; - display: none; - height: 20px; - position: absolute; - right: 30px; - text-indent: -10000px; - top: 10px; - width: 20px; - z-index: 20000; - } - - a.pp_close { - position: absolute; right: 0; top: 0; - display: block; - line-height:22px; - text-indent: -10000px; - } - - .pp_bottom { - height: 20px; - position: relative; - } - * html .pp_bottom { padding: 0 20px; } - - .pp_bottom .pp_left { - height: 20px; - left: 0; - position: absolute; - width: 20px; - } - .pp_bottom .pp_middle { - height: 20px; - left: 20px; - position: absolute; - right: 20px; - } - * html .pp_bottom .pp_middle { - left: 0; - position: static; - } - - .pp_bottom .pp_right { - height: 20px; - left: auto; - position: absolute; - right: 0; - top: 0; - width: 20px; - } - - .pp_loaderIcon { - display: block; - height: 24px; - left: 50%; - margin: -12px 0 0 -12px; - position: absolute; - top: 50%; - width: 24px; - } - - #pp_full_res { - line-height: 1 !important; - } - - #pp_full_res .pp_inline { - text-align: left; - } - - #pp_full_res .pp_inline p { margin: 0 0 15px 0; } - - div.ppt { - color: #fff; - display: none; - font-size: 17px; - margin: 0 0 5px 15px; - z-index: 9999; - } \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/1.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/1.jpg deleted file mode 100755 index ffb4763413c00b7afe70ea79d1d85eb9576438fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61924 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/2.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/2.jpg deleted file mode 100755 index b8759b44ce9714b46aa91b715f0e2874f7e72f07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84412 zcmY&<1yCHp*6uDI+%-sW*F}Oa?(PJau)soaNpK4Uw;%x)cX!v|NfwtSIKc@JTz~F; zul`r>Ox5&MpPK2@b$YtL{?6&=#piVZzKVjf0sx2v0NB1<fafCsft;6(lOF&GKmh;% zsxMV109>%GtF;}#w(q3|_>2IA1CWvaBQJMkRAgjiR8$mXWE501)c*(?1{(T{pkZLV z!o<XUg@OHF!Tpcm|E~a%QBcs((6BKuunBRoaS4h4qah~vub$xl6!`zQ_}_Q_zlY~O z009Qj2Y7)DBmf{00FeoR&qIKA0N}+W;ETLi`d>joMMeW6p<@7EVFCgF)%-sl5D6LZ zVl_GjJ^%@bjEsbegp7uQ`qFK@7YzXlD&P$v9~xMjo(SEF*e!%VDPM+x1mm>6e`-U= zn)KC~y8vTy0f>n#lzc!|*TzGRh2q7M|9%Js<)vBF|1<<7Ktg`QM+nwNu_AJ#=SK}m z$|pXppF-=G(P0qSI19CQPcD#cuz6kvU?T%x`hiRUkOG{Ee_#?iEk}NAKBkeKWoJ!2 zGW2L?Dapj3dQG2KcL8|vw+$vuKZEN%dV2Hfc^^QwOkClCCY+<WBKq>=hPCSPEq~yd z46&{FY#S|6%6xgPW<Q@4`*a7@FeHWgwD4$}(N#G)M_Y=6CS&{#mE&Zf(?uuB&wu~{ zOH*=vsn50GjcNv-=#JVq+I44waA4auhit2~F#HuA6;M4Yey(-{7VOM`;><R4cz@B) zB2S0B(=O&D(dPoIR;2`LG#^%VW5Z?mtSknDc!mzap~Qs3t2v+0@4euBJeW8=d1i+j zRW<=5+B3!eo~Jba%#5+EIS}<<xml=kdk%UF#r_xYkZ1|PZPDEDppr}n4Cc>q<@Xp5 z&j2nbIu!YJ?+4+>4r(<Likfve<z5KgBA6NGB05Vu>L3&viO+?@?sFj7p_QMCIh3#} z*hGPI{6-AtF76pHygU|)Mf#Ra8t?1P8aTYkW}p(;tZyaI1Ps4g4g|?4?=L)p68tb{ zz+cP?gOLNN#X)od81pWQ-corghte3eHr&PfWt#geR+?*1CXRK+z!f=tYZL!qrr^7o z+M^kz+S$e{8WDBhufkrcMk^E<T9k$`wBFq0zu>a?5gJok58Afay2yNaZ<5j|_2vn5 z6$iwv#9Op#CAv_&9Nb1L|ASy2%gu-KSx+iRVjLz*Z~D9j9rTa9&v|KlCcUeyZ|!C# zgb6tph9vZll8aI%2l`tNjS3EYdIrP?dy;Q$JM>G>X`2`pOXf9#Bj`V+4K&yB3zumD zw^W?C27W?w65<eCetMzeY-aoSmrJ@i`LbxdQW=*xhg(l35E<znUG?j=Ac<x@HUjZs zL`qw!MX~2VqwPPd8%TuEdrbd}J=`2;BsRuN7e`Tot^Bs4^aY?&?QUtX(!tNa!P^?U zCcxX+>RrfdS8a=5C9R~dI2S+Xl*ud<g9aEU(%-5nu`SfxWh=p!f7;{eE<i7TC3oQH zAQDDL*cFKf=hjE^B`MF`Hz6$vhNO1*!{R9sPR;%c@0N4ErK;uqQu7{_kkdWzrcGL? zIoEc%5YG@27O4z+2C#NUi|VG9;V9GRINdiTj1G51h1s%n+&fZlk1EW<-pKOhqt}v1 zn(hVel24G_Q!V?rpq;Q4w`SzovH=sz-Gd?=h3R`L_N4d}`h7W5^Nf8wiMEg2rseQ0 zzAC*FRI=02BLd%jrqdmf#Y_76U^G88o&2-;j8^NF*pvUs+sqE!@VKY$ARK6HmJp%q zUHN?BBW@!&)ftPgOpv+s*VSI}9x{Emyi>E&!oQMqTCK6OYE|m}o5078Lm>GEoM5Ij z=TnoKGilmdHDu@h0)J>K=12jN$O?Q05Kn=|*kvdjQ6b$v$TDD*q=NZacDyLfk<uB} zx}Qi4uhhGQQJw+$GfITQ4qB86lo#;CGv3OZCrKJF205HPb(*aMDep!ge-`g1j$(94 zj6%j@lG0w#8q`5(y9^-J_z*Z))sOFjb{}ZQVP-?fjL>O1ke*L*RwYLiW0X7t%)~B` zB1s4dX59UQLW-eiNY*AdfwWs^Q($sa<b@&Umq~-#vkoWHU`$79;ZY-a6#5=O{0xYG z0NLV;H-<eyyM`|w6q>?6+I9h0O25h$f3S@rZGeZEXZr^Jexn(DGA+;0H*-pLn|BVk zN>S!6k}sEGYp0rSUe2=^1k<4+CRcOK)Nye91HAIdnX<Exa-3S$ET}17<w3E#78h!t z@^ZtoR7q)0=BX5-!3O1wUTe_42SH)31Ou4sqrzJf8B9Fxyf{xf@h_S#<L9!3sHjfu z=TcG8CCPA6XSd{t@%tieJlQRkTL}BGL-kJhJBZnJvCy2hFp^vc2a{q1yQr&)V>fD2 z@`}JzudgKSZuy>VQQc-AFPD@STGX!*n__APzqB2lNuT}Oy@-PHm5lBDG$SM*h7qfZ zsibCYoutPGuwb?K-7}zPxm_Z{W1OT6a3*D@ugv@@sZAxMS4XnLm-Ll>8yDIIVo-4% z10{Xky`WX|-wY=BFXb6?Q!%9HGx<AqBlwfz!^I351!8EYPwWCwHdDf=u#-*Zr1R<y zT9r}NZv93)Dsc}~kZ$V5UI={<Zz3PHa(E>u2HYuoS7C#|ddrR8)|nvDR|`M<IhMqQ z8)M^5qr+pfh$t4(bNaQAnj6l|8^rt9!;6pJ*mxv?nbE6e@NCw~pHyiSTV9!^R-@De z4ZE%>{oIPuAgp{f&*a7-g8m*M(ZO?aTz~dmYqCtv5j!H|2w;t>OcP{*<Fv#`X_(fH zg+3P09ond7vdL5UcEXbMqeF$9)w?kQ0|0;^_`r|)SA09KZ9`Xe)Of{(d<uadt`iwF zHS`;|79WNqN^qK2Z5%m4ZAEp8j<0v68n1MJ+f1zr<ia|S+yU|=8u)jqYSPY{<#0OJ z+^ck}7}F#L<Ey1`Y2K~F+XHCQb)7$f1&`E-Vm@s0L#`f!Ter{S9Uep|@)_WwOuXo4 zkVT1uQr}llkXFs^6^9by13QID(jHdz*;zA{-#q=Wbzo6qgZokXCKd28$elDjRBrS> zWufg^vXCLJUi=w5noZ~?_~77uST%4hj4@Z6zWWT&EeKYr&*Sb4x%J&E1k)F@ilc)U zf=Z%csfreO<)Ub|pMwJdzPC=y_L{FhrLv!hi~9N<dhySp%2F$;TvmUQjM|5-Y0063 zF`&PqWL1F0d!)k#SL5iF*50eVy~gd7V)2~SIxs)oQj5_&3PzDoRI2kkq8SBQWF->c zU?GM<C4O=lhu%8m0u-g>j+0lXAmXWD>44(fMfZnKLDcrK89&AL+4NoKOaf_46pH-p zPk*<6@Xy1%EKOhLWiI6K)1*->JABGQWn@R?7qKTPRf!3-k&y+SE|20E6kc5(fRe+2 zQ%s{A`;ygTrvNAJzOVxCj_-DH*MIE@x++vSh_u-18EVZGX5iJH6y1wCq%<mecYc*f zLXwK$H{0?l&5T6UMwIY89*Jf!CBCX-e>aDWFw5zhUJ@nPfGPXd&hgXBGLd$|E?-GL z9llu*9Fr`ZPlK*BUXIb0$V*JJZ)OF<Vt`nQ<AI74zN>gJB%<6T&8TJXaVYJ)<%j<~ z@X^*H*V8k!si|m8%Qt0%0BaDGGeM$(lohtlVbj7`Ce+V>3AGGM8Z948HuH`T_+NAe z-Dax&15Ktm6r!PT9LtGohHm#u<bykXX;>;TXB;o@E@vF9eq;dK1E(~v=Ez{_Tp~aA zq;R^tqQAb@B7mXStf^b#T6%G^&8Q5^I(cJD6C-NcIrSw}c{*Bd+6q@Z$}5gr&7J`S zwd`+goiE-p#iFl1@n9YnM*k4a`yr~JT(-xd^GR@90uMs(z?JJ~z$&k*d*ydrK>Vc@ z>V2;%YAPpZ6_n{AmP{(La4DvHBmLN6YHZLj`IUtli}7&~-Ff+)>}TnM9TN_=9N(Wd z%vHz3U2pN`)Sm%Szut}4Eb}hI3yNKi%oevyu7sGM4vHr*8yGO_OGE7TcS@Rz&rB%{ zggMuU&9hDKS7+PZz7Lvjjg_GUlX{V?m6FotcGnWodu?7T(k3Msiz+UQyn);V25pU) zhkX{Ii7Z*1O}U5U+c4<5D6f_t&IAzKaNwE5b>wkjP%0BHb;O4s@-o3>5HWL(PP4T6 z)1%`!^E1;*kJ%TJCeyYF5%oLLtmqbqjf?qos3>7JJ*&p$>3;Pn+?h+=0aYq!=l-%p z9c9e<sG#taMnW(S_{w$|7DEfXxTCfoNXn}dk084W>Iu(Md;DTh47mxLkse-ixF{CY zN&Q!Ic?T^BhF%?O)@&!KQwaT$lXF%y8>8)&Lz^G~1bkB5+Nx@{WKt?unZ?6&Vnz!k zq{PSDYW=#E|0X<o3gD8)Fm$nhIX}yVGPI(ICpFv~7no(GK%gX4?6aq6-k}GIeba8Y z`AX9B84xrm9}YpCqVM*{TQZ}wm0Z1mQ$Dh7l{jE3q+dG>l;#(I@<fI?yHn2QNoF5k z{+q{8Q5Zrqs1}XS>jc+H56qMLyWaT5p$$`j?QQ7Fw*9koOY^phGeOwL8#Z-krBP8y z(?a6d$LpBQf>f9{PRd!c+$@-muaGBxDavBQdL0&d&zFO#8FAjY+Z83wwsQ(SJT*-T z_-8Sj{Gk_-Ksr&>)*J*gz7mdV<Dsn2RF-{Uag)6`pW4K%Kj9W}Ww1{T-8Qt6X7@~x z`JB5vMc;wZ=L%1R>=wR>Q*1jy^O!5t>iSF-b4jbt@akLWy$=6~f_Wiy--4Q$G{UFV zZ4el*J+V@@wQ#6=G4n=+#v171KC9IX0$}2J>VI1>N$d|<6l9m|d^&(+lSSK`PqiiY zGbJ+;RLm7AFkRCJhinz?;$pfbF)KFz<@#(zVL2yw060ZCm|#rt#Q)*SE=*XY`?I%G zPc4;_t20a^?QG6gfdaK?^6eQT9yJ9Zpv%@-ab|QMrb_x+rI*RkbM3G~hN;}Xv4cL? z^K2?av4ua<@#3`n-*jF2YiEc6z*|gr;+?Und_{4(eI!R>r2xvliWjV8b|GbK!3M4@ zF%UQ~{>>LR^%;<`Rd)YXG@$GKKbj;^Jh7KMK>z$-4XjBtKm8Lk#ch#Re)6Uc31B4| zB2VRa2qF9qouuF5OmB<z7)UX|Aa9<WTm9pvLLYPTdC>JXJ22QO*X}$h`0tKZbSG8Q z-}|1MYZ^N>qe`7>j+to!jeboTAZ@n8PAlqxE-Bk>?$Bd@IRA2s`x25YaV@7bk}CL3 zB_CI}sP5_PCSi&&XNBp?Z|~!|Tz^sl_1Jcz5rPBwLUe3ylfzP?Qz4qZ+Go{;G^^bB znCbbGWvY9!>*^Yt_>U0(^LRbn(zE<E3%Sg#rWuA$HVZKHvZ*A?ggevtN*VvleNDb< zPF`DUJJ)qO+|nmX7ny##;Rd99M`76A9$)e_HrJP1J<nS6ENmHvV@IW8jM5yTJBW%` zm}|4$`5jcF#~;mM03pm3weG1yBJ%1B&EIyC^3(m>IHc@&x0?tXMP2aBNWd!)F6?-e zTL1G_tM1Hx(Kd)K@)%dCD%EBdb<MSmlD&UZUf8h<dend)v~w2#(j}QCJ#5(t3DSi7 z&B!K-#O!__Bf;X5>~OQhUJmJbqPsobDWp>-zk<jYgI};~RGj9W6B0#(yfhhXarPNd z6Vk#g2SSPKU!?vaMNI^9Ax3TuS#GYKQR5^WW|jXGv@p0|MUEK`)m^xPnDW}n>3N+# z1CUK*5>?b3In4I!U*Isc+PcuI4A0Zjqj_8ecJ+ya=%as3(#1Srcy%WlK<R5}3@aH< zw_ADHZSvgg2|2u87Gs0a=pT57^&PCPXR%d_e~LPuMzM3{wQAd+&W?eggG+QrK8x*@ z2{1>?>bll0JW#&^p~zE_uE1S{PG^KLuvGOK8;Rh$6Uq$znVbXPf2hk+;#`;AIh3F! zQJU8B4qYtXE<AeL>Loq{h<vB`N62Yjw-dF|(5iE=ej~%OkLYes^V9X%lHDn92$^9h zF8e6ao}y=7(wQ)#lJ}u6ttO$%z@S|4aF%vNk9n%-O3FVnv}xZ$U{m9>j<YTek}-E% z*%^t1;;fz@<o4Bw_7fFx`acp|o=HqJVt_&CLjH7%ozd$i-l69BVD2HEf?QF(VdAwa z-FoB;k~cazpb4<?FZY%)>WK))P-XOiT%@eS%C|=$Z=zqv1Ut3Sr<PPQMj6bPAKj?~ zOV%t1s`5Sv*tTr(?sR|p#8FwI9%t2jMIQdh^5GL?r-E5#)Xs^B6!{-wLX&=w(_5>d z;@ARDf-w@y9&@#FEP_M*&gsWFr{|Vzf&<!rJm3_g+C(zpBK6fwt|{+FAPX6L2<Xe$ zN^qh7><vKtay)6TQz1&JWn^UeN)zf17}IDP9UTZA{vGV<K=}+f7m+M{;J6gsY3?2= zo$j@`d)e8<DQepjVFjHlx(~j$qhd<tH5y<8>K(DEhY3d|&h5tR%#xq|^FQ+ch_ysI zwa5cCkv2t*OJ*F`nC0+rqo#&x1&x=^vC+z%LH(fTpVrp>sTuNhZqZw(2YEbbTX4E} z-bb?{oh9Z%z%7%S$CL-(T~u|y&_{lF-NVLNvm1JmF+GuLe(Zp)<6p=!96WP<sA$9G zBO28&F>&on)ic``Xh?31wM=?2?~yD``+{>dq#rRB;5SQeXUwCrw{<9HZikd@7Dj%Z zF6h1fBQv7H|1wh5{dIaw2+<Fe_Y<spTZ=&;d;1!_oIVL+JlLs}8F3;d$WBpPZ}G4C zov%S&eBFJa*5}@@@qLF_`HUYFwgM{asRdu?C<3DK-~?pZr(IP}2d4NXdVhkO+^ipU zQL?<B{ZU`h&AfOQhaKb3_#*{?KK0?(5j>I@G_uN6J!?pe9UQ9Px=4KhvK(u828jP| z%=-KTnS7`891a7bs}PDliN-cfsHI__5OKJUjdLa;4~=$K`@;#~3Do)^^|_N6yUVW0 zqpEDo<Jmw{$8eY-SE)&<#hIDy`!Z1a3hpB-tLWdS4hSJd`IlM1BJiLzw^dfcI4!2s zC6_+;1@PN=MMOnDp~FgV4=L#7!Y^GXMjl#4iGY#UEJ|5XqflLSOE8Ep**5{Pbpu(4 zlO}co{Auy=G`Ua)fm5cW`Ne@@zfRBK>7;_qjqVDo=3b9k)Amt9ZS6QhHFM}n8E~=s z;Zy)`Y380N1ZtH`rRbdRO&d)$qsl;(apTgNz}+oaG)6S|R_C=Z^x_#{Rh^%W(~_6t zb6Wo31tX*&*$2yZ`;g3s<0JekZ*Zb%_hAEzpWFc=^QAKQ{*;ZB=aRJRPD*sYnY5JY zn@;ziII65asun9Fr%`#KPe@z;3!OCjng0q{ekUG8d0?RC-(Y&w!FXYhN#=>v{BQ{q zvh)74|0m^lbgLj&`@cKigYe<Dck$mTS^|El1X5zN3Q{_hSW#%x(mM))KsC>RP8sm5 z9qNiI-EJFI!cC4nsGsS_kDMW{*XHT2lnbuZP0dh>CjEv?k!p)r=n2t=dDuuvwVuXN zxm~Go*`9>lU(NFcc_o2E-#Pk(w6{I$n9dvv`ZpN-@>f$1-Y7};ps~-yF{WP#niVR- zZRFm}DW(BVMGF{*7Z+pW0kvtKwgz7UMZf!&LGPTsetb;T=hO;frxW#c`q5Igr}B!_ z5o(?r=x_ceS<}rQVrg^xFtlDH=03m1lGMVtUApboqN^zDQsJAOsU6`h1*0kbw~&zh zkVn#L@KLZ9b?k&CWA)m_g?n|dQ|*0XX0bP?T~Y>_4;`U2bLr$kTD4>GQH1g;+~2ez zP~802h^gfV=gRc1&#E7N8nKkHv`Zc5t2CzA9$%2R%3&C@ru)>Bo<HU{Pf^e-o8Tc% zUD~GMMFq1WS8aWo5_=YJn@&O>YmK5Kfe%{$ZhK~KX<Os|LU!m!e{V&tU`b;OJ0Sxs zz7d8e&T5CTa<rQ1q!^a}vac%Ip#B#NC_a0g*5A@WTzkGPnH+?M__v_n`Rx*3<=x{Y zX4-k|@fzEp<%F{#G@A+%Y-lA5_csf=I&2)67(TtS-mPf%l%SvD7hs@~BYcIPSayaI zD7XL@N}y+uwaX~Yoh{opyGSI|Ppz+&?dF)p?e>aQ`7+@#GjR$BC094n>ReFW2Ko<z zdzVx<CBt#LJeepMJR1@*V{#50giE3rWU*qFtueNCZk|ZyWgUrdMg8z-#Bw8Zq+CMU z>gT@NubFGX%0P$H9fahR2ya}gcc`&37h)+pElshr=u+0ZHkS1RmncB6mNGS}&=lN= zle%~DZCUry-vVFjSpOD@Pfh6^i~d^&v`G%t^#y%-az*Vj%5*O)%DQJ#nJL@(hGn2j z=_PgaTF}Kz$=K(=r(cM)cwW{dmyQ4+lCj%S5!_ka-&rzBO+8dFpXv#%JLs2@SQbW1 zRvnB4QT}ilq2pYiVu5*+z{6$P-!P)1X<jPFSdIa}bT#YpwACtuF~VIfXa|i3IX+5{ z1E{FWf=0}^`{U4BZmx*wTtwp_C!jbeogIL8&1Pc(-1ug$XD}gs2m+!;mzyl;-8!W- zfC!t0vWrV?!2>`hpm2FV6|L!Ty}a{zNQeOUSbq^x+M%Y@saG?2PZ8%-2OtSLrGjjH z5shRzsH;{O&NFMOBjs!CE{#)KfhbT^Z>Etr63h%enfyTIcl*G~?vHapH%#iqYLv&- zlQjcO(eH|jmhPj8Y@#}R3%DlwU}fRnQ&=yh&N>0^o+3g}MY%H3SY*H{LO8;~;ARf< z?3DSefe53YWt%-Lj!<<F1vbuuBj(GmzjKK&LG#B~{j}o^I+T_g)s;cP99bjb($?}O zIlOTYU>?s^&!vZ#tq{Jt3zW1mBUVa_z&8GDa-yjTtfa>lNKqPFm@a_9A*mGY6ehxL zA_m!>Q<Wrf>-zD$%C(6g*xkXX0-5Uva)1&7wwyZS{KjgCp9@FScTa#6ft7|By<Ct~ z8J%mw#<{WI)EF$icgjPsji#Bsb4NaGNv5;0=zQI#8<-^yoY1{JO5n<F!hv`VUris+ z<GIX+zy7@S4A?&RM+VN8E8HFKR+P|PUu3-ZzX_^`-iwjuOmIcDXN-<o4I5?s<8(Ss zd{-~6MJC7+Iv3yGxb6Lk=;n^vsJtK2zE~$hHXuE%F1%v?o42jID<4T2qhzp5o+edy zDzNB)n=qn*HIX*xH|@Q!h`tZ0dpSqTMSj^~5sPowQ0vs%x9aBa-4pCsRH|7)<67hZ z8F{@k@SR4tXp#G+nBW!r$K2lyQ4DV~)@+VW)J{|ds^>aHtksnT#bz%lf0WWSK)w~6 zEW5`gWYO5ID!E+eV^=uLifP67rWaSxdK7r0kF|fU=iTy%X%`$xYqa+`{*AFEZNtHj zXIPMWjqG_KIAg)VM3YsJ*D{jcoh53(!xi;2?VUaxvS@h3j3idw&k{3R8S)GOi(c~H zW}M{j{Sp(7`V?3uwZx%MpSl=|^XW5P0-|Qt@0jSjxm+Ms&Yl9oN#GM2=|C>%vGiZ5 z8G{}2rcvM4)>d^-eqxzbaH8^q(!YOj-qmR;K^QE5IXvzntA510eybl<FF<2N1;xaT zY`$ehuM8x1b8`zZVa;?3>)419vamCOp)k6dcugrZ@xDLt+xpBvV=-jvCToG|d01FR z{=M@oeaO^Qu2Kt`NTE{Kon7eRXEIVXDzb!!+eZN<2S=yzwADQIX8!>Os2rijnTuxH zCr2+Oe&^_2qFVI*`5bZ2c;M_56k5#k^-R~5l9n=$+5tOk)iR&eScv7<kmvqJHC>2Y zMs#XU1)k=JI&-8$o1f8B9__#RR31`|3}vbh-Cpf<Me3x~W5{uz9=zHCc21#5T|$yx zQVHrD4b*Q^MHEzM1nHXu5&z(SaNo#GJ4E3(-^Hg<vX9~qSciPAc+@<GJM#{ZEaPD& z`$$M(I+5qNq;gS}3@y0c9HMDvP6Rl?1Ml`DQs@mW^o7n&rCLp}2}nl82-UqMrCL?s zW1*{ON{@@`N@59@$m#|hE1^`a=A|Aj2*}VJE@#8*VAQAxAZ?>77lRi6tR2azH`T={ z^{Z!q1P@_KnWxX*gvBztN`R*zICo^g?QH>aYXaDU8XDZptm<cPmnKBan9{qB3i=jB zZ6h%oOM&AA_kHr3w_y}jOO>H@xU0Zm_yAD}s!8pGdQ(3(EoTFtmMsN*Phwou*={KV zY5!Jn2!3TG3pBmCo!Kv0`H|h9sB`IILOmS(7W?U;xV9I61t-1m0jH@Kf6TC}%O@#L zV>_8cSGOiSx&@0kIQOIBVe5@(KJVxEoBj(wJL9zJp>bTV-FM7$O`#<+qeG)e!0}+u zbIAbEemxb-NV=cAD01(D9!Yv7y3zi~piMD~(m7TN<xvpch!G{~;D>iHUI(7lI1EPI zB-SXsnmF#uH7X^p*Hcg3U5CY2iz`VFH|tb)oKM@@ib3u%1MqIbKV;mLJ+lMxY})dY zqPJ1rNf&}szjWKY$*xhO)G|^!kCt3@_#kA6X8;>4CV14~)#$bzbfxkJbx)AWdS>T9 z-)=#-!}}TF>;2Wubc6<r4QH;unA5mBJB^X3ODDo(XTJtEBd?#@uXlU0%ad^AlyRCq z`M%pAREzkZ(vqWZ-IDT}H@re)HT-;%2I8_dxc!^!G*d8ZT`qm!$-QL!l<|F{g`<UR zR!WD!f?3a&Y07$`Z2R`<LdqvM#Ptv7tACqS$451msrgAZaisJ{Z|G>8M%gY|q5I_= z@@r+cx)6cS*KuD=wha#GtnQomI*(M;LhIY8In-Ov=d#|;>>0X|32X@%JY9rEoL7;d zAOTVdwPqaS<!X2HJ0R2|$D}t2jS|1&2Ja#MH1@7~R{BQxs0x?Vg6wk$n@VPVGm7^| z7Fhxm&PC)(XVZV^<hYOB=#=R~FqqQyaJOgAFjm^%Vu~KN(x_$3-_f|(sU8j;l7G4G z{I*paPP)Wo^u>g0K&ovz-@1Nww!s-QWvrs6FpNzyork?;8j<_H`Ta#aL%crdgZ_Me z2&xiY&S$YW?=hM;N$zx{w3^kPiTaKtuWgUJ71I%Wtw=>wz$6T_JtwdxrSG9j7_|aE zsDe$Sheq&@8WnBjJrs1XP6*j4?7%o*{^Oo+WRM-URgPU`^}4l^c7O2(o(O)~|Jy^s zL&EMFRK-e&(w&PL<_IU9@67!0CBxqbF#a<@da21RgouVfeQa}JmaTk$w{=0^fN|ZZ ztu@7#;Z!1sp^$km;3`=GLHo1tYHyVB_RCqmHKgr)UIC=yk-zuJyX1b)4RfY#d9wfb z{vAmeoY0%$bowm?e?OVipqm5tI(y%R_I$VI?ZKz0%?$n0kxY(aLPawCz7(?v@%>^y z!WFw1<>Pye&EIVeXdC9zuJ;;^ZN3UayIACwzRBH6G_>&z_MuouYSA7?L#e2au*(&# zzXci9^o#@M6cPocgFz#Mrpdy{kUGi5qIe*Q;0ua%7|XF#{}|`+?KF{K_I5gNx73jN z0C(~%1_@{mTd2MHH&e=~u0!v1op6bn_cQ8jrmukr>Yefw3a-_hD0{e|3@&99{w10# z0nCRTs<%E|CS@XZsRZ{NiQYWQd+yhJGMS!|llRfSL^T62P$Cg)$?~GPg@dPed$CcZ zU*CNvpDDeea&%E)r9!{~$}q9nCu+|STATOR1kipegJ3_PjzXg6z?amrVz!wV4*{|i zKU57Fd{fvymfa~p=Hk^-x!DT^#;p$d;pS+>Afx+z$@062Z<<F5cUvdvm~}xzJc*8F z!ty$IkOzFQ@pPoi9zZ(C)(|Gn6=6q8!?MSY1|~*T_j*2*i__CNZK1J(Hq=UsUwSf1 z)2o}QRPdODnzC?gGLDu@D(J-&GSya&-b?uJ!E=hF-+E-Fd=u@mWY;B6-5y2EG-6Yj zhIl$w6K4<!Gf!$z4kKfg__gxN1+C^UBb&b+pkkkSl)QK|#FEITX=N%f;phdMFoA|? zJtGsxz2NPoJ1F2|!F%D+D=Ba5EgV<ZM~%_18_2*9fY=k6aak?H8;#CNg$0K69|rJi z{O_r0EU%pH8+|LV`BJ<HJF*DrQ~#L|$dFu=^Okhv;I#z4zvUsqHaOkEb)RMry4bPt z)Ix5<|7qZbJj9`^ayDD+GC$d3a=rFliY~-zHG^qnRYfYBs|@umK$(jQ)$O*>5h_@> zUkX3&&Wt^p_&M#ecC_2tF&v)6(%Ry|SiuMo5UuAooUEI5KIWf**kP;(+#*uIf+zIr z&j8V-n5xdOF^AD-KnC4mLv5O_2qolO)~T^n$G;Tf1@XX$_n)<<bMO+jJ<WHB!RYSl z5)UF>;b-@%AF0^Vu3~>+|HA&R9;6gldLUSCl)UgMKZjwX^7V+rJ2QKC@{h4Sm=M^z zs*F+V<O7se<=5ff>st7iEMKGO-lBTqK6DWFa7kb-1gv=nxxZ&V!5!&UolvWi*?b1P zwi3D~750uP3s`)O%Ra@PIBtyItYPw}=pZ-$Po?dA<c-Gt&rQasyuiFqiTWnXx6#S; zq7{?PZWrZt=ahRRxfcgsJN*gt8KM@>*TPOd6siu~-_y2q(hVo+Ih{I2*y!Kl{${6o z%JI*5=s*Ne?AV@GYwGNES9(S!E9i$H#j^T<Ry&_4k9^E<1r>-~5gs0|hMN|NbZ=&# zOmO>OsA$@yl$Au0%VG|dpb*#z4eA=%8Pi0;gnO}pG$zT~;J=d4ruak3bTNzA>got- zY;O?gaH~*a66OY7oM#VKr)I?+v9S<^$bh}heuvdLJidmQ)0bX3F#o{#^%#+0yCE!k zEaNSeo3vE$&ER`bTaQR<Ypk-%KvBwYGia@*{9Sl;Jf{A&)8l9U`%Yiv-RZC^$F6L6 z6minK_9o1c&)dU21ya=f)*uwi6j!c3s%Jo6dKt>6^km>ff_d0LZ)A8lJ8LeVbd#8# zPWYo|371)=#3cV2+n7nPK~KsbaVeK#>n7)Y((Bg0n2(L8>=HJ$n)srJSp+j>TNDmo z>&1Nt&>_;;TEO;0@NPK*UaaJDnl7^35kwu7KKT|3r>01Bz;gXETs>(1!@Z~)Iiwvh z3+RNyZyhE`<dW7V;=>6XB|P(8^1C?xU`#1zHtGKj_F?oq1D)L+l%)`^F0)?Z)hv4s zg)pAJ@t6o=*r*s2!eWrCFpx*_ERD=0vYh(iibd-{-Ab!@{lY=3q<oBx)nO8){_dZs zscUAZD+Uzd?Aj9Z!@Tj`A3`T;7}YyL#l4(S2u?f{i&)Ol1m95G6N@!>6vSlVy;=A- zyEt}DX=+gi)Z8*TaAP8(-gFt5Om5VTehDZJmyDF1sP5V7w!QAS@j9Om`Toyhgo=`u zPaA%_SHw_H{MOa$u|^MuIFmA&8PtG(zB90Pqzrp_>Htr2v?Xcjl$O6xp#Ns1DJ)41 z`Im!rFD|Xx^UtPn;Kt(aeGcg6-ClCL?rwkxQiamfn}qAfjtb_!+I-$Iqkc?(Lsx2p z+IC?h0cSkIT}$x;@Z1>h&4~)DD;`o1H3)NwldPy^<b1z0gwYT3Q3Y=>zyXww9k581 zn;rOrG=gH#-zdxTe7|+K8qEg7m674}bh?e7SvgDbl6rWZ8VJi<L!|lat2d$V1?sMG zwwxEXq43#(%IM&U(#3+efAcTTP!n*Lr+<6@WNF`QYtCBxJvu1yb%n0mP!}V=H6^SK zI9Ev~Nf)oTP_0_5Au%<W)yp?<`q-9t4K0ykaFkVb%kW#z#B6=RWp<1r=x!Z{Stsn{ z8#*M=MWdr9!h@vY6tJH^eMaaIr~4U}7I;sdt?XkQ*!<OOt&gzXwW2E+w2-Wr)YM=k zF`s=KDb-GJZ%K9;x1-(YRI&Jt`KPNJ3le9bDuW%prjy|BFGD*7gA_w9l)*UDzI#DC zHbtSyCL?3Nzb9u*WT!RKOjk%O3$Lg#Xh|Dl6Iy8^^*1LgO)>d!bJf-|^$w1q&c45$ zUiwNfnj8#%{SLY9AB{hjt^`iKj~`YQY7GtNhxV9ZW%ZrnKBhL6hqOfHaefRCXTC}0 zUF(blg-R=>v;UWSozeBP47D|vYp$kwev2Pe*4CNk#v~?ln}CY0hFUU)Fk$wvSzx~C zxK(G28|6dxqFLeUGl0|kNSLp0YIV!wt!d>Ux>D@9G-I+5B>#7r)kSVWN$T_;h<+0{ z$@ua&%2nfV?RSEz6O_r5-ps*S$zDHmll}Flu+#qteeTLD@>;AbfQN#qUWTTVD6wl* z?7iuI(btA#4h(+&ZD+a<XhMHp*+t8USkrrN(d#8_fDZQ;%%$8rX}nFXgNWeIfETXX z{V`(g$Cs<RuQ&BUEUi91?r_24EQ+mW<)T#nJV<Fuu(%?A)emVw#Jk_WB*$r@icfEl z2`k0lvB}DAvY8~@IMxh;Khz}~CCSjr5>Vmn4}~>L5flVpkw-**29<J^U*0)Yw~NeK zu1Ht0Dy#x-_Y}h1k-H=Zgc~+HXLG(gU7S-IQsK~D4I2_?05n6W@V%J7FoIM1n#P$0 zEq{|ene|QtSn?O9ALDhT1+Q>9;%Q_jl~iXDqDnn|IpL;Oqa$`Ha#guWD!oR%g71A| z`in@p=BuRJ1{>7uevlWG^2WS}#H4Jv{7IU35<|;ET9L(x9LZ<dFZ>JpNV*p}^I$?3 zsvQ*G7Vl6-u!))$rz94l-qf>eFWfRchq-awnN2vJPNV?KB_toMd87=E+0Q90m*gqH zjQ@EsPIu&_Loy=Mt3v%shn$mK?B2+?s!At~`-$Wfv0uI<B<i5KBCMtCKA@?O!SO;h z#Q5zWWV9ef9-R^lHG|vBh#wN-zvx&&SDj7Y(fZ@5%nER+gI6eTC><(BYlf@89#0Ha zb`JbjaVwJo%bGc~O1sN&Ox(Zaj^$v|4de$Ho+F>1%@M*4Z6PG7WPB1sg`r{cpu?M6 zCpApQuK3@w`2Gfwsg#~v$sEEd;fXWnXOw%UuYY|IYA=_hk-grBp`EQYnc^#f9(yBW z=^Q_~S|wF#bd%4%1YvrbL@1S}_eNO7%M{f?4&0M=&<u`!E)%$49EU73ZvyMM!bPd3 zs2>g|nu0gQh{2_xxMW_d${|cY@=Gq0L+3(ywa)|S8}ek#yVT^YbPx#wR+1N^;LTXq zvqgV<aX#-P%PevqFZ+3I(DgzzmL%n`XUh|dBTldHyb0#Ssu+VSPAp&Kt{%ybw7>6x zx}&iKz&-K%2kfh0RFp_9NAQ97`OK`UQ(en4uCt8)=mDw}Esj1Yn&I%lvl>rG1{RpK zwXsp5A2Su}LjSRC9Cim#n48OqmdhBsx;#!aS3Pkre***|_rV?0#^^hcmj~-PS<!Vb zOV#y-)M57qmCouf0M*1@&4>7BQrK=!9i8a%e$=Mah?%AIPcb-PHLcXl;gz`XHcd0j z%hZp9CM&Uf74V}e>=1niHDO$$Gbe)doC21Fr9`ucbu$VGRcs;H*JQG(4fV}dT;NQ+ z<npG7Umah(vKJb-!y2n<FfOlw_VbO=u5e2&*(-<JdaPd{{HgtYO*Uta(MbcGVShyQ z+Os>)A|XY|3eHp4)Du!9Z67KP%Qs=pXl>{F2D&3QPrryp!aFiT=&8QNq538VyhJ81 zPZ95GJ$-boch5^5Y^>`ij5Y;GmtL_X0NuQx{F0JRI%9Dea(_0uORclZ;}y!q{f}!6 zQ|D;xD#`r6<q_GSw3Yo~Wq%y1s0L4b(ZFGscYxH2{&e<U*q4ppy(uNiQ1&1gy;@)@ z*wof5^ZSA<ElsEW3Ab`<;afqV><0GEf?01aMP(ILg++7I*AHQw_6An=57enKO2E@X z$8=>c(iSLb{P4i8^NHJS`ScSO%GF6h<aff0ZVXGLdgE|sA(uD59!39**|qH2i?+}9 z`lLSoTh1&Gs@l@t{l=~F8(QXKt=fFO0kbzWrbqW6E^piO;&hFP7E)<>l>R9Er}U{< zuto#p*iM+A%I|$5!fe!qflZhyLQb;oy9(h;-k6uylndAEeZ?UwTBpq#uH}y$gZ3{I zddt^f^2FJDM{X<5vUQwveUp6=jS(}C;dGh9SOZOx*FIz|zfkyVS?%16zER>MmoWr} z8!AI_tGo@CzB%zB{<3&lY(W|IS&#WCfLaW$=BxQ8$lZcVs-MdK@g(dzT(G#TSn@st z$Su4L1D7Tc-9x8~KM>c+%U!+`duM0pF?_u5F=q4^J}_*rRN!%W829Kzcd(D!U2oB5 zeY~%;ZVkgrypQ#Jva#m=)$6dKPOat6MF2vCm=|6`x)&5nM!eY6nlB}+&RTz&C9Lrq zFRrWv$xTdv967nSwTY5U?hR4crJm+rp!Y?Nzfq$OV()|f*<bZ$McZ_=(1;KeFSLSe zJ!h}IX7uzbSs@cDCT1&rs$@2kr}xz$!1%@qmcU27N_m!jP9UA|jLL#evkmH)DFsRr z!9$~Zhwi^=Vl^n_YvhJRQ9hzl3vXya1&#>Y+=_v$s8d)DJ<1DLLpERoFjrC$Fnx1D zDluc|aAXg0wIFOI(Oz=%&(A=^3OQ*2mQJb!aJplxU14y7d)=7mXhU;{rQ8@YTy!E$ zm1L&6q$4)QYVFQ!&K{(M!Ylc{rg6yCk31By!dIrbP0Fr})LaU_oHk~Zpt6(d>Ji`{ zb>V!gqjEfyXIwJ`Y~3nU%jtK#dYdzkX^IsMJ$XHRmdlA}@`!iqln;_GLm9KAH!4hG z-ZmZRkyPl$+bF0)i=!V#^r83o%~+!i29<=5>L}^|o+{XiNULIwn2h88Qxv1qExNzo z#(nX&dXlWZ6O$IUW=8os4und-idL>WG0==q=YYM5Vmf~CenK$td?AA8rUCY?c!ykA zyV}yjiKIESoEEMQ$`mpp_jk76&Auc#9K^h8!mtzEv6wuPqLz#dQ%sDz3p{@6V7nk0 zqeu<L2@+U%&{adGw?Nju7laWiHS)r!g<lv{;37L!WLbW3(C{+GpsK8Ru-1_e@<6V? zcH;T`z;T~dE7;=3(FM+56=yl3)cY_AJn(smGps|*I&p^B#eA)baW}g?<LY7DZwoeo zRC)9oYwE0ORU0PZv%WN8r&A7t*`L0i!_kTXD9+;E%vnZOYCh3z@mf=209tE}-=1jT zn7XBSUck6$u;`P&SmprJ^?DArF3j!}MQ=f`f?#oV{zObET<8*o58Cm!0xW^AXXrds z%wByLl_5zvN~m%3@F7}XFW6rJGE#d?S<pyQgzWb@9@W^A7{@~CbRYiY-_5NsN2ls{ ziy79NuvIA(Ela*^v*Qi~5wB!D9pjn+XW!#u9@ujbYzv{Bu!3soDYV!+ZP>^asKTbx z1VvX5Xc2)Sc~j>>cE|V7yK?w^kBNq(>;OEFhR4aS>g30&&@oGPG|)JA)$Ot%)fG`2 z1C{tyy7?ndV$EnY#~t219doLjPZ-=IV{4n5S8fAK-m~9u<QsVSf*Lp1JbQL;2pO|< z@;Cb!xFZ`GBb|yqVpAHe4JUEv_8tjX@0orF!c6X}6%Ps6Kv_AV$}G@8m1YcScoL1M z<o-xnouy^^@w$yKXW+Iy{nc@#%3*8P>hhmA6U!rt@sZX)2s~jzHHf?!b#KmQFBLD5 zzpCyTY;9jivr!W=XQ$0~I3{DzxLCz#vY$k^gS6-53q(%{In`^Sf7ZmTgyi+>@oi$s z?B|uZS<<&(fo+o*0XSQBYfn}cH!0k}9i~Au4Sf(P=`(<7g-SRL#(xd)$rX(2{@%_; z2Q==NKHPUDSO>W$_cwA$gfLZj_uzSPrhni={}t?rA6WR#@GgF*uCe=H_h9siui~gd ztJa`<>Y(}1KI<p{u>t<i+jELMFZ@Fhk%lM_QK){$PR&l#))(5iY?h?HhdAdHxdmg^ zfG-H+s+vCn)olPqnAG_%_OthwcnrN929;_jhP4>)L4Ro$goN9bJ5>c35H`6xT-;b> zi6%p)!G!n?A$>T}r88!2+0pOw9GvSB)=#Q8Cj)4IKPn%8Amb%Z;lqY{xiS=B7Oi`* z8sYaPBJQH7FBOx7S9qvQ_c*)89$Z&b<gGk$#pn+i;pU5PQiA0zjSIF%qf)qJlx4g1 zyyi%Bbb`-~_b$cO{C&9bIwfC^dlxyox^SJ{+!AsqnH!m_f|M9D6=~e+s^Y$<lIR2| zmOD13cP4jwH(k8#b>DO|Yh76oapvk0nitxCe>8$jM9b!EnKWL<T%429^62%wd|%hP zbu|F-_4pHtpR;<AA>C-wPiAg?{R(6^9gc1?kFAms{r6?=t8-Nah*Q^VugCG<=D9P+ zot<n)^pQy>7RG`H{hU>Grd8^o2sp)S0e~;60Rrm(g=55gHzJe6@ggv)HIVC8tTj;g z_#TU6vH<reqO@TYF-EqOU4H!DSFKLLF}$P9J;t#pX$0!E^~-c$G}#xb&zEo2di>=N zuK=H=fq;3T7h2)fVSYVnaU5@voMHSxc3gSO<uq7&QUPC;4i^)rQW`92Vi3CITt6i1 zq(c2&St>s3m6%dL*X(rI0eXbzX++BV#z==r9l*E`LrGenu0YJN$<m$ChnMlUGTjNh zb<|K*IS@=1_n1Yf9+=DvQ5|;!rz<7%y)>;ts|snyF$Qs&D~ux7ticax2&eSFIu|BL z<~{<PXsesQHxl6=Q_B$L#D}m7>m=_MipqAI4ve4U(y5`s)EJ1-i#adpw+ik%Rkfv! ziEdZlD(d#@={pWoWpftQuCIC6D*d2an$!X^C&p)|-xC{^EG};%sSI)hglD0JTxMWA zC+n@YqJ5@8w6);n=4xQcop?r<j@?TF+?Eq^>^*{fC5Yqqn?gW2jJ_Fpq*xHo>pZLw zp|0{)$Oo8|&c>u<y8Id5M#J3gAoa^EtwH2iCN6Q{C6i;Po+>^(@XqmIh}tN97v0zN zCHW~%G>bBjvY;+L7E_IDAW4s5Brq$`5p|=y^aAqj48!OdFlcPV{dp(@D-|V`&b3w7 zqHO9<7J5s+1r_JVv_mb9-JP5L=%ngKB&T|k{PV|UJ4>QLTA=RCKxfd12^iUlBHWg` zg7uSTR9<9Sd{lZSAu90hC3UZ)2(Ej?_XML5c1$vtKClyf^HhSBN)@8wnLj7;g<EYf z3Cshyr~V!^Vfq<)qYazGg5V`5j*@~mJY#761T3cOAIKujkS!iFqSAT?F;gFXPimw) zy=K8svdK~BZ$2U#FU_Vcvl?_<5~h~v1Z&pnyCvAY*&j-*r1}|D>1Y^W8!Sv#-%*BM zEPO^QTM)uLY-{!X2l&vud9EUQX{-rK8AG=?Gv55dKa0n7qAxd`qj=GHQKD%X*CVNh z5)cz<n>dm|NGqIsZ0dd{y-AL2vbng^9ehXHA;uAx5D;-6<QNv&UaB*d|FEwt>4X}0 zKVmO(;f7aJLlTXN%n)^UZszx+Jbu@{TuDK!E36iigYKa2t+u8l&I#UPn9^RPA!FND zU^@DVb=<d0><G%zLt5^<dqd@cvA7=!MF!o)cKj-Q3p_-;uT$CI4g2g#|3TpK6*~DK z1y87Q-wsNr->5cnV%;ULTF+VFTYc-Y?!EVXBQda)9eDfGiaR#bfiYoe^Q`ecNyAuO zKdfRjxcre32SnKt#WaHVFSVhst#jYWNj&|lI7<xkx8~9|n;oWZh1Em%atq9h8QpF7 zh~A(1DF|D>*7o@m%>es&{c#G*X2rH7i#K8#c;plQdi7`#32~rIS~_hvF6w+F_2stv zk2cgpa1%~0Vt%wBZ`RO;Q*m=x&Ys{8{~nW^%ZAXg$AP8qZbI~1Czc)Y%P+8wh{V^d zqzMf@Mn7I!tK9I7ie7?YnNuzI2oCLiRZ#3O;u>1&;awvA>bUkilR$CZ;g}ff2UaDj z7s=-A;$cjMiDE$B_)kF=sGXQ=*L_M8tW!1CmUKxb@@`(Nk+rG8G@LtL8YNmvhd)t1 zFsnzU$iu3!DTk#uQ2E!@wbe`D^U8Zc$XGuDdQSR-&F-TBad?BqN}>Hux7qAm+u44N z|FpBGZ4;|JPs6>yR_@Wski>)=-jcd4vw*Qi(r>vj4?<<_XTTU$MYmp}@SUN;b+bXp zh)Vb5b@5ks@2YEGXEc-7spKWTXA3_=#Uc%)r#eA)iFLRfLu`k-mDbSmx95W6$gcmY zZKM``=29~rzOXl9ReDAG*(S@Ft!Lqr%G;QnYpPPu>U0P;yH*k3*6(FjZt_WN#C8pD z{M9*FKDKYR%S`^gl_tRibZ79El@T`kj&}DmzDCO_t3}(IHbj!}$9AAX0s+q9)vl-Y zCYkTUv@}y3jaXUrWE>WIRD6S55(dI?*30KTlrgWR(m3u*Bp%;y!}ixTu5Cxv$8ndB zhssQ;ks`KTq0(P@uo-;y+IQO@<<7QL9LXw7yg0VhRQ(02y<4wmf^VjeylY3V1#CB( zjQZr8Gi%>OC)Y<LX%&XDNe>-QMRwEDN-8brx!;P^t5wtP`K-lDb*x47n2s)Oh|wG} zcnE3z9&}}z=Qb5VnV;f}jXxI}O2=qIPl48|+ZKLk6;H4F23{$M!=FOemG)91m8}kU zSE>}y!Y$G%=n=)0iNfCqm@}sPnnigRdhsA1H1X~)r>Cey`BKtEeAZ%JqE@Nyf-4fn z3}<wT?@^o%I@_;kR;ka(nv)kZLLu0R@)WcsQIlTN5k^@nP0%6Auvwba^I51)Q%gxE zl^=JZ<fShcs~&D=+|T@acr$7IwC+z|c2(WPMe6S_r&NA!RTR`_-29>tZ%`XErYVk4 zUK=_{8z1YS`xNy3CbM<pfSP#L#VgmqaZ5gob_w5RZTX`c-2pnjI`DKhXNN>T6cOLQ z2-lexlz#>k8T7_+)c7!T%8(1j(kw-%k}u+qJAl#4q|(!ICd<vPYJhTkmE;lEzMoO_ zT$?=)t^}%8aBb>8On7hv_bipmEoS*qdl@p&9mMP`xNa0MlSHF}^EcTnB=m(YSukqM zymN_Gc~~nJX3;Gs2KBbTd&yL_pyR~1_*Ge=C)QRJh1>?!WD23B5_5)~rls-}<pdKW z_5^2J-q<sCC4OLxxh%U25OgdcC007rL7MKC%uCPHaRKKbKA^3lK-RyFb@7X4`QqkU zWIkMGCcYE?OYLNWgBGgcx^jYN_7KE{!T-Urm2)J`|4H#`KUk&ep*^x#qi>-U?w}l2 z?JmGP>7-t{b&uPqgR*W1P0kDk!11W#mtSkGWW0OJP|wvX!;ZIGh?aQ&DH`E+@p8Zz z2LlvKKb}Us({^?UzS-+zN@i9~L9KnsB?TcVcrX0WkiI<I?`c#>oNx|HM==cSVfZ(v zuk|gg=dlP>tD>twr><Zi%+ngDRMJFVXEfTgnIdZz6}c8!YBdGF=l;pl7O#RdQu_6H z0nN$5%i1Id)mopJYN2*(SKY5GK?A2u<g|9TS~L`||7rIaf%Plm<R1@?E0l-ML&W}4 zW{KRAeOw&}B^z2xQ~P*O6Z^NreC6A&)Y*@?oLr6bg*3i;&P{=K%PE-)u0H|C&4=4V z$*F#oZ{9Wa|Nd5CQ`GJy?~R*Rrme+GCjnWQc$XmOrO!Mfu@u&GoNp!AF~QrZv%zGJ zjZ{!)`$Fd81<&p$zeBr-s>7z<N(zxP<X4iJx%FU8<Pwj@Roq6an2iBN^;mVrD!M7_ zv!hcW16#IYb6<jcT$%`)*7)#^ds)_?9G8~!EFGg;>1RNu%=*HiI!1jlKhHh)Z^Z9` z?MxM6-k<ruc%=N1-UT>%>J1mVp|*X$PJ<<d#>OB~GQ9rcMoBQ6c$rAse^D{!k3`|u ze8PQw@*1b>?HkubRi!Kplw?L9EP`}0*6+kL^*jgf9Weu5HK$A~RGYZ}4*<hJJimGu z<0!3V?rAa>LOYm_a^hA{1hG79u#g=_<~AUMP&o?gnyIU!slS!OC_VT`{{W;s%#d40 z54(-ayQD?LWu?SG>{VQ`Py=xbUWz>ReCXo9=1!QnOCIO=U%UP2)#tXevWn6vBnZW) zky(nX5E_Ci@6$<(sw?FEGt}oF7~$}DwphF-R>lk5d9}&`Z#-bCDa?Wj8U{l`XjFr~ zqju&Fit37vZ?N;7m)`lV$xHQ?3rv00+*el+yB9E8$8r^sBvPaqHX+EU{WLVy?eebY zHa%=vzDn+#&Nnd+Yy5!(Gb>3o;$A~ri&-MOAqyh9t1j^pP_0+@nPN#5%G+>N@p$Y; zKMDO$w(@^tc{R<{b3q)bab)A}q=`X|Swb*X3>i-^J+{(K`Nu)u9t*hpwY$IN&e*)V z$jGx#gu=~kMfHljqQXud=eog4N;z{%@$~fN{{S|+`J~e7bJm=z=s3oAjsrR*##mgb zy0&|Z*H9WoBKl<J&nO3p4uq<ZX<yaTQ@thfl9;k^(X9$+&E1Z2*yuZ+(iUr*23RhP z3MCR+F%Dajat-X34e2%F$8EK-S=QQ=%$7wp9{gL7?mv!u4-=fYvvC9&YZ?1HxpAvl z*7nlwTbZn`BVKYl+#!(1DuOl&!k?zLyP4SH_7Zcvp4Ynm^ZRENl<jWc?hKYU5qE!^ z#aia>?yez?A;et8aV^Y~LhKsZkjD__M-N|zO?Ke&?PaPZo5oeyoyW9(WB8Z7a?#=Y zJG}7u+xvx+*tEu9!*wK|YZ#J#A|gTd)q!drhhB=ZZ*$Jj=(c$|?cHLG`a+Ua^y@>l zbt_{}a<$0N<{ZQhSKV4|#Ezq{mbso6(7MZBp`u%E1A!jf4m?FRuhUS5w=SW9T;fL0 zXSh97wGZM6)v24g8)NKhEF*vhxSbUEpxpjj=)AMBtBwO<ksU%tl~L7=I({1GXF?}b zQC3~5EA+0AEK7Y8$vJ4qW6`4v;oyHgI)sc38%1R>1ND<$yD0M3-5X)-Rdf$Z9k={- z22x3tc$$OzbVO|W;S7<L19k*g%UPgQM<xi%A?Hp2bo%+76=B>E-u7lT_tdIT{{YZv zDhK1Dtz-$SDBaER`L-tEL7^Z8O4sqHmaj~LTAhjxOSZCWArZ#Tz5s%Ettd#>MQn() zB+2%+aTJfYa6G7Kww+lD>dFpl4|fx=k|GE+B8RT8TP=xMF%x#~LSs<_3f6^z@YPmC zmZY5|3SQcH*qK;ITJ7X~cGLTW-2r68MG*~NU~lyNblik>2Ww>51*iLH`hbF4C$7S@ zCWoe)U|u9IX>z8#PWu{H$LZ5gR+t$XNtU63-(Y+{9kf$Io2-%`sr&^tHS4F8z(^%= z)Dc7BvDQdXm~LcU&*xpgZ|&BJ1hu$yH!o4OYq2_LT};~;MR6l^0)~~Q+xZV21dt_@ zERq5^)Sm%bkK3mdVQ%tr6$F#ecvHvo&@&rBDWF}y0bMTaZi8E4Kq=IJmZ+GrA8xH7 z>0Y`rXe?N)bh40qKDwK@ReKkF78=wtn}#F-Q(y9?xvzF!wMRp;HWpWQgAze3p=Ux* zq*HU#Tn<`%j>QTfv&iF(3x#hV{WZ;0blK<)SN$Bf^RBI-1Mza=-6QyF`YEWP?;um@ zsiDi-l4;hI8u_;W0NknXy(m_Dn*k}ucLlAz?WD8MYi?c#oLf38!Dqm@xmd!70a#G~ z01)xlyL-)c>Uf-D&r_KsDE;km#d#=_eTk;)5~<vI5#g>IJr3-9ozJ{*(BIg6X)37X zw=Wy@-ZPAh&;woTO>=m!{q~NJDLx6akN2-{*|skoa<K(wv%a0m>`9F+c#}^e=9={L zq_#ZFOqb$*)lTHe99%^qGd0l;(T4=a5P(MAYreeP?WHHBioB6ix$G>}y|vy--f$y= zOaB0J15?CVO(ID^z>T;X0j}E7x~6cuD!5|YR5`1hg4&^2*?AU_)k=j>z<@b;Hj>T@ zRZGz5SZo(?wnlqPoPw&^lmM8-zUMSqC=7r)`bg+U(_HtuN>OD=++Tl+OwK}V&MPrX zi9((rhGbL$Q4ymeRR915MSS%-x7ckvg=4eb`-Zt$kxl7B6<r+3A}H%dMvibu^L;R_ z%Gh8&T!!~2B>ll`(Oyjj&67_tc3~aF0^Ubp#xfg#0BrQ2{Mo4jYP%h41M`n*WV=T% z+9nemxp-nke{e|^B8`w1MpTtSEDs{5rj9tQiJ7~Qb}geDxEkJA+Eup6yR0)LqzN)& zR0Jy>$}wOmu6w5^PBx%F<-4hF{!Phb9tfhAd^P(zLKzd6*gy$Ya^+|R00+ZY&!G$- zQziMv%F`{`7FTx?M%OmibAR=nh`5Y`0Dde0p*5jWdK%M9PoqJyulEqY<X+CT?mpDL z%-Y2ic`FRQRg&>zUv_9DzqnHzj+|Y9Cy=SzNr^U7Hi-$b7oG3hzaC{fmlu&+xG(Lo zr!$O_+xeU?Z6Q{XC62s;R0iau(gCeSG_D&BzFdBSD_oasU1R6U<T3XabKU)<_{`Fy z!^P4ol#nFoJ+|j8VM-eEP<%nqY4T7yX;w#A2|K$E_uaz|LGqRs=GH5V2_0j&3S&0{ zR95~>r`DnQdZ-5;lxp83J|q=7mY&A>cNcP)-q4!GFxFTu;ETB8vms(vofbncw5(Ld zj`t^F%|i{8R)wWC0>!y<>>>HTv245dwIJ^d6D-+`CAl&SdQ5Mu70<X7#!X%m$<=>V zIj@$6D?Dx*(CEv@C3M{f{{U;9`3J;TU9FwW+kL3D&P6?q{56^km5jn@a&buN7{?@W zPZOX3t0aD7)z$9Br6bOGHJ0}~_jG^c=3d<HiEuc+z{cm46@tR|7u}KG!FlgG`%fH@ zSkP9qF|b!scl!Dj@)On7qn6k#w02*qUdsOf<%7EMmvdM@#Wq&=5N#|sIop?HVgmqu zyFd=aX#1(^i7a;RF8=`jw|s_V9?!=ZXu%?dvRMZpP?K6B{#r{}B_(M~PV4plr&#!F z{{SNY03dvc@_%f0K6kZoSlm`#`U@<T?X=gDOAL1<V2(vHut7=XjZYwUZB8owB|c>0 zPjf+U48%LBSq|k!;=O6MnbroYk-TLVB{drkw4nb0hPhfTCOzd})8XJZ{{SlMaWsQX zJVA`2Gw#xWR8#3)KNb#Rd2E__O!7CZ?nj25Ede@*q?fkvR1a}bcy*?t(DFcYg`}q9 zpQfUf(c)!coviI52V=I|=^7X+AdOR6*Gp6_j5JJ(RNqx51w4#c2NffrVNs^wnU$Io zUqfyQaT3>au%NG=ol*hMQn`~=UQaA!#zCkX8u^VF44m({B(e96VgQYRARqJ9s+f(H zTiGBSj>D}5HAIBuSFdfXrfy7tw^Dpb)2T$|F+I(VpsivaHLprnrk_?MA$<0bC;tE( zY5?&S{{Sr%Du8E-K0c)zb*G+~z*h{Rc%lRN0jEUU7R?JiNC0^qtNV3SN*F6zu{}Q> ztEWs1`7LFo2>MosMnr}a6`YSvzsLLOm64!lZHtuk1XIjwa|aeOhY=?cL?qIcr~2qS zn}EjO1AR3FagpX}U&v{F#5V`fYX@yz#sf5Fo*gM)9dB_NQH}9kt$lXjLjyY!HwsDW zcKkKH#EhufbF=ufxTTBU`$jaSKovD3_iA6dqUu$6)@7Fg@jgoA)^H<Lr9&P60A{6c zDyVw+YC{B>^}e%d%vwB&m0n%+y?=w3P<LD^W~m1#+*KmY^t9d$o__8-`&#vFZ? zDHI?8iu$};SzXvJm9D@ynKkD~$4?gW8tJVLYgk?VT2FSoyn1V+ih?|xpO6>jZhk7b zgjGvk#Ib^C4KLt&j}3q%{u=nd{{Tw4KB2#mN%C63Ew6X1syIn$iA3o_rpFPuJqV~h zHSRYx)4Ai@OEz+wiVpO+8z2*0s2%_az@<mfYmu!P)s5<UH6eVJ*Tz`cs_{>A9Bc># zg?lJa@vRMM(|vJZ{{WetxwhEk{qZbPV69cG5((wS-P|P5%^;3A>uee^6PYW@qj27u zc<a;2Jx?WWPyM^o{_uc%Wx|`_6$MGEr-0n+hsl2_>UioDjxTVxQ&?n$mAAe3ZQSbw zNb&oPB$M1J^fLk|Sa^8ryAA&U+tl;3)8{!nF&lpByoEtd0#u^{2rCp|f)9v2b<LCM zI<PrsSMC*^zDMq4h=u2S8lfX$TS!!G<SS0P;i8(IJ2rC8>g{aLYu%-l<cWBKIOJJf zeZ>nSNP@h;U_pr1hh6P7;hbs8C3v%VtOb{Ftd6$#DI0{2MU_y=)6+j9pdTZtyH(l; zb!kf@PVR>DgjqOZybtLKFeuDVfcFH8^b}>&Jae-at{I83{h@r0OjBaydVZRSNv6Sp zGDk}P0Ms-h%W<@1@MAlY!qqNtxoEGUk&6hX<4#@#5+p^Z{UvlIt;3_!alC&a_Z}`q zkGS#8BgYJuV)9fo4`OKjxfD4qu@nQ>x6+y#GgnQE&U57)C&(By#mhCmHtucMxs_vQ zlazoSWszzLrx$wkrh-i<TLsIqXF##f<7Vxg<%PB4ESVO)nQfg1DHeO@xQw8cC=Cc9 zkkx$jxYRZr)|5f<@<(&oS5}vb;t8>M@P;)E+}6M{)m@URNcB+HLZ49iANyji(7>Gc z#~FU#g&opcJ6T>RiR1;ILm_ZjQ?CG}zbz|C+%|99Dv|b@!SQ_E!-tY|%0U&6-73!B z)x;7l*SpOdl7<2?PCS2pnqMdbX;D6;Hx_poJXMSLU9G*|H$Qe|v6>poBy$UR9z<A} zBdZZ`l;B7|T5pnEv>w_h?nj58D~YqjW4<`b2#xaDLvd+%7lpmlj*9BCvegxuv<#<> zN$}QJY5c-kiRg>(YJ9JO#CIMh$0v)I3v-IQ$mZkY9C5<e_qN8;WLK*wtqh)l#PKb} zRO+8qU_{+-EfjwC_^K>t$vB?$_@%97#AYw!mltm_X)LTVO)yWkki<duOs(!hL8nye zlr*L6mm486(zlmaxy?RbySB=Az217l39T*isFyI>T>>SA0cZj<00RIb;;g$6zmB?b zS@G26;TshjLCRDBZb%<Z#`>*_Q*)<D7&dKS4<){q3u$9Ct3z2XTpIbTN_Wvt4t1+% z?N`Gc&fVql2V-||lbo514kGeWDgly9D8!Wf95%WW(3O^@;wR$6nJ3IvpR-G4Ax;Bg zlFfx#O0g8!pWC;NpzC7F)n@dt<5OP^>%Z*K`H<67bb`s4GJdZvM0E4gw`4McV9+Sy z2pjbJ{dG8FN<i~lTU;`iDnRN*Dt7axicB(zQ7zRticoYF{{UTRVC1?R#!-50^y{s_ z+>M%bUYgukvIl!AN-8#CQC|<tYL!h0*q&u`T95YCl0-q8-WQR6;1a*Y2F8a$k5{Qs z?|#o~ru(d92*JflDWd{>#cEEI9kqs9(AI}GzwE5%BgWnM_<_0nwbkxa=i>Sm+`njL zZ9PvL?Z4?XABm+uW~j0zBcm%fR##E=ENM?qkN&!OMB)&-XfEY`5yr*5DO3LdrjCGu zC&T3B1p7@-6GQp#bU7q$7HEjzZjYp?HP}?|rsjdb_~53CcTzh3?YuwNP0cep8k}%K zdF@JUM~|7&OjeR5OIVZ&fJcexO=x0B&mCuB$pp(zn^vN_8uTflaK}%8vxAaAg^%#E zhWu!JI_Wssu=A`+7~AGMdNe=%2+7!T+!6cry}Nf0xn99mxjRW7kfNX`W!k^DM}tDU zqSxD#V&#}6><a1Bfwtd4sog$<((+m(Ya3}ywyF^YO0P}41$2t9sP?wH4{f`qFJwf^ zz=1&ONF?|YKAM}r<Z9*_V{-7xATys!Y*;bd%<ZjgZ=hCCnBmJpuYF~46sk>L5wHq8 zYENCfbSAqr7<;Bk4q|J|W{`1N;}sFoh1bT1#+ol0PtZk?wdyas&9sBocO4GY{{Yin z6~>mtUPshNeU=PZhNqbt>8(h+3qPoibmyx<DL*VGx3#(W+Wx}s%kNT4g!WL(&{jsj zfkEb?qLn)MJHu(8UlUWGPlB?7CW&LqSR+t0F-dQI2T*8Km0~J9POPojlWWke<!rHb z`55JkAq@Af&c$W2meT9glrBdijkj8#+p5*uuEdg4q1q+9&S33(E4i^4*UT;{pqSdE z!ZKN{BOs1d0-;Ypb<Iqia<i)<n!(IFyCFTzl3GiSyT|>#g!T~&sGU`sMu4d@1>;IZ zzTP_Y9(7~QSS?mH{@tg09{G+32`3?V<J)k=t18ffI&bH$Z1!AS9k>^A&D`<ZU3PGk zagmxn@n->*xO=xOMR<}&Aa<{oyD)#odHI^;wK)Mq9pQT!Py#f|!(sx6q66^QYFGMB zj58?gSu1fb${oN8bEaC<6+2WIEvh&3CtMWKBe8XoyYsb$rH)GFEN@}IfV@%Lyh}80 zBT25!S~=rKQBqV^yQ%sU-;wL7=T&wH`0E=cOB36WND!d2X%N4FiU*RN4^Ry?3~}zA z*(ZTP?#w-vhkn5wv}mbukqp296sWx_03A4iuA4p1JX4_SxqdxNm6i8#;-@yVSxIki z?8LldaVv!^N|0&`cnwbyZjw_rmMPu4hq=jPvUw+;jm|tP#QR1~V)qDXRihvS;!d^i z4Gmf+R?o3r!JJ&2HX$W9Q!+$gooY+SXaOzl$-O*D>!!6UyCkhTA~;SY!yS%#0{8KI zi!IzmBAbbo{UueSEl<V2(@SbMs$*59qYSjPj@IBWYv<*%V$@q%%OI^O`anw1bgDL% z8t62pTX8-A0P-hmnG*WluPtOyE=`n#2NdE9p$-ifZ_p3aX>{l_QdxU9=1$MIvTR(| z%>ziWLKayFXz48Sl0&O2Rqk7>FX<Gng08Y=+;K&px300P*f~5*ch=L&_A6~eRt+R+ zbm6Vog$%=zimCA;opcg>hP(MAs7_wj-|TMQdz2|9mRAz+0=^D0;I}3qf;g=J8`Sis z=~uYdTQVEo)5T}I=d`XeMq_W3#n{Ji*7KMoEopOSZY2zqA;6J`t7El6(y3JpP4y}E zHW&7IJiX_3EO`u5-A97T+bAOC9j_cicM}9Lu@B}Ihc6vg1)Vht$4@V6U)y7QE_cVn zVHKst-WvQdSuSC;ib>T4z~qT6r{0ZR6$}@m>6NY5QFx~N5%;v6vGRv$;(KoD#tz)> zoOHJXwr-|kv0hl*%O%snG^iYVZ0z#J#GhtPN%~lUS~z-Y3#~Ocecl5x+Zlhb&soc3 za|=e^)Sv*!=AqTrs>nbzWh6BYy16TCO0|ty(=6<lA(*tp$so5r#$M?qEC4e_U|@lI z3KKFF0QD`SlSFc3TA!(Z*d}><hx=0Ok6$@4BO!=zSTR+zzMI<wF2a#IP-@uU$_$m% z^h(9`)5wVu2=@K|0N`mPWR1A(O%Oq_<TnPC&@s26fh3aOhT2imT}c%xDf=~sHV8qf z{hGp`8jtqY0UK1BpZC@=3yPg%5XhpPI%%X>2WYF;N@yZz80?~?^aHN`TGB8%u?WPF zYNmvAHSr%qq-{XyG%N1wdwbk#m0l6S(P{%3I#7<ZrsGh?+OgGWb<pK^SbJGmmWfLe zXj`c@uU&d6oJs0Sg}08v<XkPZY!LpJP{5xpPW6?m8m<`X_dZ$@me!C(T89Av2B3qn z8j8Y^XOWb<m1dusM4+CE6aoHP>Qzv3+RjaKZEGdEeasQDK}Mp0PnMds*KoUNRiww` zZwnHI4*vk8)9@SW`l1dP8)0#<nzKm9#e6>yd^JU8MXIJt6_zy=&^1QD6Q|Tx>jbN9 zX1j{lpd|R|l#1Xg+8DVWF_s`!m90kGe%%%*-WZw}0i&QGP>?$LP<?c(VVteU78kzR z^qLd4w*yRUKKtvBVlWTttw^nDt;HLYW>Y69aDlo|5NW33EVMbX%F2WFeyxRQbR7_R zGRbL?x>$B%IrRgl=i#VAlC`sgS+1{@m)LGJsXNpE08KjM)K?;WjM+e0oeKli#SZ$t zIFYv|EivXNh)D&UvMW?`SlEh>4xi<!&3dsFZ1zArb3XSUwUd=;PA8Y_rk-isUN)VN z&NOQ~UyV~D$JBBb=<);U-z5rwK@=O0J$`$A(mvNjg!BER@sbYD`bh*-Y%5*IhJuuV zxy?J?)vf!k&DBr0Brb_35>&85QBkop*H#vy8P3z@bo|wYzC*S9YS!Q^oMRH8RyA5# z#GsBO5PeiT>yfw3omZ^Dk#Tp{s8+)xbpq35ONMly=nBisQ&gAKoI=o3@TOAxA>Y4w zdg4jkU8~8(V<(7328aNt2g^^He3}Oat?F%=!eXB%eIUe``P|(BEv4&5%su%QrDj6E zu<BH_EgTDF=vK0JIICQWtPOORuChw$cN7dt@d{W^6K+ihQQ@wNyEP!Hs<a&kJ3qbh zu72t#;}FSOno$1$1W*!b*P!s%Jsz5sZE|d`e68F#UgDLmFgKB3#`3AGEy;i~+_<Wm zFd#Ut+Vn50(DSOC>R!GRmgdgGwlWs8NoR3yj<|H5HZjW^3n|4^f(Sa~ul%rg-~Kb1 z{D%`a$hJmi=JH=f%+L*u^C%vbQPa<VJ#|}2IB{-{u*qsZJIh;$Bx&0v3&%P-h``}& zyh;_RsTCwRpdB?o9sGs7l({30{AG_^g|150c|=z7&t#LiK`N|li^+_1Jb(jrAFHR1 zmhLQv#=b`&Is03C8E|(P?pH%4Wovx|&nYB4iw)tHu3drTrlGw+1@rZFU)7wHLq6^8 zYZ-eB8{Bi-M-A=8#z)=}NLaLED{%^kJU}27AZ_LO1e74!Re|R1DKh<qW0l4-MJ_hV z-dltUKb|Ejlw(SIX<fn8s`Y+_^0c5+inGiA0NTx&$Go#k4ARFu5zs~<hyq`U3^u5* zr$w~w5D1FQpMCV1JS*k0wsB8s1me}@kOh@wbyoxx<Y+?;#~;g6bxE3BNsDyF!)|W7 zdnI*?knB*B@G}Z*SxE+)b#Kc~)sR!4LeYxve)`8)LH$DAb5;p5+#*9W0q?}=AafWY zNvbVqo71k6O&XTWC(FI9l+0kI%`4+%#zeOA1&E>Ivs=trgp&0F-)<**jfRtkgDbvL z%PU{m<vU}%Zf&PY;Jv+q`q>Fs<aLuP6RU{G4MGX11JnDo%1qvn58ZeRJIl`GpV&cq z-K}YPYdfH4hT_WB=ZuI=2q9q##ZT!PoTQT|_hQV~Z$*ci<V_o1;Ow!M7wr^|qUl#9 zaMqw(vPKrL-A1lCaXd-&X_=0F@+WWG_U-;Q*8_YeTy@QyHkMbO=$^t`5%)|cSL4Zj z*<@5!AEo(MeRN~HjZS=&T?;SAJ-K<4zKU6=izR(<)=dl+{Jq4A-#?F*<z6xvv0*ci z>T0TwRN|oM+bq{m(+W>R-TwgiyvzRp{;}`Q#+ARF+kMY15CAyGcWoLIx15%*O?F~` zDa)F_G3_-3bkzt!xCHA-pvV<8){w#V8=%&Z!MZIv=opri{{SJNV>|f&0O_n_T9Z@d ztYbzM8o)H;zWeJ8YEr+qZ3#3Qv?P9hTc5*8A&pP1qmd?82uR<<=zLC+?KJ~dWHx7s zXzmxt7N8p9m^zXuz1ZPVxyZioW-e<`M~6+TO?2TCCdW3qnz9oP!^94svtE)&;dbmR zyu7%GlMp3*K;QEkbeB<NTRvXl<l{p_`n>6;;DzMb_uk40kZuo3(EU1S@iS~il)1Q- z_)@Ajt$LH=s#Xa$#Zz2O9?CZr>(l(TM3+$;f)jIcPT`0<nhzf>RV0bK8!5Pbkx4xP zruEZkC`!e26!K2A*nf)aN_z$v*B>I=p#K1ysjpwAlFC@=z|C*}08J0q^U|sT*@auq zhK8Lwol#U)#unKoQ9=O&a88?uk{54rZzJ<yYtRr!`D-N5Weu(Ft(J%vuTXRvW|6(V zPznLC6sD7ejmR(hvTn*p`1)ymzJcciu;2TSL--nX)^rCk;&%(IQNa=gMd~VPN>iwz zuDRY6-lt7-w4oUOw0Lv&*W9Nbd`)RyU3~t!-pGCCenI8{m*RivHwdi_#q=SSmu5fI zBQ&Ag!(Sxzx<}F5S{zRE8<WD@<gRRHp~YK4bjCK465?gIV58b)1ABqt;jdoUl2Un# zBO|fOX7X7(JA9P#NVeuz5j>434efOW#d<Y2I*$dqIxA-Fso4AS<28Zp&e6Tc#*;{4 zbuhOkB^uHWoC=zQN^h?|sXUD{uPvQYXruoC`d*gYA;{S(td*mrtf7L?kOYy?&=Fnr z(C{4o^p;P6*25*<zj0{`MFfp{VvbTB)6p3<DouCkzNO?<s+PgjlJ~rOZakIsmF>d8 zG#7V~$g&1XGF?aj1(Xh-T_thaB^#A?D?P<Mh30n8BaXU?;u&q{goxx;Wn>)vL2E!k z*y_~LLlczVWWD6!3-TU+ii1pq6$h<Nv>qQ#L29J5YRa#6{C#a>WqXs2z1FuzaFa%o z3MnF-lqvDweQbGLz_+ASHxX-@Z;tS(gSnd8``C=dHN3_d6jg%&`|Lp=gV#rst>iYO z)fC*Vr*c7`#9a3jl3Yypw#gLJtYwe?0AM*h;bjDZN!)9v+~q9hRO4j3oddc4Lb>he zpSR92F757_F3rMRm}OR0MJvVBp;99h+#U3oE|pp-ojY6LRDL+d++^`R!-u!M{+D-h zZQ+XgQe#Vb8V6A$I&;`kq^_SLQ&Uk*8Z+L#zm4tepK12hk8s-e6IobVebxL37C2>i zf(RsxP=$=3P(bxZM(TBIYT3-UEnVAqxetVKF-LInTiIV^V@RA3vC7%Y#*hv`P@ZT_ zJWiRYNLyN1M`=eN{{W(!$jl++n-gSGa_p@i0$BP$Wom=JA>pwa=A_MzoXh1xPl#<2 z<G1hDN8+Sp#A?dy8NH~;PeQQ-iqMfwyfo?j{{VotOWOnZ&k6l^wzGCJTbbiYE^Z}^ zCnAdtf;n?f1t1behxymQXa4{j6!z{BGT$6zLOVv-`>F3@a7f)^w^A$ONPh$2tsgia z{Af{mZFP_BEKhLbNAnqOMf{=NS=dh^#8{ylfP{4Xbjs6ag>_X)p|(allbyHiYnay} zZsUeaSGtHGZ+Z`Uf<*l!ZaD?i<wTEVtZoU8OE9Z_+qoI>hBggHA9rXPl>q*rwFCI6 zr<MZKXYwz1<E?I6KW4dDFKizca(1j|F<QwKu>h!88laVm)YGPwq{W@fbY1b=UDb)p zCN}XzkA}0bj?z{FStqv0J;6}41PV$iQQ&lzqtL3lnPo%e<bnP|%S_0uB*=*gpk=I< zP#uo_Yh83<o+mxr*fH={cm1!5%HxOG-q}f-l`d^*6vgdqZSG<m)B-5r^!0D3w-#qc z==LZ6GkZrVZSptDJ=K+Oaz(eW$IW)L$fD-zOS$HnQ*H=S!~s`fTGx*rPhQ+MO&pnP z8lRwma@=k@55rvugfdDG$LpaXGxXc>u7rjORyvB*XmT_Xh->5Ypwhd+xSM+?%xiNG z6H^xZk^6Lc3&h8<Uamg@rFkGcO<FD{gpD3Xf;L~Re=TV=A5lQ-_-(e8vl<yFcH79) zS^}A?-pHb+mGkk^duV=Ozj*=lxIBDUukJdPsQMJHL`QRPiO7cgsMVB>ovXLfqf=b! z%5qGp-u50g;$qP`K*#t8L0yMZKX$sSp2&@{)vznCiS6Wyv0boz%@_mwDWUtup2L3H zyU4!V;l`c$PjgPBlL@Efd37U2`Mr><$6Z5P;u}^R66=jC)*xzpsmi~%OZ&IjKE*|u zFNlc#UA5A!C`ge&uH8WzrF^&84-I>XFa8_7OLKGgh{{bW2&H_y^;PC;5F_z)(Uoi8 zjr)!cM%La-ghD-0DQ%BUhW`MtYqq{kI_Pp+#<xPZbC15Yk)xRzT?to4QYc2m5lV_{ zuD7dN9G1srxf1)p?kYS^{{ZW!(44_MB-Vzzb@1O#fXM7J_V<}AmNFR<NwJb!$2?13 zQJLUbmyr6@(@dDHkE4@}W5To@bkG7==AoyL)30A07-Gmxo#>i1nl`EuNMS+^2?mGp z8X#z69p9^e^QMYGY%MYc5RiJ(hpEwlWRg6CDuGgW@bfwljU!uI_f#Gut$x2<BdE!S zt=-99gab{*bg+h&!u|91{{X1+tvZb_Q%U(>lUXGA*2qh@ETy{pjX)N+>H#OMJoWIO z{;2y$^ou@E_|Lekq3$QMIP98aFqlhwZ|PZVb>a6dZ7~8)am7Em7-0*tGpJWmq<*2V zZCX@%o;}l6XC$(Wj_L`<ggwCHxFD=R5x<ewJm}7hYFX%Py@kE~@5T7*ikR+YwT9tq zO`R<i(DeNz_-ls~{{VfnzdDr%ovw@*I9ms{m+qk!cO?;MRu*-QTa&1zLn%FVSCf~- zg2wAv>D=g_+r(vixdaihAN}T9b)^=79~us{8ch1tofv5V9pT!rO?7*fW#ZRw+_HP9 z#4(o~@-QZcY8G8~VO8LdGb?JxKEvBRrf4I(OCW^N+|{b~@wuV=Nz&ixDU0fpvE|Lg zza!^aABQ`;N&!*1wt}0VuU&cdP7dewF*aZ1i4DB?-r&UYOUUG?j!9!?UTqm5lyE&_ zpR1_T`wcR0Dr;e{YGv%PA0Obd7yN{2Zi^=c<Un?18xjHVuKJEicY^BNYNSoxIo{vS zJ`Up<dJLA?D^?IZQY4ZGkyP;{0qODIRmQBQNm|OyG|R=st&H<aZ*=kdg@F;VP*@NJ zc(&(%rn!`z4hoNK;N!N<cZM=pJ-FWP*v6bfhJtw5DFJ*4>8^~Inx;b?cT8E{9gm8^ z++kWE!V8Rry{kkdrx@4~=rjaUz6bYdv1M;@FO6y0f-hoS94+<UKKRRRX>pQH2_&ep zM{9XC4Hcw~jYUOQ^VPlGQWM%vvWHmPp6We?hl97(U2be+j{YMGNFFl2iVjhgAd~t} z<*D=IcRfeGK2=af*qNs7ZqK^DHcfP3zr3}05>IJ?c#<|?WKstc)F1x<3smH}=qDEG z20k*$;xL`Jn7hoeju`I3yEJA_4=s>L%_H|eikps=@YbK53g_E4`0OG0*SP?Zc**z3 zc$7TP+grF%)`qKHx7$Ku=->WgYwLK=!f-bLBr-}&l{Mln?iY;)-FNA&U#*(!<*55J zYhLv1UvGINjxg-N07*hXtxxc<6{q{@XXRyHmnzqot8~P7%vQzV80+h4t(gf@ILkaE zb)g$c;i|1|Q6JL&B)4(hTV*ciwIZp8x5?Xx>kE6U6|%@#)B@G3lghiA=q<kyT9&}? z6CHmSy_A6qM`LM|lJ&p((#I9aMD)yns}*?wC6RpeSD+dJ&*XEM)EN7Vue)H(mg4@Y zcWS^8t|W|<Z~@+>hOJU>)Nk6I(cPH*e3rMwXE9)2hl&!0>KSjX1+%&hxhO$iByN0k zm*U5&b?YZhxB0I<hr->>@mF?aa2FT32`9_0I_BdaJHaKe5Ut0w$m&u=dVZxGy6>s3 zb=5Pw$5^i7>+?O&{{WAl?n}J>UBmYe$NvB)<zveC4{R-^);l2FMeW`$;23LiP|`<= zRZwN8sa<(g?tAgulJz|Q04oxuwAl6dB9#5QW0f;?+ge5?Q?+YPri6kF^YE^;0LQsQ zvHW$Q#;qsUT3|A3?hc+>Q%W)JS7D&dC*1!4<GzSYG=rvrh|7+;z<^og2X2F=fI%t0 z@6nSIEWA{OS^_;nyB$fPq{3YLLWO+#Y);-jdX=f_QnzS~-#B`uM)d>z4wr%(-C+=3 zIB#)<SPBDEN>;Q!2SMXEy55G;-$_&CPT+YBZU`RZ1-ZTkHbsS4mEw%s74iau!$P?I zM)wowDxE~j!r^Jtb#EH=08{ttr;6xHlaoJn0>J4srhpYsc0i1NrHKR&Ek&m%MP7wx zES9$^EO%bh%!~rVAtG>Cn$!?M1J0+Y*Hs%^6T0qlPUMywOrynZ7xI+Q3KANl%AG5( zUlMH|R$C<W6w8sIAg2~R4G2G$yDL+X*sgZIQYP>2@U&12jUEzGi_~$nk`ib){{WV? z(?L5j^kt3IpKbjkdMP5lM{R9Ur9q-hqD2k}^$L!Ll^%Mg!u&z783%k^W@4s5)2a6A z7K<~0eMFj&1%KO2kgcJlcV?S!{(p{~Qge7{JyiysJhg$aL>DBwf@nM`vHbObkm}y_ zL_sFB>7<D$oD8AK14Cc-{53u%<W2oRapAQqN_c4T1fQ4LYl)xZYglC5oSXoIKzV)q zWB^By*TH}K)(^OUO71NAPZtu!-uI5GOxRo$P6~qDMl%Pse74uE%SM-T$;h>5F=r8X zqm*7COK^c&f`CG*1qP+uu0795;&P2|-5(NOTU<4qg60@Z!hmsmXi<jaaKM!{9SPT+ zjYejA7TEKTaQ7B#xG(Y<KH$Avg!iary~!A0S*Ey}Am@;`L>nEdKs)cMHl})$rCP6{ zdH5eGjly?rqhzQ1Xr%j~hH8bZsGJsn8UtTVbho_G=yX>eyO$g0?S}0bt@1dDt}gxF z@@Vqb*#>|Jqm_)&v@HaP#zX^))N!R~ch`0l_@m6v69)*1(Dw_lLW*N06__)seXKk~ zGKB<%rD!xR{!rrF?3ro(pObSEPAY!;7|uBDPqwzLY2i;Ta93lw{Y(esp3T0s$U5EI ze@?fFuRy)I0NF&Tm6|}3yk)r6SwH|+z=5OW`87#3s@qM^KDs?c*zV)RCN9GZbzrvV zh_jZ;+0oM4R;mCNhul!cp^I1krrTaqzFJL{rF!mK*))KBpKfAr^0{ojItDYrb!{b( zWDM(Uvc?%gK+XXSht>Q%x&f$T^RLRaZ+*>;sU-Oa3fD-t5`we4O$>8XQ49vzij{Cd z<R)r;M!ti`RcVc#wA2cIFieq;KW`Ja+(`DYjgPpp6m(h*s6ir~H_^(IX$_8euq@AT zcYJx9EEZ<)-CCvXi=>Vfor=p0fbO+ZSp|JxyHxh;RK%uNW>{}K&il5Z$YbWkM|X># zBbT>UkCbMz+{?*%DcNXtqH1psB$>V4>L1#@&tcm=i-o_)+sie#+FPviMgdq2Xr;>) z6l1X8P`w?j;Oge8k)F-XV6E&k83Zy-VLn#%tvx7`Ihr(^hy}QUJyhRtKDrrGLe|Q( zCGGnRCQA3ZqB22oV{wy;SlwIsb$dwI0(~@KdW|jHNex7tkYIZ**E0ujcHPiu;)gXP zv1}NH`)GZ(9I9!-wjlJ=TJaX@1xc$EP1~6)uf~Bb?n=jueA&5zr;Lehb16_mD}zBE z)$`Ro$iKv$sWo1ME7-DfcW-3nZX+LJjf;X8r4P9+xMu_gH5CSxAD)7;)di=?GP^z8 z&xG%%zqWWTayJ<F`)(!pd(zxUHvl&pCt7Oh%d13Miob|$!a+V_RDwlzPSH~#QY*{t zp<%J5YP6*Xj)L3q9rgGNZ*3W{(=N;(vtf{eHykeDUA~}=v}^t%GQZwY@$QVRBMQ=7 z+R8wuSuCSsN&45vT{zduLht4**vl*1p4hQmeaL``Gt!uga5A;Em6gJR6oSg6?mnl_ zQMIA!S|vcgylk!QOtZ|qo;%5G5=M!mX(E6~$mN=Y)~qU{$Q=%eqp!zFS;^eLv%d7k zd|&fNXLlvLnBu;@$6)W;HLP-CbM~@Baql?URvV?an|~B<!&JoVt*JjIm4_V<*hN+Z zhS`S1eMeEQw$CV#4-F{B`o=I#KMiRCsXx2NT0&}i=orWE)(jZrD^EU}SwIHJ<Selk zS2;Ya>1AnW8Jh0y<%Cf~8iK{-cc4`RsV7EEQ0@N!xG#b)VHXy^BlhFQ%(00MYRLyS zBn9=zr*aR5pM|>#&b`VXdH(=>KifxWJ)~dvgjv_Tl32*VM%fj&5jaMBheE20$oh9B zg;_yST~T4X=qt-qb8MIXOTG)Xw7z=`PHy`42?|+RtTwU7cNub`L2%O*jB)i9WaK|i z=S};2ZVz<|A^!l$zsFPMarS@qhC<%T?()tHyZejldfM7dc--7Pam3t=B!Z}?)}fCj zAS-X%H`HH$(AT;D0P=6~#y;;QXWG4~k<Bf<iyki_J<K*X_lgZ3SB#{S#I*f2R%7GC zL3p-nRtslc0Gs~+C;tE+vdT|l<+%w}VL_0xAj870?s$4wHp+k+_2f0bX>Q>C$DlTI z{{SZ)q_{ShwYw_yvnJ@r9lloT6|!3}K@z;Sq{?Ms(j`tRe~gVE+FEsC_tWTCGe7x3 z?l~_l{{Zct#j&@xSpNX~k>B22+)DG1DkEqF3WyD9P|VdGDZM{ryNLXcK|V+S046^z z-EbJr)xp@GZ3M-I?b-JMZcc&bi~vI|6@yZpciESRPOXFYHtbe&ANdLX;Iiv)_E$K( zN3yK4n;c|p(=z}AIlGeLl%-T4UcNe|d`cuE@-8WV?>GCAzFSq7yXFZ4$0#<|b`ePC zCJY43kb>Zq^#XXeL#_L4Xh)jwNe3U@kI$`!IC%TI^&pZ-rjg}%<eiL+S%IEpl2D+Z zN{0%x*i%K|qGNm4Qj-_ke{g><iE+1U-I7f{Eol^z$dbtDW)lUO=M<201NB#67p9N5 zRnU^je&sg*0KdD+=4q#&J9TyMIeB?r%)z9TlFZ|mRy}E})hFmJ?Ji`^pU6G$Ya7Ln z&)q=?Qi3?HWj>yOg$y<WZM0=1OxZiLH5J2T(<3ups2=R_OzA07IG$`s<+oa$OIh?D zCvsbE`R*olxQiim46&<3u9uUJ5!ZB37!Ess3DMPclQ|qg@^^dVph>Jdha#|X4g?pH z$q`^dAO~Va4*L&1v=!|;nN>jh6aB$_myCcxZ<T`PDNK(V-oqQo&O!;VrB2i&0BNhN zmRpnHiz<J0J?MS3OKf*2z!FL9%6-E@xdv1V<I_cEuog5Pzuk9r!ihP-*xbh(AAO^i zbuArwsSLqrJZN<5G=byw3xoT#?oYgVp~2Zr0aNWk%6i7#Lp-6qTlG)|kGo@VT?aP5 z-aXVXz;63dE*gX0mfH2zOCF_FqjCj0RgSXDAaokP_nnM|S>f$jo<1a_weocvl0w1I z4=pplaH<;r0Q+m$`#k>u?TI;iHRbn%kK9+M{{R(uQ}fY~LYR}ut=pd@wb+(hSaK2r z8?PIgSeK21qfxFU0E4*OUlGcyW9xX>pD}6Q*(h$U`-`{coiAgG8`B-iDV8WwIO9`G zHY>#;MHFx08h>}xTVhY4SITzB+uRI=#uFoHb1a_Vo#u_BtAMT#B|*69QP=U(yv-EH zj<cz%_s&}DD}}hEvs&P(9ixO|8ZfA%+(l+pat8v+YsJ2riizZOL^u)O-9aK-MS4td zyfeaOxe^wI$Oshj71#}_sasd_=sddU*k@|rC5~R+@FX79oc{Mahc@ucBNRKbgf-)} zNb%Nk^pH`;tiR3O7(1L5mN-oWmx#T<W#e^fRa-1WMZ~Q8(DkU-rAwrv{0~1hU7m+C zo450WBya7l8s;x-DKR{9?e@{BK88C6QU;B$R*gk!y^e{Oxt?z7$me55ju~dLng*Qv z1c+^*MqniZp<PW_14?u{^KEC19X7VE3Wjq(b$gr1#aoiMKXC=@*6#$UqUu&M6o-PW zv9)<KAzuTw+T^x1XUb1HcO7>89i@_iZ1NBP0NuAmNU~8+DE?}ek~@flxG^mfg-@AN z#klLs&66^6wkuawp^Ra|8)Y|8+%x+g+?O|@RL$&4N_((<y6&kjHegw6y8i&xu1|GY zZTJYPmgBsSc;jtw9{x(+(<2$WRD$+DxK@n62#hxJyH!Iu^(&(ys0_QFTDCjo){9B* zQQdq=J6iI{-$i9@3&>5?wdO{7BUoGCmT1us9!yX2)K-h)8^n!t__fRKCfQtel+q~w z03s$g{`s??5R%7a_qL`5xsoYm;$GN*UKK=dNfjYi)Ea|dUz1rSiE29UfsdQDBF4cl zznK|a<F+n4d0KzBiu92%bp;t}>^Rggq3ftCMl@@*uF0(JanSrzeHF#*F{C)#NiAZ! znmb9ZcuplL3{slAh4mCtXgA+e#b(=W7tgIzD0n!gxxrpo+S{9}SfsmqnN=LG28t6S z07``5s7+iRyJ~q`nIUUUNByIVlKZs#ipp@pFMc+Klq_TqX`C=AKtORy>sO7gnOgq< z#MnP)+vK0KGJ_j>)|Y9JX+Gzf1O&52^%Wq{f$G!VIVtQnD94~>uW{$`eWop*Q7zQ+ zUw>7OL`k{Fc|43|aKP0#ay19UYnJ&a-kTZaiozJl-80RQ?93g-imY#QjGhbCksgl- zFvyMUvm;P9LHcX-)iKd=Y-;3g5iOT>cCJeIxiXnWlFHGoarQTBJYj;|DZ7D4Q9?(k z9ma~r*BB|zy0Tn0Be(N2_NAT0%qDx>BU<IqxJd*}WohlR1{CAzJO14U?2{cNz%6@2 zDSd{=qDad5UfalH+nD65E<R`_DP6@)2sG7s>kL(mGL_!;@<p7I;n!>EaW}|!*=EPa zpdP>Sopxe!j!cRyUi$|H9$yV_do1!q_K%;ovbIR$G0k(3!@xqzER3rXg|{ZO-|47i zw-m>!>My&nu<r?SvE3hOV7s@!SCI;@3GL^Eu?}h!l?JEGemdi~lJR3qt~R+j9QHMo zeXE(UytS~m&*Nlcag)W)IICMhDEC4Z45N@x3!X(sFF^-K2axhwVZldvO(cHaT3khW zYZdK`$#n(7iJ-ZOl1Su90A+P$^spe*5wA_PI-YV&-Q1}DWh=D-*czUd8q3fvcQ;R8 zEr%WWFyCR+5<b3q4#L2{E11OKv9~##-Rv0beUdcSm-mw-7Vt#7mzG%>RaAJAbxG_i zNaX(jD*pg>zXkk5ipOR9hqz<O$CWNDBEcB4k03~dp^vd86<iU;n9$c$tt`Z~(md7P zfB9DJ_*UKzkGme?>PJ}K=6ucSLXn?wgps6niz6}M7mM=?>OPal)pdip7n{)M{n`Hj zl>Y#e@>c|Qe`{j!Hf5WMxsq&+%SOVBS7nMdVY%5Dbn@NTj=PHUGmdvx_rv|o_f^z$ zp8meZMGRidR@lE{#2u()l)(}gkod7Ze@I<cn5woW@>!h2xISC?KfCcT;5)Osa~Yg; zOwvbTk;+|N+lF&iZW7ADs(i+(sa3HzX7noWbU6^pO#uas4&FeI1E)e5YldoWLjY(A z1RtO^(MBP8+)?S%ZasG&masaSeai<8;5raau+Yg8R}3To@f9F{f;Q7mkOqy~W5JrV z^IsbMJhhi#8~x0HQHi0YKx+O~I%pBWD$E>uk4g%7ej8|@lEp16L)Xitd_N61t^$OU zP=QcSfvBL`qw&_12nh!CB1mI?4YHaN4~-}_ldo`UNby~=tgMVx%@7Uu1Oh44Z>+6d zjSSW>rOREC6&Qw(qo1H85H}mwLEHT%VFB^-G|}5e=x9u3pOUuKqb&#JL!?gKSXx~+ zBD0&?xK{W6-b#Q8Lm?uYu?JyLcGFqP?rPLw_jeYOw1!xqj-Z|qs|f=N626htcx#>$ zTMo^xvf>AVYjN(hwMa`S<;Jw)NFE*((XA7Df>?ByQ#H7fLXk6?j$j3?Hzh|u^3*h) z2a*<!*5Xj@2$2*h4wEoG28C2?4Sclz<4bW`)H(u=!YgN_YD%C5j~1n9DhV6?e}0E1 zw+CGTGA(&y9L;SKQcx5U#fuWdl~rgBY2l_>6Iza`EN2D5yors<!vl)D8nUXA;Z$)I zY8|`|mR#sg-!9`DtUKG;HR-sDSGD6E<*-?$Wl}jShjJ=B{{ZFNPe%HP?N_paG~9)x z_Z)&uB9ZoD4HXFluYuM1pehpm>_2b!-sBbbzy7BxaIH9Tr#)$L5dQ#=P-*y->we?N z+Y)B6l!4Uoop=0x-d>c~%g3qpC@nkKqjGzB)Dy`<ODttYX+l=YI_y03j~bqUPpCBg z`wiX1@njz9Z3<KER!?zAsi|Qku^q=i4~Oke3$CT*wV<ml+z_lcNrb+-L3kD$h^7nb zjHyGoxtLO(W58-}6I#Jq<<b}qTe)VrcrP*2i>r{W6z?nmh~)MJA%j0M&H>npe+lr? zs&6|2*W~mbV)GK>BKvDbw2pU-TV3DJ8eKdki%58uQi#Mc9F<s_eKi`csH<_KEKzqh z4s4D*+}Oc!Yi(+=&XUT*l#&2_$yvA$aE`SDuk3YK%SI~d#xIokvg$+k7-#`101@3= z9jXaDnoW&-4yvhs<ZS8K)1Sl854pOwp5EA2sIw%2hy;Zu-K0E88`DGQ1kovHBhIcW zd;6R0Oz^d+<sg9?TU4GlG~%Hmjx-hhTu$}>0Gn0f<6X`hxq1s?&Za&GXjSEDR1o2v zmNB>pg@E3qsp3c<`?V`z<W748<h%2@7R_zSJWUf6Wg*0>u>n<mhZO{Z6!~g(@Nx2% z#q=L`Zd_)pZlTGn7ZF>)?P(R<Q3<1o*eP)$Dd5UjQNY@#{&TKBCl9v%Uc10ibjJ7X zzAw2KBR$Jxq!%e7VK^*e6U;g!uFmTp=^VInQR$}pX&;XXG^5mNxFGLLY?pT!-?96c z<&W)<%{8%-B~Tz!Gf4@M5mY>AwclQae7f47GfDhT{60PI*A@w#zKVX@zQr};-p_B5 z$lUr%7LsD_;5?3s)F~xV3i{i2RV)`*l#*S}YgQkrJ|DfOlHN=nM(#C^NaSlH0gOs# zQ|?B*)fOj5FHb;UEr2zL(J-Yja&JZ{u(Zoq<8nQ*G*4qYqc!A8i7eL;v_ZXu4r$ae zV(hFHc!lKJs<l?BjjtFj-JyxN#z}LT!pm+g;^h=KuXij{G!w$n%N$Cq030jG06{cX zpw~SuHU(G9qzN$joZoA9?rPT7#;r87M|W>^3U6yQl7i85_4|v%kl;Fa)X?77uO$q7 zS@439+xfUMJ;w#5%uLZ-N$kok<dKWOAu*_k64Y{}@F1TN$9;xOPPEf=k8`Bl&uF=B z*X^qV9GCbzb((2sgh6hme`%p8h@tr^{+>a(8gj1s=XoEurj4_*TCz!mWo#mQuapp> z_Rkq@*?_5N?@JI0)N%^@(_OO;szQ|2$h|Sp$$N?@Jy*T0GBYhh6CI@hCvKc}ri|!W zznky}$6w!KEO9rs85gy>Zr{0%#3P!=a<>j6DmntfGArezz3R6g9Ua%oChsfj%j}hB zb&(*o#Yb%7i~Ojpm53+!h-QAiRM$l>REXrqcWq0jXyvc$yC8o}nmD94_g67pmMjs| z5Mn^1k|_`FIv!u=u1v9Kxn4F%t&8jIHe%pp?keWi*4igkm5TZ#V5G2Tp%K&6Klbge z9QfO=i({6}r>TDJWwfxgwr=ov?W`KpAq%%2B*x|%#VaL4)Vh&F;(v!phes~j9W<-s zEd6Zw<Gk!It?c`D(!w6wv4$IHJ6{iZd1($xdnhfDRlldhB#jUOO%aN^sP!V6>*!UJ z=y9~m+evRK@)8MEOQV%wKx8~vRcZwe$9=Vx`vIJP=fCdX;venE!Hw?Ao15I->@wWi z;IWa%adpNfSjW81=#Z;38Z({vwE?9I*B!68Ep=3WZT|ppzu!N}{{Y-JAv;4aXJgy_ zvMvSZ^t^IR^4v5eygzYqGm|H@4<HpIMsHCY3U#b1yBv=rw&$L2GJ<I1wMfE80g%Q> z1&_GJiDm#)*QI(5bW>?$m>)2UUZB#ar}+G}Q9cIEH#&Q}j|%ziwMU+@k~UI`0)twg z4xpbsW!%QZOoVYt4-ja29}O~S4N0dWK_Jtu2{kqP3V3~VK#{2RQCQK2#0m<NtY&Vo zmZCAIk?1S<o|*}PzTpk_q9lw&qCm~=N*Re@Yf1{xQ|L9M-vHZd`v8?dYQKASwvjC0 zcebjrWp)zRVeSr8Bv)z;4a|Ld_Ls%3Ru5uF4AQC+Q<Z;(C^(NHU23=mm@3-=PhZgO zy*`8Ksw)c6LR&{b7`FS51OEORZfsT^Z*GKx94yqKVs-<j<kvylxsq&VlG(k_+6mN8 zAQGuHC>NIk2^&_YY95+{yX-#zi5nXY!&u$QoSFECSx6q{;89o#{@o+Bw+`J4Wsni$ zA;lX@S*@Ro-puaJD!gULF*l^fDBJNn>zdY=Crxbl#360=BM6Tr=2IXn(bkCs5dvfe zpYs+yf5mj`HR2MIZmMTu3_ZtcecPmld3giENtr-$2_w*|NE>*aHcxkskcm|(2R)^c z?p&SZ))0$NwuW1mjz?n5BU0Q{QHgWVAk}f@Rj%?=+vdg0B5(er%(4jm4^?F~T80Cb z>PO+M@2sL$tQ$mOwtg{N@-^ZMF=&A&iQI|+NAV3SwVsj`pwibTd3P(Nt+4jtLq<SL zb1FzYj^?LI>Z4X|dm7wi#7)NF$fJcsZBnFx(1JYrQ0ePQS^|5Sw#wS%Y}{WJiNo$= z1Rfv}UbWj=*xekXOq=`cw$ocY&2a%z9eF4*ovT;q1$t0;>o+|$DMbuA+dnA2mJ4KO zmvxB+7%Y-8a$S~y3X`!qm6}UasZq8%%6ELW5nV!Kk~Ebfj@Y`F1haoRN#p~1N2mSt zwY6>3dsV?xe(1taVRac(Ze@+*R(o<uYHR=up+i^oczGRPou5;cV9@*T<NH7BAAJ0O zN89^S*Vy}d`@HGx)0d--c~{lbP?yhhu4}?0QtvH{VTy$S9<=&&Ctd?*sRa|da(UcL zmpAzPs3WwtlGfSn<V0yb+lZ!-NGw625Vbee@zpgaJ?$3Is`n;WI~~!RAh!1&!w6nz zkg7F6lmkW}?b4${*z37kWoRPWOKB}3ytuk0Qa@BiQlPT1AOZ;npl!GLY7TZf-IPeQ z<Sk{M6K?`q#Vg2Li6@X%kwGS>^%J=sUs0jKwXURVWSDEuCGE;2g(YU-(o5~5$bz7d zQAtIir4&=B{w;1lF2PN^>#;oVX>WXG5l3)}%%n-pJq3w&Qb9bF5xDD3`s#Ji*R1G_ zE#5NP$KAiN=HMc;$2-OR$Eo6|yy{0ykE_F0_bt=;9FEB?5Q8zBv&m1w&fEG)HT#=) zmR6271W`xaGr1;*l~4RExvgyEgS3_T%>}`ESB!P#IX;kSuwEl-k=L%Mn`ER8>PR6G z86stH00N<-3*$v<o&NwGJyT{JWAgYrn{#X27AbilUukce=H?PALV}_mr4#|`1QGdC z7sqtwjz0urq+urPiLfaFi~3A1?GjFx4-~wh0r@Fn<fC#GQdiUkJayt_uaL4zaxi?S z7Y&`X*t|ivy~bNYw$a<f9^Q3|LZO6-B!yi2h*_mRqq848`M0gNFn6{80CB*N-M4}i zHkT5hn&#FOQ5ZhpiA-cO@nz-7IWej5)8W9A`5^T?Pj<Igs+cJAUqWHOOKVvph}}-f zdwU#aReOk{X%H0z@&Jk`JXkUDI`tiIqq8{jHr=HMSX^VI#!K%+g5Kd;#N49@<ho-! zIOi=L;-XRGuFA+f+fcH)x5_6#bk8gq$#1d-9G*I8V=}zZxRQ)rQi`A-dP7fA)B<ba z$5d2Ku!WO*KIOi!Q6<!}84EFuo-rKB5mp8@2&zkf4LFrm<o^IoO4yUz^a^lIK3*(s zkM(;J>j90HbhMl(ggOK)52&CYr;88bq3|p#M{OSe00TRf$@3V?Y@SB$XsrJ3NM#Y+ z!Ud``#)hOt83?XSWGNJHQU3s&ZtBwQMCeXXcWCz=```ZnTsDqm$ja#j$fBfD!x)w| z;zJHGC_GeyKwJ2!sb|KTiP#CW^e&h_;J>_X;<(G)tk$>9!z3n^4EI5unIf_FV<JP# ziYFEI@5BY^&kbEh<*44egm-p#9ow?vqOj(dmRQK_tyO2Xyp7<xMvL8PpgcnmK@|T0 z@JCSU&eI2SYerQwSxBX{#adfjHK??<k|L#p302-nK%yxsD*R0=LDxo)m&E98S5*H1 z0<&{<HRS8U<s-KeG-&Alm7xHWL0?d*6&^p1s*<YPQg^enTIgP`^Y$1#95{($Td5|x zmR1qPEyPHPWT*?Oa3868kPg7t^o>Tf=hO2BX6V+X3QO#^QHDn*&v$TRLq~GPIJvz; zmS!LTHs$<28tGN7bVr%1)VlV6$QL)Zvp#khWVW$T_USsABXyQlUur0r6k!+~g*{56 z)4sgy{xYSeyRfUZq2KO5xt`$7d`U0H_~<Pok_oLcI6U2^J_~!nZ)0@#5sSOH<cawT zN5rZlP##P}S3=%H<HpJ#p;rwY%OU;K{H1WWSfiiFEIAgqYsFbs;ybx-3p~8(K_fA3 z%X08)asyPZJgGmJ=62{+vP~X-ST0&OmhNdJ;DUK(ZY9wh-EbV93{7fRrqvp39!>E| zkzILiD`>7QWy;zpvT-lHWYQScVzCKo8W|=8#^eC3>qg&?AyPHz)5~roD+7%Ht?W`( zXO+r?<jq0_YE3K0aa!u%ywyUH{{U^Iy%0KC-TNtV91^rr$k9bHjrg%zRaDZ9M={IF zqg~G;>dr0%&|_kdMFg`L?j~l1A@-lqBB5{{jVK85rlFI|RkS4|tZp>{E;yHrp8_`e zZC@>V3HKn;^ZU%K6-Wc1JD;w{eHljLXe4GTD@t^(#2Qnlo|yrgY@oerRCJ|iJn7~% zse%dKE68Amd0~|ypOAuARuRZlfOxSKYE)L5&=ideIIAhGYq$i8eLk8Aqd~R2&CPhJ zHT2L5j-Fa(1+;|1ZeW*~CLlT%AR2GI3HoU{SE-?~jk3!-RysX*Bpv8{%{JEOQ*mr@ zjl$gB%E+t8r3;Q#6g8*muTnKT<w+ack*$rK^IiV{NVbSH@~A3`!oJx&3s$~$>E)?& z>(I4vxq_^pY`JE;Hq$k!w3alk(j~{V#61mtD&!g;4O5eAaJ+3jgn1jdh94JlguKpP zM<uEQLc~z*UW}(p?lw=3jO)<e$M$JgNRd<s*QjbBB!YTwJax|7kkmz)zK0<i+!$n7 zlA<xjvAIVzA-Yq*>FZ{;4&r#SmRAyb?G!NeE5%sOz*l9hO*+?3)%sXQl(4LRXD5tb zyv4lHNRE<9QA~$}5~G(cfY*8t9b~nJDy!%ia)T%L@?OT!-(I)9>a=S8)P%Tl<O)>o zplVj7rFCBtm6r7dghkJt{ns*-{!>Ei6_61|ZZrgu=c=^274~nj7`d~8>EO4y9M(pK z)#H*f7iJ7epcOuoUH<?r8PJ_@*|JB@TbLllJKM5C<x=d$P^#cor3qs~1vwqGuH8|0 z<1{9cY->Ecpa7|E4HS&3=DTga+ON58<lm0xVtZ)X?UCB)A%Wdh?Ub=*RUi;aAnrW% zE97Nqi-_YX-5tG;`+H1UFAG_!QX$1U71-@s*Lv%Njh>~gWQO)xc(PVvK>*_05Gu;T zn}f(wpO&QbdX}cBs&}2PCmU{Z5Q7Yi07%v7S;;$qYp@+?b>D{0$mhu5s{a7qSzqY? z0MYp`*wc^NQFv0drD@CS*H+`KoVv;Ap5eh{@G=X0&7ICVM_Qy8a7%3L3F-u@gpb2t zJu{*2a$O2OU$b8)+W9Q3S&S{R-sbR8D80!=1;wDWgCwNRjz5;O``^kZXZGKx9d_bv zS7VavQi<}88s`(3lJa!7ty7$^O%njE7-~AgTZyOUbwBe!Q|eT`+l$X_l}*PfxGJf6 z9#vw-wFEF~bg1&y;{!~D!C{oSy0EvYUwy<05RxZgSjgz7nPn9Kx2S>Fq0x;Dto96S zoc5WgHiRjYjlJMzh0w^T5EAT40$P;VZaUXW>a2j<OwKuzCT(mnN@Tg2n$pqHxk+;@ zfGLSuO@ma`iyA2PX*j>YNu3EEB#OmR6qiXY+>sz?;SvHNh%g9Uz}&DuvqIH^X-g_y z$7*rccQ)4&%OHwLA`HPErhum>Q`CX}4!ZH#G)~pjMaB3L?Sj(rV8uxaI+8c)M_TIg zXe5H}c4+PIq-M8_fJ2f>^6*e9Xb*;m70|>{kkG;v$S&?#4Fq6p0}bm_y>{>#z=G>^ z@LJ$;b||Jiq=Zt`RL63XdZU$;`izChPzc>d)aZB;Ztcc^)Op*zz|cc=eUZwXepbLr zC$yR<gcD2eBA`WOC)@#D7&149r~=$$p9*?$l*1*0{{ZBhtC;L>?JnLUdZsDmD3Y{t z#0*UfxgM8sRt^U)BzbF-9t&e_BDKk6<rLoHTy4f?Sun3O@=xn)TXifgeY90Bt_*?W z5i1Z!s)DUSuSXTG)~XG6%FTjfV-c}?ho!5STwKjc!xXMjn4tu*Bo0ME;)MC?%`s9m z$YgEW7~0W!h!!&?yH-_&nl+AyNUAUDWug5{50wRK0&6Jp8Ps=2Yx&|{R>(OqpscQ- zk_Ae1A4B3sr)HLbOna02ybY!}TMue$h|9+<xIW#*qQ)La6##k)5hBxiEh>Fll@h+8 z*sXVS;U{^el%!XXA{CO<Ry*M$298FJf&f@?=D;sg=_FHKSk;z`U<7uyUI=Wj;mBP@ z1XgOM!W31JjF$`mDC3C?i^+o@;v8zFfz<NjmnZ|AZSC6Lq?b7cfX58dB*G<{M20xo zN|;q0LOB34FRc{#g`wwFuV5Lxww6olVRYg~iV+;v!WfFAYe|)iDNw+m2YOfaP#v|a zWR{4hHxO0fh9Lyj*#P`WF9pPe#Km^6r;`&=y$Rxc>UGfPbaYYHBE!sHKGe$-+NUYX z^R}8zpqfNb0yRxirMOe@*ERAv)a$1O*HNX6?IuSZWR-cRcwls7em5TUipCRerm|6J zg$bk7f;Z5rY04>hviZND=j7S&c-*X#;_%6Yn(q~lk_<(StWid{aoyZOdo4#kAd7Y* zm#f3l+VmV*Ce9p`_UzJfP`hU^*4T`T<MKDwmrzF-_M_g)NSbtJ_efXXy#vupbZ_A> z%}HrlCcjgRw&01rh0r(I$#Wq$X3@DUC4p5*pp|4IGFZ^5WZVsKXNtb)WxN%UX^O*T zC5t_F9vH3wdnj4G$?d}wa;!xoG!<Hn{{T+f>g9XYaazaZ3n*op-v0n8ZGSz*u0igs zZsUS$2e%7v8!2K0lEkF~n930$@L~_~YlhUVs-;6)^#-FjuWT|ozEN7*!*wjOea9&$ zP~l-^GO9ULW@3PV6m_oK=tY$^Za)IGvzQlJu(r6GD3nBx$z^67kjcz?Rq6v!*Kl=K z-x-}w<z+E2GP|^nWQsVhe%6vKkPCX51eFa?q^i`Oj7G;uve`L${6m)-jS7|BzH<vb zw3n(LNB3SC44&&d5&%}_yh{q2aXzY(uR|TFb)n|ot!{5L>2$E&MZys(3L>BtkP4H< z1vjqLAHQC=k8hS6la}>t+Q%1>zI13IkfgO(<yc*n=pDA=tjA<M2Zp-&`UtVM^ft&^ z%Zi?i!HK0LU(;4al7Nv@K;pC>I!AtkylrZ4Ha!+7Zp^7Pa)qc?P{Fx6m0`${PA9K{ z2gh67g`jJVG2Hp=WVq9cxU-3@mW>apUvd(mlo*?p0VMji@TR#H?aEQ=I^y9B)w7+Q zc$XG-m|<xeqQ?#7mr|RBa6vBAEg1)JKwgyb)g{5gxONv$d1q^nl`V1!Bgmq$@P1^2 zuq2|;c<FgIXr)nHLp9aX#z|%*0a6cMln3fHWwFX_9I{CWm0Q|Pn1b8W#DE28KMgAz zR5Hcn?=Ts98-k`cVJe{~nDM14N{uWUwrf;dEPMX|35^Qr9OmG}(Z%-ah}Nal@+w}b zL$zuRbdIg{I+kd1(OHu=ZX<POVJq_Iy+alTzFl=$CC)_C$g<n2mLX6YP;}%)MLx9C zlAecCn=_8ccBUz8tqR>-K@>MK#}XuFbs>amO0$wj{HM!NN*?D*O4VHoR&w;tEsWAg zB6V+R2GP+NsUWt*f)6SVx@lzX#eE{#GV@!BEi9TymQb@l2}c&H7YslHV614m$rI$( z%&~Ts7b)K2`YA7+{=s6DTcn1Qb9n&(wRn(CMMsI#wo<lj!)7MATzogjELml?jRFcD zQcNZGy;W+5RRn^3v>HcC$kvD5nVPfD=4`uvEi`z`YwMVjd-??`rl1x+Cc6slQ=`Rn zBVQuPgLe$s3_bnTmQ_PsT5^iunGA~3Au4KWYf5ykl_(!BXJ@8}tH*sk+<{D@H#7mc z5VY|8H1ivr+?(oL?Jq3X9SEA%+H12~qQc}c41`s^zyKn>2cOeholc6<@2~0!lgJn> zjm#E;+_Ni!g~C^23XYYpO6eLF+7($YnUB58lQF9Xp{cKk>DTF@2S2HM?Oc_-II?bi zCZ>*S>e`(?pG|S(rn()NTrEncd}b!S$(v%p+dv1fIDxqUlUi4EuFN!wk<Dpkd+v`8 zqMlVW{B?La;PpRpcZYWOWDrN)xoeEkvN8)PZmI6a8_*Q=9wwznL9d?4WZa)ge3rV^ z9D6)7Hh5m?wTuhAblE=Hp7KF2{{U(?Maq4=aY7f?3j3bpSJ6S&mb$R(NNC`03g>m* zSV=7Z0MPHB><qC<Z)zcSSip$W`Lge}^aT0&4QSLVasF0GykETKy{X6AWCD3K;A zLh>p@IBN71+r!685^khRkq>`kX)^}3w5(AW(N$GF$(*onNvAn^A70zj$U0NFiNgxG z%_YdYaSK4RDkKRMqN^gJrAn15+)}+qk6QJY2y#=OB-Cy(##q_eSv0l*io8=nEuz}} z)!eOd18|}+WZ_-QDd*RZtZX%I88-=NO%=R}jkmvXAZg`|<ar}8M#aehAskew3+VtI z#ZN#qRYOh2A2DDuvnk5^5hgCdR2KV+J2SBa2#EkxnrsVbVre+)9My9@4qtC=7#C96 zO~q~ER-GoIhB8Q~7BI%GPGiHMC!p6|l$^rJnH|KAhlrpNh9;mI(3;owYKveFp?=yk zN0GK!<F}3!Hx|;QY<}QVk|Qgr2-G}Wj!WXFP-@W(%;*^W5A_?X9__TY$YgCAK&f>q zT1_l7!~;aqK^Z(DpdO-k@bcH2Y|5$9Qe*MfMtT1Lk8qc{W87D<Us*0zX>Oz!L`K|H z@|r-*%*IOcs9=3YoN2CFdADCK>+==wsV8>!lvpm+Fk0qjx_~W+h}<-8A#00%Qz{U6 za$X9pLC?~@ui@9DNXZsDt7TUkl)mG|j@{1XaCqX)Z3N95#2JgMO=lCUu?lJlB%S;S z*>~4cvV_RlLxDu|S{oBELh{6-Hk>$W)Pf$AAkjz^2A_wHuHudCZ*jJQ*Clsqtt3;y zJ^Wso(&)uAC@dbE^J++<s#c$aP0QHII)`68cKM5$a3*U-vbIOZ#VKhSncW>_CPhL4 zGBd4Fc0cm!Z&mXc4<~hRaAJv_EiGhbMD!UWw3~ooFB(^kNd<u9R)>0SX%YgJmb1RZ z-cOFnTZrcbHxy-csjlkiSy(rN15I|-rnD8I<{FU~WS`!%5F=fru5DImq2l7%Lh@rE zkPyG~5I5<hxCV#6G84j)WWrnrijn)wUPVCUC_x)W5~_H$2dl(un)nmg%(Q!0?4C3v zRl{5&&pcJEjT%UTtmV}UksNhrW9jGr08ac)Yk1uTWUJ<KHnL+PlK$EYiMd>@z08HA zmE+_=2Z2BqGea04bu>Ggc4Mx(JqK=3uM?ewS-qw6n#5V{CE#EAvM7z+l#n@uQNWTs zYpY)ydjT|yjw1~v#lAA?&i#fy=4*8Ommb`f&hx5EAazzMc-Fs$+`1kYYV&H!4^FkS ztfwO{?pDtmA9dmFFf+kDoOoLsUv|xq#U#;Ba?@0;0<mTe>O!?!roB{>s)NqEZq80u zg3H`taw~mi+`{trAaGhaV_;R%R0IN~R1kEzDy>*1I<d)Ot#T`KW$xO=GD@b|*h*GE z1zBZYG&THGkElB5wmUk*)tjuHLVJGQ?+kP)a8hX!C`?n37+aZ8lCBESe-m%FBezX> zF8MIqO^;WeE7eNWspMiz6}sT<fcC8%Tv^}Ab!gHlU{%2t4@cUIPKLfZ?#KS)=J)tB zi#{b+ro<R-@0Q}uB+Pr#i%Aa)rIDkW8jzt?lX9)Nbp#%SQ?8#Uj}PV2PE<CFIUjV* zHOw(Xjl4o$-sH-VG@urv$}U(dhGWH~N*+S4H#&>L@vU5<$+<U-&u#9T&>DHE9m+h& z(WwdvqZiy!zl8BREl%5f3)abRxMT}uI9ny*Goc9`v4`CSP=E+5XaGHE2B&UG$<dM; zB1C!1-7%ImgguoSbd9~TSn;bWka#f-QTd(t`u;D|5_#&*uRv>yp6tlnCFTA~Hf0j3 z2<}t__lt7?#s^SMe;s;HL`}O)lHKFh@Ji0Gpm_|DMzWO(yaIJZ+|X}9sigWHGgtK> z2<_H282DU6A(dIK4P}psMnh4>PSx9OQ;Ta;oyS19?c|ciOMA<xIT8`1PjHn3)y9QD zty-sV9ZogS-{k_EwCA2QmfGQcwiP8}oq^oYsZ})uYLH4hkwe<Xj=y^yKpc=mEk$<( z)C2fv!wXtTJUzW7jJEeT7r|}dligI37K|4Qx#YxBfNfneOjesf7Z~;8&be6RlmZn5 zXOlHR0Gg00cKo!xL&6ay#uht^+l#A<=<Qlb41yUDmQd7TQV1O@O|)ErR&_UC*87!r zx4u`UJz^OcY)CaD>OA$5V09xMtyd_yIE#T&3~scq;zwOFLZnGQXh{rVt}oSNatMEE z=}x59z5_>5)kao#*48!&jBB$ifC5Phk|Sj$Yd{I<_3AYzSub0<B!$^5a!)_KcasqV zQ5sDftrQXZL8$y`rc`K~e6<rzJ*wR(j;vPPTXR(>kr4Y_g0|H1(UyobTRTs>FrA}k zJhq}+oBN`i;$T)7L^AV?mL*+?sjW89Y{~iwyXUxK?p%swVvE~Vs)b-f)cT2H39n75 zttB3#Tvj`_<i=yv<ZYmuXyf~^>l}q$faVxfGSHttJtM0rOX&<x-I(RGt<+g4Z&pbG zF~xAQHAnz8E6Sdo`3)4?-5VmWLb8%dc&Y$eq|^!psq5k8szJ`j7>jI{PUqNyL`iCc zoQy&B5&!{15=j);Xey?{nvsS<NA!00Co{BUv~L@RQmR6OKxzkGpldon%GwA$)MY`( z)~sq&l2{s0Q=p|hJoKnS_1W-t@wb{@<hpBj6kB^x(kX7FnksB6eDsYnwQQs3G6wqo zM~)_nIM|{@U8JE?#E{GdYfmj%C=%_lf4RMVzyAOi_vxTmJvlceucKpA`T1A=8u_lf zp7yJuRqo#5?i-Jdvz@gjM&U7dtlw>1SlUA;w6M>Y8Axv2Z~=*tAV6wpDfQQOD)LG7 zIkL9SbKbZP<n6hxdww|5e0{ybtP_MJDV7ywRVrG9sXUaA4=onDGJB7^TjSf?`%9L{ zUR*#bu%*H;8D)S61rkn0J+e&=0qNmdY8SHTj;;<hWgoh`b@BIBcGfm?2zgz^js%Y- z)5CXj8FgB50Yo7W6Z|Cg+g)_k9CliTcE4@s=em{%F)`#P_I>!_xVTsmV{uT*S(KI` zg+7{<+9_H$vXa-@9fjPu+>H4P>)EkW$BfC`(;IujS)R`ub9E$BG$fH6qCOHTpHdP$ zbQP7h54P&HEng!U+qZCuB(Bjx1|!*tn3&=Z9m0}}&{u%12Y}UDdkI(b0sM~rotv_b z%PE_V)>~Oi!4w=OoX7<T2%xYeR0@zPMS5$7ipkAUY`k9Q9LZ%ZGI=O0aaO!B_Uk3R zo2*JMrBX|lk&>mIiRe!i=%SkMRdK1t^#RIY=e5Vfk-1YCo<g?KnwDtP0$!tHrn?Y* zTlpOoZh>`#1sX=_{MgC^=~omiN$6X1<4%K2*rVRxxXi_W9kwBYO&wH7@&r{Bs4NW@ zy?E3ea^<ZowKAE6bZK9@JA&4J5MNp3?HBGKh+9aoNgyaBm@`pgBq5;%xt|V4Z#iPE zA9O#rW?HfMT%%y$4;m%4#n1+1hAAYDIZqZ0J-}+}c@Dfc=-QnzHItgr9TdXK2+DU2 z_i=ZnwgPLxG$-3jJAYr?M-Lk!XB_=N2*ETBTGPi~&Weaxn>Zxy9>~GNX?=5bm00d! zg-nH}_hp)OBsv(PM&c->2Pdf9Q+-8V(lxQ9fV+DejLbuIjJ~*bJY%(i`A6=<F+nm_ z<ds#ZDy)@WUzW*tWabIhsjpF&Z(ygNoO!T`?3T02(&UTy{?;-}ENoe5h<Laohy!2_ z`WLrRYe^Q~O^LM0&yK^nzqPhgZ4^=zmRXkK(bO?`BXRt;b4DYO^YWz=wyYMcJp}n{ zIOno?FV;vh7o?;X4IJ<_t;BAQ?MIDKQKL2X$vt`3&h=b&*jJ%agYKh@%?cU<-^~Hq zs~A>bS!lFcsVDeqJoRx<=L3w$eezsIXlIr=04SjV=BQeQnusd3YFBVI&ylEx%?0bW zve^uVMqX_aUe6F%p~*~Pj$tDJ7)s>CPbL0ZkhEZmyn>y1`D&w0zx0|XV!hp0y}p(* zeSxvaWG-f9ypkBEm)c-ME3DJKSxEG$3O!uafb`d^1#aBAOZey(;91)U{{U;0n610Z z931VfCQe@QmQbgFqY8wr0W0)1+g&$P0$VL8rp40Fvpbgqk_~NpVZsz#pSfjo7FeVN z2WFN#Qz20tMWm2OJv1D+@?AqFHrA(BEX$Y5z&rCXCVRZ?trB}Xt61I(Y<0w6%Ez)v zDUg#HC?iL5eZ{Rhx758c#yv*MWo()h?5&0Uh5N^SZnm?$vczMJ#Uhd?_T-3>x1<qH zwNej`t5}1c$;l=<<(A#8u51?W77|gwXyjG`wG1c;8&pv2e!3Q;-8eN`*`mqYH~7_f zE$#1&6B5qI*5IsasP1GEq>2?lJpkpmMy|NCQr)NVDMt+2@41p&CbybPJB1=<i82tp zoJ$ge+96~rKt3UVI%#Qv%<8@jv(2Pv{wRkT9y=x5*U%f-?QRPTh97PMtZ|S<Spf78 zFe(Y@xjKBR)w*d)ICo<xGM9GPr-dw~5EAKeYZJQLsJKw&8Mu<P2ESVDMuo6VrN8P` zY71uscudvRo><8R-LWxG9I?N;WK&S8lA=1X<R}OguhePotm_EAHCkIym9|zmufFo~ z+GwD=_hE&ahDB(?sj7e*)67<tJBkCO_AKkT_scF)E?5tad)vBub{mXNKI<e0Cv2WF z>MNQsa;01(s6YWtDn7f{U7kKJ7L$(4qa(cdljW;uT~fm?Y6z8Ov}=eMZU`ZR9)gGU zYq>t;_^yXKyvWUo%1@2YV?DdO8H{%#I>91K6sYA{8mnGWt!e?<n`yLQmY#!rZM;_< zzdeL#Om{2otd0OGDh*jhe7B~ChBR33BfM!Wv0{OX`_BZ@mL=KAQc*&HO-9w$mASQK zR~FaT5kmx!ndU5t02d+TKk|hv6MvxAmJJrc*IlQXy1cm)+t|l7<dOTf?39w-l+ue* zO4hYt50;EEePEv_@o#-#J5l@p02Y4Zx8i7`pCxN>3P&XW0H89|KdXL%gU4Hv<rApY ztK!^fRxNT@SCXt(k))j6NSrSR1QOLH00(ouMwnLE%eZfDG1qZPZ5&1JV+<ydM1@Rc zqoRiN^gGme>oKLkntPj^hWBzwD~b~C?8{2-0Hr?)YGM#FTXLrW^sP$*2Is8>Hl~Vf z#@wW{l$$GtinSwy5!Rkspb{8aO(d=+xRp$VfL@9!KX5ypVWEWQVmT=+%q_>*_Z6L^ zbsSiON~(}*MzeiPmp}%y2`ZQf3<>ufR0<J6)B-8^X&#|y-fVocE6dE2#Cn>5R0>s% zE8)FPl`g`^L3|c+)kDgzpQy6PgbnC6t#r_a;KqDf))b8-55xwd$QV`qT|uXg`pD4) zQZ#dqYIdLpaCaoon)UkWn+dZ208S!EOeq*}M>Qg#lhl458dQLhJ7F&^;8_we$bi8D zfw3M2wA=B}Ye5>Fh?^UhEAAzvflWbU!Ory^IaCAn8eXPpph$4}DH(vamzg7iD%1Cq z;q=pKAR9;9{mmc=6};t*E6PDaN%17p_I`Q;Lo(PLgk{kqxn_(jGl+vL8i3pj5wJhx zPO}vzYyBfD?NjWoIoI`Z`t<3cs9}~|C(aoBgU4%?#@(Js!b#zfLmD{-j03BdP<ntX zu3LDt<D|*nv)W4>9rN+y_U2O4FWLD##20efT;1PAkhr#rC&ro0s}l{3fO}@@Le+XT zN9m^WRCLl{cV%QO?u<@ry{}FD9h;nr;#Q5!@mb8~MUFLzMIH$1qyeDqUabnNWXlAX z`CNO!h`#Kr+-=0F#@@=}DIhICT!_`>Q$t<afN$lfSyFd9Xs>_3gS>l#xr%m0xcK(h z68LP4Hu&rJ_g3!f@4oI?V3FG)Dg~Zd<dpG5qt=B-r(G1fPe;(^y<2+&S$5ZZ!IzsW zY1>eVt|Lfgj(n648pfejLaRHKpg;kxlG!O6jHzYNu;XX%j2+A5BExq2NMV}XjD_We z)M7h`%u<4q!6F)?6*V8Ek>Yg}>bm}eG{jl-%6A917HUq_ia$@a40m4IgBd&m3pkJk zUPgclZgo|CG)$YOy$aWO_Kqt4FX|bL_6Eh>%QeNYyD~|{aw>Q#*1j!G3O>n$CO)mB zmNm5Z*K-U^aLN4Fba<k4;w0)6$a!%AeKr38U3Mj*%6057W%k5<qKk9fSMc76L~Pf1 zxQ046xlPPcPT+<Np;bT~d1^PU)A~+?=+@;P`>=ao3Eh3Y4nH$CM;&uBE%ee0NaT%S zK>VX+mRQIlyR|rxs!gHFfl{w6&cdCw+Bbc@b9fTw=HAjJoV2;zWKp1b3=lb3p#%du z6%-$+aq!nS3+bWI?L@T~T4p;F7lDf7xGnC|c)1(rgEw;atiXUK31&%)nt@fN6@de8 zI(uTso`Cl;z*lHrc3*qu@)*o4Sop>&Detc4%4U0ntafnBvGZ?bUAYcmx~kDZ-L^E# z1>UKF<g80M$HjJ71?~>%n<Zm2COSDJTU&uG#f`1H-Xv~kmf5}5V8s$P<G_>Z{X<v1 zZ0i~v^tEBOSo<Es4V1+}-;iPc^4wqjzF!S%Zue_r5?V^}vd1}pa6E{QF(o_{bzri# zG_-C`y0q$?L1Oqfu;uP+j^ndyaIs@^Gstb>w6zNxI9WohbIll4;s_L|;0Ub=(8)_# zCXkfklb_^uF3RjYMc?%!-WE4lp5*Q8OMI25a!(sr+u^a6ldM-P*DA7`ks?fEwT%Rg zB+@Sma5|kR-5QO5L#4G>Jhc6PBbfH@$+^5fQ1-318z_*#lfz?=ifJ(HVnZZ?RJLe2 z(||5&Kjx{fsb3qPQ<-K}(0%gv$5<}R$Y*<NzWb7H?Z~Djau{dE!FzF!u*lxqmzh2C zq{(n!g+Wh999^sWTiA8bmF}MBANTWCeUFO8;qehq39xyt=eM;t5;2*1%Ci$OVZ@$N zF9r2+rz#y$;?`J;BiaiGV|O+Eovn=b-K}qZD@ttUGTMw}5Ly5@G>&492*<0`!1}jS zUS6&3)2U~6qeL;iitDwmdw(f{fnb{%a3nbS;8^Zs2#Gv$mQt{+Qbc&G#u!P@Z{aJe zimuz7_I9dokHBZ&U8&g@ows$4T!_WzfSz28fI&6ewa80}Z7vK20fk*eaZvDB)lT|p zQqtIETX9XqiXg%KQhqPvd6K%f@8NTZg3L+wgB>-LSj0CmxVA4U$dd{zq<X@RKyodq zHs?YaylURN>KTIgv%0&7xAB>bE^oGM&5ZA7d;MoAEwZ?`fdJ(kvC>H7if#@Ne-8Vd z2YJz#rXCOFWtS`PCu`(;zbTuv@5~l6A9rPS4ZX5li@84L=(LQpm~E@<lJs^%?*#n} zC>L9tEu?>M)aRYig6zJ~?u;%|w}p;X;>AaOE;Bm~&PNv`UqF-F1cj9)sSaD#+;>(3 zb{e&8qhf7Ci4;R;+L!j(S){Ov-r;6k%FT|B_T6mEmng4k0{fg+-HB9-ly31FA8^nO z89~r@iSIt!i?gx6ANLL@<ndOPcf};KRma@Nl$JR?tbmndVDclnhYo~I8X`aFR}9+h zD&kA=ne0!G?WLP5+xH#Ge{~!ea0|HY1QA=@s=CJ-i037wf?r>%pHEJt({2h?)~p+~ z@wluWJ2%g_r@wsKUgK<JNzJd>#qAg*B~~^rSjZeJdUh1+q;V(}TZdyZX=8}U+_oau z?lPGR#%X1~`(=Tkjs+vz<O2dY)78XK`Ra`((*kW1X7iZ-;>#%R1;tNsa<=zZB55U( zPjW0kj5tnmIuC7Df~Sua;x+?9+sNwi>RRk?`?tERY#$eod!M$A8E)}-84=h+e!kh3 z>0>~~HA29%a#j8wG}O7O%bml;-$;|8e0}kTXD4Bk$w75)xpcTQoO(+KzO5-OB&|KE zR7sjz{{SRON>|*gaT<lQIr(-f@wkV%4o~E3+)^ASTOoaCd=bLl+~M)}P%Nn=kb7+L z-&wl=@r99$Rpdt1*Htq%rU^Vtxy+yYa_+AB%HMZd=dt%PU(YSw`&%Td?aetZYZHLV z2|k+m9d#=+p2{~3v;N-uhZ^Z?CVmBx4<+J`C{%_3twFBa=%EgTowMI_E2ZXo#py?4 zxX@`*K&v#Mik_MhwhFG2A?{w;Tt*&DpK<4{<FkQ~%I6v-U|qr}4D%h!9k<qzl5a#W z$M!xOJBhc-V!M)Si#9yqXd)<$?Kx9Iu13TfP}5AT!3rQ2^WtnY@Z2Ze%_OtL*6%cc zvl!TdL90+yuJjr!VOthk{2AL2knbeS!iKe=s5PkHPp-m-#qk$ykfP`ric|v2QMo-g z9)21Sg4`gl{{Te2s8^5LMAYlaTm$u>lSe^dfxaQ_l~>~e)b4}>L0<|Ie=QLhn&aWv z3}s=t;N^`Ex8Qnj_-k<*SnnV4#1LCY9Fq|uFBNr-4_^~dbm|c{7X6cW!9AP8p+P)& z012QQkwf9-rqEb@K!?Uk(;03OIf<!epi@)j)C2hFB%bDSGPdkEQA&u+YTySU)CvL8 zoHTS=0vyP<JMktjGZLdD$m!AI_DQbw-IYe#4ONs)pnPY*cxe?9>gwj6C{{jSnOcn^ zqV8pTb`HG$-}_>FPi`x@V3c&0ppZO41F0iNis)`^Pig(PJI;CK!=b1?jxEz~->tyh zizX-gZn3tQJ71QFuM&+IlaQ!1HSyc1(e~qVe5BL5{{XiH$lME@P3qb5RZ}0^fVEWu zpercc_0V)4t-(;2`(y7YN&8#XxEm5yJ~ZF2s!g=2fp&d{*x&85yrxg*7mOW&9@!PB zBc!IZ8b?+#w{VHSwa)r!3)|lDcID_QfQ|M5`?US~+*n<KfBl($OymCm<${&1D<AFu z0O#rT({W&vkNf${lM3JDFxJR~v#Vd&LCn^HsTi#RG}zG4>T2~ySeqP<=gP<18D7AP zy78F2MqlhD$|gGS%5J2^vn)lWNLbLMl5&i=jo2#@RT>#GD<q?BisPk|+&aU%Gk8_U z;xHd0UM?)#MqdpsQz;;lR(5F$G!~JBjnAkk{WU(Lu15{NTK@na6Vy)iT5kUU)W7I- zZqxZswJdG$`3#n9+-2<Ln(rBvYkT?UTaa0K#PY35h>EZCJv^)Dz47p?m0d}^nJv53 z{vXg=^9OTwA9Htx8@XY7j@ZjuOb2tpZHl|Hv%JXJypVm(wXAOvSxONIpMl};29Z@g zLs8{kP850>;d(xdTVTC|CATb|cfIef5=6C;AV@7`dA-CyLQ5pFGM15d0MqGFs=|7l z&qoq9&PVZ+cBTG%v@yNlxf~FV?p%%4<}OP~tqa=nX<}Pc41nH5i#TQ@+ytzGl#TI8 z*MmK%`6&2UUmi!cZ~Jp6l*n7<tWGg(<FtHl3$rcF%;q5xHxS1RevVALkJ5D)hO1+> z{lhC$DSzW%=ySZ6aCRK*?Qw6KnS!z6*BF@P<0=412?Lsh28Z;ok6l`ngn5}CC&}(Z zW19G;%6TQVvhFW&;t+-ztW-<C6d;(f@=+;LIF0pcyDbzFvZF<l8{d6{DnW#77H00o zcL{ME-N6SI^fW?Zt&4(;4Qa|%3qe-!)85y5Njg&+dZ9d-d=pELlH0Zwiq>eJd;GNQ zk2FP!I7p*IP(Ot?rF}zvFDE*%y4G|$C;jt^hYe{qFByo7AQtNfaced*=1X?M61fob zo4cr@orUVKJcpxhCwgdFXGT>z@k%ukX1-Rtn-Fo>>r56p>UOb=J+2!W9Q>G%xC&B9 z2n0V)AEu$J{30b2LtL+Up2Ec8V6ukGADGD5E>hz$XJKr&cNUXRbH*9M#~>g}3YI^_ zfG-0=`bxH$OTo=?A0X!}CeGcz*~KPq&idCaCB2=jX6=lrI1{oXnG{^4a*%drQKz)A zYiL7^56Brl)x^&R2IZ_;;^nJvYY2uSj6%gDi+E5xh~k5i?i=Y%1pfdtKS5?oyZgU0 zm&j+L<RrhHu3k9pOS?4YMpfj|G_OG)5M*|3g;@2_by7VuUWyZet9RdeTlU^Z8GU_{ zg5KuR=E`*U=V;uOhFIh=%OC*rP}M<2sbDL%iql|P_O{`@%YB)_-S(u`w^vs-FOB>8 zEI+ADY7CQP?&Fyip_L?1!UV4$ubzcr0`2TpJ^tdml_rMv<^9wj$@}}I2*?KHq>Rj1 zQl+=wOx~g?1+%xwTw6)X=6NZxc^Y|DikG1O0OF8`1$WkvYzcdUmeMHh=9#2bk}yP& z&H*9OC>~T%*KxkG4yB9aOht}AyYmSjD|ijWaoZq>AXIy3m@1O$Xh9U9`sgRv*3b_t zDa+m6W-r9jUEI;Gp56f(bBaG`0wG>KBNf}#xzV$e2<5+y!zpH^mIOw4-KCX4GOS!k zA*ewCg)8Tw5^ax8{0nVu-hGBK664{$lG7`YogP;n+(LV6L_6{exl!PH>x(DK&blc_ zV2|M|yNHqx=$1w~gfW%-caZVn!KhXiARnRf)V<oKSK57#KKHM}-y}W8F7q(B{4{p> zoGv0)%-p4vp6))%J2?Scg$9H}&3t%~w_S8s$e{~hu!hgE@%W>EXO!=*--&N+KG9{g znp?MqLp*meut*`0G7}I}>Zs+d?{-Wp3+mAj?5@g{i^boUxhsu|$BV#S%0&xt^)ZZX zq3_%MKdHTy+##@?s#+K>v7OnFe0{C0lcGZgG9tFHq-ySrW@M@=mZ_)lYkQY{kUhFB z<UZT8qM26C)8m=$V}+)Y81uQ71Q}Qf0*Dd@We%Qg<G!cP-O8$0qLRsp`1>xnrHVe? z?W{elQVE2zTV3WPR+s?I7`(WVD#26`qrh#YwdZ!&-r7rH&L0uoHkOYf=Vh_>J@9RD zHaPrh#>mW(D!sf9AX3~yg*^`4G>s|PDZyf1%S*W?`_XlqbfcloUtC^A%*;^%SCGa* zMQZwb0n<qAkm^})!gi)Y(gTg{%ht!-K-TvOGyznIA(jii0Z1sI%C!J1bR(lSn-%rc zThb9$kNZpP?6-5v-96Qx%j6}woZQ{nMwWI^%PT)JYOprWz%%SQHEXW7k;a5wTXH+i z{AB%}=Kla3j*2E}Bh6V#@l6{@K_TRw-DBRAhITMM{@jrgBi9$blACM?RMxtmS@*Nr z4`;iA7({~K`pi(g5iGPn%DuLn2`!|csO9K85Y*pZmMrziy-r(GO$S2_g^u!kj5d~W z<Q*9v@nDF^MK=YuZRj~Kj;qBdF{rxjAlYu;vdY-Ko$aI-7V-h_LnLVN$P|VIsSG;q z28^)u6sK;(j<rh*B};pF>La&~IMOu)??q4m1o;gPW`r%e#>kacaBI-<72ccer%Vk2 zy@@;W9sm>4oix*_pwHP*&_493AK+_Ap&OfEHmI+N3sJ0_1RDDYC`C8vU5WbWn1!N< zR+Kc{=*SXB!ZjTfZPv8%){tn7m0$flv}J)owG*vB5ITJZim)9`fs7gzKVF?jmW+$U zkVy#S1y-J8!$v~{@XDKdsa~B&T@=KKCKB4S25AX90>y=P9y{-%7J{whwN^AVCY1pA z^y&_df=8g%-e^&|DQb~ZN|8a~O~BL0A%#w0x<HZvK|m;g78NAafm5YvFtd1Ut=Dxx ztSUnVDrrCf05Bh3nh^#}bz~qBp^V6-LFW8{=4wqqE3l!a_0ZS3oAel|wPb!$NyxH@ zBUOyA5NboURFgrm0BN-{f=&&~j|lymap&u=J`}GWU#rHo{In&8QTdPDH@9}z?G3A3 zq;}TfV=o=JWtC%v7!E5%P#&CP{WT0al6?L(d!1aG*i~X3ukBU+(Jj=70d_<M&Gd@2 zAxKYMK_ovG73sE~0-HBWtE+2aA&=h{N|xxRV9_2aa^YE0oT_<|>aN^rzLg@6C7$eO ziH|oPV)WusqqzH9!jYuR-sA-#Y0^G*_W^;M(!sqo+mf!Emk|=RoNhhtiyW_Vea~>* zWFfmU&3DGaYn$2b8shGIq;S6SpfWSZ?lm8)C0COb(sG^0YBm;I+4mL9&@^_inI)cB z?g6t57G;=(46RzO(UC#5ewt}QB`gkHZ*)%so0#HA54M5ALlKa>+W<jDtAq@dYSDMl zm9e^=Qu7CGnD|auZIU>yWzX3KyY|u8M-7amt33;GCO~%nDt&dX;i8sPRCD;dM<pGl z&Dp(hTG=j@6ev*9+t-Vgb=U{}LZX$gT4-`a_^`QqTOVV6Biv-%0dlh^y)q#SG{Ff4 zWMU5#Kg=Jhr+qZYU=c9=u{6sZx5xl_(7^<fM;MKixK&;)!leG1(x1c$(AWthHu!82 z$XeUk#P`c_5Hq5s%;kN!Sb9RD9o@f4>PFsr&6z;Q{?5WjbsQF$8_S<?+(Z}cr5u#6 zAbB}m)b2<f2TFRhId?aq9(xBQR`&Oaf}SZ>TLA^*6ecuq8;A)kq${W-3V-d>C#j=T zp!X+kXZw>E+PMr4GAxT6Ma7G>#6>I;+uYrjiKBR(*-A*VAyMl80P#$Dr1dRozM7SM zZ^IujE!iK@B?`XvS(%+r+$u<ThDd=VP;6?X9+V?Y^4GYl75f(KXTu*S#c#vx65d%_ zSf0)93NtBqTr*2N=({)$6ao5a>8_yjE`^pWb{t~Ax6J$(a?O{?SXjw%Br;B%;^K)M zvH%jd1T_I0gZi3>rnAlp;eADY&G2?I#>Ptwhk4=cE+vKt%#z&EW0@jeXWNcBNlJzZ zLZ_$TGS4qyydI|cZr=F%>m7};%=g|kZ?MtJWV2)Cy-4J@Yom6&!Hq#GWsv~{Y)AaN zhnCZ#8`({2%KfqUM$!b1?<teW$O5a%l3f*YqBJB0B7l@6ZZ>Lo4Gwu**b11E)r8t+ zz6XWooMCb@#;!y$#UHmE#eoEqB&EUM#ry?ptlnPe3b?&PCGVe!=Y|_wUcjD2S2Htx z`&t)NCP2*bGs+Jt>>rO!wUWsChyAX>QhcD<5RrD*VnZ+xm??KX?nX~yGyp{G#kmDQ zD_`LNX>E?(Y|!52dLf1{xPE1p+*)J1a~Ej^s!Bu)ih!8Z8W2)h0Rw+89S2Irwj11Y z2?A&Po97%aZ(inQyt1>mwvsreOKfG5w>cJw0~j1ouKS-4rkb^-oD;RIwS-c>A?}X( zTxM#1*Y1YHUduFdPiYJLGF%r~s>o6{-~o}5f`C0rKjo)I>X$-vv*>lXdsF2+%u&so z?);t1b4PCRlXH0E{{XNU`$b-8+(?Y1NW3<v+}45<RkA5J?kT{0b%VT#<nKF4X7=Qs z(kq!~d5n@reqdJN3pqt)amcasklGh^=o;&|^C#M!nS!;-OJRnEA&Swi43n$M;!kOn zkeOPGMk)v*yN$Z(Rjd}5LN3|<>Ts4lmY>!vCbG%fM*=OjKHcRK+oD4Nnn|TFpm%b? zsC+BNhg#k%dZsmVRV`6r?N0jt0KTHgWoN`bJ>kf<Gz*C$X=IiJN-<c_0`&9*HQV<| z;^6m|GRe$7OR;-*JT?SKi|z|7g|k*ax8}_o#_{tNNfd?ztBQk4b!`@+&v5L2ZC%`4 z+gjVo1aZSlfJ=~F_K}zp!0jAnfb}PRP2}QHQN03ta|;{gGVsczUt(|G*^)w7vaC=} z7?vDQAs{V5R<DMV*&Gb2lY-%89Co&UZ)}D!ItCW}c0pEB4Qt5kdVZkV=WkNmB5Nke zSsSVGmoddUTAR2fo-*+)a7QUTg+b!s03>v%K00RF*qhk6;xBHpRuIo|16wqs`Opwp zRPF#R`i84audu5dXmM!p#T6DXVw4nkm;!__p;D(}2<u%@<rCWVDxJgeJ_{{6-r@`6 zCNTZG$8IBNp4Oy$4GfV;vO+3&qaG<=<?+;&lGZgF+FQv}&UWpdGDx7u_YN;BdyA3< z%3yEqB(l1g&@^b1TE_7#&fFDabY6Ulh73l%99gW?#)l?MRIZb$&O4vxJ6_(pd}ZHk z<8cz0k0@@gZl#@8L|zjkeZ(S!3ZYO`*JG~g#g^wCos)<gVY{;Hxv^i?_}jv>JD`fl z1&Kl`fI^p$sUva;>s^OUD@ZB6q!$;`lEAl-Iw}G{F5H?H2D{h5{eHEknm}c4nxIyd z+Q03ip_#wjR;mc6m*=E3nlz{K@ig1<(-<B~H%*A}{JgZlJ_HXRG2_!%2hSt;bpyhm z>84CpkCs;zCZe55+w#+sh$N0iT5>fMHLWZ3{HdY_iA<I1yVirL-$dOYnGWKgpW{vR z8WjX2d{k^GHyuWZQwWCMHyfZPgn_qCojQ2v!ZUh>#bpx`Ohb^NEm8oW+Jjq&C%AN2 z_{ros^EC7aBY(u{(g1WeTY|GpqhVigjv&*^{WKs^y{(k5{{YvD>R?ak28`7p><C)x zY!RiVI`P7hcgz8>c+#yxHeMsI<D(&HFZylGdHa!jb+12Y^QC(Jx>rX-eh24b_HIg9 z(og$pX{Nn~a-Q(u#wE5!<NU`!;UuGSaYOW?jd_mMozD1ug4?w-*C`}8zSS~ICB&(0 z5mH4~``dM+6eRIi<PR2A;!A%Ewx!OU##Mcbh9~3x_gws!Q}*)vQE--DeVwC~KIV5Y zhK>+e@M;hbUM*glkG)Ri7Aro39Dl)`^L35K+gw`<OX%(AX|Csu1){`ktze2Jj0JIU zWDew^5e_|lUZHOykUenUq7SzI-+TKf6`jS_O2*Yh)5|hO@hB0QE?gs)xNcw>N1%D` z-kR%s%b~rO)MsPx7IMMjlPTR6%PZcr(Z_7jvZcIo!rqb*=;S~dkT)K+ty-&WzJpgE zaer`pBic83i<=3%*3!mimL`H}6{n6U(I8s9X$o><_WKY}3XZ-lT$a$*#GsoI+y4L@ zSaz0AvU`)h>~8F?Zmn-%mK!vP!*OV@7<COZuq=*L)Gbrft&;X_G`2FLY8xu+h4?2F zmsXh`<XhDcn|n#&wul#vP$M$}lJSw49z9cy59+AV=aM!v$3?pfyY5fz&dM2H-q!N& zLG7}{kb;EARsfL_5()iV=~c2m!F0rlF~2K(F^q=Uas8cnaXLvPgO@ntV)X=&Bvlj# zY7MkqE!-*7u_T{9_S(!K#r6%kw^fcej^=u=wFxYX>v!nJyZHI&aJO-J(QJ)p{@}BB z1WS(XEKRc~xbEJU4A%pT7YQ9nAP!YK=zB|Jdy9AnxcT?xS=ZaQTy3K-5LOI($YUM^ zhM@cj8gFW*_g_O2{Gapf-@38pZlU&7Wx0+USl|(%2a7Nws-z9J)A67Hn?Pj0J<A#` zm(ID>dA{=^;%MZ$W6n5v!h|f27Mz#^vEmMqtZT5muGkE}7yOBvG2Bg?dyy!C)JcBi zgt>&=MIj16A(U-H*F`$?8S`Ngd>4_H;5@lYc`g3{m_6o_cK-n53tgCR)RFjUeag%S zg@zYD+knPgMsBipt|j(LOB^oM`;`w7A;RoyLqp}~qO&f-+Kn;@z8&rOt!L*o<=XpE zv|nzqTQ4t3laX(5QGGzEDt8}Ir{oR;%TI_q6>e@8(mT74Y2_Be=4er*K(agx>Vm2q zAXeUr$Bw4*S%26*)khegi~BrTJkeq!nrIxxMAEoRcTm9$rCxzcf{qzmiwakLmz(Y$ z3$bOuTH^55kwz^oV}d~}M8gbbk5a0&0D?j04MjaafzmfUM})M1N3e$-Bv|$ig%)45 z+=hkNa}aTlVMGMB)uH?~oWYZapiUmj?g=8gp5AlpaE9qFTZClQ!<HZc?ihfrX<j<r z0;jl}<oq009lJe@QOK`rXDq@cxMq%1Zyz{Zhw%$nU}%4b>87KG3)WLO-@x{gwbyXj z`%oJ<p4Bc^MRu2sZU|5mDl#zxnmbVOUl0oQWm_Eh&qm?0HaA_#A8z8AtZ!P@Ym1y5 zkuu##&ukFQ4D?`}9P@urZR<_<<+6L7HL!!UV2;B3F%9jo`$;kvNA6zeG?K+|R#6*- zbHziK;unbVJ!_+qVFHaz2X{wr!<Uly+TQzki><Qryk<ifo(R@Sp<+Sz0E}@p>Pc?9 zr5o$G)>EQ5eq*<7ETPKa?QO!y_<rlgJcU!-c`+Fm$U@9PuOSFPXgYlcyVL4%I>S2O z#%j4U-KJ?LL;X_`miJ<IB*&G+Eyo@#SWw9o4F=vD>z^}(py<V`I!gBbI~$2ru>vUL zo>u`87u#7+xZD+1iVHWZ=y_|-b~{yc3V|U@$kGBG)uoWm=no{A`)7#&f(Qy|KDtPe zr1}W0;qSiSf@zGB6vkaQoQ)zn6;VP33_qWqkNHj1Y|`7s1dl9&E(LCV+8G_z0m(pL z6G*{PUca+JCc|hk@$|Oc=h~^6hKmK;%WrvUDv--*Z$CKVReB0ZM0O*?`Fqi{Z$`8e zbD+cmFhxqzmGtZl1qQ?lfu*XAib0pSmJ2x^7)8XftIHL+s)-6IV6{8?h^E6->JFm* z%<h}a_haMxj~g6!x3?C8Xhf5Haa_m&P{vrHAr;E<BuDA3IPIf)C1Gmh^9ON%ZJ*qy zaCf$6yUte&hP2G&B)<mFDRS~yhn&ua+(l}S%?KW$#I-ytuKa#gX;@Nn<il&;bS%Hz z*Tq=eXT(^Hwtq95?n|EBhaYW>vP*F`I>pvBisndV`)|2bk?PAFlG3$3K+<E)%KfC* z#TAz31bvg+QTBIa*jZb~)^^u1CQ3MNDrO&ki6JC7FH*;$J8Qjbq3484bc#nOQ`UrZ zr9j;D{kmuYhGRfZ)!)F-{dIzF38h=d>%ZbU>u6(O$8cM3A>r4iiHwN{U-*6+(qcA~ zuOG+`nq<IZl}{769y(!Jg6wIx`_uf!v9&TDl&9t6*H{opl8}1Ro<1K<S78mzg#Q2+ z;7?k9I@773nmIiyLPZIsKjZ$oVOk1?XCMu>rF=9bK)9yk9S*~7&tK2+(U1*or7gw( z0EB_L->*%M--ewwD?<n+474N?v|@H6@HEj(VCW20V3KhuxD_lw>AgR8+RVdiHKho8 z@aRWh+CS4;V90N7UY?Q2nscGppDJumT@y%Wy&oEQapO)cN`9JBy)*%-;*Xd+?<bD9 zg9Y1V;}A|CDKtzWW})O^4IdM+9<yKieD&hvrn2@uTV5W3J;D9Qcm6`=d0?`#w~lEK z2#m6@QpC_2I20AzZA13h`AipnMc`UKS@~lm-rP5q+>I(?wdTf@UR;ep>ELxm<I}L7 z{kwwRcfZPVv1vPoSi}ld3`-PXkSJ=xv>SNo>yEvE^4qw&Jhy(jduKP1mE=6+5zHuB zLP>5w({?AR)i@+i-DG0}-MRUqc}@M_xB}VxlFWU>z_T)iS{ec2pz4=U%Vb#3jq_O* zac7N|=2c>{s>eGpExOl{LBH^W*I7EHxHWwTc3%>A8pSlH7%k(1FMdHfMH2uiUR>FT zpd+ZzZk^1zHL%9p;@FO6&mWM;q$_s`p55)^56Vd7ba<2%k8ltj{{ZG1M|jy3RF|mo z^WnTyHg{KTnVS0B9_24%f)`m;c%ui18EEtkLW~r#6h<e~SKag*+wRBqpAhyl#SpbK zWhF*WW<+E`Gdcz!DOV$7;?-6fUv<dd$|tz^s{?l)M<?4b+Db9k0>a`sE^8cDjEd32 zFS<bD#g?=r3YFTLN0!RNENUdOw`2CS*LT+u!EK7TvM^t^GVU1GYgkzu+-F4(>HbSo zcIQt?+*Ntl9@^ZG9R^<`b#W#F-rnj7UODjdyl`XZjzLJSES-R=)F5>ra6Tkcb897_ z^iAv=oQK~Qd7F7HEN^Tb=dj3&RJ;q1mZsv@{{ZpWDw9=UciY0c$`B(_ba+gNzK1<F zK*{|zZ-I=*?#|X%GR1U;7mc`zJU)UKhZ1yjgKC)K*S6(~{ya^!yI*1KZQz$1A-IG~ z93tIhNSb8|Thl9XjM2F9{{Y>s$`+uBdJwM`cr5Q_5?|Xbu(`UJ$q;zvfX@ukay&&H zxVRhDU3_#UZW-twk)G9~KYKi?_RdmimDDQ)MURN&6#7YDSB|4sEx}tTs141$85X{? z5g;rITpP(mYEV1yWD<}RZ?!f6)5l#pv~%cv{Vx}Dh{C<Skc$57x?ftXth2_7Q1bvY z5+iP1YC^SXxuPi^$s=4s&21&^l0#_G+(d5gou+tO**u-)Whl%DXong#YTUQnkkBVc zF${JwLSfz;t4Aj00uMAYu)2)`x#9{ml660)kEo3`Q-HQLme(C|k&_^?4}KPsD1>pI zQWmzQ3lc%tP{@RB$Qt-1lj1d6PEC7ZGK-XXZj3h*Pj}8}5@z>jZ)4j@AC}S8KvK## z^?B$vwlYp-17&R*?;G|x$(rUHnCG{9gl2*%l4PD3)mAa;k}xUZxn8|=R3?Oatxr6B zBOSu`hjJyPR>HQ>%_yCUOk(DSV*?1-h9I(<x{5dPQkw0_^qlzL%yxWb#Qy$ExNw;9 zl)c7x4{zh~xyYs}li6Ni)JUMXaufxQbIWHeqhh+|OJrZysU|99#CIQY*<Q(K_OMH1 zIgKK%#L~%a1oAmo6+|V21g{#&z;tabwoElIG`No5+B^6P^LwKLToi_A);SE^fL>;x z7i6c_g1YCc)U#S@aNPB~50Mtip}zM&e`yJgeKJSg7&wevR0#<Z5ZhO%Ctj5sgNpGb z`{B;S?~FaI)=#-`@?xO8z~N!IiuA=5$jIX5mfXVD%~@3ax#SCuG&J$lGTAkuTxra+ zqua{Qje-V^+AFBPkt=$a+mng`S^_8q8-ERO-6YP$&#{r;TV&*5#Gz(Jh^<Q#8IVd8 zP;nb^rux=$y-i)lbK@>%?`Yl_!^3xtXm4Z=ydh|3jp3EqwiWkCR$<^m)a|87I<URX za&Tm)oD5bn=4+?Awig$VZxX<ku-sPQMek1;4K#d$JvjnuRCLj$lnWY%{A=4Xc2{a! z_S(FX7$&=u+>oO;8SWl%rIgXib0BT!rfx??#u=zRwW^583`jjm*woUbpQe$cHWrq5 z{`6NcNU)%xpoB^41X7GzojQOt(I6tQu!FSmR+y_Fc1Ua^_7ngaxPn@Y5Gsw>(t}5E zY!?nv6}gB=CP%quOJ-$scaSNNqAOFI1X9IR6F^SD9S2wneL#Dn*8!KZy^Ff8uhSG& zn&J^#csN1}mS<E9ylYZR4w?#9s4e#^pDyFOM<LkDn2Kw=dtTCRS$m6Xce<405A$V3 zdE`|D2~~pv%@+m%59!xVE467kZ%VZY@{~EA&R=6Depa%8v`W_<y_Lme?yex3q{#zM zVQuU=Q|S`M<Cl=vu~y!&dAF<=Z12b)+a3Nk!t)#5cQ)C(AY^-H#pUO-mRS_U{8+#l zXpH<f+?C})%SK%6BCGBThP}7TV<5`d&-Zq>KH;{z_GGvBqgh=8`*MKj2wKsH`{*%( zc#%qMPhapfu0m<hSI@_;vN0Pl+}59mmxi4v1eoW>wEA!3`2JcTG8or$*G5H&K3CtD zUjtvq>!J+}(WtfGdhfW=HiUuH9nCx{bkiavNRLoABAz{eKil=zPobL9LJ~n*)}1R; zQT|?9Z-{|b@;N-JDdGisc<6zQZKNd7j#S(a^rn~$XK!=w3i;N(03w8Wb>GiLNsz|c zK*e54u;b|u(|xz;N}iew!&`Y8q={NU4O~}=0MLQ?Xd?!t%!-XF%-ocLyB46P^%bv& zhMdMd`>tI5)6Sf$UAfn%>7{%rtQb7F-w*b+s93U@*;aMrE)v?!3P!+<jM5%X4S$6; z`qy4JyV)L}x9U%h_^-4?w>C-llgSLSR`=edW7;f$`zWYg3y>Ls<h2dIO)tB5sNULw z(TMC`-$899-X_W9g}s}*Z*e7<2L%g|ORYiOd`))NcC*|nsAV0uV_I5YS>v$+<a;53 zdw8tHWFj|kRx>34U_#cTdiiP>P9{gITR>Jm98C7M*`>B)HJlJ51358C?HLaiiXfrD z5*krz#-CNvH>qALab>nX#@2g0elk0Ft><~A=J34GJcwC{Mx9+2zrv}-Rf*xbI;N0L z8rX(gJcdgfje|LT6!|BQ+m?4}8a9A{lS*X>NDgQ{KptT10Og>P8I5CWAA06XI%Eyw z3s|k)1XJ3pp^iesspsh7$91pJHks?Wk_7GyWY?D0ILj+!<Af*eta1^jxfRS$>5%)O zN4+Up8inPz@aQXQWiL?v;>1Di++;4S6xwA~Y;Im;dw9LJP>`vGRSL*T1PpiduSTP4 zYp~8bbu@<?Ev$<rwWrzK2-XX^Rah+%ilLk_<smCTC1T9A{Z!jeupX?T;5%0#XPLjk zWbdw|gSl?tFJX-4@-4-qNqK2<vIyiZQbhusKaBG9jXyctpp>gh3sTDla_ZB#=7m=y zWek{m=oCB`7ZXa6i7hWlWRN&|IAQw1WgeH=9-jtL_d(sZkg1RDC%U%1gYD<EG9|E( zC@l=oIS8#X0vD4o<eNAoA5`sG8iQ+VYg=ff#N(wgOd@OCY|<GfWeq4Mk}#xkG4!ZD zJAvgsWgRDBJ6>Jj?s3!DS(L_!<CsBasUVIg<?co8#0jq_5)coCIQd;UIonB-L)_R* z9nH>fB|L`S@_Tt6Mc@s(T};9?W@ZI|5`LjT$N(Orv3T1Gv=h#g-C>t4c<FULf<pEm zXuz!CksBmSLB_mFijP*_BS&oo^(3^1xF?Q$jm*hs40ExKUNOpG>Wv%7pmJ6MsMS7a zkA|f0RN)lXCFl*7#@yIsq{d&Qw=klbU8pMr*0O*eQb{JL03oZhS4~?=(4QE3li@9~ z7SN@_N*4M7II#A_w+|d<AkrWtDE8bcu&6Aoe}|%mt@sZsMbs|u?y+_;+z)ozRfpZ3 z;esWP+XI7!C)dS~5{AB(P~1q?PoOM;tgU2qe6m@ze|m~;UN7bm9FU0JSfMm2Kp$$Y zMKz?&J%V7xC5A5>YjPsHLnpZn`RB=I4Coy3G)^%|MW<3(kDij((4xkMvSTEc$_vYc zPH>f;zUeVXJW3_v$_O-9D#C}<IakY5=8*h)1YcQ0VT8Kw3*$Tx+D2o%ibhf*MGVrr z1*faky(vm@@UDZjh7#2C55`#ho+IZ>m4$-aEYWgvb9=<eZh~-(Vr5p7+)%&{KVKuS zMYZjmHBXt^f9;%=o@N=a!ECVdTT?BHj2K|Ldw3*kS7=qeWg_M3Mg44>e=edari#Ur z7T{vBv+t|(ZbN&?j=s7}h~$#-rMS7gy7aQCM2Vw%6%R!K3V7(*H&9i@y-tm3Vr^h8 zdp{`Skzh#|`Cucwv<g{k&wvQkI|1j{l8RZ=XVyv|*?gaf`75|GUAHtiyDa^kjl8#$ z#qTQ%7^<>Dps;44WT_l?<F$3uOD9-oJ-Kp}Fzt@jxx{xycmC<g-R9<&EF8AiH%@s+ z9~mcPiY019rf3C79<8+--%SxpCii9Q9U!>2Rj<1wa~R&)K_lGg79?L$JiLdVxtnK1 zNX4<rw_fe)yfShOG0^Z6l2Jz~BvxS(ni0^yho`QYwg`<z)<!!x*e#S$3B+bdp-KrJ z1qiPryEC&WGzE`AqSTCr5X$lbBq|EG6A}POP)$Lp+ix?W2pvKpcA2<DHU^<L09SgE zU8o0!idukSZ4$`ij}Qw|yN<0uXnJmSnU4nir}IZ~+Wd#|0E4_UIBDR>Ev^R2)^ioB z!)-i}NF@!(rxZ`+a2}>@_3QZQan&Qs^4-<6dJNmReq`<YUe)i8;>~yEo*q~vlRcQ9 zA3Lp+dt}UD6I(J#5{?9!eLu3grEQM$$BT}~HI`~b%AKU>eUtsv_P26(z8>qkv)1-@ z7$&@>?aiQqd$qZa6CCLbywV2_3^JJClfuu(fG)a~ynmNObYt>b(#NN9{{Z%fdtfc{ z78f?zye0S{CyGS5wVWv^Ll&tF4SJ44UTyK(x>+8LEnBHhMp?`+ZDYPE?#z4;D%spx z<dv;B0~w|`!o^7y9E$HjTIq49h(O}CKQnuu;ymQnPm{N?e&4Z<7!|D~xo>S=DA6U8 z-1R4|&nBaF{hIbE&Z;bVmy28FLhC<;^Ox!_EpEQ*B_Ry3PbAC8&;=zy0Gf@Do~WIl zR3^uC><o1HF3ZH>uGU0*IOL6ij#6kRk+<9H;&gQp4*kWD2SFn%P=^sqLI|kekBB;G zVQh#<j*BF1Rd5&|G5PQNMzk=dN6LqN$A|oM#x>+AL0_TK6{G6ZQk3z~3G%Q5h}a&T zf6qi38?1y74!|A1FR#+Nb|JWGEh;yqK>q+e12%52u=3h~ntpp}p#n+NkU%E1@!W4t zpX;q4l4z!qgNfXD@6+fyZ>NxG85P6F<4`u(5=WH=j>55(wc`S$4ui*I(w;iN7}{i< zkf8c^pr}zwQl$NKQvl}IBA|q2D5G?vY!CaNu8!szi-`FNWssfrCAuHRolc36Px86@ zp69NWuOt55bOLdyvG_SMHxQH%xMCJGyjY`<rol@(J1G>Z(11bLgIY_}_BL7&+IG%S zvey|t){EZ{Bbn@-C7g35iFBGZk+-NN2tH`X^ys%8O<tqiZ*Ju?4?MQl(XGTGWxvMX zS>59<m7XPyS`@j7L#vpYpp~NzT&ttgO@ANo4(~%urMz9en75B5jA$XtLpwnCtrU?n z0=0=HgrYMVhNwLD^wWJRQ!-}Znn?G!h}zQ|Xl$J%FBh`SCDf@RDI^AWl~^|~QX;So z$8o-qM2{{cT_vHse4aNmbSAUNtY_UxxxPN~0T_*vIw_!dy}(rQuP|s%?B8w0iO|yz zjuAk!WbPj7;@6F%tRyPCBfOk>GM9`gathSfZyM-X>M~M;qKheuY<-S0+D9Q|n;mm_ zq+L7B5LEvF;}I(eOlj#W>I0vrW1{;RdXuuxm4u;?dr?ang>Gb!Fjj<;h$K?X$QXKR zdiYj`Xe?g^+%_4RA$+V+$Cu|Ntb8SV&uqwn!W9aPs_v|$o=acSX{VOKRui1Mwzq*Y zQ`~!&)=DG0jeW&ntttgnc0)!YS~`)&j7?7+6lB4!qDXFKx4eQ|ta`MT_cFw(c<Asl ztR`q6UvX7Xez2Q1@8ESdGHlG4=Z$5)wvO8W03C5^E%LBl6@vU(D}teBxd>&qj0fS# z`K>6mqVY1io2g^NOZ`IOZLv2cAhtz?qG;uI1UftWu*)LLQ_8I6>g!QcrJVwb{m*mR z<0ZJhyilhMCwGq8p6qa@_Xz6Zp-%wE+&o1Umu{g^F!PN~KI+!rjlM0TxQ@z_&lJTY zt(@&xqz=R@O9RErW5MEcN-?0LP$X&@9zCx+THbCj3ru9}Z>^w&O#c96(VE7i)DH<r zVyxU(cH4zDHE3pZd`%k@Xq~$;f_39H;C!0L9G1auRF?PUk%&A=p=trMh8k;jGOm(_ zBPaIIO<@FwnlmEReaNk4;8HZXlAEBBN`_kbZhum7NM~k6mdRg7X=`tt$F$crvD^V1 zPSX35NQ079RYP+zk;sq3^=noW(T3J-Lm2kWioDlRM9l(C7b6H`Di@8>q2O562Ow3d z?f(Go>pM#|R)Kg<-N(exu0mO)<gM@75{bolgm9|6k5p7jpVeP2PWR|Ku7>v3&|_}o zvb9O&kL{}k+$~unk|Ml|rxXOs6-1zq)D1LLnEMC!A8S36tV=bbD+6v3Ll~(r3mTA& z5D`EI$SdKbOHr+~1_*B?y=ydHIQ#T#tD8DjR(WIO5%~kebgtS_wcDX3;@!@-7PmJf zBrhG!&+@{94CPWVNCXx<!Q>Bynw`b8Ess3i;IFY?+=fct3wwDan#%6xAo2kksS&ty z%Am*<i6E;UyH|a8(Wi{zht5vMvNRIh<!=RS%yY~qh<`Cy`#?$=$XX~q;Nm(R`VAt4 zwA`?w-p&N?>ui0`wQG~Q#Yb#y78jCPX0^DPR7Wdw1VzR`<%#_PxA5Gh0yQm7k;L0! zmn$KO6u~^re1u69MID(Y4JoIf7A)UVYvs#nMeC`~Z-4JB*LB-udt>Jg-@!ov5!&|Q z%VZ**(2hZFBDDzK;U|%y<-d{Fv4<BFdATy#y^gJBeoA~sJ0tQ>$hKLY%ZYBghIGYG zEy_y-Dk6<y_fwHU?99$dX5~&kplPykh-g}JnSkEdx8n-k+T-qVfti>|Z~(ZT7pulx z@eY6%t4I7Mp|#;U#*%wU${xiGBlWQNRC6e+MkcjC@ve+B5<?`sfL>ME`igYuNZWn- zY50pH0W+nvcJj(XFC~Ro8hW~s)|J+1F##6xGk+ik_ar+SfYbx20C=A*0BBS4pFaG5 zg2~N~v6kbwvUvC5HI5$9?^z^?%E+=Z@c^mV`nEfD)2vo#7P6-2mWN_@h3;!7@;7Jp z214m$mm`tE-CWqT*U}rC*-f{&C2)^OrVc%%;-w2OnY+VW*qtugPu2#uJJ%w$Y0KiQ z%Li=tKlf4b-X{3=Tsf<GZ=MVMgjW~`WR`e|jC+E7jD^&PA?lCKc6AHZo-d7y1-?xZ z^+i7Q=6N1!$86Q(!$rk4{LVp;_z&egjr_Ovouhvo^V}J(?5%N-SliqCvX^v#eai^K zgGkee3$PtE=vyTwWcj~ozKrx&_RI07e|&fSU8l~^+RKx=hUfYQQrh16WP;J?uFVzV z9#SK4k%3lKUOVhZK6}xvH9K(D)jChfxv!9Le;MX6{na))G`X_L$TAjpmsb}{boTO0 zB3oC4P#5XOZc4p9R63pvb+w9K)~!k>ef%@u`3}HbJ{z{)=JM{`JGs2Y#{_b`={V;k z*O9$KjlfR5e0Aw$!)r=B%6T<V_52YJ#s2`?_kCcybmQ`|*&EBd(K1J8du?>K{@Ayo zOCm9eWMVxanm0=LX=#G>QT`^klUq54Uf1BB_O})LUv1t&5RcooZcQTv9D>Z_b~N6U z)2ugpqJO!sW^A9^ugFhr6gJr5G=eoys@CCs#Q+5yoDoywO(n72bQ-zS=p&QhkC5=a zoi}vnt?g{>Ae^PWzr4okOEbjBJ4RQ6@-BTP>$fUzruOWVf|-@A5Odp@W`;u?ibYKU zK9wS*Y+8Wt<*D*T+BIaARIwDM>_6ZBI$#mBlpBM#!hqNE{B+3**{GP-fYhD5dj9~P zj0+_3w=c|nb)Yk$BE5e}ub-DqU?#~!RBicFr{|)z1161018uqrZ~Js$RbYtJ^q~jH z_37X=QWdxhiAw(f@$7s@U&L?znk|KfK?~RP>}Wuy)CX7r@u7N9aq;xhg!u{$6a+B0 z;+xilbp&o}<xTqa(|k=MD^!tc&T6ht6TK=%^genfl_9*7*`*I2Kb3zUKhIbl3O{lD z>1lw(S!b>w%iRm<t?jHXWU-DiW|AW%P~I{SNK;l(uO9g7tr}{3a;6GqQ~R6FH*hy^ zTjFLckr}6#A(bkTg276Zff#b32AsTf64PysSJ2bp9`Ww)mAjw0GnZ4_VjJAXTS){E z$#i|FOzNUGxR8LvGZRrto|<boq=u6XiMvbtneO{LA9K60aOJF?@L3y+9u}8mw6dgJ z;D6*zv`3&{4LsGQCQWrO*o^-G!~N}aEo^37c1h2@J&S+&zU`UMAk75)qH3Mhp<%9n z+x4p}9f@+ihn=@;d~vv+FAPj1Yq;&;Te#8yLL`s?vP;WuOpDQJRws~2YjS#~36{#w zWqmtjBej4u(cEM{;K%Gp1MrYDA!b)pKcw+>VhuH`4Tn?#YutI*u~Xx+cMvV&U&TGE zy})Sip`Dz_s_3M`rB<KKMfE6O(oVBU{6Sk5Y?YDzR!aI%%M5Z%_EP}T#|e1kMGqO^ zSi63LRH~ZP^wd*?QZ<u&Mpni@xW?QRQ810=vf|SFp_7v`sRl;@>&J~s5l*^&&>GeR z_f}IZml8>ZU?mL|%r%+PMSy`Dq6r9RKokj8Sb#t})!3VGD8gpqo$@${V7Y?o?XD;G zE+du+?Iu}DF=b^#?K+iZdX33lybOLLa+RTC%gH6^j^_GFW@!~5xQ6M-X%Q!AJ-2tE zMpt61^nJR6t!>PvO|g*J<!{C)&o!2E#>ujHi`!{}&Ys-=0B<B9yhD-#5uI6S>glz0 zC}Yp&E{fwXX&PKzJehkch@>{r)<{F5AyWc^WIp1KN}{{BqsL8HHKV91@rN7*khitN zS~5hk+N@0WqFVArUR7Vv(Z3;1f|REbe2Tg>HE8T#Fjl;9W#EH_!z$dHRC6D@EPPfu z0D^;XzMAf|>EdSW(v&|0^aY0zei}F;h|v2U@tu((jhR_^xM8<6M^@@<`D%XSuw5%( zQHO6Oy{wX7<LuF7nk!hRC=71i%PIiEv>{W8{oCo9lx>)sGiPmeblE&uaTL^!K&=!( zqcSwH%F4U{04#(}!J+}nML1fDs@|cPYaCox`54|u`#}=MU=HCyNtnEfRDufuLBw=X z>eQ_xrh?&<9b2O!#PO`Ltd9}|;T-NEZbXXImmH{g`np!S3K}yDw~fX1<hKaKpto4= zpae=ibz<uKF$Zda=H8R1t561-6=WALHJuq-6)K{|G!m$Fgeg=DJ4Z?dkT9SpU_P3v zX>KD^uy#7~_AwN%1!IP2*WXqF{ji*sWB}1fEb0M010I@&iOETD8ywe$JBwd@+=!7N zPh^CRO}UUp6&L^k1Rx~Way0Rz0(ChLd@aHGf3kAcR{sEZ&l{1l3|&zfphF-oT*9oN zlgpKT9u3o77`062x{FFL`11j?g6}5_M*&$aqW39vJWY1-!6z7*tHOq!qtH}nIOrdV zuX5Q*W#7H8kdA4DQAK@iEYT{?*H+1MZ00AGm=%mP=)jPFNnL8a8x50fBcJ^9+FvYu zk&m_Qp2W20jzVX;o@r9fY1}^)iBXwP004HU>Z<rIr-t~|xiI9d(u$mB$NOjg;ir`# zkGCwNy9}<GNiQOf?M-$f;9M7=8*D#F+g^w6vF|4rv3|#){w4m~vo=_yw)tx?`4zVI z;I_kJukI5bw(v-9B3bJiJlrQ|ZXodWwQF5+<??6gI`QCf^E12~UQ<T|AbYMtp)ABz znt+mN`}{S<I-PQHuaACowfP_9%#UefEzTOp8E<f783PELAt;ofWMII=P$RHFUy=te z#Hgoj{C7%A>O%$n>or8&7w?a|+XeDQ5^m=02~I-7JIlOzl|8rREv$h95Ufh8p$?p> z>0n42=e0QK^e=em<P+t;k*_{7#^JAQtRS3aucWaJd+)4JD%(jpVr|5a%#fjIH>-JT zr^dpvwx2~hf7Iv8ei7^6VQ*mk)sgOA((VrJ$YAZDxxq;^QCnMGNXdI7Hi<kj#%GKl zaJ#C7K4V)yjasU@x36-)GP|o<uE&UM`{TLrD+g}{OfE*<F0AtxmW(Yj83(?cT->Gg z)Gp5=2U-Z#l~qUSuO@D!s^4@yZ0n0<SKo1;dH1$q-v-zC%x$JTdv`EFV*<e>pKhWF zBbr1DElHyka@#VnsHUq5yQ7}I>-uuP&Hn&W?eWj|OPB0yrOYeab~#)YT3FWS49xII zQYT{@THQp{x4Bem8KYhQ0F6rRrdcc4d*I7;^WIm*=y#uwf4KZF$-e$C31K!4?;CWp zUtHwvEHgJVSu9h^){v@u1K)8NRFXgtG1nu)tlwh%uu_VxyIcKRet`H+=lOrTvlcmT ziL>~8_ibh(h2pur#9QJoV}X&2$8unYAgHS$_QB#0Abm6y)GzJV<!DU!cr@v%WorrY z_HVsDaqYg)?)>f_BafPYxs{^4Eo&=d_|`SLy2siea9O1rdu{_GR;#Z=!=i3lJfAZo z<HYK+e0L*39nAgP+Hf$8NfeW2QbGiTNJApB8UeQwY1Dq7PP@IUK8GK=pxV>q+&9J} zEqC5mllMM3ZtgDOzwLPKGpmcnT*DkeauZCp>Z)Y~1d)BFPBE(nK-%l^d~1C#Pl*pR zHaj%Z`2PS17T5dQ_#)Z?4o2HQM4co+F_`HD3k1sRM|q37GL5P^r|CS0t6r<{@^$_{ zL&~mvZT|q=sr-@u0Fd6q#aUw@_{$MCQ!KJbGiSK*alvOCYJ-Z~3p;@9#rm@zJbtHK zdGTbg(9!5%SmJVP@N84qpWWsMyt@wn0I>Ut&)CfOER@8XTWK2EZ;a#JP}9ujI811+ z629C-GOF=yp?rB(DZPhQ#qPyx5CwMxQ_JpKaP_YvA|NV<p%tswYMp`Cl#b4%VB4&V z#zc{toNBRyPKRYtN_`HQ8L(McfLUWfLKIQQQC-2@fOP0sK2A~+vNEK<!x01kJZn$( z*6Jf&LL!DU3m?@@g$BgeeZ>uHrvbEatB|r$1v(N*JMFc9&sqT6CMGl@-Ca@5NK!y2 zZnUpm5Fv~<sT@Qy@n-!dO_hn>ytf~}SsHaGf$d_61FDWyCQw08M}Z)Z-gH3$$r8w+ zt%AxAU5j+z_ys?HfEyS?6mEp@aKHc+R1;pbt!uxA+QwmUMzU2SPBq!N3NRz{9Vw?! z2^hm?%q)l0pm;9l%>G|p0|vz!#DR>8L8DM^Nu?@C^3jtL(i&5rg?ZF;>0d2wPq^I< zNAoOpvv!|i!+8n0w~IB8`^b@qVFZ@)!$Ql_rGQd=X|E$E{HyUjroLoT?t446U*_A) z47l<!_ZXLw7-N*jEKL)I5(yNO%BpF|c#kb}*3Ht|>Sa|e5dQ#Z*$Y_X?rFWq(ag3k zi0?yCXJV(NNv67TPqu-L%|*Sz+Sn{VX<1oCFTZ&Qcg>5M<Q54e2|dFG5!8SOFHH`L zmh12*#b^WFKONk+cXy^L6-(&*cNb{W6UHFWLuJWaD>D$lkjIJCxg}P|hpX&u+TGjo z2W{A3EiAInb7y{&t7Ebez4SiZFv9C3Wxtw%nnJ#Z+M2tzu=Oaf(77+ny^Y-Jko=K{ zY<<Or+?Md<Sz7i5xQ~<|q|x!XilCp=9ciTFUD2Yp_?AQ4Hl4v5W;<6u_ZHw7WqFz_ z%U&wdNf?f6V4mA6Ou(ekabVx5Q&M%ZHx`G<j-EVn+hr|YY;8my>w^It+({WpV3CwC zeS=nppQo;&WvKI@pRoJ3;{N~_o5JRaw!5*slq@Y9#{xm_nBwC6SSXSuro{8>*HpDv zLUp^c^)sIrGFr`Riyrb=32iTKO~S+sSqoCC$m{{Cms->gM3O&A(yaz*$vR;2`6;aK zB);I*T&5QCa=Cde<bmz3Q1E)GW#d6p{KZqHmKV6oBMv&+&f3=2bCQ~9R#2B^eT(?+ z;z+{#arzsYdX|Tl+-uiSwe0pEirt!EV8`8BK_ZCBi`bgj1XTMnVq^h0Zk2A76zf{o zL0!EVTB_6|C1{yUlo=dtlY{pxjR<CbCMZND$vk}$1!!B4>b0mXr*mC^nqYVM<-N!l zY!X{L#F(SIwIqOBxKI{amQ~{1m3>^R;Y~uh8@8pLeqWShiYMB$D|jzVGB+3l1-f<Q zrNJ)A8!GbMXoiH1^?N6639SaUxqE-RSZ^kFS>}OYf_XmH;u(=bx->?$0plbT<<tu5 zd|=#@0GiCnj<@%23_{(fg6t~snS>+|03-_fSScset~{xxkZfZ=cWDlHEX5k=+#j`q zIRi4@E5#XU5Nt=F@~A$dhMS#BjEyAnWbNh=O^;VMR?6@cfEP+TsT`!GeFe*H{59#m zf?qK56BKt)S;ZtaPVC^HcY*`Nggj>CD^ducJ$Q{#Br6M!?m2QWUBk>wizITawRrhQ zDgr$qDOXS_zahn2&q$&+3vGeqZse9XzE5&#T32HixE3|yX*B8?SiK2eLBCfML*)E) z1nN(RD~Y*|?=cyUIHkFUHV#zD5af@<2B#JbtP2Y4e>lYGhi(Yc^499|%H~3lO9v8Q zjY(cX_z40xBA^O`%BswDRP=&n7vyYomRWwo%|{G~arv2k>fSk7B3ny~X`__40$ort z9!y86WCNE%D_n}ZxF+b^P78)VG20W`OCBcZLzKIbne39WEHFEn1WeP%Fr_QRDcYoR z+gz_VJu1p7q%g%}<9On1gmKAn1ja}&e%(L{Q-O_S<m3ZES_S_A^>w(}!)&EXL>3tM zoyoRC!Br(DN8|LV04Oy(Q$vV)hR1ajXWLk!N7$MWqk3*f6HseiKND<fZ<P{5!A}4O z6IzO$hff;$Yd}dB_ThN@VN?O`0<tin6+4ikgYeOH(m^MkK2=WN>^VE16BaaJFqx}d zV&*cK=+YNQXr!D>3~`wnrq)8-N9*N9H9G62M(Z2M-ajlkJ<N9C*JG}H6(4L`_8q0i zZmhR!e{nVC{nJX0XSkGz<C)DAJ4tOEEJ*QUI)XHrYY>Oep4oCdmTFm2{^c;)T<y1L zU@`JdZE^P(*T(AF-LGB<V767OLk{c@BU4ky^VfgdGb&_udqLv;!xOy{UC%$idv>>A z;xb*UnQL6GLgwW!AiBw5<#@syWRHqPaXdv_I<O~>_1e8P)8)oTR<ucXk{&ghR!>*( zXysR#I|;jh_Y`+2?-i1-9w}hAS9pve#1Igw$PXYury<i)tzf0D>}#2{j$?0amA^pt z)^M}|Y}^L-&)f!AhhWZ<DRRK{r<ED;dkpQ7Xxa86&$n<={{UQ<KNakDL8hM!)>qIQ zsMQ!0X&F@rHKE_><EYwN(H%H0xg~pirS@Cy(8hKU$#(Hb@)$gWG`U*=du#W2>xF5p zksz8@fBu}%KL#g|3_V7v#@M?($>oLf(`o)ByZn3d55c{W*&p_9Unwp^-zg=$x0mwc zuH%m0IVK`!hl~ZC;(<VF4^vS*HNx>-xn&l6S$x(wPsy<2tv+OvAA?pnxC~L)ETKtj za)p(eilf(Fbf<{&*RkNs$yU!R%}G(DNG;&-fh*(uwf_KZeTP%zb%CdE<}zKkkxZ^7 z5nK;$dwHNq?XF=itk7J+ASo;^P;!mM4F`w^PVp-!V6EL=g!foGoZQh|cAh%w<hcgt z85~nx&u-|Ew6cQ?2)@jcJ9|KSkw+KsW=>9uEcEU?*3N6WR=oJ<zV5H5Hr>6DVDhq} zi#wXuv<t*X)O4o2+^uqLY<jrzSBgx%{AKaC$hh9&!QAA#YVy+3$!@c=TwcQ^q5B&t zVv2d8Gl=<wYlzi?`n_xQ)N^OAvg^2MjoU9IcE-tj%9hRi#dF1BUSzSUQUDE7Db|Bt z8SD_te*k5Ga)APXs><LXtpQrfDl7ES2F9ex8wM>Sg%knk7>^1DW3@bVREpX1Nf;$m z?fQjwuKU)MQTZJ*&=4C9<f}qfwXFa?1H=|4pbs;qOb}=!_gR)r+M<Pts0aT5X2*Y~ zusDRkRw&I&ax|zyK|hFNPs2h5exd7g3VM_<C4C{9t6wrXQ0b)Fu!t`gZXm|g1R@1c zXlhMV1N(FU-$2B;ww!y?A!lx^rNbY?)j~AJ)Mk_0nN@&y1R91_G#z?^N%~h?(7};i z+k#i!KH&hyoQi-vg+b^wpux~wJ25550+e=8K^;KYcztwqG{}4zIPJ=^hH^>%BiGCY zr;eBmEBdeUxzzHnD)4_kmHz-;30=*sdK`Z%IqpniV{%4Cwrh(^kkC4$tk!cR>IXG( zz_JR|R+{nWRL^U6F}1?>-S2bUcSGa(WZDyM*Ebgv%}5%xMMB{e6V{8RRoy3}Ge{nM zKW_H*%y{0~#oFTIn`er~7@!OR*f59!^zf-Vbd6X{e=ai-+`YSHjnCLel7iUBJ-D4% zGEWPh4-}}#>dRfI-<FId(_5LKOTNOhxXO1=a9U&?F1w={{WfcBloDGbEJhS@EL4<N zYSmv;wOg!7o|7F)#kXhX>@Pkivdm+bA!me+?;o1GwNrg-AGruC%%as}F20h=qPore z&UDaun<+WP=WJo`dp6^^AS`E#yk*4(jgY|5yz&$zBGj^$6yNgGrSy}nbU@i|&(8La zN4&2v6H5ig3i8Se+^#-XkAb*Iz$NO1l16d>AoTq7wYGz+G{1-~c+Z*p%L#Lnx5_{- z>~V3&b#pq>((+hP2_#nFJ&9{VM<f;V)|uSA)ya6n{EPAb0Cs(ywY~TByUr~vHWw%D zN~O_O^dqxCz?BEk>*Jv5FGG82?WtqP;BPLXagJd*mSJ+~9R#kcAF>p{?1zGeVm-3o z{<fg$ZJ9KnWe;shaX8CjCWhVxj&_1MGIo*M`)w(3(lW|_OO3$c)Tz?y9=akKaCnZ~ zhY|1H*xqAhzq1z5VQw6?zCv~}9thT^1`bcElBbW5t5&U{W*(*`XmS_Nn6bM-Y_a=s zz|N*fSfNuBPZJo?g-IcZZT|pIQ>4Bokm~2mmx}XA6dWRDQFHeT9k}*x>sC|9m1J-q zk$Mr-gX+{C(6=hL^b^a8y0^H#%Uawe+;YWpb7IAhyvmb@3acR>{A*PeJJ1yyk}9+$ z=3ESH>@pJBtmtCAE?R4VILRb(*vb+@w4kpE2@E*0?@HH9+X7ufGS>^jNwP{ZR>e$@ zGkbBw(Zm_*%;k_W1{9(6)M*^O1EiarelGJ1_Za+viqb2Qe{VIshT`3=B_xK4Wilqf zjx;EymGjZHMwkG|<1<%jj~5GVbtRmkE}qf7gHVM)fo9}|OH*Mk{Ev{N`7T35B1Fzu z<D|BqD5Av+1#5fA<c(u3DGa6fybPu4Dqr}B&~@w@wYv!WYdqbQw)oqISZx|vtv#6x zs-ltyW-BEKkT6k0>7w!Jpr@#9uFPjWymqo%V{Qn#<dPOh)Sq-bMM)|_sHonXgGSKD zxGx)m-ejV>v$na3=;A4%Hz^+60(;UpKuDo2zW)H{sx2g4#ckdAYZ<4+-AHl<C6yqO z%m)iRM5Q8kss?b}N`t>ma$7AI#H{pT7C8I9>5@yEyNPYY$ni~O9Oy11R{^Q+z{S+m zn(#eO>KcA>wt|(Y-tV+=7ZFV)_Tid$5<8bhazh3lr&e;lniK|xz8agN>=}&)xbE7) z*~-&f*+mSrWocoGFsc}V!~_PtH>lMWQrQU$py4g?kO1u|S3nd1s#Hh%fuJCOEBI>- z1|B%e8C}3uP+XN&VgRTF5^AUZVl>H$19dDG@wc+IjCw;NlTc6b4kEw$Q%;0rXWN!P zdeojWRe)&A0O|k)FQJEB=yXPCM=m4e8=rCi0PcHBU4i~yB&>?9U4uz9<Qi6-N8_TM z7eaqAOzto3tasL4Y@f(o<B-frExdLz2qIfB*3mqSi0A}@fu&>1hb`KSE2^ygc0yYn zo0iL;YxWJN$CwK~*zBx?IBQ4%S8KTEzm<tnOEVd5YSku{6&sC)qio!qvWlEkA!WZ{ z=T2_hyE~h{viJA)aNJti+*?IzAchNvSCvqdauJ*_Dh@_~9WTC;gpi)wnX@d7hPTK= zcMMr5GM4vIEHkCVPzdB91PUBU1Go+tp=6<_=^Jjo<7hk+WeN}Nx3#Z~ljX5E9w*#Y z7~Dmmk&IFS=r<C|K;lO(Nwt3l)n0paVtWg+2!HK!<Dm-2{U$q`lLJJP<dRE{3blB+ z@tQOR0pOyP;1z2{(0)bxgV<e8GyTf^QQAF+@sr>7&IZami~j&=Wy{A1g_1XsNs1JE ziAi>4rBw$`yPb7-`P;NvlFNlwvjP7A4*vje@OM625owvp-C5!8@OZrK?mHcBQVuC8 zjM~n(PazUBo<)eR?L<*cQr>44(j{LXol}zI^Pj;#+sAACeVDrJ+!_qU+8Z2n;`-)D zt!Ims#PcjmBLLCG5kttZ^{(26EcUZ4Y!ypW#-Aq<7jW8SAR<#PHpW?=I*=MjL{tQg z=um;LUX7l8mqMP|38*-7T2`dgpTlFWuiRg`KW!LHgun{(KZ6nbtE2mzoyGQQ7i-*k zTO<Df)4IC1rs^TMmOakI`dn{At^1q3##quA+kAuG7OCyq=Q6N@OAwh0wFI5XqRKa@ z(!V0%;EONDz2Bd|`5(9La=9zpujfZ-(%oH8B`w%65f+i2iCTJTPo|dHtz`gdo{+e> zSqNb-7?b}1iZX<SVtRwc2Zvoo0|o@LyMH!%FcqrMhBT<H7>WbeZ8`&#YUQMqdPoaW z#D!8#DNq)Jap$0JK`~6h3`oR)H$$+Y@SxjIB7`J|h}?yy$y)AwkB8@?4NcLOzOCvy z4Y%{Imq0^iW07NWn=kNz*Z0%MPap|dQOFEPq2IvN4x{tX{7l&_QpRb?oj~hSN8{js z&qXmHVQ(TX>ma9438AM_0V8uwF@o*pD8ZFV6I%2jQ)&v-Z>-sv$_bg&ii#y@IDypD zOn`&!+K9@sF{$KZdVmi~4z$xJ+%g#yf~hDWNdEw+1N5n;;QchMfNS?Aod-@lXgPk~ zS}<um?4Kid1>{Jbx!IT53weyD+IiSOBv{{(CMX2%2<EjF@fz{ks#>$zR+pk6n=$hy zLV2uhBgbN8L+wu#P`r~wqzW^OqSPCW!fSJ?*lsptnSQ|TC}fW3xjVK@loI=CXl+>n z3#rIR;Ao{OQcX>ELKOO|wv}DC5Hn46EM4RA-e2LYO}2Zrdz&Y3Wp#UHWh%)GQd!3} z+k`4$K9?#g{CEn1)E!EhZOS(tyLAhb<PQ7oZsC))JGTuEYUU{JB@<zoq_RP5#7QE< zHC4b0ODdH*t!-ADh&F?a2g-eyl8mLcL+tL@HyCb%S<Dy>lougOZ_!z_@jGe`J&O)Q zwy^!tivF3HvPnbD9sF$_ZDnh_e^hfBVBlTFD0v3u_15DA;tIcX{Cj(w#rM-<FJl=V z?-=(>Tlz-?cNQ#_QF9P&qzh5XC8K!LQ+05VbrN@<Ze-sj@;&cx;w3hZ+Dh2`jEZH0 z?(E`F-rVt)kK9_CsXVxv>PhMABi_l$O1bQOUB#K6!e3@Pp3nZa@lHg`BP%kxMk7@L zTVl1Z;&j;@NMmqi&3E6%<sTJyEOw_8ZIiUeN+P?nk~zyLl)}vX6o7egDB_+PdfIdz z*XYaVZnuADdpEP%*8N&u=E_~ebse-3o0Ax8yQvwbyJ<HCcBk+TJDqF9>V$H%M?b+s zn#}h%#`m4yaW+#Qn7x~W-d#1scP$Oqvm!hNg2rP7XbSk(RjhO;R@>E#`<u7(wq5Oc zmF%e=#!QBM<DrKf&u?)slN}t<$L%7~(bZ27!G|vmWXUIGu`g?U-`*HoSfcJ*Sn_t) za9qi9wyPDqfi0K`741!7dX2?Brt7}i4wbg!teQc5?XQ!&4*KlDjg>9F<Pf$qNA1WK z^%aAQd6^|$%W*M0i|1W)yiIIYjWk{c7F)aMC$o$Tv<{NXZ~VCZhG4QqGEoT(gJU4% zhtwLKdE2#gWh)KneVfH4<{JCAr<OVK89-sXf&eEr$ixLR7FG-qcML?Isa3~a4qD6H z+-F7+VTXb)+qCVB60Cn=ZzY0V$r+AIc^Wq{xg@ig<#qIp_^DlMHpYZ*4=A3}$|Cn| za~!cW<TbxC7U5Z0R=iMhQBnGWpP|)-s{?K55}3QpbZc{ADOI=oh4qrMx4ajRxXnOF zXXFX<ud7l{UZ{PA8JIg#+E41aI}0VcyWodlCyG%Nu~5ku763WjYq1J^^xUDtdI;*e z6<fTnPV6<WYr&KEEGCnUlT6bm0;|Somh8*v5_3^fIs>j-d3wcEi7l4Aeha-Wq)Gda zDQ|Wp2_UqZGLioPF*t>mODSUyAOv#-X~}(FrPH?U^&J(f>{#IYyegPu$3=3aagfDv z#dwk`DDkM=?nf;$OW-?k&@r-?aid7syOfCW1jKBnXCj`E7I1oxNh9`YxUS%zK-J3I z+RkN?&hc7@)GVcN;Q%#W0#E=wXgASylX66I_f{}Dd41I+g5cQRgFr{{`v;-xT@P)U zSpZyogW0(Ed%Mi65LMco#F6kPqLpP*I{4|8A3<ez1W%E>Ci>Z?w$I~?N>+ugVo}J{ z@Fkf^G#+|yZJ^A9KYn(2o+5IV+?cRfxtRrNP(VOWO*5sCiKBb2_`pA+%0V&~P+kjL z+k;0HqJ+0{NheCE-s4Sspj@ASLXBZ$wi#mC8_R1Jc=5M3>_oD#D6+~SDqJTNA%{|Y zj-6xfBf99zJ_hP*XiT?}$pX8Tv$X_X+*`rK5(~k|wOkk3+%GO1i5iWcsKaZCtX(7a zZOoLbBof9{C;$=(G;Pgx+v%nFhBO1Tx3#^vj;SmYI5d(vKvoG#`Y7ORYf(|)4^yeN zAOtp3b8CNYYjyx6QJ7t&tw3;Pbs_2~1s9619|KJzOj3JtwhKrW2)^YwnWB=h`-n@E zQA$*SMW*yW^ytePMOllx`F)IjGHI;uW)7FAlSCwrDm4Sn(8}O~s=QV(+m_jNrMIwK zD7ik&mesHOs?o8y>G-SL&vg{}T#0pX4=bF6t`UosqQw@~6|Sj!!iA|Tcm8Ki>@Sb( zdose~x$^KyFLh>PgywJMo#dI8HsuToipv-gnkeFcvvp&wN#hJv-IScezsR2<&4Qk0 zlMRH9OIw*_Dq~pYiNB~wd?*O^R)hFQp1O8Y2djg@Hr=%>xGRY+XK4{F?GPH4E>Zc7 z$lX9Dl-H+BlBDzURaVUlzwOIE(gjaJMI`-pJ0IJsxg*IE$J-ID6h|)o2ee1~=tp*L zM9td#BliWfg(iWGI_x?X*5VY<Jh&+$dabjnR)M4d0zj=fPz@uf(lzZXC}HkAQ#4C( z4a9V}55&l8K%jwI?@^|$dV!vX3h)q8JC)_)0d7Og0-~C{lQe14de9To(rHk7ikb>& znh6C#Bq{twDfyiV3>%}cG+nD*g=zTfAwp1^*O%l4O?2RdOeg`ZKs#@+@!Q95$4mzX z{FQe+xACohzfEn_fqn#v%EOQz6(p%755yDWthF>iN^=AP)K0v21NVY7K><*c#5=7Q z&BC4h0HW<v_0tIV4vdPbqWeUegGNsZ&{PquVT2M$gqKQ_LssH;9%hx+0CWr(ipEt9 z2m+va`4PDD8f7LMAaeC6OAU(c!;jGI`;LkTe;aN;s8*k&iLXyO=|z){;rmZJ+5NqV z?rYmIcV``>me~v2OOtc<avOlMOFT#%@F9Io9YU}iw%3Q2{{S>SB>Eg}Bs09t+GTLK z%&EB(V&W|fcMzFli5Z*$54^*JRJBkBK0QvyLRRd;{X|{&+xPkVTNQ%l7$d~HU0mD% zwLnV0y1db(g;#>SXpVR0J-Q=x+;r2cakP`R=%{2e-M5tP2KeW`G8dCWWh`*q_at*m zbOufp3Ca|s0Rr+Wq$f7@Hq`-IwYC0a;h?)qg6G{fz3**zg83gjklkBi$;4!Dac(7R zNgiP|lExR?Bh(75TD}1KhLX06YNAH#EYr9<iz{WD#bv%^?5SG9?m3bxwp3QQ61+1i z%^4IjMG+^BL;nCXO<K{o*@NXzQo}Uen-Rs_d~cM$?Tc&6$SuX)#E*H4Rk(sj{$-?( zIEmHO6^A<d%@wFL61ucZ`UhXY*5kc9+p^@eJ>`kF$P4)7mOG3k%FiM#xlU!`6-ogh zr5sm(Egn_tqc)!bt}Epp%*!M;n7q2dcW_l?wYXzzI~Q<R6_Sc-0sSSq>WxpRc)o*v z;q9K;%t$Wpti%_RSX^Qwy0s?ONbIg^&Z!#z040EJ*OX`WYnt7S#wVdt%Y1K=dwcnC zcgc1KX;0ghc9$Sp&n3dCFtbTh1srU76yNdIh6e2oM4xtkKPQRop2xAx+ecxN?c9WS zljE;0p^AD5t|M~FjUhavlhL;mT7q=evYid9NsBRm82zk0tu5|v-ns2tyX(jj%Fv`& z4S6a`s_$^cl~hN>(LGhu*36!|7O1;k$1Qz}%FA^vtoYouo@w@3(s5}Kg<>kqg=&ZO z1J}cS6(TaJKgU@paoF5#{hDNA$JqCvo_jJ`V{5=}ta&f;<qSw50tgMZ^%@fbwJ7Jg zF3rMTVa@z!+CS2JJ0UC*fgtxX7hi8R2d98j&=qZo8hLXJUOh&Z`G1i<I+|p+y!Y&_ zayiQZYdW>ns<t>RoGsakOC13e_St<VwD8t#J;qnJQt5;F+Y6XPgS;`Vin<?T#_k38 zqaxu0M;VbL69LId^~B?+t5Cigvh~RaK(OwP-*Ic6x5!73vPFNmyN}zrQn7<1WTMIK zGb2`mpXv1Q>8Sf{XjR|2A9G&z?jFk>k+6-j))|F?tPEDyWBF|uxkAj!?mtkaYvQ}m z4NlhK^&)Ml3%i@Wukmp~aM0L;G?C6DLefbR%3F}Bej(L^8lTn(4g5NmTQ{Y2Ea{+L zJGWBK@QGvlrF4xVyOEGwDcG?u>T*dfxFB@&*Hc^f9a1+RrJ%D2;oX>n&VfsD2c=iU zo|>dF_S7ON<K~7axrqX*mQq+N0>!xzwKnklbQ*xR$p!VeMPR5HkkUJ%Jd7(&Cyx=Z z+oqR^x*3x82H;T&mnMOgxYYHpQ9?S@=;~x`6o{~y?Mi|OH4J%HptAt<1XrjUEq5`r z5xXk8F5jq-yaKmf$*J7+*7ytYHM_jI^>C5muZp~ZtH>}Q4fvDwukF@=w1x6p+fF&& zhi+V0BGs7kAdTC4ZY$IL#*DSFoKqyRnJvS^k9Uki$}l2lULX=0pb`hxqn4UOq{%nm zUXrx;WmCwYEl#CZiRMAukAnXIo`4x$?;FX}7lOHX$}PWfcIPk$7cKoxG^JgsL(I~? zdZic5u(o;^i#2tGK{7lm{7BW1sN_}Dh6+Fc_-(iRv^tH7BnNktj5OZtERxE~h#|N} zp>iEU`{hM8<+0oMX(0~U2r^qpMC^rSiaO6JQ|<u3f(3T~iXF-NXvC9Did>8s!|u#o zgBT$$ibc5_60UiH7~+mb-W1YLaJDQheLcCo$`wnJ#SBRtqy=D5l>if3^zihzDz23R z88x!WjzzVyl^vy(r1xalAv~lCfk*@a`dByc_?<r!d{4V)2|si9dA`3<77w<BJR)SI zcX=d0@iT@BNP!t-B8)xKH#F4MWyve1+zkFu?`b<*x2|$Fq{)%ErJf1al>5m@tjY-{ zup#Ha@$mE4brkFup~G?+41Z<(Y9omeZ#$hmn`^gn2iw|9DoH4DzaMqv8<F}4o`tn= zPOc`$0ZcToc64t53j;*76R<LIBlPi6RoAIlNh8d1+huLAYSbbj6W3(j)S7hlZTmG@ z*HIx7+hF+I{{S{6K^+4Cg}~Z`(3*bzWob352xle&2ZWVkgmg4^Ac6=qs~^~O&5H;Y ze%Z2RaQAT*VmUFMRBynkVhw(}4Gx&kxA7@!>@B&FD3o(#l_ZXp=~{vY-UC@6GUl~y z=vhJCM5oJo1GpcSoggw|tgZTYr9flI(z_b(rU@XF#-or7$H@NeZ9w3eC-+jEK@}A} z2tHeW8o*J|og^R%4T1e2k-qfvuCPhcVxzC9k>E-C(wlzWG{}&WH%Y>pMybdOfYm|Q zanhA1>!uTm3g<fo5?eEMBZQR%_1cD-+lD<!p_!v3yb?r4<+o5r)PP2c18=xxz3R%u z2<0p`Z)=Q)%o05{{ItN)1zX%dx~kL2w5S3|%xn#OOB24@C|w4T+)ql%f#}6c^!yDd zNAK3qJwsCDMeB>v&VU9&IMRctuEc8~ZMeeKCsYqCam)<}RdNjp2V?%@M{o@O=zDy9 zm#0n~w)5#q{(9Pm1c}{Hc3;L>9LbTr=y9Bu*~DawgpeXeLZIR+B)pA94&-aa%~{a) z<`K<)ANda?GjUj588X&amND4hVkWhSTf4xBz!_Y)5rB;#s8LoV`n6oRs_4`LlJt=; zXm;Oy_BV3mAi9<>>6eXj1%>s^z`KrqMW%)*;c~>xQZmPor=*j=9Z6YQoLba1PDHs6 zgFBkzy&$();yC;15__xgvQCR^v&Rgs(J2x!0hf{k(YaU0O-r<eRn+Qud!FTgiaXP= za=2-t&!q5#coo!Mdy=V<)Ug4WhyzCGJ!9*>h3{6YW%(57GQ95$FLL}nHYdFB_XhI@ zykcwRjt^!~=@4{@8D(SwL&yZ;iYv=;rOQ=jnkj0nBpbdk9k<%|3!H1gZ`)V#rY3wv zyawXd2<AX7?rpg`JV41BvyeA>Jqt4(NldgBlF(I`Z2if_-(fO$UFD0m$NMRMAh))= zvi7EAm0mU|q^AJKkv{4$^?G%zoBEV9TjhF#FJR-Q&f41dO4u$VFL3tPR$kZLUaitw z87T>xHi(H40R^AZ!kkYn4iBKPrUaI_jK^iOV3Q?%g}JttbhfLt<~HeIl&Z@OrO0qY zB?~Mv3Uu(-LbR!oYV6@HSnAK^4Av;kXOy*zAu1?TytP?v!61%CNLbDkj|CEc_&W1* zd9<#T)t`0t&+Ts`$V&Nt+pp^X0H@+#f41+K$8P+sV~zO%A-?S{<+=Mj_Ac_u-RxsG zBqhDcSt4Q#GI6UH{RO(}UKf{ZWaDUQpHKIH?SC4+4VDUg_0>MMjo0LRzr8=SuZMer z&Q`=?r0wgvhWGID`$uEH7$*|INEM}1>92d+T@S>Sn(BGyy1%d=nDF<qWqu|3I?p#@ zG4~_EcYZh`h2u~X?;HVIpD35EhY0l@WNUPDEce9!0NgiXu$R7mHpnz_(z%}2kvodc ziPg+j#cyLDj3-L;=r=0ALWOmb!1r;;;_klNFL3DsUclVp$fDX#E+JVD^6r=0kOBjW zR=aPhr8<t{4WaG3DKFv5Ti(fOD9L8Bx3FF(KXJ2I<7UvuBnqWfTmm_#=_h@(EGpQf z&)K67V~Bp~vlj8&L)jK`<RE1+EzCC)+vJMN9Z{r62y$2xKpR<Gv6_@~T)qvgEGC1u zuLE39Zr0AB%nTK8=BQ~DsF2G6S0sv2iuKc{uA(VRL(sn*cc)@lcFr>$lFKeW_A5(B zE@EeQF3D>eNUYMg9xCWU@jgDCa^|hx$7Uv<Q=`F??fd(Gxy4<@kbs_Vb!O1Z8py|p z1)vNAdGFI)YOQW{6THWQtb7QeC<_&4W;Gxe6g){ZHPZ4LG&Fa(QfKAJDwE4$`Ucxn z(1X^dnjD3V4}lj8z|{{GAiJmwUL{yFu^WT_Dl|C(u+SxhKO$qfAQlTp*zxK@ozLM- zG^AvV&1G@+i7JQWpp|ME_^@$O2&G5_R;!_;g{U?ASibnIq1*;ua&8KeXiDxyNg}_G z<EBz#Rf1T;NUk9&>=H2kvLy8{5(pKgDr@EWV<Ib<6--c8RN+tt(klv<;vIlvKx#nK zDef%xH*e}|?g^&~kIEFPf}n0ma2OV$6gB?<T@X2E%9k-lw&LgRTrdj|_gt3aK($#P zdKL9}(0OY;O$N4B)2!@?b0GzbI*Q1?q(dQa>OfQCK=59N)uOu!<W=(541Z^dTiSqG z<-2lN<3dAA$2DffsY-F+4JdkOV_z|@{#OOs?mLUCsbh*?Z-Wx@`+=G^W5jVCDZMFQ z9Zzk`IDt&I6GJ0?-RnGDnqvf_H;gp^JgPtn3W{&G+no(b{va7b4XVp=D_pVV>{~-D zkw-ev^HEt4dIK{KN5EG~?AKE=r;xpt{s+h-2o1<-zzoy-(Zdl^S!PY0fec7IXd0b( zn9S@-M)+(@l9+Dgxsvu5dw6Zib5im&p=5SfF^*+V5CVRx`HI%5KvD<ptkgJgF*kQt zHn(%y-riZ=+gb~_Vz;n_+}+I5s1XGT3ozt&@ErK+sW-DTa1s5#_bk1|@kPdb-obZm zmC0Q;D;S79>j*9cW;<!7iC5p2LU{=obtPBQH1@|D6mz_OB|EzArtkj%kS%bS$<ZLR zZ|SyErB){7ee3JaL>~k^N&X1q)vKa8uHMHn`IEXJ%l8GoCle5l9fye6St(v3IHQ!1 zgbIQ|T95t5%SRTrk#ogY6jkricx{r};?g+D^)v8ECnKpf+^8Q)Yt-EHMT!&>HzKE) z8z0WQjVvIOTSo#)Ux)&OfpA#$>NykAnq+6_6vAeHE5*>%(b%XYk+}*8(*d$pKtKnA zu&)4wo}N_%nteu&f}7ezQN3<osoEr6kDnD!^43ObLtB$5<HP_e4?|BH(AK|}j0O*o z(DD_hQWzTk(YA^NvPkA>2~_Gx6lN#(3VG<75K>$>GLAV`l<EZz)hDL0pqw`TztiGP z5004v4a06qnghKTVZQtIrm!HHCt{pS0ypZ!)}wDQDW>>~)Sfw&c&nBGR)t6(QY%tF zZi?6rNtW&!g?S`l(Rprn-=dmm&VsOue1)>VA9953D5M>_A5hUuQJi@>BVSbRBQ>Kn zSk{yTQ;_}IWC;nfys~AYnAW>`SSRiDid21cI)+A;?LE6zIeiW|h}laT(xZt5>OTRd zlmVr!!zu`7jR<alNWp>f0oIiLn$L3vd#mkmp{H8=jrx44{sx5V7-c`X+&%RDp>DSm zVCJ;6w6_z>3-W7)a@?gH8Jz;Cjez~9UMxFLEz#`E=r6(iVV&)KK)&rc?P0uvX$|xi z>?59Qc6TZrr{futJ^*`QsI5TjO*_19v>7IVyR)}Dzqs)4hsWApTV*Zot?zMy<~Z@? zS_2?H+_N-o`Xp~}iC{WZZKdR;S#<b<?ZI^T{_nmc?b)zh{ckO#_{HWjv%GC}8J!A; zF<bFj6apD}Kd*`3M((!xtD`8JjYoGF8;<a^H}YgL_qkr*j%#bk2i!fo!Do9Yc7j$` zdc^+VR0-+~7nMLIUnQ&s_b7MWz1s_vZ1}tvxc=r_Ws*593c{Z9BujD|+>w2ng#}yH z8!+7X3d}<{w(V{yZd?8x_y+;=gk8tloxPu1*=&*<i15vkl18$MIRqraS|J>$tWUOD zRX(B9jZRJ7O<c#o?DD)XBgds}mX4|H2izY4{EhJEcHZ`8OBs-~?7W4Dj?X<Usl7<0 zogN#Qo@n`}BIl9{jh~H0E2UW<7`ldVtEZ%i`@^`qR^J(pwC-z<zsXp8S9Xx#uAU)x z9mThzS7jWn$xWU)4<v8X$Z8pUisRMq*!mB*{g27>T6A1$zs&xh!?{tlzxf;F3~X3? z7%p$@Emcxzpi&@aLc~4HtX4AMF&mZqHRNQzZ13e-dLOBHpKkka+S0a5E`9B*{{Y6T zZ^)Vtjr*3217nq=p!-3Vu=i_Cmw=RxgU?a@j&95IN4H<Tc-!&G9sRq<@+-N^8~jzn zSmmwW+D;*iQf<i^pfa!|Ff=q}G}~OYSEaUwdU*V-S*gn%rGFoaKU4nzvwxX~%%2Qn zuCg<UbKShd4V?_Y$nx8u_HGzdpXWkVi9f~5%U^ScBFT+g_>=kP`-|=C#Pe*c^xNjI z<J0h9KP>#A@{S+8o3TDRuq*Dpv22@0vIu6qX;wH?I3RNNT2mtet5P-!TV7wA<z}t8 zVqb~we{X%S?YS{OBhJ2xVymn~zt$tDMVEbd{{UfOq09Goaa!kI5Pzv#T&1<FQLq4; zdwaOJJd=&~5jfmeg10R_Gv&ug%G2-D^&2mR;Q86!KNk(L&(p=)&;I~*sO2jE0OY?N zj*pt`pNxKA!B}N`tG8@3_LsKNTv$tzvxaG+igXU89l?0ojr=SruT62XPr2|Ju-g_( zW44y7Y5Y;+FYfo^pMiT@<FAkp#o3$NZuRWkU-ee)i#)uKY`mw20JEEwnaLjTD+)@k zY6qv1ohsnmC#lna7s;*_nboR2pL6pEA=_Un_Z8aDnZ9M4rMx$np<P$?Q6f%dN0!=m zlBnRdtoI7Xc7JzS#zo!3G=R`OzD6}3R4XVO*XydOYhfQGbT5uD7tr72j$;cRV$RbZ z_jwzfi~H+|UwSzH=4h=X1jktwLo!LirT8+bD@Bcb3A<V}IyH__u$dSwF0GCt{vxK^ zA#AZdsaX#s3h}eUJS=)Is5kKMzMlR%vef6toz~wg)aw>sA$E=y>MTFVIU7tCc|dFA zj(3vWhxJ2AQ{4#983d!SWTyK0{Ju4+{#{Y@ICFDfHjlA&#a-d^F*W`k?hK8y8c98j z@y-=o9m$OEQV;5<@7EivTb+p;$!KG_Q)Fb7LE{uaD#g%(Tawg`_pec<Knb>j;JN^% zRroxw$bc0X?0A4TJvZ1N&so8UWtnX+C*w4bv2?6*7}$`M4i%6BC_D)8(Mm$vjY(ma z&_?1(CXyfta^Uhp2QER}Fm1pT2W^Ll(?b$q(&r++&)j?BQsi+|23_dh2)zkfjsF1r zYUsph!rqcW1;mrg3S1XxWd2e=G9wD*Lk=63pbB>Ux6?yHro-X9H-<WzLc}DDfys?j zh79GFpa8<Z`%bV8!boId<QUh`fGUcSR5WPFZTX&_L(4`DG7o8uxV5;ty_+R>BFd}` z65Sca3E^16tZQBR5PWnc^hSca^JU^i@it~spuM!%=>(;S9HPqFOF#$Fe7ruJz9jh~ zc|Mb&-c4@|mlbk|(%dw4U?E~%l&B?}ZX~fFf1aal$|l8f+$<x5%PO*#O2*2_8aSsi zD{v}`<bhQu)T93ZZk4k=1hUC_Eu&<uV=EMhL}plwutyWWCN4n^r3;d1rP%ZYgGn%G z3mzIP+5YZ$<c`$4Odu3cLIW5qBQC1c<z4xTigF*PR<Ps{hIj32Y;LkQ&LfE-2IJgT z2(f_Cx~m{2fq2lV@c#gtt)vi;4c;HU?lE`yJO(<^E<2vidltXSP3=XC$4G`G2H1v{ zS*BJpupvVF5x-8JiG55<UUpJ&>ue5J`+UOMEICLnt@0NUVIr}zu%6x47K%vT<rv&J za*ZOP<c-PXtyPzvx}{mqQSsW<`Ci}0aLhMyTXt7z=6kZzNG}D=g{7Zt-6M%(x#d3# zvW_;~G*Run3EN3(t(i2wX8Rmw<>t7^Iu|!44qy>qTgc`~3l4?(F%<`(8tC!rjx5$; zi;v00X!0xuGys=#GN|jZ;>-y@mc0o%l3;NoGP9@~pAbM5@f9SUDl<(4##|HXrAJdj z+xP)W{xuqCMhLg!3f4L)*}yeFh$nHZ#gL|v2&_u$S`ta9C(r%0v_?Mnqh%pc+>Wit z0r`M6z6Lik`ccR{MQBt3$Ip6s{dK+}H8K|BccK0&nwoF;X@E@)$OP~$N^VU6ubDc) zM9>~hSt-cwv|>#>&gb{(q|JpX2cp)Msa=4toqCVJYZ%(8O~$~A9nVi4V;C-qIdB{J z@;hzeTAeZ!A}h;&C12YFnvPWllppeyJLsmEA%&&&yKx(Xw$ZsBThV~uOob1E>^g90 z+E8c!FBm)Y*pf-6k5L|hNpvmL{{SVzl6fOA6(3N;L=mV=Q(I1_gt9^o#SCb}r-dn| zg9XDmw^)j~P=rtz%8HY*s=WsNcF_idm~S2#J=r8Yr()G($W)!_Qbjy8Lm~Xlczf+m zHQ~&0{Cf28(#UlIIOWP>Ei?G=BFx;vk8EX;$dO715X~7TK4u~UOB&T0y;ojEmm7aG z*_Lf>o4kZw<nNMovdJyHxsoDy%oL6#6Eqx5l>jQcs;^L3c<VJ?jDS0{u{(>pF0omz z*_zrr%p8*4jCJhB5cZ6*%3Iv@kfG4jHsZQRcULheDpM!zOX+Ve<L>-sV$pkZEghwl zlg5ORaRPC-0cQ@etcIjCt_Q1i>8e9Xt1nUOS8GDnO1SP^CuC+IpSCk|_aZ{Gi7h6H zBezDncanI`++|FWJGm^epkveAU3uAj`qgn-zfBLa`)~HQlbhzs_*ee`x8?mxRlU{R zF*TK>#@ikmMvlQurrseV@(7`wy(3^b6VQ0;#LeViCXJt|eYfpCKZd{BuD|Mfzs&Ey z*q3(RVL!OsJ}P-*jtu3VLmJ@&uQxCoxYer6r`G_X*Rl4SFPgre$oc;O?%YoP3vc|b zSp7c^dX_XkBmF?zUg7wp9Lv4`0JcAZK1G^a-sbGAe7BRcNj6H#Hn6*q*wnMlW@2Y2 z$CoW~Wbp9cS5wmQe(B}-+G5LU{yKh4<(>2Wh<0{%#w%PlV)8gGq!Pi5$Pm`VDJ5W6 zf;2Hi2T+O0zloUXFXC3p8`JVVKO6gt%fokiwaNAC@qORK;=R}Xm}UDe%I4*JJ@WR^ zdyFN<WiGD?3VDVW@!FX|Z_-sqkLvQ`w}Xi%HGi4(K0o(Ym3t)faro7Ktn+7h*c&Bo z+gM)OTU*=9w8q>LCC9~Z5f;^p8W$WnNkhk#H!aIvE^LYwdw&pqmEcy{tn<vxc(%XJ z`~Lvk=>GuO56kj=IrD+X_Z7gg?T+VwSZ8OsZ))DsP~+_Gr7TrKtk3M0CY)s_!(PYQ z^J?kP`LFK3xBK2NB))n%UaP7)&-X$90Fd8@tTUg|z9q13>B`tL+h2Fht=rk-t>QA3 zk|-V}cD(|O3FGY1j~8l@uU{o9-)HE4VfN*cx>@{>bk{G()9_-yj{b7~-0$<V<bF@> z{^E}=*DW>NCh`oWl(Ss0W^gUzw4IgM)PjUkmD^rd?0jc_cD0-J{{W%-CQrD1*VtHm zYh$HhCC0oh9W{Kvnb&?_{`>n2v3p`Xk8N4xvcr-`X@$htNgcq7GPL`NWI+|AYzPWT zc02J+dW$wUqG<g0KiWL3A3j<*{{UCj`lIu!`<(vZdw=B|WtJnea(5PD3yJdiTYH-m zj$?T%$o|}=W}aE@OUuZ}c*Wzh4NC?qR_@KFy%2us=i$kQxUnXh`mJkzim_Nnp6&aR z_9s`G=2}yPr6;Q}J$I2?sPNaN%^xem-OI0HcZX?WJEswQ-L?(fm{)QATMuy~+DOqC z1Q_PCXq%7&e^(Z-6H3%}`1vbqakGi)O8D%xKT>-~`+V)L`Ruzs;rM$0030wGn{~a# zWo*UDTt_HA*juO=v0rQ_w$0Cy(Ugs}mZ!I7telf{yIzNx{{Xtrg|hzu751e0p3CkG zYe|Opj(-<tH`~E7$rzlQNTlFnxk#CsRf}hggXwSAo-6Qodv;*QX}YazFS<N?f$kd~ z;JJp+?dF>5a#9$eR-KrDScHugn9u@G5vZ;wLzB@s?}4&Ck70-I9Ql_Ub(OSSrZemd zz|q_D05sPKv<?Lvpfp5fcXi|jh1DZa(%BRFTpow)?%>9EKW|!J;_sxsg`!yBBXZ@9 z<G~W7l7}EHiqdl8>*;Q)X-$0AdL?*U9`+{fS$mEG+{f;Son;c$CSP(v=BgB_Vg)LC zd5;=uQc$i-fVqxWqSQ)QECS-OvyiIffDKuJDY4m({dTId=!rw>6KI!~(L#~1Fp{A? z)(njbhjJQ$K_JlaVNNEV8dy>oZ(uV9N8B>c3>MN#ykvpV;*n!<%#>u}4M48v_;f+3 zG|@>5m=hdIqa!5E6l|rGlO-y}t3YW&I{yF{8fnybHtaaZX9}uG8><)Qii#F9%&|O` zmWn|;@jvpN>7yWksBf(U1PadKNsyNJ3MwgM&%pW){7)lOwx-sm=n-!<q*1h@K1MRZ zlhoX5NpQrFNffBxtu?LKB^Tz{t&`$j@wrBG?O75GoY1pHEH6b4%vdE00zZfMy)?2C z?rO{SO60Q5kd{}H7=6i_*<%!t`=T~R^fHb`m-LmPUR<`+nu{>bf{Ux@ZYczb1oI<Y z6>n+1sS8~+vPd0+s*;^R8|_cw)VAnm(I|m!Rzk7cKM5t4%5beG8Au<@5<*alqOAd5 zN7Q^YHEd;664ApvU;b?oT*m;7LO~!3Cq*HZ)mcK<ef(;Am!_)`si0fiQODjF@ZH69 z_c%;*Ms5_P7Uu3Mkr7rSlwdl@+ic#G`kP84ZRm?{apjU5W{z96wt_WzuI^kGSYU`2 zl2+n(3Mxn)O$Uh8s^l#}<{s!|`7a=T^4Z$QBQ1@tHp)gQR>db0Fp<-6#x{9mW&S>X zTIfwJPJ3E(D&H*UteW=Mv~4DDv%wHzo?-5^jXknBdEJOC(mTn{r`8A1QgGXz;J3=5 z6gxN%x9zW~hRPMdPzf{ywFeRg+w0TDp+UiY!+)owYz@Q+ylKdp5SFh)MPf%^0jiUO z<dPv$i9{Q4da{~%0$A^@0od64E^5P#I`I@9bfZ^U8L11myp@o{3_h9;Mu}2Bgso{` zuC##@%FQqy@~mRLLX{`Or~uNPXfy^PD?)fX8gIk{=l=jv^7GRnNz!=&(5o_?s8*k{ zhMM048`K(>S^?A20i`<iuT5hTD@NNIpP&^rr->s(#E9hz#wZ1MBDJTTb+rP}ot)OB ze%;68;rp~gd?aFe(v$>k<L9^eXru!vBcZ8(Nv$fNc<xS|oEsTRu?(@WBmhaLPXkd; z->kF?CWni)2@BMUki+q+f^_l*7`AiLi14`BR7fkok=Xt<8e(GzQ!t7V12PJLVlm6O z^9tdI?9*A9BpYvkacLth+&dL2;MEukf=wKC(wUAe<4Fr$S;;KXoty^*sTA;HYflOt zFeE13f|O(oIBq4T^r!-iqJ;iBGX`=n_uGfR$Z)4B@m^hj8dpRDtNe=mdz7=nW+zvM zQp=3X+N#Mswy79WWJFad?6pDWTD*r*>er3S+@6;G4{zcH+gWVJ8e1~~YpC&n2=Ahh zMQqVVrYQ=`%W9zF$i%fs>N@7-K8!V%<Ecx<_x0~?V2^6UELkaWWZUEK?HEaIBGJf~ z-E|L8ABhS)3iPJ9e2+4mVQzhg+rPGajOjd|?brVRx8x)2-ongFhmOk0{@)T<R^s;H z#ceFHih4s-%HVh+wLY5j?|k{zujOBbPrSk7_&;r2X<5Ib<$uNh0GISE@OJ+IWJAU~ z?&&hP+0BMFd7}h%_0D6hK7&&BadpVQ1bPe0^R4t?Nq_6QPx4%evK_UIF-YC7n2#u8 zNhW(qV3yYJ+lfoa%B%{xRRxF!v<8)?rEeX?(#p&A{EO4>8K~0oF>qh%PnCbF1NhUt z4`F<%+5O^A^6?prb=1HSR)g+QCIHvQCt<GNwcq{q>mvQ%553~#r*z=`r@A5t<Y0xp zu*4wh+(94@$HQMr&*z%zc~9gn_W8TLJA`994c{M!7xQ9g$U@*r@7qQsxt>wEg4Q8W zq<Wg1n6Y3r;CUJRte4}9O3Y95{14QA&*J^3#KG=)Yo145O0VgM^sigJ_52O678y>< z#oT3bA0uA2RUg{Bo;<8j;_WVwtGsdyi%4g1k`G6<>Y*SlMypEZ#aX^a->h-{OZh%_ zFE=8`kHn&<MZvt5UXGtn#!lPtzsQsPjoWuucZM16@mF$V=fAR9R@(5SX)4VM%BboJ zxD2Fh!*59%^t^nv%T7z-=zK@te%JdP>X6d1R^w>pS?J-v!_eWM-7oh~{k&l2m*cnX zt6!J9*oh&Fw(Oyf>1?E4zjb`6A%w2{mM&5+@hXp2j$AnJ_0~=w58uUQdR^o7)qaQO z*U25d+;ZC<?9NSTfw{Yv?ksyB6(rKGI@M;3M>Onbl*1AC2et1=^2*M<eJpr$WAUkm zc&L-;vwhdd^6gq){Nt<B`cLFhCB<fBvTtf5bh9WEA`s0=bP84K06S3EO7bLnxcm%` zx+#;ke{QzeuaPpC9?{9%Nn?F9-_a8*ZxOheF6JRDq>&3LF@_5p@gS;lVbep~<o+e? z<a>Bs>GfB6JDxw_kC1HpMo#Hdj?7pHZf<W|9ei#YNG!_&@G_uDqTrtDv`tg|L0LHK zlP`~Sr5@jb{mtXMtXXSiI(*w}->NyUcJ_V;xGhb-YR20mZa`a0>!>1@MF3Ka%r_)- z-}mWoUUt!){{VLTPA69HROtSjbzYPFj&YOz+<PM^%CK78;U=81f?HXO#1#i8CM%9$ zfww}vb?U6$kIj6Ku~Bs6@F{)G{jm229@cE89_2F-+NqXMzsk6hD8rc*BWi-dLXZRa zH(yBB{nA^b&ac?A+IYGBB)t4R{lfg${kmL9+kKmTb&CG2Z3Vr)11%HJY4=x6344oS zbQU8t)Tbd>w+D6CLi?rd6^hv}&-#+f_SJ?~Y&WHz+Wfq~6fgM~=8Qjj+TC7WtLD3g z!q!W?)^7g*B21STMkcYAC%Bi`<q+i5wzZGjbqc<qy7X<8S<8H%<d@)l$F%A4rNr|U zz4g`~FAhVtu4c8lwJO%vcFyt76p9LxvLWOM@F4i>kvJJ0`{5<|Q{@bWhCerHdEOnr zWB^Dr*S8U1?RWr*Awt|GG1q9-7?KA;U2^8nO08a}RxWpOx;?{%#X*Y1LuYAi8rwj! z2yOjNs(Bg$N|92`Ye7xLKTf<Sd1tX&LP=~fySQlMSDr8-f{MuF+h9WS0gokWQEJ<5 z;jE0*2=YztBv%T{43SF{eY~#7lwx*ZB&e!wuq){wj;W}P>!3U+*GSKC?bI}GQ<R)r z-2PZ#p?MxfcVGzd-ntz|Ye9=VV%$V3URqW)npQQd01DEAgpz6X^QM|ujgc+%PW6>! zi+)kG%t2)|UO~AYfOyk&)_#CKmTA`HLvbN~Y*a?-3~Z&EwN)Sl3`IfQSL>%zW)o|A zY|*Z!Ss#r(!7Owpj%q+cDNt%j`g!R=1an+8w~>XFREDi&GDR5$8HpiO){H2{zl8oe z(E%%eGDySWp7*hF9mH>kxpb5n44&t-3IH5#R3I`_)Ro^)PpN84FVgfZcF!Hnq#t~~ z^cQya^TP4WSxI={xiPxZoIwB`*}v)aX)=9G)PE`nv%S5N-rgtz`v|+toT<vE)W?|S zJ<xnVQ1M=flGrju4A#RZ9k;cAZ;yD|Np99TWQX~#<~3G6sN9iOEX9B2+}B1@(HoaU za*pEf-u|%8Wg+a&+LO2?y;r-z<ZyJH$7?0aEJkrEAV&nq$8I}C>h$QY4@BXSzDRI& zPTTp%;~(gdcIF?q^0=GGjJEdJ?Apm;dvGG5l4K0gqp@}+xSmCgc=0^7Pi_|FR~_a` z56!*s`CdJh+vs7rmg3$_*b+RHaV&2QjaUQd<gYOQ0Gx#X0Qh>P5<*_kS8;P&_Fu-g z-Q#~5kM5&5Y$VLg8De*Ln&2w(^p>P!)5~}Dai*5~u_(HpcgS2`Wpj5qNt6+NB-b;n zNESX$<A~r13&aYp{xlk<B`;z*E$R@kG!O1aDuO_wIQJvi_^+hzP3U##oO9fi-8|8# znNlW70P%7GyebP2e`wLs0!ubmwIs&&H*fc3(!1Sv1;#_zwDbg93o{+Oa~g{BlHg1R z^x++RbX3Ij8du^XiWt_7aH~VN9l`77N!psy0D`f`NgE-j5yX~1N{R|-gxzFk^ejb! zR02u;fPNoc07*Kv`Cy?4ttvJYABm~`+A@KuvHRWGYfr>dy*l~mN)D#QB&aM)4-y#G zzn<T_M8?Z2vzXCX&>Ep5r=OYnXzT)IYOfM$LUsq~=b{58$TR@GJVB}7^Zx){X*W}4 zlp2r?SNI4Z^zkH6?e*4749Jx6^v6IzHP~)`zB-~5*(SY;jE+LnaB0S$jWvNL#^oIU z05V9!0ygFYdGw$fWFT#<2{QYTkjJT2*}V2BNGD8#(h1|VS(9fbN`tb$A>~uoZ8bz; z*0bGNuM3kTV}36nX;6?i99>AJ`e1Lk(;I0KkWXySAYgfmbHsy9i3(e#cH2flxO@`G zF4PIsgFr1^L{d}|E5wms%UV%~A9EiMYwg$Et$BNG&-QVpHKZCJqW#P9&&HkZM7`VF zIQ-P<%Z0_otZOQVP_9;03n-{jS~rHgdw95;l%e`*{Euo`!~6653iwmI$Ge5O%67|+ zMkp<A686nm$Sh13ip*<4(q9d6=J0QI3nTbFPjBtNbhn3YRHYxsf6U|=PyBdyt|uW3 z_#EyxxN*qgrnQx3#ofGXQ^VEoL~4B|k}kyS&0ZF2T3S|KpV0e?{{VO6wl<zOTRyAi zU*J-Ei?jYv_|F*}eckb{N-5qr;K}BSz0HwTCy<I<d39LmeK7}(0)W5sF}1wBR8e}_ zd{G)>!{y#_`88du^xA!SZ}HdQAhGUWk8+J1SlmnodwAoH7#{|13{4Sc06moD)oOhp z4zy$ZRkd&8-L5G=!Ia7N-#-#=*))Iu0HRa>0Lc~p;LBod^38RMwY0Llv|G4r?JSqu zF82>0`<cP70*N6B31@%P%ZLOw4ogywYN7U8pGDw!x$<M<Yg*NDF5mikSHHyOdAm23 z%2=(zS4HAdgfh@<Xm{}N*Cq^{F0I+0Nt+&w{YvfM?`Pm_FJpELeeK<`Mcf(8Esgd4 zg|stYO>DvhNnY#imQQ4RwF}JhZw1?5d3vX3sz>wof464+)=YJ-&H89LvCe;QA0=E# znCxGWE%A5RSt7i+Y)(!KNiL<1iyX~qevGAoPzwn6D!i&yX~k~}+PXHUwyXS3x@Pk5 zB(h`YTI{b@*Z%-2wEqBKfy2IKv;NP&wz*#G<UZ%f_YZKjXSVGNJG)oO-883|X@m-m z61g=pO)7HV^&NQ2?D%<2-JjxpI{xwdrLp^XmON=Fn%8C7a&P$_RQUt@ulcj){4Phd z{y4QykG?v@K`qVx69X&Ts@ekOn)dlZ++4ebYQ+d&aDoawIcwU+l~)=lNcn8p6|e5* zv%TN>t*EZ^<GeR&_TEphvpE|(Jav_fcb&#zxJz5?h4e`k!@>)iDx|Wa!vF?fW*2o{ zQ-;-I5yxBKCFLn=VjlGQUl*FfTy}S1<L)i+v;C?`K0&~5V$v&gw}LB0FB+JZ5RD@i zEke<(T(!aEc~yv7pJVo)?fjRz$(5X*`zw{SSuAna@<vqgo=_nMr}zU1f#v@IF$dGG zTv*k$vOVuV%(f))VzhU9Y3a7%UmN$;#uLA>=k8u4l%!DK0s)Td7ZTgbDk(*E6sYmn zp~1wTHH*!syX`e8pQHZ(1?OPOTV}h9A88f{&Q&{u4`pm4vU}o&b-jvLNno`X5qq(F za;FYJg6-+z)pK1oJfA-U$7M<6zsozvZ(q#w#&Kco4(7@BnRu>j?Itn865`(SHn)`) zSd`6feW!5~sFRMt!vWJ?7HlrI(EWq#e{)%UYSSw8YRW%GGshfMb}Yx7)<7zg7%ert zXn6(VDp<6pzk-3L$DP|tXvXt?*IHMeKboDo*Zzc7mN~qRO5YcRfaJd6s2<&UBQ<|Y z@vUflzx3&MRr<F+R^AQo^lM)IEB^qw^eDeQW=CS+E<Q23kuP#ATGGP}2eEPy<%}w# z5zKIf*||MHRvyyshg=I6JjxVzK8wivh7S+zP3OAE?xPxY`MXcey;n;@ITysA3gR=} z>j!S<WV~4<#K)19OIx^E;=dN|j>J(T2`7QCKgVA7T)b;2`~sM{w=C~nzx}^_U)xvF zUCoSZxnf0RgCwGO-cSK52w!Ne2rIE_{>^!|@@;J->!*oTuk$*h6tuT!Udl^&hVe@s zx<n$4D9R5R5yDh%z!j&4`sd_yCs+udApp8*XAwKR(UeWq7%H<ZIY_LuKBBbay>~Pk zWQ9#mrV}Pv!^Ijw7Z{nRSshhGz$d822xH5C&qfzfr?4mWNo0(DylpUH69W|9?JA*M zRH~9V13*5XlPaMbF&wsb<jx~u6lx57-WlR=X|^DG2wGO6pQ@k3r)bHpq_EvB+#~K7 zvl67T#ELz~t5t%K6cbQtI{u!z4y-SaLrJX!PxfrFm}vaRs8stv2jfsT1o&~~Up-~$ z1`THF5L``Yu|xvYsCFTiBHVpN$P7WKq1+Fk4A6mai6aOhVArvjEoG#NQKpouB8c3% zDiqbaY|Z+YZ7XI{N^j=JLB=~rH;pPZ5dySE0<Rb`xTJ}{BVW=z8-jENZFLZQv10{? z#{I=*i;g^<#F(s@$xPQ#%N4i11G_9Jw>4QKC6+*A{X@r%blB>ZlLf5c-?Z+txenUF z$k;Msmmg#7WDL^8zSCRA!NlY+jY%br<Ehi+s^r9^aYMZ2_in{^E>ujG@>)gz0Oxc! z*4*tRm7$I#F?*aBl0Wj48u8*-F>g;Zt8No352!ES=HAg~?U!7)zcWQ@VU{bH<YiV7 zJyo3*Zb@3Geri#hVZMdx(=%|SwBWFLKHA0o#%5^ma@Raf{rUH3?0|^TK@37hr;7Nt z?Ax7c%0%j%%P7AocWA_6q?ay`-N}C(@ZxP}Uw$^8A?lT*nRv8t5)Vz>qV(rWRSl#| zIUmRPNp5p^d}YhSBTsW5-d#@Y*A`1MAu~!z1UU-6+>A<(ae4ZfYoV`}SqX9^`RBUr zW|}_Dv7S}5!$BRqs>&ncmPJ<BNGnR1+lv}{y4PxIN?A;wDub2dfR#PeR#?qgCm>R! znw{&^{dL`nnjU?v&}HtW6?n$HcdrmXCZOM4FiuaoBXJ1fi0ME<>VGXAg*q2;MKSoF zv@W<YZ@9dTW#v=E2T*`i(Nw7*4?T5TTr1*nQ~qmcQVIrER!W*w@;)91_iK#rh7oL5 zBmtJbOG87kuj(glGys{dj^N5R6(Lrje*I*i5^L^8#5228ZU*3fG#h^1Z9;Bjj#i?R zR_jD09lnSBv_Nj9X+>!|Zh8-{-%+h5X5QjD9u=qr6GBZtANM-OGOq3gR+QWxn~nMo zy4x6*uTSML1a41<O|~60+Ja3?(kMKLdJThmMQVJ7bU<lWeccq3*N9<3<_V$E12>3W zp{z_R;2B6Cw~_w<Efpw6$<$n(u3=hrstN)Rh!oRETGB!i&KWB4Nx{$peJ%J`)4%M~ zK{+>q;_f#DT|Uj}EX9|lKZsNf6q%+s8pV;BqH)D!E_y3GRq_A;M*5(V5p54AW@q3< z10i4-8dOlJ-kK}W4VFteXOhf4)%0?hiQ#J^J4s3!9!#ve^w{f0rcO|A^=m(KhuS@O zar=4>RpIB$haVc~Mu3y_+9^#z2XWB&*IaOWVovAzGqXE7$?voG@!Q86m|j+3v6)l? zVpe17ka(nF*m!}d-t?lII7gx3_&!IKei&%%`!D19oSQNI=5~#ozTOi9b(KZ^QuF(D zrofOMHe<Ql)2}+;bMaG&Z{Ux)!TpcsTC<lWG5lXI{{WKl+P~Z$2Pc@ez;_-mBiY$2 zzCUi6MB@bI$wgG1D4>=E4nS|VyRl`%n@Tx<>9U9Vo(Grq9N6gZj`Yh_zqaN-@p_g{ z^!T6SPmyh&%e}i|&nB;0yT)OZ6IziZ4I6{`>NoK*+enXwpUCk1Z!0zna>r(w<uC3J z`&IteJ~8d%-1(0Bz4-nq`3!Z9(~Qu&kpLz;OE%+oDHR`~$Y0_kUR}P|*0%iA{-@Y@ zzumrSYPU-#{{UC{qw~MGJN`TS*)iB#slLHvmODA+i6OYSi<v-JF_1-2JxGq+PTYwa zrXK>e`K_z{4^PYf<;|IJr^(-|{M-mJvBzbRwZ6uI8{0_FA~KWiD~>V(K_rqZQgz<% z-0?7Ao2OH?cGqb42XMTWc<XsHPhoE*_t{z}zc1UvN0MG38i1?|aSY#0bL$ecK9bp2 zjSlV*;}!iD^;_P8-2K#2LhZ!^OBBiN$PAyYfnP~rf74t}_FD2jrv@Jv%C8)ht%vi& zC8ur6*v40j6L%bzuslga_KyT`8&!4nM;H++GDX11OSdoPNz1;TRj*G}eD9n6vx5#v zhsEu0`<&mqdt<!&izyZFa%bkwT-!vDTTgr>EU+SlP>iZaMF6lBG!-VAdtUhzo*MD- z_}N_7PV1-?ov)p@v-a$4T1R3O%fv82LQ4?EO-F{>;#jT9ZL#$>`=$!v<A>{g)Im_p zSjB{etywrsc@+|^8Hu4R!Mv-!yXyIDe3nYr6??b*%3b7BB_)iNWMIncumw)X@;dBL ze6~epZcB6YH~UEW8x1YKJ3DcbpBt9WExnq^uWb;SRZGZ_J;ZDl;Vxhf13IkHu}@QR zR)ry1)idZm;fpS86}qg}C$I4YAKWe$7VcI!d}MYf5P@<LK&-Fr<!<M_hDnp!fnsEy zX`poAIR5}DrM<vM4s@jK`yORf)3?>M`gGl#&$gxRE8O-!4S*c4awg?09#(km-K^pg zO3x~S1ZWvKu=NgVDN;4eyncHhXK%fJ(M_DS)2OrL-;?v*jg;-YZZo;Q+qb)y9dx%j zEG!aPi^mi3mL+!*js&2MrHNTpxu6e6I<;`sS?YYpo&C#~+u_EQZOW9NAN+RZ{{Xs9 zSDL-byf$|oy^p-K%3NNgm)INV6y`0EDT+uXynsN`D<YM3k{D4FU_XmpEh*zwq43#r z<jZe&HJzL4_xMNjI@iYCzup$T?RoMI&Aq+mB;s!|%3&9l*HwGyF5@c=*$nMS{UvJ_ z$8)t|n=*8WIcZqCd#^*YrY_7n-rE(o`<9elMH{<DJ*7utPqyJG<j{~0Dvm>Ot|@0n z9d#R<H#TrvCQK=qC?Z>Ujcv;Cb`2X26&-1~9ciXbYzHPFT<WCKM&?LTKpo{P?kNrw zY)h6Tg{vB{uEf&1c~P*hKwJ3jV*YiragiwQsNn$yWomJog0)h$1Xq4vfls*6pgS~H z_b)Bjb|_UCdrp(qA<c@FYC8Z$EB^pi`|e$P6Mm$~FHBz4Ng{fsXD>Ja2Q*@YDFTm5 z)PKH=f=RyG$`&rKxZ)`0KTDbbs#JnV9BMp24GTVuWQ@GaaLp5eM2N;Hz@KhKQlWu0 zs4RHU4!=t4Xn@(b-QUF^l4Mz(#A@a~afM<_4?>NJL;8mFJ~TRJx|uZeGiNMWhz*S? z3^6iCA&h@5Q7Bjm5eG(KRI%UHU(-;~Bq1QUw&6ImGs;Y%%rde`2nt$GEmBJoLnBqZ zSPG3K>K9V2-<`37le2q*Nv)nc^v2#1Gu=-xl3%rwLe5$`dWw)Y<;$+;O;<KTT4Aye zi(VM}AGRd2c`RhV#@IBM){{D1Nic{o0w*Fj3dqb&Jv3gm+L@(Uz?h%NwF1m#`_@wz zcFQ%T);hy8kjY&cG1oTiklG8IVDmkrTuZ^71MLHZcCSR;B8x}V4$shox3V3t-S_zX zmEUe$T4gQrHn`yUMS^>)TU%HTO75o-Bv}yhK&u>u;T%-5b>*s88>*Qk?N_SMxnAe7 zlBBR;`~Fc4ly5!djz&1Ir-n5k8bvv_z2?rrRZEgtfa$)Krur9`(VQE-a^1n)SMz53 zjtFIfz%9Eat<h5yO)DURB)S1b1cluDojEx*I;Cq~gf8tc(KUx~OYzrg$=n^<W{)YF zd9AKe;@!YDSGIw<2~}R*y>Txv9DgmNp!BfSF1aXLi$@<djvt@9xzDfN$vB?k;g(4z zV?jlzRdTf(R<*C=^;KAL0^0MaU7fSqLcGsf60P<8C^g?jq04Q;SVuDh5~_GnYDdz5 zl50<{oLD8djY<A^Ri{Bwy$;nIpT})u9SbLCb$9UACiMkvad)27^9q0@yPD)ipbs${ z>$ce|>?PFTt~dLJ`awYv#@tCP#cM-C2L5~NhGg$V(LV|XP-sm~!~sxt2gmTy2vC!f z9t0375YbA5=13iNg`G{~i1FO1*qwzp^QY58LqVQ5HRJ9DB7@Q>Y2!`$*G((2wLVyw z0A-N9MFA={r%DmNgtHr#+uIu{r>luH+P**Qqp^&ri2x|a$8al8K8Cu>Qy)7h1y|Az zz_&{H?%FWHByD|es7#Y7VdGFue*ipwx+o0S?j6(lH!L?5KH2Dghp+6@CN9Po?;eV` zRIbDrz#oa*MQRB)NOJ?MB2ij$K){}!TYru8WuT^@IcLg15KC{xN`i()EBK1Aq0^}n z7Qs<Y&nlA=hy6hn_<||W5I{O~`xAiZG7vq@E@NaW38g>)0nku=dW|%Jp}0&f#3>Zd zBoe(iyowxvPf}EaUG}b@Q!R;O$7F3%HMY5mconM<sa{q80H~5dA7Ap)OBIHD^L?+i z?Md&`^l{#ws<i7*&Ym@<npAEN!2L7sIr0(VE`O(_?IW1g{@F>LV`&1)W8w+t!<P~_ z2Yq?jZtA8a_p#Ml$u|d)dxNx>y_XN%{r%j@+nGF!EqgvT_z0n}!U<)L3ruyhgm$B# zTJj3Sw2%J)JN(vf7T3LPmg`;9(m(c}vG`wbzlmF6@bLSTNiKBxov$0(%45)f+r8EC zXKrTlxF3%3cPW#Et3i~<S$|u-nWea=wQAC_K^$I@8&pNheo~M*bzy!!H2uB*02_Ws zm*n`rbn-FM{#}x*dt|c5Rq@;U`T%zY{!_j)tJ>GNZ~I~ljo@p%{{VL0KiylnAIxNV z%n(N)UWpPjx0$J7I%Kv?)k>{vqqd!Y%D?V=9zTnR!|~o)=J#%@(#L@&zZg!<cWtc; zr_P_;@69;-hU`D>%i^x$%;bp{kKY;021eTz0afB!-W!NwGZ9MrvlNTPR$76tq_*yN zlkxaXyIV!usp0I#3hLwKtd-CAE0N0Od)~qed+V{>^T&s=yb@f)6c+KV;w{tK11Wa) z(%v;l-_QoP6x6r)9V*u0{@T;?DSs*AAh+(Aa&MKi$o>7SQ>s~{R<PTd9!B;cw~dKd zquqHQQ_Ll2qmnhjmBapryY`Aw^U5mI>h=9f#O$`vkGKA8@2~(>6b`J!SN3?Fa@Xd1 z=zX48#ZQywv+b&17pdKUwhW#_8S+P9<*co*Zmw)EV~%@kSgxg=<3mK8#b^w&!~}@) zMxXqOjGj95ynn66&3+$=;(3*C#IkSZd(3~2q3b`4JAy2Ajm{h7jAjmN3rm~Z$g>#8 zl3YGc;u%$PX&fb4ZKp0Gs>dk~%nBzZY9scZHOVFUew|N{b(WqUO3}3HyF*&F_-*KU z$2<KN$GG!2n*!H(IIky*5qd!jC83m?cIF8Hgeo}#cL&d3KgHJ1gP1>l`*vrS!>aQt z(}b<cSL);N5njOrS3(=f5_l%%>`YiAs|p5I3tAughv&Y%9CvqHG|}_kcZ*Cn`s;c< zwNkz-;nY=mV|8G8Sj^WE5=bd4JMsskEPSXo6xF#tr_W`>j;?ED*ToBRmlEFE{ia$4 zirJ)$EyeFBqZ5KmMNFq@0k0YZUm_|rFG{`Mzo@wKy1rDbuCuq|wifrMJK@;7J+Ci+ zr%#@rjl3{o?$R^K)c*kXB^JzML`|w2i7iSkE62@WxUIfM+Vw}(<)_*+VgCSrl%=D3 z-m&=cxA+=-X>}#1ZcT-jKX)9GEygz?z_qi16p>3AaRE05$oW+Qjm(cAe6?ik?dm7B zj+kj$G}2l$=2!95>e+ta`EJLx@mP$8H@Pw$h;D5jYmAC!Anmn`OI77M#ULQCq6ozU z5lWhCuFoU-<~>iH@-q0<$rV+3b%;xu%Dzsy?kVqVGFNeA%#z@(rH0Zv$7dC@-9(dp zk|b!WY_m%hVn&(4PEs_4x3^VR-s(TV_}tlZS0m({{3Xxxk)OqV@AH3ZXDzZFncLZ3 z=8VTQJ-u&p4a|6XDFpDtEHS)9f%>HVQK=lgz(+B!e*Rr)hlO#d?+NSiJ~80umD?@f zCDZ9S$Ht!%<uZAP%lzZrnEWmS63ugSYm&-Aa`_qU+;O!?VU^?lWR>LdvaLCJ>&N9* zzFj{9(N8S=)A;uP029|&_cKJZO%1%0PR-6sdD%nqCNjwH5`v&80<Bd$aTFt7Dt*sI z@{i;ELNW8t_D?;ucPQ5$(w9RFk;L+IlhYKjr2>jAX+d4Vr8Is!dWhtV$So~?-s(8! zg^>bWKeW%mSxKV3NK%AXew6@?9b{N6cBTISr$x=9mf|&piAwur?Y*K`ihvN3-=}Sd z=^82Pp@8^YJ?*r24J30fwt30OlA<=JQ(h%X)E@!YpwMB~4Wm32NTiUwF$6#)Qi;~C zYg%&KsL)HXmWD0myN2N;Fg%YJq8Qc4W55o6=ODqDy*)(KjXzCx6|xv^Cg9D8f<!LG zt=1#TH6o=#>}pJ8iV^3z&}h=ShpGc95WUh$;T2K6rU)J(#e+3p(kb-v-%rz^w)G{o zQzhd;YeibBtCl>uD62JBf`DoO6{S3Yrj}d<dWJ=9c{RK-$1HH%O-8qr5@ksN<UtNa zH%>Gk^BQs*PEWD4H?()*JSHjE{{WfVQo)u`>F&s^6N{k?+z#S|4fVQo8eHgC`^Mt( zUee0j+{V$fV=vkL^<q^L%4MTF1*<%Mt=fQ%#`@hr_A7r5n{)A>XHLx$+^#mzGRlZt z6p+)3w&#+f)5f&iavH96^D-E|mDoEKgUH2hmv&vjYQ3e8bryCP*3wOHaXiwQ2oqY; za|CS5#K?}qPeXF!O(b$!^!x@~lZxsn%x7@WUfV<RZ*JJ8MXvJKYjoF8-bgNQZ&5^W z3I5vnG%#=si5YcYS5B8zpQVxHowZv303C|I%Mkna_W1O<$Xnox!%OVK+%`U2$r4Ti zCCx@z1ZZ7Qt1lzXhQV~pl=KcrjbG=fSH)p%rIl~&u5Dko@XPNRA-a;mvLR)WT|VCH z`h+G&k?TPi0vN?YhB~F3Eob?W;`aXlAL>!QOv(2^$(szUS2M*F;!kqo+wH+bV^oT3 ze{vU%+lj9czd#44LMqgT)^L%}tR}O$$(bH0A(W#I5%N|NG^V6`H9G|H-+K7#qLqcC zIWk&zLxBa%NDZ|7g+Wxf9Mf+ioLFsN6RXS$_9aWJl?5KvmZR3uFqBjC;78@YiGtu} znjq1&6m|46HEHC^G#QSSK363F00h`ztZgM2`)m8F{H^hg#4}#Wc^$Ss+)GY1SOoGA zH{2R{>T#~WfXS$FyZ%K(7u%i3n6`VXbhKFFC=cA`F_vYyS9Ff<Xrv%<HT3y;jZlv# z*q%<?&BGt_ptNdr37W(`e>J-4t<Y{u_>ehqxl*8{0x1wwHNE~mLKJo8t2qp$bqB+x zG#fIs5L;bkgspFLV%*S<ZX`+`LbU`rMx}fWe8qLP4<Lb%kiWMrwZf6HDIG`TLs01H zItEXk;b=?8b3wTr4L|%=(J){NrGr<;)lz*U$8ZflEntC{vAIQ>GfL1p%8e5wi&bSR z#8#Bq!J`evj3G%O2%8{B2d5KCel@7jOvci=_UcxjkR$!H!rCB@jle-iYLT%bzM6On z0jz`ZAuV{D0dV8Zs29h}ruuat(Aj6oY&dOAgDX;$^A*vSCXzF;n)~gTJWjDxey>zj z^70>zYo}8J-*ACEhy;^H(jCXP6@v<NAgLRl^6R6cK!%B<y0m#i-NMDk5>img{xqdP zKbDAr(nS==q|d@OBY>3|STXXYO*G&d*qP%#&{b-6U{}EIDr@2A`DxREAZhnGy8B+u U#~z;M{>^LFwCVY1$k5OK*%5sj&Hw-a diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/3.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/3.jpg deleted file mode 100755 index 145c696dc8c79882c96c9ce69087713b791fe6f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35532 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/4.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/4.jpg deleted file mode 100755 index 33f221cb7d1eae71b1985d8624332a761441f0c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98304 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/5.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/5.jpg deleted file mode 100755 index 47d0b901c31b42dc85322a436eeb73ae0aa71167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44257 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/6.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/6.jpg deleted file mode 100755 index 31524dc1e5123f00413bd65a88dd212002a4ae65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962237 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�&$jo7jGrk->YQ?3TS>ic5&{yk%HaP1m1UpSDf`NG8V`;WU=e!3bItp4 zNIl!_j_J7fPu{h@iY=bsat|c(Ff&Gem=genC|o|AoDcx&4lUc=9@u<HH1RdTzN<T_ z?Im*U2+{~Ijd(M?c;FI`dbgWfZUt{^Vl=~VY>_HdflYC(YC1QM%!=ZTyjb?)r`4t- zX@@0UEcZKpOZMd~TZCrrD6Itk+Obw|Zu8t_LJdLm<?-q~F*93-nQw}~v|DT|_=oa! zKzr7lVC}r4jPBbNrPbTVHTAyeViDW`^DK_C$EZZ-*(NZQ8c3+m9M4p<8OA}e2O8z% zwR%4GaGY?V4Add<ek+SoMQ=XYB9WqdCm^c|Gsog|)2JPM{{RepTXrG<gNR>af?+Yj zL%yh*!nc-E*)lh!E3B3y_-8)7C<y&{%>mWr?MO-UZ#B_Bv8RS<wwp_^L{}T-pS$E? zgla4MbNFN5{{X2I3njnQzIguFBQ4xt{V(Q!MF{hbNO!K{@+-+)`_tXcEk~%GQZov4 zr%_Xf-QU-Can1gLbQ@~|HZ90t-MiIH?vz&^<PAG2tFFBvfT>}bq0Wc)W5xRQvlgoN z4vIq-P_b5ute{jM1Luz}#d;^?wD)CZ21BSdDi4=VgA4+b0E}KRSYfX~gc5)8A1q8& zQ*2b8Yt5zY({s1?hN#1!Dm+0nG#+@4D(QoytS{}{J9QwOi0e$Ta8-aL6O!Q!n|T8; zDdW<)SM^|_>WadF(=^G7=38c}WHTS)Ffj|JF%!iv?R(wbqxvZ5^s15ih&~77geGBv z&AYdZ#eDl@q}_{=J<q!h%ZQAtO5`d1o*jJfR4!`8au@dA-9=Kp-rqjsZ55`VOf2si z)>egxEGjyJMMuQp?${GT!uFH*sxh?g*PBc+!je2!3s8)w^8@J!OB!^o4Lob*j&Ak6 z7^zFvTqGUB^7_*B?-N5LZ5Y!>W9tMT&PgS~u50;7#X_r60mhf@+dNP+!Mkn?Z*d*0 zj0pi6FcKP?YZ0v|2=Vc+TvI6kt%wnJ=Z#8PjYj7<k8_@Q(m^zFrnY@7D5Y3xsRaIW zS`ac7%K=EX3Xj9?rJfzWLOAnr4o9|0$@WVxb>Ovy-7oAMg7RE#b1FMVgY(I5;jQGQ zN~;psz}y`r!O~879{&KoD{F7KH%6IPo_)R}nzCJxyY24L%{b=B_j^3?PiqoEZFy~X zx5<5da$VM4%3EnQTOt68Kkiujj6JyAR-PZ%E!^BfQfV-eatupEVj}pQT!`Q*LZa+5 z97yfknv}PGWxH`W#^1R~9@`4s%WX7P)7oBcRu>Y*?n`BJEz9eU&6%n0MyOIkt0M^m zDf9b#e|QrYK9>esgk=|`q6hgimM=#kWf7!f@v4LSwcShWq>qVD{F%1f^=Z~K1-!CH zB7(B0WMB2;l<L;ZsMH=LoOK;9r-+Yn=cq7uAXg6pG8OPfT9Z{%t^0kSX_8(kD>EX) z46!oD0QUt$A)S$&2()FVP@(E_ragmgU`%_1iQ`V^YV%tVw(-=Xz5f7r+GpKtW!Pn! z5duZ-nH?oXkq@ZE8AVgXD^`^~MmlR2NQu<h<lbzHw;dw{Ccysu`;P7;LlhB*mN|tz z(I%jz1p<RAH_o79S1qsuuw^Mkv!qtK<M#~H++BS;5t;~GtAYTowXTwS9KReMAt96f z74d-~HKiAqO`;jjjbS5F^`Kn+HK9-e^3THr=@Au0uoXWgwe`#*Ash>@+Ny>koeA|C zW=<3#R6HYE=8DC<?j|t|vujlZXVecN;z7$Q_+rm$BLqRS9D^Ys-Ig^`4N(hKz%{Ar zO%7B(L-E5KK&Z;k6tfKTU8&p_XjRfcs|!6J)+!lRl+e9DHb=t)8)FVgSz7>dPMNtk zBbhE5_IR4$saO91w~jfKWEdmF7OF->5_0gS1pYi&47=!rlw&G2JL%+=whO3k(nGlq zbqiJ9r3h5JP>~_@sVBsWVw;iC_|w4$AjARPf^)9f$8MJIZP?|yjNC^V7Z)(nlK%3P zk5d@iCCi~Dv&dqRDNxC?pjAlfAf9+8*41ZsZM`*&<l5ZZ)W{}RF=#ZTf=Hu%DgOXd z3IKYHS#hNo<LC1VQ?%lqf1;lDw&Pol<@9qrcTmlDZ)^3|4w|DbeYJ<&x?Kw!)RQn* z6cs1Wkua2T9N7Hn@}ka^J-5|gg1OvJvwg7LH>voaYI$9r^}cNJOzpPY7nNs1jsE~| zYj-qCcSowx(m0Y8XI_MoG)Brdq6wiqjz3QI#$UZVezOlrIMSX@YtI!MZ`{w5@Bz1X zFNV))y=^eh3z;X|tmm|8nublcbhe6~%CumO4+`qdqkThGGOcW_%#cG%wMXu??SHs6 z4=nzP*V@i|AKXUyw)T&>S5|vI#BMM5ZKl_7iI;1zl6FRGcyuh2%N5LV2w{g(w2r76 zLm@0g-EF^z6FAd}9J6jCj!3}?J3l@+Im5FnRlxZ6>)2ZjyO8cfXSm|Lh6|f5*J{{i znqET-!z7W+A(}fY<glJ7%f|?myosgtqOywdv6MFj%aZQQ0Mc9iOe%hb2`gZaRwj%X ze&0nSc7toa`;4~VdAHlA2D!ev<FbhN?elhvVcd4DvyWcd%(Fbw?-sGI^EHh$!+9*} zATjDl52=T7(Rys}$b#Tjf>a(32R0uykrOxqVhJopEHKUJc>SF%a$mIW4L>}ev>k%k zAm*HY-rH}tmMz+D9sb}eb7Ye?^Rnz*e{c=C$8B!vO0DFx%P?e=DFqjMf6_&X#M_zF zz?U*3I%9`*GNvfYJw^s`5y&)zs$6F6PC}r6tA!xsosIi(hrS1k?cA@L@=h}q?Y`Br z%{7g-(|c`juNpM>8&vU22!-S>64n$BvC-Ycn&KJz-lK0|B{)Pd22wZ@!QI&N;^j_# zN8OPTg&vO}emKz8{4l9ev9;cKXLfh4-2K1qJJp@zMKW&Jmlu0v4Y$m*`$q7zKGe4{ zExi^sNi=D2%DRR)9p_qy@ngH2X)IzIPbVLZ0dDgUo7|kDM5$gS&mct`KJ_r&{kQI2 z=j5?+F6wSu=RMw_w6nH{dEM{XETD$YC4#~MXHRjh;fVxsf<PjzT!}sl)IaVm%QzUq zBANg)ng0OKfINVv8KoP7KZqDJwQvIyTDM_ECfNO;!)?m%JBP;Yc0IF^K@47vvwVu) z3r6<iNG3dE-~MB8x0NDE+$0X8NP3*|u77cz?SY-cBV@?L1NqPWKuiOpONMxsCx}`C z>6=849K|rLTi~si3$*@q&aXC(PdakjJ`410$s{iwo#yEbKIPkA6_sGNu-g!cQUqpV z%N4$t4&xp#8x!4I_xACWC3Z3~)gdDbE(CO$F*BWF<P1!hVgWLRxt&#Nw?27M661W| zfOjvCa^6cm<3AqSb{OZl+}r4kmuxQXUe?|lYiQ96++I#hY$%GFv!alvp#H!8CjR$y z1=)cZ$5yY%JU}36)(-#(cEsSZ_Z#T#J!EG=hB#G^#gsqUKFD^{i}weHchA0(Pi@5a zKXY^1Ep0uCLt1UmBsZJ9&j-C4{R6N_AeJ*UlLyg7h%x$CeX$)j(9=3h=_QMpn$Ww4 zBBz2QYrU1}4Pl%D&OV*K3y$3Pz8ufJLweb{KH+a7NxCKFy2TwCU`KNlF-HFYl~ur< zmGwKwXu$NxuUhE4evc^5&@_n-NiI%g;%G?Z7hEqJabf3~?CQ<%el^~H1H|pS`ME@R z*9X|v^2*2S_bZq#w;Ria63J(`{UV#Gu5TOov-@cjXf&h9h`MnTZX4Y~CaxTTgLz;n znil2Rg6Av%E%D360pBgVZQQuCj^SC}#d&#pw|1LUvBqSzx0czO59Sj}42w0(mtpI7 z024t_PECnVYFY;YQb{jbw;-My$-&BlIgi=Da5j$H&)($NZ@8w$skO@;p67dGCFIGt z84k-dTU_$Te>7KuDWnsuKG2Rfbtk4h3u$^%4J{?J9Pz`mu8a9(LFPDf#Zt}ph+iAg zuupX%-C3iHSEURIBT<kFd!-Jg15p42>8Qr|ye;~Op!lL=xDjGUZ_!0N4;-GuxGBeZ zNjCn(&a>5t(LmaXIsQI9d~vTk!gjSnuY%|V#n^%{JeI2-)b~#gx0%a1_doK;2PP<U z6<^zmsso@2(}GDCQtlhXTXfNg(nV;2&8w+>F2waU{apqxZ83CcfM*<&9z|$1A<s(@ z@WJA%OB$?#?rT|u(B#9fk@=4-KAl06N+My3SG(l9jodA5P>4kakwOQEsLX@oTn;RN zT?cP#3uVG9KIL_I(A)crBaVuSJUj^$>Tw}#MylxBj2@V$Y};j-xmzn48DmkADMr=i z{(prq0GVe!yOu!Q97z3=J;eLg^LV>Lg3h^VUWAX#&4QRfIw}yiW;*i6^iR#VW*dIf zEEh8@$O^HD^r$^gl7rH{Plhw4Cz9r`?mfwa5ZO9HmP<>?OzgB}2Sl2w`A7HS;Yuwa zWdPn|_f6gRcY^-P3s{gVMp(XCgW*Q;2L@WUVoKE8*fxnI<AQ7=mvF1p<%4BKtWxAQ z7XI#wsVPc&RZr>%!2ZkyDK-cxTp&0Io#nh1>{{PbFOH%-epsAImMZ8=Rwx@-<Sbr3 zfPS4ZDHSQ6DO%Xe9E7DCFWNs!Vu=t{ZtH86mC#(82CXOsC_ps?8sWhLir|X7!s>(q zgk*eZPwg0xaHoPJJZf|Z$tILFr(cKZTv`gONqZ79oen8Vbi_$aN>#8sV0Qjx6q6wY zDULvtHT={d)}Jg_C&?jNB3A(nWg}ozeo%ikKgSmY;)x_=!xk%0p6MlvW?Kx(EV4E! zE}@^#3~CZ*SQk)Z(+MONCZvs8D@ia>Q<2L*BZ}ofp)3}%JE;rOm_Rx}1Q)G_S%HaQ zq_$`!QK+e=7NC=_|JMBf0PvDogp$l8mSH4>jL_1w8Teu)B(rrnl$+eyWl$cXm2QTI z%yq!=87R6#J#)cINMCH2ffTJyUO0o*MQT-40($t2JGynSL~%vyhIUL#Bi578WZ~_k zXxJajhKI`(P9k`RRY(a?g(BM8TwGX7HuJQb_0^%~hE?}a0YJzWxeqc3C$2g9NJ2nD zdU+8;$o6z22pSgUl5K5Vvvk=~OK4gBtui810KgGVE#S*es&ewCG;Zx9dZ!v5-*q|I z7b<bhDeWAt&c}5AW4KsELfbS860@Szu9hSUnz$z;mVOk)7j~v`(-|CH=ucpu+oJ=T zF~>Q~oJihnduy@Vw`h!aFi5|Ul5|NMf1W;}zF>?~xY&)`N=>Q-;zoQy<Z}uWwr3uH zG~c(l-?)X^Zu?EpK`nI46oG>Z*Gs6c>S2uuLL0c~n0`cjzeRSDbTo&8^OW-2o>we) zH<3piswl-4mHl{arqFEzM3&~GX27!SnmE@+tinlV5=lX$iYr=%sd^vyeg_meB~;{< ztapx!ra`C>0L<l2Eb!(IqF@Sj*|zn!+1l=i7UtDUN?|8Z3L8snPXKyUdEgQwB1Q*_ z6vie*U}&9j_a|u)N|Wtq%QDeod7fC%jDZ3|TP4U*g+F1>J1IRS^e8Xkmv`;tqg}#% zn(FDLv4%@%+P<G~Nl%7gRAXuaQ57%nTTuiG)gqkmQn6+dOJzD*xMNh7F$IYjK_#vo zCFnG-#|)CeO6P}37=it|veKi^705b)TCfF+vsB^Jy7XO6sv}oAL8uk+!qO6Cp>aI2 z#68%9HA&Z|l^-vLD2zbBs)TqVUfbL^@YD(lnq)C>I#k`ULm@F*$L*1=-&RL4ry=sp zoIup6C)UNtw|iRLTxnxv8<-?9{`AByoohw`s(f<JolY`uS&Zm2HSqf?WFG`&`5xPE zbS}S_#O$f-x4Ba^b@PdV5-30TjXd!{u_*@BNBu&F$1j2qz~Cv&BS(DUxA4g=or^=c zU9@qky~`><O%yaTnrTlk<kQ5FhzmDukO_E)I8^tJJ;}666c_~cyV-WZ#^vEVrt7v$ z@XtK)-9sc&`!WJhC)7qii464hf0XHNgp5%ehhDK63<DPqJGhLv)ea_OCt{!nmf?hG z%p^n^EouNgN9)H-!E3Mx%o40<2_O~eT#xJW#ZnH3m@-ap=GIo;)SD#IBO_}fT_g;& zu&3o^BgTM_A3SG!Wd1;SA%qCTCwp!-dv54?p4ljhRA`waXvDFj445M^pjH{Kq$0Uz zO5-?0+>f^*O7bVayEZC-b$VNhb?rNpd%oQ+^|(S>+|FT=TZWBRr2`_p1y~-0<OWr* zhBWOP1V$#T;0NQ9&oMU7JZP<N6yw|PW_xcJe))G9vAW|N<7&CGgX(2jF5p>ijBB{s z$URU>(!@gR2U=<)BamB*61)D}mv;nUTPEb7E_+kZ)gf0dNya(7_iwH)_=9`fdfa=G z!vi>!&@luKvS?H49cU|<&kJdO)vMrLq?v&%-=pM;u`#Kns=PAY?biu+YVQoA^170& zDk+f}<I^cH#;bfCN!7`DP46(=7kS;J3AjfbaTZkw9b!<3YP6(*MF}-5b0)YN)sbXr z7=8YqB;Yc6?%Q1Jv}|`Hak1W?c(j&gv}wKDi$+U^gW8?fOGP7v4xx>75uFIAF(M{Z zF=EevG<R$nQL9hrnj4EZ9+Pn5o0K<uY@Xmtt8nV-9y3)8jstp5f13oxKJJ;)O@YG| zYdaL%vKs)s0{UBlZVHlPi8b}kfu5D8Oz?EIH5vK4D;d(p>vP8B_bs^E$rLUIbD(*R z24K1!ATiF02Y|&86BVDs4&CZF;+rcpX&H<$Ad%rtpN?2FN|6pwyN%Rx%w7N}bQ<Sc z=@qFsg}AU#j9CW^jTIRNbQP|CH6JWY)kue;Jhuh4+!+d%Di|EeuU#YxP!H|I8CR$D zTP!~1yFChiVu$>~xq<N*i7ZnR$QUA+z-NGvz={RxX^}a6@e*pvM-=?F-v0pI6WZ<E z$8wcToFXe}WK!!8L#-hIW>Yd2qy_T>EM-d1vgX`z#AbP*&Am7&hqImeJPPt&Cv&x1 z-f<oBYY6x2Ng|F}Z!K-^mT3^&$sChgYE5HRx3<e%tI*dyxgp=xmP5n!#Zhw9q$pVY zK1mC{-J7`WuOYYO0?Ot-CA-OSF5NOs9HHR%97JQ7R;s{yOQ<bIAQ7G?wA>r9F{Yv4 z+sP5Px$Z`|s9xuCHx>(NZ7lMvhEGfB=zuC3u4mFHYnBccz%E*dwyILH--Wi<ZD+D- zvb%xKNC}c>U_DOW0=WUu4?5s!+0`OvP<((;oLsrVI=Htqvf;esbDmqpEqNSB9h$>% zdzkGF!$ehPb+eWyKHP^|scj^RFknc+Ha*B_jELqL+l4}i8iP8yJ<qm<c*VCA?(NhU z8$SFjFYGscoI`PEVJ-YkD3&i}QdNy*R*rjV2`WJ-YOAZwc9y-H+N^*j5MCw3qyfO< z9k3y}g_CRY^y41hXs<2%VdRl^Gj`neqZAwe00-S+u;hDX#PP*$(C#d;?VGmKB!V)@ zJF7)=9->g9N<a*BbvCz<oV7g&p~g-zi50^TTQvhHk_+R99~6t-KKS>GbK_PVE4d41 z+lLy5*s#B{`gvu8Z=8B|>x;WmME22=ew@h8(Q0K6N&%k>Hl}?p$0J7~t^up@WlX>_ zZU_$DZgxB0X>aT&Uw%n$B7$&MT~a$PsN$OCD#;NkP%5M~NYn{a#Bbw0w(2qz01_~u z%!ry3TJohaRS1~WB`znocbkp!n_kuMJ->R~_j~tyUAEh3xHq2Nv&3#>8(y{6%RZ9& zeGa-?qtuN%k=u1JF5EC^`i`Nc<m@%I9wfCK5_lqvMZ<{i;{CEu9$RbN-qq~4yKgz% z8r$m_#E%cPG?vqq(jwgvCY9~xBB&$M#880Q5IOsH>~F4vZZ2bpCACG};XvbwBzGXs z0Ia7A?k(qUcvmXqTOHZnt?l+HeekhdBSP}SENFDdx@J~s165nlNe-jZPmu3=Y<K&M z5SOAx?J&SfB=ZyvQCy0wMavA=KD%GEUu<$g$v5k(eTvfV%%rxy+qb`JVL!%L+t7fp ztys`83>LWhSE%kq-B#^`GWhV5;Yylt`6H(%C3QpX_wA0~?hCe@+UvFZGVi;m4%(lR z{{StYcZSz-yt365wZ`GLSc^HOaSpYSjJI~RMQ2qZDUN?@x0okfgjfuVankrda6WF) zlWAh!DwJ#+pBvmmZCuZeO>s4>k8i%&J-Z2-EneD51i`gKJS1f$53YpOU4}bh7}_9- zivBei=ldlIGaOMnUc+x)z~+05Jbnx7SFBf1ZgNL&YqiN`8I@$cxV;kvv6>W&AEyFU zX#;@CMb;MMs>f#$sKlH!ip|bI7I)&TGHCX79N+fqkMS;fakp;Vp3`-<mMRUx$jdZx zG?dWi>eVJi4UyCtPl;Va29BXS)`Xz~4+#c81(SB@o&`x3_wez~34c71Tkcz=hA|9A z)<uNbS|+JqQV89>;B_-mO%q5u4M<SxGM&*EA}q!Dlio)!70zxtV80+vMc+S@c69~p zR(tnuw|g#E$?X#6-u@<!>5cqx-pdWdEV0ay0%S#@s<~Qz>FbWF7vs5jLoC{W_x#rI zvIJOBunC16@Yvl-+l|C(woMe#+fIU2k!7He8c^iE9Y<WTw-~%>=B<!s%_DC+or`ZV z?t3CNv?&?^8<65Uk_b%6)8*9o;D|u86$aE9Hg`LvW1#*)QZuR4X<YC?45wxUccXT@ ztd?=eiVSTijOq+VOIoQN2(1o&Sd60S=WkcpEbn{n>vy-0sCJeICMfkWAyhW9h&lz; zoheHAVz@v8gSTV}J`A6h{I#!P7hB+t?Y+2l%Oa{dap@`<52=v{fCtE6T`huvv|?$J zc&{ef&eILO!O-?;NQ*9#(YIJ`C8nd-Qq&R%@C4$p?xUr#PcB2m`Ca{%-N-EBx3#pI z4OX_XRLv5ZS}_)}U-c=hs}bqX^BM_h5gb+Ws9J2CEw^31cy~MJv7Qqln%YN_DP)l; zNNwXN$?mmIM6GB*HOm4>fKY_hN&8;XZZ@lH7;c&y%P7f!+X5#>jw-CqpON&fOEzGz zE2U0Y9zZ${VWjGI+54Btwr)KQ&h{Dh`J&tGCc3hf<n|zi%l%rRP*QTiWG>QX$nmz2 z&5nBZ+gWjw{>qDFNAyXYr?>mI<9)jS03x`NUv;r6suVoJK%vy!B!#7c3TiSwrwWW0 zATu(>_W%)sI#L`{6Kmo;w`!d@?336|&`WV^6uW)WN`LLlT4QMpdQ3%?SwI<<YKnpe z$Z48<Rz=8%aF_W%Yqw$STyIe&y_^MMj^QJb1*O1md-$dOv^MgFDDi?q`dn$u;Jb0r zOnZFM_Ct6i?Yp+tTO-M`?6+6bT+O0KXAygAC%9M$L}{rbBQObS=SHS@EJzxasW=Iy zR6VZeTaBgV_R_J)UP!I3!(Dq*sh)EfCKvU#rpN^+R#_5p3-{v;d)6h}G8n0!Z`r$F z$M}xTFD~2n&Ovh>tgCcd;y5<%s*IQ+dA9V9N$zc<Uu_yQJZ&L_f<3k<IPhmObPy}r zs7rIvCjj`S=QZ89mcxA%+g8_W2GwU3jPP0A+bda1bf}Tt6oxG-^&XaNf}sdVD^shq zw>eft&3pbx`Q0zcM*HsTxNJ7dx5krP?JAb<ZvNM`=t+d48Bs|FXbUn2sWL`Ysz@Up zwV|mHCir<KCh4<Df7}QiW4MIw3goP4W0my+(493Tk_`<(q4f@f6E^!EDK?^-TScDj zwr>|U_p`OcPaLqh(e58vWMaejoK)22ejXS;)sY&ZL@NF1*R$H&Z96PmTR|<9mjR+O z%*Wd+)m=yC&n-$t4u1?)dcY;ZoQn^tbG5T?yIsD+bkMw>rdeDCRDB>Wwmz*Ispm@M zd@+M$`!Xja4cgH&UxM!YhR-ecZ)2NulWr2e;{k@Zc0hV2hUFt>_idZPP=QGuK@=X3 zw1}P^xvI1nhV9|a1!K;)&7X?M_widvByAil)44KF6sQ>@ngZHqhekn&pa&+Y2OT7y z*!2%S-YY&(lw<&>&%HwXileu`1fJw?Rb2l7h@gJtf~Pg`Vbp#&$ubh}T3~7IM3}nV zRuf*i96Dma)hOCexY$mYNj#R4+mS7#k;qZjP-+ZpggkFt!vY9CHNZ2F7^~pe#}zSb zJ@n>$e~-<^IX<oLY`S)o$9pZoEh+0FTn7>f6^^w8mDg4^)WF+ocwrql(YsY--q{QC zd@4;F9_CxycQ5MWjU;*HNGOpRWI{xF4Kffa)BpjU1u_)EmCbc4lHBz3AV+VK`f~n| zzjBs4pA~M~yn*4cW|j+9xM3_2%1D1;AN->Ab^w(O#LyFuqWTp70F!9Ph6B9#uQl3S zJuh%=&bo;q^L&OC3$}KX!4CABj9O!7{v7mOI_kAq4LvQcnXvqNW4i##E#f&c?aY8W zygSs}#rGtP!mM%(%ERGY$LMj*ZXrUt8#88nl+$oM+Y@e?g&9*a0jcYbdMpc^*HI$k zinMn%i)oF0AS(l%I#W>i<?^OGy@xfzZ)&Oj^|r^n>^By0ty(4-kWC7|jVs}w_G7t( zv`7-TX$^58WT@YAHY?6Mx^8<_>U)d0T-(mctj1JG6JYDg`WLCYO=vM#Y4B)qSE zXzfXM^%&EKa+spqHeJG3ioiT=G*<I75FIr$)w)p8lx92*W5*drW;HxY-w=fTBZI2r z-CkpVA2!`K=LR-|ez5fFHDxw(Xa4|%5kc_y<DuJI0x=`~GWnI|-B)obT$sVG+ioY) z6JNi(oy1+Fk8*s^wQlK36GXU0ENS^_MRUM*eJ<Uqw7Q$h)A@OY4|czPxE-WOEr>OS z<uub%W@KdohM<1m#{uaELxC$Y#rZ<an;5wGKa!!{+~pgBaz^@!!v^e<71WEN;gqaq zMJx%_N)XHqY7fU8-&FL-42W9YCfu$=USR&~m7J?*7F^G8*<&UByN7{Vv^1>(l6rzE zpX1PD<L<8w7v&yheVehr?pTD*aRnM(qjuw)lonB3MRH}gTeeta5=W(xOGe~?bp;`0 zQZgWn>0D;Q*|u5usoc36u_WLK^T&%&{>uCPneFl1%_KH)lk~%Nx)H;Z4L0m_g53a0 zpE?YC*Y$X`2>$@6{Ig#^{{Uxu+laX@rXV(K>YMM|!cWh4y}=x_PjxUw3INkgg%_YX zd@;-K=c9E#FZ2u6Hr5+!ZaD~t_^6Y)cF!xtxyluk$L;AfI$2FX%dJ7{{lgx0*9Nd8 zyWWjGAlr+(zk8@3SZca~o>^r~vN-aoFHdHtiUmT<bg-#joj+wfu@_|cBUg(508S<O zuV4Nu{{U_pD!XOqiS6>dcX3FaL#YP6DAleffmU1|liX8+{{U^4E!yHL)TtyDAo%A` z!v!{LIv0Ha_$6Js+1}aIQk0+ru6ba{K;W|PTw)4u$qJU8B}JglzIdi^A#I7^LP=!$ zGw%bX4?=%nHU9i($g(la=$>3pXyn}Aa$Sdr*<9}T<~Lylq%Sj=<5KS05EcOxRGxri zK6l|@YMg{a;!9NuY&lb1&f#TcVYf5Jtu@7kw309+xMp1}2=FyiO8(4kM|2tceAfYg zZgmlplppgRQM=kDh)s6(`r1F?A!XKABJEu&N{SDiI-Fo`E^998aDcWO_C#g2-8P$Z zHPrFPHlSmJL~H;g)QW-$EORHr<T0BYitr-Ch@m;6_qWn1Ln6S5rZzFg%rYL5Mw)=y zv#6#PD#$}R_@$k??~lFJt={uw%-0QB7TeU~JiugHiZq8H0jQ~93CjRn)uie8qkwEx zso(zBKHzvI-M@0UuEV)(+-z7uC5Gu7`La$B%c|xwp3JfWb;iUvU)=zVd4<lsv%4Q^ z@di)oiwZO3O-C_A@|U+*DHDisd*ie2H{ILaZ#gVmd~G-K>$|w;u#zQ+QLbmU_r1U3 zkh*1(FkGQ6TI0z&j`jlVW3v&1{{WC4u>1qonSf~OxNjr}I`}0{;&ZG0r*?z9{A+A$ zyZ!fLi|VAlX|65pu41=sw(?_bJ335ihDd$dn1rM&23$8zhrABnQlw`_ZBhj49;OWM zT_KAKCydF9wko7-+_r7YWrL4zu<aM<>aS^KxBGG3&n$&fBn%=lhDzrdE081{tB*(i z84@yqm>KH8aphhrCNlp390o5&@=!3_UdsOfe4l&Up&~fLGkfmP!yRaglm7q^fzUH$ zPce@{wq7w2C+=3XXQ)R{cQSKPMWWhn7c3Ex%LipxmEAS3<t!)&QPiC1JkB~g#4X(> z9DH$Z0XVk(oNmo?Zf>KV%F$<*=2#|ZRj2}^i6)J;Elm}4f_wnL)0T#%a(eugbGj{L zNyvVbO|Db6ZoF@Kj?zd)v1ntKG}Ihub@VlAYf+wgk0H|<7Njl=b46K{ZpF_U{L?-k zcHcP77}Of(PDJ?SLF0n4N1t9R)ma+ZgAgJgA0LOu`>@410w$QCEzwIewn(GL#C*q& zBubp5S(lSV8nZkt{4fXO_<Zo-r;MF}#Tc@E4yZhG_==iWJV2_hMJ=WLiqSpRr!}k5 zh}YmjVd61Po(K~VNm7R$x7zQv$t|yMjfAWVT7Lvg@?2^PB6UI}MAAw32w(`HQcf`M zNXAqT$Gf&mB0{ymDLpsMmd9ys8@g?AO7qVY(oZC=E|5lr1R_?Al_GL=n9O8`q1BZ! zh%HKT)(NA~V1H4Ax(YBZ_$HO6__FQ?ZnC?%vk-|PF+948#U(WbkxXV-i5k7KX<E=z zENjZ&rN{?AAE$c0>}dZ06x+Iocbz8PufaC3$Wz~ppi~tAik$LVSFJpJa9nhX3{+Sg zF;0z-XxU@Dv%iOaZL0bksM^|ZX_=$aH6_Qr48OvoiYZZ1TGVHUGNUu0^_qh1!8`kD zCdI@z+l%gWC%oFP5=&X_?IZ}duxg~HIoXskjle1>Nj?gFLmPV;UW-~`Ay7-u<S6Jn zk|vN>o3I~q-HGilbKkie4+YyScI#cfTUi~9(#>gf@iafo>>Z@kCUnYJgo;RFqN*65 zIO@GCb-S@EMp}%p1=!RUG<p!=wn#y8>_{!itJ|8oU+tdK_q&|hw4CE=?ahpdak*~W zpU~Y+Yiidq8_1_iD;t$)uJ=L_VrZnHk%GxW2A>`Nzk6|Ka~m7sD8TwenEwEahNxl# zHUlE!E>$<gZx)-!o*#VEV`uIs815Hf*R|Yg<9XaTmmj*{w=L!GZy|ywlKH}$y~~en z)5UddaW%AYgL$uTVE+KZiIEl4A5iq2-|<APmjK}T<AHXdZ`p8LjkUma3Xv=beqNe0 zHBDHsWk$F+W_$kt-ToW9ZoRhP{ELzCPA4q8rs286wB2r2`(3THOkM6S;EYFW9kfjI zmDLcbXC+UlPuM$|krsBt3U>#`$#ph%-{k-ajA{X?4}(yUNowasCwC6h?Sr&E%G+%F z5zaXWbgp*e1=I2i%X@vBZo0ZzQdEm=+hzK_z(RoOc`hy@d7h#*2n3IX*0$ESJ7Z=q zQ6VY=OgVf<K1$Pi&A<dTX8M5#8e>l8@nc0l&vU@`U5jw%oW4`IUGIW8Zs(d$cKY`1 zR5`TS?29B~3nl&=OYR7xG!3qq{Fis8?)MUfi!sw1Z=?Xwh^Tv#V=YJhEaxU!=GnQ3 z<W-f6xzTez3AS7IklyT1xv-8M%W~VM_vO8bRhq)W(gm7Z<E*StENkq9)%;YcVdK_+ zsmo`%l=tQnghT0!y*f|%N>ULJIf#<v;s{8{TL1w60A4{dKHGau!@Dco9z)$8Te^;Y z&x^H%#_M{^6gIcl7SerfouVbnrRzkj2fD@MS5X{bgf#1axb<1}3l_GUct+mbL`Yi> zNsLI*DR2%RKZ%wy#4Ug2<q?Bp`{D-#>Fz8S8=no`xaHi@asCI!Z$75;Xogv5x}Nb= zNfDk8b`v>Zrda*klm)9J`$6MYucTeN8`O1OtDnRJPf24|p=gi*(jKK`%FIn=gW>g4 zA2I%(oI|wz#@jhB+{MQa+qj!;I~MTVcZyukHva&B4(0C2Yqr|JJ=lfy>qJbq=I!n6 zQQlD_nAHc?T{EQFv9^xmb+~DOBw%hp$(n$~z!2esI6-f2`xk^{#eggyRampTJu5@r z^i`L<pK-Swi;(P{^W9_H_{FC6$l)7S*|zJo+iW&_2%gF-OF;^ccE-*Kl)RK<JcP>Y zu49iV>szaz*|%40!Wv_0z=T6N1>6E2Ku^@gnY8f*_BO!48?p>!U4wwwFwMLC)fD1( zUAngBTdn^9XRL1DY}=-q>wD$<j2cWZPciy?ZKBd(#s;2GLeD5^it1pgO#L2T$o2>F zh}6JF+zW$DW>`C7!G>Ixm!?&I3_khMIeBLw?9`pQi;<1e=XdTt_j7+dQA;GLx9l5z zyRiCAx;dD%mzT^0k0_!d)mPW3o|~rJjjI|29N_FRp?V($n<!kkLt&Y(I$)G}eYXRH zk!-!2-Qa!KaOE-WGh6R6@)l6?-9#g}ybvF53PL26QEnz!%!{Cs4p;3V?nK-of|z)- z_#$O*NadgDg-#vLQ1>=7cQ(h7cUz2X+?#je+;@;)Pq^=UeZ(muZIH(#Tx8st66GNF zS3@)^7!+5588s}6(OUo(r6MuNoP5<Vh^{giIiq1upUrcI=Xki<HqG+iSHHc-e5)?* zWd0G`^q+FkZOA#zK9>hk(yO3SwL6lCxgo<L{{UAX0J?Bs12r-qFNeme2x((ZK{fXI z37#0?nqOT@W{eT)PpN|uLQXfuVgzWqZMg;@1tE7EV&lENw_ZJMxW&C*T)cC`aRRh( z8)tz%xqzi=&d!=i{nEuop@~3issh{ICPIKv@o|!_(cE5*#M~m6Xy4prKtS}Gl0fJ% zYX)W1umKm|BGY)zk^5;WE{j^xThzJyjwfu<Spwr1WRga78RGSFbJ}bq!X&(N8!!YQ zTCoQ)QSs_946g@SQ{1s(=aMJ5*xT7K5SdlF(nJIC1QX-oi(@@V%X2doZv>*el31Cg zF|M`%DIkzM&sv(|k7d?*+6iadB#R#BcL<o<Hj_1Vu>92OKyIKP8g;=s0mW(P6bB`& zck`q&L8z3JhGAZ;D?)tfTrq>!f<^$B;quK3F6S-WLMcF~V%cOf@Sy2TM@E$aXhgVL zMYm0G#4coYr-l)pl%;e<5B#q3-gRieC4EE3r^6BV1cg*R=#Z7K;<<_sdC^s+%Tf?k zK^3KI)ckQoSd<--9f8A+J?RQbq@EOsl|sc_&r%8T{_GM19`&Lk0X)*MzqhfljyM2j zmo@}+TJ-#UFfM~RS0o{{Zb-fZ1Wo;^Ze$R#3VL`~%yq@Wf~b)|wvsel%X+{Eu40}9 z5krZGD%V**veZ=o)Icl0t34a2>M2k~Frwi*q7x>fB#=_QI)1N~Bnn_%Zv^cGfs|?h z5lp%qF&ctqM_w2}XM_;68iA)@?ZX02DUlY^?MVEHr_1!NEWtJitjV2455ycz)xiKz zj=5poNL6@64qY&kTdV0tPP(avOtdtvSdw+LZ0Opft$r9{n-$^k6s8hM?Xhe!e<HZ# zmyx4eqkB<@Vl_%ffLzXzpO!N3UG)eL9_5>Q;}H;vt?k6rl6;+L6s<Hc=|Vc>F)ac( zeyTEnjvuQ3*Zltg@RC`ClFTHQVI;Gr5=nl@8@;M%8Hg~lx@Y(tx>B7^1(&8z#a3xl zUiKg;Sx>u9RzQQ6S@@DL@hQPXf;xH`a|XSCRxLG5YLCHXG?xY#U41IfOAr8{sTuyy zJXB38qUfp9P$^8mLy07YLlL)saFuXIp1F@6nPrB}B=zCjmj3{@-bHb=LYI0NN9{<b zO9!a-%K``uS`Uv*V(#ri=xNh82Zm@{f-=Q2H!pNwO&sd+Fk%@buB9XQO>?N}ji`Pj z<`KgLrLo@Zp76HhkvrS58l;Q;WgqlvA$ppcgIZG*U4)t7YtIiA0~f&+yRlV6J*$~5 zS=dJ-E|$yu!ls6ls08A1omkNDObSSF(bh70(ByDXs<{W@i6p%wkxVj6%sNY8#8csh zWfoo&Qcs=|b%5ud9XeLqE}k2Nkr=D3Xh&Zn2Zmy~U~7?Zhn!p@jTgTE0KpX0Xa}Aq z3u3Hx#TL*>3cXG&bv5j&sQOgY4;&z!XfY&~dTEf)=Y~mnhe>7<OV9~47)dWeF>O5$ z#|-H#AgL;Fu}N<XrWr)40VAbABlR4x#5zb<U*c39M<QFozYIatU2bEZQ|?IlkzCGy zs|XMjU6+cY0(BAr=}#ZW3EeNrddPu	Y2-FOC`01Co$7nKvQBZ!K)#`hj(GXdPKe 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�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 z%0D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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/high.gif b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/high.gif deleted file mode 100755 index ccf5d16406affa995e112c72930b67f2d7c75278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4053 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/huge.gif b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/huge.gif deleted file mode 100755 index 5b3102e97ad0923b6a1a679d702a95b5e8441402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7006 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 WKG!D?4)p(Wx=Ej6WBbiFXa5f+NG!7e diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/wide.gif b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/fullscreen/wide.gif deleted file mode 100755 index f17c5b8070369c47c3071b2d16661363bc85083f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4053 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/flash-logo.png b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/flash-logo.png deleted file mode 100755 index 4b81e0042d146e020d865b155d87270ecef23b72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6410 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 Y2n|`7V^j6wTmS$707*qoM6N<$f<9^?1poj5 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/quicktime-logo.gif b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/quicktime-logo.gif deleted file mode 100755 index b6a20ef0e29bd7f46d43af1911dbc9fe23bafdae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8769 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 R{)0x*^l;Z4U;}{b{{gdBcV7Si diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_1.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_1.jpg deleted file mode 100755 index 8c4e865d9aa95930b460dc1d5270ba2d8c36f623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3002 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 Kug|{NWBdo&Gl0SX diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_2.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_2.jpg deleted file mode 100755 index 7f427c6a49033838ac22567d6a6379996e45f87e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2379 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 T?M}>Gm}~v^wjyC(fj9OShFChm diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_3.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_3.jpg deleted file mode 100755 index 91b774afb1142a2227c535387d6485fec61045c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1937 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_4.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_4.jpg deleted file mode 100755 index 9781430d862a169d7bdff46e16e35d33fc9ed592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3341 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 diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_5.jpg b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/images/thumbnails/t_5.jpg deleted file mode 100755 index 7c1695272fdfaacff246edcdf28fdf18cc71dabc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2534 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 GO#KN3_*H)Z diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/index.html b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/index.html deleted file mode 100755 index de352939..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/index.html +++ /dev/null @@ -1,236 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>jQuery lightbox clone - prettyPhoto - by Stephane Caron</title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script> - <!--script src="js/jquery.lint.js" type="text/javascript" charset="utf-8"></script--> - <link rel="stylesheet" href="css/prettyPhoto.css" type="text/css" media="screen" title="prettyPhoto main stylesheet" charset="utf-8" /> - <script src="js/jquery.prettyPhoto.js" type="text/javascript" charset="utf-8"></script> - - <style type="text/css" media="screen"> - * { margin: 0; padding: 0; } - - body { - background: #282828; - font: 62.5%/1.2 Arial, Verdana, Sans-Serif; - padding: 0 20px; - } - - h1 { font-family: Georgia; font-style: italic; margin-bottom: 10px; } - - h2 { - font-family: Georgia; - font-style: italic; - margin: 25px 0 5px 0; - } - - p { font-size: 1.2em; } - - ul li { display: inline; } - - .wide { - border-bottom: 1px #000 solid; - width: 4000px; - } - - .fleft { float: left; margin: 0 20px 0 0; } - - .cboth { clear: both; } - - #main { - background: #fff; - margin: 0 auto; - padding: 30px; - width: 1000px; - } - </style> - </head> - <body> - <div id="main"> - <h1>prettyPhoto</h1> - - <p>This page has been made for testing purpose only. It covers all the basic things you can handle in prettyPhoto.</p> - - <p>For complete documentation, please refer to the official website: <a href="http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/">http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/</a></p> - - <h2>Gallery</h2> - <ul class="gallery clearfix"> - <li><a href="images/fullscreen/1.JPG?lol=lol" rel="prettyPhoto[gallery1]" title="You can add caption to pictures. You can add caption to pictures. You can add caption to pictures."><img src="images/thumbnails/t_1.jpg" width="60" height="60" alt="Red round shape" /></a></li> - <li><a href="images/fullscreen/2.jpg" rel="prettyPhoto[gallery1]"><img src="images/thumbnails/t_2.jpg" width="60" height="60" alt="Nice building" /></a></li> - <li><a href="images/fullscreen/3.jpg" rel="prettyPhoto[gallery1]"><img src="images/thumbnails/t_3.jpg" width="60" height="60" alt="Fire!" /></a></li> - <li><a href="images/fullscreen/4.jpg" rel="prettyPhoto[gallery1]"><img src="images/thumbnails/t_4.jpg" width="60" height="60" alt="Rock climbing" /></a></li> - <li><a href="images/fullscreen/5.jpg" rel="prettyPhoto[gallery1]"><img src="images/thumbnails/t_5.jpg" width="60" height="60" alt="Fly kite, fly!" /></a></li> - <li><a href="images/fullscreen/6.jpg" rel="prettyPhoto[gallery1]"><img src="images/thumbnails/t_2.jpg" width="60" height="60" alt="Nice building" /></a></li> - </ul> - - <h2>Gallery 2</h2> - <ul class="gallery clearfix"> - <li><a href="images/fullscreen/3.jpg" rel="prettyPhoto[gallery2]" title="How is the description on that one? How is the description on that one? How is the description on that one? "><img src="images/thumbnails/t_3.jpg" width="60" height="60" alt="This is a pretty long title" /></a></li> - <li><a href="images/fullscreen/4.jpg" rel="prettyPhoto[gallery2]" title="Description on a single line."><img src="images/thumbnails/t_4.jpg" width="60" height="60" alt="" /></a></li> - <li><a href="images/fullscreen/5.jpg" rel="prettyPhoto[gallery2]"><img src="images/thumbnails/t_5.jpg" width="60" height="60" alt="" /></a></li> - <li><a href="images/fullscreen/1.jpg" rel="prettyPhoto[gallery2]"><img src="images/thumbnails/t_1.jpg" width="60" height="60" alt="" /></a></li> - <li><a href="images/fullscreen/2.jpg" rel="prettyPhoto[gallery2]"><img src="images/thumbnails/t_2.jpg" width="60" height="60" alt="" /></a></li> - </ul> - - <h2>API Call</h2> - <script type="text/javascript" charset="utf-8"> - api_gallery=['images/fullscreen/1.JPG','images/fullscreen/2.jpg','images/fullscreen/3.JPG']; - api_titles=['API Call Image 1','API Call Image 2','API Call Image 3']; - api_descriptions=['Description 1','Description 2','Description 3']; - </script> - <p><a href="#" onclick="$.prettyPhoto.open(api_gallery,api_titles,api_descriptions); return false">API call</a></p> - - <h2>Picture alone</h2> - <ul class="gallery clearfix"> - <li><a href="images/fullscreen/2.jpg" rel="prettyPhoto" title="<a href='http://www.google.ca' target='_blank' >This will open Google.com in a new window</a>"><img src="images/thumbnails/t_2.jpg" width="60" height="60" alt="Picture alone 1" /></a></li> - </ul> - <div class="fleft"> - <h2>Flash</h2> - <ul class="gallery clearfix"> - <li><a href="http://www.adobe.com/products/flashplayer/include/marquee/design.swf?width=792&height=294" rel="prettyPhoto[flash]" title="Flash 10 demo"><img src="images/thumbnails/flash-logo.png" width="60" alt="Flash 10 demo" /></a></li> - </ul> - </div> - <div class="fleft"> - <h2>YouTube</h2> - <ul class="gallery clearfix"> - <li><a href="http://www.youtube.com/watch?v=kh29_SERH0Y?rel=0" rel="prettyPhoto" title="YouTube demo"><img src="images/thumbnails/flash-logo.png" width="60" alt="" /></a></li> - <li><a href="http://youtu.be/kh29_SERH0Y?rel=0" rel="prettyPhoto" title="YouTube demo"><img src="images/thumbnails/flash-logo.png" width="60" alt="" /></a></li> - </ul> - </div> - <div class="fleft"> - <h2>Vimeo</h2> - <ul class="gallery clearfix"> - <li><a href="http://vimeo.com/7874398&width=700" rel="prettyPhoto" title="Vimeo video"><img src="images/thumbnails/flash-logo.png" width="60" alt="VIMEO!" /></a></li> - </ul> - </div> - - <br class="cboth" /> - - <h2>Movies (.mov)</h2> - <ul class="gallery clearfix"> - <li><a href="http://trailers.apple.com/movies/disney/tronlegacy/tronlegacy-tsr1_r640s.mov?width=640&height=272" rel="prettyPhoto[movies]" title="Tron!"><img src="images/thumbnails/quicktime-logo.gif" alt="Tron teaser" width="60" /></a></li> - <li><a href="http://trailers.apple.com/movies/sony_pictures/karatekid/karatekid-tlr3_r640s.mov?width=640&height=304" rel="prettyPhoto[movies]" title="The Karate Kid"><img src="images/thumbnails/quicktime-logo.gif" alt="The Karate Kid" width="60" /></a></li> - <li><a href="http://trailers.apple.com/movies/paramount/shutterisland/shutterisland-tvspot1_r640s.mov?width=640&height=272" rel="prettyPhoto[movies]" title="Shutter Island"><img src="images/thumbnails/quicktime-logo.gif" alt="Shutter Island" width="60" /></a></li> - </ul> - - <h2>Movies (.mov) alone</h2> - <ul class="gallery clearfix"> - <li><a href="http://trailers.apple.com/movies/disney/tronlegacy/tronlegacy-tsr1_r640s.mov?width=640&height=272" rel="prettyPhoto" title="Tron!"><img src="images/thumbnails/quicktime-logo.gif" alt="Tron teaser" width="60" /></a></li> - </ul> - - <h2>Unusual sizes</h2> - <ul class="gallery clearfix"> - <li><a href="images/fullscreen/wide.gif" rel="prettyPhoto[unusual]">Wide image (3000 x 1500)</a></li> - <li><a href="images/fullscreen/high.gif" rel="prettyPhoto[unusual]">High image (1500 x 3000)</a></li> - <li><a href="images/fullscreen/huge.gif" rel="prettyPhoto[unusual]">Huge image (3000 x 3000)</a></li> - </ul> - - <h2>Iframe</h2> - <ul class="gallery clearfix"> - <li><a href="http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=prettyphoto&iframe=true&width=100%&height=100%" rel="prettyPhoto[iframe]">Google.ca</a></li> - <li><a href="http://www.facebook.com?iframe=true&width=600&height=300" rel="prettyPhoto[iframe]">Facebook</a></li> - <li><a href="http://nmfe.co?iframe=true&width=300&height=200" rel="prettyPhoto[iframe]">My site</a></li> - </ul> - - <h2>AJAX</h2> - <ul class="gallery clearfix"> - <li><a href="xhr_response.html?ajax=true&width=400&height=160" rel="prettyPhoto[ajax]">Sample AJAX</a></li> - </ul> - - <h2>Mixed gallery</h2> - <ul class="gallery clearfix"> - <li><a href="http://www.google.ca?iframe=true&width=1000&height=500" rel="prettyPhoto[mixed]">Google.ca</a></li> - <li><a href="http://trailers.apple.com/movies/disney/tronlegacy/tronlegacy-tsr1_r640s.mov?width=640&height=272" rel="prettyPhoto[mixed]" title="Tron!"><img src="images/thumbnails/quicktime-logo.gif" alt="Tron teaser" width="60" /></a></li> - <li><a href="images/fullscreen/5.jpg" rel="prettyPhoto[mixed]"><img src="images/thumbnails/t_5.jpg" width="60" height="60" alt="" /></a></li> - <li><a href="http://www.adobe.com/products/flashplayer/include/marquee/design.swf?width=792&height=294" rel="prettyPhoto[mixed]" title="Flash 10 demo"><img src="images/thumbnails/flash-logo.png" width="60" alt="Flash 10 demo" /></a></li> - </ul> - - <h2>Inline content</h2> - <ul class="gallery clearfix"> - <li><a href="#inline_demo" rel="prettyPhoto[inline]">Inline content 1</a></li> - <li><a href="#inline_demo2" rel="prettyPhoto[inline]">Inline content 2</a></li> - <li><a href="#inline_demo3" rel="prettyPhoto[inline]">Inline content 3</a></li> - </ul> - <div id="inline_demo" style="display:none;"> - <p><a href="http://www.google.ca?iframe=true&width=1000&height=500">Google.ca</a></p> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - </div> - <div id="inline_demo2" style="display:none;"> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - </div> - <div id="inline_demo3" style="display:none;"> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> - <p><img src="images/fullscreen/2.jpg" /></p> - </div> - - <h2>Custom content</h2> - <ul id="custom_content" class="gallery clearfix"> - <li><a href="#?custom=true&width=260&height=270" rel="prettyPhoto">Google Maps</a></li> - <li><a href="#?custom=true&width=260&height=400" rel="prettyPhoto">Ads</a></li> - </ul> - - <br /><br /> - - <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/_HOMoTqEASY&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="opaque"></param><embed src="http://www.youtube.com/v/_HOMoTqEASY&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344" wmode="opaque"></embed></object> - <iframe title="YouTube video player" width="425" height="344" src="http://www.youtube.com/embed/_HOMoTqEASY" frameborder="0" allowfullscreen></iframe> - - <script type="text/javascript" charset="utf-8"> - $(document).ready(function(){ - $("area[rel^='prettyPhoto']").prettyPhoto(); - - $(".gallery:first a[rel^='prettyPhoto']").prettyPhoto({animation_speed:'normal',theme:'light_square',slideshow:3000, autoplay_slideshow: true}); - $(".gallery:gt(0) a[rel^='prettyPhoto']").prettyPhoto({animation_speed:'fast',slideshow:10000, hideflash: true}); - - $("#custom_content a[rel^='prettyPhoto']:first").prettyPhoto({ - custom_markup: '<div id="map_canvas" style="width:260px; height:265px"></div>', - changepicturecallback: function(){ initialize(); } - }); - - $("#custom_content a[rel^='prettyPhoto']:last").prettyPhoto({ - custom_markup: '<div id="bsap_1259344" class="bsarocks bsap_d49a0984d0f377271ccbf01a33f2b6d6"></div><div id="bsap_1237859" class="bsarocks bsap_d49a0984d0f377271ccbf01a33f2b6d6" style="height:260px"></div><div id="bsap_1251710" class="bsarocks bsap_d49a0984d0f377271ccbf01a33f2b6d6"></div>', - changepicturecallback: function(){ _bsap.exec(); } - }); - }); - </script> - - <!-- Google Maps Code --> - <script type="text/javascript" - src="http://maps.google.com/maps/api/js?sensor=true"> - </script> - <script type="text/javascript"> - function initialize() { - var latlng = new google.maps.LatLng(-34.397, 150.644); - var myOptions = { - zoom: 8, - center: latlng, - mapTypeId: google.maps.MapTypeId.ROADMAP - }; - var map = new google.maps.Map(document.getElementById("map_canvas"), - myOptions); - } - - </script> - <!-- END Google Maps Code --> - - <!-- BuySellAds.com Ad Code --> - <style type="text/css" media="screen"> - .bsap a { float: left; } - </style> - <script type="text/javascript"> - (function(){ - var bsa = document.createElement('script'); - bsa.type = 'text/javascript'; - bsa.async = true; - bsa.src = '//s3.buysellads.com/ac/bsa.js'; - (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa); - })(); - </script> - <!-- END BuySellAds.com Ad Code --> - </div> - </body> -</html> \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.3.2.min.js b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.3.2.min.js deleted file mode 100755 index b1ae21d8..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.3.2.min.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.3 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.4.4.min.js b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.4.4.min.js deleted file mode 100644 index 2bd4cbb8..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.4.4.min.js +++ /dev/null @@ -1,167 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.4 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Nov 11 19:04:53 2010 -0500 - */ -(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= -h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"|| -h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--; -if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z], -z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j, -s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v= -s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)|| -[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u, -false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this, -a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e= -c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, -a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan", -colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType=== -1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "), -l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this, -"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r= -a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b= -w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), -fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| -d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this, -Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp= -c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U}; -var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!== -"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V, -xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d, -a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d= -1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d=== -"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}}); -c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i, -[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*")); -return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!== -B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, -POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()=== -i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m= -i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g, -"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n=== -"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1; -for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"), -i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML; -c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})}, -not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1, -"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d= -c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a, -b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")): -this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay", -d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b, -d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=== -"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L|| -1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a=== -b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&& -h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle; -for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+= -parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px", -height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells= -f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a, -"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.6.1.min.js b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.6.1.min.js deleted file mode 100644 index eb6a5969..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.6.1.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu May 12 15:04:36 2011 -0400 - */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem -)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/xhr_response.html b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/xhr_response.html deleted file mode 100644 index 84490c8b..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/xhr_response.html +++ /dev/null @@ -1,5 +0,0 @@ -<h1>This is an XHR Response</h1> -<div id="my_content"> - <p>This is sample content brought in.</p> - <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> -</div> \ No newline at end of file diff --git a/mamweb/static/js/jquery.prettyPhoto.js b/mamweb/static/js/jquery.prettyPhoto.js deleted file mode 100644 index 0436a493..00000000 --- a/mamweb/static/js/jquery.prettyPhoto.js +++ /dev/null @@ -1,911 +0,0 @@ -/* ------------------------------------------------------------------------ - Class: prettyPhoto - Use: Lightbox clone for jQuery - Author: Stephane Caron (http://www.no-margin-for-errors.com) - Version: 3.1.5 -------------------------------------------------------------------------- */ -(function($) { - $.prettyPhoto = {version: '3.1.5'}; - - $.fn.prettyPhoto = function(pp_settings) { - pp_settings = jQuery.extend({ - hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */ - animation_speed: 'fast', /* fast/slow/normal */ - ajaxcallback: function() {}, - slideshow: 5000, /* false OR interval time in ms */ - autoplay_slideshow: false, /* true/false */ - opacity: 0.80, /* Value between 0 and 1 */ - show_title: true, /* true/false */ - allow_resize: true, /* Resize the photos bigger than viewport. true/false */ - allow_expand: true, /* Allow the user to expand a resized image. true/false */ - default_width: 500, - default_height: 344, - counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */ - theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */ - horizontal_padding: 20, /* The padding on each side of the picture */ - hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */ - wmode: 'opaque', /* Set the flash wmode attribute */ - autoplay: true, /* Automatically start videos: True/False */ - modal: false, /* If set to true, only the close button will close the window */ - deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */ - overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */ - overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */ - keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */ - changepicturecallback: function(){}, /* Called everytime an item is shown/changed */ - callback: function(){}, /* Called when prettyPhoto is closed */ - ie6_fallback: true, - markup: '<div class="pp_pic_holder"> \ - <div class="ppt"> </div> \ - <div class="pp_top"> \ - <div class="pp_left"></div> \ - <div class="pp_middle"></div> \ - <div class="pp_right"></div> \ - </div> \ - <div class="pp_content_container"> \ - <div class="pp_left"> \ - <div class="pp_right"> \ - <div class="pp_content"> \ - <div class="pp_loaderIcon"></div> \ - <div class="pp_fade"> \ - <a href="#" class="pp_expand" title="Expand the image">Expand</a> \ - <div class="pp_hoverContainer"> \ - <a class="pp_next" href="#">next</a> \ - <a class="pp_previous" href="#">previous</a> \ - </div> \ - <div id="pp_full_res"></div> \ - <div class="pp_details"> \ - <div class="pp_nav"> \ - <a href="#" class="pp_arrow_previous">Previous</a> \ - <p class="currentTextHolder">0/0</p> \ - <a href="#" class="pp_arrow_next">Next</a> \ - </div> \ - <p class="pp_description"></p> \ - <div class="pp_social">{pp_social}</div> \ - <a class="pp_close" href="#">Close</a> \ - </div> \ - </div> \ - </div> \ - </div> \ - </div> \ - </div> \ - <div class="pp_bottom"> \ - <div class="pp_left"></div> \ - <div class="pp_middle"></div> \ - <div class="pp_right"></div> \ - </div> \ - </div> \ - <div class="pp_overlay"></div>', - gallery_markup: '<div class="pp_gallery"> \ - <a href="#" class="pp_arrow_previous">Previous</a> \ - <div> \ - <ul> \ - {gallery} \ - </ul> \ - </div> \ - <a href="#" class="pp_arrow_next">Next</a> \ - </div>', - image_markup: '<img id="fullResImage" src="{path}" />', - flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>', - quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>', - iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>', - inline_markup: '<div class="pp_inline">{content}</div>', - custom_markup: '', - social_tools: '<div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&href={location_href}&layout=button_count&show_faces=true&width=500&action=like&font&colorscheme=light&height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div>' /* html or false to disable */ - }, pp_settings); - - // Global variables accessible only by prettyPhoto - var matchedObjects = this, percentBased = false, pp_dimensions, pp_open, - - // prettyPhoto container specific - pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth, - - // Window size - windowHeight = $(window).height(), windowWidth = $(window).width(), - - // Global elements - pp_slideshow; - - doresize = true, scroll_pos = _get_scroll(); - - // Window/Keyboard events - $(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); }); - - if(pp_settings.keyboard_shortcuts) { - $(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){ - if(typeof $pp_pic_holder != 'undefined'){ - if($pp_pic_holder.is(':visible')){ - switch(e.keyCode){ - case 37: - $.prettyPhoto.changePage('previous'); - e.preventDefault(); - break; - case 39: - $.prettyPhoto.changePage('next'); - e.preventDefault(); - break; - case 27: - if(!settings.modal) - $.prettyPhoto.close(); - e.preventDefault(); - break; - }; - // return false; - }; - }; - }); - }; - - /** - * Initialize prettyPhoto. - */ - $.prettyPhoto.initialize = function() { - - settings = pp_settings; - - if(settings.theme == 'pp_default') settings.horizontal_padding = 16; - - // Find out if the picture is part of a set - theRel = $(this).attr(settings.hook); - galleryRegExp = /\[(?:.*)\]/; - isSet = (galleryRegExp.exec(theRel)) ? true : false; - - // Put the SRCs, TITLEs, ALTs into an array. - pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href')); - pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt')); - pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title')); - - if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false; - - set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned - rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this)); - - _build_overlay(this); // Build the overlay {this} being the caller - - if(settings.allow_resize) - $(window).bind('scroll.prettyphoto',function(){ _center_overlay(); }); - - - $.prettyPhoto.open(); - - return false; - } - - - /** - * Opens the prettyPhoto modal box. - * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths. - * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles. - * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions. - */ - $.prettyPhoto.open = function(event) { - if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables - settings = pp_settings; - pp_images = $.makeArray(arguments[0]); - pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray(""); - pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray(""); - isSet = (pp_images.length > 1) ? true : false; - set_position = (arguments[3])? arguments[3]: 0; - _build_overlay(event.target); // Build the overlay {this} being the caller - } - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash - - _checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images. - - $('.pp_loaderIcon').show(); - - if(settings.deeplinking) - setHashtag(); - - // Rebuild Facebook Like Button with updated href - if(settings.social_tools){ - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - $pp_pic_holder.find('.pp_social').html(facebook_like_link); - } - - // Fade the content in - if($ppt.is(':hidden')) $ppt.css('opacity',0).show(); - $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity); - - // Display the current position - $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size()); - - // Set the description - if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){ - $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position])); - }else{ - $pp_pic_holder.find('.pp_description').hide(); - } - - // Get the dimensions - movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString(); - movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString(); - - // If the size is % based, calculate according to window dimensions - percentBased=false; - if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; } - if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; } - - // Fade the holder - $pp_pic_holder.fadeIn(function(){ - // Set the title - (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html(' '); - - imgPreloader = ""; - skipInjection = false; - - // Inject the proper content - switch(_getFileType(pp_images[set_position])){ - case 'image': - imgPreloader = new Image(); - - // Preload the neighbour images - nextImage = new Image(); - if(isSet && set_position < $(pp_images).size() -1) nextImage.src = pp_images[set_position + 1]; - prevImage = new Image(); - if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1]; - - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]); - - imgPreloader.onload = function(){ - // Fit item to viewport - pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height); - - _showContent(); - }; - - imgPreloader.onerror = function(){ - alert('Image cannot be loaded. Make sure the path is correct and image exist.'); - $.prettyPhoto.close(); - }; - - imgPreloader.src = pp_images[set_position]; - break; - - case 'youtube': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - // Regular youtube link - movie_id = getParam('v',pp_images[set_position]); - - // youtu.be link - if(movie_id == ""){ - movie_id = pp_images[set_position].split('youtu.be/'); - movie_id = movie_id[1]; - if(movie_id.indexOf('?') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ? - - if(movie_id.indexOf('&') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the & - } - - movie = 'http://www.youtube.com/embed/'+movie_id; - (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1"; - - if(settings.autoplay) movie += "&autoplay=1"; - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie); - break; - - case 'vimeo': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - movie_id = pp_images[set_position]; - var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/; - var match = movie_id.match(regExp); - - movie = 'http://player.vimeo.com/video/'+ match[3] +'?title=0&byline=0&portrait=0'; - if(settings.autoplay) movie += "&autoplay=1;"; - - vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width']; - - toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie); - break; - - case 'quicktime': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar - - toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay); - break; - - case 'flash': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - flash_vars = pp_images[set_position]; - flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length); - - filename = pp_images[set_position]; - filename = filename.substring(0,filename.indexOf('?')); - - toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars); - break; - - case 'iframe': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - frame_url = pp_images[set_position]; - frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1); - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url); - break; - - case 'ajax': - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport(movie_width,movie_height); - doresize = true; // Reset the dimensions - - skipInjection = true; - $.get(pp_images[set_position],function(responseHTML){ - toInject = settings.inline_markup.replace(/{content}/g,responseHTML); - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - _showContent(); - }); - - break; - - case 'custom': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - toInject = settings.custom_markup; - break; - - case 'inline': - // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete - myClone = $(pp_images[set_position]).clone().append('<br clear="all" />').css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo($('body')).show(); - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height()); - doresize = true; // Reset the dimensions - $(myClone).remove(); - toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html()); - break; - }; - - if(!imgPreloader && !skipInjection){ - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - - // Show content - _showContent(); - }; - }); - - return false; - }; - - - /** - * Change page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changePage = function(direction){ - currentGalleryPage = 0; - - if(direction == 'previous') { - set_position--; - if (set_position < 0) set_position = $(pp_images).size()-1; - }else if(direction == 'next'){ - set_position++; - if(set_position > $(pp_images).size()-1) set_position = 0; - }else{ - set_position=direction; - }; - - rel_index = set_position; - - if(!doresize) doresize = true; // Allow the resizing of the images - if(settings.allow_expand) { - $('.pp_contract').removeClass('pp_contract').addClass('pp_expand'); - } - - _hideContent(function(){ $.prettyPhoto.open(); }); - }; - - - /** - * Change gallery page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changeGalleryPage = function(direction){ - if(direction=='next'){ - currentGalleryPage ++; - - if(currentGalleryPage > totalPage) currentGalleryPage = 0; - }else if(direction=='previous'){ - currentGalleryPage --; - - if(currentGalleryPage < 0) currentGalleryPage = totalPage; - }else{ - currentGalleryPage = direction; - }; - - slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0; - - slide_to = currentGalleryPage * (itemsPerPage * itemWidth); - - $pp_gallery.find('ul').animate({left:-slide_to},slide_speed); - }; - - - /** - * Start the slideshow... - */ - $.prettyPhoto.startSlideshow = function(){ - if(typeof pp_slideshow == 'undefined'){ - $pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){ - $.prettyPhoto.stopSlideshow(); - return false; - }); - pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow); - }else{ - $.prettyPhoto.changePage('next'); - }; - } - - - /** - * Stop the slideshow... - */ - $.prettyPhoto.stopSlideshow = function(){ - $pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - clearInterval(pp_slideshow); - pp_slideshow=undefined; - } - - - /** - * Closes prettyPhoto. - */ - $.prettyPhoto.close = function(){ - if($pp_overlay.is(":animated")) return; - - $.prettyPhoto.stopSlideshow(); - - $pp_pic_holder.stop().find('object,embed').css('visibility','hidden'); - - $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); }); - - $pp_overlay.fadeOut(settings.animation_speed, function(){ - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash - - $(this).remove(); // No more need for the prettyPhoto markup - - $(window).unbind('scroll.prettyphoto'); - - clearHashtag(); - - settings.callback(); - - doresize = true; - - pp_open = false; - - delete settings; - }); - }; - - /** - * Set the proper sizes on the containers and animate the content in. - */ - function _showContent(){ - $('.pp_loaderIcon').hide(); - - // Calculate the opened top position of the pic holder - projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2)); - if(projectedTop < 0) projectedTop = 0; - - $ppt.fadeTo(settings.animation_speed,1); - - // Resize the content holder - $pp_pic_holder.find('.pp_content') - .animate({ - height:pp_dimensions['contentHeight'], - width:pp_dimensions['contentWidth'] - },settings.animation_speed); - - // Resize picture the holder - $pp_pic_holder.animate({ - 'top': projectedTop, - 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2), - width:pp_dimensions['containerWidth'] - },settings.animation_speed,function(){ - $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']); - - $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content - - // Show the nav - if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); } - - if(settings.allow_expand) { - if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized - $('a.pp_expand,a.pp_contract').show(); - }else{ - $('a.pp_expand').hide(); - } - } - - if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow(); - - settings.changepicturecallback(); // Callback! - - pp_open = true; - }); - - _insert_gallery(); - pp_settings.ajaxcallback(); - }; - - /** - * Hide the content...DUH! - */ - function _hideContent(callback){ - // Fade out the current picture - $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden'); - $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){ - $('.pp_loaderIcon').show(); - - callback(); - }); - }; - - /** - * Check the item position in the gallery array, hide or show the navigation links - * @param setCount {integer} The total number of items in the set - */ - function _checkPosition(setCount){ - (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set. - }; - - /** - * Resize the item dimensions if it's bigger than the viewport - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - * @return An array containin the "fitted" dimensions - */ - function _fitToViewport(width,height){ - resized = false; - - _getDimensions(width,height); - - // Define them in case there's no resize needed - imageWidth = width, imageHeight = height; - - if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) { - resized = true, fitting = false; - - while (!fitting){ - if((pp_containerWidth > windowWidth)){ - imageWidth = (windowWidth - 200); - imageHeight = (height/width) * imageWidth; - }else if((pp_containerHeight > windowHeight)){ - imageHeight = (windowHeight - 200); - imageWidth = (width/height) * imageHeight; - }else{ - fitting = true; - }; - - pp_containerHeight = imageHeight, pp_containerWidth = imageWidth; - }; - - - - if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){ - _fitToViewport(pp_containerWidth,pp_containerHeight) - }; - - _getDimensions(imageWidth,imageHeight); - }; - - return { - width:Math.floor(imageWidth), - height:Math.floor(imageHeight), - containerHeight:Math.floor(pp_containerHeight), - containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2), - contentHeight:Math.floor(pp_contentHeight), - contentWidth:Math.floor(pp_contentWidth), - resized:resized - }; - }; - - /** - * Get the containers dimensions according to the item size - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - */ - function _getDimensions(width,height){ - width = parseFloat(width); - height = parseFloat(height); - - // Get the details height, to do so, I need to clone it since it's invisible - $pp_details = $pp_pic_holder.find('.pp_details'); - $pp_details.width(width); - detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom')); - - $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - detailsHeight += $pp_details.height(); - detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details - $pp_details.remove(); - - // Get the titles height, to do so, I need to clone it since it's invisible - $pp_title = $pp_pic_holder.find('.ppt'); - $pp_title.width(width); - titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom')); - $pp_title = $pp_title.clone().appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - titleHeight += $pp_title.height(); - $pp_title.remove(); - - // Get the container size, to resize the holder to the right dimensions - pp_contentHeight = height + detailsHeight; - pp_contentWidth = width; - pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height(); - pp_containerWidth = width; - } - - function _getFileType(itemSrc){ - if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) { - return 'youtube'; - }else if (itemSrc.match(/vimeo\.com/i)) { - return 'vimeo'; - }else if(itemSrc.match(/\b.mov\b/i)){ - return 'quicktime'; - }else if(itemSrc.match(/\b.swf\b/i)){ - return 'flash'; - }else if(itemSrc.match(/\biframe=true\b/i)){ - return 'iframe'; - }else if(itemSrc.match(/\bajax=true\b/i)){ - return 'ajax'; - }else if(itemSrc.match(/\bcustom=true\b/i)){ - return 'custom'; - }else if(itemSrc.substr(0,1) == '#'){ - return 'inline'; - }else{ - return 'image'; - }; - }; - - function _center_overlay(){ - if(doresize && typeof $pp_pic_holder != 'undefined') { - scroll_pos = _get_scroll(); - contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width(); - - projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2); - if(projectedTop < 0) projectedTop = 0; - - if(contentHeight > windowHeight) - return; - - $pp_pic_holder.css({ - 'top': projectedTop, - 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2) - }); - }; - }; - - function _get_scroll(){ - if (self.pageYOffset) { - return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}; - } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict - return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}; - } else if (document.body) {// all other Explorers - return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}; - }; - }; - - function _resize_overlay() { - windowHeight = $(window).height(), windowWidth = $(window).width(); - - if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth); - }; - - function _insert_gallery(){ - if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") { - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme - - itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth); - itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length; - totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1; - - // Hide the nav in the case there's no need for links - if(totalPage == 0){ - navWidth = 0; // No nav means no width! - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide(); - }else{ - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show(); - }; - - galleryWidth = itemsPerPage * itemWidth; - fullGalleryWidth = pp_images.length * itemWidth; - - // Set the proper width to the gallery items - $pp_gallery - .css('margin-left',-((galleryWidth/2) + (navWidth/2))) - .find('div:first').width(galleryWidth+5) - .find('ul').width(fullGalleryWidth) - .find('li.selected').removeClass('selected'); - - goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage; - - $.prettyPhoto.changeGalleryPage(goToPage); - - $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected'); - }else{ - $pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave'); - // $pp_gallery.hide(); - } - } - - function _build_overlay(caller){ - // Inject Social Tool markup into General markup - if(settings.social_tools) - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - - settings.markup = settings.markup.replace('{pp_social}',''); - - $('body').append(settings.markup); // Inject the markup - - $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors - - // Inject the inline gallery! - if(isSet && settings.overlay_gallery) { - currentGalleryPage = 0; - toInject = ""; - for (var i=0; i < pp_images.length; i++) { - if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){ - classname = 'default'; - img_src = ''; - }else{ - classname = ''; - img_src = pp_images[i]; - } - toInject += "<li class='"+classname+"'><a href='#'><img src='" + img_src + "' width='50' alt='' /></a></li>"; - }; - - toInject = settings.gallery_markup.replace(/{gallery}/g,toInject); - - $pp_pic_holder.find('#pp_full_res').after(toInject); - - $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors - - $pp_gallery.find('.pp_arrow_next').click(function(){ - $.prettyPhoto.changeGalleryPage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_gallery.find('.pp_arrow_previous').click(function(){ - $.prettyPhoto.changeGalleryPage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_content').hover( - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn(); - }, - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut(); - }); - - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - $pp_gallery_li.each(function(i){ - $(this) - .find('a') - .click(function(){ - $.prettyPhoto.changePage(i); - $.prettyPhoto.stopSlideshow(); - return false; - }); - }); - }; - - - // Inject the play/pause if it's a slideshow - if(settings.slideshow){ - $pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>') - $pp_pic_holder.find('.pp_nav .pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - } - - $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme - - $pp_overlay - .css({ - 'opacity':0, - 'height':$(document).height(), - 'width':$(window).width() - }) - .bind('click',function(){ - if(!settings.modal) $.prettyPhoto.close(); - }); - - $('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; }); - - - if(settings.allow_expand) { - $('a.pp_expand').bind('click',function(e){ - // Expand the image - if($(this).hasClass('pp_expand')){ - $(this).removeClass('pp_expand').addClass('pp_contract'); - doresize = false; - }else{ - $(this).removeClass('pp_contract').addClass('pp_expand'); - doresize = true; - }; - - _hideContent(function(){ $.prettyPhoto.open(); }); - - return false; - }); - } - - $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){ - $.prettyPhoto.changePage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){ - $.prettyPhoto.changePage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - _center_overlay(); // Center it - }; - - if(!pp_alreadyInitialized && getHashtag()){ - pp_alreadyInitialized = true; - - // Grab the rel index to trigger the click on the correct element - hashIndex = getHashtag(); - hashRel = hashIndex; - hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1); - hashRel = hashRel.substring(0,hashRel.indexOf('/')); - - // Little timeout to make sure all the prettyPhoto initialize scripts has been run. - // Useful in the event the page contain several init scripts. - setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50); - } - - return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once - }; - - function getHashtag(){ - var url = location.href; - hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false; - - return hashtag; - }; - - function setHashtag(){ - if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API - location.hash = theRel + '/'+rel_index+'/'; - }; - - function clearHashtag(){ - if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto"; - } - - function getParam(name,url){ - name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); - var regexS = "[\\?&]"+name+"=([^&#]*)"; - var regex = new RegExp( regexS ); - var results = regex.exec( url ); - return ( results == null ) ? "" : results[1]; - } - -})(jQuery); - -var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times. diff --git a/mamweb/static/css/prettyPhoto.css b/mamweb/static/prettyPhoto/css/prettyPhoto.css similarity index 51% rename from mamweb/static/css/prettyPhoto.css rename to mamweb/static/prettyPhoto/css/prettyPhoto.css index a7e04122..ae43519b 100644 --- a/mamweb/static/css/prettyPhoto.css +++ b/mamweb/static/prettyPhoto/css/prettyPhoto.css @@ -15,23 +15,23 @@ div.pp_default .pp_bottom .pp_middle, div.pp_default .pp_bottom .pp_right { height: 13px; } - div.pp_default .pp_top .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ - div.pp_default .pp_top .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ - div.pp_default .pp_top .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ + div.pp_default .pp_top .pp_left { background: url(../images/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ + div.pp_default .pp_top .pp_middle { background: url(../images/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ + div.pp_default .pp_top .pp_right { background: url(../images/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ div.pp_default .pp_content .ppt { color: #f8f8f8; } - div.pp_default .pp_content_container .pp_left { background: url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } - div.pp_default .pp_content_container .pp_right { background: url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y; padding-right: 13px; } + div.pp_default .pp_content_container .pp_left { background: url(../images/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } + div.pp_default .pp_content_container .pp_right { background: url(../images/default/sprite_y.png) top right repeat-y; padding-right: 13px; } div.pp_default .pp_content { background-color: #fff; } /* Content background */ - div.pp_default .pp_next:hover { background: url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.pp_default .pp_previous:hover { background: url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.pp_default .pp_expand { background: url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ - div.pp_default .pp_expand:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ - div.pp_default .pp_contract { background: url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ - div.pp_default .pp_contract:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ - div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ + div.pp_default .pp_next:hover { background: url(../images/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.pp_default .pp_previous:hover { background: url(../images/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.pp_default .pp_expand { background: url(../images/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ + div.pp_default .pp_expand:hover { background: url(../images/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ + div.pp_default .pp_contract { background: url(../images/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ + div.pp_default .pp_contract:hover { background: url(../images/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ + div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ div.pp_default #pp_full_res .pp_inline { color: #000; } - div.pp_default .pp_gallery ul li a { background: url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } + div.pp_default .pp_gallery ul li a { background: url(../images/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } div.pp_default .pp_gallery ul li a:hover, div.pp_default .pp_gallery ul li.selected a { border-color: #fff; } div.pp_default .pp_social { margin-top: 7px; } @@ -39,11 +39,11 @@ div.pp_default .pp_gallery a.pp_arrow_previous, div.pp_default .pp_gallery a.pp_arrow_next { position: static; left: auto; } div.pp_default .pp_nav .pp_play, - div.pp_default .pp_nav .pp_pause { background: url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } + div.pp_default .pp_nav .pp_pause { background: url(../images/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } div.pp_default .pp_nav .pp_pause { background-position: -51px -29px; } div.pp_default .pp_details { position: relative; } div.pp_default a.pp_arrow_previous, - div.pp_default a.pp_arrow_next { background: url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } + div.pp_default a.pp_arrow_next { background: url(../images/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } div.pp_default a.pp_arrow_next { left: 52px; background-position: -82px -3px; } /* The next arrow in the bottom nav */ div.pp_default .pp_content_container .pp_details { margin-top: 5px; } div.pp_default .pp_nav { clear: none; height: 30px; width: 110px; position: relative; } @@ -53,11 +53,11 @@ div.pp_default .pp_description{ font-size: 11px; font-weight: bold; line-height: 14px; margin: 5px 50px 5px 0; } - div.pp_default .pp_bottom .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ - div.pp_default .pp_bottom .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ - div.pp_default .pp_bottom .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ + div.pp_default .pp_bottom .pp_left { background: url(../images/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ + div.pp_default .pp_bottom .pp_middle { background: url(../images/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ + div.pp_default .pp_bottom .pp_right { background: url(../images/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ - div.pp_default .pp_loaderIcon { background: url(../images/prettyPhoto/default/loader.gif) center center no-repeat; } /* Loader icon */ + div.pp_default .pp_loaderIcon { background: url(../images/default/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- @@ -65,58 +65,58 @@ ----------------------------------- */ - div.light_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ + div.light_rounded .pp_top .pp_left { background: url(../images/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ div.light_rounded .pp_top .pp_middle { background: #fff; } /* Top pattern/color */ - div.light_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ + div.light_rounded .pp_top .pp_right { background: url(../images/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ div.light_rounded .pp_content .ppt { color: #000; } div.light_rounded .pp_content_container .pp_left, div.light_rounded .pp_content_container .pp_right { background: #fff; } div.light_rounded .pp_content { background-color: #fff; } /* Content background */ - div.light_rounded .pp_next:hover { background: url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_rounded .pp_previous:hover { background: url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.light_rounded .pp_expand { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_rounded .pp_expand:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_rounded .pp_contract { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_rounded .pp_contract:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.light_rounded .pp_next:hover { background: url(../images/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.light_rounded .pp_previous:hover { background: url(../images/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.light_rounded .pp_expand { background: url(../images/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.light_rounded .pp_expand:hover { background: url(../images/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.light_rounded .pp_contract { background: url(../images/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.light_rounded .pp_contract:hover { background: url(../images/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.light_rounded .pp_details { position: relative; } div.light_rounded .pp_description { margin-right: 85px; } div.light_rounded #pp_full_res .pp_inline { color: #000; } div.light_rounded .pp_gallery a.pp_arrow_previous, div.light_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.light_rounded .pp_nav .pp_play { background: url(../images/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.light_rounded .pp_nav .pp_pause { background: url(../images/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.light_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.light_rounded .pp_arrow_previous { background: url(../images/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.light_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_rounded .pp_arrow_next { background: url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.light_rounded .pp_arrow_next { background: url(../images/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.light_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.light_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ + div.light_rounded .pp_bottom .pp_left { background: url(../images/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ div.light_rounded .pp_bottom .pp_middle { background: #fff; } /* Bottom pattern/color */ - div.light_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ + div.light_rounded .pp_bottom .pp_right { background: url(../images/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - div.light_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ + div.light_rounded .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- Dark Rounded Theme ----------------------------------- */ - div.dark_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.dark_rounded .pp_top .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ - div.dark_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ + div.dark_rounded .pp_top .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ + div.dark_rounded .pp_top .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ + div.dark_rounded .pp_top .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - div.dark_rounded .pp_content_container .pp_left { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ - div.dark_rounded .pp_content_container .pp_right { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ - div.dark_rounded .pp_content { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ - div.dark_rounded .pp_next:hover { background: url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_rounded .pp_previous:hover { background: url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.dark_rounded .pp_expand { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_rounded .pp_expand:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_rounded .pp_contract { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_rounded .pp_contract:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.dark_rounded .pp_content_container .pp_left { background: url(../images/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ + div.dark_rounded .pp_content_container .pp_right { background: url(../images/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ + div.dark_rounded .pp_content { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ + div.dark_rounded .pp_next:hover { background: url(../images/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.dark_rounded .pp_previous:hover { background: url(../images/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.dark_rounded .pp_expand { background: url(../images/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.dark_rounded .pp_expand:hover { background: url(../images/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.dark_rounded .pp_contract { background: url(../images/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.dark_rounded .pp_contract:hover { background: url(../images/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.dark_rounded .pp_details { position: relative; } div.dark_rounded .pp_description { margin-right: 85px; } div.dark_rounded .currentTextHolder { color: #c4c4c4; } @@ -124,19 +124,19 @@ div.dark_rounded #pp_full_res .pp_inline { color: #fff; } div.dark_rounded .pp_gallery a.pp_arrow_previous, div.dark_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.dark_rounded .pp_nav .pp_play { background: url(../images/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.dark_rounded .pp_nav .pp_pause { background: url(../images/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.dark_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.dark_rounded .pp_arrow_previous { background: url(../images/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.dark_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_rounded .pp_arrow_next { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.dark_rounded .pp_arrow_next { background: url(../images/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.dark_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.dark_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.dark_rounded .pp_bottom .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ - div.dark_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ + div.dark_rounded .pp_bottom .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ + div.dark_rounded .pp_bottom .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ + div.dark_rounded .pp_bottom .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - div.dark_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ + div.dark_rounded .pp_loaderIcon { background: url(../images/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- @@ -150,29 +150,29 @@ div.dark_square .currentTextHolder { color: #c4c4c4; } div.dark_square .pp_description { color: #fff; } - div.dark_square .pp_loaderIcon { background: url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ + div.dark_square .pp_loaderIcon { background: url(../images/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ - div.dark_square .pp_expand { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_square .pp_expand:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_square .pp_contract { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_square .pp_contract:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.dark_square .pp_expand { background: url(../images/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.dark_square .pp_expand:hover { background: url(../images/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.dark_square .pp_contract { background: url(../images/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.dark_square .pp_contract:hover { background: url(../images/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.dark_square .pp_details { position: relative; } div.dark_square .pp_description { margin: 0 85px 0 0; } div.dark_square #pp_full_res .pp_inline { color: #fff; } div.dark_square .pp_gallery a.pp_arrow_previous, div.dark_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } div.dark_square .pp_nav { clear: none; } - div.dark_square .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.dark_square .pp_nav .pp_play { background: url(../images/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.dark_square .pp_nav .pp_pause { background: url(../images/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.dark_square .pp_arrow_previous { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.dark_square .pp_arrow_previous { background: url(../images/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.dark_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_square .pp_arrow_next { background: url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.dark_square .pp_arrow_next { background: url(../images/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.dark_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.dark_square .pp_next:hover { background: url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_square .pp_previous:hover { background: url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.dark_square .pp_next:hover { background: url(../images/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.dark_square .pp_previous:hover { background: url(../images/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ /* ---------------------------------- @@ -185,67 +185,67 @@ div.light_square .pp_content { background: #fff; } div.light_square .pp_content .ppt { color: #000; } - div.light_square .pp_expand { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_square .pp_expand:hover { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_square .pp_contract { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_square .pp_contract:hover { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.light_square .pp_expand { background: url(../images/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.light_square .pp_expand:hover { background: url(../images/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.light_square .pp_contract { background: url(../images/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.light_square .pp_contract:hover { background: url(../images/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.light_square .pp_details { position: relative; } div.light_square .pp_description { margin-right: 85px; } div.light_square #pp_full_res .pp_inline { color: #000; } div.light_square .pp_gallery a.pp_arrow_previous, div.light_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_square .pp_nav .pp_play { background: url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.light_square .pp_nav .pp_play { background: url(../images/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.light_square .pp_nav .pp_pause { background: url(../images/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.light_square .pp_arrow_previous { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.light_square .pp_arrow_previous { background: url(../images/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.light_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_square .pp_arrow_next { background: url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.light_square .pp_arrow_next { background: url(../images/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.light_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.light_square .pp_next:hover { background: url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_square .pp_previous:hover { background: url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.light_square .pp_next:hover { background: url(../images/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.light_square .pp_previous:hover { background: url(../images/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.light_square .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ + div.light_square .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- Facebook style Theme ----------------------------------- */ - div.facebook .pp_top .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.facebook .pp_top .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ - div.facebook .pp_top .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ + div.facebook .pp_top .pp_left { background: url(../images/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ + div.facebook .pp_top .pp_middle { background: url(../images/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ + div.facebook .pp_top .pp_right { background: url(../images/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ div.facebook .pp_content .ppt { color: #000; } - div.facebook .pp_content_container .pp_left { background: url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ - div.facebook .pp_content_container .pp_right { background: url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ + div.facebook .pp_content_container .pp_left { background: url(../images/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ + div.facebook .pp_content_container .pp_right { background: url(../images/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ div.facebook .pp_content { background: #fff; } /* Content background */ - div.facebook .pp_expand { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.facebook .pp_expand:hover { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.facebook .pp_contract { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.facebook .pp_contract:hover { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.facebook .pp_expand { background: url(../images/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.facebook .pp_expand:hover { background: url(../images/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.facebook .pp_contract { background: url(../images/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.facebook .pp_contract:hover { background: url(../images/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.facebook .pp_details { position: relative; } div.facebook .pp_description { margin: 0 37px 0 0; } div.facebook #pp_full_res .pp_inline { color: #000; } - div.facebook .pp_loaderIcon { background: url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat; } /* Loader icon */ + div.facebook .pp_loaderIcon { background: url(../images/facebook/loader.gif) center center no-repeat; } /* Loader icon */ - div.facebook .pp_arrow_previous { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ + div.facebook .pp_arrow_previous { background: url(../images/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ div.facebook .pp_arrow_previous.disabled { background-position: 0 -96px; cursor: default; } - div.facebook .pp_arrow_next { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ + div.facebook .pp_arrow_next { background: url(../images/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ div.facebook .pp_arrow_next.disabled { background-position: -32px -96px; cursor: default; } div.facebook .pp_nav { margin-top: 0; } div.facebook .pp_nav p { font-size: 15px; padding: 0 3px 0 4px; } - div.facebook .pp_nav .pp_play { background: url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } - div.facebook .pp_nav .pp_pause { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } + div.facebook .pp_nav .pp_play { background: url(../images/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } + div.facebook .pp_nav .pp_pause { background: url(../images/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } - div.facebook .pp_next:hover { background: url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.facebook .pp_previous:hover { background: url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.facebook .pp_next:hover { background: url(../images/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.facebook .pp_previous:hover { background: url(../images/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.facebook .pp_bottom .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.facebook .pp_bottom .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ - div.facebook .pp_bottom .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ + div.facebook .pp_bottom .pp_left { background: url(../images/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ + div.facebook .pp_bottom .pp_middle { background: url(../images/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ + div.facebook .pp_bottom .pp_right { background: url(../images/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ /* ------------------------------------------------------------------------ @@ -413,7 +413,7 @@ } .pp_gallery li.default a { - background: url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat; + background: url(../images/facebook/default_thumbnail.gif) 0 0 no-repeat; display: block; height: 33px; width: 50px; @@ -427,7 +427,7 @@ } a.pp_next { - background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; + background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; display: block; float: right; height: 100%; @@ -436,7 +436,7 @@ } a.pp_previous { - background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; + background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; display: block; float: left; height: 100%; @@ -522,4 +522,4 @@ font-size: 17px; margin: 0 0 5px 15px; z-index: 9999; - } \ No newline at end of file + } diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/btnNext.png rename to mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/btnPrevious.png rename to mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/contentPattern.png rename to mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/loader.gif b/mamweb/static/prettyPhoto/images/dark_rounded/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/loader.gif rename to mamweb/static/prettyPhoto/images/dark_rounded/loader.gif diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/sprite.png b/mamweb/static/prettyPhoto/images/dark_rounded/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/sprite.png rename to mamweb/static/prettyPhoto/images/dark_rounded/sprite.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/btnNext.png b/mamweb/static/prettyPhoto/images/dark_square/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/btnNext.png rename to mamweb/static/prettyPhoto/images/dark_square/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/btnPrevious.png rename to mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_square/contentPattern.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/contentPattern.png rename to mamweb/static/prettyPhoto/images/dark_square/contentPattern.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/dark_square/loader.gif b/mamweb/static/prettyPhoto/images/dark_square/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/loader.gif rename to mamweb/static/prettyPhoto/images/dark_square/loader.gif diff --git a/mamweb/static/images/prettyPhoto/dark_square/sprite.png b/mamweb/static/prettyPhoto/images/dark_square/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/sprite.png rename to mamweb/static/prettyPhoto/images/dark_square/sprite.png diff --git a/mamweb/static/images/prettyPhoto/default/default_thumb.png b/mamweb/static/prettyPhoto/images/default/default_thumb.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/default_thumb.png rename to mamweb/static/prettyPhoto/images/default/default_thumb.png diff --git a/mamweb/static/images/prettyPhoto/default/loader.gif b/mamweb/static/prettyPhoto/images/default/loader.gif similarity index 100% rename from mamweb/static/images/prettyPhoto/default/loader.gif rename to mamweb/static/prettyPhoto/images/default/loader.gif diff --git a/mamweb/static/images/prettyPhoto/default/sprite.png b/mamweb/static/prettyPhoto/images/default/sprite.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite.png rename to mamweb/static/prettyPhoto/images/default/sprite.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_next.png b/mamweb/static/prettyPhoto/images/default/sprite_next.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_next.png rename to mamweb/static/prettyPhoto/images/default/sprite_next.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_prev.png b/mamweb/static/prettyPhoto/images/default/sprite_prev.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_prev.png rename to mamweb/static/prettyPhoto/images/default/sprite_prev.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_x.png b/mamweb/static/prettyPhoto/images/default/sprite_x.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_x.png rename to mamweb/static/prettyPhoto/images/default/sprite_x.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_y.png b/mamweb/static/prettyPhoto/images/default/sprite_y.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_y.png rename to mamweb/static/prettyPhoto/images/default/sprite_y.png diff --git a/mamweb/static/images/prettyPhoto/facebook/btnNext.png b/mamweb/static/prettyPhoto/images/facebook/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/btnNext.png rename to mamweb/static/prettyPhoto/images/facebook/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/facebook/btnPrevious.png b/mamweb/static/prettyPhoto/images/facebook/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/btnPrevious.png rename to mamweb/static/prettyPhoto/images/facebook/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternBottom.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternBottom.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternLeft.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternLeft.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternRight.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternRight.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternTop.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternTop.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png diff --git a/mamweb/static/images/prettyPhoto/facebook/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/facebook/loader.gif b/mamweb/static/prettyPhoto/images/facebook/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/loader.gif rename to mamweb/static/prettyPhoto/images/facebook/loader.gif diff --git a/mamweb/static/images/prettyPhoto/facebook/sprite.png b/mamweb/static/prettyPhoto/images/facebook/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/sprite.png rename to mamweb/static/prettyPhoto/images/facebook/sprite.png diff --git a/mamweb/static/images/prettyPhoto/light_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/light_rounded/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/btnNext.png rename to mamweb/static/prettyPhoto/images/light_rounded/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/light_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/btnPrevious.png rename to mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/light_rounded/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/light_rounded/loader.gif b/mamweb/static/prettyPhoto/images/light_rounded/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/loader.gif rename to mamweb/static/prettyPhoto/images/light_rounded/loader.gif diff --git a/mamweb/static/images/prettyPhoto/light_rounded/sprite.png b/mamweb/static/prettyPhoto/images/light_rounded/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/sprite.png rename to mamweb/static/prettyPhoto/images/light_rounded/sprite.png diff --git a/mamweb/static/images/prettyPhoto/light_square/btnNext.png b/mamweb/static/prettyPhoto/images/light_square/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/btnNext.png rename to mamweb/static/prettyPhoto/images/light_square/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/light_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_square/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/btnPrevious.png rename to mamweb/static/prettyPhoto/images/light_square/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/light_square/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/light_square/loader.gif b/mamweb/static/prettyPhoto/images/light_square/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/loader.gif rename to mamweb/static/prettyPhoto/images/light_square/loader.gif diff --git a/mamweb/static/images/prettyPhoto/light_square/sprite.png b/mamweb/static/prettyPhoto/images/light_square/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/sprite.png rename to mamweb/static/prettyPhoto/images/light_square/sprite.png diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery.prettyPhoto.js b/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js similarity index 100% rename from mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery.prettyPhoto.js rename to mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index c55ca7f2..da6f67e1 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -11,7 +11,7 @@ <link href="{% static 'bootstrap/css/bootstrap-theme.css' %}" rel="stylesheet"> <link href="{% static 'bootstrap/css/bootstrap.css' %}" rel="stylesheet"> <link href="{% static 'css/mamweb.css' %}?version=1" rel="stylesheet"> - <link href="{% static 'css/prettyPhoto.css' %}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> + <link href="{% static 'prettyPhoto/css/prettyPhoto.css' %}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> <script src="{% static 'js/jquery-1.11.1.js' %}"></script> <script src="{% static 'js/jquery-3.4.1.js' %}"></script> @@ -120,7 +120,7 @@ <script src="{% static 'bootstrap/js/bootstrap.js' %}"></script> <script src="{% static 'js/jquery.jcarousel-core.js' %}" type="text/javascript"></script> - <script src="{% static 'js/jquery.prettyPhoto.js' %}" type="text/javascript" charset="utf-8"></script> + <script src="{% static 'prettyPhoto/js/jquery.prettyPhoto.js' %}" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8"> var prettyparams = { animation_speed: 'fast', From f5e8f5bb779bda594234ccd360b9f468a4375299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 13 Feb 2024 22:17:41 +0100 Subject: [PATCH 038/225] =?UTF-8?q?Prvn=C3=AD=20kr=C5=AF=C4=8Dky=20p=C5=99?= =?UTF-8?q?ed=C4=9Bl=C3=A1n=C3=AD=20css?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/css.rst | 28 + mamweb/static/css/base.css | 87 ++ mamweb/static/css/constants.css | 16 + mamweb/static/css/galerie.css | 167 +++ mamweb/static/css/layout.css | 766 ++++++++++ mamweb/static/css/mamweb.css | 1323 ------------------ mamweb/static/css/modules.css | 347 +++++ mamweb/static/css/rozliseni.css | 35 - mamweb/templates/base.html | 6 +- vue_frontend/src/components/TreeNodeRoot.vue | 6 +- 10 files changed, 1421 insertions(+), 1360 deletions(-) create mode 100644 docs/css.rst create mode 100644 mamweb/static/css/base.css create mode 100644 mamweb/static/css/constants.css create mode 100644 mamweb/static/css/galerie.css create mode 100644 mamweb/static/css/layout.css delete mode 100644 mamweb/static/css/mamweb.css create mode 100644 mamweb/static/css/modules.css delete mode 100644 mamweb/static/css/rozliseni.css diff --git a/docs/css.rst b/docs/css.rst new file mode 100644 index 00000000..3efe266f --- /dev/null +++ b/docs/css.rst @@ -0,0 +1,28 @@ +CSS (a další styly na webu) +=========================== + +Inspirován `css-trick článkem <https://css-tricks.com/methods-organize-css/>`_ jsem se rozhodl rozdělit +CSSka do + +- Konstant (``constants.css``), které jsou využívány na mnoha místech CSSek +- Nastylování html tagů (``base.css``) +- Layoutu (``layout.css``), což je to, co určuje celkové rozložení stránky +- Jednotlivých prvků (``modules.css``) + +Dále jsem separoval CSSka pro **galerii** (potřebuje hodně specifických stylů). Stejně tak **korekturovátko** má styly separátně. + +Dále web (asi) používá dva externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): + +- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap přidává ``font-size:14px``, bez čehož se web úplně rozpadne) +- pretty photo: ??? (něco s obrázky) + +Pak jsou tu ``mamweb-dev.css`` a ``printtable.css``, co jsem si ještě nerozmyslel, co s tím. + +Pár myšlenek +------------ + +- Až na pár výjimek (galerii a korekturovátko) bych styly držel v jedné složce a málo souborech, +protože CSS šíleně dědí všechno možné +- Chce to dobře pojmenovávat třídy (speciálně aby bylo vidět, co ta třída dělá nebo kde se používá) +- Chce to hodně komentovat kód (speciálně tam, kde není splněn předchozí bod) + diff --git a/mamweb/static/css/base.css b/mamweb/static/css/base.css new file mode 100644 index 00000000..912e09a6 --- /dev/null +++ b/mamweb/static/css/base.css @@ -0,0 +1,87 @@ +@charset "utf-8"; /* vynuť utf-8 */ + +/* Obecné styly pro html tagy */ + +@font-face { + font-family: 'OpenSans'; + src: url("../fonts/OpenSans/OpenSans-Regular.ttf"); + font-weight: normal; +} + +body { + font-family: 'OpenSans'; + background-color: var(--barva-pozadi); + min-height: 100%; +} + +p { + /* zarovnání odstavců do bloku */ + text-align: justify; +} + + +/**** NADPISY ****/ +h1, h2, h3, h4 { color: var(--tmava-oranzova); } +h5, h6 { color: black; } + +h1, h2, h3, h4, h5, h6 { + font-variant: small-caps; + font-weight: bold; +} + +/* TODO: odlišit 1 a 2 */ +h1 { font-size: 200%; } +h2 { font-size: 200%; } +h3 { font-size: 160%; } +h4 { font-size: 140%; } +h5 { font-size: 140%; } +h6 { font-size: 120%; } + +h1 { + margin-top: 0px; +} +/*****************/ + + +/**** TLAČÍTKA ****/ +a { + color: var(--tmava-oranzova); +} + +a:focus, a:hover, a:active { + color: var(--hlavni-oranzova); + text-decoration: none; +} + +.button { + margin: 10px 0px 10px 0px; + padding: 4px 0; /*vertikální centování textu*/ + text-align: center; + background-color: var(--hlavni-oranzova); + color: var(--barva-pozadi); + font-size: 150%; + font-weight: bold; + font-variant: small-caps; + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); +} + +.button:hover { + position: relative; + top: 2px; + left:2px; + background-color: #df490e; +} +/******************/ + + +/**** Divné (aneb nevím, co bylo cílem) ****/ +h1 a:hover { + text-decoration: none; +} + +img { + filter: drop-shadow(0px 3px 3px rgba(0, 0, 0, 0.4)); + max-width: 100%; + height: auto; +} +/*******************************************/ diff --git a/mamweb/static/css/constants.css b/mamweb/static/css/constants.css new file mode 100644 index 00000000..959897b4 --- /dev/null +++ b/mamweb/static/css/constants.css @@ -0,0 +1,16 @@ +@charset "utf-8"; /* vynuť utf-8 */ + +/* Konstanty (převážně barvy) pro užití v dalších css */ + +:root { + --hlavni-oranzova: #e84e10; + --tmava-oranzova: #6f2509; + --svetla-oranzova: #f9d59e; + --svetlounka-oranzova: rgb(253, 237, 213); + + --orgovska-fialova: #6a0043; + --orgovska-svetla-fialova: #eee4ec; + + --barva-pozadi: #fffbf6; +} + diff --git a/mamweb/static/css/galerie.css b/mamweb/static/css/galerie.css new file mode 100644 index 00000000..6ee1a676 --- /dev/null +++ b/mamweb/static/css/galerie.css @@ -0,0 +1,167 @@ +@charset "utf-8"; /* vynuť utf-8 */ + +/* Galerie */ + + +/* velká fotka */ +/* zmenšování spolu s oknem prohlížeče */ +.galerie .obrazek, .titulni_obrazek { + max-width: 100%; + height: auto; + width: auto\9; /* ie8 */ +} + +.predchozi_obrazek{ + position: absolute; + z-index: 1; + width: 33%; + height: 100%; + left: 0; + top: 0; +} +.predchozi_obrazek:hover{ + background-image: url("/static/galerie/prvky/predchozi.svg"); + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); + background-position: left center; + background-repeat: no-repeat; +} +.dalsi_obrazek{ + position: absolute; + z-index: 1; + width: 33%; + height: 100%; + left: 67%; + top: 0; +} +.dalsi_obrazek:hover{ + background-image: url("/static/galerie/prvky/dalsi.svg"); + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); + background-position: right center; + background-repeat: no-repeat; +} + +.galerie { + position: relative; + text-align: center; + margin: 20px auto 0 auto; +} + +.galerie h1 { + text-align: center; +} + +.galerie_hlavicka { + margin: 30px auto 30px auto; +} + +.popis { + margin: 10px 10px 30px 0px; + text-align: center; +} + +#nahoru { + text-align: center; +} + +/* titulní obrázek hlavní galerie soustředění */ + +.galerie_nahledy{ + /*margin: 1em 0;*/ + margin: auto; + padding: 10px; + text-align: center; + overflow: auto; +} + +.galerie_nahledy img { + margin: 10px; +} + +.galerie_nahledy div.navigace { + display: inline-block; +} + +.galerie_nahled, .podgalerie_nahled { /* frame */ + display: block; + position: relative; + float: left; + width: 200px; + height: 200px; + text-align: center; + border: solid; + border-width: 1px; + border-radius: 4px; + border-color: var(--svetla-oranzova); + background-color: var(--barva-pozadi); + white-space: nowrap; + margin: 10px; + font-weight: bold; +} + +.galerie_nahled:hover, .podgalerie_nahled:hover { + background-color: var(--svetla-oranzova); + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); + color: var(--tmava-oranzova); +} + +.vystredeno{ /* helper */ + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.galerie_nahled img { + vertical-align: middle; + max-height: 180px; + max-width: 180px; +} + +.galerie_nahled div { + position: absolute; + bottom: 0px; + width: 100%; + text-align: center; +} + +.podgalerie_nahled img { + margin-top: 20px; + margin-bottom: 15px; + max-height: 125px; + max-width: 167px; +} + +.podgalerie_nahled .nazev_galerie { + position: absolute; + width: 100%; + top: 160px; +} + + +/* Odkazy na předchozí a následující podgalerii */ +.galerie_predchozi_nasledujici { + overflow: auto; + margin: 10px auto 10px auto; +} + +.galerie_predchozi_nasledujici .predchozi { + float: left; +} + +.galerie_predchozi_nasledujici .nasledujici { + float: right; +} + +/* posune kotvu obrázku v galerii o oranžový pruh dolu, aby se pod ním obrázek neschovával */ +/* https://stackoverflow.com/questions/10732690/offsetting-an-html-anchor-to-adjust-for-fixed-header */ +.kotva_obrazku { + position: absolute; + width: 0; + height: 55px; /* viz #title */ + margin-top: -55px; /* viz #title */ +} +@media(max-width: 860px) { + .kotva_obrazku { + height: 3em; /* #FIXME nemám páru, jak zjistit výšku toho elementu */ + margin-top: -3em; /* #FIXME */ + } +} diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css new file mode 100644 index 00000000..7bd8f6e1 --- /dev/null +++ b/mamweb/static/css/layout.css @@ -0,0 +1,766 @@ +@charset "utf-8"; /* vynuť utf-8 */ + +/* Rozložení webu a jeho prvky (hlavička, menu, footer) */ + +:root { + --footer-height: 200px; + --login-bar-height: 20px; +} + +/**** KONTEJNER ****/ +div.container { + width: 970px; + margin: auto; + min-height: 100vh; + position: relative; + padding: 0px; +} + + +.org-logged-in div.container { + margin-top: var(--login-bar-height); +} + +div.content-wrapper { + padding-bottom: var(--footer-height); +} + + +div.content { + padding: 15px 30px; +} + +/* Roztáhne obsah z containeru na celou šířku obrazovky: */ +.full_width { + width: 100vw; + margin-left: calc(-50vw + 485px); +} +/* Na úzkém displeji nechceme nic dělat. */ +@media(max-width: 860px) { + .full_width{ + margin-left: 0; + width: unset; + } +} +/*******************/ + + +/**** HLAVIČKA ****/ +#title { /*dělá blbosti šířka, je to kvůli fixed pozici, zatím natvrdo, vyřešit*/ + height: 55px; + width: 970px; + position: fixed; + z-index: 2048; + background-color: var(--hlavni-oranzova); + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); + + font-size: 28px; + color: var(--barva-pozadi); + font-weight: 400; + font-variant: small-caps; + text-align: center; + text-decoration: none; + padding-top: 8px; + text-shadow: none; +} + +#title-mobile { + display: none; +} + + +#header { + position: relative; + background: url("../images/header/vikendovka.jpg") no-repeat center top; /* poměr 350:970, TODO: aby to nemuselo být přesně na pixely */ + background-size: 100%; + top: 58px; +} + +#header img.logo { + position: absolute center; + width: 100%; + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); +} + +#header img.logo-mobile { + display: none; +} + +.no-mobile { + background-size: contain; +} +/******************/ + + +/**** MENU ****/ +ul.menu_mobile { + display: none; +} + +nav.nav-button { + display: none; +} + +div.dropdown-backdrop { /* tohle způsobuje, že funguje mobilní menu */ + z-index: -1; +} + +/* nové menu */ + +ul.menu { + width: 100%; + padding: 0px; + margin-top: -5px; /* posune celé menu nahoru (pak potřeba zvětšit mezeru mezi menu a submenu) */ + + font-variant: small-caps; +} + +ul.menu a { + text-decoration: none; + font-weight: bold; + font-size: 105%; +} + +ul.menu li { + margin: 0px; + display: inline-block; + width: 16.666667%; + text-align: center; + + font-size: 140%; + font-weight: 400; +} + +ul.menu li>a:hover { + color: black; +} + +ul.menu li>a:active { /* TODO: nefunfuje */ + color: black; +} + +ul.submenu { + + background-color: var(--hlavni-oranzova); + margin-top: 10px; /* mezera mezi hlavním menu a submenu */ + margin-bottom: 10px; + padding-top: 10px; + padding-bottom: 5px; + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); +} + +ul.submenu { + background-color: var(--hlavni-oranzova); + z-index: 50; + font-weight: 400; +} + +ul.submenu li { + width: auto; + padding: 0px 20px 0px 20px; + display: inline-block; +} +ul.submenu li>a { + color: var(--svetla-oranzova); + text-decoration: none; + text-shadow: none; +} + +ul.submenu li>a:hover { + color: black; +} + +ul.menu li.active>a { + color: var(--svetla-oranzova); +} + +ul.submenu li.active>a, .parentactive ul li:first-child>a { + color: black; +} +/**************/ + + +/**** Footer ****/ +#footer { + position: absolute; + bottom: 0; + width: 100%; + background: url("../images/mozaika-footer.svg") no-repeat top center; + height: var(--footer-height); + background-position: relative; + background-size: 100%; + filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.4)); + padding-top: 3.5%; +} + +#footer p.license { + text-align: center; + font-weight: 400; + bottom: 0px; +} + +#footer p.license a { + color: #333; +} + +p.license-mobile { + display: none; + margin-bottom: 0px; +} +/****************/ + + +/**** LOGIN BAR ****/ + +div.login-bar { + background: var(--orgovska-fialova); + color: var(--svetla-oranzova); + width: 100%; + + position: fixed; + margin-top: calc(-1 * var(--login-bar-height)); + min-height: var(--login-bar-height); + z-index: 4086; + + padding-left: 5px; + padding-right: 5px; +} + +div.login-bar div { + display: inline; +} + +a.login-ref-admin { + display: inline; + color: var(--barva-pozadi); +} + +.napis-webarum { + display: inline; + color: var(--barva-pozadi); + float: right; +} + +.napis-webarum a { + color: var(--svetla-oranzova); + text-decoration: underline; +} +/*******************/ + + +/**** ROZLIŠENÍ MEZI LOKÁLNÍM, TESTOVACÍM A PRODUKČNÍM WEBEM ****/ +body.localweb:before, body.localweb:after, +body.testweb:before, body.testweb:after, +body.suprodweb:before, body.suprodweb:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + top: 0; +} + +body.localweb:before, body.testweb:before, body.suprodweb:before { + left: 0; +} +body.localweb:after, body.testweb:after, body.suprodweb:after { + right: 0; +} + +body.localweb:before, body.localweb:after { background: greenyellow; } +body.testweb:before, body.testweb:after { background: darkorange; } +body.suprodweb:before, body.suprodweb:after { background: red; } +/****************************************************************/ + + +/**** ZBYTEK ****/ +/* (konkrétní stránky) */ + +/* titulni stranka */ +.titulnistrana { + display: flex; + text-align: justify; +} + +.titulnistrana h1 { + text-align: center; +} + +.zjistit_vic{ + text-align: center; + margin-bottom: 30px; +} + +.zjistit_vic hr { + display: none; +} + +.graf-svg { + display: flex; +} + +#svg-graf { + width: 100%; + height: auto; + margin: 30px; +} + +.titulnistrana_obsah { + width: 66%; +} + +.vitej_titulka, .temata_titulka { + width: 49%; + padding: 10px; + display: table-cell; +} + +.titulnistrana_novinky { + width: 33%; + padding: 10px; +} + +.novinka_obrazek { + margin: 10px 0px 10px 0px; + width: 100%; +} + +.novinka_datum { + font-weight: bold; +} + +.novinka_autor { + text-align: right; + font-style: italic; +} + +div.org-text { + font-style: italic; +} + +div.odpocet { + margin: 20px; + text-align: center; +} + +.odevzdanareseni_mid, .odevzdanareseni_small, .odevzdanareseni_mini { + display: none; +} + +/*stránka organizátorů*/ + +div.seznam_orgu, div.rozcestnik_temat, div.seznam_archiv { + text-align: center; + padding-bottom: 10px; +} + +div.org_pole, div.rocnik_pole, div.tema_pole { + display: inline-block; + width: 30%; + min-width: 300px; + text-align: center; +} + +div.tema_pole { + display: inline-block; + width: 40%; + min-width: 350px; + padding-bottom: 20px; + text-align: center; +} + +div.cislo_pole { + display: inline-block; + width: 15%; + min-width: 165px; + text-align: center; + padding: 10px; +} + +div.seznam_orgu h3 { + text-align: center; + margin-top: 10px; + margin-bottom: 0px; +} + +div.org_email { + margin-bottom: 10px; + font-weight: bold; +} + +/* aktuální zadání */ +.stranka_aktualni_zadani { + text-align: center; +} + +#azad_obrazek { + margin-top: 15px; +} + +div.zadani_termin { + text-align: center; + font-size: large; + font-weight: bold; +} + +@media (max-width: 420px) { + div.zadani_termin { + font-size: small; + } +} + +div.zadani_termin .datum { + color:var(--hlavni-oranzova); + margin:0px; +} + +#obrazek_cisla_archiv { + text-align: center; + margin: 10px; +} + + +/* Jak řešit */ + +.jakresit svg { + width: 33%; + padding: 10px; + filter: none; +} + +@media(max-width: 860px) { + .jakresit svg { + margin: auto; + display: grid; + width: 100%; + max-width: 360px; + } +} +/****************/ + + + + + + + + + + + + + + +/********************** + * Zmenšování displeje +***********************/ + + +/* stránka přes celý displej */ +@media (max-width: 970px) { + + div.container { + width: 100%; + } + + #title { + width: 100%; + text-align: center; + } + + #header { + background-size: 100%; + } + + #header img.logo { + width: 100%; + } + + #footer { + width: 100%; + } + + ul.menu { + font-size: 90%; + margin-top: -7px; + } + + ul.menu li { + margin-top: 10px; /* posunutí textu hlavního menu níže */ + } + + ul.submenu li { + margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + } + + ul.submenu { + margin-top: 8px; /* mezera mezi hlavním menu a submenu */ + } + + .odevzdanareseni_big { + display: none; + } + + .odevzdanareseni_mid { + display: table-cell; + } + +} + +/* stránka přes celý menší displej, větší mobil, tablet */ +@media(max-width: 800px){ + + ul.menu { + font-size: 80%; + margin-top: -2px; + } + + ul.menu li { + margin-top: 10px; /* posunutí textu hlavního menu níže */ + } + + ul.submenu li { + margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + } + + ul.submenu { + margin-top: 8px; /* mezera mezi hlavním menu a submenu */ + } + + a.ref-org-foto { + pointer-events: none; + } + + table#reseni.form td, table#reseni.form tr { + display: inline-grid; + max-width: 300px; + } + + /* titulni stranka */ + + .titulnistrana { + display: block; + } + + .graf { + padding-top: 40px; + } + + .titulnistrana_obsah { + width: 100%; + } + + .vitej_titulka, .temata_titulka { + width: 49%; + padding: 10px; + display: table-cell; + } + + .titulnistrana_novinky { + width: 100%; + max-width: 500px; + padding: 10px; + margin: auto; + } + + #svg-graf { + width: 100%; + max-width: 500px; + padding: 10px; + margin: auto; + } + + .zjistit_vic hr { + display: flex; + } + + .odevzdanareseni_mid { + display: none; + } + + .odevzdanareseni_small { + display: table-cell; + } +} + +/* malý tablet, mobil */ +@media (max-width: 650px) { + + .no-mobile{ + display: none; + } + + #hide-if-small.login-bar-flatpage { + display: none; + } + + #title { + display: none; + } + + #header { + width: 100%; + top: 0px; + background-image: none; + } + + #header.cojemam, + #header.soustredeni, + #header.zadani, + #header.clanky, + #header.archiv, + #header.NOC, + #header.NOCcojemam, + #header.NOCsoustredeni, + #header.NOCzaani, + #header.NOCclanky, + #header.NOCarchiv { + background-image: none; + } + + #header img.logo { + display: none; + } + + #header img.logo-mobile { + display: block; + top: 0px; + left: 0px; + width: 100%; + filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.4)); + margin-bottom: 3px; + } + + /* mobilní menu */ + ul.menu { + display: none; + } + + ul.menu_mobile { + display: block; + z-index: 10; + position: sticky; + font-variant: small-caps; + font-size: 150%; + font-weight: bold; + list-style-type: none; + padding-top: 3px; + padding-bottom: 3px; + padding-left: 12px; + } + + ul.menu_mobile a:active, + ul.menu_mobile a:hover, + ul.menu_mobile a:focus { + text-decoration: none; + color: black; + } + + ul.menu_mobile ul { + list-style-type: none; + font-size: 90%; + color: black; /*černé šipky submenu*/ + } + + ul.menu_mobile ul li>a { + color: black; + } + + ul.menu_mobile ul li::before { + content: ' \276D '; /*https://www.w3schools.com/cssref/css_entities.asp*/ + } + + ul.menu_mobile br { + display: none; + } + + nav.nav-button { + display: block; + position: sticky; + position: -webkit-sticky; + top: 0; + z-index: 10; + } + + #navbar-content { + background-color: var(--hlavni-oranzova); + } + + button.navbar-button { + color: #f9d59e; + background-color: var(--hlavni-oranzova); + font-variant: small-caps; + font-size: 160%; + border-radius: 0px; + border-width: 0px; + width: 100%; + text-align: right; + } + + button.navbar-button span::after{ + content: ' \2261 '; + font-size: 120%; + } + + li.dropdown div.submenu_mobile{ + display: none; + } + + li.dropdown.open div.submenu_mobile{ + display: block; + } + + + /*patička mobil*/ + + #footer { + display: none; + } + + p.license-mobile { + position: relative; + display: block; + font-size: 90%; + background-color: var(--hlavni-oranzova); + padding: 5%; + text-align: justify; + } + + table.form td, table.form tr { + display: inherit; + } + + /* titulni stranka */ + + .titulnistrana { + display: block; + } + + .graf { + padding-top: 40px; + } + + .titulnistrana_obsah { + width: 100%; + } + + .vitej_titulka, .temata_titulka { + width: 100%; + padding: 10px; + display: block; + } + + .titulnistrana_novinky { + width: 100%; + padding: 10px; + } + + .odevzdanareseni_small { + display: none; + } + + .odevzdanareseni_mini { + display: table-cell; + } + +} + diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css deleted file mode 100644 index 0d699d5c..00000000 --- a/mamweb/static/css/mamweb.css +++ /dev/null @@ -1,1323 +0,0 @@ -@charset "utf-8"; /* vynuť utf-8 */ -@import url("rozliseni.css"); - -@font-face { -font-family: 'OpenSans'; -src: url("../fonts/OpenSans/OpenSans-Regular.ttf"); -font-weight: normal; -} - -p { - text-align: justify; -} - -body { - font-family: 'OpenSans'; - background-color: #fffbf6; - min-height: 100%; -} -div.content-wrapper { - padding-bottom: 200px; /* Footer height */ -} - -div.container { - width: 970px; - margin: auto; - min-height: 100vh; - position: relative; -} - -.org-logged-in div.container { - margin-top: 20px; -} - -div.login-bar { - background: #6a0043; - color: #f9d59e; - width: 100%; - - position: fixed; - margin-top: -20px; - min-height: 20px; - z-index: 4086; - - padding-left: 5px; - padding-right: 5px; -} - -div.login-bar div { - display: inline; -} - -a.login-ref-admin { - display: inline; - color: #fffbf6; -} - -.napis-webarum { - display: inline; - color: #fffbf6; - float: right; -} - -.napis-webarum a { - color: #f9d59e; - text-decoration: underline; -} - -/* odkazy a nadpisy */ - -a { - color: #6f2509; -} - -a:focus, a:hover, a:active { - color: #e84e10; - text-decoration: none; -} - -img { - filter: drop-shadow(0px 3px 3px rgba(0, 0, 0, 0.4)); - max-width: 100%; - height: auto; -} - -h1 { /*todo: odlišit 1 a 2 */ - font-size: 200%; - font-variant: small-caps; - font-weight: bold; - color: #6f2509; -} - -h2 { - font-size: 200%; - font-variant: small-caps; - font-weight: bold; - color: #6f2509; -} - -h3 { - font-size: 160%; - font-variant: small-caps; - font-weight: bold; - color: #6f2509; -} - -h4 { - font-size: 140%; - font-variant: small-caps; - font-weight: bold; - color: #6f2509; -} - -h5 { - font-size: 140%; - font-variant: small-caps; - font-weight: bold; - color: black; -} - -h6 { - font-size: 120%; - font-variant: small-caps; - font-weight: bold; - color: black; -} - -.button { - margin: 10px 0px 10px 0px; - padding: 4px 0; /*vertikální centování textu*/ - text-align: center; - background-color: #e84e10; - color: #fffbf6; - font-size: 150%; - font-weight: bold; - font-variant: small-caps; - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); -} - -.button:hover { - position: relative; - top: 2px; - left:2px; - background-color: #df490e; -; -} - - -.org-logged-in .mam-text-plugin { - border: dashed 1px #6a0043; - padding: 5px; - margin: -5px; -} - -.mam-org-only { - background: #eee4ec; - padding: 10px; - margin: 10px -10px; - border: #6a0043 2px dashed; -} - -.mam-org-only .mam-org-only { - border: 0px; -} - -li.mam-org-only { - padding: 3px 0px; - margin: -2px 0px; -} - -table .border-r { - border-right: solid 1px; -} - -table .border-b { - border-bottom: solid 1px; -} - -.vysledkovka td, .vysledkovka th { - padding: 0.1em 0.3em; -} - -.vysledkovka { - border: solid 2px; -} - -.podproblem { - color: gray; -} - -div.container { - padding: 0px; -} - -div.content { - padding: 15px 30px; -} - -h1 { - margin-top: 0px; -} - -/* Headline & Header */ - -#title { /*dělá blbosti šířka, je to kvůli fixed pozici, zatím natvrdo, vyřešit*/ - height: 55px; - width: 970px; - position: fixed; - z-index: 2048; - background-color: #e84e10; - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); - - font-size: 28px; - color: #fffbf6; - font-weight: 400; - font-variant: small-caps; - text-align: center; - text-decoration: none; - padding-top: 8px; - text-shadow: none; -} - -#title-mobile { - display: none; -} - - -#header { - position: relative; - background: url("../images/header/vikendovka.jpg") no-repeat center top; /* poměr 350:970, TODO: aby to nemuselo být přesně na pixely */ - background-size: 100%; - top: 58px; -} - -#header img.logo { - position: absolute center; - width: 100%; - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); -} - -#header img.logo-mobile { - display: none; -} - -.no-mobile { - background-size: contain; -} - -/* Menu */ - -ul.menu_mobile { - display: none; -} - -nav.nav-button { - display: none; -} - -div.dropdown-backdrop { /* tohle způsobuje, že funguje mobilní menu */ - z-index: -1; -} - -h1 a:hover { - text-decoration: none; -} - -/* nové menu */ - -ul.menu { - width: 100%; - padding: 0px; - margin-top: -5px; /* posune celé menu nahoru (pak potřeba zvětšit mezeru mezi menu a submenu) */ - - font-variant: small-caps; -} - -ul.menu a { - text-decoration: none; - font-weight: bold; - font-size: 105%; -} - -ul.menu li { - margin: 0px; - display: inline-block; - width: 16.666667%; - text-align: center; - - font-size: 140%; - font-weight: 400; -} - -ul.menu li>a:hover { - color: black; -} - -ul.menu li>a:active { /* TODO: nefunfuje */ - color: black; -} - -ul.submenu { - - background-color: #e84e10; - margin-top: 10px; /* mezera mezi hlavním menu a submenu */ - margin-bottom: 10px; - padding-top: 10px; - padding-bottom: 5px; - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); -} - -ul.submenu { - background-color: #e84e10; - z-index: 50; - font-weight: 400; -} - -ul.submenu li { - width: auto; - padding: 0px 20px 0px 20px; - display: inline-block; -} -ul.submenu li>a { - color: #f9d59e; - text-decoration: none; - text-shadow: none; -} - -ul.submenu li>a:hover { - color: black; -} - -ul.menu li.active>a { - color: #f9d59e; -} - -ul.submenu li.active>a, .parentactive ul li:first-child>a { - color: black; -} - -/* konec nového menu */ - -div.novinky_name { - text-align: right; - font-style: italic; -} - - - -/********** - * Footer -**********/ - - -#footer { - position: absolute; - bottom: 0; - width: 100%; - background: url("../images/mozaika-footer.svg") no-repeat top center; - height: 200px; - background-position: relative; - background-size: 100%; - filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.4)); - padding-top: 3.5%; -} - -#footer p.license { - text-align: center; - font-weight: 400; - bottom: 0px; -} - -#footer p.license a { - color: #333; -} - -p.license-mobile { - display: none; - margin-bottom: 0px; -} - -/*********************/ - -/* přihláška a další formuláře */ - -table.form td, table.form tr { - table-layout: fixed; - word-wrap: break-word; - padding: 5px; -} - -table#reseni.form td, table#reseni.form tr { - display: inline-table; -} - -input[type="file"] { - max-width: 250px; - text-overflow: ellipsis; -} - -.field-with-comment{ - position:relative; -} - -.field-comment{ - display:none; - text-shadow: 0 1px 0 #fff; - background-color: #f0f0f0 ; - border-color: #dbdbdb; - position:absolute; - z-index:100; - border:1px; - border-style:solid; - border-width:1px; - border-radius: 5px; - padding:3px; - top:50px; - left:10px; -} - -.field-with-comment:hover span.field-comment{ - display: block; -} - -input { - margin: 5px; -} - -textarea.feedback { - margin: 5px; -} - -/* td obsahující křížek v detailu řešení se nesmí smrštit na 0 */ -/* FIXME až bude firefox příčetný, nahradit td:has(.smazat_hodnoceni) */ -.has_smazat_hodnoceni { - min-width: 20px; - padding: 3px; -} - - -/* titulni stranka */ - -.titulnistrana { - display: flex; - text-align: justify; -} - -.titulnistrana h1 { - text-align: center; -} - -.zjistit_vic{ - text-align: center; - margin-bottom: 30px; -} - -.zjistit_vic hr { - display: none; -} - -.graf-svg { - display: flex; -} - -#svg-graf { - width: 100%; - height: auto; - margin: 30px; -} - -.titulnistrana_obsah { - width: 66%; -} - -.vitej_titulka, .temata_titulka { - width: 49%; - padding: 10px; - display: table-cell; -} - -.titulnistrana_novinky { - width: 33%; - padding: 10px; -} - -.novinka_obrazek { - margin: 10px 0px 10px 0px; - width: 100%; -} - -.novinka_datum { - font-weight: bold; -} - -.novinka_autor { - text-align: right; - font-style: italic; -} - -div.org-text { - font-style: italic; -} - -div.odpocet { - margin: 20px; - text-align: center; -} - -.odevzdanareseni_mid, .odevzdanareseni_small, .odevzdanareseni_mini { - display: none; -} - -/********************** - * Zmenšování displeje -***********************/ - - -/* stránka přes celý displej */ -@media (max-width: 970px) { - - div.container { - width: 100%; - } - - #title { - width: 100%; - text-align: center; - } - - #header { - background-size: 100%; - } - - #header img.logo { - width: 100%; - } - - #footer { - width: 100%; - } - - ul.menu { - font-size: 90%; - margin-top: -7px; - } - - ul.menu li { - margin-top: 10px; /* posunutí textu hlavního menu níže */ - } - - ul.submenu li { - margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ - } - - ul.submenu { - margin-top: 8px; /* mezera mezi hlavním menu a submenu */ - } - - .odevzdanareseni_big { - display: none; - } - - .odevzdanareseni_mid { - display: table-cell; - } - -} - -/* stránka přes celý menší displej, větší mobil, tablet */ -@media(max-width: 800px){ - - ul.menu { - font-size: 80%; - margin-top: -2px; - } - - ul.menu li { - margin-top: 10px; /* posunutí textu hlavního menu níže */ - } - - ul.submenu li { - margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ - } - - ul.submenu { - margin-top: 8px; /* mezera mezi hlavním menu a submenu */ - } - - a.ref-org-foto { - pointer-events: none; - } - - table#reseni.form td, table#reseni.form tr { - display: inline-grid; - max-width: 300px; - } - - /* titulni stranka */ - - .titulnistrana { - display: block; - } - - .graf { - padding-top: 40px; - } - - .titulnistrana_obsah { - width: 100%; - } - - .vitej_titulka, .temata_titulka { - width: 49%; - padding: 10px; - display: table-cell; - } - - .titulnistrana_novinky { - width: 100%; - max-width: 500px; - padding: 10px; - margin: auto; - } - - #svg-graf { - width: 100%; - max-width: 500px; - padding: 10px; - margin: auto; - } - - .zjistit_vic hr { - display: flex; - } - - .odevzdanareseni_mid { - display: none; - } - - .odevzdanareseni_small { - display: table-cell; - } -} - -/* malý tablet, mobil */ -@media (max-width: 650px) { - - .no-mobile{ - display: none; - } - - #hide-if-small.login-bar-flatpage { - display: none; - } - - #title { - display: none; - } - - #header { - width: 100%; - top: 0px; - background-image: none; - } - - #header.cojemam, - #header.soustredeni, - #header.zadani, - #header.clanky, - #header.archiv, - #header.NOC, - #header.NOCcojemam, - #header.NOCsoustredeni, - #header.NOCzaani, - #header.NOCclanky, - #header.NOCarchiv { - background-image: none; - } - - #header img.logo { - display: none; - } - - #header img.logo-mobile { - display: block; - top: 0px; - left: 0px; - width: 100%; - filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.4)); - margin-bottom: 3px; - } - -/* mobilní menu */ - ul.menu { - display: none; - } - - ul.menu_mobile { - display: block; - z-index: 10; - position: sticky; - font-variant: small-caps; - font-size: 150%; - font-weight: bold; - list-style-type: none; - padding-top: 3px; - padding-bottom: 3px; - padding-left: 12px; - } - - ul.menu_mobile a:active, - ul.menu_mobile a:hover, - ul.menu_mobile a:focus { - text-decoration: none; - color: black; - } - - ul.menu_mobile ul { - list-style-type: none; - font-size: 90%; - color: black; /*černé šipky submenu*/ - } - - ul.menu_mobile ul li>a { - color: black; - } - - ul.menu_mobile ul li::before { - content: ' \276D '; /*https://www.w3schools.com/cssref/css_entities.asp*/ - } - - ul.menu_mobile br { - display: none; - } - - nav.nav-button { - display: block; - position: sticky; - position: -webkit-sticky; - top: 0; - z-index: 10; - } - - #navbar-content { - background-color: #e84e10; - } - - button.navbar-button { - color: #f9d59e; - background-color: #e84e10; - font-variant: small-caps; - font-size: 160%; - border-radius: 0px; - border-width: 0px; - width: 100%; - text-align: right; - } - - button.navbar-button span::after{ - content: ' \2261 '; - font-size: 120%; - } - - li.dropdown div.submenu_mobile{ - display: none; - } - - li.dropdown.open div.submenu_mobile{ - display: block; - } - - - /*patička mobil*/ - - #footer { - display: none; - } - - p.license-mobile { - position: relative; - display: block; - font-size: 90%; - background-color: #e84e10; - padding: 5%; - text-align: justify; - } - - table.form td, table.form tr { - display: inherit; - } - - /* titulni stranka */ - - .titulnistrana { - display: block; - } - - .graf { - padding-top: 40px; - } - - .titulnistrana_obsah { - width: 100%; - } - - .vitej_titulka, .temata_titulka { - width: 100%; - padding: 10px; - display: block; - } - - .titulnistrana_novinky { - width: 100%; - padding: 10px; - } - - .odevzdanareseni_small { - display: none; - } - - .odevzdanareseni_mini { - display: table-cell; - } - -} - -/*stránka organizátorů*/ - -div.seznam_orgu, div.rozcestnik_temat, div.seznam_archiv { - text-align: center; - padding-bottom: 10px; -} - -div.org_pole, div.rocnik_pole, div.tema_pole { - display: inline-block; - width: 30%; - min-width: 300px; - text-align: center; -} - -div.tema_pole { - display: inline-block; - width: 40%; - min-width: 350px; - padding-bottom: 20px; - text-align: center; -} - -div.cislo_pole { - display: inline-block; - width: 15%; - min-width: 165px; - text-align: center; - padding: 10px; -} - -div.seznam_orgu h3 { - text-align: center; - margin-top: 10px; - margin-bottom: 0px; -} - -div.org_email { - margin-bottom: 10px; - font-weight: bold; -} - -/*otáčecí karty (orgové, archiv) */ - -.flip-card { - perspective: 1000px; /* Remove this if you don't want the 3D effect */ - margin-left: auto; - margin-right: auto; -} - -#organizatori.flip-card { - width: 200px; - height: 250px; -} - -#archiv.flip-card { - width: 210px; - height: 298px; -} - -#archiv-rocnik.flip-card { - width: 144px; - height: 205px; -} - -#tema-rozcestnik.flip-card { - width: 300px; - height: 300px; -} - -/* This container is needed to position the front and back side */ -.flip-card-inner { - position: relative; - width: 100%; - height: 100%; - transition: transform 0.8s; - transform-style: preserve-3d; -} - -/* Do an horizontal flip when you move the mouse over the flip box container */ -.flip-card:hover .flip-card-inner { - transform: rotateY(180deg); -} - -/* Position the front and back side */ -.flip-card-front, .flip-card-back { - position: absolute; - width: 100%; - height: 100%; - -webkit-backface-visibility: hidden; /* Safari */ - backface-visibility: hidden; -} - - -div.flip-card-foto, div.flip-card-foto img { - width: 100%; - height: 100%; - -} - -/* Style the back side */ -.flip-card-back { - background-color: #f9d59e; - color: black; - transform: rotateY(180deg); - padding: 10px; - padding-top: 20px; -} - -#archiv.flip-card-back { - background-color: white; -} - -/* karty archiv */ - -div.popis_rocniku { - text-align: left; - font-weight: bold; - margin: 20px; -} - - -div.popis_rocniku a, div.cislo_odkazy a { - font-weight: bold; - color: black; -} - -div.popis_rocniku a:hover, -div.cislo_odkazy a:hover { - color: #6f2509; -} - -div.cislo_odkazy ul { - margin: 0px; - padding: 0px; -} - -/* aktuální zadání */ -.stranka_aktualni_zadani { - text-align: center; -} - -#azad_obrazek { - margin-top: 15px; -} - -div.zadani_termin { - text-align: center; - font-size: large; - font-weight: bold; -} - -@media (max-width: 420px) { - div.zadani_termin { - font-size: small; - } - -} - -div.zadani_termin .datum { - color:#e84e10; - margin:0px; -} - -#obrazek_cisla_archiv { - text-align: center; - margin: 10px; -} - - -/* galerie */ - -/* velká fotka */ -/* zmenšování spolu s oknem prohlížeče */ -.galerie .obrazek, .titulni_obrazek { - max-width: 100%; - height: auto; - width: auto\9; /* ie8 */ -} - -.predchozi_obrazek{ - position: absolute; - z-index: 1; - width: 33%; - height: 100%; - left: 0; - top: 0; -} -.predchozi_obrazek:hover{ - background-image: url("/static/galerie/prvky/predchozi.svg"); - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); - background-position: left center; - background-repeat: no-repeat; -} -.dalsi_obrazek{ - position: absolute; - z-index: 1; - width: 33%; - height: 100%; - left: 67%; - top: 0; -} -.dalsi_obrazek:hover{ - background-image: url("/static/galerie/prvky/dalsi.svg"); - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); - background-position: right center; - background-repeat: no-repeat; -} - -.galerie { - position: relative; - text-align: center; - margin: 20px auto 0 auto; -} - -.galerie h1 { - text-align: center; -} - -.galerie_hlavicka { - margin: 30px auto 30px auto; -} - -.popis { - margin: 10px 10px 30px 0px; - text-align: center; -} - -#nahoru { - text-align: center; -} - -/* titulní obrázek hlavní galerie soustředění */ - -.galerie_nahledy{ - /*margin: 1em 0;*/ - margin: auto; - padding: 10px; - text-align: center; - overflow: auto; -} - -.galerie_nahledy img { - margin: 10px; -} - -.galerie_nahledy div.navigace { - display: inline-block; -} - -.galerie_nahled, .podgalerie_nahled { /* frame */ - display: block; - position: relative; - float: left; - width: 200px; - height: 200px; - text-align: center; - border: solid; - border-width: 1px; - border-radius: 4px; - border-color: #f9d59e; - background-color: #fffbf6; - white-space: nowrap; - margin: 10px; - font-weight: bold; -} - -.galerie_nahled:hover, .podgalerie_nahled:hover { - background-color: #f9d59e; - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); - color: #6f2509; -} - -.vystredeno{ /* helper */ - display: inline-block; - height: 100%; - vertical-align: middle; -} - -.galerie_nahled img { - vertical-align: middle; - max-height: 180px; - max-width: 180px; -} - -.galerie_nahled div { - position: absolute; - bottom: 0px; - width: 100%; - text-align: center; -} - -.podgalerie_nahled img { - margin-top: 20px; - margin-bottom: 15px; - max-height: 125px; - max-width: 167px; -} - -.podgalerie_nahled .nazev_galerie { - position: absolute; - width: 100%; - top: 160px; -} - -/* plus a minus tlacitka */ -.mam-org-only-galerie { - background: #eee4ec; - padding: 10px; - margin: 10px 10px 10px -20px; - border: #333 2px dashed; - float: left; -} - -.mam-org-only-galerie a{ - padding: 3px 5px; - margin: 5px; - border-radius: 20px; - background-color: #6f2509;; - color: #fffbf6; - float: left; -} - - -/* Odkazy na předchozí a následující podgalerii */ -.galerie_predchozi_nasledujici { - overflow: auto; - margin: 10px auto 10px auto; -} - -.galerie_predchozi_nasledujici .predchozi { - float: left; -} - -.galerie_predchozi_nasledujici .nasledujici { - float: right; -} - -/* posune kotvu obrázku v galerii o oranžový pruh dolu, aby se pod ním obrázek neschovával */ -/* https://stackoverflow.com/questions/10732690/offsetting-an-html-anchor-to-adjust-for-fixed-header */ -.kotva_obrazku { - position: absolute; - width: 0; - height: 55px; /* viz #title */ - margin-top: -55px; /* viz #title */ -} -@media(max-width: 860px) { - .kotva_obrazku { - height: 3em; /* #FIXME nemám páru, jak zjistit výšku toho elementu */ - margin-top: -3em; /* #FIXME */ - } -} - -/**/ - -ul.form { - list-style-type: none; - padding-left: 0px; -} -label.field-label { - font-weight: normal; -} -label.field-required { - font-weight: bold; -} -.field-error { - font-size: 14px; - color: red; -} -ul.form li{ - margin-bottom: 3px; -} -p.gdpr { - font-size: 6pt; - margin-bottom: .66em; -} -div.gdpr { - font-size: 6pt; -} - -/* Jak řešit */ - -.jakresit svg { - width: 33%; - padding: 10px; - filter: none; -} - -@media(max-width: 860px) { - .jakresit svg { - margin: auto; - display: grid; - width: 100%; - max-width: 360px; - } -} - -/* tabulka odevzdaných a došlých řešení */ - -/* Roztáhne obsah z containeru na celou šířku obrazovky: */ -.full_width { - width: 100vw; - margin-left: calc(-50vw + 485px); -} -/* Na úzkém displeji nechceme nic dělat. */ -@media(max-width: 860px) { - .full_width{ - margin-left: 0; - width: unset; - } -} - -.dosla_reseni tr th, .dosla_reseni tr td { - padding: 1px 10px 1px 10px; - border-collapse: collapse; - min-width: 8em; /*Nastřeleno, aby se řádky s řešeními nezalamovaly. Teoreticky není potřeba pro th, ale whatever.*/ -} - -.dosla_reseni tr:nth-child(even) { - background: rgb(253, 237, 213); -} - -/*Přichycování prvního sloupce a řádku*/ -.dosla_reseni { - display: block; - max-height: 90vh; - max-width: 90vw; - overflow: auto; - margin-left: 5vw; -} - -.dosla_reseni thead tr { - position: sticky; - top: 0; - z-index: 1; -} - -.dosla_reseni tr:nth-child(even) td:first-child, .dosla_reseni thead tr, .dosla_reseni thead tr:first-child td:first-child { - background: rgb(253, 237, 213); -} - -.dosla_reseni tr:nth-child(odd) td:first-child { - background: #fffbf6; -} - -.dosla_reseni tr td:first-child { - position: sticky; - left: 0; -} -/* */ - - -.odevzdana_reseni tr th, .odevzdana_reseni tr td { - border: 1px solid black; - padding: 1px 10px 1px 10px; - border-collapse: collapse; - text-align: center; -} - -.odevzdana_reseni.problem tr td { - text-align: left; -} - -/* registrace */ -label[for=id_skola] { - font-weight: bold; -} - -/* detail řešení */ -.bodovani>input { - width: 4em; -} - -.bodovani>input::placeholder { - color: lightgray; - opacity: 1; -} - -.bodovani>input::-webkit-input-placeholder { /* Edge */ - color: lightgray; -} - - -/* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ -/* Podle https://stackoverflow.com/a/48290544 */ -/* U autocomplete.ModelSelect2Multiple vyžaduje 'data-dropdown-css-class': 's2m-se-zaskrtavatky' */ -.s2m-se-zaskrtavatky .select2-results__option[aria-selected=true]:before { - content: '☑ '; - padding: 0 0 0 8px; -} - -.s2m-se-zaskrtavatky .select2-results__option[aria-selected=false]:before { - content: '◻ '; - padding: 0 0 0 8px; -} - -/* Oranžové zvýraznění v Select2 */ -.select2-results__option--highlighted { - background-color: #e84e10 !important; -} diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css new file mode 100644 index 00000000..15fb9a5e --- /dev/null +++ b/mamweb/static/css/modules.css @@ -0,0 +1,347 @@ +@charset "utf-8"; /* vynuť utf-8 */ + +/* Bloky použité na webu */ + + +/**** OZNAČENÍ NE-PUBLIC ČÁSTÍ ****/ +.mam-org-only { + background: var(--orgovska-svetla-fialova); + padding: 10px; + margin: 10px -10px; + border: var(--orgovska-fialova) 2px dashed; +} + +.mam-org-only .mam-org-only { + border: 0px; +} + +li.mam-org-only { + padding: 3px 0px; + margin: -2px 0px; +} + +/* plus a minus tlacitka */ +.mam-org-only-galerie { + background: var(--orgovska-svetla-fialova); + padding: 10px; + margin: 10px 10px 10px -20px; + border: #333 2px dashed; + float: left; +} + +.mam-org-only-galerie a{ + padding: 3px 5px; + margin: 5px; + border-radius: 20px; + background-color: var(--tmava-oranzova);; + color: var(--barva-pozadi); + float: left; +} +/**********************************/ + + +/**** ZAŠKRTÁVÁTKO ****/ +/* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ +/* Podle https://stackoverflow.com/a/48290544 */ +/* U autocomplete.ModelSelect2Multiple vyžaduje 'data-dropdown-css-class': 's2m-se-zaskrtavatky' */ +.s2m-se-zaskrtavatky .select2-results__option[aria-selected=true]:before { + content: '☑ '; + padding: 0 0 0 8px; +} + +.s2m-se-zaskrtavatky .select2-results__option[aria-selected=false]:before { + content: '◻ '; + padding: 0 0 0 8px; +} + +/* Oranžové zvýraznění v Select2 */ +.select2-results__option--highlighted { + background-color: var(--hlavni-oranzova) !important; +} +/**********************/ + + +/**** OTÁČECÍ KARTY ****/ +/* (orgové, archiv) */ +.flip-card { + perspective: 1000px; /* Remove this if you don't want the 3D effect */ + margin-left: auto; + margin-right: auto; +} + +#organizatori.flip-card { + width: 200px; + height: 250px; +} + +#archiv.flip-card { + width: 210px; + height: 298px; +} + +#archiv-rocnik.flip-card { + width: 144px; + height: 205px; +} + +#tema-rozcestnik.flip-card { + width: 300px; + height: 300px; +} + +/* This container is needed to position the front and back side */ +.flip-card-inner { + position: relative; + width: 100%; + height: 100%; + transition: transform 0.8s; + transform-style: preserve-3d; +} + +/* Do an horizontal flip when you move the mouse over the flip box container */ +.flip-card:hover .flip-card-inner { + transform: rotateY(180deg); +} + +/* Position the front and back side */ +.flip-card-front, .flip-card-back { + position: absolute; + width: 100%; + height: 100%; + -webkit-backface-visibility: hidden; /* Safari */ + backface-visibility: hidden; +} + + +div.flip-card-foto, div.flip-card-foto img { + width: 100%; + height: 100%; + +} + +/* Style the back side */ +.flip-card-back { + background-color: var(--svetla-oranzova); + color: black; + transform: rotateY(180deg); + padding: 10px; + padding-top: 20px; +} + +#archiv.flip-card-back { + background-color: white; +} + +/* karty archiv */ + +div.popis_rocniku { + text-align: left; + font-weight: bold; + margin: 20px; +} + + +div.popis_rocniku a, div.cislo_odkazy a { + font-weight: bold; + color: black; +} + +div.popis_rocniku a:hover, +div.cislo_odkazy a:hover { + color: var(--tmava-oranzova); +} + +div.cislo_odkazy ul { + margin: 0px; + padding: 0px; +} +/***********************/ + + +/**** TABULKY ****/ +/** Výsledkovky **/ +table .border-r { + border-right: solid 1px; +} + +table .border-b { + border-bottom: solid 1px; +} + +.vysledkovka td, .vysledkovka th { + padding: 0.1em 0.3em; +} + +.vysledkovka { + border: solid 2px; +} + +.podproblem { + color: gray; +} +/*****************/ + + +/** Tabulka odevzdaných a došlých řešení **/ +.dosla_reseni tr th, .dosla_reseni tr td { + padding: 1px 10px 1px 10px; + border-collapse: collapse; + min-width: 8em; /*Nastřeleno, aby se řádky s řešeními nezalamovaly. Teoreticky není potřeba pro th, ale whatever.*/ +} + +.dosla_reseni tr:nth-child(even) { + background: var(--svetlounka-oranzova); +} + +/*Přichycování prvního sloupce a řádku*/ +.dosla_reseni { + display: block; + max-height: 90vh; + max-width: 90vw; + overflow: auto; + margin-left: 5vw; +} + +.dosla_reseni thead tr { + position: sticky; + top: 0; + z-index: 1; +} + +.dosla_reseni tr:nth-child(even) td:first-child, .dosla_reseni thead tr, .dosla_reseni thead tr:first-child td:first-child { + background: var(--svetlounka-oranzova); +} + +.dosla_reseni tr:nth-child(odd) td:first-child { + background: var(--barva-pozadi); +} + +.dosla_reseni tr td:first-child { + position: sticky; + left: 0; +} +/******************************************/ + + +/** Tabulka mých (řešitelových) řešení **/ +.odevzdana_reseni tr th, .odevzdana_reseni tr td { + border: 1px solid black; + padding: 1px 10px 1px 10px; + border-collapse: collapse; + text-align: center; +} + +.odevzdana_reseni.problem tr td { + text-align: left; +} +/****************************************/ + + +/** Detail řešení **/ +.bodovani>input { + width: 4em; +} + +.bodovani>input::placeholder { + color: lightgray; + opacity: 1; +} + +.bodovani>input::-webkit-input-placeholder { /* Edge */ + color: lightgray; +} + +/* td obsahující křížek v detailu řešení se nesmí smrštit na 0 */ +/* FIXME až bude firefox příčetný, nahradit td:has(.smazat_hodnoceni) */ +.has_smazat_hodnoceni { + min-width: 20px; + padding: 3px; +} +/*******************/ +/*****************/ + + +/**** FORMULÁŘE ****/ +/* přihláška a další formuláře */ + +table.form td, table.form tr { + table-layout: fixed; + word-wrap: break-word; + padding: 5px; +} + +table#reseni.form td, table#reseni.form tr { + display: inline-table; +} + +input[type="file"] { + max-width: 250px; + text-overflow: ellipsis; +} + +.field-with-comment{ + position:relative; +} + +.field-comment{ + display:none; + text-shadow: 0 1px 0 #fff; + background-color: #f0f0f0 ; + border-color: #dbdbdb; + position:absolute; + z-index:100; + border:1px; + border-style:solid; + border-width:1px; + border-radius: 5px; + padding:3px; + top:50px; + left:10px; +} + +.field-with-comment:hover span.field-comment{ + display: block; +} + +input { + margin: 5px; +} + +textarea.feedback { + margin: 5px; +} + + + +ul.form { + list-style-type: none; + padding-left: 0px; +} +label.field-label { + font-weight: normal; +} +label.field-required { + font-weight: bold; +} +.field-error { + font-size: 14px; + color: red; +} +ul.form li{ + margin-bottom: 3px; +} +p.gdpr { + font-size: 6pt; + margin-bottom: .66em; +} +div.gdpr { + font-size: 6pt; +} + +/* registrace */ +label[for=id_skola] { + font-weight: bold; +} + +/*******************/ + diff --git a/mamweb/static/css/rozliseni.css b/mamweb/static/css/rozliseni.css deleted file mode 100644 index 35f52f88..00000000 --- a/mamweb/static/css/rozliseni.css +++ /dev/null @@ -1,35 +0,0 @@ -/* Rozlišení mezi lokálním, test a produkčním webem */ - -body.localweb:before, body.localweb:after, -body.testweb:before, body.testweb:after, -body.suprodweb:before, body.suprodweb:after { - content: ""; - position: fixed; - width: 20px; - height: 100%; - top: 0; -} - -body.localweb:before, -body.testweb:before, -body.suprodweb:before { - left: 0; -} - -body.localweb:after, -body.testweb:after, -body.suprodweb:after { - right: 0; -} - -body.localweb:before, body.localweb:after { - background: greenyellow; -} - -body.testweb:before, body.testweb:after { - background: darkorange; -} - -body.suprodweb:before, body.suprodweb:after { - background: red; -} diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index da6f67e1..5a0b55c6 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -10,7 +10,11 @@ {% block custom_css %}{% endblock %} <link href="{% static 'bootstrap/css/bootstrap-theme.css' %}" rel="stylesheet"> <link href="{% static 'bootstrap/css/bootstrap.css' %}" rel="stylesheet"> - <link href="{% static 'css/mamweb.css' %}?version=1" rel="stylesheet"> + <link href="{% static 'css/constants.css' %}?version=1" rel="stylesheet"> + <link href="{% static 'css/base.css' %}?version=1" rel="stylesheet"> + <link href="{% static 'css/layout.css' %}?version=1" rel="stylesheet"> + <link href="{% static 'css/modules.css' %}?version=1" rel="stylesheet"> + <link href="{% static 'css/galerie.css' %}?version=1" rel="stylesheet"> <link href="{% static 'prettyPhoto/css/prettyPhoto.css' %}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> <script src="{% static 'js/jquery-1.11.1.js' %}"></script> <script src="{% static 'js/jquery-3.4.1.js' %}"></script> diff --git a/vue_frontend/src/components/TreeNodeRoot.vue b/vue_frontend/src/components/TreeNodeRoot.vue index 674d0fda..408efce5 100644 --- a/vue_frontend/src/components/TreeNodeRoot.vue +++ b/vue_frontend/src/components/TreeNodeRoot.vue @@ -73,5 +73,9 @@ export default { </script> <style> -@import '../../../mamweb/static/css/mamweb.css'; +@import '../../../mamweb/static/css/base.css'; +@import '../../../mamweb/static/css/constants.css'; +@import '../../../mamweb/static/css/galerie.css'; +@import '../../../mamweb/static/css/layout.css'; +@import '../../../mamweb/static/css/modules.css'; </style> From c731af9ccd7d414fa66cd85e06461fbebd960ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 08:28:30 +0100 Subject: [PATCH 039/225] =?UTF-8?q?P=C5=99esun=20css=20galerie=20do=20gale?= =?UTF-8?q?rie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {mamweb => galerie}/static/css/galerie.css | 19 +++++++++++++++++++ galerie/templates/galerie/Galerie.html | 2 +- galerie/templates/galerie/GalerieNahled.html | 2 +- galerie/templates/galerie/GalerieNew.html | 2 +- galerie/templates/galerie/base.html | 6 ++++++ mamweb/static/css/modules.css | 18 ------------------ mamweb/templates/base.html | 1 - vue_frontend/src/components/TreeNodeRoot.vue | 1 - 8 files changed, 28 insertions(+), 23 deletions(-) rename {mamweb => galerie}/static/css/galerie.css (89%) create mode 100644 galerie/templates/galerie/base.html diff --git a/mamweb/static/css/galerie.css b/galerie/static/css/galerie.css similarity index 89% rename from mamweb/static/css/galerie.css rename to galerie/static/css/galerie.css index 6ee1a676..46df8552 100644 --- a/mamweb/static/css/galerie.css +++ b/galerie/static/css/galerie.css @@ -165,3 +165,22 @@ margin-top: -3em; /* #FIXME */ } } + + +/* plus a minus tlacitka */ +.mam-org-only-galerie { + background: var(--orgovska-svetla-fialova); + padding: 10px; + margin: 10px 10px 10px -20px; + border: #333 2px dashed; + float: left; +} + +.mam-org-only-galerie a{ + padding: 3px 5px; + margin: 5px; + border-radius: 20px; + background-color: var(--tmava-oranzova);; + color: var(--barva-pozadi); + float: left; +} diff --git a/galerie/templates/galerie/Galerie.html b/galerie/templates/galerie/Galerie.html index aadc969e..ff8ebfe3 100644 --- a/galerie/templates/galerie/Galerie.html +++ b/galerie/templates/galerie/Galerie.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "galerie/base.html" %} {% block nadpis1a %} diff --git a/galerie/templates/galerie/GalerieNahled.html b/galerie/templates/galerie/GalerieNahled.html index ec0d5f67..87794680 100644 --- a/galerie/templates/galerie/GalerieNahled.html +++ b/galerie/templates/galerie/GalerieNahled.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "galerie/base.html" %} {% block nadpis1a %} Galerie {{galerie.nazev}} diff --git a/galerie/templates/galerie/GalerieNew.html b/galerie/templates/galerie/GalerieNew.html index 1b549232..d974224c 100644 --- a/galerie/templates/galerie/GalerieNew.html +++ b/galerie/templates/galerie/GalerieNew.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "galerie/base.html" %} {% block content %} diff --git a/galerie/templates/galerie/base.html b/galerie/templates/galerie/base.html new file mode 100644 index 00000000..032f16b2 --- /dev/null +++ b/galerie/templates/galerie/base.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% load static %} + +{% block custom_css %} + <link href="{% static 'css/galerie.css' %}?version=1" rel="stylesheet"> +{% endblock %} diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 15fb9a5e..5302b673 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -19,24 +19,6 @@ li.mam-org-only { padding: 3px 0px; margin: -2px 0px; } - -/* plus a minus tlacitka */ -.mam-org-only-galerie { - background: var(--orgovska-svetla-fialova); - padding: 10px; - margin: 10px 10px 10px -20px; - border: #333 2px dashed; - float: left; -} - -.mam-org-only-galerie a{ - padding: 3px 5px; - margin: 5px; - border-radius: 20px; - background-color: var(--tmava-oranzova);; - color: var(--barva-pozadi); - float: left; -} /**********************************/ diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 5a0b55c6..027f296f 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -14,7 +14,6 @@ <link href="{% static 'css/base.css' %}?version=1" rel="stylesheet"> <link href="{% static 'css/layout.css' %}?version=1" rel="stylesheet"> <link href="{% static 'css/modules.css' %}?version=1" rel="stylesheet"> - <link href="{% static 'css/galerie.css' %}?version=1" rel="stylesheet"> <link href="{% static 'prettyPhoto/css/prettyPhoto.css' %}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> <script src="{% static 'js/jquery-1.11.1.js' %}"></script> <script src="{% static 'js/jquery-3.4.1.js' %}"></script> diff --git a/vue_frontend/src/components/TreeNodeRoot.vue b/vue_frontend/src/components/TreeNodeRoot.vue index 408efce5..7bb107ca 100644 --- a/vue_frontend/src/components/TreeNodeRoot.vue +++ b/vue_frontend/src/components/TreeNodeRoot.vue @@ -75,7 +75,6 @@ export default { <style> @import '../../../mamweb/static/css/base.css'; @import '../../../mamweb/static/css/constants.css'; -@import '../../../mamweb/static/css/galerie.css'; @import '../../../mamweb/static/css/layout.css'; @import '../../../mamweb/static/css/modules.css'; </style> From eec9abb9c1b49a07dac6332256ce4f15ce6d8001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 08:32:36 +0100 Subject: [PATCH 040/225] =?UTF-8?q?Dosp=C4=9Bl=20jsem=20k=20n=C3=A1zoru,?= =?UTF-8?q?=20=C5=BEe=20PrettyPhoto=20se=20na=20webu=20nepou=C5=BE=C3=ADv?= =?UTF-8?q?=C3=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/css.rst | 3 +- mamweb/static/prettyPhoto/css/prettyPhoto.css | 525 ---------- .../images/dark_rounded/btnNext.png | Bin 1411 -> 0 bytes .../images/dark_rounded/btnPrevious.png | Bin 1442 -> 0 bytes .../images/dark_rounded/contentPattern.png | Bin 130 -> 0 bytes .../images/dark_rounded/default_thumbnail.gif | Bin 227 -> 0 bytes .../images/dark_rounded/loader.gif | Bin 2545 -> 0 bytes .../images/dark_rounded/sprite.png | Bin 4076 -> 0 bytes .../images/dark_square/btnNext.png | Bin 1411 -> 0 bytes .../images/dark_square/btnPrevious.png | Bin 1442 -> 0 bytes .../images/dark_square/contentPattern.png | Bin 121 -> 0 bytes .../images/dark_square/default_thumbnail.gif | Bin 227 -> 0 bytes .../prettyPhoto/images/dark_square/loader.gif | Bin 2545 -> 0 bytes .../prettyPhoto/images/dark_square/sprite.png | Bin 3507 -> 0 bytes .../images/default/default_thumb.png | Bin 1537 -> 0 bytes .../prettyPhoto/images/default/loader.gif | Bin 6331 -> 0 bytes .../prettyPhoto/images/default/sprite.png | Bin 6682 -> 0 bytes .../images/default/sprite_next.png | Bin 1358 -> 0 bytes .../images/default/sprite_prev.png | Bin 1376 -> 0 bytes .../prettyPhoto/images/default/sprite_x.png | Bin 1097 -> 0 bytes .../prettyPhoto/images/default/sprite_y.png | Bin 1162 -> 0 bytes .../prettyPhoto/images/facebook/btnNext.png | Bin 845 -> 0 bytes .../images/facebook/btnPrevious.png | Bin 828 -> 0 bytes .../images/facebook/contentPatternBottom.png | Bin 142 -> 0 bytes .../images/facebook/contentPatternLeft.png | Bin 137 -> 0 bytes .../images/facebook/contentPatternRight.png | Bin 136 -> 0 bytes .../images/facebook/contentPatternTop.png | Bin 142 -> 0 bytes .../images/facebook/default_thumbnail.gif | Bin 227 -> 0 bytes .../prettyPhoto/images/facebook/loader.gif | Bin 2545 -> 0 bytes .../prettyPhoto/images/facebook/sprite.png | Bin 4227 -> 0 bytes .../images/light_rounded/btnNext.png | Bin 1411 -> 0 bytes .../images/light_rounded/btnPrevious.png | Bin 1442 -> 0 bytes .../light_rounded/default_thumbnail.gif | Bin 227 -> 0 bytes .../images/light_rounded/loader.gif | Bin 2545 -> 0 bytes .../images/light_rounded/sprite.png | Bin 4099 -> 0 bytes .../images/light_square/btnNext.png | Bin 1411 -> 0 bytes .../images/light_square/btnPrevious.png | Bin 1442 -> 0 bytes .../images/light_square/default_thumbnail.gif | Bin 227 -> 0 bytes .../images/light_square/loader.gif | Bin 2545 -> 0 bytes .../images/light_square/sprite.png | Bin 3507 -> 0 bytes .../prettyPhoto/js/jquery.prettyPhoto.js | 911 ------------------ mamweb/templates/base.html | 11 - 42 files changed, 1 insertion(+), 1449 deletions(-) delete mode 100644 mamweb/static/prettyPhoto/css/prettyPhoto.css delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/contentPattern.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/default/default_thumb.png delete mode 100644 mamweb/static/prettyPhoto/images/default/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_next.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_prev.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_x.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_y.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/facebook/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/facebook/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/light_square/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/light_square/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_square/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_square/sprite.png delete mode 100644 mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js diff --git a/docs/css.rst b/docs/css.rst index 3efe266f..a6cf96b1 100644 --- a/docs/css.rst +++ b/docs/css.rst @@ -11,10 +11,9 @@ CSSka do Dále jsem separoval CSSka pro **galerii** (potřebuje hodně specifických stylů). Stejně tak **korekturovátko** má styly separátně. -Dále web (asi) používá dva externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): +Dále web (asi) používá externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): - bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap přidává ``font-size:14px``, bez čehož se web úplně rozpadne) -- pretty photo: ??? (něco s obrázky) Pak jsou tu ``mamweb-dev.css`` a ``printtable.css``, co jsem si ještě nerozmyslel, co s tím. diff --git a/mamweb/static/prettyPhoto/css/prettyPhoto.css b/mamweb/static/prettyPhoto/css/prettyPhoto.css deleted file mode 100644 index ae43519b..00000000 --- a/mamweb/static/prettyPhoto/css/prettyPhoto.css +++ /dev/null @@ -1,525 +0,0 @@ -/* ------------------------------------------------------------------------ - This you can edit. -------------------------------------------------------------------------- */ - - /* ---------------------------------- - Default Theme - ----------------------------------- */ - - div.pp_default .pp_top, - div.pp_default .pp_top .pp_middle, - div.pp_default .pp_top .pp_left, - div.pp_default .pp_top .pp_right, - div.pp_default .pp_bottom, - div.pp_default .pp_bottom .pp_left, - div.pp_default .pp_bottom .pp_middle, - div.pp_default .pp_bottom .pp_right { height: 13px; } - - div.pp_default .pp_top .pp_left { background: url(../images/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ - div.pp_default .pp_top .pp_middle { background: url(../images/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ - div.pp_default .pp_top .pp_right { background: url(../images/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ - - div.pp_default .pp_content .ppt { color: #f8f8f8; } - div.pp_default .pp_content_container .pp_left { background: url(../images/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } - div.pp_default .pp_content_container .pp_right { background: url(../images/default/sprite_y.png) top right repeat-y; padding-right: 13px; } - div.pp_default .pp_content { background-color: #fff; } /* Content background */ - div.pp_default .pp_next:hover { background: url(../images/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.pp_default .pp_previous:hover { background: url(../images/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.pp_default .pp_expand { background: url(../images/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ - div.pp_default .pp_expand:hover { background: url(../images/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ - div.pp_default .pp_contract { background: url(../images/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ - div.pp_default .pp_contract:hover { background: url(../images/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ - div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ - div.pp_default #pp_full_res .pp_inline { color: #000; } - div.pp_default .pp_gallery ul li a { background: url(../images/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } - div.pp_default .pp_gallery ul li a:hover, - div.pp_default .pp_gallery ul li.selected a { border-color: #fff; } - div.pp_default .pp_social { margin-top: 7px; } - - div.pp_default .pp_gallery a.pp_arrow_previous, - div.pp_default .pp_gallery a.pp_arrow_next { position: static; left: auto; } - div.pp_default .pp_nav .pp_play, - div.pp_default .pp_nav .pp_pause { background: url(../images/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } - div.pp_default .pp_nav .pp_pause { background-position: -51px -29px; } - div.pp_default .pp_details { position: relative; } - div.pp_default a.pp_arrow_previous, - div.pp_default a.pp_arrow_next { background: url(../images/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } - div.pp_default a.pp_arrow_next { left: 52px; background-position: -82px -3px; } /* The next arrow in the bottom nav */ - div.pp_default .pp_content_container .pp_details { margin-top: 5px; } - div.pp_default .pp_nav { clear: none; height: 30px; width: 110px; position: relative; } - div.pp_default .pp_nav .currentTextHolder{ font-family: Georgia; font-style: italic; color:#999; font-size: 11px; left: 75px; line-height: 25px; margin: 0; padding: 0 0 0 10px; position: absolute; top: 2px; } - - div.pp_default .pp_close:hover, div.pp_default .pp_nav .pp_play:hover, div.pp_default .pp_nav .pp_pause:hover, div.pp_default .pp_arrow_next:hover, div.pp_default .pp_arrow_previous:hover { opacity:0.7; } - - div.pp_default .pp_description{ font-size: 11px; font-weight: bold; line-height: 14px; margin: 5px 50px 5px 0; } - - div.pp_default .pp_bottom .pp_left { background: url(../images/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ - div.pp_default .pp_bottom .pp_middle { background: url(../images/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ - div.pp_default .pp_bottom .pp_right { background: url(../images/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ - - div.pp_default .pp_loaderIcon { background: url(../images/default/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Light Rounded Theme - ----------------------------------- */ - - - div.light_rounded .pp_top .pp_left { background: url(../images/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.light_rounded .pp_top .pp_middle { background: #fff; } /* Top pattern/color */ - div.light_rounded .pp_top .pp_right { background: url(../images/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.light_rounded .pp_content .ppt { color: #000; } - div.light_rounded .pp_content_container .pp_left, - div.light_rounded .pp_content_container .pp_right { background: #fff; } - div.light_rounded .pp_content { background-color: #fff; } /* Content background */ - div.light_rounded .pp_next:hover { background: url(../images/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_rounded .pp_previous:hover { background: url(../images/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.light_rounded .pp_expand { background: url(../images/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_rounded .pp_expand:hover { background: url(../images/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_rounded .pp_contract { background: url(../images/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_rounded .pp_contract:hover { background: url(../images/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.light_rounded .pp_details { position: relative; } - div.light_rounded .pp_description { margin-right: 85px; } - div.light_rounded #pp_full_res .pp_inline { color: #000; } - div.light_rounded .pp_gallery a.pp_arrow_previous, - div.light_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_rounded .pp_nav .pp_play { background: url(../images/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_rounded .pp_nav .pp_pause { background: url(../images/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.light_rounded .pp_arrow_previous { background: url(../images/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.light_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_rounded .pp_arrow_next { background: url(../images/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.light_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.light_rounded .pp_bottom .pp_left { background: url(../images/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.light_rounded .pp_bottom .pp_middle { background: #fff; } /* Bottom pattern/color */ - div.light_rounded .pp_bottom .pp_right { background: url(../images/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - div.light_rounded .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - /* ---------------------------------- - Dark Rounded Theme - ----------------------------------- */ - - div.dark_rounded .pp_top .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.dark_rounded .pp_top .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ - div.dark_rounded .pp_top .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.dark_rounded .pp_content_container .pp_left { background: url(../images/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ - div.dark_rounded .pp_content_container .pp_right { background: url(../images/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ - div.dark_rounded .pp_content { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ - div.dark_rounded .pp_next:hover { background: url(../images/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_rounded .pp_previous:hover { background: url(../images/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.dark_rounded .pp_expand { background: url(../images/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_rounded .pp_expand:hover { background: url(../images/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_rounded .pp_contract { background: url(../images/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_rounded .pp_contract:hover { background: url(../images/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.dark_rounded .pp_details { position: relative; } - div.dark_rounded .pp_description { margin-right: 85px; } - div.dark_rounded .currentTextHolder { color: #c4c4c4; } - div.dark_rounded .pp_description { color: #fff; } - div.dark_rounded #pp_full_res .pp_inline { color: #fff; } - div.dark_rounded .pp_gallery a.pp_arrow_previous, - div.dark_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_rounded .pp_nav .pp_play { background: url(../images/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_rounded .pp_nav .pp_pause { background: url(../images/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.dark_rounded .pp_arrow_previous { background: url(../images/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.dark_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_rounded .pp_arrow_next { background: url(../images/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.dark_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.dark_rounded .pp_bottom .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.dark_rounded .pp_bottom .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ - div.dark_rounded .pp_bottom .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - div.dark_rounded .pp_loaderIcon { background: url(../images/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Dark Square Theme - ----------------------------------- */ - - div.dark_square .pp_left , - div.dark_square .pp_middle, - div.dark_square .pp_right, - div.dark_square .pp_content { background: #000; } - - div.dark_square .currentTextHolder { color: #c4c4c4; } - div.dark_square .pp_description { color: #fff; } - div.dark_square .pp_loaderIcon { background: url(../images/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ - - div.dark_square .pp_expand { background: url(../images/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_square .pp_expand:hover { background: url(../images/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_square .pp_contract { background: url(../images/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_square .pp_contract:hover { background: url(../images/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.dark_square .pp_details { position: relative; } - div.dark_square .pp_description { margin: 0 85px 0 0; } - div.dark_square #pp_full_res .pp_inline { color: #fff; } - div.dark_square .pp_gallery a.pp_arrow_previous, - div.dark_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_square .pp_nav { clear: none; } - div.dark_square .pp_nav .pp_play { background: url(../images/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_square .pp_nav .pp_pause { background: url(../images/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.dark_square .pp_arrow_previous { background: url(../images/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.dark_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_square .pp_arrow_next { background: url(../images/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.dark_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.dark_square .pp_next:hover { background: url(../images/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_square .pp_previous:hover { background: url(../images/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - - /* ---------------------------------- - Light Square Theme - ----------------------------------- */ - - div.light_square .pp_left , - div.light_square .pp_middle, - div.light_square .pp_right, - div.light_square .pp_content { background: #fff; } - - div.light_square .pp_content .ppt { color: #000; } - div.light_square .pp_expand { background: url(../images/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_square .pp_expand:hover { background: url(../images/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_square .pp_contract { background: url(../images/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_square .pp_contract:hover { background: url(../images/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.light_square .pp_details { position: relative; } - div.light_square .pp_description { margin-right: 85px; } - div.light_square #pp_full_res .pp_inline { color: #000; } - div.light_square .pp_gallery a.pp_arrow_previous, - div.light_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_square .pp_nav .pp_play { background: url(../images/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_square .pp_nav .pp_pause { background: url(../images/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.light_square .pp_arrow_previous { background: url(../images/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.light_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_square .pp_arrow_next { background: url(../images/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.light_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.light_square .pp_next:hover { background: url(../images/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_square .pp_previous:hover { background: url(../images/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - div.light_square .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Facebook style Theme - ----------------------------------- */ - - div.facebook .pp_top .pp_left { background: url(../images/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.facebook .pp_top .pp_middle { background: url(../images/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ - div.facebook .pp_top .pp_right { background: url(../images/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.facebook .pp_content .ppt { color: #000; } - div.facebook .pp_content_container .pp_left { background: url(../images/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ - div.facebook .pp_content_container .pp_right { background: url(../images/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ - div.facebook .pp_content { background: #fff; } /* Content background */ - div.facebook .pp_expand { background: url(../images/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.facebook .pp_expand:hover { background: url(../images/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.facebook .pp_contract { background: url(../images/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.facebook .pp_contract:hover { background: url(../images/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.facebook .pp_details { position: relative; } - div.facebook .pp_description { margin: 0 37px 0 0; } - div.facebook #pp_full_res .pp_inline { color: #000; } - div.facebook .pp_loaderIcon { background: url(../images/facebook/loader.gif) center center no-repeat; } /* Loader icon */ - - div.facebook .pp_arrow_previous { background: url(../images/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ - div.facebook .pp_arrow_previous.disabled { background-position: 0 -96px; cursor: default; } - div.facebook .pp_arrow_next { background: url(../images/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ - div.facebook .pp_arrow_next.disabled { background-position: -32px -96px; cursor: default; } - div.facebook .pp_nav { margin-top: 0; } - div.facebook .pp_nav p { font-size: 15px; padding: 0 3px 0 4px; } - div.facebook .pp_nav .pp_play { background: url(../images/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } - div.facebook .pp_nav .pp_pause { background: url(../images/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } - - div.facebook .pp_next:hover { background: url(../images/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.facebook .pp_previous:hover { background: url(../images/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - div.facebook .pp_bottom .pp_left { background: url(../images/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.facebook .pp_bottom .pp_middle { background: url(../images/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ - div.facebook .pp_bottom .pp_right { background: url(../images/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - -/* ------------------------------------------------------------------------ - DO NOT CHANGE -------------------------------------------------------------------------- */ - - div.pp_pic_holder a:focus { outline:none; } - - div.pp_overlay { - background: #000; - display: none; - left: 0; - position: absolute; - top: 0; - width: 100%; - z-index: 9500; - } - - div.pp_pic_holder { - display: none; - position: absolute; - width: 100px; - z-index: 10000; - } - - - .pp_top { - height: 20px; - position: relative; - } - * html .pp_top { padding: 0 20px; } - - .pp_top .pp_left { - height: 20px; - left: 0; - position: absolute; - width: 20px; - } - .pp_top .pp_middle { - height: 20px; - left: 20px; - position: absolute; - right: 20px; - } - * html .pp_top .pp_middle { - left: 0; - position: static; - } - - .pp_top .pp_right { - height: 20px; - left: auto; - position: absolute; - right: 0; - top: 0; - width: 20px; - } - - .pp_content { height: 40px; min-width: 40px; } - * html .pp_content { width: 40px; } - - .pp_fade { display: none; } - - .pp_content_container { - position: relative; - text-align: left; - width: 100%; - } - - .pp_content_container .pp_left { padding-left: 20px; } - .pp_content_container .pp_right { padding-right: 20px; } - - .pp_content_container .pp_details { - float: left; - margin: 10px 0 2px 0; - } - .pp_description { - display: none; - margin: 0; - } - - .pp_social { float: left; margin: 0; } - .pp_social .facebook { float: left; margin-left: 5px; width: 55px; overflow: hidden; } - .pp_social .twitter { float: left; } - - .pp_nav { - clear: right; - float: left; - margin: 3px 10px 0 0; - } - - .pp_nav p { - float: left; - margin: 2px 4px; - white-space: nowrap; - } - - .pp_nav .pp_play, - .pp_nav .pp_pause { - float: left; - margin-right: 4px; - text-indent: -10000px; - } - - a.pp_arrow_previous, - a.pp_arrow_next { - display: block; - float: left; - height: 15px; - margin-top: 3px; - overflow: hidden; - text-indent: -10000px; - width: 14px; - } - - .pp_hoverContainer { - position: absolute; - top: 0; - width: 100%; - z-index: 2000; - } - - .pp_gallery { - display: none; - left: 50%; - margin-top: -50px; - position: absolute; - z-index: 10000; - } - - .pp_gallery div { - float: left; - overflow: hidden; - position: relative; - } - - .pp_gallery ul { - float: left; - height: 35px; - margin: 0 0 0 5px; - padding: 0; - position: relative; - white-space: nowrap; - } - - .pp_gallery ul a { - border: 1px #000 solid; - border: 1px rgba(0,0,0,0.5) solid; - display: block; - float: left; - height: 33px; - overflow: hidden; - } - - .pp_gallery ul a:hover, - .pp_gallery li.selected a { border-color: #fff; } - - .pp_gallery ul a img { border: 0; } - - .pp_gallery li { - display: block; - float: left; - margin: 0 5px 0 0; - padding: 0; - } - - .pp_gallery li.default a { - background: url(../images/facebook/default_thumbnail.gif) 0 0 no-repeat; - display: block; - height: 33px; - width: 50px; - } - - .pp_gallery li.default a img { display: none; } - - .pp_gallery .pp_arrow_previous, - .pp_gallery .pp_arrow_next { - margin-top: 7px !important; - } - - a.pp_next { - background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; - display: block; - float: right; - height: 100%; - text-indent: -10000px; - width: 49%; - } - - a.pp_previous { - background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; - display: block; - float: left; - height: 100%; - text-indent: -10000px; - width: 49%; - } - - a.pp_expand, - a.pp_contract { - cursor: pointer; - display: none; - height: 20px; - position: absolute; - right: 30px; - text-indent: -10000px; - top: 10px; - width: 20px; - z-index: 20000; - } - - a.pp_close { - position: absolute; right: 0; top: 0; - display: block; - line-height:22px; - text-indent: -10000px; - } - - .pp_bottom { - height: 20px; - position: relative; - } - * html .pp_bottom { padding: 0 20px; } - - .pp_bottom .pp_left { - height: 20px; - left: 0; - position: absolute; - width: 20px; - } - .pp_bottom .pp_middle { - height: 20px; - left: 20px; - position: absolute; - right: 20px; - } - * html .pp_bottom .pp_middle { - left: 0; - position: static; - } - - .pp_bottom .pp_right { - height: 20px; - left: auto; - position: absolute; - right: 0; - top: 0; - width: 20px; - } - - .pp_loaderIcon { - display: block; - height: 24px; - left: 50%; - margin: -12px 0 0 -12px; - position: absolute; - top: 50%; - width: 24px; - } - - #pp_full_res { - line-height: 1 !important; - } - - #pp_full_res .pp_inline { - text-align: left; - } - - #pp_full_res .pp_inline p { margin: 0 0 15px 0; } - - div.ppt { - color: #fff; - display: none; - font-size: 17px; - margin: 0 0 5px 15px; - z-index: 9999; - } diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png deleted file mode 100644 index b28c1ef3d595d5af9db1f2a4378cfd64407ed5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmV-}1$_F6P)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%B}qg<RCwCVn8{0INf5@PwA@z|6c2+7 zDrl((5t>$9a05|MJUF0->4SGK<7F5TJ=lWKN6+&IhzfIXTxP_BAUYSlC~k)ya96~A ztE!1Fs3@{uSCwU7suGg-Dqm*4{6%~bnXhbax0`G>8;y^TlaJ!y=Z$>*$bCxrnvF(o z`x+M)R}d8y<%*4sb=vKA7v=~-N$_0n-ZRLqHxCaF-bMz>;maqN%k>M_92kbLQc)rz zB8pyLU&UAqOwrNN6cZCek&%%UV)*w#qa-FKlGEv|W5{3m+Nvr57=wC&(2ff5mzNh( z17JKGEL7k>2JHbJV~7v<&GHpkvnUX*@G!g&=-b;{j2C0X$H#{?xZRXAJPcs<u6or3 zz;CM&&==qc5$y}Phby@0#!ry6Si&P`R6ugF66yLX07E}D62MWR0IPw*%F~>=9iF5m z$;ezRVzj2FM&MRfRz${TF_i##NF31cG^#Z`@cilNNv;SVRNO-;YUt<ZXKC|#hTE_% ztPjS;7!=HdasCvD@I$q(!R{H*h%9Y|LBRs<@9!x+J)Nqmss#Mz=H{CP8Cl&M<5&<D zhnJf&he0wjGDJO>mzPp;pO=?M$H&KXa&kgtWo0s6lPBgmI5?pE{Cs(iF?a`l;~DyD zeo-f&{o>+6-iK$t<o(g~n7Kv4;sC`2SRBAjspIAPGBuQDb~T1s9v>g6sHliqT3V>L zx0mkj?xbHsLxUI=K#h%!R99C=xw*MwjGUYtIy^k2!oou8>FJR^X=!QH*48EpNJ&YN zz7-V})Y{rg#l^)k2J7^-2D?WJrFf_^uu26000%G@R$X09v$M0`^;N^cP^fA+Q(jhM zR905f>guZ8WBY@$Q1<utX<}kRfRdAwDK#~frlzK-zrUY4J3A>eGn3BF&S-6IO?Hdx z>uV}0DWR^eF6oE&U>w5J%A>2v)`ghfQje?W0Dg6KC9&Gv+$?R{&z#uwe4u1DKR++| z0`pl5JPg3TzCNn2uNR5JkaKf$B7Z<nPfv?6;0RQW^@M~3Q35;-B?R23H7WSbdYnW| zFR5326~IEunjFnBYKY0nNl{OCcemGA@HPq(=Jxis7zFcRZGb*MKljdskOLUzL|p6I zw6DJ{GeXbO)(qzh7;y#*Vi7YlGyeBM<MbA&K$eS(i<Fg>_1&}6(^FbrUZ(Z+b=uwC z6(A&3NPBN@PmI#h(ILt+GyQw^>CHgU3XH4^;Dv>Sz>|8Qt(jZ55^YOLN}|opO-W|v z)`SB2*4EZaaw;z`7Z10$w~KTUvj`0&EQiD4JrpU!n-28IYLy5594xT8W%)a>_yR`3 z4uAv%?*STd2moYs%#XI6ogI-V+As$Uv9+}&&z6>!Bm^*iV`GB~3JU1x=tz`+@o0Yw z+J^WV9UU#@iT~smWm{7`EZfx7BohS#jDGsnrH2m_UXQDI4>Bu&@Eaf)XZ|(~k9jZ_ z_ZWxq`emr|Xzc63$X|%rJll+IY;0_V?|(O6W`YCeEnxjf(UTDFL-@J*W=y-;YJV`; zte&CGf|v^iSUrL(V1rF)A^YGM9v(j6)c=JS`mZnWV1WUv&|&|TH8L{d9vmF}hxfbR z82m3^-_rhKSS4+OhpU&ZpOyf34Gj(b&6|EdCyLJu@m1w&8bCiKt?{ei;p}BIk$v;W z;K0BD2qXDg#@j>#gM45R2lxBQbC~&$0rR=di9ZMN#~@dC2t52le+>RFzyR~BA^19M RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%L`g(JRCwCdSV>DPR}?-yIFE=Eh>D`1 zxDZ4LPAE<ow+dNglYbxtT!{-;g37~1P!z>TaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy<TJP`gZ4VC*)~BZ@ z>+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql><Ii^H#-n zg^m?DLH;@vOLTsIPB%9<uh`WE;7sQLj<t&Y{GgzqFB=;hGX%I_Gktx1%>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ<hF=kPu2sOJk!1)avRg8xQ4KSy}v2VFiHJ*VidCGm~||VR#n$BO@be zb92+ph-WUV_9O-A6$q)=kcfx~1`JzIPEJ_AiAZ%VMXg0{|7HXYwz9Lc8Nl-LGR4Kk zQB6$^_4oI)G1b-8ba;5kFG)#B;d=uE1LSZxsIsz>8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jn<P~5^N7GtYn&coj?Y@c$Jf57K%yTH0{ECT*p`@fFDlRVO^WEKD zcbKN9r&B{i1D^xr)YKF+Twh;L2?+_5k&(gc5Jh2OVaE4@F+HDk00388TT7}c)7jbC zKLDGmxyymc3|f-jTWEE4b@B1&=!lIE4Grb<^73*X5)E*O2%=$SWrd9b`;ylX<Te;b zdca`lGufbRJALldWS90vvG{CRt*x!@Fh(c|n<FD5)ZN|9bL15am#PgwsG?wZZEcO8 z!@aGoEh;Q5<WxXtgJo|mNH1U}85<j8u!y*_vNB^a)CIZ}kq)nYTHonN+mLE5;Rc3w zc6MlbdYW=_ayY-RiGU!4OG`^BKR=)H^71%x01yQY)fTd}w8Wjjo8Ud~0}UA;A7|jO z%@=T2>sm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(<cFHWe69E@2CXT`hsZ==p`} z43=?(qp%i^L!?OMHVJe96yBxxWs@L!s;a7Z9h@M$IFAjILq+CiDkaUE6BsXH=;<v0 z)%&XKvfd&nY#475(W|#lUyNg&Ct%T~$QV(8e@A1mlb;G43<t?(!&h~duP_sVO1@Wn zhhYSeUxOBg09=^<7i~$e3%{ru^VQ(s;08J%a@wy!%ZHBSrL;v~;VwlN3<GdSN5@Yt z!04$?zXq)Xm%c4uc<=jNq{M+7Mo4Q6Kg!<|yQ<Fr=cnEW`!OgW72Et{P=&fpfw!pZ wR@b(56@6IUn>#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png deleted file mode 100644 index e5a047c3a7efb0f8085e0b70523299af00a5dbd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fo6;Bt(kcwMLDG3QT&O5jsIO33Mko90i<6^cxDT}NJ0fqt! a2N<mGGd%CeKWGG0&*16m=d#Wzp$PzK+$SLb diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrA<A|5oMoY-nk1Ywzgn>h9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/loader.gif b/mamweb/static/prettyPhoto/images/dark_rounded/loader.gif deleted file mode 100644 index 50820eedd904647a76c4c2c1d830d4339588c08d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 K>KdTlt$zd2^$V2% diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/sprite.png b/mamweb/static/prettyPhoto/images/dark_rounded/sprite.png deleted file mode 100644 index fb8c0f83d715aec1014b77f0b44002a07a635052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4076 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 diff --git a/mamweb/static/prettyPhoto/images/dark_square/btnNext.png b/mamweb/static/prettyPhoto/images/dark_square/btnNext.png deleted file mode 100644 index b28c1ef3d595d5af9db1f2a4378cfd64407ed5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmV-}1$_F6P)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%B}qg<RCwCVn8{0INf5@PwA@z|6c2+7 zDrl((5t>$9a05|MJUF0->4SGK<7F5TJ=lWKN6+&IhzfIXTxP_BAUYSlC~k)ya96~A ztE!1Fs3@{uSCwU7suGg-Dqm*4{6%~bnXhbax0`G>8;y^TlaJ!y=Z$>*$bCxrnvF(o z`x+M)R}d8y<%*4sb=vKA7v=~-N$_0n-ZRLqHxCaF-bMz>;maqN%k>M_92kbLQc)rz zB8pyLU&UAqOwrNN6cZCek&%%UV)*w#qa-FKlGEv|W5{3m+Nvr57=wC&(2ff5mzNh( z17JKGEL7k>2JHbJV~7v<&GHpkvnUX*@G!g&=-b;{j2C0X$H#{?xZRXAJPcs<u6or3 zz;CM&&==qc5$y}Phby@0#!ry6Si&P`R6ugF66yLX07E}D62MWR0IPw*%F~>=9iF5m z$;ezRVzj2FM&MRfRz${TF_i##NF31cG^#Z`@cilNNv;SVRNO-;YUt<ZXKC|#hTE_% ztPjS;7!=HdasCvD@I$q(!R{H*h%9Y|LBRs<@9!x+J)Nqmss#Mz=H{CP8Cl&M<5&<D zhnJf&he0wjGDJO>mzPp;pO=?M$H&KXa&kgtWo0s6lPBgmI5?pE{Cs(iF?a`l;~DyD zeo-f&{o>+6-iK$t<o(g~n7Kv4;sC`2SRBAjspIAPGBuQDb~T1s9v>g6sHliqT3V>L zx0mkj?xbHsLxUI=K#h%!R99C=xw*MwjGUYtIy^k2!oou8>FJR^X=!QH*48EpNJ&YN zz7-V})Y{rg#l^)k2J7^-2D?WJrFf_^uu26000%G@R$X09v$M0`^;N^cP^fA+Q(jhM zR905f>guZ8WBY@$Q1<utX<}kRfRdAwDK#~frlzK-zrUY4J3A>eGn3BF&S-6IO?Hdx z>uV}0DWR^eF6oE&U>w5J%A>2v)`ghfQje?W0Dg6KC9&Gv+$?R{&z#uwe4u1DKR++| z0`pl5JPg3TzCNn2uNR5JkaKf$B7Z<nPfv?6;0RQW^@M~3Q35;-B?R23H7WSbdYnW| zFR5326~IEunjFnBYKY0nNl{OCcemGA@HPq(=Jxis7zFcRZGb*MKljdskOLUzL|p6I zw6DJ{GeXbO)(qzh7;y#*Vi7YlGyeBM<MbA&K$eS(i<Fg>_1&}6(^FbrUZ(Z+b=uwC z6(A&3NPBN@PmI#h(ILt+GyQw^>CHgU3XH4^;Dv>Sz>|8Qt(jZ55^YOLN}|opO-W|v z)`SB2*4EZaaw;z`7Z10$w~KTUvj`0&EQiD4JrpU!n-28IYLy5594xT8W%)a>_yR`3 z4uAv%?*STd2moYs%#XI6ogI-V+As$Uv9+}&&z6>!Bm^*iV`GB~3JU1x=tz`+@o0Yw z+J^WV9UU#@iT~smWm{7`EZfx7BohS#jDGsnrH2m_UXQDI4>Bu&@Eaf)XZ|(~k9jZ_ z_ZWxq`emr|Xzc63$X|%rJll+IY;0_V?|(O6W`YCeEnxjf(UTDFL-@J*W=y-;YJV`; zte&CGf|v^iSUrL(V1rF)A^YGM9v(j6)c=JS`mZnWV1WUv&|&|TH8L{d9vmF}hxfbR z82m3^-_rhKSS4+OhpU&ZpOyf34Gj(b&6|EdCyLJu@m1w&8bCiKt?{ei;p}BIk$v;W z;K0BD2qXDg#@j>#gM45R2lxBQbC~&$0rR=di9ZMN#~@dC2t52le+>RFzyR~BA^19M RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%L`g(JRCwCdSV>DPR}?-yIFE=Eh>D`1 zxDZ4LPAE<ow+dNglYbxtT!{-;g37~1P!z>TaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy<TJP`gZ4VC*)~BZ@ z>+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql><Ii^H#-n zg^m?DLH;@vOLTsIPB%9<uh`WE;7sQLj<t&Y{GgzqFB=;hGX%I_Gktx1%>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ<hF=kPu2sOJk!1)avRg8xQ4KSy}v2VFiHJ*VidCGm~||VR#n$BO@be zb92+ph-WUV_9O-A6$q)=kcfx~1`JzIPEJ_AiAZ%VMXg0{|7HXYwz9Lc8Nl-LGR4Kk zQB6$^_4oI)G1b-8ba;5kFG)#B;d=uE1LSZxsIsz>8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jn<P~5^N7GtYn&coj?Y@c$Jf57K%yTH0{ECT*p`@fFDlRVO^WEKD zcbKN9r&B{i1D^xr)YKF+Twh;L2?+_5k&(gc5Jh2OVaE4@F+HDk00388TT7}c)7jbC zKLDGmxyymc3|f-jTWEE4b@B1&=!lIE4Grb<^73*X5)E*O2%=$SWrd9b`;ylX<Te;b zdca`lGufbRJALldWS90vvG{CRt*x!@Fh(c|n<FD5)ZN|9bL15am#PgwsG?wZZEcO8 z!@aGoEh;Q5<WxXtgJo|mNH1U}85<j8u!y*_vNB^a)CIZ}kq)nYTHonN+mLE5;Rc3w zc6MlbdYW=_ayY-RiGU!4OG`^BKR=)H^71%x01yQY)fTd}w8Wjjo8Ud~0}UA;A7|jO z%@=T2>sm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(<cFHWe69E@2CXT`hsZ==p`} z43=?(qp%i^L!?OMHVJe96yBxxWs@L!s;a7Z9h@M$IFAjILq+CiDkaUE6BsXH=;<v0 z)%&XKvfd&nY#475(W|#lUyNg&Ct%T~$QV(8e@A1mlb;G43<t?(!&h~duP_sVO1@Wn zhhYSeUxOBg09=^<7i~$e3%{ru^VQ(s;08J%a@wy!%ZHBSrL;v~;VwlN3<GdSN5@Yt z!04$?zXq)Xm%c4uc<=jNq{M+7Mo4Q6Kg!<|yQ<Fr=cnEW`!OgW72Et{P=&fpfw!pZ wR@b(56@6IUn>#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/dark_square/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_square/contentPattern.png deleted file mode 100644 index 7b50aff880e57ea386400d763dbddf82fff72be6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3C<R_&n zc;+Uirv{}arc@T5Otk?jlJ<0Q45_%4l#-Be<Gce)LXv_|kJgetrv?UQ28ZbkmsQ-i RW&o8jc)I$ztaD0e0ss)cA*TQU diff --git a/mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrA<A|5oMoY-nk1Ywzgn>h9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/dark_square/loader.gif b/mamweb/static/prettyPhoto/images/dark_square/loader.gif deleted file mode 100644 index 50820eedd904647a76c4c2c1d830d4339588c08d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 K>KdTlt$zd2^$V2% diff --git a/mamweb/static/prettyPhoto/images/dark_square/sprite.png b/mamweb/static/prettyPhoto/images/dark_square/sprite.png deleted file mode 100644 index 4fe354752455e070ebb56f42a60fc2233de45bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3507 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 diff --git a/mamweb/static/prettyPhoto/images/default/default_thumb.png b/mamweb/static/prettyPhoto/images/default/default_thumb.png deleted file mode 100644 index 1a26e4b16e18db9e0979a6ba5ecb9e1e1c8753e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1537 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5{!2~2l<nu2BDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{<S3ODsN@GWpo&B*kqDoPEm@(W3>%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6N<iC+Qqrt~T-=~`0eQAc86_nJR{Hwo z<>h+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc0<dBxCR0tT3VMPh-zp`HQAOE87LzW9~q=E7AMmjtCE+>6!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`f^TASW*&$S zR`2U;<(XGpl9-pA>gi&u1T;Y}Gc(1?#n{Qv$<fTn*ww<^(9qSu!qv>p(%8_*)y>$@ z#MQtErq?AuximL5uLPzy1)<j%r(RG}$SnZc?2=lPS(cjOR+OKs0QRy~CT_PF;4}}a zHwCv_3~}n!2RcR{6tPGV4HE*U9uO0rY=Inj!cWZuruHIWviADT=fl9jRO;#C7*cWT z&GeI9N{#|;w>RB67F)=Cl-0%Nhmu^a?8hh0T^w9mUDEGv?>K8d)wzGgml>(n6(8(9 zLQ`Ch#S2apT=}rXs&<dul>X^0zh+&mx?FYr+U#jM&p!XmF}n>!Z>NQKA5GdC6{|P> z^2;lGmp8sGkxst-wyf7pS!InB58L6Yy>5IL4?h&>bP;&9@TlG|3th49u+^emt$*tN zdmg^;Yue+sIBvao_fZ+X<Mm!j@|SbW7GKmTw36!=U){9y{PW;Y(XB2@iJNaeS+q4q zFV*rOQ1x%qn!lk+X$n)lG`l|C$?#ns{OaZWIW9K>X8WkksIZaiEUTJwq;9`_|M4e% zU3SxfhI=h7TH7ymYDPlEe(|R&oOc4=Tn{~SQG5F739G|ai+gJ%H$D6tw`B5(cf0TQ zMeSQrGMz2Vdufo~bZrr?n>pY77p~A!)0y}y{i;}wfugc`t-_fUBcP+T=39SO2rAyM zpBeR{cwfc~^WP~(GtWH#{IOzAA6KcOi{#|)d*A-5U(7KJ_WW~CWlPlBh`km&eN;Yr ze*d=iV1mNYPKgAk?cU2TKQG#Tn^!UG#jPb_t8c#j=Aht^HeXct(m@_MzIGpHwe!p8 zh!q6S|9RMhqy4Z_zyFd{qnS+y6__V7r5~zU$aB4H_t}UePj+sp+n(Sm=$UCEHRW^V z8NEkWUY10-N(yVbS7mfI82S`kd;k4t!q0_`SEsVE@%8Myap6pg^V0upjEa2XseZE? z#Fl;wZnjw7z%enSq+%NHRp;%&a~@9m^r+^be~*WvxYNc}&6gKXPYY_Umg(lx+a^@* y;MyFr{@1hJHY$01i`>iV{`=Qlt`e)`G+_9kRR3W^dd`1Pq3r4E=d#Wzp$PyqQ%Md0 diff --git a/mamweb/static/prettyPhoto/images/default/loader.gif b/mamweb/static/prettyPhoto/images/default/loader.gif deleted file mode 100644 index 35d397c9e430c2ee8f1d95d8fe47da79a399e746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6331 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 UZ7kd~cu1;Le)F~b4)~LQ0_Fw3i~s-t diff --git a/mamweb/static/prettyPhoto/images/default/sprite.png b/mamweb/static/prettyPhoto/images/default/sprite.png deleted file mode 100644 index 5f07ddc5634198b21473e73a5f9e71b47c0e96fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6682 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 arvsEOC{&HwO^ZJNTcd^2Q?FFD#{U;0q7Cx^ diff --git a/mamweb/static/prettyPhoto/images/default/sprite_next.png b/mamweb/static/prettyPhoto/images/default/sprite_next.png deleted file mode 100644 index 379dc0d0d50b1d0f79b3266edf076753e2c35953..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1358 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZH!3HGlkJilxQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JJrb z7#f<J7?>Lwm{}MaS~$5GxtTec8X6j#Sr}Lvz|6p=*T~$|)WF!-!r0XUsNU7U!qv>p z(%8_*)y>$@#MQtErq?sCxFj(zITdDaCeU7}UUR&9t(=Qe6HD@oLh|!-U@0IVBfliS zI3vG6!8zDe!8b8EGY`ZEMGwTcE~!PCWvMA{Mftf3;PAD|#9}{Te?#=9kP~M5K*#8V z5(iRZfe8UqAczT1`aljm^Q7hhb4(F1Ye=}+?qFbGtn+kn45_&FX1ZbaAqR=J`zl?F z6hjSyjd!`VI8EdE8sG8XfqlB4?53p`oXq|={9jl-!D&;<iA%N<)-K@VWhpiI_U^*9 zz_sO*<@Z?Xoi4s#{{Hw~&)s+Vloq?#&p!LipkAd)sY+qj^8>f1^{JhASwBZOL?tR{ zlH%Dj%k3+shurJeS4ueU5IiN5?|}71hdT`>pKRPGsr=9X6P&a$BEd#(an#yFn{;~I zl=n%VOEX@vitE<)K#@eNxu00SRoQBEHKlFl^t~)_{G;oI$&I_#9WIo)l4W{gQ%}`i zzWd(|XZrk@dCY)^r`>s5|0I=-hCI$}`*vm4g=_p@J8|0fiy0e&iW!$>a$PSCTp1D| z!rHv`cJ8+Q;q2$07gx+XK4(|l`pB@ke(cQ$8~o+j92;~_&v4Gv+<jN?*IzsP>9@A^ zhOKTb+R1a-M8D~xh0Fo<*qpG{qSH>R7QbFvDE6VuW-jv|G2TBSyd^JGLsdQ`^NVK9 rGOv0gxL3Hg@R8`G7st=^GcYqeNGZH3c0pYORKj_>`njxgN@xNAKx^Dt diff --git a/mamweb/static/prettyPhoto/images/default/sprite_prev.png b/mamweb/static/prettyPhoto/images/default/sprite_prev.png deleted file mode 100644 index 1ee486514b9c4b3b36381fb0a3ecc3fe3a9f93ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W7!3HGnN~S&oQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^K<nQL2C3WatnaE85nHrD+&^mvr|hH zl2X$%^K6yg@7}MZkeOnu6mIHk;9KCFnvv;IRg@ZB<rk7%m7Q#vqGWHUU{hfQG$1#% zBvGLvHz%*ys=`(YY_1iM4HDK@QUEI{$+lI3I4Z(7K*2e`C{@8!&p<cXz|26w%uvtJ z*u>o2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>a<ZY05Coz_7z_5lA7>HCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JJrb z7#f<J7?>Lwm{}MaS~$5GxtTec8X6j#Sr}Lvz|6p=*TvY$(8<x%&Dhn#+|ba~z{1tc z&C=M=$kol*(8Sfi2&UIFuec;JFF6%vZzj-Qs9smRdaay`QWHz^i$e1Ab6_bTAS1sd zzc?emK*2fKRKYhfIWrH$2SpFWw=StgnPsUdZbkXI3gGay%EV$nVShvPrjQe6`as9% zgAxZ)Vu1+(Qy_>5Px?R(JoBXH0dq_dFl$J7T(M(dV4UFT;uunK>&^82S%(5dj_qH< z=*S}&*wSLt6i`q!QRxTIxr2f63j((D&Glk4bUrY>phW8*BX?6W+sOqktDKkpQupx5 zXVR6ue5HEf1!nmc?&<RPZJ*yMKFsRK5T;l$&%ODXz}e1uopFa+L$p}ml~`TeR_6cZ z2-h>=yMi}nq)%8Sz3BLd=JXKh?K+7<-V*=#&TPw-;cK67S}GK<|Nij=gN9YBUX)mA zh;Wt6nYpa<Vg`%nqzyN73}pCTTD&gXy+McjW{#N6dFN@VS6+X8{rrppkIr=O7(MYh z=hG)xi>?jR{w8>=%xtco;q0>$PNpn+{JB>CZJBh}qL}?smVM58)0;KA0$JUrYeg;& z`Zd*yb!iaiy4OwuEEavuaqHW^R{1VJZ{q8`Htg`n3YU!$NAk8euX}wXZ+pqCT^BPJ z#OS&6*%zD7^m$=gy7{Jy)!buA8xPd&ci$S-yVv~VhnTftC!T*6wD6m-=uw2vEBzb) zJAUTw+1zqA^5CK6cbK&!IHc6)T`_#r`{L{G&(>L4)9l6MnRpmD^*T?NvsT^(m3f}7 KelF{r5}E+5_2k|F diff --git a/mamweb/static/prettyPhoto/images/default/sprite_x.png b/mamweb/static/prettyPhoto/images/default/sprite_x.png deleted file mode 100644 index d4433ab0d6933357b0e91f6fc72662f1bda39f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1097 zcmbVLO;6N77_MS)MM;nwo`!OD+nJVacbl!qZo9GxMY61M6Jla%XW0hYsqNr)@gitU zylOlc4<0o}{R2vrqcPk(8T|()dhl$R?gx4x7@ee@d1v0|dB5*3E?gQNIXA*_+-P;q zsIh&UePU)f{cnx$v2B8y4Z1{{v~5S2n{~+w236l)#WifZof{u;k>iG%UcEsZ*1YBr zU$9dhA@M_o=D6Za657rhreFoHdV$V=fAfw9o~!d$a~8D1GH!Wun-N~xT&O#nYfi!C zXD)zZqA>y=QyV1ydJt=g&Ubk=c22KF9&}acn$Gu}YFLY)Od<?&0?ay4fj~h5lBZQw zJr5*^pa>-qNm-<7vZO%>`ip1QBDbm4j7r}YlXSjCX{d=}yWJMrvOuC$5fuuBltYrT zOd}h20%|AOAf6g97&vw!FQgs`K+0&ZkPWKy%+p>7erQ<-#6jFo6ib<y*rA97DEfXH zS64fxHT>I+L$%|2C&Xe6$7CaNSUs9k12D_o(S}k*=8bka@>o&qb%Qt?J`QNr(0TSE zxSp#)l!pkZ(@>S5l1C_Csz?>3ltV~X@~{909EV|*ilM4T-jGeDgpdjIrcx=$NHQxj znl_;{z*d8p+JS=yc0Fddk1ZdG)yfgJDT(TYtPeV1u|+6}TO<VKr5vzq#|u(9El)36 z14rIX>{cS;gKmB`?-2V?{#)EVtouJX6PYt&+8lp0%ixN2V0t`geI^_X4-VMGL~Jy6 zKR$WN#;Q{_X6wo4Z(nB5a^TF+ZXNu3_4DNLbMD@?Q;%;wd+_qd&iL`t#Y|>vIrDXA v@AlYOS2{KcPTc)Bp*T@``(m<(x-<2j`?UP<(dqds5yw{5Trggju5a%Hri)27 diff --git a/mamweb/static/prettyPhoto/images/default/sprite_y.png b/mamweb/static/prettyPhoto/images/default/sprite_y.png deleted file mode 100644 index 7786ab5128c53a952830a3494898ee3ff5d00cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1162 zcmc&!O;6N77_K29hOj@tkHe%~Jh1IdcemX(RKjk%vg#r(E3SzeN;}Io&`xb<*+OD4 z+)VVuMg0+qSCJ@*7xCcT-$25F5O2ik?iM`|OuRTrJM&K8=Xt;Te0JtWX5{h+$8nkJ zv{7ff&YsPS!|Z*0^0~^kOVn)AInttCE5zKCLl!Zpde#!IW6N24@)b{T+)&GHG-<PT zTeFELSc#4hdjUgp+{9!YSoSieU=c65zRn-+eBy!Y==}Xc4c3A(ZoAX#A)Z^GY1r$_ zw(9Vc*TF=rF#-=$3&h@vA8E19_jomSPOe2B^i=4w&i9>a)@DJOgcuYAn6;q{fs6!{ z%PWd94kU=62qh6oS)^z=NrMm!7SF7OPD`sBm4PiL>3o~gKoiAow<~mW0tuHyq^fGd zAxT-Lk&V`TYQ<SU8cP`r9ND28P?z{1VYC)Whw41@v>$>O)M}^1el$oFOPLs3frtbs zdR`J&PdlP@{M(H)wWG#bfW<nFNGG&eJz8TanC0$#Ly02uM!OTbtSHusLF|r)eOfhi zo_!G<*U=y<LWGn&R3s=D5h|7{QbjHm5X#9#sKS)vEUa8H6va>rIa4knWWu5;SJWJm z%t{XBO(><<svl9yw{dFMWp)SH{JB`I9Ab--utCU5+5xj|LP^vn0VvNEK+UpUKarF2 z^rJO!=&oX?5)u#e@~gRL*oTF`#ofm`|B^G2IU^>`@kg_ySF8h*<7w+N;dFSg&n6~J zMq}&NO*U2^s>W0!{&DdAedZY)<@R3ff7{#MeyEL&yty`H>_4?0tak3+^Tzp;<EtCH vKX<b8t;btOM=xI=wyz9l{?po>f5#1RUtWw}*f@CfG5I@G%^BluX<_phuCz@w diff --git a/mamweb/static/prettyPhoto/images/facebook/btnNext.png b/mamweb/static/prettyPhoto/images/facebook/btnNext.png deleted file mode 100644 index e809c3b64219468c4c744a4d4f086460ee6c8d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)<h;3K|Lk000e1NJLTq0021v001ut1^@s6S(jo10000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!?@2^KRCwClnm=e7Q5?tLnMfqY2(gsf zYKIQ76btQ;p|l_blr9A`bTBrhu0dTK6f%Sk7R5*g!66xJo5l_fsYnS#8W37CI#f!{ z;2@?~(i&~OB&H@_f3G<qEgA0Wzq|K^@AB~UefXX4{eJKLD0IGLU<3FDSOdPqjrB@R z@K<md{0W@r#{Lq^vb?^GI%n(xcnW+4iAOu&HSqUNK;8jQg5^kjYJfMvTkSxa!FQ4P z^#Pm~0@?bX86^UUxOp0dJb)nwz!oGeO>*<*4T)FKQHep0ar5R4IgX^MaUqaei9+gx zK#oWha#RSUqSL<~3WaX<08-Gx({VYS&ijjti?_uR@~-8hZnyh^-|xRkG^9)>qkKN! zl-KJu5DVD?g=ju>xm?$Xh5WNRfWqOh&EardB^DA(E|(8RqtR)b&DNLlZLpn(p$eGi z`&orTF|@qAJk2o7i&QGLOI##dQYw|htE;OsCX;E5SV%0DN;Q&9CZ9}9OsI*4#8Ru( zs`d5t$3~-Zgjh%{jYc!Jv9U2@Fc^l3g~ZZowHMRr^dp^4H$*HXmR_&dE-fvYh=wc_ z3Pro!zDX=(u~^)J?Id2QRE~*+q-lEBVzI<arP2|R3s1RR-UGmud_I3b<Q7t`R)3hy z=I6Owjv+D`sMTtW)oOj2&1P$oNzf^ZdV1dY;o+eVC*)_x_V@P>U=>}-WHNh1mRj|C z{RryGSG}%2dIs5OG>&IyXXA-Pf+n(PJ^^_=p4YKhtVrbXN3+>v=jP@Tkw~P_@2sjT zkSxnK1A)L=Fc{1u5vVJW3kwTxA&MW7NQ7^ieW(jp1wGI&cw?UNjU<Dlsh>h#S6ZTw zv=GQ`i9&7*fyB)~dlCbzaP#I3d4f*+W2B^a+`I*CAvtuW2}tDH;^r%83popX4~!3$ z21E#lBbNccM_ivBiM@4iz~BDKto|Fa71itLv{we-TU_n~*cW_|z`dHEQ5#*7zXcco X7c=PvI!UA-00000NkvXXu0mjfDKUXP diff --git a/mamweb/static/prettyPhoto/images/facebook/btnPrevious.png b/mamweb/static/prettyPhoto/images/facebook/btnPrevious.png deleted file mode 100644 index 0812542cccfdfd9d1644ed721516c00fc6a03c24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmV-C1H=4@P)<h;3K|Lk000e1NJLTq0021v001ut1^@s6S(jo10000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!-bqA3RCwClnm=e-K^({LX{0sA2wFmI zv_pqjiiLK_P+AZQN*BQl9jr~;tU+BeL~v;b!64!wIJj8as)Iu+4uVpl(2_AjrPK@# zVrofiv{gz{6YcNF8&XJ1&*a{F_rCC5Zn*n>-u>SFdGE)KMkDk;;yCW4W(C*+z6Lgc zFY;|dX$bxTZi7F9Ykb?Ev7Z9+0(b#Di=?A%@H+V0SwP+b-vz6X^fUlhz#FH5w1aOW z>FYhXjK+9>tc(C6K29qsq!R2vYze<oN)kxCf=)9AsmF1XK+YjHHAezzWE9dw0y)Jf z<TMH7dD_uLB9R*ux>YKq^0;HM*iEn3dyhunl7I|_Lf8F%zmrz~qC>8(u37?tz=A@d z;A9Eu^ZBm8EZ(OHC@SRA($eK<H0oA@Xpbcdq}%PDO(YTzR4Ubk5aW^DLY|(*fKI1# zCY#MZ)@U@7M1gYLGbU!zX0z$j>GUEgAT#MYKR>U_=krgrTCLzGCqW>sR_j!;SbU_@ z>9k_30n{Na7RzL*R9Z9`40^Fva;lIflj&T!Tz+UY8fV1ZkEuc?lS!M|Y!>~BMitWI z@l@*ddPCNbolfTfwv9}q(b$$PBv!N8+;=z}nO3W{BU?zUTCMgIKwq}o?OoYIVpXfv zzTIwr-tBh3%N7!Ab91xja=BjgdcD4o;|hL2|JNaXZ*Om3tyYI+an&jm3OjJ0e1)N8 zm#)W^%jH_j%gdR;U~nK?NUT&U)mT|s$sU4a3yBqv$LqmhFgF|yN3w;)T3cJIg~Q=> zSOkYO`kz1&5zOWX$XY6pBwI)T3Gl0cf_{;tYag+xA0&`1Mj=}ykXwvGZjnIZVxV2d z06REt5=gvZR~UnQgX1RMC#&dK5s<{S!N)sRu@ZhTcfdAuRQ4h@;f#9=euwxvJ2}?Y zy#{|B_b~9cW8qbFRO5p`9$yjx>@&E_r{*VgLY3ri0R{l<wB#@Dl@Q_p0000<MNUMn GLSTa0N_$}d diff --git a/mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png deleted file mode 100644 index a9be3b2ca8c584eb5f717a04d9603b137ce9c337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fo15X#nkcwMLfB0E=LRfrwLf96w^+|cKCEVOy{$4Um>IBCT m-o+D*vL38xWMOb<U}V^r!M<X%9Q#b5UItHBKbLh*2~7aOfhZ#Y diff --git a/mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png deleted file mode 100644 index 277c87a5ba5a6413ec862d5ee8a235cb5f316b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!foZBG}+kcwMLDG3P~2?|1g{{P=UZ-SH>n^tomvpcVhX~C5P hfz0h)jSP%z43bA#R32EIs{v|b@O1TaS?83{1OPdrCnx{_ diff --git a/mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png deleted file mode 100644 index 76e50d0f5c6a8d0ee5f69b82493d94805f93d47b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!foEl(H6kcwMLfB0E=SQwO*la-k#Hgq<gO1N?$klCGA#<bwd gfrUv54h@V94}Y+%U`V|44XBI3)78&qol`;+0NlqXJpcdz diff --git a/mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png deleted file mode 100644 index 8b110bac6e18e6d4c51a18713ca7ee29f1d99629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fo15X#nkcwMLDG3P~2@8}Gk`@?Am=;_)a4<pP@jTmVzu>C} m{yP{*X)b2tGiPRG;$g@#WM60<^5zjxFN3G6pUXO@geCwXd?|PU diff --git a/mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrA<A|5oMoY-nk1Ywzgn>h9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/facebook/loader.gif b/mamweb/static/prettyPhoto/images/facebook/loader.gif deleted file mode 100644 index 7ac990cf04f2323f9723518bfd72ce102222cefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 QJTx*8<_Q)#2dMY!-xM(*yZ`_I diff --git a/mamweb/static/prettyPhoto/images/facebook/sprite.png b/mamweb/static/prettyPhoto/images/facebook/sprite.png deleted file mode 100644 index 660a254f1930b0b376d5831b130ce436b4456f42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4227 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 ZU;uc#vp>^SEa3nE002ovPDHLkV1iA65^4Yd diff --git a/mamweb/static/prettyPhoto/images/light_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/light_rounded/btnNext.png deleted file mode 100644 index b28c1ef3d595d5af9db1f2a4378cfd64407ed5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmV-}1$_F6P)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%B}qg<RCwCVn8{0INf5@PwA@z|6c2+7 zDrl((5t>$9a05|MJUF0->4SGK<7F5TJ=lWKN6+&IhzfIXTxP_BAUYSlC~k)ya96~A ztE!1Fs3@{uSCwU7suGg-Dqm*4{6%~bnXhbax0`G>8;y^TlaJ!y=Z$>*$bCxrnvF(o z`x+M)R}d8y<%*4sb=vKA7v=~-N$_0n-ZRLqHxCaF-bMz>;maqN%k>M_92kbLQc)rz zB8pyLU&UAqOwrNN6cZCek&%%UV)*w#qa-FKlGEv|W5{3m+Nvr57=wC&(2ff5mzNh( z17JKGEL7k>2JHbJV~7v<&GHpkvnUX*@G!g&=-b;{j2C0X$H#{?xZRXAJPcs<u6or3 zz;CM&&==qc5$y}Phby@0#!ry6Si&P`R6ugF66yLX07E}D62MWR0IPw*%F~>=9iF5m z$;ezRVzj2FM&MRfRz${TF_i##NF31cG^#Z`@cilNNv;SVRNO-;YUt<ZXKC|#hTE_% ztPjS;7!=HdasCvD@I$q(!R{H*h%9Y|LBRs<@9!x+J)Nqmss#Mz=H{CP8Cl&M<5&<D zhnJf&he0wjGDJO>mzPp;pO=?M$H&KXa&kgtWo0s6lPBgmI5?pE{Cs(iF?a`l;~DyD zeo-f&{o>+6-iK$t<o(g~n7Kv4;sC`2SRBAjspIAPGBuQDb~T1s9v>g6sHliqT3V>L zx0mkj?xbHsLxUI=K#h%!R99C=xw*MwjGUYtIy^k2!oou8>FJR^X=!QH*48EpNJ&YN zz7-V})Y{rg#l^)k2J7^-2D?WJrFf_^uu26000%G@R$X09v$M0`^;N^cP^fA+Q(jhM zR905f>guZ8WBY@$Q1<utX<}kRfRdAwDK#~frlzK-zrUY4J3A>eGn3BF&S-6IO?Hdx z>uV}0DWR^eF6oE&U>w5J%A>2v)`ghfQje?W0Dg6KC9&Gv+$?R{&z#uwe4u1DKR++| z0`pl5JPg3TzCNn2uNR5JkaKf$B7Z<nPfv?6;0RQW^@M~3Q35;-B?R23H7WSbdYnW| zFR5326~IEunjFnBYKY0nNl{OCcemGA@HPq(=Jxis7zFcRZGb*MKljdskOLUzL|p6I zw6DJ{GeXbO)(qzh7;y#*Vi7YlGyeBM<MbA&K$eS(i<Fg>_1&}6(^FbrUZ(Z+b=uwC z6(A&3NPBN@PmI#h(ILt+GyQw^>CHgU3XH4^;Dv>Sz>|8Qt(jZ55^YOLN}|opO-W|v z)`SB2*4EZaaw;z`7Z10$w~KTUvj`0&EQiD4JrpU!n-28IYLy5594xT8W%)a>_yR`3 z4uAv%?*STd2moYs%#XI6ogI-V+As$Uv9+}&&z6>!Bm^*iV`GB~3JU1x=tz`+@o0Yw z+J^WV9UU#@iT~smWm{7`EZfx7BohS#jDGsnrH2m_UXQDI4>Bu&@Eaf)XZ|(~k9jZ_ z_ZWxq`emr|Xzc63$X|%rJll+IY;0_V?|(O6W`YCeEnxjf(UTDFL-@J*W=y-;YJV`; zte&CGf|v^iSUrL(V1rF)A^YGM9v(j6)c=JS`mZnWV1WUv&|&|TH8L{d9vmF}hxfbR z82m3^-_rhKSS4+OhpU&ZpOyf34Gj(b&6|EdCyLJu@m1w&8bCiKt?{ei;p}BIk$v;W z;K0BD2qXDg#@j>#gM45R2lxBQbC~&$0rR=di9ZMN#~@dC2t52le+>RFzyR~BA^19M RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%L`g(JRCwCdSV>DPR}?-yIFE=Eh>D`1 zxDZ4LPAE<ow+dNglYbxtT!{-;g37~1P!z>TaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy<TJP`gZ4VC*)~BZ@ z>+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql><Ii^H#-n zg^m?DLH;@vOLTsIPB%9<uh`WE;7sQLj<t&Y{GgzqFB=;hGX%I_Gktx1%>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ<hF=kPu2sOJk!1)avRg8xQ4KSy}v2VFiHJ*VidCGm~||VR#n$BO@be zb92+ph-WUV_9O-A6$q)=kcfx~1`JzIPEJ_AiAZ%VMXg0{|7HXYwz9Lc8Nl-LGR4Kk zQB6$^_4oI)G1b-8ba;5kFG)#B;d=uE1LSZxsIsz>8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jn<P~5^N7GtYn&coj?Y@c$Jf57K%yTH0{ECT*p`@fFDlRVO^WEKD zcbKN9r&B{i1D^xr)YKF+Twh;L2?+_5k&(gc5Jh2OVaE4@F+HDk00388TT7}c)7jbC zKLDGmxyymc3|f-jTWEE4b@B1&=!lIE4Grb<^73*X5)E*O2%=$SWrd9b`;ylX<Te;b zdca`lGufbRJALldWS90vvG{CRt*x!@Fh(c|n<FD5)ZN|9bL15am#PgwsG?wZZEcO8 z!@aGoEh;Q5<WxXtgJo|mNH1U}85<j8u!y*_vNB^a)CIZ}kq)nYTHonN+mLE5;Rc3w zc6MlbdYW=_ayY-RiGU!4OG`^BKR=)H^71%x01yQY)fTd}w8Wjjo8Ud~0}UA;A7|jO z%@=T2>sm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(<cFHWe69E@2CXT`hsZ==p`} z43=?(qp%i^L!?OMHVJe96yBxxWs@L!s;a7Z9h@M$IFAjILq+CiDkaUE6BsXH=;<v0 z)%&XKvfd&nY#475(W|#lUyNg&Ct%T~$QV(8e@A1mlb;G43<t?(!&h~duP_sVO1@Wn zhhYSeUxOBg09=^<7i~$e3%{ru^VQ(s;08J%a@wy!%ZHBSrL;v~;VwlN3<GdSN5@Yt z!04$?zXq)Xm%c4uc<=jNq{M+7Mo4Q6Kg!<|yQ<Fr=cnEW`!OgW72Et{P=&fpfw!pZ wR@b(56@6IUn>#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrA<A|5oMoY-nk1Ywzgn>h9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/light_rounded/loader.gif b/mamweb/static/prettyPhoto/images/light_rounded/loader.gif deleted file mode 100644 index 7ac990cf04f2323f9723518bfd72ce102222cefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 QJTx*8<_Q)#2dMY!-xM(*yZ`_I diff --git a/mamweb/static/prettyPhoto/images/light_rounded/sprite.png b/mamweb/static/prettyPhoto/images/light_rounded/sprite.png deleted file mode 100644 index 7f283798127650c25c9085fb40d6ffda2dc2b49b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4099 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 Bs8|31 diff --git a/mamweb/static/prettyPhoto/images/light_square/btnNext.png b/mamweb/static/prettyPhoto/images/light_square/btnNext.png deleted file mode 100644 index b28c1ef3d595d5af9db1f2a4378cfd64407ed5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmV-}1$_F6P)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%B}qg<RCwCVn8{0INf5@PwA@z|6c2+7 zDrl((5t>$9a05|MJUF0->4SGK<7F5TJ=lWKN6+&IhzfIXTxP_BAUYSlC~k)ya96~A ztE!1Fs3@{uSCwU7suGg-Dqm*4{6%~bnXhbax0`G>8;y^TlaJ!y=Z$>*$bCxrnvF(o z`x+M)R}d8y<%*4sb=vKA7v=~-N$_0n-ZRLqHxCaF-bMz>;maqN%k>M_92kbLQc)rz zB8pyLU&UAqOwrNN6cZCek&%%UV)*w#qa-FKlGEv|W5{3m+Nvr57=wC&(2ff5mzNh( z17JKGEL7k>2JHbJV~7v<&GHpkvnUX*@G!g&=-b;{j2C0X$H#{?xZRXAJPcs<u6or3 zz;CM&&==qc5$y}Phby@0#!ry6Si&P`R6ugF66yLX07E}D62MWR0IPw*%F~>=9iF5m z$;ezRVzj2FM&MRfRz${TF_i##NF31cG^#Z`@cilNNv;SVRNO-;YUt<ZXKC|#hTE_% ztPjS;7!=HdasCvD@I$q(!R{H*h%9Y|LBRs<@9!x+J)Nqmss#Mz=H{CP8Cl&M<5&<D zhnJf&he0wjGDJO>mzPp;pO=?M$H&KXa&kgtWo0s6lPBgmI5?pE{Cs(iF?a`l;~DyD zeo-f&{o>+6-iK$t<o(g~n7Kv4;sC`2SRBAjspIAPGBuQDb~T1s9v>g6sHliqT3V>L zx0mkj?xbHsLxUI=K#h%!R99C=xw*MwjGUYtIy^k2!oou8>FJR^X=!QH*48EpNJ&YN zz7-V})Y{rg#l^)k2J7^-2D?WJrFf_^uu26000%G@R$X09v$M0`^;N^cP^fA+Q(jhM zR905f>guZ8WBY@$Q1<utX<}kRfRdAwDK#~frlzK-zrUY4J3A>eGn3BF&S-6IO?Hdx z>uV}0DWR^eF6oE&U>w5J%A>2v)`ghfQje?W0Dg6KC9&Gv+$?R{&z#uwe4u1DKR++| z0`pl5JPg3TzCNn2uNR5JkaKf$B7Z<nPfv?6;0RQW^@M~3Q35;-B?R23H7WSbdYnW| zFR5326~IEunjFnBYKY0nNl{OCcemGA@HPq(=Jxis7zFcRZGb*MKljdskOLUzL|p6I zw6DJ{GeXbO)(qzh7;y#*Vi7YlGyeBM<MbA&K$eS(i<Fg>_1&}6(^FbrUZ(Z+b=uwC z6(A&3NPBN@PmI#h(ILt+GyQw^>CHgU3XH4^;Dv>Sz>|8Qt(jZ55^YOLN}|opO-W|v z)`SB2*4EZaaw;z`7Z10$w~KTUvj`0&EQiD4JrpU!n-28IYLy5594xT8W%)a>_yR`3 z4uAv%?*STd2moYs%#XI6ogI-V+As$Uv9+}&&z6>!Bm^*iV`GB~3JU1x=tz`+@o0Yw z+J^WV9UU#@iT~smWm{7`EZfx7BohS#jDGsnrH2m_UXQDI4>Bu&@Eaf)XZ|(~k9jZ_ z_ZWxq`emr|Xzc63$X|%rJll+IY;0_V?|(O6W`YCeEnxjf(UTDFL-@J*W=y-;YJV`; zte&CGf|v^iSUrL(V1rF)A^YGM9v(j6)c=JS`mZnWV1WUv&|&|TH8L{d9vmF}hxfbR z82m3^-_rhKSS4+OhpU&ZpOyf34Gj(b&6|EdCyLJu@m1w&8bCiKt?{ei;p}BIk$v;W z;K0BD2qXDg#@j>#gM45R2lxBQbC~&$0rR=di9ZMN#~@dC2t52le+>RFzyR~BA^19M RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/light_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_square/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)<h;3K|Lk000e1NJLTq002Dz000&U1^@s6a|x6j0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%L`g(JRCwCdSV>DPR}?-yIFE=Eh>D`1 zxDZ4LPAE<ow+dNglYbxtT!{-;g37~1P!z>TaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy<TJP`gZ4VC*)~BZ@ z>+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql><Ii^H#-n zg^m?DLH;@vOLTsIPB%9<uh`WE;7sQLj<t&Y{GgzqFB=;hGX%I_Gktx1%>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ<hF=kPu2sOJk!1)avRg8xQ4KSy}v2VFiHJ*VidCGm~||VR#n$BO@be zb92+ph-WUV_9O-A6$q)=kcfx~1`JzIPEJ_AiAZ%VMXg0{|7HXYwz9Lc8Nl-LGR4Kk zQB6$^_4oI)G1b-8ba;5kFG)#B;d=uE1LSZxsIsz>8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jn<P~5^N7GtYn&coj?Y@c$Jf57K%yTH0{ECT*p`@fFDlRVO^WEKD zcbKN9r&B{i1D^xr)YKF+Twh;L2?+_5k&(gc5Jh2OVaE4@F+HDk00388TT7}c)7jbC zKLDGmxyymc3|f-jTWEE4b@B1&=!lIE4Grb<^73*X5)E*O2%=$SWrd9b`;ylX<Te;b zdca`lGufbRJALldWS90vvG{CRt*x!@Fh(c|n<FD5)ZN|9bL15am#PgwsG?wZZEcO8 z!@aGoEh;Q5<WxXtgJo|mNH1U}85<j8u!y*_vNB^a)CIZ}kq)nYTHonN+mLE5;Rc3w zc6MlbdYW=_ayY-RiGU!4OG`^BKR=)H^71%x01yQY)fTd}w8Wjjo8Ud~0}UA;A7|jO z%@=T2>sm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(<cFHWe69E@2CXT`hsZ==p`} z43=?(qp%i^L!?OMHVJe96yBxxWs@L!s;a7Z9h@M$IFAjILq+CiDkaUE6BsXH=;<v0 z)%&XKvfd&nY#475(W|#lUyNg&Ct%T~$QV(8e@A1mlb;G43<t?(!&h~duP_sVO1@Wn zhhYSeUxOBg09=^<7i~$e3%{ru^VQ(s;08J%a@wy!%ZHBSrL;v~;VwlN3<GdSN5@Yt z!04$?zXq)Xm%c4uc<=jNq{M+7Mo4Q6Kg!<|yQ<Fr=cnEW`!OgW72Et{P=&fpfw!pZ wR@b(56@6IUn>#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrA<A|5oMoY-nk1Ywzgn>h9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/light_square/loader.gif b/mamweb/static/prettyPhoto/images/light_square/loader.gif deleted file mode 100644 index 7ac990cf04f2323f9723518bfd72ce102222cefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 QJTx*8<_Q)#2dMY!-xM(*yZ`_I diff --git a/mamweb/static/prettyPhoto/images/light_square/sprite.png b/mamweb/static/prettyPhoto/images/light_square/sprite.png deleted file mode 100644 index 4fe354752455e070ebb56f42a60fc2233de45bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3507 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 diff --git a/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js b/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js deleted file mode 100644 index 0436a493..00000000 --- a/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js +++ /dev/null @@ -1,911 +0,0 @@ -/* ------------------------------------------------------------------------ - Class: prettyPhoto - Use: Lightbox clone for jQuery - Author: Stephane Caron (http://www.no-margin-for-errors.com) - Version: 3.1.5 -------------------------------------------------------------------------- */ -(function($) { - $.prettyPhoto = {version: '3.1.5'}; - - $.fn.prettyPhoto = function(pp_settings) { - pp_settings = jQuery.extend({ - hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */ - animation_speed: 'fast', /* fast/slow/normal */ - ajaxcallback: function() {}, - slideshow: 5000, /* false OR interval time in ms */ - autoplay_slideshow: false, /* true/false */ - opacity: 0.80, /* Value between 0 and 1 */ - show_title: true, /* true/false */ - allow_resize: true, /* Resize the photos bigger than viewport. true/false */ - allow_expand: true, /* Allow the user to expand a resized image. true/false */ - default_width: 500, - default_height: 344, - counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */ - theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */ - horizontal_padding: 20, /* The padding on each side of the picture */ - hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */ - wmode: 'opaque', /* Set the flash wmode attribute */ - autoplay: true, /* Automatically start videos: True/False */ - modal: false, /* If set to true, only the close button will close the window */ - deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */ - overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */ - overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */ - keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */ - changepicturecallback: function(){}, /* Called everytime an item is shown/changed */ - callback: function(){}, /* Called when prettyPhoto is closed */ - ie6_fallback: true, - markup: '<div class="pp_pic_holder"> \ - <div class="ppt"> </div> \ - <div class="pp_top"> \ - <div class="pp_left"></div> \ - <div class="pp_middle"></div> \ - <div class="pp_right"></div> \ - </div> \ - <div class="pp_content_container"> \ - <div class="pp_left"> \ - <div class="pp_right"> \ - <div class="pp_content"> \ - <div class="pp_loaderIcon"></div> \ - <div class="pp_fade"> \ - <a href="#" class="pp_expand" title="Expand the image">Expand</a> \ - <div class="pp_hoverContainer"> \ - <a class="pp_next" href="#">next</a> \ - <a class="pp_previous" href="#">previous</a> \ - </div> \ - <div id="pp_full_res"></div> \ - <div class="pp_details"> \ - <div class="pp_nav"> \ - <a href="#" class="pp_arrow_previous">Previous</a> \ - <p class="currentTextHolder">0/0</p> \ - <a href="#" class="pp_arrow_next">Next</a> \ - </div> \ - <p class="pp_description"></p> \ - <div class="pp_social">{pp_social}</div> \ - <a class="pp_close" href="#">Close</a> \ - </div> \ - </div> \ - </div> \ - </div> \ - </div> \ - </div> \ - <div class="pp_bottom"> \ - <div class="pp_left"></div> \ - <div class="pp_middle"></div> \ - <div class="pp_right"></div> \ - </div> \ - </div> \ - <div class="pp_overlay"></div>', - gallery_markup: '<div class="pp_gallery"> \ - <a href="#" class="pp_arrow_previous">Previous</a> \ - <div> \ - <ul> \ - {gallery} \ - </ul> \ - </div> \ - <a href="#" class="pp_arrow_next">Next</a> \ - </div>', - image_markup: '<img id="fullResImage" src="{path}" />', - flash_markup: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>', - quicktime_markup: '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>', - iframe_markup: '<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>', - inline_markup: '<div class="pp_inline">{content}</div>', - custom_markup: '', - social_tools: '<div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&href={location_href}&layout=button_count&show_faces=true&width=500&action=like&font&colorscheme=light&height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div>' /* html or false to disable */ - }, pp_settings); - - // Global variables accessible only by prettyPhoto - var matchedObjects = this, percentBased = false, pp_dimensions, pp_open, - - // prettyPhoto container specific - pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth, - - // Window size - windowHeight = $(window).height(), windowWidth = $(window).width(), - - // Global elements - pp_slideshow; - - doresize = true, scroll_pos = _get_scroll(); - - // Window/Keyboard events - $(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); }); - - if(pp_settings.keyboard_shortcuts) { - $(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){ - if(typeof $pp_pic_holder != 'undefined'){ - if($pp_pic_holder.is(':visible')){ - switch(e.keyCode){ - case 37: - $.prettyPhoto.changePage('previous'); - e.preventDefault(); - break; - case 39: - $.prettyPhoto.changePage('next'); - e.preventDefault(); - break; - case 27: - if(!settings.modal) - $.prettyPhoto.close(); - e.preventDefault(); - break; - }; - // return false; - }; - }; - }); - }; - - /** - * Initialize prettyPhoto. - */ - $.prettyPhoto.initialize = function() { - - settings = pp_settings; - - if(settings.theme == 'pp_default') settings.horizontal_padding = 16; - - // Find out if the picture is part of a set - theRel = $(this).attr(settings.hook); - galleryRegExp = /\[(?:.*)\]/; - isSet = (galleryRegExp.exec(theRel)) ? true : false; - - // Put the SRCs, TITLEs, ALTs into an array. - pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href')); - pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt')); - pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title')); - - if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false; - - set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned - rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this)); - - _build_overlay(this); // Build the overlay {this} being the caller - - if(settings.allow_resize) - $(window).bind('scroll.prettyphoto',function(){ _center_overlay(); }); - - - $.prettyPhoto.open(); - - return false; - } - - - /** - * Opens the prettyPhoto modal box. - * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths. - * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles. - * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions. - */ - $.prettyPhoto.open = function(event) { - if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables - settings = pp_settings; - pp_images = $.makeArray(arguments[0]); - pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray(""); - pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray(""); - isSet = (pp_images.length > 1) ? true : false; - set_position = (arguments[3])? arguments[3]: 0; - _build_overlay(event.target); // Build the overlay {this} being the caller - } - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash - - _checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images. - - $('.pp_loaderIcon').show(); - - if(settings.deeplinking) - setHashtag(); - - // Rebuild Facebook Like Button with updated href - if(settings.social_tools){ - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - $pp_pic_holder.find('.pp_social').html(facebook_like_link); - } - - // Fade the content in - if($ppt.is(':hidden')) $ppt.css('opacity',0).show(); - $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity); - - // Display the current position - $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size()); - - // Set the description - if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){ - $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position])); - }else{ - $pp_pic_holder.find('.pp_description').hide(); - } - - // Get the dimensions - movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString(); - movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString(); - - // If the size is % based, calculate according to window dimensions - percentBased=false; - if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; } - if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; } - - // Fade the holder - $pp_pic_holder.fadeIn(function(){ - // Set the title - (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html(' '); - - imgPreloader = ""; - skipInjection = false; - - // Inject the proper content - switch(_getFileType(pp_images[set_position])){ - case 'image': - imgPreloader = new Image(); - - // Preload the neighbour images - nextImage = new Image(); - if(isSet && set_position < $(pp_images).size() -1) nextImage.src = pp_images[set_position + 1]; - prevImage = new Image(); - if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1]; - - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]); - - imgPreloader.onload = function(){ - // Fit item to viewport - pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height); - - _showContent(); - }; - - imgPreloader.onerror = function(){ - alert('Image cannot be loaded. Make sure the path is correct and image exist.'); - $.prettyPhoto.close(); - }; - - imgPreloader.src = pp_images[set_position]; - break; - - case 'youtube': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - // Regular youtube link - movie_id = getParam('v',pp_images[set_position]); - - // youtu.be link - if(movie_id == ""){ - movie_id = pp_images[set_position].split('youtu.be/'); - movie_id = movie_id[1]; - if(movie_id.indexOf('?') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ? - - if(movie_id.indexOf('&') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the & - } - - movie = 'http://www.youtube.com/embed/'+movie_id; - (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1"; - - if(settings.autoplay) movie += "&autoplay=1"; - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie); - break; - - case 'vimeo': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - movie_id = pp_images[set_position]; - var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/; - var match = movie_id.match(regExp); - - movie = 'http://player.vimeo.com/video/'+ match[3] +'?title=0&byline=0&portrait=0'; - if(settings.autoplay) movie += "&autoplay=1;"; - - vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width']; - - toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie); - break; - - case 'quicktime': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar - - toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay); - break; - - case 'flash': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - flash_vars = pp_images[set_position]; - flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length); - - filename = pp_images[set_position]; - filename = filename.substring(0,filename.indexOf('?')); - - toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars); - break; - - case 'iframe': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - frame_url = pp_images[set_position]; - frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1); - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url); - break; - - case 'ajax': - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport(movie_width,movie_height); - doresize = true; // Reset the dimensions - - skipInjection = true; - $.get(pp_images[set_position],function(responseHTML){ - toInject = settings.inline_markup.replace(/{content}/g,responseHTML); - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - _showContent(); - }); - - break; - - case 'custom': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - toInject = settings.custom_markup; - break; - - case 'inline': - // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete - myClone = $(pp_images[set_position]).clone().append('<br clear="all" />').css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo($('body')).show(); - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height()); - doresize = true; // Reset the dimensions - $(myClone).remove(); - toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html()); - break; - }; - - if(!imgPreloader && !skipInjection){ - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - - // Show content - _showContent(); - }; - }); - - return false; - }; - - - /** - * Change page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changePage = function(direction){ - currentGalleryPage = 0; - - if(direction == 'previous') { - set_position--; - if (set_position < 0) set_position = $(pp_images).size()-1; - }else if(direction == 'next'){ - set_position++; - if(set_position > $(pp_images).size()-1) set_position = 0; - }else{ - set_position=direction; - }; - - rel_index = set_position; - - if(!doresize) doresize = true; // Allow the resizing of the images - if(settings.allow_expand) { - $('.pp_contract').removeClass('pp_contract').addClass('pp_expand'); - } - - _hideContent(function(){ $.prettyPhoto.open(); }); - }; - - - /** - * Change gallery page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changeGalleryPage = function(direction){ - if(direction=='next'){ - currentGalleryPage ++; - - if(currentGalleryPage > totalPage) currentGalleryPage = 0; - }else if(direction=='previous'){ - currentGalleryPage --; - - if(currentGalleryPage < 0) currentGalleryPage = totalPage; - }else{ - currentGalleryPage = direction; - }; - - slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0; - - slide_to = currentGalleryPage * (itemsPerPage * itemWidth); - - $pp_gallery.find('ul').animate({left:-slide_to},slide_speed); - }; - - - /** - * Start the slideshow... - */ - $.prettyPhoto.startSlideshow = function(){ - if(typeof pp_slideshow == 'undefined'){ - $pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){ - $.prettyPhoto.stopSlideshow(); - return false; - }); - pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow); - }else{ - $.prettyPhoto.changePage('next'); - }; - } - - - /** - * Stop the slideshow... - */ - $.prettyPhoto.stopSlideshow = function(){ - $pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - clearInterval(pp_slideshow); - pp_slideshow=undefined; - } - - - /** - * Closes prettyPhoto. - */ - $.prettyPhoto.close = function(){ - if($pp_overlay.is(":animated")) return; - - $.prettyPhoto.stopSlideshow(); - - $pp_pic_holder.stop().find('object,embed').css('visibility','hidden'); - - $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); }); - - $pp_overlay.fadeOut(settings.animation_speed, function(){ - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash - - $(this).remove(); // No more need for the prettyPhoto markup - - $(window).unbind('scroll.prettyphoto'); - - clearHashtag(); - - settings.callback(); - - doresize = true; - - pp_open = false; - - delete settings; - }); - }; - - /** - * Set the proper sizes on the containers and animate the content in. - */ - function _showContent(){ - $('.pp_loaderIcon').hide(); - - // Calculate the opened top position of the pic holder - projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2)); - if(projectedTop < 0) projectedTop = 0; - - $ppt.fadeTo(settings.animation_speed,1); - - // Resize the content holder - $pp_pic_holder.find('.pp_content') - .animate({ - height:pp_dimensions['contentHeight'], - width:pp_dimensions['contentWidth'] - },settings.animation_speed); - - // Resize picture the holder - $pp_pic_holder.animate({ - 'top': projectedTop, - 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2), - width:pp_dimensions['containerWidth'] - },settings.animation_speed,function(){ - $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']); - - $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content - - // Show the nav - if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); } - - if(settings.allow_expand) { - if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized - $('a.pp_expand,a.pp_contract').show(); - }else{ - $('a.pp_expand').hide(); - } - } - - if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow(); - - settings.changepicturecallback(); // Callback! - - pp_open = true; - }); - - _insert_gallery(); - pp_settings.ajaxcallback(); - }; - - /** - * Hide the content...DUH! - */ - function _hideContent(callback){ - // Fade out the current picture - $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden'); - $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){ - $('.pp_loaderIcon').show(); - - callback(); - }); - }; - - /** - * Check the item position in the gallery array, hide or show the navigation links - * @param setCount {integer} The total number of items in the set - */ - function _checkPosition(setCount){ - (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set. - }; - - /** - * Resize the item dimensions if it's bigger than the viewport - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - * @return An array containin the "fitted" dimensions - */ - function _fitToViewport(width,height){ - resized = false; - - _getDimensions(width,height); - - // Define them in case there's no resize needed - imageWidth = width, imageHeight = height; - - if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) { - resized = true, fitting = false; - - while (!fitting){ - if((pp_containerWidth > windowWidth)){ - imageWidth = (windowWidth - 200); - imageHeight = (height/width) * imageWidth; - }else if((pp_containerHeight > windowHeight)){ - imageHeight = (windowHeight - 200); - imageWidth = (width/height) * imageHeight; - }else{ - fitting = true; - }; - - pp_containerHeight = imageHeight, pp_containerWidth = imageWidth; - }; - - - - if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){ - _fitToViewport(pp_containerWidth,pp_containerHeight) - }; - - _getDimensions(imageWidth,imageHeight); - }; - - return { - width:Math.floor(imageWidth), - height:Math.floor(imageHeight), - containerHeight:Math.floor(pp_containerHeight), - containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2), - contentHeight:Math.floor(pp_contentHeight), - contentWidth:Math.floor(pp_contentWidth), - resized:resized - }; - }; - - /** - * Get the containers dimensions according to the item size - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - */ - function _getDimensions(width,height){ - width = parseFloat(width); - height = parseFloat(height); - - // Get the details height, to do so, I need to clone it since it's invisible - $pp_details = $pp_pic_holder.find('.pp_details'); - $pp_details.width(width); - detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom')); - - $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - detailsHeight += $pp_details.height(); - detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details - $pp_details.remove(); - - // Get the titles height, to do so, I need to clone it since it's invisible - $pp_title = $pp_pic_holder.find('.ppt'); - $pp_title.width(width); - titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom')); - $pp_title = $pp_title.clone().appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - titleHeight += $pp_title.height(); - $pp_title.remove(); - - // Get the container size, to resize the holder to the right dimensions - pp_contentHeight = height + detailsHeight; - pp_contentWidth = width; - pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height(); - pp_containerWidth = width; - } - - function _getFileType(itemSrc){ - if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) { - return 'youtube'; - }else if (itemSrc.match(/vimeo\.com/i)) { - return 'vimeo'; - }else if(itemSrc.match(/\b.mov\b/i)){ - return 'quicktime'; - }else if(itemSrc.match(/\b.swf\b/i)){ - return 'flash'; - }else if(itemSrc.match(/\biframe=true\b/i)){ - return 'iframe'; - }else if(itemSrc.match(/\bajax=true\b/i)){ - return 'ajax'; - }else if(itemSrc.match(/\bcustom=true\b/i)){ - return 'custom'; - }else if(itemSrc.substr(0,1) == '#'){ - return 'inline'; - }else{ - return 'image'; - }; - }; - - function _center_overlay(){ - if(doresize && typeof $pp_pic_holder != 'undefined') { - scroll_pos = _get_scroll(); - contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width(); - - projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2); - if(projectedTop < 0) projectedTop = 0; - - if(contentHeight > windowHeight) - return; - - $pp_pic_holder.css({ - 'top': projectedTop, - 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2) - }); - }; - }; - - function _get_scroll(){ - if (self.pageYOffset) { - return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}; - } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict - return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}; - } else if (document.body) {// all other Explorers - return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}; - }; - }; - - function _resize_overlay() { - windowHeight = $(window).height(), windowWidth = $(window).width(); - - if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth); - }; - - function _insert_gallery(){ - if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") { - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme - - itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth); - itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length; - totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1; - - // Hide the nav in the case there's no need for links - if(totalPage == 0){ - navWidth = 0; // No nav means no width! - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide(); - }else{ - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show(); - }; - - galleryWidth = itemsPerPage * itemWidth; - fullGalleryWidth = pp_images.length * itemWidth; - - // Set the proper width to the gallery items - $pp_gallery - .css('margin-left',-((galleryWidth/2) + (navWidth/2))) - .find('div:first').width(galleryWidth+5) - .find('ul').width(fullGalleryWidth) - .find('li.selected').removeClass('selected'); - - goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage; - - $.prettyPhoto.changeGalleryPage(goToPage); - - $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected'); - }else{ - $pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave'); - // $pp_gallery.hide(); - } - } - - function _build_overlay(caller){ - // Inject Social Tool markup into General markup - if(settings.social_tools) - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - - settings.markup = settings.markup.replace('{pp_social}',''); - - $('body').append(settings.markup); // Inject the markup - - $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors - - // Inject the inline gallery! - if(isSet && settings.overlay_gallery) { - currentGalleryPage = 0; - toInject = ""; - for (var i=0; i < pp_images.length; i++) { - if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){ - classname = 'default'; - img_src = ''; - }else{ - classname = ''; - img_src = pp_images[i]; - } - toInject += "<li class='"+classname+"'><a href='#'><img src='" + img_src + "' width='50' alt='' /></a></li>"; - }; - - toInject = settings.gallery_markup.replace(/{gallery}/g,toInject); - - $pp_pic_holder.find('#pp_full_res').after(toInject); - - $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors - - $pp_gallery.find('.pp_arrow_next').click(function(){ - $.prettyPhoto.changeGalleryPage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_gallery.find('.pp_arrow_previous').click(function(){ - $.prettyPhoto.changeGalleryPage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_content').hover( - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn(); - }, - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut(); - }); - - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - $pp_gallery_li.each(function(i){ - $(this) - .find('a') - .click(function(){ - $.prettyPhoto.changePage(i); - $.prettyPhoto.stopSlideshow(); - return false; - }); - }); - }; - - - // Inject the play/pause if it's a slideshow - if(settings.slideshow){ - $pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>') - $pp_pic_holder.find('.pp_nav .pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - } - - $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme - - $pp_overlay - .css({ - 'opacity':0, - 'height':$(document).height(), - 'width':$(window).width() - }) - .bind('click',function(){ - if(!settings.modal) $.prettyPhoto.close(); - }); - - $('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; }); - - - if(settings.allow_expand) { - $('a.pp_expand').bind('click',function(e){ - // Expand the image - if($(this).hasClass('pp_expand')){ - $(this).removeClass('pp_expand').addClass('pp_contract'); - doresize = false; - }else{ - $(this).removeClass('pp_contract').addClass('pp_expand'); - doresize = true; - }; - - _hideContent(function(){ $.prettyPhoto.open(); }); - - return false; - }); - } - - $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){ - $.prettyPhoto.changePage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){ - $.prettyPhoto.changePage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - _center_overlay(); // Center it - }; - - if(!pp_alreadyInitialized && getHashtag()){ - pp_alreadyInitialized = true; - - // Grab the rel index to trigger the click on the correct element - hashIndex = getHashtag(); - hashRel = hashIndex; - hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1); - hashRel = hashRel.substring(0,hashRel.indexOf('/')); - - // Little timeout to make sure all the prettyPhoto initialize scripts has been run. - // Useful in the event the page contain several init scripts. - setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50); - } - - return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once - }; - - function getHashtag(){ - var url = location.href; - hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false; - - return hashtag; - }; - - function setHashtag(){ - if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API - location.hash = theRel + '/'+rel_index+'/'; - }; - - function clearHashtag(){ - if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto"; - } - - function getParam(name,url){ - name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); - var regexS = "[\\?&]"+name+"=([^&#]*)"; - var regex = new RegExp( regexS ); - var results = regex.exec( url ); - return ( results == null ) ? "" : results[1]; - } - -})(jQuery); - -var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times. diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 027f296f..c30a98bf 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -14,7 +14,6 @@ <link href="{% static 'css/base.css' %}?version=1" rel="stylesheet"> <link href="{% static 'css/layout.css' %}?version=1" rel="stylesheet"> <link href="{% static 'css/modules.css' %}?version=1" rel="stylesheet"> - <link href="{% static 'prettyPhoto/css/prettyPhoto.css' %}" rel="stylesheet" type="text/css" media="screen" charset="utf-8" /> <script src="{% static 'js/jquery-1.11.1.js' %}"></script> <script src="{% static 'js/jquery-3.4.1.js' %}"></script> @@ -123,16 +122,6 @@ <script src="{% static 'bootstrap/js/bootstrap.js' %}"></script> <script src="{% static 'js/jquery.jcarousel-core.js' %}" type="text/javascript"></script> - <script src="{% static 'prettyPhoto/js/jquery.prettyPhoto.js' %}" type="text/javascript" charset="utf-8"></script> - <script type="text/javascript" charset="utf-8"> - var prettyparams = { - animation_speed: 'fast', - theme: 'dark_rounded', - } - $(document).ready(function(){ - $("a[rel^='gallery-image']").prettyPhoto(prettyparams); - }); - </script> {% if april == 2021 %} <script type="text/javascript" charset="utf-8"> function rotace(vektor, uhel_deg) { From 52dc337a20639baff0a111c6d771f76ed3abdacb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 08:41:13 +0100 Subject: [PATCH 041/225] =?UTF-8?q?Dosp=C4=9Bl=20jsem=20k=20n=C3=A1zoru,?= =?UTF-8?q?=20=C5=BEe=20jCarousel=20se=20na=20webu=20tak=C3=A9=20nepou?= =?UTF-8?q?=C5=BE=C3=ADv=C3=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/js/jquery.jcarousel-core.js | 1021 --------------------- mamweb/templates/base.html | 1 - 2 files changed, 1022 deletions(-) delete mode 100644 mamweb/static/js/jquery.jcarousel-core.js diff --git a/mamweb/static/js/jquery.jcarousel-core.js b/mamweb/static/js/jquery.jcarousel-core.js deleted file mode 100644 index 0054c007..00000000 --- a/mamweb/static/js/jquery.jcarousel-core.js +++ /dev/null @@ -1,1021 +0,0 @@ -/*! jCarousel - v0.3.1 - 2014-04-26 -* http://sorgalla.com/jcarousel -* Copyright (c) 2014 Jan Sorgalla; Licensed MIT */ -(function($) { - 'use strict'; - - var jCarousel = $.jCarousel = {}; - - jCarousel.version = '0.3.1'; - - var rRelativeTarget = /^([+\-]=)?(.+)$/; - - jCarousel.parseTarget = function(target) { - var relative = false, - parts = typeof target !== 'object' ? - rRelativeTarget.exec(target) : - null; - - if (parts) { - target = parseInt(parts[2], 10) || 0; - - if (parts[1]) { - relative = true; - if (parts[1] === '-=') { - target *= -1; - } - } - } else if (typeof target !== 'object') { - target = parseInt(target, 10) || 0; - } - - return { - target: target, - relative: relative - }; - }; - - jCarousel.detectCarousel = function(element) { - var carousel; - - while (element.length > 0) { - carousel = element.filter('[data-jcarousel]'); - - if (carousel.length > 0) { - return carousel; - } - - carousel = element.find('[data-jcarousel]'); - - if (carousel.length > 0) { - return carousel; - } - - element = element.parent(); - } - - return null; - }; - - jCarousel.base = function(pluginName) { - return { - version: jCarousel.version, - _options: {}, - _element: null, - _carousel: null, - _init: $.noop, - _create: $.noop, - _destroy: $.noop, - _reload: $.noop, - create: function() { - this._element - .attr('data-' + pluginName.toLowerCase(), true) - .data(pluginName, this); - - if (false === this._trigger('create')) { - return this; - } - - this._create(); - - this._trigger('createend'); - - return this; - }, - destroy: function() { - if (false === this._trigger('destroy')) { - return this; - } - - this._destroy(); - - this._trigger('destroyend'); - - this._element - .removeData(pluginName) - .removeAttr('data-' + pluginName.toLowerCase()); - - return this; - }, - reload: function(options) { - if (false === this._trigger('reload')) { - return this; - } - - if (options) { - this.options(options); - } - - this._reload(); - - this._trigger('reloadend'); - - return this; - }, - element: function() { - return this._element; - }, - options: function(key, value) { - if (arguments.length === 0) { - return $.extend({}, this._options); - } - - if (typeof key === 'string') { - if (typeof value === 'undefined') { - return typeof this._options[key] === 'undefined' ? - null : - this._options[key]; - } - - this._options[key] = value; - } else { - this._options = $.extend({}, this._options, key); - } - - return this; - }, - carousel: function() { - if (!this._carousel) { - this._carousel = jCarousel.detectCarousel(this.options('carousel') || this._element); - - if (!this._carousel) { - $.error('Could not detect carousel for plugin "' + pluginName + '"'); - } - } - - return this._carousel; - }, - _trigger: function(type, element, data) { - var event, - defaultPrevented = false; - - data = [this].concat(data || []); - - (element || this._element).each(function() { - event = $.Event((pluginName + ':' + type).toLowerCase()); - - $(this).trigger(event, data); - - if (event.isDefaultPrevented()) { - defaultPrevented = true; - } - }); - - return !defaultPrevented; - } - }; - }; - - jCarousel.plugin = function(pluginName, pluginPrototype) { - var Plugin = $[pluginName] = function(element, options) { - this._element = $(element); - this.options(options); - - this._init(); - this.create(); - }; - - Plugin.fn = Plugin.prototype = $.extend( - {}, - jCarousel.base(pluginName), - pluginPrototype - ); - - $.fn[pluginName] = function(options) { - var args = Array.prototype.slice.call(arguments, 1), - returnValue = this; - - if (typeof options === 'string') { - this.each(function() { - var instance = $(this).data(pluginName); - - if (!instance) { - return $.error( - 'Cannot call methods on ' + pluginName + ' prior to initialization; ' + - 'attempted to call method "' + options + '"' - ); - } - - if (!$.isFunction(instance[options]) || options.charAt(0) === '_') { - return $.error( - 'No such method "' + options + '" for ' + pluginName + ' instance' - ); - } - - var methodValue = instance[options].apply(instance, args); - - if (methodValue !== instance && typeof methodValue !== 'undefined') { - returnValue = methodValue; - return false; - } - }); - } else { - this.each(function() { - var instance = $(this).data(pluginName); - - if (instance instanceof Plugin) { - instance.reload(options); - } else { - new Plugin(this, options); - } - }); - } - - return returnValue; - }; - - return Plugin; - }; -}(jQuery)); - -(function($, window) { - 'use strict'; - - var toFloat = function(val) { - return parseFloat(val) || 0; - }; - - $.jCarousel.plugin('jcarousel', { - animating: false, - tail: 0, - inTail: false, - resizeTimer: null, - lt: null, - vertical: false, - rtl: false, - circular: false, - underflow: false, - relative: false, - - _options: { - list: function() { - return this.element().children().eq(0); - }, - items: function() { - return this.list().children(); - }, - animation: 400, - transitions: false, - wrap: null, - vertical: null, - rtl: null, - center: false - }, - - // Protected, don't access directly - _list: null, - _items: null, - _target: null, - _first: null, - _last: null, - _visible: null, - _fullyvisible: null, - _init: function() { - var self = this; - - this.onWindowResize = function() { - if (self.resizeTimer) { - clearTimeout(self.resizeTimer); - } - - self.resizeTimer = setTimeout(function() { - self.reload(); - }, 100); - }; - - return this; - }, - _create: function() { - this._reload(); - - $(window).on('resize.jcarousel', this.onWindowResize); - }, - _destroy: function() { - $(window).off('resize.jcarousel', this.onWindowResize); - }, - _reload: function() { - this.vertical = this.options('vertical'); - - if (this.vertical == null) { - this.vertical = this.list().height() > this.list().width(); - } - - this.rtl = this.options('rtl'); - - if (this.rtl == null) { - this.rtl = (function(element) { - if (('' + element.attr('dir')).toLowerCase() === 'rtl') { - return true; - } - - var found = false; - - element.parents('[dir]').each(function() { - if ((/rtl/i).test($(this).attr('dir'))) { - found = true; - return false; - } - }); - - return found; - }(this._element)); - } - - this.lt = this.vertical ? 'top' : 'left'; - - // Ensure before closest() call - this.relative = this.list().css('position') === 'relative'; - - // Force list and items reload - this._list = null; - this._items = null; - - var item = this._target && this.index(this._target) >= 0 ? - this._target : - this.closest(); - - // _prepare() needs this here - this.circular = this.options('wrap') === 'circular'; - this.underflow = false; - - var props = {'left': 0, 'top': 0}; - - if (item.length > 0) { - this._prepare(item); - this.list().find('[data-jcarousel-clone]').remove(); - - // Force items reload - this._items = null; - - this.underflow = this._fullyvisible.length >= this.items().length; - this.circular = this.circular && !this.underflow; - - props[this.lt] = this._position(item) + 'px'; - } - - this.move(props); - - return this; - }, - list: function() { - if (this._list === null) { - var option = this.options('list'); - this._list = $.isFunction(option) ? option.call(this) : this._element.find(option); - } - - return this._list; - }, - items: function() { - if (this._items === null) { - var option = this.options('items'); - this._items = ($.isFunction(option) ? option.call(this) : this.list().find(option)).not('[data-jcarousel-clone]'); - } - - return this._items; - }, - index: function(item) { - return this.items().index(item); - }, - closest: function() { - var self = this, - pos = this.list().position()[this.lt], - closest = $(), // Ensure we're returning a jQuery instance - stop = false, - lrb = this.vertical ? 'bottom' : (this.rtl && !this.relative ? 'left' : 'right'), - width; - - if (this.rtl && this.relative && !this.vertical) { - pos += this.list().width() - this.clipping(); - } - - this.items().each(function() { - closest = $(this); - - if (stop) { - return false; - } - - var dim = self.dimension(closest); - - pos += dim; - - if (pos >= 0) { - width = dim - toFloat(closest.css('margin-' + lrb)); - - if ((Math.abs(pos) - dim + (width / 2)) <= 0) { - stop = true; - } else { - return false; - } - } - }); - - - return closest; - }, - target: function() { - return this._target; - }, - first: function() { - return this._first; - }, - last: function() { - return this._last; - }, - visible: function() { - return this._visible; - }, - fullyvisible: function() { - return this._fullyvisible; - }, - hasNext: function() { - if (false === this._trigger('hasnext')) { - return true; - } - - var wrap = this.options('wrap'), - end = this.items().length - 1; - - return end >= 0 && !this.underflow && - ((wrap && wrap !== 'first') || - (this.index(this._last) < end) || - (this.tail && !this.inTail)) ? true : false; - }, - hasPrev: function() { - if (false === this._trigger('hasprev')) { - return true; - } - - var wrap = this.options('wrap'); - - return this.items().length > 0 && !this.underflow && - ((wrap && wrap !== 'last') || - (this.index(this._first) > 0) || - (this.tail && this.inTail)) ? true : false; - }, - clipping: function() { - return this._element['inner' + (this.vertical ? 'Height' : 'Width')](); - }, - dimension: function(element) { - return element['outer' + (this.vertical ? 'Height' : 'Width')](true); - }, - scroll: function(target, animate, callback) { - if (this.animating) { - return this; - } - - if (false === this._trigger('scroll', null, [target, animate])) { - return this; - } - - if ($.isFunction(animate)) { - callback = animate; - animate = true; - } - - var parsed = $.jCarousel.parseTarget(target); - - if (parsed.relative) { - var end = this.items().length - 1, - scroll = Math.abs(parsed.target), - wrap = this.options('wrap'), - current, - first, - index, - start, - curr, - isVisible, - props, - i; - - if (parsed.target > 0) { - var last = this.index(this._last); - - if (last >= end && this.tail) { - if (!this.inTail) { - this._scrollTail(animate, callback); - } else { - if (wrap === 'both' || wrap === 'last') { - this._scroll(0, animate, callback); - } else { - if ($.isFunction(callback)) { - callback.call(this, false); - } - } - } - } else { - current = this.index(this._target); - - if ((this.underflow && current === end && (wrap === 'circular' || wrap === 'both' || wrap === 'last')) || - (!this.underflow && last === end && (wrap === 'both' || wrap === 'last'))) { - this._scroll(0, animate, callback); - } else { - index = current + scroll; - - if (this.circular && index > end) { - i = end; - curr = this.items().get(-1); - - while (i++ < index) { - curr = this.items().eq(0); - isVisible = this._visible.index(curr) >= 0; - - if (isVisible) { - curr.after(curr.clone(true).attr('data-jcarousel-clone', true)); - } - - this.list().append(curr); - - if (!isVisible) { - props = {}; - props[this.lt] = this.dimension(curr); - this.moveBy(props); - } - - // Force items reload - this._items = null; - } - - this._scroll(curr, animate, callback); - } else { - this._scroll(Math.min(index, end), animate, callback); - } - } - } - } else { - if (this.inTail) { - this._scroll(Math.max((this.index(this._first) - scroll) + 1, 0), animate, callback); - } else { - first = this.index(this._first); - current = this.index(this._target); - start = this.underflow ? current : first; - index = start - scroll; - - if (start <= 0 && ((this.underflow && wrap === 'circular') || wrap === 'both' || wrap === 'first')) { - this._scroll(end, animate, callback); - } else { - if (this.circular && index < 0) { - i = index; - curr = this.items().get(0); - - while (i++ < 0) { - curr = this.items().eq(-1); - isVisible = this._visible.index(curr) >= 0; - - if (isVisible) { - curr.after(curr.clone(true).attr('data-jcarousel-clone', true)); - } - - this.list().prepend(curr); - - // Force items reload - this._items = null; - - var dim = this.dimension(curr); - - props = {}; - props[this.lt] = -dim; - this.moveBy(props); - - } - - this._scroll(curr, animate, callback); - } else { - this._scroll(Math.max(index, 0), animate, callback); - } - } - } - } - } else { - this._scroll(parsed.target, animate, callback); - } - - this._trigger('scrollend'); - - return this; - }, - moveBy: function(properties, opts) { - var position = this.list().position(), - multiplier = 1, - correction = 0; - - if (this.rtl && !this.vertical) { - multiplier = -1; - - if (this.relative) { - correction = this.list().width() - this.clipping(); - } - } - - if (properties.left) { - properties.left = (position.left + correction + toFloat(properties.left) * multiplier) + 'px'; - } - - if (properties.top) { - properties.top = (position.top + correction + toFloat(properties.top) * multiplier) + 'px'; - } - - return this.move(properties, opts); - }, - move: function(properties, opts) { - opts = opts || {}; - - var option = this.options('transitions'), - transitions = !!option, - transforms = !!option.transforms, - transforms3d = !!option.transforms3d, - duration = opts.duration || 0, - list = this.list(); - - if (!transitions && duration > 0) { - list.animate(properties, opts); - return; - } - - var complete = opts.complete || $.noop, - css = {}; - - if (transitions) { - var backup = list.css(['transitionDuration', 'transitionTimingFunction', 'transitionProperty']), - oldComplete = complete; - - complete = function() { - $(this).css(backup); - oldComplete.call(this); - }; - css = { - transitionDuration: (duration > 0 ? duration / 1000 : 0) + 's', - transitionTimingFunction: option.easing || opts.easing, - transitionProperty: duration > 0 ? (function() { - if (transforms || transforms3d) { - // We have to use 'all' because jQuery doesn't prefix - // css values, like transition-property: transform; - return 'all'; - } - - return properties.left ? 'left' : 'top'; - })() : 'none', - transform: 'none' - }; - } - - if (transforms3d) { - css.transform = 'translate3d(' + (properties.left || 0) + ',' + (properties.top || 0) + ',0)'; - } else if (transforms) { - css.transform = 'translate(' + (properties.left || 0) + ',' + (properties.top || 0) + ')'; - } else { - $.extend(css, properties); - } - - if (transitions && duration > 0) { - list.one('transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd', complete); - } - - list.css(css); - - if (duration <= 0) { - list.each(function() { - complete.call(this); - }); - } - }, - _scroll: function(item, animate, callback) { - if (this.animating) { - if ($.isFunction(callback)) { - callback.call(this, false); - } - - return this; - } - - if (typeof item !== 'object') { - item = this.items().eq(item); - } else if (typeof item.jquery === 'undefined') { - item = $(item); - } - - if (item.length === 0) { - if ($.isFunction(callback)) { - callback.call(this, false); - } - - return this; - } - - this.inTail = false; - - this._prepare(item); - - var pos = this._position(item), - currPos = this.list().position()[this.lt]; - - if (pos === currPos) { - if ($.isFunction(callback)) { - callback.call(this, false); - } - - return this; - } - - var properties = {}; - properties[this.lt] = pos + 'px'; - - this._animate(properties, animate, callback); - - return this; - }, - _scrollTail: function(animate, callback) { - if (this.animating || !this.tail) { - if ($.isFunction(callback)) { - callback.call(this, false); - } - - return this; - } - - var pos = this.list().position()[this.lt]; - - if (this.rtl && this.relative && !this.vertical) { - pos += this.list().width() - this.clipping(); - } - - if (this.rtl && !this.vertical) { - pos += this.tail; - } else { - pos -= this.tail; - } - - this.inTail = true; - - var properties = {}; - properties[this.lt] = pos + 'px'; - - this._update({ - target: this._target.next(), - fullyvisible: this._fullyvisible.slice(1).add(this._visible.last()) - }); - - this._animate(properties, animate, callback); - - return this; - }, - _animate: function(properties, animate, callback) { - callback = callback || $.noop; - - if (false === this._trigger('animate')) { - callback.call(this, false); - return this; - } - - this.animating = true; - - var animation = this.options('animation'), - complete = $.proxy(function() { - this.animating = false; - - var c = this.list().find('[data-jcarousel-clone]'); - - if (c.length > 0) { - c.remove(); - this._reload(); - } - - this._trigger('animateend'); - - callback.call(this, true); - }, this); - - var opts = typeof animation === 'object' ? - $.extend({}, animation) : - {duration: animation}, - oldComplete = opts.complete || $.noop; - - if (animate === false) { - opts.duration = 0; - } else if (typeof $.fx.speeds[opts.duration] !== 'undefined') { - opts.duration = $.fx.speeds[opts.duration]; - } - - opts.complete = function() { - complete(); - oldComplete.call(this); - }; - - this.move(properties, opts); - - return this; - }, - _prepare: function(item) { - var index = this.index(item), - idx = index, - wh = this.dimension(item), - clip = this.clipping(), - lrb = this.vertical ? 'bottom' : (this.rtl ? 'left' : 'right'), - center = this.options('center'), - update = { - target: item, - first: item, - last: item, - visible: item, - fullyvisible: wh <= clip ? item : $() - }, - curr, - isVisible, - margin, - dim; - - if (center) { - wh /= 2; - clip /= 2; - } - - if (wh < clip) { - while (true) { - curr = this.items().eq(++idx); - - if (curr.length === 0) { - if (!this.circular) { - break; - } - - curr = this.items().eq(0); - - if (item.get(0) === curr.get(0)) { - break; - } - - isVisible = this._visible.index(curr) >= 0; - - if (isVisible) { - curr.after(curr.clone(true).attr('data-jcarousel-clone', true)); - } - - this.list().append(curr); - - if (!isVisible) { - var props = {}; - props[this.lt] = this.dimension(curr); - this.moveBy(props); - } - - // Force items reload - this._items = null; - } - - dim = this.dimension(curr); - - if (dim === 0) { - break; - } - - wh += dim; - - update.last = curr; - update.visible = update.visible.add(curr); - - // Remove right/bottom margin from total width - margin = toFloat(curr.css('margin-' + lrb)); - - if ((wh - margin) <= clip) { - update.fullyvisible = update.fullyvisible.add(curr); - } - - if (wh >= clip) { - break; - } - } - } - - if (!this.circular && !center && wh < clip) { - idx = index; - - while (true) { - if (--idx < 0) { - break; - } - - curr = this.items().eq(idx); - - if (curr.length === 0) { - break; - } - - dim = this.dimension(curr); - - if (dim === 0) { - break; - } - - wh += dim; - - update.first = curr; - update.visible = update.visible.add(curr); - - // Remove right/bottom margin from total width - margin = toFloat(curr.css('margin-' + lrb)); - - if ((wh - margin) <= clip) { - update.fullyvisible = update.fullyvisible.add(curr); - } - - if (wh >= clip) { - break; - } - } - } - - this._update(update); - - this.tail = 0; - - if (!center && - this.options('wrap') !== 'circular' && - this.options('wrap') !== 'custom' && - this.index(update.last) === (this.items().length - 1)) { - - // Remove right/bottom margin from total width - wh -= toFloat(update.last.css('margin-' + lrb)); - - if (wh > clip) { - this.tail = wh - clip; - } - } - - return this; - }, - _position: function(item) { - var first = this._first, - pos = first.position()[this.lt], - center = this.options('center'), - centerOffset = center ? (this.clipping() / 2) - (this.dimension(first) / 2) : 0; - - if (this.rtl && !this.vertical) { - if (this.relative) { - pos -= this.list().width() - this.dimension(first); - } else { - pos -= this.clipping() - this.dimension(first); - } - - pos += centerOffset; - } else { - pos -= centerOffset; - } - - if (!center && - (this.index(item) > this.index(first) || this.inTail) && - this.tail) { - pos = this.rtl && !this.vertical ? pos - this.tail : pos + this.tail; - this.inTail = true; - } else { - this.inTail = false; - } - - return -pos; - }, - _update: function(update) { - var self = this, - current = { - target: this._target || $(), - first: this._first || $(), - last: this._last || $(), - visible: this._visible || $(), - fullyvisible: this._fullyvisible || $() - }, - back = this.index(update.first || current.first) < this.index(current.first), - key, - doUpdate = function(key) { - var elIn = [], - elOut = []; - - update[key].each(function() { - if (current[key].index(this) < 0) { - elIn.push(this); - } - }); - - current[key].each(function() { - if (update[key].index(this) < 0) { - elOut.push(this); - } - }); - - if (back) { - elIn = elIn.reverse(); - } else { - elOut = elOut.reverse(); - } - - self._trigger(key + 'in', $(elIn)); - self._trigger(key + 'out', $(elOut)); - - self['_' + key] = update[key]; - }; - - for (key in update) { - doUpdate(key); - } - - return this; - } - }); -}(jQuery, window)); diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index c30a98bf..f8012564 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -121,7 +121,6 @@ <script src="{% static 'bootstrap/js/bootstrap.js' %}"></script> - <script src="{% static 'js/jquery.jcarousel-core.js' %}" type="text/javascript"></script> {% if april == 2021 %} <script type="text/javascript" charset="utf-8"> function rotace(vektor, uhel_deg) { From c5b81871d2e0cce2b6cde530c9751466f3d9e0c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 09:03:15 +0100 Subject: [PATCH 042/225] =?UTF-8?q?P=C5=99em=C3=BD=C5=A1lel=20jsem,=20zda?= =?UTF-8?q?=20apr=C3=ADly=20nevyhodit=20do=20*.js,=20ale=20nakonec=20jen?= =?UTF-8?q?=20takhto=20do=20separ=C3=A1tn=C3=ADho=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/april.html | 61 +++++++++++++++++++++++++++++++++++++ mamweb/templates/base.html | 59 +---------------------------------- 2 files changed, 62 insertions(+), 58 deletions(-) create mode 100644 mamweb/templates/april.html diff --git a/mamweb/templates/april.html b/mamweb/templates/april.html new file mode 100644 index 00000000..c67fae54 --- /dev/null +++ b/mamweb/templates/april.html @@ -0,0 +1,61 @@ +{% if april == 2021 %} + <script type="text/javascript" charset="utf-8"> + function rotace(vektor, uhel_deg) { + var uhel = uhel_deg *(Math.PI / 180); + var x = vektor[0]; + var y = vektor[1]; + return [x*Math.cos(uhel) - y*Math.sin(uhel), x*Math.sin(uhel) + y*Math.cos(uhel)]; + } + + function rotace_a_posun(obj, uhel) { + var ow = obj.width(); + var oh = obj.height(); + + var rohy = [[0,0], [0,oh], [ow, 0], [ow, oh]]; + var minx = 0; + var miny = 0; + for (var roh of rohy) { + var otoceny = rotace(roh, uhel); + if (otoceny[0] < minx) { + minx = otoceny[0]; + } + if (otoceny[1] < miny) { + miny = otoceny[1]; + } + } + + miny *= -1; + minx *= -1; + + var transf_str = "translateX("+minx+"px) translateY("+miny+"px) rotate("+uhel+"deg)"; + obj.css('transform-origin', 'top left'); + obj.css('transform', transf_str); + } + + function randomUhel() { + return Math.floor(360*Math.random()); + } + + $('.container').css('margin', 0); + rotace_a_posun($('.container'), randomUhel()); + </script> +{% endif %} + + + +{% if april == 2023 %} + <script> + {# By https://stackoverflow.com/a/34559316 #} + function walkText(node) { + if (node.nodeType == 3) { + node.data = node.data.replace(/M&M/g, "M💘M"); + } + if (node.nodeType == 1 && node.nodeName != "SCRIPT") { + for (var i = 0; i < node.childNodes.length; i++) { + walkText(node.childNodes[i]); + } + } + } + walkText(document.body); + </script> +{% endif %} \ No newline at end of file diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index f8012564..b8ba0039 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -121,64 +121,7 @@ <script src="{% static 'bootstrap/js/bootstrap.js' %}"></script> - {% if april == 2021 %} - <script type="text/javascript" charset="utf-8"> - function rotace(vektor, uhel_deg) { - var uhel = uhel_deg *(Math.PI / 180); - var x = vektor[0]; - var y = vektor[1]; - return [x*Math.cos(uhel) - y*Math.sin(uhel), x*Math.sin(uhel) + y*Math.cos(uhel)]; - } - - function rotace_a_posun(obj, uhel) { - var ow = obj.width(); - var oh = obj.height(); - - var rohy = [[0,0], [0,oh], [ow, 0], [ow, oh]]; - var minx = 0; - var miny = 0; - for (var roh of rohy) { - var otoceny = rotace(roh, uhel); - if (otoceny[0] < minx) { - minx = otoceny[0]; - } - if (otoceny[1] < miny) { - miny = otoceny[1]; - } - } - - miny *= -1; - minx *= -1; - - var transf_str = "translateX("+minx+"px) translateY("+miny+"px) rotate("+uhel+"deg)"; - obj.css('transform-origin', 'top left'); - obj.css('transform', transf_str); - } - - function randomUhel() { - return Math.floor(360*Math.random()); - } - - $('.container').css('margin', 0); - rotace_a_posun($('.container'), randomUhel()); - </script> - {% endif %} - {% if april == 2023 %} - <script> -{# By https://stackoverflow.com/a/34559316 #} - function walkText(node) { - if (node.nodeType == 3) { - node.data = node.data.replace(/M&M/g, "M💘M"); - } - if (node.nodeType == 1 && node.nodeName != "SCRIPT") { - for (var i = 0; i < node.childNodes.length; i++) { - walkText(node.childNodes[i]); - } - } - } - walkText(document.body); - </script> - {% endif %} + {% include 'april.html' %} {% block js %}{% endblock %} </body> </html> From 9cca7beba5e267266c3269c805756a9def29a877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 09:19:45 +0100 Subject: [PATCH 043/225] Update bootstrapu --- docs/css.rst | 2 +- .../static/bootstrap/css/bootstrap-theme.css | 469 - mamweb/static/bootstrap/css/bootstrap.css | 17287 ++++++++++------ .../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 229 - .../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 0 bytes mamweb/static/bootstrap/js/bootstrap.js | 6360 ++++-- mamweb/static/css/base.css | 3 +- 9 files changed, 15782 insertions(+), 8568 deletions(-) delete mode 100644 mamweb/static/bootstrap/css/bootstrap-theme.css delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/docs/css.rst b/docs/css.rst index a6cf96b1..b2ec20ed 100644 --- a/docs/css.rst +++ b/docs/css.rst @@ -13,7 +13,7 @@ Dále jsem separoval CSSka pro **galerii** (potřebuje hodně specifických styl Dále web (asi) používá externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): -- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap přidává ``font-size:14px``, bez čehož se web úplně rozpadne) +- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap kdysi přidával ``font-size:14px``, bez čehož se web úplně rozpadnul) Pak jsou tu ``mamweb-dev.css`` a ``printtable.css``, co jsem si ještě nerozmyslel, co s tím. diff --git a/mamweb/static/bootstrap/css/bootstrap-theme.css b/mamweb/static/bootstrap/css/bootstrap-theme.css deleted file mode 100644 index eb845eb5..00000000 --- a/mamweb/static/bootstrap/css/bootstrap-theme.css +++ /dev/null @@ -1,469 +0,0 @@ -/*! - * Bootstrap v3.3.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -.btn-default, -.btn-primary, -.btn-success, -.btn-info, -.btn-warning, -.btn-danger { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); -} -.btn-default:active, -.btn-primary:active, -.btn-success:active, -.btn-info:active, -.btn-warning:active, -.btn-danger:active, -.btn-default.active, -.btn-primary.active, -.btn-success.active, -.btn-info.active, -.btn-warning.active, -.btn-danger.active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-default .badge, -.btn-primary .badge, -.btn-success .badge, -.btn-info .badge, -.btn-warning .badge, -.btn-danger .badge { - text-shadow: none; -} -.btn:active, -.btn.active { - background-image: none; -} -.btn-default { - text-shadow: 0 1px 0 #fff; - background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); - background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #dbdbdb; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus { - background-color: #e0e0e0; - background-position: 0 -15px; -} -.btn-default:active, -.btn-default.active { - background-color: #e0e0e0; - border-color: #dbdbdb; -} -.btn-default:disabled, -.btn-default[disabled] { - background-color: #e0e0e0; - background-image: none; -} -.btn-primary { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); - background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #245580; -} -.btn-primary:hover, -.btn-primary:focus { - background-color: #265a88; - background-position: 0 -15px; -} -.btn-primary:active, -.btn-primary.active { - background-color: #265a88; - border-color: #245580; -} -.btn-primary:disabled, -.btn-primary[disabled] { - background-color: #265a88; - background-image: none; -} -.btn-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #3e8f3e; -} -.btn-success:hover, -.btn-success:focus { - background-color: #419641; - background-position: 0 -15px; -} -.btn-success:active, -.btn-success.active { - background-color: #419641; - border-color: #3e8f3e; -} -.btn-success:disabled, -.btn-success[disabled] { - background-color: #419641; - background-image: none; -} -.btn-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #28a4c9; -} -.btn-info:hover, -.btn-info:focus { - background-color: #2aabd2; - background-position: 0 -15px; -} -.btn-info:active, -.btn-info.active { - background-color: #2aabd2; - border-color: #28a4c9; -} -.btn-info:disabled, -.btn-info[disabled] { - background-color: #2aabd2; - background-image: none; -} -.btn-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #e38d13; -} -.btn-warning:hover, -.btn-warning:focus { - background-color: #eb9316; - background-position: 0 -15px; -} -.btn-warning:active, -.btn-warning.active { - background-color: #eb9316; - border-color: #e38d13; -} -.btn-warning:disabled, -.btn-warning[disabled] { - background-color: #eb9316; - background-image: none; -} -.btn-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #b92c28; -} -.btn-danger:hover, -.btn-danger:focus { - background-color: #c12e2a; - background-position: 0 -15px; -} -.btn-danger:active, -.btn-danger.active { - background-color: #c12e2a; - border-color: #b92c28; -} -.btn-danger:disabled, -.btn-danger[disabled] { - background-color: #c12e2a; - background-image: none; -} -.thumbnail, -.img-thumbnail { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - background-color: #e8e8e8; - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - background-color: #2e6da4; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; -} -.navbar-default { - background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); - background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); - background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); - background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); -} -.navbar-brand, -.navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255, 255, 255, .25); -} -.navbar-inverse { - background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); - background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); - background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); - background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); -} -.navbar-inverse .navbar-brand, -.navbar-inverse .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); -} -.navbar-static-top, -.navbar-fixed-top, -.navbar-fixed-bottom { - border-radius: 0; -} -@media (max-width: 767px) { - .navbar .navbar-nav .open .dropdown-menu > .active > a, - .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; - } -} -.alert { - text-shadow: 0 1px 0 rgba(255, 255, 255, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); -} -.alert-success { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); - background-repeat: repeat-x; - border-color: #b2dba1; -} -.alert-info { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); - background-repeat: repeat-x; - border-color: #9acfea; -} -.alert-warning { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); - background-repeat: repeat-x; - border-color: #f5e79e; -} -.alert-danger { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); - background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); - background-repeat: repeat-x; - border-color: #dca7a7; -} -.progress { - background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); - background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.list-group { - border-radius: 4px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - text-shadow: 0 -1px 0 #286090; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); - background-repeat: repeat-x; - border-color: #2b669a; -} -.list-group-item.active .badge, -.list-group-item.active:hover .badge, -.list-group-item.active:focus .badge { - text-shadow: none; -} -.panel { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: 0 1px 2px rgba(0, 0, 0, .05); -} -.panel-default > .panel-heading { - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.panel-primary > .panel-heading { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; -} -.panel-success > .panel-heading { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); - background-repeat: repeat-x; -} -.panel-info > .panel-heading { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); - background-repeat: repeat-x; -} -.panel-warning > .panel-heading { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); - background-repeat: repeat-x; -} -.panel-danger > .panel-heading { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); - background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); - background-repeat: repeat-x; -} -.well { - background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; - border-color: #dcdcdc; - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); -} diff --git a/mamweb/static/bootstrap/css/bootstrap.css b/mamweb/static/bootstrap/css/bootstrap.css index bd20fe85..30aae55e 100644 --- a/mamweb/static/bootstrap/css/bootstrap.css +++ b/mamweb/static/bootstrap/css/bootstrap.css @@ -1,6331 +1,12068 @@ +@charset "UTF-8"; /*! - * Bootstrap v3.3.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ - -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; +:root, +[data-bs-theme=light] { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; + --bs-light-border-subtle: #e9ecef; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg: #fff; + --bs-body-bg-rgb: 255, 255, 255; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(33, 37, 41, 0.75); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-bg: #e9ecef; + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-tertiary-color: rgba(33, 37, 41, 0.5); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #0d6efd; + --bs-link-color-rgb: 13, 110, 253; + --bs-link-decoration: underline; + --bs-link-hover-color: #0a58ca; + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: #fff3cd; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(13, 110, 253, 0.25); + --bs-form-valid-color: #198754; + --bs-form-valid-border-color: #198754; + --bs-form-invalid-color: #dc3545; + --bs-form-invalid-border-color: #dc3545; } + +[data-bs-theme=dark] { + color-scheme: dark; + --bs-body-color: #dee2e6; + --bs-body-color-rgb: 222, 226, 230; + --bs-body-bg: #212529; + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(222, 226, 230, 0.75); + --bs-secondary-color-rgb: 222, 226, 230; + --bs-secondary-bg: #343a40; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-tertiary-color: rgba(222, 226, 230, 0.5); + --bs-tertiary-color-rgb: 222, 226, 230; + --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: #e685b5; + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: #664d03; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + body { margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; } -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: var(--bs-heading-color); } -audio:not([controls]) { - display: none; - height: 0; + +h1, .h1 { + font-size: calc(1.375rem + 1.5vw); } -[hidden], -template { - display: none; +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.5rem; + } } -a { - background-color: transparent; + +h2, .h2 { + font-size: calc(1.325rem + 0.9vw); } -a:active, -a:hover { - outline: 0; +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } } + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.5rem; + } +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + abbr[title] { - border-bottom: 1px dotted; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; } + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + b, strong { - font-weight: bold; + font-weight: bolder; } -dfn { - font-style: italic; + +small, .small { + font-size: 0.875em; } -h1 { - margin: .67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; + +mark, .mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); } + sub, sup { position: relative; - font-size: 75%; + font-size: 0.75em; line-height: 0; vertical-align: baseline; } -sup { - top: -.5em; -} + sub { - bottom: -.25em; + bottom: -0.25em; } -img { - border: 0; + +sup { + top: -0.5em; } -svg:not(:root) { - overflow: hidden; + +a { + color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); + text-decoration: underline; } -figure { - margin: 1em 40px; +a:hover { + --bs-link-color-rgb: var(--bs-link-hover-color-rgb); } -hr { - height: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; } + +pre, code, kbd, -pre, samp { - font-family: monospace, monospace; + font-family: var(--bs-font-monospace); font-size: 1em; } -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { color: inherit; } -button { - overflow: visible; + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; } -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { +kbd kbd { padding: 0; - border: 0; + font-size: 1em; } -input { - line-height: normal; + +figure { + margin: 0 0 1rem; } -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; + +img, +svg { + vertical-align: middle; } + table { - border-spacing: 0; + caption-side: bottom; border-collapse: collapse; } + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, td, th { - padding: 0; + border-color: inherit; + border-style: solid; + border-width: 0; } -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; +label { display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; +} - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; +button { + border-radius: 0; } -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; +button:focus:not(:focus-visible) { + outline: 0; } + input, button, select, +optgroup, textarea { + margin: 0; font-family: inherit; font-size: inherit; line-height: inherit; } -a { - color: #337ab7; - text-decoration: none; + +button, +select { + text-transform: none; } -a:hover, -a:focus { - color: #23527c; - text-decoration: underline; + +[role=button] { + cursor: pointer; } -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; + +select { + word-wrap: normal; } -figure { - margin: 0; +select:disabled { + opacity: 1; } -img { - vertical-align: middle; + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; } -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; } -.img-rounded { - border-radius: 6px; +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; } -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; + +::-moz-focus-inner { padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; + border-style: none; } -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #777; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 24px; -} -h4, -.h4 { - font-size: 18px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -mark, -.mark { - padding: .2em; - background-color: #fcf8e3; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #777; -} -.text-primary { - color: #337ab7; -} -a.text-primary:hover { - color: #286090; -} -.text-success { - color: #3c763d; -} -a.text-success:hover { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #337ab7; -} -a.bg-primary:hover { - background-color: #286090; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #777; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -/*@media (min-width: 1200px) { - .container { - width: 1170px; - } -}*/ -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0; - } -} -/*@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0; - } -}*/ -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-child(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - display: table-column; - float: none; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - display: table-cell; - float: none; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - min-height: .01%; - overflow-x: auto; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } + +textarea { + resize: vertical; } + fieldset { min-width: 0; padding: 0; margin: 0; border: 0; } + legend { - display: block; + float: left; width: 100%; padding: 0; - margin-bottom: 20px; - font-size: 21px; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; } -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } } -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; +legend + * { + clear: left; } -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; } -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { + +::-webkit-inner-spin-button { height: auto; } -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; + +[type=search] { + -webkit-appearance: textfield; outline-offset: -2px; } -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; } +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --bs-table-color-type: initial; + --bs-table-bg-type: initial; + --bs-table-color-state: initial; + --bs-table-bg-state: initial; + --bs-table-color: var(--bs-emphasis-color); + --bs-table-bg: var(--bs-body-bg); + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); + width: 100%; + margin-bottom: 1rem; + vertical-align: top; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); + background-color: var(--bs-table-bg); + border-bottom-width: var(--bs-border-width); + box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} + +.table-group-divider { + border-top: calc(var(--bs-border-width) * 2) solid currentcolor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: var(--bs-border-width) 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 var(--bs-border-width); +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg); +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #a6b5cc; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #b5b6b7; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #a7b9b1; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #a6c3ca; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #ccc2a4; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #c6acae; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #c6c7c8; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #4d5154; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.form-label { + margin-bottom: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + var(--bs-border-width)); + padding-bottom: calc(0.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + var(--bs-border-width)); + padding-bottom: calc(0.5rem + var(--bs-border-width)); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + var(--bs-border-width)); + padding-bottom: calc(0.25rem + var(--bs-border-width)); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-secondary-color); +} + .form-control { display: block; width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-clip: padding-box; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; } .form-control:focus { - border-color: #66afe9; + color: var(--bs-body-color); + background-color: var(--bs-body-bg); + border-color: #86b7fe; outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0; +} +.form-control::-webkit-datetime-edit { + display: block; + padding: 0; } .form-control::-moz-placeholder { - color: #999; + color: var(--bs-secondary-color); opacity: 1; } -.form-control:-ms-input-placeholder { - color: #999; -} -.form-control::-webkit-input-placeholder { - color: #999; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eee; +.form-control::placeholder { + color: var(--bs-secondary-color); opacity: 1; } -textarea.form-control { - height: auto; +.form-control:disabled { + background-color: var(--bs-secondary-bg); + opacity: 1; } -input[type="search"] { - -webkit-appearance: none; +.form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { - line-height: 34px; +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm { - line-height: 30px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg { - line-height: 46px; + .form-control::file-selector-button { + transition: none; } } -.form-group { - margin-bottom: 15px; +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: var(--bs-secondary-bg); } -.radio, -.checkbox { - position: relative; +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg); +} + +.form-control-plaintext { display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 20px; - padding-left: 20px; + width: 100%; + padding: 0.375rem 0; margin-bottom: 0; - font-weight: normal; - cursor: pointer; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0; } -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-top: 4px \9; - margin-left: -20px; +.form-control-plaintext:focus { + outline: 0; } -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; -} -.form-control-static.input-lg, -.form-control-static.input-sm { +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { padding-right: 0; padding-left: 0; } -.input-sm, -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} +.form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} +.form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); +} + +.form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); +} +.form-control-color::-webkit-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); +} +.form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); +} +.form-control-color.form-control-lg { + height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); +} + +.form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; line-height: 1.5; - border-radius: 3px; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } -select.input-sm, -select.form-group-sm .form-control { - height: 30px; - line-height: 30px; +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } } -textarea.input-sm, -textarea.form-group-sm .form-control, -select[multiple].input-sm, -select[multiple].form-group-sm .form-control { - height: auto; +.form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -.input-lg, -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; } -select.input-lg, -select.form-group-lg .form-control { - height: 46px; - line-height: 46px; +.form-select:disabled { + background-color: var(--bs-secondary-bg); } -textarea.input-lg, -textarea.form-group-lg .form-control, -select[multiple].input-lg, -select[multiple].form-group-lg .form-control { - height: auto; +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 var(--bs-body-color); } -.has-feedback { + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} + +[data-bs-theme=dark] .form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} +.form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.form-check-input { + --bs-form-check-bg: var(--bs-body-bg); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-form-check-bg); + background-image: var(--bs-form-check-bg-image); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: var(--bs-border-width) solid var(--bs-border-color); + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} +.form-check-input:checked[type=checkbox] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + width: 2em; + margin-left: -2.5em; + background-image: var(--bs-form-switch-bg); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} +.form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e"); +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: transparent; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + -webkit-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + -moz-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: var(--bs-secondary-color); +} +.form-range:disabled::-moz-range-thumb { + background-color: var(--bs-secondary-color); +} + +.form-floating { position: relative; } -.has-feedback .form-control { - padding-right: 42.5px; +.form-floating > .form-control, +.form-floating > .form-control-plaintext, +.form-floating > .form-select { + height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + line-height: 1.25; } -.form-control-feedback { +.form-floating > label { position: absolute; top: 0; - right: 0; + left: 0; z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; } -.input-lg + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; -} -.input-sm + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 25px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; } } -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; +.form-floating > .form-control, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; } -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; } -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; } -@media (min-width: 768px) { - .form-horizontal .control-label { - padding-top: 7px; - margin-bottom: 0; - text-align: right; - } +.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 14.3px; - } +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - } +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius); +} +.form-floating > .form-control:focus ~ label::after, +.form-floating > .form-control:not(:placeholder-shown) ~ label::after, +.form-floating > .form-control-plaintext ~ label::after, +.form-floating > .form-select ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius); +} +.form-floating > .form-control:-webkit-autofill ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control-plaintext ~ label { + border-width: var(--bs-border-width) 0; +} +.form-floating > :disabled ~ label, +.form-floating > .form-control:disabled ~ label { + color: #6c757d; +} +.form-floating > :disabled ~ label::after, +.form-floating > .form-control:disabled ~ label::after { + background-color: var(--bs-secondary-bg); +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { + z-index: 5; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 5; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); text-align: center; white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; + background-color: var(--bs-tertiary-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); } -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); } -.btn:hover, -.btn:focus, -.btn.focus { - color: #333; - text-decoration: none; + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); } -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; } -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } -.btn-default:hover, -.btn-default:focus, -.btn-default.focus, -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: calc(var(--bs-border-width) * -1); + border-top-left-radius: 0; + border-bottom-left-radius: 0; } -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary.focus, -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary .badge { - color: #337ab7; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success.focus, -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:hover, -.btn-info:focus, -.btn-info.focus, -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning.focus, -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger.focus, -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - font-weight: normal; - color: #337ab7; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #777; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity .15s linear; - -o-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { + +.valid-feedback { display: none; - visibility: hidden; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-valid-color); } -.collapse.in { - display: block; - visibility: visible; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { + +.valid-tooltip { position: absolute; top: 100%; - left: 0; - z-index: 1000; + z-index: 5; display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - text-align: left; - list-style: none; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-success); + border-radius: var(--bs-border-radius); } -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: var(--bs-form-valid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: var(--bs-form-valid-color); +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: var(--bs-form-valid-color); +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-invalid-color); +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-danger); + border-radius: var(--bs-border-radius); +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: var(--bs-form-invalid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: var(--bs-form-invalid-color); +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: var(--bs-form-invalid-color); +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-family: ; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: transparent; + --bs-btn-border-width: var(--bs-border-width); + --bs-btn-border-color: transparent; + --bs-btn-border-radius: var(--bs-border-radius); + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} +.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; +} + +.btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; +} + +.btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; +} + +.btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; +} + +.btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; +} + +.btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; +} + +.btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; +} + +.btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; +} + +.btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; +} + +.btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; +} + +.btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; +} + +.btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; +} + +.btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; +} + +.btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; +} + +.btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; +} + +.btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; +} + +.btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: 0 0 0 #000; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; +} +.btn-link:focus-visible { + color: var(--bs-btn-color); +} +.btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.btn-lg, .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: var(--bs-border-radius-lg); +} + +.btn-sm, .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: var(--bs-border-radius-sm); +} + +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { white-space: nowrap; } -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; } -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #337ab7; - outline: 0; +.dropdown-toggle:empty::after { + margin-left: 0; } -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #777; + +.dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: var(--bs-body-color); + --bs-dropdown-bg: var(--bs-body-bg); + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: var(--bs-border-radius); + --bs-dropdown-border-width: var(--bs-border-width); + --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: var(--bs-box-shadow); + --bs-dropdown-link-color: var(--bs-body-color); + --bs-dropdown-link-hover-color: var(--bs-body-color); + --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); } -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); } -.open > .dropdown-menu { - display: block; + +.dropdown-menu-start { + --bs-position: start; } -.open > a { - outline: 0; -} -.dropdown-menu-right { - right: 0; - left: auto; -} -.dropdown-menu-left { +.dropdown-menu-start[data-bs-popper] { right: auto; left: 0; } -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #777; - white-space: nowrap; + +.dropdown-menu-end { + --bs-position: end; } -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { +.dropdown-menu-end[data-bs-popper] { right: 0; left: auto; } -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px solid; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; } - .navbar-right .dropdown-menu-left { + .dropdown-menu-sm-start[data-bs-popper] { right: auto; left: 0; } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } } +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; + border-radius: var(--bs-dropdown-item-border-radius, 0); +} +.dropdown-item:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} +.dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-box-shadow: ; + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + .btn-group, .btn-group-vertical { position: relative; - display: inline-block; + display: inline-flex; vertical-align: middle; } .btn-group > .btn, .btn-group-vertical > .btn { position: relative; - float: left; + flex: 1 1 auto; } +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, .btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, .btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, .btn-group > .btn:active, -.btn-group-vertical > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, .btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; + z-index: 1; } + .btn-toolbar { - margin-left: -5px; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } -.btn-toolbar .btn-group, .btn-toolbar .input-group { - float: left; + width: auto; } -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; + +.btn-group { + border-radius: var(--bs-border-radius); } -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-left: calc(var(--bs-border-width) * -1); } -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, +.btn-group > .btn-group:not(:last-child) > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; } -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } -.btn-group > .btn-group { - float: left; + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; } -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:last-child > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { margin-left: 0; } -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; +.dropstart .dropdown-toggle-split::before { + margin-right: 0; } -.dropup .btn-lg .caret { - border-width: 0 5px 5px; + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; } .btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; +.btn-group-vertical > .btn-group { width: 100%; - max-width: 100%; } -.btn-group-vertical > .btn-group > .btn { - float: none; +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: calc(var(--bs-border-width) * -1); } -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { border-bottom-right-radius: 0; border-bottom-left-radius: 0; } -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { border-top-left-radius: 0; border-top-right-radius: 0; } -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; -} + .nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; padding-left: 0; margin-bottom: 0; list-style: none; } -.nav > li { - position: relative; + +.nav-link { display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); text-decoration: none; - background-color: #eee; + background: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } -.nav > li.disabled > a { - color: #777; +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } } -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #777; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); } -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #337ab7; +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; +.nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; } -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); } -.nav-tabs.nav-justified > li { - float: none; +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); } -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} +.nav-pills .nav-link { + border-radius: var(--bs-nav-pills-border-radius); +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.nav-underline { + --bs-nav-underline-gap: 1rem; + --bs-nav-underline-border-width: 0.125rem; + --bs-nav-underline-link-active-color: var(--bs-emphasis-color); + gap: var(--bs-nav-underline-gap); +} +.nav-underline .nav-link { + padding-right: 0; + padding-left: 0; + border-bottom: var(--bs-nav-underline-border-width) solid transparent; +} +.nav-underline .nav-link:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; +} +.nav-underline .nav-link.active, +.nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; text-align: center; } -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - margin-bottom: 5px; + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; text-align: center; } -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; } + .tab-content > .tab-pane { display: none; - visibility: hidden; } .tab-content > .active { display: block; - visibility: visible; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; } + .navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65); + --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8); + --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); + --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); + --bs-navbar-toggler-border-radius: var(--bs-border-radius); + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); } -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - visibility: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; } .navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} -.navbar-brand:hover, -.navbar-brand:focus { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); text-decoration: none; + white-space: nowrap; } -.navbar-brand > img { - display: block; +.navbar-brand:hover, .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); } -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; + +.navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link.active, .navbar-nav .nav-link.show { + color: var(--bs-navbar-active-color); +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; } } -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; +.navbar-toggler:hover { + text-decoration: none; } -.navbar-toggle:focus { +.navbar-toggler:focus { + text-decoration: none; outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); } -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; } -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; } -@media (min-width: 768px) { - .navbar-toggle { + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { display: none; } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { + .navbar-expand-sm .offcanvas { position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; + .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; + .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } @media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; } - .navbar-nav > li { - float: left; + .navbar-expand-md .navbar-nav { + flex-direction: row; } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; + .navbar-expand-lg .navbar-nav { + flex-direction: row; } - .navbar-form .form-control-static { - display: inline-block; + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; } - .navbar-form .input-group > .form-control { - width: 100%; + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; + .navbar-expand-lg .navbar-toggler { + display: none; } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; + .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; + .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; } - .navbar-form .form-group:last-child { - margin-bottom: 0; + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } } -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; } -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; +.navbar-expand .navbar-nav { + flex-direction: row; } -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; } -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; +.navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; +.navbar-expand .navbar-nav-scroll { + overflow: visible; } -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; } -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-default .btn-link { - color: #777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #9d9d9d; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #9d9d9d; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.navbar-inverse .btn-link { - color: #9d9d9d; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #fff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; -} -.breadcrumb > .active { - color: #777; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #337ab7; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #23527c; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #337ab7; - border-color: #337ab7; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #777; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #777; - cursor: not-allowed; - background-color: #fff; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { +.navbar-expand .navbar-toggler { display: none; } -.btn .label { +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} +.navbar-expand .offcanvas .offcanvas-header { + display: none; +} +.navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.navbar-dark, +.navbar[data-bs-theme=dark] { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +[data-bs-theme=dark] .navbar-toggler-icon { + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-title-color: ; + --bs-card-subtitle-color: ; + --bs-card-border-width: var(--bs-border-width); + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: var(--bs-border-radius); + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: var(--bs-body-bg); + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; position: relative; - top: -1px; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + color: var(--bs-body-color); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); } -.label-default { - background-color: #777; +.card > hr { + margin-right: 0; + margin-left: 0; } -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #5e5e5e; +.card > .list-group { + border-top: inherit; + border-bottom: inherit; } -.label-primary { - background-color: #337ab7; +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); } -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #286090; +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); } -.label-success { - background-color: #5cb85c; +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; } -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; + +.card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); } -.label-info { - background-color: #5bc0de; + +.card-title { + margin-bottom: var(--bs-card-title-spacer-y); + color: var(--bs-card-title-color); } -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; + +.card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; + color: var(--bs-card-subtitle-color); } -.label-warning { - background-color: #f0ad4e; + +.card-text:last-child { + margin-bottom: 0; } -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; + +.card-link + .card-link { + margin-left: var(--bs-card-spacer-x); } -.label-danger { - background-color: #d9534f; + +.card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); } -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; +.card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; } + +.card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); +} + +.card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} +.card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-body-bg); + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: var(--bs-border-width); + --bs-accordion-border-radius: var(--bs-border-radius); + --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: #86b7fe; + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: var(--bs-primary-text-emphasis); + --bs-accordion-active-bg: var(--bs-primary-bg-subtle); +} + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} +.accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} +.accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + border-color: var(--bs-accordion-btn-focus-border-color); + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} +.accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); +} +.accordion-item:first-of-type .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.accordion-flush .accordion-collapse { + border-width: 0; +} +.accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.accordion-flush .accordion-item:first-child { + border-top: 0; +} +.accordion-flush .accordion-item:last-child { + border-bottom: 0; +} +.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; +} + +[data-bs-theme=dark] .accordion-button::after { + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-bg: ; + --bs-breadcrumb-border-radius: ; + --bs-breadcrumb-divider-color: var(--bs-secondary-color); + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; +} +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: var(--bs-body-bg); + --bs-pagination-border-width: var(--bs-border-width); + --bs-pagination-border-color: var(--bs-border-color); + --bs-pagination-border-radius: var(--bs-border-radius); + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: var(--bs-tertiary-bg); + --bs-pagination-hover-border-color: var(--bs-border-color); + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: var(--bs-secondary-bg); + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: var(--bs-secondary-color); + --bs-pagination-disabled-bg: var(--bs-secondary-bg); + --bs-pagination-disabled-border-color: var(--bs-border-color); + display: flex; + padding-left: 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.page-item:not(:first-child) .page-link { + margin-left: calc(var(--bs-border-width) * -1); +} +.page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} +.page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); +} + +.pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: var(--bs-border-radius-lg); +} + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: var(--bs-border-radius-sm); +} + .badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: var(--bs-border-radius); display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); line-height: 1; - color: #fff; + color: var(--bs-badge-color); text-align: center; white-space: nowrap; vertical-align: baseline; - background-color: #777; - border-radius: 10px; + border-radius: var(--bs-badge-border-radius); } .badge:empty { display: none; } + .btn .badge { position: relative; top: -1px; } -.btn-xs .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px 15px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #d5d5d5; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding: 48px 0; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border .2s ease-in-out; - -o-transition: border .2s ease-in-out; - transition: border .2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-right: auto; - margin-left: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; -} -.thumbnail .caption { - padding: 9px; - color: #333; -} + .alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); + --bs-alert-border-radius: var(--bs-border-radius); + --bs-alert-link-color: inherit; position: relative; - top: -2px; - right: -21px; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); +} + +.alert-heading { color: inherit; } + +.alert-link { + font-weight: 700; + color: var(--bs-alert-link-color); +} + +.alert-dismissible { + padding-right: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.alert-primary { + --bs-alert-color: var(--bs-primary-text-emphasis); + --bs-alert-bg: var(--bs-primary-bg-subtle); + --bs-alert-border-color: var(--bs-primary-border-subtle); + --bs-alert-link-color: var(--bs-primary-text-emphasis); +} + +.alert-secondary { + --bs-alert-color: var(--bs-secondary-text-emphasis); + --bs-alert-bg: var(--bs-secondary-bg-subtle); + --bs-alert-border-color: var(--bs-secondary-border-subtle); + --bs-alert-link-color: var(--bs-secondary-text-emphasis); +} + .alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; + --bs-alert-color: var(--bs-success-text-emphasis); + --bs-alert-bg: var(--bs-success-bg-subtle); + --bs-alert-border-color: var(--bs-success-border-subtle); + --bs-alert-link-color: var(--bs-success-text-emphasis); } + .alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; + --bs-alert-color: var(--bs-info-text-emphasis); + --bs-alert-bg: var(--bs-info-bg-subtle); + --bs-alert-border-color: var(--bs-info-border-subtle); + --bs-alert-link-color: var(--bs-info-text-emphasis); } + .alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; + --bs-alert-color: var(--bs-warning-text-emphasis); + --bs-alert-bg: var(--bs-warning-bg-subtle); + --bs-alert-border-color: var(--bs-warning-border-subtle); + --bs-alert-link-color: var(--bs-warning-text-emphasis); } + .alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; + --bs-alert-color: var(--bs-danger-text-emphasis); + --bs-alert-bg: var(--bs-danger-bg-subtle); + --bs-alert-border-color: var(--bs-danger-border-subtle); + --bs-alert-link-color: var(--bs-danger-text-emphasis); } -.alert-danger hr { - border-top-color: #e4b9c0; + +.alert-light { + --bs-alert-color: var(--bs-light-text-emphasis); + --bs-alert-bg: var(--bs-light-bg-subtle); + --bs-alert-border-color: var(--bs-light-border-subtle); + --bs-alert-link-color: var(--bs-light-text-emphasis); } -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } + +.alert-dark { + --bs-alert-color: var(--bs-dark-text-emphasis); + --bs-alert-bg: var(--bs-dark-bg-subtle); + --bs-alert-border-color: var(--bs-dark-border-subtle); + --bs-alert-link-color: var(--bs-dark-text-emphasis); } + @keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; + 0% { + background-position-x: 1rem; } } -.progress { - height: 20px; - margin-bottom: 20px; +.progress, +.progress-stacked { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: var(--bs-secondary-bg); + --bs-progress-border-radius: var(--bs-border-radius); + --bs-progress-box-shadow: var(--bs-box-shadow-inset); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); } + .progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); text-align: center; - background-color: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - -o-transition: width .6s ease; - transition: width .6s ease; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); } -.progress-striped .progress-bar, +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + .progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); } -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; + +.progress-stacked > .progress { + overflow: visible; } -.progress-bar-success { - background-color: #5cb85c; + +.progress-stacked > .progress > .progress-bar { + width: 100%; } -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; } -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } } + .list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: var(--bs-secondary-color); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); + --bs-list-group-action-active-color: var(--bs-body-color); + --bs-list-group-action-active-bg: var(--bs-secondary-bg); + --bs-list-group-disabled-color: var(--bs-secondary-color); + --bs-list-group-disabled-bg: var(--bs-body-bg); + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; padding-left: 0; - margin-bottom: 20px; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); } + +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} +.list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + .list-group-item { position: relative; display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); } .list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; + border-top-left-radius: inherit; + border-top-right-radius: inherit; } .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; } -a.list-group-item { - color: #555; +.list-group-item.disabled, .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); } -a.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -a.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - color: #777; - cursor: not-allowed; - background-color: #eee; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #777; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { +.list-group-item.active { z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); } -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #c7ddef; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { +.list-group-item + .list-group-item { border-top-width: 0; } -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-right: 15px; - padding-left: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #337ab7; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; -} -.panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} -.embed-responsive.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, .15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: .5; -} -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.modal-open { - overflow: hidden; -} -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - display: none; - overflow: hidden; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - outline: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); -} -.modal-backdrop { - position: absolute; - top: 0; - right: 0; - left: 0; - background-color: #000; -} -.modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; -} -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: .5; -} -.modal-header { - min-height: 16.42857143px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; +.list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } } @media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; + .list-group-horizontal-md { + flex-direction: row; } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } - .modal-sm { - width: 300px; + .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } } @media (min-width: 992px) { - .modal-lg { - width: 900px; + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + --bs-list-group-color: var(--bs-primary-text-emphasis); + --bs-list-group-bg: var(--bs-primary-bg-subtle); + --bs-list-group-border-color: var(--bs-primary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); + --bs-list-group-active-color: var(--bs-primary-bg-subtle); + --bs-list-group-active-bg: var(--bs-primary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-primary-text-emphasis); +} + +.list-group-item-secondary { + --bs-list-group-color: var(--bs-secondary-text-emphasis); + --bs-list-group-bg: var(--bs-secondary-bg-subtle); + --bs-list-group-border-color: var(--bs-secondary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); + --bs-list-group-active-color: var(--bs-secondary-bg-subtle); + --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis); +} + +.list-group-item-success { + --bs-list-group-color: var(--bs-success-text-emphasis); + --bs-list-group-bg: var(--bs-success-bg-subtle); + --bs-list-group-border-color: var(--bs-success-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-success-border-subtle); + --bs-list-group-active-color: var(--bs-success-bg-subtle); + --bs-list-group-active-bg: var(--bs-success-text-emphasis); + --bs-list-group-active-border-color: var(--bs-success-text-emphasis); +} + +.list-group-item-info { + --bs-list-group-color: var(--bs-info-text-emphasis); + --bs-list-group-bg: var(--bs-info-bg-subtle); + --bs-list-group-border-color: var(--bs-info-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-info-border-subtle); + --bs-list-group-active-color: var(--bs-info-bg-subtle); + --bs-list-group-active-bg: var(--bs-info-text-emphasis); + --bs-list-group-active-border-color: var(--bs-info-text-emphasis); +} + +.list-group-item-warning { + --bs-list-group-color: var(--bs-warning-text-emphasis); + --bs-list-group-bg: var(--bs-warning-bg-subtle); + --bs-list-group-border-color: var(--bs-warning-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); + --bs-list-group-active-color: var(--bs-warning-bg-subtle); + --bs-list-group-active-bg: var(--bs-warning-text-emphasis); + --bs-list-group-active-border-color: var(--bs-warning-text-emphasis); +} + +.list-group-item-danger { + --bs-list-group-color: var(--bs-danger-text-emphasis); + --bs-list-group-bg: var(--bs-danger-bg-subtle); + --bs-list-group-border-color: var(--bs-danger-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); + --bs-list-group-active-color: var(--bs-danger-bg-subtle); + --bs-list-group-active-bg: var(--bs-danger-text-emphasis); + --bs-list-group-active-border-color: var(--bs-danger-text-emphasis); +} + +.list-group-item-light { + --bs-list-group-color: var(--bs-light-text-emphasis); + --bs-list-group-bg: var(--bs-light-bg-subtle); + --bs-list-group-border-color: var(--bs-light-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-light-border-subtle); + --bs-list-group-active-color: var(--bs-light-bg-subtle); + --bs-list-group-active-bg: var(--bs-light-text-emphasis); + --bs-list-group-active-border-color: var(--bs-light-text-emphasis); +} + +.list-group-item-dark { + --bs-list-group-color: var(--bs-dark-text-emphasis); + --bs-list-group-bg: var(--bs-dark-bg-subtle); + --bs-list-group-border-color: var(--bs-dark-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); + --bs-list-group-active-color: var(--bs-dark-bg-subtle); + --bs-list-group-active-bg: var(--bs-dark-text-emphasis); + --bs-list-group-active-border-color: var(--bs-dark-text-emphasis); +} + +.btn-close { + --bs-btn-close-color: #000; + --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); + --bs-btn-close-opacity: 0.5; + --bs-btn-close-hover-opacity: 0.75; + --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-btn-close-focus-opacity: 1; + --bs-btn-close-disabled-opacity: 0.25; + --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: var(--bs-btn-close-opacity); +} +.btn-close:hover { + color: var(--bs-btn-close-color); + text-decoration: none; + opacity: var(--bs-btn-close-hover-opacity); +} +.btn-close:focus { + outline: 0; + box-shadow: var(--bs-btn-close-focus-shadow); + opacity: var(--bs-btn-close-focus-opacity); +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: var(--bs-btn-close-disabled-opacity); +} + +.btn-close-white { + filter: var(--bs-btn-close-white-filter); +} + +[data-bs-theme=dark] .btn-close { + filter: var(--bs-btn-close-white-filter); +} + +.toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-color: ; + --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-border-width: var(--bs-border-width); + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: var(--bs-border-radius); + --bs-toast-box-shadow: var(--bs-box-shadow); + --bs-toast-header-color: var(--bs-secondary-color); + --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-header-border-color: var(--bs-border-color-translucent); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} + +.toast-container { + --bs-toast-zindex: 1090; + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} +.toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: ; + --bs-modal-bg: var(--bs-body-bg); + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: var(--bs-border-width); + --bs-modal-border-radius: var(--bs-border-radius-lg); + --bs-modal-box-shadow: var(--bs-box-shadow-sm); + --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: var(--bs-border-width); + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-bg: ; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: var(--bs-border-width); + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; +} + +.modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} +.modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} +.modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow); + } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + .modal-sm { + --bs-modal-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header, + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header, + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header, + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header, + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header, + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; } } .tooltip { - position: absolute; - z-index: 1070; + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-margin: ; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: var(--bs-body-bg); + --bs-tooltip-bg: var(--bs-emphasis-color); + --bs-tooltip-border-radius: var(--bs-border-radius); + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); display: block; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; - font-weight: normal; - line-height: 1.4; - visibility: visible; - filter: alpha(opacity=0); + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; opacity: 0; } -.tooltip.in { - filter: alpha(opacity=90); - opacity: .9; +.tooltip.show { + opacity: var(--bs-tooltip-opacity); } -.tooltip.top { - padding: 5px 0; - margin-top: -3px; +.tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); } -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - text-decoration: none; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { +.tooltip .tooltip-arrow::before { position: absolute; - width: 0; - height: 0; + content: ""; border-color: transparent; border-style: solid; } -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; + +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)); } -.tooltip.top-left .tooltip-arrow { - right: 5px; - bottom: 0; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); } -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); } -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); } -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)); } -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); } -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); } -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); } + +/* rtl:end:ignore */ +.tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + .popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: var(--bs-body-bg); + --bs-popover-border-width: var(--bs-border-width); + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: var(--bs-border-radius-lg); + --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); + --bs-popover-box-shadow: var(--bs-box-shadow); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: inherit; + --bs-popover-header-bg: var(--bs-secondary-bg); + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: var(--bs-body-color); + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; white-space: normal; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); } -.popover.top { - margin-top: -10px; +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); } -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { +.popover .popover-arrow::before, .popover .popover-arrow::after { position: absolute; display: block; - width: 0; - height: 0; + content: ""; border-color: transparent; border-style: solid; + border-width: 0; } -.popover > .arrow { - border-width: 11px; + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } -.popover > .arrow:after { +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); content: ""; - border-width: 10px; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); } -.popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, .25); - border-bottom-width: 0; + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); } -.popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-top-color: #fff; - border-bottom-width: 0; +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); } -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, .25); - border-left-width: 0; +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); } -.popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: " "; - border-right-color: #fff; - border-left-width: 0; +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); } -.popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, .25); + +/* rtl:end:ignore */ +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); } -.popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; +.popover-header:empty { + display: none; } -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, .25); -} -.popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; + +.popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); } + .carousel { position: relative; } + +.carousel.pointer-event { + touch-action: pan-y; +} + .carousel-inner { position: relative; width: 100%; overflow: hidden; } -.carousel-inner > .item { +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { position: relative; display: none; - -webkit-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; } -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } } -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform .6s ease-in-out; - -o-transition: -o-transform .6s ease-in-out; - transition: transform .6s ease-in-out; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000; - perspective: 1000; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - left: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - left: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - left: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { display: block; } -.carousel-inner > .active { - left: 0; + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); } -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); } -.carousel-inner > .next { - left: 100%; + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; } -.carousel-inner > .prev { - left: -100%; +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; } -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; } -.carousel-inner > .active.left { - left: -100%; +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } } -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { + +.carousel-control-prev, +.carousel-control-next { position: absolute; top: 0; bottom: 0; - left: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; width: 15%; - font-size: 20px; + padding: 0; color: #fff; text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - filter: alpha(opacity=50); - opacity: .5; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; } -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } } -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control:hover, -.carousel-control:focus { +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { color: #fff; text-decoration: none; - filter: alpha(opacity=90); outline: 0; - opacity: .9; + opacity: 0.9; } -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; } -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; + +/* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); } -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } + .carousel-indicators { position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; } -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; text-indent: -999px; cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } } .carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; + opacity: 1; } + .carousel-caption { position: absolute; right: 15%; - bottom: 20px; + bottom: 1.25rem; left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; + padding-top: 1.25rem; + padding-bottom: 1.25rem; color: #fff; text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); } -.carousel-caption .btn { - text-shadow: none; + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); } -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -15px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +[data-bs-theme=dark] .carousel .carousel-control-prev-icon, +[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon, +[data-bs-theme=dark].carousel .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] { + background-color: #000; +} +[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption { + color: #000; +} + +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; } } -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; } -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; + +.spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; } -.center-block { + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --bs-offcanvas-transition: transform 0.3s ease-in-out; + --bs-offcanvas-title-line-height: 1.5; +} + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.offcanvas-title { + margin-bottom: 0; + line-height: var(--bs-offcanvas-title-line-height); +} + +.offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} +.placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + animation: placeholder-wave 2s linear infinite; +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} +.clearfix::after { display: block; - margin-right: auto; - margin-left: auto; + clear: both; + content: ""; } -.pull-right { - float: right !important; + +.text-bg-primary { + color: #fff !important; + background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; } -.pull-left { + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fff !important; + background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #000 !important; + background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #000 !important; + background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #000 !important; + background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #fff !important; + background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.link-primary { + color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-primary:hover, .link-primary:focus { + color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-secondary { + color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-secondary:hover, .link-secondary:focus { + color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-success { + color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-success:hover, .link-success:focus { + color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-info { + color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-info:hover, .link-info:focus { + color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-warning { + color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-warning:hover, .link-warning:focus { + color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-danger { + color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-danger:hover, .link-danger:focus { + color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-light { + color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-light:hover, .link-light:focus { + color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-dark { + color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-dark:hover, .link-dark:focus { + color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-body-emphasis { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-body-emphasis:hover, .link-body-emphasis:focus { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; +} + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); +} + +.icon-link { + display: inline-flex; + gap: 0.375rem; + align-items: center; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.icon-link > .bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: 0.2s ease-in-out transform; +} +@media (prefers-reduced-motion: reduce) { + .icon-link > .bi { + transition: none; + } +} + +.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { + transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +.hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} +.visually-hidden:not(caption), +.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { + position: absolute !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.vr { + display: inline-block; + align-self: stretch; + width: var(--bs-border-width); + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.float-start { float: left !important; } -.hide { - display: none !important; + +.float-end { + float: right !important; } -.show { + +.float-none { + float: none !important; +} + +.object-fit-contain { + -o-object-fit: contain !important; + object-fit: contain !important; +} + +.object-fit-cover { + -o-object-fit: cover !important; + object-fit: cover !important; +} + +.object-fit-fill { + -o-object-fit: fill !important; + object-fit: fill !important; +} + +.object-fit-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; +} + +.object-fit-none { + -o-object-fit: none !important; + object-fit: none !important; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.75 !important; +} + +.opacity-100 { + opacity: 1 !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-visible { + overflow: visible !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.overflow-x-auto { + overflow-x: auto !important; +} + +.overflow-x-hidden { + overflow-x: hidden !important; +} + +.overflow-x-visible { + overflow-x: visible !important; +} + +.overflow-x-scroll { + overflow-x: scroll !important; +} + +.overflow-y-auto { + overflow-y: auto !important; +} + +.overflow-y-hidden { + overflow-y: hidden !important; +} + +.overflow-y-visible { + overflow-y: visible !important; +} + +.overflow-y-scroll { + overflow-y: scroll !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { display: block !important; } -.invisible { - visibility: hidden; + +.d-grid { + display: grid !important; } -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; + +.d-inline-grid { + display: inline-grid !important; } -.hidden { + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { display: none !important; +} + +.shadow { + box-shadow: var(--bs-box-shadow) !important; +} + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important; +} + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.focus-ring-primary { + --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-secondary { + --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-success { + --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-info { + --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-warning { + --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-danger { + --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-light { + --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-dark { + --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.top-0 { + top: 0 !important; +} + +.top-50 { + top: 50% !important; +} + +.top-100 { + top: 100% !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.bottom-50 { + bottom: 50% !important; +} + +.bottom-100 { + bottom: 100% !important; +} + +.start-0 { + left: 0 !important; +} + +.start-50 { + left: 50% !important; +} + +.start-100 { + left: 100% !important; +} + +.end-0 { + right: 0 !important; +} + +.end-50 { + right: 50% !important; +} + +.end-100 { + right: 100% !important; +} + +.translate-middle { + transform: translate(-50%, -50%) !important; +} + +.translate-middle-x { + transform: translateX(-50%) !important; +} + +.translate-middle-y { + transform: translateY(-50%) !important; +} + +.border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-end-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-start-0 { + border-left: 0 !important; +} + +.border-primary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; +} + +.border-secondary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; +} + +.border-success { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; +} + +.border-info { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; +} + +.border-warning { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; +} + +.border-danger { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; +} + +.border-light { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; +} + +.border-dark { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; +} + +.border-black { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important; +} + +.border-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; +} + +.border-primary-subtle { + border-color: var(--bs-primary-border-subtle) !important; +} + +.border-secondary-subtle { + border-color: var(--bs-secondary-border-subtle) !important; +} + +.border-success-subtle { + border-color: var(--bs-success-border-subtle) !important; +} + +.border-info-subtle { + border-color: var(--bs-info-border-subtle) !important; +} + +.border-warning-subtle { + border-color: var(--bs-warning-border-subtle) !important; +} + +.border-danger-subtle { + border-color: var(--bs-danger-border-subtle) !important; +} + +.border-light-subtle { + border-color: var(--bs-light-border-subtle) !important; +} + +.border-dark-subtle { + border-color: var(--bs-dark-border-subtle) !important; +} + +.border-1 { + border-width: 1px !important; +} + +.border-2 { + border-width: 2px !important; +} + +.border-3 { + border-width: 3px !important; +} + +.border-4 { + border-width: 4px !important; +} + +.border-5 { + border-width: 5px !important; +} + +.border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.border-opacity-100 { + --bs-border-opacity: 1; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.vw-100 { + width: 100vw !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.vh-100 { + height: 100vh !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.row-gap-0 { + row-gap: 0 !important; +} + +.row-gap-1 { + row-gap: 0.25rem !important; +} + +.row-gap-2 { + row-gap: 0.5rem !important; +} + +.row-gap-3 { + row-gap: 1rem !important; +} + +.row-gap-4 { + row-gap: 1.5rem !important; +} + +.row-gap-5 { + row-gap: 3rem !important; +} + +.column-gap-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; +} + +.column-gap-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; +} + +.column-gap-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; +} + +.column-gap-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; +} + +.column-gap-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; +} + +.column-gap-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.fs-5 { + font-size: 1.25rem !important; +} + +.fs-6 { + font-size: 1rem !important; +} + +.fst-italic { + font-style: italic !important; +} + +.fst-normal { + font-style: normal !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-light { + font-weight: 300 !important; +} + +.fw-normal { + font-weight: 400 !important; +} + +.fw-medium { + font-weight: 500 !important; +} + +.fw-semibold { + font-weight: 600 !important; +} + +.fw-bold { + font-weight: 700 !important; +} + +.fw-bolder { + font-weight: bolder !important; +} + +.lh-1 { + line-height: 1 !important; +} + +.lh-sm { + line-height: 1.25 !important; +} + +.lh-base { + line-height: 1.5 !important; +} + +.lh-lg { + line-height: 2 !important; +} + +.text-start { + text-align: left !important; +} + +.text-end { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-decoration-underline { + text-decoration: underline !important; +} + +.text-decoration-line-through { + text-decoration: line-through !important; +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important; +} + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.text-opacity-100 { + --bs-text-opacity: 1; +} + +.text-primary-emphasis { + color: var(--bs-primary-text-emphasis) !important; +} + +.text-secondary-emphasis { + color: var(--bs-secondary-text-emphasis) !important; +} + +.text-success-emphasis { + color: var(--bs-success-text-emphasis) !important; +} + +.text-info-emphasis { + color: var(--bs-info-text-emphasis) !important; +} + +.text-warning-emphasis { + color: var(--bs-warning-text-emphasis) !important; +} + +.text-danger-emphasis { + color: var(--bs-danger-text-emphasis) !important; +} + +.text-light-emphasis { + color: var(--bs-light-text-emphasis) !important; +} + +.text-dark-emphasis { + color: var(--bs-dark-text-emphasis) !important; +} + +.link-opacity-10 { + --bs-link-opacity: 0.1; +} + +.link-opacity-10-hover:hover { + --bs-link-opacity: 0.1; +} + +.link-opacity-25 { + --bs-link-opacity: 0.25; +} + +.link-opacity-25-hover:hover { + --bs-link-opacity: 0.25; +} + +.link-opacity-50 { + --bs-link-opacity: 0.5; +} + +.link-opacity-50-hover:hover { + --bs-link-opacity: 0.5; +} + +.link-opacity-75 { + --bs-link-opacity: 0.75; +} + +.link-opacity-75-hover:hover { + --bs-link-opacity: 0.75; +} + +.link-opacity-100 { + --bs-link-opacity: 1; +} + +.link-opacity-100-hover:hover { + --bs-link-opacity: 1; +} + +.link-offset-1 { + text-underline-offset: 0.125em !important; +} + +.link-offset-1-hover:hover { + text-underline-offset: 0.125em !important; +} + +.link-offset-2 { + text-underline-offset: 0.25em !important; +} + +.link-offset-2-hover:hover { + text-underline-offset: 0.25em !important; +} + +.link-offset-3 { + text-underline-offset: 0.375em !important; +} + +.link-offset-3-hover:hover { + text-underline-offset: 0.375em !important; +} + +.link-underline-primary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-success { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-info { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-warning { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-danger { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-light { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-dark { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-10-hover:hover { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-25 { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-25-hover:hover { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-50 { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-50-hover:hover { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-75 { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-75-hover:hover { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-100 { + --bs-link-underline-opacity: 1; +} + +.link-underline-opacity-100-hover:hover { + --bs-link-underline-opacity: 1; +} + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important; +} + +.bg-body-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body-tertiary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bg-primary-subtle { + background-color: var(--bs-primary-bg-subtle) !important; +} + +.bg-secondary-subtle { + background-color: var(--bs-secondary-bg-subtle) !important; +} + +.bg-success-subtle { + background-color: var(--bs-success-bg-subtle) !important; +} + +.bg-info-subtle { + background-color: var(--bs-info-bg-subtle) !important; +} + +.bg-warning-subtle { + background-color: var(--bs-warning-bg-subtle) !important; +} + +.bg-danger-subtle { + background-color: var(--bs-danger-bg-subtle) !important; +} + +.bg-light-subtle { + background-color: var(--bs-light-bg-subtle) !important; +} + +.bg-dark-subtle { + background-color: var(--bs-dark-bg-subtle) !important; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-5 { + border-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-0 { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.rounded-top-1 { + border-top-left-radius: var(--bs-border-radius-sm) !important; + border-top-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-top-2 { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-3 { + border-top-left-radius: var(--bs-border-radius-lg) !important; + border-top-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-top-4 { + border-top-left-radius: var(--bs-border-radius-xl) !important; + border-top-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-top-5 { + border-top-left-radius: var(--bs-border-radius-xxl) !important; + border-top-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-top-circle { + border-top-left-radius: 50% !important; + border-top-right-radius: 50% !important; +} + +.rounded-top-pill { + border-top-left-radius: var(--bs-border-radius-pill) !important; + border-top-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-0 { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.rounded-end-1 { + border-top-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-end-2 { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-3 { + border-top-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-end-4 { + border-top-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-end-5 { + border-top-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-end-circle { + border-top-right-radius: 50% !important; + border-bottom-right-radius: 50% !important; +} + +.rounded-end-pill { + border-top-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-0 { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.rounded-bottom-1 { + border-bottom-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-bottom-2 { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-3 { + border-bottom-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-bottom-4 { + border-bottom-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-bottom-5 { + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-bottom-circle { + border-bottom-right-radius: 50% !important; + border-bottom-left-radius: 50% !important; +} + +.rounded-bottom-pill { + border-bottom-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-left-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-0 { + border-bottom-left-radius: 0 !important; + border-top-left-radius: 0 !important; +} + +.rounded-start-1 { + border-bottom-left-radius: var(--bs-border-radius-sm) !important; + border-top-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-start-2 { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-3 { + border-bottom-left-radius: var(--bs-border-radius-lg) !important; + border-top-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-start-4 { + border-bottom-left-radius: var(--bs-border-radius-xl) !important; + border-top-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-start-5 { + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; + border-top-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-start-circle { + border-bottom-left-radius: 50% !important; + border-top-left-radius: 50% !important; +} + +.rounded-start-pill { + border-bottom-left-radius: var(--bs-border-radius-pill) !important; + border-top-left-radius: var(--bs-border-radius-pill) !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { visibility: hidden !important; } -.affix { - position: fixed; + +.z-n1 { + z-index: -1 !important; } -@-ms-viewport { - width: device-width; + +.z-0 { + z-index: 0 !important; } -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; + +.z-1 { + z-index: 1 !important; } -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; + +.z-2 { + z-index: 2 !important; } -@media (max-width: 767px) { - .visible-xs { - display: block !important; + +.z-3 { + z-index: 3 !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; } - table.visible-xs { - display: table; + .float-sm-end { + float: right !important; } - tr.visible-xs { - display: table-row !important; + .float-sm-none { + float: none !important; } - th.visible-xs, - td.visible-xs { - display: table-cell !important; + .object-fit-sm-contain { + -o-object-fit: contain !important; + object-fit: contain !important; } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; + .object-fit-sm-cover { + -o-object-fit: cover !important; + object-fit: cover !important; } -} -@media (max-width: 767px) { - .visible-xs-inline { + .object-fit-sm-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-sm-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-sm-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-sm-inline { display: inline !important; } -} -@media (max-width: 767px) { - .visible-xs-inline-block { + .d-sm-inline-block { display: inline-block !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { + .d-sm-block { display: block !important; } - table.visible-sm { - display: table; + .d-sm-grid { + display: grid !important; } - tr.visible-sm { + .d-sm-inline-grid { + display: inline-grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { display: table-row !important; } - th.visible-sm, - td.visible-sm { + .d-sm-table-cell { display: table-cell !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + gap: 3rem !important; + } + .row-gap-sm-0 { + row-gap: 0 !important; + } + .row-gap-sm-1 { + row-gap: 0.25rem !important; + } + .row-gap-sm-2 { + row-gap: 0.5rem !important; + } + .row-gap-sm-3 { + row-gap: 1rem !important; + } + .row-gap-sm-4 { + row-gap: 1.5rem !important; + } + .row-gap-sm-5 { + row-gap: 3rem !important; + } + .column-gap-sm-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-sm-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-sm-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-sm-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-sm-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-sm-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-sm-start { + text-align: left !important; + } + .text-sm-end { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; } } -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { +@media (min-width: 768px) { + .float-md-start { + float: left !important; + } + .float-md-end { + float: right !important; + } + .float-md-none { + float: none !important; + } + .object-fit-md-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-md-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-md-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-md-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-md-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-md-inline { display: inline !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { + .d-md-inline-block { display: inline-block !important; } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { + .d-md-block { display: block !important; } - table.visible-md { - display: table; + .d-md-grid { + display: grid !important; } - tr.visible-md { + .d-md-inline-grid { + display: inline-grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { display: table-row !important; } - th.visible-md, - td.visible-md { + .d-md-table-cell { display: table-cell !important; } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + gap: 3rem !important; + } + .row-gap-md-0 { + row-gap: 0 !important; + } + .row-gap-md-1 { + row-gap: 0.25rem !important; + } + .row-gap-md-2 { + row-gap: 0.5rem !important; + } + .row-gap-md-3 { + row-gap: 1rem !important; + } + .row-gap-md-4 { + row-gap: 1.5rem !important; + } + .row-gap-md-5 { + row-gap: 3rem !important; + } + .column-gap-md-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-md-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-md-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-md-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-md-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-md-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-md-start { + text-align: left !important; + } + .text-md-end { + text-align: right !important; + } + .text-md-center { + text-align: center !important; } } -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { +@media (min-width: 992px) { + .float-lg-start { + float: left !important; + } + .float-lg-end { + float: right !important; + } + .float-lg-none { + float: none !important; + } + .object-fit-lg-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-lg-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-lg-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-lg-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-lg-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-lg-inline { display: inline !important; } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { + .d-lg-inline-block { display: inline-block !important; } -} -/*@media (min-width: 1200px) { - .visible-lg { + .d-lg-block { display: block !important; } - table.visible-lg { - display: table; + .d-lg-grid { + display: grid !important; } - tr.visible-lg { + .d-lg-inline-grid { + display: inline-grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { display: table-row !important; } - th.visible-lg, - td.visible-lg { + .d-lg-table-cell { display: table-cell !important; } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + gap: 3rem !important; + } + .row-gap-lg-0 { + row-gap: 0 !important; + } + .row-gap-lg-1 { + row-gap: 0.25rem !important; + } + .row-gap-lg-2 { + row-gap: 0.5rem !important; + } + .row-gap-lg-3 { + row-gap: 1rem !important; + } + .row-gap-lg-4 { + row-gap: 1.5rem !important; + } + .row-gap-lg-5 { + row-gap: 3rem !important; + } + .column-gap-lg-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-lg-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-lg-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-lg-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-lg-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-lg-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-lg-start { + text-align: left !important; + } + .text-lg-end { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } } @media (min-width: 1200px) { - .visible-lg-block { - display: block !important; + .float-xl-start { + float: left !important; } -} -@media (min-width: 1200px) { - .visible-lg-inline { + .float-xl-end { + float: right !important; + } + .float-xl-none { + float: none !important; + } + .object-fit-xl-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-xl-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-xl-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-xl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-xl-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-xl-inline { display: inline !important; } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { + .d-xl-inline-block { display: inline-block !important; } -}*/ -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -/*@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -}*/ -.visible-print { - display: none !important; -} -@media print { - .visible-print { + .d-xl-block { display: block !important; } - table.visible-print { - display: table; + .d-xl-grid { + display: grid !important; } - tr.visible-print { + .d-xl-inline-grid { + display: inline-grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { display: table-row !important; } - th.visible-print, - td.visible-print { + .d-xl-table-cell { display: table-cell !important; } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + gap: 3rem !important; + } + .row-gap-xl-0 { + row-gap: 0 !important; + } + .row-gap-xl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xl-3 { + row-gap: 1rem !important; + } + .row-gap-xl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xl-5 { + row-gap: 3rem !important; + } + .column-gap-xl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-xl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-xl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-xl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-xl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-xl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-xl-start { + text-align: left !important; + } + .text-xl-end { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; } } -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; + } + .float-xxl-end { + float: right !important; + } + .float-xxl-none { + float: none !important; + } + .object-fit-xxl-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-xxl-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-xxl-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-xxl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-xxl-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-xxl-inline { display: inline !important; } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { + .d-xxl-inline-block { display: inline-block !important; } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-inline-grid { + display: inline-grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + gap: 3rem !important; + } + .row-gap-xxl-0 { + row-gap: 0 !important; + } + .row-gap-xxl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xxl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xxl-3 { + row-gap: 1rem !important; + } + .row-gap-xxl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xxl-5 { + row-gap: 3rem !important; + } + .column-gap-xxl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-xxl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-xxl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-xxl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-xxl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-xxl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-xxl-start { + text-align: left !important; + } + .text-xxl-end { + text-align: right !important; + } + .text-xxl-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; + } + .fs-2 { + font-size: 2rem !important; + } + .fs-3 { + font-size: 1.75rem !important; + } + .fs-4 { + font-size: 1.5rem !important; + } } @media print { - .hidden-print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-inline-grid { + display: inline-grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { display: none !important; } } + +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index 4a4ca865d67e86f961bc6e2ef00bffa4e34bb9ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20335 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 diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 25691af8..00000000 --- a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,229 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata></metadata> -<defs> -<font id="glyphicons_halflingsregular" horiz-adv-x="1200" > -<font-face units-per-em="1200" ascent="960" descent="-240" /> -<missing-glyph horiz-adv-x="500" /> -<glyph /> -<glyph /> -<glyph unicode="
" /> -<glyph unicode=" " /> -<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" /> -<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" /> -<glyph unicode=" " /> -<glyph unicode=" " horiz-adv-x="652" /> -<glyph unicode=" " horiz-adv-x="1304" /> -<glyph unicode=" " horiz-adv-x="652" /> -<glyph unicode=" " horiz-adv-x="1304" /> -<glyph unicode=" " horiz-adv-x="434" /> -<glyph unicode=" " horiz-adv-x="326" /> -<glyph unicode=" " horiz-adv-x="217" /> -<glyph unicode=" " horiz-adv-x="217" /> -<glyph unicode=" " horiz-adv-x="163" /> -<glyph unicode=" " horiz-adv-x="260" /> -<glyph unicode=" " horiz-adv-x="72" /> -<glyph unicode=" " horiz-adv-x="260" /> -<glyph unicode=" " horiz-adv-x="326" /> -<glyph unicode="€" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" /> -<glyph unicode="−" d="M200 400h900v300h-900v-300z" /> -<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" /> -<glyph unicode="☁" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" /> -<glyph unicode="✉" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" /> -<glyph unicode="✏" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" /> -<glyph unicode="" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" /> -<glyph unicode="" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" /> -<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" /> -<glyph unicode="" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" /> -<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" /> -<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" /> -<glyph unicode="" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" /> -<glyph unicode="" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" /> -<glyph unicode="" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" /> -<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" /> -<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" /> -<glyph unicode="" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" /> -<glyph unicode="" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" /> -<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" /> -<glyph unicode="" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" /> -<glyph unicode="" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" /> -<glyph unicode="" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" /> -<glyph unicode="" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" /> -<glyph unicode="" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" /> -<glyph unicode="" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" /> -<glyph unicode="" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" /> -<glyph unicode="" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" /> -<glyph unicode="" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" /> -<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" /> -<glyph unicode="" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" /> -<glyph unicode="" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" /> -<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" /> -<glyph unicode="" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" /> -<glyph unicode="" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" /> -<glyph unicode="" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" /> -<glyph unicode="" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" /> -<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" /> -<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" /> -<glyph unicode="" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" /> -<glyph unicode="" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" /> -<glyph unicode="" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" /> -<glyph unicode="" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" /> -<glyph unicode="" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" /> -<glyph unicode="" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" /> -<glyph unicode="" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" /> -<glyph unicode="" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" /> -<glyph unicode="" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" /> -<glyph unicode="" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" /> -<glyph unicode="" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" /> -<glyph unicode="" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" /> -<glyph unicode="" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " /> -<glyph unicode="" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" /> -<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" /> -<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" /> -<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" /> -<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" /> -<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" /> -<glyph unicode="" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" /> -<glyph unicode="" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" /> -<glyph unicode="" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" /> -<glyph unicode="" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " /> -<glyph unicode="" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" /> -<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" /> -<glyph unicode="" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" /> -<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" /> -<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" /> -<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" /> -<glyph unicode="" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" /> -<glyph unicode="" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" /> -<glyph unicode="" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" /> -<glyph unicode="" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" /> -<glyph unicode="" d="M200 0l900 550l-900 550v-1100z" /> -<glyph unicode="" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" /> -<glyph unicode="" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" /> -<glyph unicode="" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" /> -<glyph unicode="" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" /> -<glyph unicode="" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" /> -<glyph unicode="" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" /> -<glyph unicode="" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" /> -<glyph unicode="" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" /> -<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" /> -<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" /> -<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" /> -<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" /> -<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" /> -<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" /> -<glyph unicode="" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" /> -<glyph unicode="" d="M0 547l600 453v-300h600v-300h-600v-301z" /> -<glyph unicode="" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" /> -<glyph unicode="" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" /> -<glyph unicode="" d="M104 600h296v600h300v-600h298l-449 -600z" /> -<glyph unicode="" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" /> -<glyph unicode="" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" /> -<glyph unicode="" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" /> -<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" /> -<glyph unicode="" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" /> -<glyph unicode="" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" /> -<glyph unicode="" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" /> -<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" /> -<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" /> -<glyph unicode="" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" /> -<glyph unicode="" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" /> -<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" /> -<glyph unicode="" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" /> -<glyph unicode="" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" /> -<glyph unicode="" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" /> -<glyph unicode="" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" /> -<glyph unicode="" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" /> -<glyph unicode="" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" /> -<glyph unicode="" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" /> -<glyph unicode="" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" /> -<glyph unicode="" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" /> -<glyph unicode="" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" /> -<glyph unicode="" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" /> -<glyph unicode="" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" /> -<glyph unicode="" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" /> -<glyph unicode="" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" /> -<glyph unicode="" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" /> -<glyph unicode="" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" /> -<glyph unicode="" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" /> -<glyph unicode="" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" /> -<glyph unicode="" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" /> -<glyph unicode="" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" /> -<glyph unicode="" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" /> -<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" /> -<glyph unicode="" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" /> -<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" /> -<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" /> -<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" /> -<glyph unicode="" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" /> -<glyph unicode="" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" /> -<glyph unicode="" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" /> -<glyph unicode="" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" /> -<glyph unicode="" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" /> -<glyph unicode="" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" /> -<glyph unicode="" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" /> -<glyph unicode="" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" /> -<glyph unicode="" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" /> -<glyph unicode="" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" /> -<glyph unicode="" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" /> -<glyph unicode="" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" /> -<glyph unicode="" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" /> -<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" /> -<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" /> -<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" /> -<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" /> -<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" /> -<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" /> -<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" /> -<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" /> -<glyph unicode="" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" /> -<glyph unicode="" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" /> -<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" /> -<glyph unicode="" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" /> -<glyph unicode="" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" /> -<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " /> -<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" /> -<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" /> -<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" /> -<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" /> -<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" /> -<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" /> -<glyph unicode="" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" /> -<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" /> -<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" /> -<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" /> -<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" /> -<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" /> -<glyph unicode="" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" /> -<glyph unicode="" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" /> -<glyph unicode="" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" /> -<glyph unicode="" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" /> -<glyph unicode="" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" /> -<glyph unicode="" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" /> -<glyph unicode="" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" /> -<glyph unicode="" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" /> -<glyph unicode="" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" /> -<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" /> -<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" /> -<glyph unicode="" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" /> -<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" /> -<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" /> -<glyph unicode="" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" /> -<glyph unicode="" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" /> -</font> -</defs></svg> \ No newline at end of file diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 67fa00bf83801d2fa568546b982c80d27f6ef74e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41280 zcmc${2b>$#wLd<0X4JKkMs=IoY9(#guC%-Ix~!LV@5XgawLzwtVoFRi&4B<;Yzzq| z1QHw)z@da0*@PsIyqA!`6G@b6oWOe_b_$P#@)GbXG2Zd-d+unfZAkvV-{<pRThcUX z?mhS1bI<vnG6E9>LBX3Wc;?Pswd9i3FaAXkSUrx`&zn7GF0<l{z@}h7wrpi4d*Ks{ zZpZ!*_Sc_(*@n#v|6=<B_P;3z;#KEwxh5twNq6GM+Hl@_!R8AuTe&~;1opdee&dB3 zuHKB}9zifaOy@7W^!f`Tkz5@6UloMAr(d*jLqR-mNEd{A4&i+7ML1y3%5Fi}RgL|| zi!Qt7y6=5Y*@^w>_`M^SUUB}0?t9iO6@<@rQX4MYaNTB6W_twTb8q4L*yS58+j!vF z2j3Nh`>lc?ZQXpu)z^G$?&B8=!spQk>+PGb+PGPLztt}YU&eW%<JyhqT`=_QiZ`)O z{War7)DeC><I$he=TDu%_l-|m2S4M&9<>aO!9EjS$4lmWxSf0(+a;I;S#pX$!?81r zPxe(ID}q`APM!R3^`f;)g#n@JcY^fY<DiwPTG)y!c}ptai19rMd-SR|&aq3eM_1Jg zGFy(%<@gm7QCp}IVnVC1CuWajV&}%5Zty0LrC8dQb{~=s*$&klYChC=Xu+X%ht?mu z_|Wx-?mqOuVcX%F!_9~L4$nQj;PAS`7azX<@ZE>+Km6eDgyYBYd&V!e;1`7xevutA z9r7HC9qK$ZaA-Mx@w`Ku58Zlb*I{<pb2xUm^YFmo`G=PuUVnJ=;ad;yI{X0tMRxqZ zj{pAn>&GuRWclsyf4l#;7ri09Ui*6RHTP@wSWT=t=8ZXH=9myY8a)#IAo_0fKca`D z*F~?2UK+h1x;}btbX|01bV+nx^t9+egvQ|i`5yx>jQlJU@$>W=|A&(_6vm%?s-YdZ z;Q!}OV(bZjm;rz1-#tQ;_`j;qrV74A>f+@?>cTDSR3S05S~a&0%~;2e-Lx)tKxMv; z>UNd2#a>sPt?jDVwrIuBoW#0#yDGI^Tpd#fmJh|%fpzVw+(uuGC*n5@{id$Gt`64? z4cEQ9t}YQ*O|3)f+%4<)iFNDnd#1Lkv(9K&&23r(y9;-Z-F4Pkb*g}$v9xK8{LsMY zA#0mgiS=dLRa;x^Cc4QF@cS`UN-jvmR5`U!6_yWe-?)84j5em!#pCPhw)4Fe#va|! zZnVx*=ZWJcj<(n@cz2v_v5abIJ!>cyo0pio;gZ-;tZ<(36Leh_-5IxzZI8{{K6gW6 zdu)4x-!7pFD~8koT#5eCZPkH|w1e-s_?>1Ptd7U)Vh6W_4EWLlv~6{zZD=1ZbGId8 z2P-#E#D*5Ftc$B`-OzS)XhC9oBDQ_O_QVEi33Z3wsXZPV1}}y|p$^c7cTxw?(8S!t zhD+9u?+Ja?*M?4Pzmv$eu#nhpQDe)8rq_KJXZ&sZgaI}%ILH=#(<7WO@OQd+HCi6q zzG5hG9$KFmtiuOO41)3lD~5_fOqg~4V3EZbKGfLxYR$%a-ctNxpiRY5&;@Vp#E_7w zkT-73wkGUcB*ievEJBCIgv|7!MHb)9YG%{FPcKR$HU&+h!zMahw3wx1(~FFb=ajgT z%qfW`HlV-tm%m7{V~3g`k(p2s3i4uku@Dj(1y#tXRXLTFRY#Vo)fv@yP&H*$Z&|fu zwHnqcbawfA;^}-y$tn4eB_4=}ENLa7Skn0dlb+x4d<icm>BA$NM<yN6hxujHC;ajI zI)sHn(JlzBbaM;8xhY#@g1vR$0F!L3Om${d`$1LAs<yH!XNxvFow8YMtwp<yHtm9~ zRjcByt6_2U)A+}Bu{O3#->e@P+tN3)UA)gG`7`p@g}ksuP_r4esa$Nz(oZ#Y*myhQ zydBZ3YRahfIn`WNYqM$~qdLmPfP*d!c&KGlGHRZ;tf8!hquH$5;L+MytLn+B9c9&> z)%sYg){s}cs-;hDSBj2Uwy&>`sF=@n=M(u{Z@xE|4FyAq?hY~0;1VryOWYj5TSU%f z`^BD|*<wyKq℞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 diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 8c54182aa5d4d1ab3c9171976b615c1dcb1dc187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23320 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 diff --git a/mamweb/static/bootstrap/js/bootstrap.js b/mamweb/static/bootstrap/js/bootstrap.js index b6ac8d99..d861a326 100644 --- a/mamweb/static/bootstrap/js/bootstrap.js +++ b/mamweb/static/bootstrap/js/bootstrap.js @@ -1,2320 +1,4494 @@ /*! - * Bootstrap v3.3.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) : + typeof define === 'function' && define.amd ? define(['@popperjs/core'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory(global.Popper)); +})(this, (function (Popper) { 'use strict'; -if (typeof jQuery === 'undefined') { - throw new Error('Bootstrap\'s JavaScript requires jQuery') -} - -+function ($) { - var version = $.fn.jquery.split(' ')[0].split('.') - if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) { - throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher') - } -}(jQuery); - -/* ======================================================================== - * Bootstrap: transition.js v3.3.1 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } + function _interopNamespaceDefault(e) { + const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); + if (e) { + for (const k in e) { + if (k !== 'default') { + const d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: () => e[k] + }); + } } } - - return false // explicit for ie8 ( ._.) + n.default = e; + return Object.freeze(n); } - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } + const Popper__namespace = /*#__PURE__*/_interopNamespaceDefault(Popper); - $(function () { - $.support.transition = transitionEnd() + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/data.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - if (!$.support.transition) return + /** + * Constants + */ - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) + const elementMap = new Map(); + const Data = { + set(element, key, instance) { + if (!elementMap.has(element)) { + elementMap.set(element, new Map()); + } + const instanceMap = elementMap.get(element); + + // make it clear we only want one instance per element + // can be removed later when multiple key/instances are fine to be used + if (!instanceMap.has(key) && instanceMap.size !== 0) { + // eslint-disable-next-line no-console + console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); + return; + } + instanceMap.set(key, instance); + }, + get(element, key) { + if (elementMap.has(element)) { + return elementMap.get(element).get(key) || null; + } + return null; + }, + remove(element, key) { + if (!elementMap.has(element)) { + return; + } + const instanceMap = elementMap.get(element); + instanceMap.delete(key); + + // free up element references if there are no instances left for an element + if (instanceMap.size === 0) { + elementMap.delete(element); } } - }) + }; -}(jQuery); + /** + * -------------------------------------------------------------------------- + * Bootstrap util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ -/* ======================================================================== - * Bootstrap: alert.js v3.3.1 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + const MAX_UID = 1000000; + const MILLISECONDS_MULTIPLIER = 1000; + const TRANSITION_END = 'transitionend'; + /** + * Properly escape IDs selectors to handle weird IDs + * @param {string} selector + * @returns {string} + */ + const parseSelector = selector => { + if (selector && window.CSS && window.CSS.escape) { + // document.querySelector needs escaping to handle IDs (html5+) containing for instance / + selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`); + } + return selector; + }; -+function ($) { - 'use strict'; + // Shout-out Angus Croll (https://goo.gl/pxwQGp) + const toType = object => { + if (object === null || object === undefined) { + return `${object}`; + } + return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; - // ALERT CLASS DEFINITION - // ====================== + /** + * Public Util API + */ - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.1' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + const getUID = prefix => { + do { + prefix += Math.floor(Math.random() * MAX_UID); + } while (document.getElementById(prefix)); + return prefix; + }; + const getTransitionDurationFromElement = element => { + if (!element) { + return 0; } - var $parent = $(selector) + // Get transition-duration of the element + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') + // Return 0 if element or transition duration is not found + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; } - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() + // If multiple durations are defined, take the first + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; + }; + const triggerTransitionEnd = element => { + element.dispatchEvent(new Event(TRANSITION_END)); + }; + const isElement = object => { + if (!object || typeof object !== 'object') { + return false; } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.3.1 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.1' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state = state + 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d) + if (typeof object.jquery !== 'undefined') { + object = object[0]; + } + return typeof object.nodeType !== 'undefined'; + }; + const getElement = object => { + // it's a jQuery object or a node element + if (isElement(object)) { + return object.jquery ? object[0] : object; + } + if (typeof object === 'string' && object.length > 0) { + return document.querySelector(parseSelector(object)); + } + return null; + }; + const isVisible = element => { + if (!isElement(element) || element.getClientRects().length === 0) { + return false; + } + const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; + // Handle `details` element as its content may falsie appear visible when it is closed + const closedDetails = element.closest('details:not([open])'); + if (!closedDetails) { + return elementIsVisible; + } + if (closedDetails !== element) { + const summary = element.closest('summary'); + if (summary && summary.parentNode !== closedDetails) { + return false; } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked') && this.$element.hasClass('active')) changed = false - else $parent.find('.active').removeClass('active') + if (summary === null) { + return false; } - if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') + } + return elementIsVisible; + }; + const isDisabled = element => { + if (!element || element.nodeType !== Node.ELEMENT_NODE) { + return true; + } + if (element.classList.contains('disabled')) { + return true; + } + if (typeof element.disabled !== 'undefined') { + return element.disabled; + } + return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; + }; + const findShadowRoot = element => { + if (!document.documentElement.attachShadow) { + return null; + } + + // Can find the shadow root otherwise it'll return the document + if (typeof element.getRootNode === 'function') { + const root = element.getRootNode(); + return root instanceof ShadowRoot ? root : null; + } + if (element instanceof ShadowRoot) { + return element; + } + + // when we don't find a shadow root + if (!element.parentNode) { + return null; + } + return findShadowRoot(element.parentNode); + }; + const noop = () => {}; + + /** + * Trick to restart an element's animation + * + * @param {HTMLElement} element + * @return void + * + * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation + */ + const reflow = element => { + element.offsetHeight; // eslint-disable-line no-unused-expressions + }; + + const getjQuery = () => { + if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return window.jQuery; + } + return null; + }; + const DOMContentLoadedCallbacks = []; + const onDOMContentLoaded = callback => { + if (document.readyState === 'loading') { + // add listener on the first call when the document is in loading state + if (!DOMContentLoadedCallbacks.length) { + document.addEventListener('DOMContentLoaded', () => { + for (const callback of DOMContentLoadedCallbacks) { + callback(); + } + }); + } + DOMContentLoadedCallbacks.push(callback); } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) + callback(); + } + }; + const isRTL = () => document.documentElement.dir === 'rtl'; + const defineJQueryPlugin = plugin => { + onDOMContentLoaded(() => { + const $ = getjQuery(); + /* istanbul ignore if */ + if ($) { + const name = plugin.NAME; + const JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + $.fn[name].noConflict = () => { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => { + return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue; + }; + const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { + if (!waitForTransition) { + execute(callback); + return; + } + const durationPadding = 5; + const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; + let called = false; + const handler = ({ + target + }) => { + if (target !== transitionElement) { + return; + } + called = true; + transitionElement.removeEventListener(TRANSITION_END, handler); + execute(callback); + }; + transitionElement.addEventListener(TRANSITION_END, handler); + setTimeout(() => { + if (!called) { + triggerTransitionEnd(transitionElement); + } + }, emulatedDuration); + }; + + /** + * Return the previous/next element of a list. + * + * @param {array} list The list of elements + * @param activeElement The active element + * @param shouldGetNext Choose to get next or previous element + * @param isCycleAllowed + * @return {Element|elem} The proper element + */ + const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { + const listLength = list.length; + let index = list.indexOf(activeElement); + + // if the element does not exist in the list return an element + // depending on the direction and if cycle is allowed + if (index === -1) { + return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; + } + index += shouldGetNext ? 1 : -1; + if (isCycleAllowed) { + index = (index + listLength) % listLength; + } + return list[Math.max(0, Math.min(index, listLength - 1))]; + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/event-handler.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const namespaceRegex = /[^.]*(?=\..*)\.|.*/; + const stripNameRegex = /\..*/; + const stripUidRegex = /::\d+$/; + const eventRegistry = {}; // Events storage + let uidEvent = 1; + const customEvents = { + mouseenter: 'mouseover', + mouseleave: 'mouseout' + }; + const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); + + /** + * Private methods + */ + + function makeEventUid(element, uid) { + return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; + } + function getElementEvents(element) { + const uid = makeEventUid(element); + element.uidEvent = uid; + eventRegistry[uid] = eventRegistry[uid] || {}; + return eventRegistry[uid]; + } + function bootstrapHandler(element, fn) { + return function handler(event) { + hydrateObj(event, { + delegateTarget: element + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, fn); + } + return fn.apply(element, [event]); + }; + } + function bootstrapDelegationHandler(element, selector, fn) { + return function handler(event) { + const domElements = element.querySelectorAll(selector); + for (let { + target + } = event; target && target !== this; target = target.parentNode) { + for (const domElement of domElements) { + if (domElement !== target) { + continue; + } + hydrateObj(event, { + delegateTarget: target + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, selector, fn); + } + return fn.apply(target, [event]); + } + } + }; + } + function findHandler(events, callable, delegationSelector = null) { + return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); + } + function normalizeParameters(originalTypeEvent, handler, delegationFunction) { + const isDelegated = typeof handler === 'string'; + // TODO: tooltip passes `false` instead of selector, so we need to check + const callable = isDelegated ? delegationFunction : handler || delegationFunction; + let typeEvent = getTypeEvent(originalTypeEvent); + if (!nativeEvents.has(typeEvent)) { + typeEvent = originalTypeEvent; + } + return [isDelegated, callable, typeEvent]; + } + function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + + // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position + // this prevents the handler from being dispatched the same way as mouseover or mouseout does + if (originalTypeEvent in customEvents) { + const wrapFunction = fn => { + return function (event) { + if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { + return fn.call(this, event); + } + }; + }; + callable = wrapFunction(callable); + } + const events = getElementEvents(element); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); + if (previousFunction) { + previousFunction.oneOff = previousFunction.oneOff && oneOff; + return; + } + const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); + const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); + fn.delegationSelector = isDelegated ? handler : null; + fn.callable = callable; + fn.oneOff = oneOff; + fn.uidEvent = uid; + handlers[uid] = fn; + element.addEventListener(typeEvent, fn, isDelegated); + } + function removeHandler(element, events, typeEvent, handler, delegationSelector) { + const fn = findHandler(events[typeEvent], handler, delegationSelector); + if (!fn) { + return; + } + element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); + delete events[typeEvent][fn.uidEvent]; + } + function removeNamespacedHandlers(element, events, typeEvent, namespace) { + const storeElementEvent = events[typeEvent] || {}; + for (const [handlerKey, event] of Object.entries(storeElementEvent)) { + if (handlerKey.includes(namespace)) { + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } + } + function getTypeEvent(event) { + // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + event = event.replace(stripNameRegex, ''); + return customEvents[event] || event; + } + const EventHandler = { + on(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, false); + }, + one(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, true); + }, + off(element, originalTypeEvent, handler, delegationFunction) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getElementEvents(element); + const storeElementEvent = events[typeEvent] || {}; + const isNamespace = originalTypeEvent.startsWith('.'); + if (typeof callable !== 'undefined') { + // Simplest case: handler is passed, remove that listener ONLY. + if (!Object.keys(storeElementEvent).length) { + return; + } + removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); + return; + } + if (isNamespace) { + for (const elementEvent of Object.keys(events)) { + removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); + } + } + for (const [keyHandlers, event] of Object.entries(storeElementEvent)) { + const handlerKey = keyHandlers.replace(stripUidRegex, ''); + if (!inNamespace || originalTypeEvent.includes(handlerKey)) { + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } + }, + trigger(element, event, args) { + if (typeof event !== 'string' || !element) { + return null; + } + const $ = getjQuery(); + const typeEvent = getTypeEvent(event); + const inNamespace = event !== typeEvent; + let jQueryEvent = null; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + if (inNamespace && $) { + jQueryEvent = $.Event(event, args); + $(element).trigger(jQueryEvent); + bubbles = !jQueryEvent.isPropagationStopped(); + nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); + defaultPrevented = jQueryEvent.isDefaultPrevented(); + } + const evt = hydrateObj(new Event(event, { + bubbles, + cancelable: true + }), args); + if (defaultPrevented) { + evt.preventDefault(); + } + if (nativeDispatch) { + element.dispatchEvent(evt); + } + if (evt.defaultPrevented && jQueryEvent) { + jQueryEvent.preventDefault(); + } + return evt; + } + }; + function hydrateObj(obj, meta = {}) { + for (const [key, value] of Object.entries(meta)) { + try { + obj[key] = value; + } catch (_unused) { + Object.defineProperty(obj, key, { + configurable: true, + get() { + return value; + } + }); + } + } + return obj; + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/manipulator.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + function normalizeData(value) { + if (value === 'true') { + return true; + } + if (value === 'false') { + return false; + } + if (value === Number(value).toString()) { + return Number(value); + } + if (value === '' || value === 'null') { + return null; + } + if (typeof value !== 'string') { + return value; + } + try { + return JSON.parse(decodeURIComponent(value)); + } catch (_unused) { + return value; + } + } + function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); + } + const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); + }, + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); + }, + getDataAttributes(element) { + if (!element) { + return {}; + } + const attributes = {}; + const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); + for (const key of bsKeys) { + let pureKey = key.replace(/^bs/, ''); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData(element.dataset[key]); + } + return attributes; + }, + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); + } + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/config.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Class definition + */ + + class Config { + // Getters + static get Default() { + return {}; + } + static get DefaultType() { + return {}; + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + return config; + } + _mergeConfigObj(config, element) { + const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse + + return { + ...this.constructor.Default, + ...(typeof jsonConfig === 'object' ? jsonConfig : {}), + ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), + ...(typeof config === 'object' ? config : {}) + }; + } + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const [property, expectedTypes] of Object.entries(configTypes)) { + const value = config[property]; + const valueType = isElement(value) ? 'element' : toType(value); + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); + } + } + } + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap base-component.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const VERSION = '5.3.2'; + + /** + * Class definition + */ + + class BaseComponent extends Config { + constructor(element, config) { + super(); + element = getElement(element); + if (!element) { + return; + } + this._element = element; + this._config = this._getConfig(config); + Data.set(this._element, this.constructor.DATA_KEY, this); } - if (changed) this.$element.toggleClass('active') + // Public + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); + EventHandler.off(this._element, this.constructor.EVENT_KEY); + for (const propertyName of Object.getOwnPropertyNames(this)) { + this[propertyName] = null; + } + } + _queueCallback(callback, element, isAnimated = true) { + executeAfterTransition(callback, element, isAnimated); + } + _getConfig(config) { + config = this._mergeConfigObj(config, this._element); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + + // Static + static getInstance(element) { + return Data.get(getElement(element), this.DATA_KEY); + } + static getOrCreateInstance(element, config = {}) { + return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); + } + static get VERSION() { + return VERSION; + } + static get DATA_KEY() { + return `bs.${this.NAME}`; + } + static get EVENT_KEY() { + return `.${this.DATA_KEY}`; + } + static eventName(name) { + return `${name}${this.EVENT_KEY}`; + } } + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/selector-engine.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - // BUTTON PLUGIN DEFINITION - // ======================== + const getSelector = element => { + let selector = element.getAttribute('data-bs-target'); + if (!selector || selector === '#') { + let hrefAttribute = element.getAttribute('href'); - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option + // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { + return null; + } - if (!data) $this.data('bs.button', (data = new Button(this, options))) + // Just in case some CMS puts out a full URL with the anchor appended + if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { + hrefAttribute = `#${hrefAttribute.split('#')[1]}`; + } + selector = hrefAttribute && hrefAttribute !== '#' ? parseSelector(hrefAttribute.trim()) : null; + } + return selector; + }; + const SelectorEngine = { + find(selector, element = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); + }, + findOne(selector, element = document.documentElement) { + return Element.prototype.querySelector.call(element, selector); + }, + children(element, selector) { + return [].concat(...element.children).filter(child => child.matches(selector)); + }, + parents(element, selector) { + const parents = []; + let ancestor = element.parentNode.closest(selector); + while (ancestor) { + parents.push(ancestor); + ancestor = ancestor.parentNode.closest(selector); + } + return parents; + }, + prev(element, selector) { + let previous = element.previousElementSibling; + while (previous) { + if (previous.matches(selector)) { + return [previous]; + } + previous = previous.previousElementSibling; + } + return []; + }, + // TODO: this is now unused; remove later along with prev() + next(element, selector) { + let next = element.nextElementSibling; + while (next) { + if (next.matches(selector)) { + return [next]; + } + next = next.nextElementSibling; + } + return []; + }, + focusableChildren(element) { + const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); + return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); + }, + getSelectorFromElement(element) { + const selector = getSelector(element); + if (selector) { + return SelectorEngine.findOne(selector) ? selector : null; + } + return null; + }, + getElementFromSelector(element) { + const selector = getSelector(element); + return selector ? SelectorEngine.findOne(selector) : null; + }, + getMultipleElementsFromSelector(element) { + const selector = getSelector(element); + return selector ? SelectorEngine.find(selector) : []; + } + }; - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) + /** + * -------------------------------------------------------------------------- + * Bootstrap util/component-functions.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + const enableDismissTrigger = (component, method = 'hide') => { + const clickEvent = `click.dismiss${component.EVENT_KEY}`; + const name = component.NAME; + EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) { + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`); + const instance = component.getOrCreateInstance(target); + + // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method + instance[method](); + }); + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$f = 'alert'; + const DATA_KEY$a = 'bs.alert'; + const EVENT_KEY$b = `.${DATA_KEY$a}`; + const EVENT_CLOSE = `close${EVENT_KEY$b}`; + const EVENT_CLOSED = `closed${EVENT_KEY$b}`; + const CLASS_NAME_FADE$5 = 'fade'; + const CLASS_NAME_SHOW$8 = 'show'; + + /** + * Class definition + */ + + class Alert extends BaseComponent { + // Getters + static get NAME() { + return NAME$f; + } + + // Public + close() { + const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); + if (closeEvent.defaultPrevented) { + return; + } + this._element.classList.remove(CLASS_NAME_SHOW$8); + const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); + this._queueCallback(() => this._destroyElement(), this._element, isAnimated); + } + + // Private + _destroyElement() { + this._element.remove(); + EventHandler.trigger(this._element, EVENT_CLOSED); + this.dispose(); + } + + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Alert.getOrCreateInstance(this); + if (typeof config !== 'string') { + return; + } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + }); + } } - var old = $.fn.button + /** + * Data API implementation + */ - $.fn.button = Plugin - $.fn.button.Constructor = Button + enableDismissTrigger(Alert, 'close'); + + /** + * jQuery + */ + + defineJQueryPlugin(Alert); + + /** + * -------------------------------------------------------------------------- + * Bootstrap button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - // BUTTON NO CONFLICT - // ================== + /** + * Constants + */ - $.fn.button.noConflict = function () { - $.fn.button = old - return this + const NAME$e = 'button'; + const DATA_KEY$9 = 'bs.button'; + const EVENT_KEY$a = `.${DATA_KEY$9}`; + const DATA_API_KEY$6 = '.data-api'; + const CLASS_NAME_ACTIVE$3 = 'active'; + const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; + const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; + + /** + * Class definition + */ + + class Button extends BaseComponent { + // Getters + static get NAME() { + return NAME$e; + } + + // Public + toggle() { + // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); + } + + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Button.getOrCreateInstance(this); + if (config === 'toggle') { + data[config](); + } + }); + } } + /** + * Data API implementation + */ - // BUTTON DATA-API - // =============== + EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { + event.preventDefault(); + const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); + const data = Button.getOrCreateInstance(button); + data.toggle(); + }); - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - Plugin.call($btn, 'toggle') - e.preventDefault() - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) + /** + * jQuery + */ -}(jQuery); + defineJQueryPlugin(Button); -/* ======================================================================== - * Bootstrap: carousel.js v3.3.1 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + /** + * -------------------------------------------------------------------------- + * Bootstrap util/swipe.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ -+function ($) { - 'use strict'; + /** + * Constants + */ - // CAROUSEL CLASS DEFINITION - // ========================= + const NAME$d = 'swipe'; + const EVENT_KEY$9 = '.bs.swipe'; + const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; + const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; + const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; + const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; + const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; + const POINTER_TYPE_TOUCH = 'touch'; + const POINTER_TYPE_PEN = 'pen'; + const CLASS_NAME_POINTER_EVENT = 'pointer-event'; + const SWIPE_THRESHOLD = 40; + const Default$c = { + endCallback: null, + leftCallback: null, + rightCallback: null + }; + const DefaultType$c = { + endCallback: '(function|null)', + leftCallback: '(function|null)', + rightCallback: '(function|null)' + }; - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = - this.sliding = - this.interval = - this.$active = - this.$items = null + /** + * Class definition + */ - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) + class Swipe extends Config { + constructor(element, config) { + super(); + this._element = element; + if (!element || !Swipe.isSupported()) { + return; + } + this._config = this._getConfig(config); + this._deltaX = 0; + this._supportPointerEvents = Boolean(window.PointerEvent); + this._initEvents(); + } - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) + // Getters + static get Default() { + return Default$c; + } + static get DefaultType() { + return DefaultType$c; + } + static get NAME() { + return NAME$d; + } + + // Public + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); + } + + // Private + _start(event) { + if (!this._supportPointerEvents) { + this._deltaX = event.touches[0].clientX; + return; + } + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX; + } + } + _end(event) { + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX - this._deltaX; + } + this._handleSwipe(); + execute(this._config.endCallback); + } + _move(event) { + this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; + } + _handleSwipe() { + const absDeltaX = Math.abs(this._deltaX); + if (absDeltaX <= SWIPE_THRESHOLD) { + return; + } + const direction = absDeltaX / this._deltaX; + this._deltaX = 0; + if (!direction) { + return; + } + execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); + } + _initEvents() { + if (this._supportPointerEvents) { + EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); + } + } + _eventIsPointerPenTouch(event) { + return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); + } + + // Static + static isSupported() { + return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + } } - Carousel.VERSION = '3.3.1' + /** + * -------------------------------------------------------------------------- + * Bootstrap carousel.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - Carousel.TRANSITION_DURATION = 600 - Carousel.DEFAULTS = { + /** + * Constants + */ + + const NAME$c = 'carousel'; + const DATA_KEY$8 = 'bs.carousel'; + const EVENT_KEY$8 = `.${DATA_KEY$8}`; + const DATA_API_KEY$5 = '.data-api'; + const ARROW_LEFT_KEY$1 = 'ArrowLeft'; + const ARROW_RIGHT_KEY$1 = 'ArrowRight'; + const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch + + const ORDER_NEXT = 'next'; + const ORDER_PREV = 'prev'; + const DIRECTION_LEFT = 'left'; + const DIRECTION_RIGHT = 'right'; + const EVENT_SLIDE = `slide${EVENT_KEY$8}`; + const EVENT_SLID = `slid${EVENT_KEY$8}`; + const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; + const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; + const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; + const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; + const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; + const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; + const CLASS_NAME_CAROUSEL = 'carousel'; + const CLASS_NAME_ACTIVE$2 = 'active'; + const CLASS_NAME_SLIDE = 'slide'; + const CLASS_NAME_END = 'carousel-item-end'; + const CLASS_NAME_START = 'carousel-item-start'; + const CLASS_NAME_NEXT = 'carousel-item-next'; + const CLASS_NAME_PREV = 'carousel-item-prev'; + const SELECTOR_ACTIVE = '.active'; + const SELECTOR_ITEM = '.carousel-item'; + const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; + const SELECTOR_ITEM_IMG = '.carousel-item img'; + const SELECTOR_INDICATORS = '.carousel-indicators'; + const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; + const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; + const KEY_TO_DIRECTION = { + [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, + [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT + }; + const Default$b = { interval: 5000, + keyboard: true, pause: 'hover', - wrap: true, - keyboard: true - } + ride: false, + touch: true, + wrap: true + }; + const DefaultType$b = { + interval: '(number|boolean)', + // TODO:v6 remove boolean support + keyboard: 'boolean', + pause: '(string|boolean)', + ride: '(boolean|string)', + touch: 'boolean', + wrap: 'boolean' + }; - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return + /** + * Class definition + */ + + class Carousel extends BaseComponent { + constructor(element, config) { + super(element, config); + this._interval = null; + this._activeElement = null; + this._isSliding = false; + this.touchTimeout = null; + this._swipeHelper = null; + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + this._addEventListeners(); + if (this._config.ride === CLASS_NAME_CAROUSEL) { + this.cycle(); + } } - e.preventDefault() - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var delta = direction == 'prev' ? -1 : 1 - var activeIndex = this.getItemIndex(active) - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) + // Getters + static get Default() { + return Default$b; + } + static get DefaultType() { + return DefaultType$b; + } + static get NAME() { + return NAME$c; } - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var fallback = type == 'next' ? 'first' : 'last' - var that = this - - if (!$next.length) { - if (!this.options.wrap) return - $next = this.$element.find('.item')[fallback]() + // Public + next() { + this._slide(ORDER_NEXT); + } + nextWhenVisible() { + // FIXME TODO use `document.visibilityState` + // Don't call next when the page isn't visible + // or the carousel or its parent isn't visible + if (!document.hidden && isVisible(this._element)) { + this.next(); + } + } + prev() { + this._slide(ORDER_PREV); + } + pause() { + if (this._isSliding) { + triggerTransitionEnd(this._element); + } + this._clearInterval(); + } + cycle() { + this._clearInterval(); + this._updateInterval(); + this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); + } + _maybeEnableCycle() { + if (!this._config.ride) { + return; + } + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); + return; + } + this.cycle(); + } + to(index) { + const items = this._getItems(); + if (index > items.length - 1 || index < 0) { + return; + } + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); + return; + } + const activeIndex = this._getItemIndex(this._getActive()); + if (activeIndex === index) { + return; + } + const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; + this._slide(order, items[index]); + } + dispose() { + if (this._swipeHelper) { + this._swipeHelper.dispose(); + } + super.dispose(); } - if ($next.hasClass('active')) return (this.sliding = false) + // Private + _configAfterMerge(config) { + config.defaultInterval = config.interval; + return config; + } + _addEventListeners() { + if (this._config.keyboard) { + EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event)); + } + if (this._config.pause === 'hover') { + EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); + EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); + } + if (this._config.touch && Swipe.isSupported()) { + this._addTouchEventListeners(); + } + } + _addTouchEventListeners() { + for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { + EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault()); + } + const endCallBack = () => { + if (this._config.pause !== 'hover') { + return; + } - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return + // If it's a touch-enabled device, mouseenter/leave are fired as + // part of the mouse compatibility events on first tap - the carousel + // would stop cycling until user tapped out of it; + // here, we listen for touchend, explicitly pause the carousel + // (as if it's the second time we tap on it, mouseenter compat event + // is NOT fired) and after a timeout (to allow for mouse compatibility + // events to fire) we explicitly restart cycling - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') + this.pause(); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); + } + this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); + }; + const swipeConfig = { + leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), + rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), + endCallback: endCallBack + }; + this._swipeHelper = new Swipe(this._element, swipeConfig); + } + _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + const direction = KEY_TO_DIRECTION[event.key]; + if (direction) { + event.preventDefault(); + this._slide(this._directionToOrder(direction)); + } + } + _getItemIndex(element) { + return this._getItems().indexOf(element); + } + _setActiveIndicatorElement(index) { + if (!this._indicatorsElement) { + return; + } + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute('aria-current'); + const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); + if (newActiveIndicator) { + newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); + newActiveIndicator.setAttribute('aria-current', 'true'); + } + } + _updateInterval() { + const element = this._activeElement || this._getActive(); + if (!element) { + return; + } + const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); + this._config.interval = elementInterval || this._config.defaultInterval; + } + _slide(order, element = null) { + if (this._isSliding) { + return; + } + const activeElement = this._getActive(); + const isNext = order === ORDER_NEXT; + const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); + if (nextElement === activeElement) { + return; + } + const nextElementIndex = this._getItemIndex(nextElement); + const triggerEvent = eventName => { + return EventHandler.trigger(this._element, eventName, { + relatedTarget: nextElement, + direction: this._orderToDirection(order), + from: this._getItemIndex(activeElement), + to: nextElementIndex + }); + }; + const slideEvent = triggerEvent(EVENT_SLIDE); + if (slideEvent.defaultPrevented) { + return; + } + if (!activeElement || !nextElement) { + // Some weirdness is happening, so we bail + // TODO: change tests that use empty divs to avoid this check + return; + } + const isCycling = Boolean(this._interval); + this.pause(); + this._isSliding = true; + this._setActiveIndicatorElement(nextElementIndex); + this._activeElement = nextElement; + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + const completeCallBack = () => { + nextElement.classList.remove(directionalClassName, orderClassName); + nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); + this._isSliding = false; + triggerEvent(EVENT_SLID); + }; + this._queueCallback(completeCallBack, activeElement, this._isAnimated()); + if (isCycling) { + this.cycle(); + } + } + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_SLIDE); + } + _getActive() { + return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + } + _getItems() { + return SelectorEngine.find(SELECTOR_ITEM, this._element); + } + _clearInterval() { + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + } + _directionToOrder(direction) { + if (isRTL()) { + return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; + } + return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; + } + _orderToDirection(order) { + if (isRTL()) { + return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; } - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Carousel.getOrCreateInstance(this, config); + if (typeof config === 'number') { + data.to(config); + return; + } + if (typeof config === 'string') { + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } + }); } - - isCycling && this.cycle() - - return this } + /** + * Data API implementation + */ - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - Plugin.call($target, options) - + EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) { + const target = SelectorEngine.getElementFromSelector(this); + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { + return; + } + event.preventDefault(); + const carousel = Carousel.getOrCreateInstance(target); + const slideIndex = this.getAttribute('data-bs-slide-to'); if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) + carousel.to(slideIndex); + carousel._maybeEnableCycle(); + return; + } + if (Manipulator.getDataAttribute(this, 'slide') === 'next') { + carousel.next(); + carousel._maybeEnableCycle(); + return; + } + carousel.prev(); + carousel._maybeEnableCycle(); + }); + EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { + const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); + for (const carousel of carousels) { + Carousel.getOrCreateInstance(carousel); + } + }); + + /** + * jQuery + */ + + defineJQueryPlugin(Carousel); + + /** + * -------------------------------------------------------------------------- + * Bootstrap collapse.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$b = 'collapse'; + const DATA_KEY$7 = 'bs.collapse'; + const EVENT_KEY$7 = `.${DATA_KEY$7}`; + const DATA_API_KEY$4 = '.data-api'; + const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; + const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; + const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; + const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; + const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; + const CLASS_NAME_SHOW$7 = 'show'; + const CLASS_NAME_COLLAPSE = 'collapse'; + const CLASS_NAME_COLLAPSING = 'collapsing'; + const CLASS_NAME_COLLAPSED = 'collapsed'; + const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; + const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; + const WIDTH = 'width'; + const HEIGHT = 'height'; + const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; + const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; + const Default$a = { + parent: null, + toggle: true + }; + const DefaultType$a = { + parent: '(null|element)', + toggle: 'boolean' + }; + + /** + * Class definition + */ + + class Collapse extends BaseComponent { + constructor(element, config) { + super(element, config); + this._isTransitioning = false; + this._triggerArray = []; + const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); + for (const elem of toggleList) { + const selector = SelectorEngine.getSelectorFromElement(elem); + const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); + if (selector !== null && filterElement.length) { + this._triggerArray.push(elem); + } + } + this._initializeChildren(); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); + } + if (this._config.toggle) { + this.toggle(); + } } - e.preventDefault() - } - - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.3.1 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) + // Getters + static get Default() { + return Default$a; + } + static get DefaultType() { + return DefaultType$a; + } + static get NAME() { + return NAME$b; } - if (this.options.toggle) this.toggle() - } + // Public + toggle() { + if (this._isShown()) { + this.hide(); + } else { + this.show(); + } + } + show() { + if (this._isTransitioning || this._isShown()) { + return; + } + let activeChildren = []; - Collapse.VERSION = '3.3.1' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true, - trigger: '[data-toggle="collapse"]' - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return + // find active children + if (this._config.parent) { + activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { + toggle: false + })); + } + if (activeChildren.length && activeChildren[0]._isTransitioning) { + return; + } + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); + if (startEvent.defaultPrevented) { + return; + } + for (const activeInstance of activeChildren) { + activeInstance.hide(); + } + const dimension = this._getDimension(); + this._element.classList.remove(CLASS_NAME_COLLAPSE); + this._element.classList.add(CLASS_NAME_COLLAPSING); + this._element.style[dimension] = 0; + this._addAriaAndCollapsedClass(this._triggerArray, true); + this._isTransitioning = true; + const complete = () => { + this._isTransitioning = false; + this._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); + this._element.style[dimension] = ''; + EventHandler.trigger(this._element, EVENT_SHOWN$6); + }; + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + this._queueCallback(complete, this._element, true); + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } + hide() { + if (this._isTransitioning || !this._isShown()) { + return; + } + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); + if (startEvent.defaultPrevented) { + return; + } + const dimension = this._getDimension(); + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; + reflow(this._element); + this._element.classList.add(CLASS_NAME_COLLAPSING); + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); + for (const trigger of this._triggerArray) { + const element = SelectorEngine.getElementFromSelector(trigger); + if (element && !this._isShown(element)) { + this._addAriaAndCollapsedClass([trigger], false); + } + } + this._isTransitioning = true; + const complete = () => { + this._isTransitioning = false; + this._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSE); + EventHandler.trigger(this._element, EVENT_HIDDEN$6); + }; + this._element.style[dimension] = ''; + this._queueCallback(complete, this._element, true); + } + _isShown(element = this._element) { + return element.classList.contains(CLASS_NAME_SHOW$7); } - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) + // Private + _configAfterMerge(config) { + config.toggle = Boolean(config.toggle); // Coerce string values + config.parent = getElement(config.parent); + return config; + } + _getDimension() { + return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; + } + _initializeChildren() { + if (!this._config.parent) { + return; + } + const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); + for (const element of children) { + const selected = SelectorEngine.getElementFromSelector(element); + if (selected) { + this._addAriaAndCollapsedClass([element], this._isShown(selected)); + } + } + } + _getFirstLevelChildren(selector) { + const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); + // remove children if greater depth + return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); + } + _addAriaAndCollapsedClass(triggerArray, isOpen) { + if (!triggerArray.length) { + return; + } + for (const element of triggerArray) { + element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); + element.setAttribute('aria-expanded', isOpen); + } } - var dimension = this.dimension() + // Static + static jQueryInterface(config) { + const _config = {}; + if (typeof config === 'string' && /show|hide/.test(config)) { + _config.toggle = false; + } + return this.each(function () { + const data = Collapse.getOrCreateInstance(this, _config); + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } + }); + } + } - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) + /** + * Data API implementation + */ - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) + EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { + // preventDefault only for <a> elements (which change the URL) not inside the collapsible element + if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { + event.preventDefault(); + } + for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) { + Collapse.getOrCreateInstance(element, { + toggle: false + }).toggle(); + } + }); - this.transitioning = 1 + /** + * jQuery + */ - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') + defineJQueryPlugin(Collapse); + + /** + * -------------------------------------------------------------------------- + * Bootstrap dropdown.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$a = 'dropdown'; + const DATA_KEY$6 = 'bs.dropdown'; + const EVENT_KEY$6 = `.${DATA_KEY$6}`; + const DATA_API_KEY$3 = '.data-api'; + const ESCAPE_KEY$2 = 'Escape'; + const TAB_KEY$1 = 'Tab'; + const ARROW_UP_KEY$1 = 'ArrowUp'; + const ARROW_DOWN_KEY$1 = 'ArrowDown'; + const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button + + const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; + const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; + const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; + const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; + const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; + const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; + const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; + const CLASS_NAME_SHOW$6 = 'show'; + const CLASS_NAME_DROPUP = 'dropup'; + const CLASS_NAME_DROPEND = 'dropend'; + const CLASS_NAME_DROPSTART = 'dropstart'; + const CLASS_NAME_DROPUP_CENTER = 'dropup-center'; + const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'; + const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; + const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; + const SELECTOR_MENU = '.dropdown-menu'; + const SELECTOR_NAVBAR = '.navbar'; + const SELECTOR_NAVBAR_NAV = '.navbar-nav'; + const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; + const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; + const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; + const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; + const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; + const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; + const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; + const PLACEMENT_TOPCENTER = 'top'; + const PLACEMENT_BOTTOMCENTER = 'bottom'; + const Default$9 = { + autoClose: true, + boundary: 'clippingParents', + display: 'dynamic', + offset: [0, 2], + popperConfig: null, + reference: 'toggle' + }; + const DefaultType$9 = { + autoClose: '(boolean|string)', + boundary: '(string|element)', + display: 'string', + offset: '(array|string|function)', + popperConfig: '(null|object|function)', + reference: '(string|element|object)' + }; + + /** + * Class definition + */ + + class Dropdown extends BaseComponent { + constructor(element, config) { + super(element, config); + this._popper = null; + this._parent = this._element.parentNode; // dropdown wrapper + // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ + this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); + this._inNavbar = this._detectNavbar(); } - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') + // Getters + static get Default() { + return Default$9; + } + static get DefaultType() { + return DefaultType$9; + } + static get NAME() { + return NAME$a; } - if (!$.support.transition) return complete.call(this) + // Public + toggle() { + return this._isShown() ? this.hide() : this.show(); + } + show() { + if (isDisabled(this._element) || this._isShown()) { + return; + } + const relatedTarget = { + relatedTarget: this._element + }; + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); + if (showEvent.defaultPrevented) { + return; + } + this._createPopper(); - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } + // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, 'mouseover', noop); + } + } + this._element.focus(); + this._element.setAttribute('aria-expanded', true); + this._menu.classList.add(CLASS_NAME_SHOW$6); + this._element.classList.add(CLASS_NAME_SHOW$6); + EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); + } + hide() { + if (isDisabled(this._element) || !this._isShown()) { + return; + } + const relatedTarget = { + relatedTarget: this._element + }; + this._completeHide(relatedTarget); + } + dispose() { + if (this._popper) { + this._popper.destroy(); + } + super.dispose(); + } + update() { + this._inNavbar = this._detectNavbar(); + if (this._popper) { + this._popper.update(); + } + } - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && option == 'show') options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this }) - - Plugin.call($target, option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.1 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.1' - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus) + // Private + _completeHide(relatedTarget) { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); + if (hideEvent.defaultPrevented) { + return; } - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) + // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + if ('ontouchstart' in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } + } + if (this._popper) { + this._popper.destroy(); + } + this._menu.classList.remove(CLASS_NAME_SHOW$6); + this._element.classList.remove(CLASS_NAME_SHOW$6); + this._element.setAttribute('aria-expanded', 'false'); + Manipulator.removeDataAttribute(this._menu, 'popper'); + EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); + } + _getConfig(config) { + config = super._getConfig(config); + if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { + // Popper virtual elements require a getBoundingClientRect method + throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + } + return config; + } + _createPopper() { + if (typeof Popper__namespace === 'undefined') { + throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); + } + let referenceElement = this._element; + if (this._config.reference === 'parent') { + referenceElement = this._parent; + } else if (isElement(this._config.reference)) { + referenceElement = getElement(this._config.reference); + } else if (typeof this._config.reference === 'object') { + referenceElement = this._config.reference; + } + const popperConfig = this._getPopperConfig(); + this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig); + } + _isShown() { + return this._menu.classList.contains(CLASS_NAME_SHOW$6); + } + _getPlacement() { + const parentDropdown = this._parent; + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { + return PLACEMENT_TOPCENTER; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { + return PLACEMENT_BOTTOMCENTER; + } - if (e.isDefaultPrevented()) return + // We need to trim the value because custom properties can also include spaces + const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; + } + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + } + _detectNavbar() { + return this._element.closest(SELECTOR_NAVBAR) !== null; + } + _getOffset() { + const { + offset + } = this._config; + if (typeof offset === 'string') { + return offset.split(',').map(value => Number.parseInt(value, 10)); + } + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); + } + return offset; + } + _getPopperConfig() { + const defaultBsPopperConfig = { + placement: this._getPlacement(), + modifiers: [{ + name: 'preventOverflow', + options: { + boundary: this._config.boundary + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }] + }; - $this - .trigger('focus') - .attr('aria-expanded', 'true') + // Disable Popper if we have a static display or Dropdown is in Navbar + if (this._inNavbar || this._config.display === 'static') { + Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove + defaultBsPopperConfig.modifiers = [{ + name: 'applyStyles', + enabled: false + }]; + } + return { + ...defaultBsPopperConfig, + ...execute(this._config.popperConfig, [defaultBsPopperConfig]) + }; + } + _selectMenuItem({ + key, + target + }) { + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element)); + if (!items.length) { + return; + } - $parent - .toggleClass('open') - .trigger('shown.bs.dropdown', relatedTarget) + // if target isn't included in items (e.g. when expanding the dropdown) + // allow cycling to get the last item in case key equals ARROW_UP_KEY + getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); } - return false - } - - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return - - var $this = $(this) - - e.preventDefault() - e.stopPropagation() - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - if ((!isActive && e.which != 27) || (isActive && e.which == 27)) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Dropdown.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); } + static clearMenus(event) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) { + return; + } + const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); + for (const toggle of openToggles) { + const context = Dropdown.getInstance(toggle); + if (!context || context._config.autoClose === false) { + continue; + } + const composedPath = event.composedPath(); + const isMenuTarget = composedPath.includes(context._menu); + if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { + continue; + } - var desc = ' li:not(.divider):visible a' - var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc) - - if (!$items.length) return - - var index = $items.index(e.target) - - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 - - $items.eq(index).trigger('focus') - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget) - }) - } - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu + if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { + continue; + } + const relatedTarget = { + relatedTarget: context._element + }; + if (event.type === 'click') { + relatedTarget.clickEvent = event; + } + context._completeHide(relatedTarget); + } } + static dataApiKeydownHandler(event) { + // If not an UP | DOWN | ESCAPE key => not a dropdown command + // If input/textarea && if key is other than ESCAPE => not a dropdown command - var $parent = selector && $(selector) + const isInput = /input|textarea/i.test(event.target.tagName); + const isEscapeEvent = event.key === ESCAPE_KEY$2; + const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); + if (!isUpOrDownEvent && !isEscapeEvent) { + return; + } + if (isInput && !isEscapeEvent) { + return; + } + event.preventDefault(); - return $parent && $parent.length ? $parent : $this.parent() - } - - - // DROPDOWN PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') - - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.dropdown - - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown - - - // DROPDOWN NO CONFLICT - // ==================== - - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } - - - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== - - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: modal.js v3.3.1 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$backdrop = - this.isShown = null - this.scrollbarWidth = 0 - - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) + // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ + const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); + const instance = Dropdown.getOrCreateInstance(getToggleButton); + if (isUpOrDownEvent) { + event.stopPropagation(); + instance.show(); + instance._selectMenuItem(event); + return; + } + if (instance._isShown()) { + // else is escape and we check if it is shown + event.stopPropagation(); + instance.hide(); + getToggleButton.focus(); + } } } - Modal.VERSION = '3.3.1' + /** + * Data API implementation + */ - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 + EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); + EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); + EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); + EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); + EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { + event.preventDefault(); + Dropdown.getOrCreateInstance(this).toggle(); + }); - Modal.DEFAULTS = { + /** + * jQuery + */ + + defineJQueryPlugin(Dropdown); + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/backdrop.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$9 = 'backdrop'; + const CLASS_NAME_FADE$4 = 'fade'; + const CLASS_NAME_SHOW$5 = 'show'; + const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; + const Default$8 = { + className: 'modal-backdrop', + clickCallback: null, + isAnimated: false, + isVisible: true, + // if false, we use the backdrop helper without adding any element to the dom + rootElement: 'body' // give the choice to place backdrop under different elements + }; + + const DefaultType$8 = { + className: 'string', + clickCallback: '(function|null)', + isAnimated: 'boolean', + isVisible: 'boolean', + rootElement: '(element|string)' + }; + + /** + * Class definition + */ + + class Backdrop extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isAppended = false; + this._element = null; + } + + // Getters + static get Default() { + return Default$8; + } + static get DefaultType() { + return DefaultType$8; + } + static get NAME() { + return NAME$9; + } + + // Public + show(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + this._append(); + const element = this._getElement(); + if (this._config.isAnimated) { + reflow(element); + } + element.classList.add(CLASS_NAME_SHOW$5); + this._emulateAnimation(() => { + execute(callback); + }); + } + hide(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + this._getElement().classList.remove(CLASS_NAME_SHOW$5); + this._emulateAnimation(() => { + this.dispose(); + execute(callback); + }); + } + dispose() { + if (!this._isAppended) { + return; + } + EventHandler.off(this._element, EVENT_MOUSEDOWN); + this._element.remove(); + this._isAppended = false; + } + + // Private + _getElement() { + if (!this._element) { + const backdrop = document.createElement('div'); + backdrop.className = this._config.className; + if (this._config.isAnimated) { + backdrop.classList.add(CLASS_NAME_FADE$4); + } + this._element = backdrop; + } + return this._element; + } + _configAfterMerge(config) { + // use getElement() with the default "body" to get a fresh Element on each instantiation + config.rootElement = getElement(config.rootElement); + return config; + } + _append() { + if (this._isAppended) { + return; + } + const element = this._getElement(); + this._config.rootElement.append(element); + EventHandler.on(element, EVENT_MOUSEDOWN, () => { + execute(this._config.clickCallback); + }); + this._isAppended = true; + } + _emulateAnimation(callback) { + executeAfterTransition(callback, this._getElement(), this._config.isAnimated); + } + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/focustrap.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$8 = 'focustrap'; + const DATA_KEY$5 = 'bs.focustrap'; + const EVENT_KEY$5 = `.${DATA_KEY$5}`; + const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; + const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; + const TAB_KEY = 'Tab'; + const TAB_NAV_FORWARD = 'forward'; + const TAB_NAV_BACKWARD = 'backward'; + const Default$7 = { + autofocus: true, + trapElement: null // The element to trap focus inside of + }; + + const DefaultType$7 = { + autofocus: 'boolean', + trapElement: 'element' + }; + + /** + * Class definition + */ + + class FocusTrap extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isActive = false; + this._lastTabNavDirection = null; + } + + // Getters + static get Default() { + return Default$7; + } + static get DefaultType() { + return DefaultType$7; + } + static get NAME() { + return NAME$8; + } + + // Public + activate() { + if (this._isActive) { + return; + } + if (this._config.autofocus) { + this._config.trapElement.focus(); + } + EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop + EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event)); + EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event)); + this._isActive = true; + } + deactivate() { + if (!this._isActive) { + return; + } + this._isActive = false; + EventHandler.off(document, EVENT_KEY$5); + } + + // Private + _handleFocusin(event) { + const { + trapElement + } = this._config; + if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { + return; + } + const elements = SelectorEngine.focusableChildren(trapElement); + if (elements.length === 0) { + trapElement.focus(); + } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { + elements[elements.length - 1].focus(); + } else { + elements[0].focus(); + } + } + _handleKeydown(event) { + if (event.key !== TAB_KEY) { + return; + } + this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; + } + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/scrollBar.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; + const SELECTOR_STICKY_CONTENT = '.sticky-top'; + const PROPERTY_PADDING = 'padding-right'; + const PROPERTY_MARGIN = 'margin-right'; + + /** + * Class definition + */ + + class ScrollBarHelper { + constructor() { + this._element = document.body; + } + + // Public + getWidth() { + // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); + } + hide() { + const width = this.getWidth(); + this._disableOverFlow(); + // give padding to element to balance the hidden scrollbar width + this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); + // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth + this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width); + this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width); + } + reset() { + this._resetElementAttributes(this._element, 'overflow'); + this._resetElementAttributes(this._element, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); + } + isOverflowing() { + return this.getWidth() > 0; + } + + // Private + _disableOverFlow() { + this._saveInitialAttribute(this._element, 'overflow'); + this._element.style.overflow = 'hidden'; + } + _setElementAttributes(selector, styleProperty, callback) { + const scrollbarWidth = this.getWidth(); + const manipulationCallBack = element => { + if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { + return; + } + this._saveInitialAttribute(element, styleProperty); + const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); + element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); + }; + this._applyManipulationCallback(selector, manipulationCallBack); + } + _saveInitialAttribute(element, styleProperty) { + const actualValue = element.style.getPropertyValue(styleProperty); + if (actualValue) { + Manipulator.setDataAttribute(element, styleProperty, actualValue); + } + } + _resetElementAttributes(selector, styleProperty) { + const manipulationCallBack = element => { + const value = Manipulator.getDataAttribute(element, styleProperty); + // We only want to remove the property if the value is `null`; the value can also be zero + if (value === null) { + element.style.removeProperty(styleProperty); + return; + } + Manipulator.removeDataAttribute(element, styleProperty); + element.style.setProperty(styleProperty, value); + }; + this._applyManipulationCallback(selector, manipulationCallBack); + } + _applyManipulationCallback(selector, callBack) { + if (isElement(selector)) { + callBack(selector); + return; + } + for (const sel of SelectorEngine.find(selector, this._element)) { + callBack(sel); + } + } + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap modal.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$7 = 'modal'; + const DATA_KEY$4 = 'bs.modal'; + const EVENT_KEY$4 = `.${DATA_KEY$4}`; + const DATA_API_KEY$2 = '.data-api'; + const ESCAPE_KEY$1 = 'Escape'; + const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; + const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; + const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; + const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; + const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; + const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; + const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`; + const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; + const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; + const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; + const CLASS_NAME_OPEN = 'modal-open'; + const CLASS_NAME_FADE$3 = 'fade'; + const CLASS_NAME_SHOW$4 = 'show'; + const CLASS_NAME_STATIC = 'modal-static'; + const OPEN_SELECTOR$1 = '.modal.show'; + const SELECTOR_DIALOG = '.modal-dialog'; + const SELECTOR_MODAL_BODY = '.modal-body'; + const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; + const Default$6 = { + backdrop: true, + focus: true, + keyboard: true + }; + const DefaultType$6 = { + backdrop: '(boolean|string)', + focus: 'boolean', + keyboard: 'boolean' + }; + + /** + * Class definition + */ + + class Modal extends BaseComponent { + constructor(element, config) { + super(element, config); + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + this._isShown = false; + this._isTransitioning = false; + this._scrollBar = new ScrollBarHelper(); + this._addEventListeners(); + } + + // Getters + static get Default() { + return Default$6; + } + static get DefaultType() { + return DefaultType$6; + } + static get NAME() { + return NAME$7; + } + + // Public + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + show(relatedTarget) { + if (this._isShown || this._isTransitioning) { + return; + } + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { + relatedTarget + }); + if (showEvent.defaultPrevented) { + return; + } + this._isShown = true; + this._isTransitioning = true; + this._scrollBar.hide(); + document.body.classList.add(CLASS_NAME_OPEN); + this._adjustDialog(); + this._backdrop.show(() => this._showElement(relatedTarget)); + } + hide() { + if (!this._isShown || this._isTransitioning) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); + if (hideEvent.defaultPrevented) { + return; + } + this._isShown = false; + this._isTransitioning = true; + this._focustrap.deactivate(); + this._element.classList.remove(CLASS_NAME_SHOW$4); + this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); + } + dispose() { + EventHandler.off(window, EVENT_KEY$4); + EventHandler.off(this._dialog, EVENT_KEY$4); + this._backdrop.dispose(); + this._focustrap.deactivate(); + super.dispose(); + } + handleUpdate() { + this._adjustDialog(); + } + + // Private + _initializeBackDrop() { + return new Backdrop({ + isVisible: Boolean(this._config.backdrop), + // 'static' option will be translated to true, and booleans will keep their value, + isAnimated: this._isAnimated() + }); + } + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + _showElement(relatedTarget) { + // try to append dynamic modal + if (!document.body.contains(this._element)) { + document.body.append(this._element); + } + this._element.style.display = 'block'; + this._element.removeAttribute('aria-hidden'); + this._element.setAttribute('aria-modal', true); + this._element.setAttribute('role', 'dialog'); + this._element.scrollTop = 0; + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + if (modalBody) { + modalBody.scrollTop = 0; + } + reflow(this._element); + this._element.classList.add(CLASS_NAME_SHOW$4); + const transitionComplete = () => { + if (this._config.focus) { + this._focustrap.activate(); + } + this._isTransitioning = false; + EventHandler.trigger(this._element, EVENT_SHOWN$4, { + relatedTarget + }); + }; + this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); + } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { + if (event.key !== ESCAPE_KEY$1) { + return; + } + if (this._config.keyboard) { + this.hide(); + return; + } + this._triggerBackdropTransition(); + }); + EventHandler.on(window, EVENT_RESIZE$1, () => { + if (this._isShown && !this._isTransitioning) { + this._adjustDialog(); + } + }); + EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { + // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks + EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => { + if (this._element !== event.target || this._element !== event2.target) { + return; + } + if (this._config.backdrop === 'static') { + this._triggerBackdropTransition(); + return; + } + if (this._config.backdrop) { + this.hide(); + } + }); + }); + } + _hideModal() { + this._element.style.display = 'none'; + this._element.setAttribute('aria-hidden', true); + this._element.removeAttribute('aria-modal'); + this._element.removeAttribute('role'); + this._isTransitioning = false; + this._backdrop.hide(() => { + document.body.classList.remove(CLASS_NAME_OPEN); + this._resetAdjustments(); + this._scrollBar.reset(); + EventHandler.trigger(this._element, EVENT_HIDDEN$4); + }); + } + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_FADE$3); + } + _triggerBackdropTransition() { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); + if (hideEvent.defaultPrevented) { + return; + } + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const initialOverflowY = this._element.style.overflowY; + // return if the following background transition hasn't yet completed + if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) { + return; + } + if (!isModalOverflowing) { + this._element.style.overflowY = 'hidden'; + } + this._element.classList.add(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.classList.remove(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.style.overflowY = initialOverflowY; + }, this._dialog); + }, this._dialog); + this._element.focus(); + } + + /** + * The following methods are used to handle overflowing modals + */ + + _adjustDialog() { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const scrollbarWidth = this._scrollBar.getWidth(); + const isBodyOverflowing = scrollbarWidth > 0; + if (isBodyOverflowing && !isModalOverflowing) { + const property = isRTL() ? 'paddingLeft' : 'paddingRight'; + this._element.style[property] = `${scrollbarWidth}px`; + } + if (!isBodyOverflowing && isModalOverflowing) { + const property = isRTL() ? 'paddingRight' : 'paddingLeft'; + this._element.style[property] = `${scrollbarWidth}px`; + } + } + _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + } + + // Static + static jQueryInterface(config, relatedTarget) { + return this.each(function () { + const data = Modal.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](relatedTarget); + }); + } + } + + /** + * Data API implementation + */ + + EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { + const target = SelectorEngine.getElementFromSelector(this); + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + EventHandler.one(target, EVENT_SHOW$4, showEvent => { + if (showEvent.defaultPrevented) { + // only register focus restorer if modal will actually get shown + return; + } + EventHandler.one(target, EVENT_HIDDEN$4, () => { + if (isVisible(this)) { + this.focus(); + } + }); + }); + + // avoid conflict when clicking modal toggler while another one is open + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); + if (alreadyOpen) { + Modal.getInstance(alreadyOpen).hide(); + } + const data = Modal.getOrCreateInstance(target); + data.toggle(this); + }); + enableDismissTrigger(Modal); + + /** + * jQuery + */ + + defineJQueryPlugin(Modal); + + /** + * -------------------------------------------------------------------------- + * Bootstrap offcanvas.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$6 = 'offcanvas'; + const DATA_KEY$3 = 'bs.offcanvas'; + const EVENT_KEY$3 = `.${DATA_KEY$3}`; + const DATA_API_KEY$1 = '.data-api'; + const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; + const ESCAPE_KEY = 'Escape'; + const CLASS_NAME_SHOW$3 = 'show'; + const CLASS_NAME_SHOWING$1 = 'showing'; + const CLASS_NAME_HIDING = 'hiding'; + const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; + const OPEN_SELECTOR = '.offcanvas.show'; + const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; + const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; + const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; + const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; + const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; + const EVENT_RESIZE = `resize${EVENT_KEY$3}`; + const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; + const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; + const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; + const Default$5 = { backdrop: true, keyboard: true, - show: true - } + scroll: false + }; + const DefaultType$5 = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + scroll: 'boolean' + }; - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } + /** + * Class definition + */ - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) + class Offcanvas extends BaseComponent { + constructor(element, config) { + super(element, config); + this._isShown = false; + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + this._addEventListeners(); + } - this.$element.trigger(e) + // Getters + static get Default() { + return Default$5; + } + static get DefaultType() { + return DefaultType$5; + } + static get NAME() { + return NAME$6; + } - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') - - this.escape() - this.resize() - - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position + // Public + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + show(relatedTarget) { + if (this._isShown) { + return; } - - that.$element - .show() - .scrollTop(0) - - if (that.options.backdrop) that.adjustBackdrop() - that.adjustDialog() - - if (transition) { - that.$element[0].offsetWidth // force reflow + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + relatedTarget + }); + if (showEvent.defaultPrevented) { + return; } - - that.$element - .addClass('in') - .attr('aria-hidden', false) - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$element.find('.modal-dialog') // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(document).off('focusin.bs.modal') - - this.$element - .removeClass('in') - .attr('aria-hidden', true) - .off('click.dismiss.bs.modal') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { - this.$element.trigger('focus') + this._isShown = true; + this._backdrop.show(); + if (!this._config.scroll) { + new ScrollBarHelper().hide(); + } + this._element.setAttribute('aria-modal', true); + this._element.setAttribute('role', 'dialog'); + this._element.classList.add(CLASS_NAME_SHOWING$1); + const completeCallBack = () => { + if (!this._config.scroll || this._config.backdrop) { + this._focustrap.activate(); } - }, this)) - } - - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') + this._element.classList.add(CLASS_NAME_SHOW$3); + this._element.classList.remove(CLASS_NAME_SHOWING$1); + EventHandler.trigger(this._element, EVENT_SHOWN$3, { + relatedTarget + }); + }; + this._queueCallback(completeCallBack, this._element, true); } - } - - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } - - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } - - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') - .prependTo(this.$element) - .on('click.dismiss.bs.modal', $.proxy(function (e) { - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus.call(this.$element[0]) - : this.hide.call(this) - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() + hide() { + if (!this._isShown) { + return; } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); + if (hideEvent.defaultPrevented) { + return; + } + this._focustrap.deactivate(); + this._element.blur(); + this._isShown = false; + this._element.classList.add(CLASS_NAME_HIDING); + this._backdrop.hide(); + const completeCallback = () => { + this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); + this._element.removeAttribute('aria-modal'); + this._element.removeAttribute('role'); + if (!this._config.scroll) { + new ScrollBarHelper().reset(); + } + EventHandler.trigger(this._element, EVENT_HIDDEN$3); + }; + this._queueCallback(completeCallback, this._element, true); + } + dispose() { + this._backdrop.dispose(); + this._focustrap.deactivate(); + super.dispose(); + } - } else if (callback) { - callback() + // Private + _initializeBackDrop() { + const clickCallback = () => { + if (this._config.backdrop === 'static') { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + this.hide(); + }; + + // 'static' option will be translated to true, and booleans will keep their value + const isVisible = Boolean(this._config.backdrop); + return new Backdrop({ + className: CLASS_NAME_BACKDROP, + isVisible, + isAnimated: true, + rootElement: this._element.parentNode, + clickCallback: isVisible ? clickCallback : null + }); + } + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { + if (event.key !== ESCAPE_KEY) { + return; + } + if (this._config.keyboard) { + this.hide(); + return; + } + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + }); + } + + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Offcanvas.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + }); } } - // these following methods are used to handle overflowing modals + /** + * Data API implementation + */ - Modal.prototype.handleUpdate = function () { - if (this.options.backdrop) this.adjustBackdrop() - this.adjustDialog() + EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { + const target = SelectorEngine.getElementFromSelector(this); + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + EventHandler.one(target, EVENT_HIDDEN$3, () => { + // focus on trigger when it is closed + if (isVisible(this)) { + this.focus(); + } + }); + + // avoid conflict when clicking a toggler of an offcanvas, while another is open + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); + if (alreadyOpen && alreadyOpen !== target) { + Offcanvas.getInstance(alreadyOpen).hide(); + } + const data = Offcanvas.getOrCreateInstance(target); + data.toggle(this); + }); + EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { + Offcanvas.getOrCreateInstance(selector).show(); + } + }); + EventHandler.on(window, EVENT_RESIZE, () => { + for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { + if (getComputedStyle(element).position !== 'fixed') { + Offcanvas.getOrCreateInstance(element).hide(); + } + } + }); + enableDismissTrigger(Offcanvas); + + /** + * jQuery + */ + + defineJQueryPlugin(Offcanvas); + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/sanitizer.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + // js-docs-start allow-list + const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; + const DefaultAllowlist = { + // Global attributes allowed on any supplied element below. + '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], + a: ['target', 'href', 'title', 'rel'], + area: [], + b: [], + br: [], + col: [], + code: [], + div: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] + }; + // js-docs-end allow-list + + const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); + + /** + * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation + * contexts. + * + * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38 + */ + // eslint-disable-next-line unicorn/better-regex + const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i; + const allowedAttribute = (attribute, allowedAttributeList) => { + const attributeName = attribute.nodeName.toLowerCase(); + if (allowedAttributeList.includes(attributeName)) { + if (uriAttributes.has(attributeName)) { + return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)); + } + return true; + } + + // Check if a regular expression validates the attribute. + return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); + }; + function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { + if (!unsafeHtml.length) { + return unsafeHtml; + } + if (sanitizeFunction && typeof sanitizeFunction === 'function') { + return sanitizeFunction(unsafeHtml); + } + const domParser = new window.DOMParser(); + const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); + const elements = [].concat(...createdDocument.body.querySelectorAll('*')); + for (const element of elements) { + const elementName = element.nodeName.toLowerCase(); + if (!Object.keys(allowList).includes(elementName)) { + element.remove(); + continue; + } + const attributeList = [].concat(...element.attributes); + const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []); + for (const attribute of attributeList) { + if (!allowedAttribute(attribute, allowedAttributes)) { + element.removeAttribute(attribute.nodeName); + } + } + } + return createdDocument.body.innerHTML; } - Modal.prototype.adjustBackdrop = function () { - this.$backdrop - .css('height', 0) - .css('height', this.$element[0].scrollHeight) - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight - this.scrollbarWidth = this.measureScrollbar() - } - - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } - - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', '') - } - - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } + /** + * -------------------------------------------------------------------------- + * Bootstrap util/template-factory.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - // MODAL PLUGIN DEFINITION - // ======================= + /** + * Constants + */ - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tooltip.js v3.3.1 - * http://getbootstrap.com/javascript/#tooltip - * Inspired by the original jQuery.tipsy by Jason Frame - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TOOLTIP PUBLIC CLASS DEFINITION - // =============================== - - var Tooltip = function (element, options) { - this.type = - this.options = - this.enabled = - this.timeout = - this.hoverState = - this.$element = null - - this.init('tooltip', element, options) - } - - Tooltip.VERSION = '3.3.1' - - Tooltip.TRANSITION_DURATION = 150 - - Tooltip.DEFAULTS = { - animation: true, - placement: 'top', - selector: false, - template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', - trigger: 'hover focus', - title: '', - delay: 0, + const NAME$5 = 'TemplateFactory'; + const Default$4 = { + allowList: DefaultAllowlist, + content: {}, + // { selector : text , selector2 : text2 , } + extraClass: '', html: false, + sanitize: true, + sanitizeFn: null, + template: '<div></div>' + }; + const DefaultType$4 = { + allowList: 'object', + content: 'object', + extraClass: '(string|function)', + html: 'boolean', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + template: 'string' + }; + const DefaultContentType = { + entry: '(string|element|function|null)', + selector: '(string|element)' + }; + + /** + * Class definition + */ + + class TemplateFactory extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + } + + // Getters + static get Default() { + return Default$4; + } + static get DefaultType() { + return DefaultType$4; + } + static get NAME() { + return NAME$5; + } + + // Public + getContent() { + return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); + } + hasContent() { + return this.getContent().length > 0; + } + changeContent(content) { + this._checkContent(content); + this._config.content = { + ...this._config.content, + ...content + }; + return this; + } + toHtml() { + const templateWrapper = document.createElement('div'); + templateWrapper.innerHTML = this._maybeSanitize(this._config.template); + for (const [selector, text] of Object.entries(this._config.content)) { + this._setContent(templateWrapper, text, selector); + } + const template = templateWrapper.children[0]; + const extraClass = this._resolvePossibleFunction(this._config.extraClass); + if (extraClass) { + template.classList.add(...extraClass.split(' ')); + } + return template; + } + + // Private + _typeCheckConfig(config) { + super._typeCheckConfig(config); + this._checkContent(config.content); + } + _checkContent(arg) { + for (const [selector, content] of Object.entries(arg)) { + super._typeCheckConfig({ + selector, + entry: content + }, DefaultContentType); + } + } + _setContent(template, content, selector) { + const templateElement = SelectorEngine.findOne(selector, template); + if (!templateElement) { + return; + } + content = this._resolvePossibleFunction(content); + if (!content) { + templateElement.remove(); + return; + } + if (isElement(content)) { + this._putElementInTemplate(getElement(content), templateElement); + return; + } + if (this._config.html) { + templateElement.innerHTML = this._maybeSanitize(content); + return; + } + templateElement.textContent = content; + } + _maybeSanitize(arg) { + return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; + } + _resolvePossibleFunction(arg) { + return execute(arg, [this]); + } + _putElementInTemplate(element, templateElement) { + if (this._config.html) { + templateElement.innerHTML = ''; + templateElement.append(element); + return; + } + templateElement.textContent = element.textContent; + } + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap tooltip.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$4 = 'tooltip'; + const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); + const CLASS_NAME_FADE$2 = 'fade'; + const CLASS_NAME_MODAL = 'modal'; + const CLASS_NAME_SHOW$2 = 'show'; + const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; + const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; + const EVENT_MODAL_HIDE = 'hide.bs.modal'; + const TRIGGER_HOVER = 'hover'; + const TRIGGER_FOCUS = 'focus'; + const TRIGGER_CLICK = 'click'; + const TRIGGER_MANUAL = 'manual'; + const EVENT_HIDE$2 = 'hide'; + const EVENT_HIDDEN$2 = 'hidden'; + const EVENT_SHOW$2 = 'show'; + const EVENT_SHOWN$2 = 'shown'; + const EVENT_INSERTED = 'inserted'; + const EVENT_CLICK$1 = 'click'; + const EVENT_FOCUSIN$1 = 'focusin'; + const EVENT_FOCUSOUT$1 = 'focusout'; + const EVENT_MOUSEENTER = 'mouseenter'; + const EVENT_MOUSELEAVE = 'mouseleave'; + const AttachmentMap = { + AUTO: 'auto', + TOP: 'top', + RIGHT: isRTL() ? 'left' : 'right', + BOTTOM: 'bottom', + LEFT: isRTL() ? 'right' : 'left' + }; + const Default$3 = { + allowList: DefaultAllowlist, + animation: true, + boundary: 'clippingParents', container: false, - viewport: { - selector: 'body', - padding: 0 - } - } + customClass: '', + delay: 0, + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + html: false, + offset: [0, 6], + placement: 'top', + popperConfig: null, + sanitize: true, + sanitizeFn: null, + selector: false, + template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>', + title: '', + trigger: 'hover focus' + }; + const DefaultType$3 = { + allowList: 'object', + animation: 'boolean', + boundary: '(string|element)', + container: '(string|element|boolean)', + customClass: '(string|function)', + delay: '(number|object)', + fallbackPlacements: 'array', + html: 'boolean', + offset: '(array|string|function)', + placement: '(string|function)', + popperConfig: '(null|object|function)', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + selector: '(string|boolean)', + template: 'string', + title: '(string|element|function)', + trigger: 'string' + }; - Tooltip.prototype.init = function (type, element, options) { - this.enabled = true - this.type = type - this.$element = $(element) - this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport) + /** + * Class definition + */ - var triggers = this.options.trigger.split(' ') + class Tooltip extends BaseComponent { + constructor(element, config) { + if (typeof Popper__namespace === 'undefined') { + throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); + } + super(element, config); - for (var i = triggers.length; i--;) { - var trigger = triggers[i] + // Private + this._isEnabled = true; + this._timeout = 0; + this._isHovered = null; + this._activeTrigger = {}; + this._popper = null; + this._templateFactory = null; + this._newContent = null; - if (trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (trigger != 'manual') { - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' - - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) + // Protected + this.tip = null; + this._setListeners(); + if (!this._config.selector) { + this._fixTitle(); } } - this.options.selector ? - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : - this.fixTitle() - } + // Getters + static get Default() { + return Default$3; + } + static get DefaultType() { + return DefaultType$3; + } + static get NAME() { + return NAME$4; + } - Tooltip.prototype.getDefaults = function () { - return Tooltip.DEFAULTS - } + // Public + enable() { + this._isEnabled = true; + } + disable() { + this._isEnabled = false; + } + toggleEnabled() { + this._isEnabled = !this._isEnabled; + } + toggle() { + if (!this._isEnabled) { + return; + } + this._activeTrigger.click = !this._activeTrigger.click; + if (this._isShown()) { + this._leave(); + return; + } + this._enter(); + } + dispose() { + clearTimeout(this._timeout); + EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); + if (this._element.getAttribute('data-bs-original-title')) { + this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title')); + } + this._disposePopper(); + super.dispose(); + } + show() { + if (this._element.style.display === 'none') { + throw new Error('Please use show on visible elements'); + } + if (!(this._isWithContent() && this._isEnabled)) { + return; + } + const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); + const shadowRoot = findShadowRoot(this._element); + const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } - Tooltip.prototype.getOptions = function (options) { - options = $.extend({}, this.getDefaults(), this.$element.data(), options) + // TODO: v6 remove this or make it optional + this._disposePopper(); + const tip = this._getTipElement(); + this._element.setAttribute('aria-describedby', tip.getAttribute('id')); + const { + container + } = this._config; + if (!this._element.ownerDocument.documentElement.contains(this.tip)) { + container.append(tip); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); + } + this._popper = this._createPopper(tip); + tip.classList.add(CLASS_NAME_SHOW$2); - if (options.delay && typeof options.delay == 'number') { - options.delay = { - show: options.delay, - hide: options.delay + // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + if ('ontouchstart' in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, 'mouseover', noop); + } + } + const complete = () => { + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); + if (this._isHovered === false) { + this._leave(); + } + this._isHovered = false; + }; + this._queueCallback(complete, this.tip, this._isAnimated()); + } + hide() { + if (!this._isShown()) { + return; + } + const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); + if (hideEvent.defaultPrevented) { + return; + } + const tip = this._getTipElement(); + tip.classList.remove(CLASS_NAME_SHOW$2); + + // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + if ('ontouchstart' in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, 'mouseover', noop); + } + } + this._activeTrigger[TRIGGER_CLICK] = false; + this._activeTrigger[TRIGGER_FOCUS] = false; + this._activeTrigger[TRIGGER_HOVER] = false; + this._isHovered = null; // it is a trick to support manual triggering + + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } + if (!this._isHovered) { + this._disposePopper(); + } + this._element.removeAttribute('aria-describedby'); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); + }; + this._queueCallback(complete, this.tip, this._isAnimated()); + } + update() { + if (this._popper) { + this._popper.update(); } } - return options - } - - Tooltip.prototype.getDelegateOptions = function () { - var options = {} - var defaults = this.getDefaults() - - this._options && $.each(this._options, function (key, value) { - if (defaults[key] != value) options[key] = value - }) - - return options - } - - Tooltip.prototype.enter = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (self && self.$tip && self.$tip.is(':visible')) { - self.hoverState = 'in' - return + // Protected + _isWithContent() { + return Boolean(this._getTitle()); } - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - clearTimeout(self.timeout) - - self.hoverState = 'in' - - if (!self.options.delay || !self.options.delay.show) return self.show() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'in') self.show() - }, self.options.delay.show) - } - - Tooltip.prototype.leave = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - clearTimeout(self.timeout) - - self.hoverState = 'out' - - if (!self.options.delay || !self.options.delay.hide) return self.hide() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'out') self.hide() - }, self.options.delay.hide) - } - - Tooltip.prototype.show = function () { - var e = $.Event('show.bs.' + this.type) - - if (this.hasContent() && this.enabled) { - this.$element.trigger(e) - - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) - if (e.isDefaultPrevented() || !inDom) return - var that = this - - var $tip = this.tip() - - var tipId = this.getUID(this.type) - - this.setContent() - $tip.attr('id', tipId) - this.$element.attr('aria-describedby', tipId) - - if (this.options.animation) $tip.addClass('fade') - - var placement = typeof this.options.placement == 'function' ? - this.options.placement.call(this, $tip[0], this.$element[0]) : - this.options.placement - - var autoToken = /\s?auto?\s?/i - var autoPlace = autoToken.test(placement) - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' - - $tip - .detach() - .css({ top: 0, left: 0, display: 'block' }) - .addClass(placement) - .data('bs.' + this.type, this) - - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) - - var pos = this.getPosition() - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (autoPlace) { - var orgPlacement = placement - var $container = this.options.container ? $(this.options.container) : this.$element.parent() - var containerDim = this.getPosition($container) - - placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' : - placement - - $tip - .removeClass(orgPlacement) - .addClass(placement) + _getTipElement() { + if (!this.tip) { + this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); } + return this.tip; + } + _createTipElement(content) { + const tip = this._getTemplateFactory(content).toHtml(); - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) - - this.applyPlacement(calculatedOffset, placement) - - var complete = function () { - var prevHoverState = that.hoverState - that.$element.trigger('shown.bs.' + that.type) - that.hoverState = null - - if (prevHoverState == 'out') that.leave(that) + // TODO: remove this check in v6 + if (!tip) { + return null; } - - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - } - } - - Tooltip.prototype.applyPlacement = function (offset, placement) { - var $tip = this.tip() - var width = $tip[0].offsetWidth - var height = $tip[0].offsetHeight - - // manually read margins because getBoundingClientRect includes difference - var marginTop = parseInt($tip.css('margin-top'), 10) - var marginLeft = parseInt($tip.css('margin-left'), 10) - - // we must check for NaN for ie 8/9 - if (isNaN(marginTop)) marginTop = 0 - if (isNaN(marginLeft)) marginLeft = 0 - - offset.top = offset.top + marginTop - offset.left = offset.left + marginLeft - - // $.fn.offset doesn't round pixel values - // so we use setOffset directly with our own function B-0 - $.offset.setOffset($tip[0], $.extend({ - using: function (props) { - $tip.css({ - top: Math.round(props.top), - left: Math.round(props.left) - }) + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); + // TODO: v6 the following can be achieved with CSS only + tip.classList.add(`bs-${this.constructor.NAME}-auto`); + const tipId = getUID(this.constructor.NAME).toString(); + tip.setAttribute('id', tipId); + if (this._isAnimated()) { + tip.classList.add(CLASS_NAME_FADE$2); } - }, offset), 0) - - $tip.addClass('in') - - // check to see if placing tip in new offset caused the tip to resize itself - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (placement == 'top' && actualHeight != height) { - offset.top = offset.top + height - actualHeight + return tip; } - - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) - - if (delta.left) offset.left += delta.left - else offset.top += delta.top - - var isVertical = /top|bottom/.test(placement) - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' - - $tip.offset(offset) - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) - } - - Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) { - this.arrow() - .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') - .css(isHorizontal ? 'top' : 'left', '') - } - - Tooltip.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) - $tip.removeClass('fade in top bottom left right') - } - - Tooltip.prototype.hide = function (callback) { - var that = this - var $tip = this.tip() - var e = $.Event('hide.bs.' + this.type) - - function complete() { - if (that.hoverState != 'in') $tip.detach() - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) - callback && callback() - } - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - $tip.removeClass('in') - - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - - this.hoverState = null - - return this - } - - Tooltip.prototype.fixTitle = function () { - var $e = this.$element - if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') - } - } - - Tooltip.prototype.hasContent = function () { - return this.getTitle() - } - - Tooltip.prototype.getPosition = function ($element) { - $element = $element || this.$element - - var el = $element[0] - var isBody = el.tagName == 'BODY' - - var elRect = el.getBoundingClientRect() - if (elRect.width == null) { - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) - } - var elOffset = isBody ? { top: 0, left: 0 } : $element.offset() - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null - - return $.extend({}, elRect, scroll, outerDims, elOffset) - } - - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } - - } - - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { - var delta = { top: 0, left: 0 } - if (!this.$viewport) return delta - - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 - var viewportDimensions = this.getPosition(this.$viewport) - - if (/right|left/.test(placement)) { - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight - if (topEdgeOffset < viewportDimensions.top) { // top overflow - delta.top = viewportDimensions.top - topEdgeOffset - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset - } - } else { - var leftEdgeOffset = pos.left - viewportPadding - var rightEdgeOffset = pos.left + viewportPadding + actualWidth - if (leftEdgeOffset < viewportDimensions.left) { // left overflow - delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset + setContent(content) { + this._newContent = content; + if (this._isShown()) { + this._disposePopper(); + this.show(); } } - - return delta - } - - Tooltip.prototype.getTitle = function () { - var title - var $e = this.$element - var o = this.options - - title = $e.attr('data-original-title') - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) - - return title - } - - Tooltip.prototype.getUID = function (prefix) { - do prefix += ~~(Math.random() * 1000000) - while (document.getElementById(prefix)) - return prefix - } - - Tooltip.prototype.tip = function () { - return (this.$tip = this.$tip || $(this.options.template)) - } - - Tooltip.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) - } - - Tooltip.prototype.enable = function () { - this.enabled = true - } - - Tooltip.prototype.disable = function () { - this.enabled = false - } - - Tooltip.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - } - - Tooltip.prototype.toggle = function (e) { - var self = this - if (e) { - self = $(e.currentTarget).data('bs.' + this.type) - if (!self) { - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) - $(e.currentTarget).data('bs.' + this.type, self) - } - } - - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) - } - - Tooltip.prototype.destroy = function () { - var that = this - clearTimeout(this.timeout) - this.hide(function () { - that.$element.off('.' + that.type).removeData('bs.' + that.type) - }) - } - - - // TOOLTIP PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tooltip') - var options = typeof option == 'object' && option - var selector = options && options.selector - - if (!data && option == 'destroy') return - if (selector) { - if (!data) $this.data('bs.tooltip', (data = {})) - if (!data[selector]) data[selector] = new Tooltip(this, options) + _getTemplateFactory(content) { + if (this._templateFactory) { + this._templateFactory.changeContent(content); } else { - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) + this._templateFactory = new TemplateFactory({ + ...this._config, + // the `content` var has to be after `this._config` + // to override config.content in case of popover + content, + extraClass: this._resolvePossibleFunction(this._config.customClass) + }); } - if (typeof option == 'string') data[option]() - }) + return this._templateFactory; + } + _getContentForTemplate() { + return { + [SELECTOR_TOOLTIP_INNER]: this._getTitle() + }; + } + _getTitle() { + return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title'); + } + + // Private + _initializeOnDelegatedTarget(event) { + return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + } + _isAnimated() { + return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); + } + _isShown() { + return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); + } + _createPopper(tip) { + const placement = execute(this._config.placement, [this, tip, this._element]); + const attachment = AttachmentMap[placement.toUpperCase()]; + return Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment)); + } + _getOffset() { + const { + offset + } = this._config; + if (typeof offset === 'string') { + return offset.split(',').map(value => Number.parseInt(value, 10)); + } + if (typeof offset === 'function') { + return popperData => offset(popperData, this._element); + } + return offset; + } + _resolvePossibleFunction(arg) { + return execute(arg, [this._element]); + } + _getPopperConfig(attachment) { + const defaultBsPopperConfig = { + placement: attachment, + modifiers: [{ + name: 'flip', + options: { + fallbackPlacements: this._config.fallbackPlacements + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }, { + name: 'preventOverflow', + options: { + boundary: this._config.boundary + } + }, { + name: 'arrow', + options: { + element: `.${this.constructor.NAME}-arrow` + } + }, { + name: 'preSetPlacement', + enabled: true, + phase: 'beforeMain', + fn: data => { + // Pre-set Popper's placement attribute in order to read the arrow sizes properly. + // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement + this._getTipElement().setAttribute('data-popper-placement', data.state.placement); + } + }] + }; + return { + ...defaultBsPopperConfig, + ...execute(this._config.popperConfig, [defaultBsPopperConfig]) + }; + } + _setListeners() { + const triggers = this._config.trigger.split(' '); + for (const trigger of triggers) { + if (trigger === 'click') { + EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + context.toggle(); + }); + } else if (trigger !== TRIGGER_MANUAL) { + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); + EventHandler.on(this._element, eventIn, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; + context._enter(); + }); + EventHandler.on(this._element, eventOut, this._config.selector, event => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); + context._leave(); + }); + } + } + this._hideModalHandler = () => { + if (this._element) { + this.hide(); + } + }; + EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); + } + _fixTitle() { + const title = this._element.getAttribute('title'); + if (!title) { + return; + } + if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { + this._element.setAttribute('aria-label', title); + } + this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility + this._element.removeAttribute('title'); + } + _enter() { + if (this._isShown() || this._isHovered) { + this._isHovered = true; + return; + } + this._isHovered = true; + this._setTimeout(() => { + if (this._isHovered) { + this.show(); + } + }, this._config.delay.show); + } + _leave() { + if (this._isWithActiveTrigger()) { + return; + } + this._isHovered = false; + this._setTimeout(() => { + if (!this._isHovered) { + this.hide(); + } + }, this._config.delay.hide); + } + _setTimeout(handler, timeout) { + clearTimeout(this._timeout); + this._timeout = setTimeout(handler, timeout); + } + _isWithActiveTrigger() { + return Object.values(this._activeTrigger).includes(true); + } + _getConfig(config) { + const dataAttributes = Manipulator.getDataAttributes(this._element); + for (const dataAttribute of Object.keys(dataAttributes)) { + if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { + delete dataAttributes[dataAttribute]; + } + } + config = { + ...dataAttributes, + ...(typeof config === 'object' && config ? config : {}) + }; + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + config.container = config.container === false ? document.body : getElement(config.container); + if (typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + if (typeof config.title === 'number') { + config.title = config.title.toString(); + } + if (typeof config.content === 'number') { + config.content = config.content.toString(); + } + return config; + } + _getDelegateConfig() { + const config = {}; + for (const [key, value] of Object.entries(this._config)) { + if (this.constructor.Default[key] !== value) { + config[key] = value; + } + } + config.selector = false; + config.trigger = 'manual'; + + // In the future can be replaced with: + // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) + // `Object.fromEntries(keysWithDifferentValues)` + return config; + } + _disposePopper() { + if (this._popper) { + this._popper.destroy(); + this._popper = null; + } + if (this.tip) { + this.tip.remove(); + this.tip = null; + } + } + + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Tooltip.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } } - var old = $.fn.tooltip + /** + * jQuery + */ - $.fn.tooltip = Plugin - $.fn.tooltip.Constructor = Tooltip + defineJQueryPlugin(Tooltip); + + /** + * -------------------------------------------------------------------------- + * Bootstrap popover.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - // TOOLTIP NO CONFLICT - // =================== + /** + * Constants + */ - $.fn.tooltip.noConflict = function () { - $.fn.tooltip = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: popover.js v3.3.1 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // POPOVER PUBLIC CLASS DEFINITION - // =============================== - - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.1' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { - placement: 'right', - trigger: 'click', + const NAME$3 = 'popover'; + const SELECTOR_TITLE = '.popover-header'; + const SELECTOR_CONTENT = '.popover-body'; + const Default$2 = { + ...Tooltip.Default, content: '', - template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' - }) + offset: [0, 8], + placement: 'right', + template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>', + trigger: 'click' + }; + const DefaultType$2 = { + ...Tooltip.DefaultType, + content: '(null|string|element|function)' + }; + /** + * Class definition + */ - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ + class Popover extends Tooltip { + // Getters + static get Default() { + return Default$2; + } + static get DefaultType() { + return DefaultType$2; + } + static get NAME() { + return NAME$3; + } - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) + // Overrides + _isWithContent() { + return this._getTitle() || this._getContent(); + } - Popover.prototype.constructor = Popover + // Private + _getContentForTemplate() { + return { + [SELECTOR_TITLE]: this._getTitle(), + [SELECTOR_CONTENT]: this._getContent() + }; + } + _getContent() { + return this._resolvePossibleFunction(this._config.content); + } - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Popover.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } } - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() + /** + * jQuery + */ - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) + defineJQueryPlugin(Popover); - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - Popover.prototype.tip = function () { - if (!this.$tip) this.$tip = $(this.options.template) - return this.$tip - } + /** + * -------------------------------------------------------------------------- + * Bootstrap scrollspy.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - // POPOVER PLUGIN DEFINITION - // ========================= + /** + * Constants + */ - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - var selector = options && options.selector + const NAME$2 = 'scrollspy'; + const DATA_KEY$2 = 'bs.scrollspy'; + const EVENT_KEY$2 = `.${DATA_KEY$2}`; + const DATA_API_KEY = '.data-api'; + const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; + const EVENT_CLICK = `click${EVENT_KEY$2}`; + const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; + const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; + const CLASS_NAME_ACTIVE$1 = 'active'; + const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; + const SELECTOR_TARGET_LINKS = '[href]'; + const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; + const SELECTOR_NAV_LINKS = '.nav-link'; + const SELECTOR_NAV_ITEMS = '.nav-item'; + const SELECTOR_LIST_ITEMS = '.list-group-item'; + const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; + const SELECTOR_DROPDOWN = '.dropdown'; + const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; + const Default$1 = { + offset: null, + // TODO: v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: '0px 0px -25%', + smoothScroll: false, + target: null, + threshold: [0.1, 0.5, 1] + }; + const DefaultType$1 = { + offset: '(number|null)', + // TODO v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: 'string', + smoothScroll: 'boolean', + target: 'element', + threshold: 'array' + }; - if (!data && option == 'destroy') return - if (selector) { - if (!data) $this.data('bs.popover', (data = {})) - if (!data[selector]) data[selector] = new Popover(this, options) + /** + * Class definition + */ + + class ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element, config); + + // this._element is the observablesContainer and config.target the menu links wrapper + this._targetLinks = new Map(); + this._observableSections = new Map(); + this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; + this._activeTarget = null; + this._observer = null; + this._previousScrollData = { + visibleEntryTop: 0, + parentScrollTop: 0 + }; + this.refresh(); // initialize + } + + // Getters + static get Default() { + return Default$1; + } + static get DefaultType() { + return DefaultType$1; + } + static get NAME() { + return NAME$2; + } + + // Public + refresh() { + this._initializeTargetsAndObservables(); + this._maybeEnableSmoothScroll(); + if (this._observer) { + this._observer.disconnect(); } else { - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) + this._observer = this._getNewObserver(); } - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: scrollspy.js v3.3.1 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - var process = $.proxy(this.process, this) - - this.$body = $('body') - this.$scrollElement = $(element).is('body') ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', process) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.1' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var offsetMethod = 'offset' - var offsetBase = 0 - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() + for (const section of this._observableSections.values()) { + this._observer.observe(section); + } + } + dispose() { + this._observer.disconnect(); + super.dispose(); } - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() + // Private + _configAfterMerge(config) { + // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case + config.target = getElement(config.target) || document.body; - var self = this + // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only + config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; + if (typeof config.threshold === 'string') { + config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value)); + } + return config; + } + _maybeEnableSmoothScroll() { + if (!this._config.smoothScroll) { + return; + } - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) + // unregister any previous listeners + EventHandler.off(this._config.target, EVENT_CLICK); + EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { + const observableSection = this._observableSections.get(event.target.hash); + if (observableSection) { + event.preventDefault(); + const root = this._rootElement || window; + const height = observableSection.offsetTop - this._element.offsetTop; + if (root.scrollTo) { + root.scrollTo({ + top: height, + behavior: 'smooth' + }); + return; + } - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - self.offsets.push(this[0]) - self.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() + // Chrome 60 doesn't support `scrollTo` + root.scrollTop = height; + } + }); + } + _getNewObserver() { + const options = { + root: this._rootElement, + threshold: this._config.threshold, + rootMargin: this._config.rootMargin + }; + return new IntersectionObserver(entries => this._observerCallback(entries), options); } - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) + // The logic of selection + _observerCallback(entries) { + const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); + const activate = entry => { + this._previousScrollData.visibleEntryTop = entry.target.offsetTop; + this._process(targetElement(entry)); + }; + const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; + const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; + this._previousScrollData.parentScrollTop = parentScrollTop; + for (const entry of entries) { + if (!entry.isIntersecting) { + this._activeTarget = null; + this._clearActiveClass(targetElement(entry)); + continue; + } + const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; + // if we are scrolling down, pick the bigger offsetTop + if (userScrollsDown && entryIsLowerThanPrevious) { + activate(entry); + // if parent isn't scrolled, let's keep the first visible item, breaking the iteration + if (!parentScrollTop) { + return; + } + continue; + } + + // if we are scrolling up, pick the smallest offsetTop + if (!userScrollsDown && !entryIsLowerThanPrevious) { + activate(entry); + } + } + } + _initializeTargetsAndObservables() { + this._targetLinks = new Map(); + this._observableSections = new Map(); + const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); + for (const anchor of targetLinks) { + // ensure that the anchor has an id and is not disabled + if (!anchor.hash || isDisabled(anchor)) { + continue; + } + const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); + + // ensure that the observableSection exists & is visible + if (isVisible(observableSection)) { + this._targetLinks.set(decodeURI(anchor.hash), anchor); + this._observableSections.set(anchor.hash, observableSection); + } + } + } + _process(target) { + if (this._activeTarget === target) { + return; + } + this._clearActiveClass(this._config.target); + this._activeTarget = target; + target.classList.add(CLASS_NAME_ACTIVE$1); + this._activateParents(target); + EventHandler.trigger(this._element, EVENT_ACTIVATE, { + relatedTarget: target + }); + } + _activateParents(target) { + // Activate dropdown parents + if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); + return; + } + for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { + // Set triggered links parents as active + // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor + for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { + item.classList.add(CLASS_NAME_ACTIVE$1); + } + } + } + _clearActiveClass(parent) { + parent.classList.remove(CLASS_NAME_ACTIVE$1); + const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); + for (const node of activeNodes) { + node.classList.remove(CLASS_NAME_ACTIVE$1); + } } - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) - && this.activate(targets[i]) + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = ScrollSpy.getOrCreateInstance(this, config); + if (typeof config !== 'string') { + return; + } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); } } - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target + /** + * Data API implementation + */ - this.clear() + EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { + for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { + ScrollSpy.getOrCreateInstance(spy); + } + }); - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' + /** + * jQuery + */ - var active = $(selector) - .parents('li') - .addClass('active') + defineJQueryPlugin(ScrollSpy); - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') + /** + * -------------------------------------------------------------------------- + * Bootstrap tab.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$1 = 'tab'; + const DATA_KEY$1 = 'bs.tab'; + const EVENT_KEY$1 = `.${DATA_KEY$1}`; + const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; + const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; + const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; + const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; + const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; + const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; + const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; + const ARROW_LEFT_KEY = 'ArrowLeft'; + const ARROW_RIGHT_KEY = 'ArrowRight'; + const ARROW_UP_KEY = 'ArrowUp'; + const ARROW_DOWN_KEY = 'ArrowDown'; + const HOME_KEY = 'Home'; + const END_KEY = 'End'; + const CLASS_NAME_ACTIVE = 'active'; + const CLASS_NAME_FADE$1 = 'fade'; + const CLASS_NAME_SHOW$1 = 'show'; + const CLASS_DROPDOWN = 'dropdown'; + const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; + const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; + const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`; + const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; + const SELECTOR_OUTER = '.nav-item, .list-group-item'; + const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; + const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6 + const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; + const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; + + /** + * Class definition + */ + + class Tab extends BaseComponent { + constructor(element) { + super(element); + this._parent = this._element.closest(SELECTOR_TAB_PANEL); + if (!this._parent) { + return; + // TODO: should throw exception in v6 + // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) + } + + // Set up initial aria attributes + this._setInitialAttributes(this._parent, this._getChildren()); + EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); } - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tab.js v3.3.1 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - this.element = $(element) - } - - Tab.VERSION = '3.3.1' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + // Getters + static get NAME() { + return NAME$1; } - if ($this.parent('li').hasClass('active')) return + // Public + show() { + // Shows this elem and deactivate the active sibling if exists + const innerElem = this._element; + if (this._elemIsActive(innerElem)) { + return; + } - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) + // Search for active tab on same parent to deactivate it + const active = this._getActiveElem(); + const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { + relatedTarget: innerElem + }) : null; + const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { + relatedTarget: active + }); + if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { + return; + } + this._deactivate(active, innerElem); + this._activate(innerElem, active); + } - $previous.trigger(hideEvent) - $this.trigger(showEvent) + // Private + _activate(element, relatedElem) { + if (!element) { + return; + } + element.classList.add(CLASS_NAME_ACTIVE); + this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return + const complete = () => { + if (element.getAttribute('role') !== 'tab') { + element.classList.add(CLASS_NAME_SHOW$1); + return; + } + element.removeAttribute('tabindex'); + element.setAttribute('aria-selected', true); + this._toggleDropDown(element, true); + EventHandler.trigger(element, EVENT_SHOWN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _deactivate(element, relatedElem) { + if (!element) { + return; + } + element.classList.remove(CLASS_NAME_ACTIVE); + element.blur(); + this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') + const complete = () => { + if (element.getAttribute('role') !== 'tab') { + element.classList.remove(CLASS_NAME_SHOW$1); + return; + } + element.setAttribute('aria-selected', false); + element.setAttribute('tabindex', '-1'); + this._toggleDropDown(element, false); + EventHandler.trigger(element, EVENT_HIDDEN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _keydown(event) { + if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) { + return; + } + event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page + event.preventDefault(); + const children = this._getChildren().filter(element => !isDisabled(element)); + let nextActiveElement; + if ([HOME_KEY, END_KEY].includes(event.key)) { + nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]; } else { - element.removeClass('fade') + const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); + nextActiveElement = getNextActiveElement(children, event.target, isNext, true); } - - if (element.parent('.dropdown-menu')) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) + if (nextActiveElement) { + nextActiveElement.focus({ + preventScroll: true + }); + Tab.getOrCreateInstance(nextActiveElement).show(); } + } + _getChildren() { + // collection of inner elements + return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); + } + _getActiveElem() { + return this._getChildren().find(child => this._elemIsActive(child)) || null; + } + _setInitialAttributes(parent, children) { + this._setAttributeIfNotExists(parent, 'role', 'tablist'); + for (const child of children) { + this._setInitialAttributesOnChild(child); + } + } + _setInitialAttributesOnChild(child) { + child = this._getInnerElement(child); + const isActive = this._elemIsActive(child); + const outerElem = this._getOuterElement(child); + child.setAttribute('aria-selected', isActive); + if (outerElem !== child) { + this._setAttributeIfNotExists(outerElem, 'role', 'presentation'); + } + if (!isActive) { + child.setAttribute('tabindex', '-1'); + } + this._setAttributeIfNotExists(child, 'role', 'tab'); - callback && callback() + // set attributes to the related panel too + this._setInitialAttributesOnTargetPanel(child); + } + _setInitialAttributesOnTargetPanel(child) { + const target = SelectorEngine.getElementFromSelector(child); + if (!target) { + return; + } + this._setAttributeIfNotExists(target, 'role', 'tabpanel'); + if (child.id) { + this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`); + } + } + _toggleDropDown(element, open) { + const outerElem = this._getOuterElement(element); + if (!outerElem.classList.contains(CLASS_DROPDOWN)) { + return; + } + const toggle = (selector, className) => { + const element = SelectorEngine.findOne(selector, outerElem); + if (element) { + element.classList.toggle(className, open); + } + }; + toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); + toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); + outerElem.setAttribute('aria-expanded', open); + } + _setAttributeIfNotExists(element, attribute, value) { + if (!element.hasAttribute(attribute)) { + element.setAttribute(attribute, value); + } + } + _elemIsActive(elem) { + return elem.classList.contains(CLASS_NAME_ACTIVE); } - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') - - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tab - - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } - - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: affix.js v3.3.1 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = - this.unpin = - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.1' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' + // Try to get the inner element (usually the .nav-link) + _getInnerElement(elem) { + return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); } - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && colliderTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = $('body').height() - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') + // Try to get the outer element (usually the .nav-item) + _getOuterElement(elem) { + return elem.closest(SELECTOR_OUTER) || elem; } - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Tab.getOrCreateInstance(this); + if (typeof config !== 'string') { + return; + } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); } } + /** + * Data API implementation + */ - // AFFIX PLUGIN DEFINITION - // ======================= + EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + Tab.getOrCreateInstance(this).show(); + }); - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option + /** + * Initialize on focus + */ + EventHandler.on(window, EVENT_LOAD_DATA_API, () => { + for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { + Tab.getOrCreateInstance(element); + } + }); + /** + * jQuery + */ - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) + defineJQueryPlugin(Tab); + + /** + * -------------------------------------------------------------------------- + * Bootstrap toast.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME = 'toast'; + const DATA_KEY = 'bs.toast'; + const EVENT_KEY = `.${DATA_KEY}`; + const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; + const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; + const EVENT_FOCUSIN = `focusin${EVENT_KEY}`; + const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; + const EVENT_HIDE = `hide${EVENT_KEY}`; + const EVENT_HIDDEN = `hidden${EVENT_KEY}`; + const EVENT_SHOW = `show${EVENT_KEY}`; + const EVENT_SHOWN = `shown${EVENT_KEY}`; + const CLASS_NAME_FADE = 'fade'; + const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility + const CLASS_NAME_SHOW = 'show'; + const CLASS_NAME_SHOWING = 'showing'; + const DefaultType = { + animation: 'boolean', + autohide: 'boolean', + delay: 'number' + }; + const Default = { + animation: true, + autohide: true, + delay: 5000 + }; + + /** + * Class definition + */ + + class Toast extends BaseComponent { + constructor(element, config) { + super(element, config); + this._timeout = null; + this._hasMouseInteraction = false; + this._hasKeyboardInteraction = false; + this._setListeners(); + } + + // Getters + static get Default() { + return Default; + } + static get DefaultType() { + return DefaultType; + } + static get NAME() { + return NAME; + } + + // Public + show() { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); + if (showEvent.defaultPrevented) { + return; + } + this._clearTimeout(); + if (this._config.animation) { + this._element.classList.add(CLASS_NAME_FADE); + } + const complete = () => { + this._element.classList.remove(CLASS_NAME_SHOWING); + EventHandler.trigger(this._element, EVENT_SHOWN); + this._maybeScheduleHide(); + }; + this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated + reflow(this._element); + this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); + this._queueCallback(complete, this._element, this._config.animation); + } + hide() { + if (!this.isShown()) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); + if (hideEvent.defaultPrevented) { + return; + } + const complete = () => { + this._element.classList.add(CLASS_NAME_HIDE); // @deprecated + this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); + EventHandler.trigger(this._element, EVENT_HIDDEN); + }; + this._element.classList.add(CLASS_NAME_SHOWING); + this._queueCallback(complete, this._element, this._config.animation); + } + dispose() { + this._clearTimeout(); + if (this.isShown()) { + this._element.classList.remove(CLASS_NAME_SHOW); + } + super.dispose(); + } + isShown() { + return this._element.classList.contains(CLASS_NAME_SHOW); + } + + // Private + + _maybeScheduleHide() { + if (!this._config.autohide) { + return; + } + if (this._hasMouseInteraction || this._hasKeyboardInteraction) { + return; + } + this._timeout = setTimeout(() => { + this.hide(); + }, this._config.delay); + } + _onInteraction(event, isInteracting) { + switch (event.type) { + case 'mouseover': + case 'mouseout': + { + this._hasMouseInteraction = isInteracting; + break; + } + case 'focusin': + case 'focusout': + { + this._hasKeyboardInteraction = isInteracting; + break; + } + } + if (isInteracting) { + this._clearTimeout(); + return; + } + const nextElement = event.relatedTarget; + if (this._element === nextElement || this._element.contains(nextElement)) { + return; + } + this._maybeScheduleHide(); + } + _setListeners() { + EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true)); + EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false)); + EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true)); + EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false)); + } + _clearTimeout() { + clearTimeout(this._timeout); + this._timeout = null; + } + + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Toast.getOrCreateInstance(this, config); + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + } + }); + } } - var old = $.fn.affix + /** + * Data API implementation + */ - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix + enableDismissTrigger(Toast); + /** + * jQuery + */ - // AFFIX NO CONFLICT - // ================= + defineJQueryPlugin(Toast); - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } + /** + * -------------------------------------------------------------------------- + * Bootstrap index.umd.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + const index_umd = { + Alert, + Button, + Carousel, + Collapse, + Dropdown, + Modal, + Offcanvas, + Popover, + ScrollSpy, + Tab, + Toast, + Tooltip + }; - // AFFIX DATA-API - // ============== + return index_umd; - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) - -}(jQuery); +})); +//# sourceMappingURL=bootstrap.js.map diff --git a/mamweb/static/css/base.css b/mamweb/static/css/base.css index 912e09a6..602452c7 100644 --- a/mamweb/static/css/base.css +++ b/mamweb/static/css/base.css @@ -9,6 +9,7 @@ } body { + font-size: 14px; font-family: 'OpenSans'; background-color: var(--barva-pozadi); min-height: 100%; @@ -46,11 +47,11 @@ h1 { /**** TLAČÍTKA ****/ a { color: var(--tmava-oranzova); + text-decoration: none; } a:focus, a:hover, a:active { color: var(--hlavni-oranzova); - text-decoration: none; } .button { From 3d2f0f08c3bac3ac3f84c69ccecdf6fa2657ad91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 09:35:49 +0100 Subject: [PATCH 044/225] =?UTF-8?q?P=C5=99ed=C4=9Bl=C3=A1n=C3=AD=20styl?= =?UTF-8?q?=C5=AF=20v=C3=BDsledkovky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 26 +++++++------- .../vysledkovky/vysledkovka_cisla.html | 34 +++++++++---------- .../vysledkovky/vysledkovka_rocnik.html | 28 +++++++-------- 3 files changed, 43 insertions(+), 45 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 5302b673..93c3ec7d 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -142,23 +142,21 @@ div.cislo_odkazy ul { /**** TABULKY ****/ /** Výsledkovky **/ -table .border-r { - border-right: solid 1px; -} - -table .border-b { - border-bottom: solid 1px; -} - -.vysledkovka td, .vysledkovka th { - padding: 0.1em 0.3em; -} - -.vysledkovka { +.tabulka_oramovane_sloupce { border: solid 2px; } -.podproblem { +.tabulka_oramovane_sloupce td, .tabulka_oramovane_sloupce th { + padding: 0.1em 0.3em; + border-left: solid 1px; +} + +.tabulka_oramovane_sloupce th { + border-bottom: solid 1px; +} + +/* Používá se pro podproblémy ve výsledkovkách -- zesvětlí se daný sloupec */ +.zesvetleni { color: gray; } /*****************/ diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index 4aa62953..53ecb601 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -1,49 +1,49 @@ <div style="overflow-x: auto;"> <table class='vysledkovka'> - <tr class='border-b'> - <th class='border-r'>#</th> - <th class='border-r'>Jméno</th> + <tr> + <th>#</th> + <th>Jméno</th> {% for p in vysledkovka.temata_a_spol%} - <th class='border-r' id="problem{{ oznaceni_vysledkovky }}_{{ forloop.counter0 }}">{# <a href="{{ p.verejne_url }}"> #}<span title="{{ p }}">{{ p.kod_v_rocniku }}</span>{# </a> #}</th> + <th id="problem{{ oznaceni_vysledkovky }}_{{ forloop.counter0 }}">{# <a href="{{ p.verejne_url }}"> #}<span title="{{ p }}">{{ p.kod_v_rocniku }}</span>{# </a> #}</th> {# TODELETE #} {% for podproblemy in vysledkovka.podproblemy_iter.next %} - <th class='border-r podproblem{{ oznaceni_vysledkovky }}_{{ forloop.parentloop.counter0 }} podproblem'>{# <a href="{{ podproblemy.verejne_url }}"> #}<span title="{{ podproblemy }}">{{ podproblemy.kod_v_rocniku }}</span>{# </a> #}</th> + <th class='podproblem{{ oznaceni_vysledkovky }}_{{ forloop.parentloop.counter0 }} zesvetleni'>{# <a href="{{ podproblemy.verejne_url }}"> #}<span title="{{ podproblemy }}">{{ podproblemy.kod_v_rocniku }}</span>{# </a> #}</th> {% endfor %} {# TODELETE #} {% endfor %} - {% if vysledkovka.je_nejake_ostatni %}<th class='border-r' id='problem{{ oznaceni_vysledkovky }}_{{ vysledkovka.temata_a_spol| length }}'>Ostatní</th>{% endif %} + {% if vysledkovka.je_nejake_ostatni %}<th id='problem{{ oznaceni_vysledkovky }}_{{ vysledkovka.temata_a_spol| length }}'>Ostatní</th>{% endif %} {# TODELETE #} {% for podproblemy in vysledkovka.podproblemy_iter.next %} - <th class='border-r podproblem{{ oznaceni_vysledkovky }}_{{ vysledkovka.temata_a_spol| length }} podproblem'>{# <a href="{{ podproblemy.verejne_url }}"> #}<span title="{{ podproblemy }}">{{ podproblemy.kod_v_rocniku }}</span>{# </a> #}</th> + <th class='podproblem{{ oznaceni_vysledkovky }}_{{ vysledkovka.temata_a_spol| length }} zesvetleni'>{# <a href="{{ podproblemy.verejne_url }}"> #}<span title="{{ podproblemy }}">{{ podproblemy.kod_v_rocniku }}</span>{# </a> #}</th> {% endfor %} {# TODELETE #} - <th class='border-r'>Za číslo</th> - <th class='border-r'>Za ročník</th> - <th class='border-r'>Odjakživa</th> + <th>Za číslo</th> + <th>Za ročník</th> + <th>Odjakživa</th> {% for rv in vysledkovka.radky_vysledkovky %} <tr> - <td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}</td> - <th class='border-r'> + <td>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}</td> + <th> {% if rv.titul %} {{ rv.titul }}<sup>MM</sup> {% endif %} {{ rv.resitel.osoba.plne_jmeno }}</th> {% for b in rv.body_za_temata_seznam %} - <td class='border-r'>{{ b }}</td> + <td>{{ b }}</td> {% for body_podproblemu in rv.body_podproblemy_iter.next %} - <td class='border-r podproblem{{ oznaceni_vysledkovky }}_{{ forloop.parentloop.counter0 }} podproblem'>{{ body_podproblemu }}</td> + <td class='podproblem{{ oznaceni_vysledkovky }}_{{ forloop.parentloop.counter0 }} zesvetleni'>{{ body_podproblemu }}</td> {% endfor %} {% endfor %} - <td class='border-r'>{{ rv.body_cislo }}</td> - <td class='border-r'><b>{{ rv.body_rocnik }}</b></td> - <td class='border-r'>{{ rv.body_celkem_odjakziva }}</td> + <td>{{ rv.body_cislo }}</td> + <td><b>{{ rv.body_rocnik }}</b></td> + <td>{{ rv.body_celkem_odjakziva }}</td> </tr> {% endfor %} </table> diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html index 22b81555..2bc1a276 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html @@ -1,29 +1,29 @@ -<table class='vysledkovka'> - <tr class='border-b'> - <th class='border-r'>#</th> - <th class='border-r'>Jméno</th> - <th class='border-r'>R.</th> - <th class='border-r'>Odjakživa</th> +<table class='tabulka_oramovane_sloupce'> + <tr> + <th>#</th> + <th>Jméno</th> + <th>R.</th> + <th>Odjakživa</th> {% for c in vysledkovka.cisla_rocniku %} - <th class='border-r'><a href="{{ c.verejne_url }}"> + <th><a href="{{ c.verejne_url }}"> {{c.rocnik.rocnik}}.{{ c.poradi }}</a></th> {% endfor %} - <th class='border-r'>Celkem</th> + <th>Celkem</th> {% for rv in vysledkovka.radky_vysledkovky %} <tr> - <td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}</td> - <th class='border-r'> + <td>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}</td> + <th> {% if rv.titul %} {{ rv.titul }}<sup>MM</sup> {% endif %} {{ rv.resitel.osoba.plne_jmeno }}</th> - <td class='border-r'>{{ rv.rocnik_resitele }}</td> - <td class='border-r'>{{ rv.body_celkem_odjakziva }}</td> + <td>{{ rv.rocnik_resitele }}</td> + <td>{{ rv.body_celkem_odjakziva }}</td> {% for b in rv.body_cisla_seznam %} - <td class='border-r'>{{ b }}</td> + <td>{{ b }}</td> {% endfor %} - <td class='border-r'><b>{{ rv.body_rocnik }}</b></td> + <td><b>{{ rv.body_rocnik }}</b></td> </tr> {% endfor %} </table> From 805ed9204c2552369e0ce7ab8676ffea5d803622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 09:42:08 +0100 Subject: [PATCH 045/225] =?UTF-8?q?Oprava=20p=C5=99edchoz=C3=ADho=20commit?= =?UTF-8?q?u=20(P=C5=99ed=C4=9Bl=C3=A1n=C3=AD=20styl=C5=AF=20v=C3=BDsledko?= =?UTF-8?q?vky)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 2 +- vysledkovky/templates/vysledkovky/vysledkovka_cisla.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 93c3ec7d..2e0fe0f8 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -151,7 +151,7 @@ div.cislo_odkazy ul { border-left: solid 1px; } -.tabulka_oramovane_sloupce th { +.tabulka_oramovane_sloupce tr { border-bottom: solid 1px; } diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index 53ecb601..717a5f16 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -1,5 +1,5 @@ <div style="overflow-x: auto;"> -<table class='vysledkovka'> +<table class='tabulka_oramovane_sloupce'> <tr> <th>#</th> <th>Jméno</th> From d41eb64ab5b6742dd6f4c5c5b836fd946cb6f955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 09:48:59 +0100 Subject: [PATCH 046/225] =?UTF-8?q?Oprava=20p=C5=99edchoz=C3=ADho=20commit?= =?UTF-8?q?u=20(P=C5=99ed=C4=9Bl=C3=A1n=C3=AD=20styl=C5=AF=20v=C3=BDsledko?= =?UTF-8?q?vky)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 2 +- vysledkovky/templates/vysledkovky/vysledkovka_cisla.html | 5 +++++ vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 2e0fe0f8..5c872940 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -151,7 +151,7 @@ div.cislo_odkazy ul { border-left: solid 1px; } -.tabulka_oramovane_sloupce tr { +.tabulka_oramovane_sloupce thead tr { border-bottom: solid 1px; } diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index 717a5f16..f5bd22de 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -1,5 +1,6 @@ <div style="overflow-x: auto;"> <table class='tabulka_oramovane_sloupce'> +<thead> <tr> <th>#</th> <th>Jméno</th> @@ -25,6 +26,9 @@ <th>Za číslo</th> <th>Za ročník</th> <th>Odjakživa</th> + </tr> +</thead> +<tbody> {% for rv in vysledkovka.radky_vysledkovky %} <tr> <td>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}</td> @@ -46,6 +50,7 @@ <td>{{ rv.body_celkem_odjakziva }}</td> </tr> {% endfor %} +</tbody> </table> </div> diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html index 2bc1a276..5d7db775 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html @@ -1,4 +1,5 @@ <table class='tabulka_oramovane_sloupce'> +<thead> <tr> <th>#</th> <th>Jméno</th> @@ -9,7 +10,10 @@ {{c.rocnik.rocnik}}.{{ c.poradi }}</a></th> {% endfor %} <th>Celkem</th> + </tr> +</thead> +<tbody> {% for rv in vysledkovka.radky_vysledkovky %} <tr> <td>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}</td> @@ -26,4 +30,5 @@ <td><b>{{ rv.body_rocnik }}</b></td> </tr> {% endfor %} +<tbody> </table> From 6d270b7af5bba4c63bc41fe236210a05ecca8908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 10:07:46 +0100 Subject: [PATCH 047/225] =?UTF-8?q?Je=C5=A1t=C4=9B=20jedna=20drobn=C3=A1?= =?UTF-8?q?=20=C3=BAprava=20styl=C5=AF=20v=C3=BDsledkovky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 3 +++ vysledkovky/templates/vysledkovky/vysledkovka_cisla.html | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 5c872940..fc0b703b 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -3,6 +3,9 @@ /* Bloky použité na webu */ +.horizonatlni_scrollovani { overflow-x: auto; } + + /**** OZNAČENÍ NE-PUBLIC ČÁSTÍ ****/ .mam-org-only { background: var(--orgovska-svetla-fialova); diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index f5bd22de..6263d420 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -1,5 +1,4 @@ -<div style="overflow-x: auto;"> -<table class='tabulka_oramovane_sloupce'> +<table class='tabulka_oramovane_sloupce horizonatlni_scrollovani'> <thead> <tr> <th>#</th> @@ -52,7 +51,6 @@ {% endfor %} </tbody> </table> -</div> <p>Po kliknutí na políčko v záhlaví tabulky se u daného problému zobrazí (/skryje) detailní rozpis, za které podproblémy řešitelé dostali body.</p> From 5bf2df563b7245e6a603458e47d679a6617b691c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 10:58:21 +0100 Subject: [PATCH 048/225] =?UTF-8?q?Rozd=C4=9Blen=C3=AD=20stylu=20tabulky?= =?UTF-8?q?=20do=C5=A1l=C3=BDch=20=C5=99e=C5=A1en=C3=AD=20na=20jednotliv?= =?UTF-8?q?=C3=A9=20=C4=8D=C3=A1sti=20a=20pou=C5=BEit=C3=AD=20jinde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 62 +++++++++++-------- .../templates/odevzdavatko/detail.html | 12 ++-- .../templates/odevzdavatko/tabulka.html | 2 +- .../templates/sifrovacka/odpovedi_list.html | 7 ++- vyroci/templates/vyroci/vyroci_list.html | 7 ++- .../vysledkovky/vysledkovka_cisla.html | 2 +- .../vysledkovky/vysledkovka_rocnik.html | 2 +- 7 files changed, 58 insertions(+), 36 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index fc0b703b..035d9434 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -5,6 +5,9 @@ .horizonatlni_scrollovani { overflow-x: auto; } +/* Používá se pro podproblémy ve výsledkovkách -- zesvětlí se daný sloupec */ +.zesvetleni { color: gray; } + /**** OZNAČENÍ NE-PUBLIC ČÁSTÍ ****/ .mam-org-only { @@ -144,7 +147,10 @@ div.cislo_odkazy ul { /**** TABULKY ****/ -/** Výsledkovky **/ + +/** Tabulka s čárami mezi sloupci **/ +/* Např. výsledkovky */ + .tabulka_oramovane_sloupce { border: solid 2px; } @@ -157,51 +163,57 @@ div.cislo_odkazy ul { .tabulka_oramovane_sloupce thead tr { border-bottom: solid 1px; } - -/* Používá se pro podproblémy ve výsledkovkách -- zesvětlí se daný sloupec */ -.zesvetleni { - color: gray; -} -/*****************/ +/***********************************/ -/** Tabulka odevzdaných a došlých řešení **/ -.dosla_reseni tr th, .dosla_reseni tr td { +/** Tabulka se střídajícími se barvami řádků **/ +/* Skoro jakákoliv tabulka kromě výsledkovek */ + +.barevna_tabulka { padding: 1px 10px 1px 10px; border-collapse: collapse; - min-width: 8em; /*Nastřeleno, aby se řádky s řešeními nezalamovaly. Teoreticky není potřeba pro th, ale whatever.*/ } -.dosla_reseni tr:nth-child(even) { +.barevna_tabulka tbody tr:nth-child(even) { background: var(--svetlounka-oranzova); } -/*Přichycování prvního sloupce a řádku*/ -.dosla_reseni { +.barevna_tabulka tbody tr:nth-child(odd) { + background: var(--barva-pozadi); +} +/**********************************************/ + + +/** Tabulka, kde první řádek a sloupec je pořád vidět **/ +/* Např. tabulka odevzdaných řešení, nebo výsledkovky */ + +/* Omezí výšku a šířku, aby bylo příjemné na scrollování a zapne scrollování */ +.tabulka_s_uchycenym_radkem_a_sloupcem { display: block; - max-height: 90vh; + max-height: 80vh; max-width: 90vw; overflow: auto; - margin-left: 5vw; + margin-left: 5vw; /* Vystředování (FIXME není potřeba u tabulek, co nejsou na celou obrazovku) */ } -.dosla_reseni thead tr { +/* Uchytí první řádek */ +.tabulka_s_uchycenym_radkem_a_sloupcem thead tr { position: sticky; top: 0; z-index: 1; } -.dosla_reseni tr:nth-child(even) td:first-child, .dosla_reseni thead tr, .dosla_reseni thead tr:first-child td:first-child { - background: var(--svetlounka-oranzova); -} - -.dosla_reseni tr:nth-child(odd) td:first-child { - background: var(--barva-pozadi); -} - -.dosla_reseni tr td:first-child { +/* Uchytí první sloupec */ +.tabulka_s_uchycenym_radkem_a_sloupcem td:first-child, .tabulka_s_uchycenym_radkem_a_sloupcem th:first-child { position: sticky; left: 0; + background: inherit; /* (Snad) zneprůhlední první sloupec */ +} +/** Tabulka, kde první řádek a sloupec je pořád vidět **/ + +/** Tabulka odevzdaných a došlých řešení **/ +.tabulka_doslych_reseni td { + min-width: 8em; /* Nastřeleno, aby se řádky s řešeními nezalamovaly. */ } /******************************************/ diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 5a43c4b5..6ea9acc6 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -55,8 +55,9 @@ {# Soubory: #} <h3>Přílohy:</h3> {% if object.prilohy.all %} -<table class="dosla_reseni"> -<tr><th>Soubor</th><th>Řešitelova poznámka</th><th>Datum</th></tr> +<table class="barevna_tabulka"> +<thead><tr><th>Soubor</th><th>Řešitelova poznámka</th><th>Datum</th></tr></thead> +<tbody> {% for priloha in object.prilohy.all %} <tr> <td><a class='reseni-ke-stazeni' @@ -67,6 +68,7 @@ <td>{{ priloha.res_poznamka }}</td> <td>{{ priloha.vytvoreno }}</td></tr> {% endfor %} +</tbody> </table> {% if edit %} {# FIXME: tohle nesouvisí s editací, ale s tím, jestli je člověk org… #} <br> @@ -142,8 +144,9 @@ {% else %} <h3>Hodnocení:</h3> -<table class="dosla_reseni"> -<tr><th>Problém</th><th>{# 📖 #}🧍</th><th>{# 🔵 #}🧍∑</th><th class="teamovaCast">{# 💪 #}🧑🤝🧑</th><th class="teamovaCast">{# ❤ #}🧑🤝🧑∑</th><th>Zpětná vazba od opravovatele</th></tr> +<table class="barevna_tabulka"> +<thead><tr><th>Problém</th><th>{# 📖 #}🧍</th><th>{# 🔵 #}🧍∑</th><th class="teamovaCast">{# 💪 #}🧑🤝🧑</th><th class="teamovaCast">{# ❤ #}🧑🤝🧑∑</th><th>Zpětná vazba od opravovatele</th></tr></thead> +<tbody> {% for h in hodnoceni %} <tr class="hodnoceni"> <td>{{ h.problem }}</td> @@ -154,6 +157,7 @@ <td>{{ h.feedback | linebreaks }}</td> </tr> {% endfor %} +</tbody> </table> {% endif %} diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 7ee90ea9..8b79b2f7 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -21,7 +21,7 @@ Do data (včetně): {{ filtr.reseni_do }} <input type=submit value="Změň ročník"> </form> -<table class="dosla_reseni"> +<table class="tabulka_doslych_reseni barevna_tabulka tabulka_s_uchycenym_radkem_a_sloupcem"> <thead> <tr> <td></td> {# Prázdná buňka v levém horním rohu #} diff --git a/sifrovacka/templates/sifrovacka/odpovedi_list.html b/sifrovacka/templates/sifrovacka/odpovedi_list.html index 0024a7c1..9a3ef08f 100644 --- a/sifrovacka/templates/sifrovacka/odpovedi_list.html +++ b/sifrovacka/templates/sifrovacka/odpovedi_list.html @@ -4,14 +4,16 @@ <h1>{% block nadpis1a %}Šifrovačka odpovědi{% endblock nadpis1a %}</h1> - <table class="dosla_reseni"> + <table class="barevna_tabulka tabulka_s_uchycenym_radkem_a_sloupcem"> + <thead> <tr> <th>Timestamp</th> <th>Řešitel</th> <th>Šifra</th> <th>Odpověď</th> </tr> - + </thead> + <tbody> {% for u in object_list %} <tr> <td>{{ u.timestamp }}</td> @@ -20,6 +22,7 @@ <td style="color: {% if u.uspech %}green{% else %}red{% endif %};">{{ u.odpoved }}</td> </tr> {% endfor %} + </tbody> </table> {% endblock content %} diff --git a/vyroci/templates/vyroci/vyroci_list.html b/vyroci/templates/vyroci/vyroci_list.html index efab5b0b..9135f0f8 100644 --- a/vyroci/templates/vyroci/vyroci_list.html +++ b/vyroci/templates/vyroci/vyroci_list.html @@ -4,7 +4,8 @@ <h1>{% block nadpis1a %}M&Mí 30! odpovědi{% endblock nadpis1a %}</h1> - <table class="dosla_reseni"> + <table class="barevna_tabulka tabulka_s_uchycenym_radkem_a_sloupcem"> + <thead> <tr> <th>Jméno</th> <th>Přezdívka</th> @@ -14,7 +15,8 @@ <th>Co znamená číslo?</th> <th>Něco dodat?</th> </tr> - + </thead> + <tbody> {% for u in object_list %} <tr> <td>{{ u.jmeno }}</td> @@ -26,6 +28,7 @@ <td style="word-break: break-all">{{ u.dodat }}</td> </tr> {% endfor %} + </tbody> </table> {% endblock content %} diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index 6263d420..bc1d48c5 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -1,4 +1,4 @@ -<table class='tabulka_oramovane_sloupce horizonatlni_scrollovani'> +<table class='tabulka_oramovane_sloupce tabulka_s_uchycenym_radkem_a_sloupcem'> <thead> <tr> <th>#</th> diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html index 5d7db775..612b436a 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html @@ -1,4 +1,4 @@ -<table class='tabulka_oramovane_sloupce'> +<table class='tabulka_oramovane_sloupce tabulka_s_uchycenym_radkem_a_sloupcem'> <thead> <tr> <th>#</th> From 264f4d7646fae2d448b793244df7588ba2c73761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 11:02:00 +0100 Subject: [PATCH 049/225] =?UTF-8?q?Chyb=C4=9Bj=C3=ADc=C3=AD=20tag=20v=20na?= =?UTF-8?q?stylov=C3=A1n=C3=AD=20barevn=C3=A9=20tabulky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 035d9434..b4cb09c0 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -174,7 +174,7 @@ div.cislo_odkazy ul { border-collapse: collapse; } -.barevna_tabulka tbody tr:nth-child(even) { +.barevna_tabulka tbody tr:nth-child(even), .barevna_tabulka thead tr { background: var(--svetlounka-oranzova); } From d7195a42f180979708e33330fd3d5250f1ed8a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 11:43:28 +0100 Subject: [PATCH 050/225] =?UTF-8?q?Drobn=C3=A9=20opravy=20v=20barevn=C3=A9?= =?UTF-8?q?=20tabulce=20a=20tabulce=20uchycuj=C3=ADc=C3=AD=20prvn=C3=AD=20?= =?UTF-8?q?=C5=99=C3=A1dek=20a=20sloupec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index b4cb09c0..f44d1449 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -169,7 +169,7 @@ div.cislo_odkazy ul { /** Tabulka se střídajícími se barvami řádků **/ /* Skoro jakákoliv tabulka kromě výsledkovek */ -.barevna_tabulka { +.barevna_tabulka td th { padding: 1px 10px 1px 10px; border-collapse: collapse; } @@ -190,10 +190,12 @@ div.cislo_odkazy ul { /* Omezí výšku a šířku, aby bylo příjemné na scrollování a zapne scrollování */ .tabulka_s_uchycenym_radkem_a_sloupcem { display: block; + width: fit-content; /* display: block; roztahuje na celou šířku */ max-height: 80vh; - max-width: 90vw; overflow: auto; - margin-left: 5vw; /* Vystředování (FIXME není potřeba u tabulek, co nejsou na celou obrazovku) */ + max-width: 90%; /* (FIXME asi není potřeba u tabulek, co nejsou na celou obrazovku) */ + margin-left: 5%; /* Vystředování (FIXME není potřeba u tabulek, co nejsou na celou obrazovku) */ + background: inherit; } /* Uchytí první řádek */ From 837986bad86a612d444193ba837bbecaff37c8f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 12:35:44 +0100 Subject: [PATCH 051/225] =?UTF-8?q?Drobn=C3=A9=20opravy=20v=20oramovane=20?= =?UTF-8?q?tabulce=20a=20tabulce=20uchycuj=C3=ADc=C3=AD=20prvn=C3=AD=20?= =?UTF-8?q?=C5=99=C3=A1dek=20a=20sloupec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index f44d1449..48815ce2 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -155,12 +155,21 @@ div.cislo_odkazy ul { border: solid 2px; } +.tabulka_oramovane_sloupce td:first-child, .tabulka_oramovane_sloupce th:first-child { + border-left: none; + border-right: solid 1px; +} + +.tabulka_oramovane_sloupce td:nth-child(2), .tabulka_oramovane_sloupce th:nth-child(2) { + border-left: none; +} + .tabulka_oramovane_sloupce td, .tabulka_oramovane_sloupce th { padding: 0.1em 0.3em; border-left: solid 1px; } -.tabulka_oramovane_sloupce thead tr { +.tabulka_oramovane_sloupce thead th, .tabulka_oramovane_sloupce thead td { border-bottom: solid 1px; } /***********************************/ @@ -171,7 +180,6 @@ div.cislo_odkazy ul { .barevna_tabulka td th { padding: 1px 10px 1px 10px; - border-collapse: collapse; } .barevna_tabulka tbody tr:nth-child(even), .barevna_tabulka thead tr { @@ -196,6 +204,9 @@ div.cislo_odkazy ul { max-width: 90%; /* (FIXME asi není potřeba u tabulek, co nejsou na celou obrazovku) */ margin-left: 5%; /* Vystředování (FIXME není potřeba u tabulek, co nejsou na celou obrazovku) */ background: inherit; + + border-collapse: separate; /* Pokud má tabulka orámování, je potřeba ho separovat, aby dodrželo position: sticky; */ + border-spacing: 0; } /* Uchytí první řádek */ From ce546846801fe166c132d7bef08c6d052bc845a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 15:44:53 +0100 Subject: [PATCH 052/225] =?UTF-8?q?Drobn=C3=A9=20opravy=20v=20tabulce=20uc?= =?UTF-8?q?hycuj=C3=ADc=C3=AD=20prvn=C3=AD=20=C5=99=C3=A1dek=20a=20sloupec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 48815ce2..af853d7c 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -203,7 +203,6 @@ div.cislo_odkazy ul { overflow: auto; max-width: 90%; /* (FIXME asi není potřeba u tabulek, co nejsou na celou obrazovku) */ margin-left: 5%; /* Vystředování (FIXME není potřeba u tabulek, co nejsou na celou obrazovku) */ - background: inherit; border-collapse: separate; /* Pokud má tabulka orámování, je potřeba ho separovat, aby dodrželo position: sticky; */ border-spacing: 0; @@ -213,7 +212,7 @@ div.cislo_odkazy ul { .tabulka_s_uchycenym_radkem_a_sloupcem thead tr { position: sticky; top: 0; - z-index: 1; + z-index: 2; } /* Uchytí první sloupec */ @@ -221,8 +220,18 @@ div.cislo_odkazy ul { position: sticky; left: 0; background: inherit; /* (Snad) zneprůhlední první sloupec */ + z-index: 1; } -/** Tabulka, kde první řádek a sloupec je pořád vidět **/ + +/* (Snad) zneprůhlednění prvního řádku (a sloupce) */ +.tabulka_s_uchycenym_radkem_a_sloupcem thead, +.tabulka_s_uchycenym_radkem_a_sloupcem tbody, +.tabulka_s_uchycenym_radkem_a_sloupcem tr +{ + background: inherit; +} +/*******************************************************/ + /** Tabulka odevzdaných a došlých řešení **/ .tabulka_doslych_reseni td { From da705927c22b8df7c9e2a0aae0b0342ab8c8c240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 15:46:51 +0100 Subject: [PATCH 053/225] =?UTF-8?q?Drobn=C3=A9=20opravy=20v=20tabulce=20uc?= =?UTF-8?q?hycuj=C3=ADc=C3=AD=20prvn=C3=AD=20=C5=99=C3=A1dek=20a=20sloupec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index af853d7c..282003e7 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -224,6 +224,7 @@ div.cislo_odkazy ul { } /* (Snad) zneprůhlednění prvního řádku (a sloupce) */ +.tabulka_s_uchycenym_radkem_a_sloupcem, .tabulka_s_uchycenym_radkem_a_sloupcem thead, .tabulka_s_uchycenym_radkem_a_sloupcem tbody, .tabulka_s_uchycenym_radkem_a_sloupcem tr From 81004d7cdc7bb8e1042146191a627f8c5c94d3ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 15:53:09 +0100 Subject: [PATCH 054/225] =?UTF-8?q?Upgrade=20v=C3=BDsledkovky=20(uchycen?= =?UTF-8?q?=C3=AD=20druh=C3=A9ho=20sloupce=20=E2=80=93=20toho=20se=20jm?= =?UTF-8?q?=C3=A9nem)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 19 +++++++++++++++++++ .../vysledkovky/vysledkovka_cisla.html | 2 +- .../vysledkovky/vysledkovka_rocnik.html | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 282003e7..2d82b19c 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -240,6 +240,25 @@ div.cislo_odkazy ul { } /******************************************/ +/** Výsledkovky **/ +.vysledkovka td:first-child, .tabulka_oramovane_sloupce th:first-child { + position: unset; +} + +.vysledkovka td:nth-child(2), .tabulka_oramovane_sloupce th:nth-child(2) { + border-right: solid 1px; + + position: sticky; + left: 0; + background: inherit; /* (Snad) zneprůhlední druhý sloupec */ + z-index: 1; +} + +.vysledkovka td:nth-child(3), .tabulka_oramovane_sloupce th:nth-child(3) { + border-left: none; +} +/*****************/ + /** Tabulka mých (řešitelových) řešení **/ .odevzdana_reseni tr th, .odevzdana_reseni tr td { diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index bc1d48c5..2a330131 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -1,4 +1,4 @@ -<table class='tabulka_oramovane_sloupce tabulka_s_uchycenym_radkem_a_sloupcem'> +<table class='vysledkovka tabulka_oramovane_sloupce tabulka_s_uchycenym_radkem_a_sloupcem'> <thead> <tr> <th>#</th> diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html index 612b436a..961b51b5 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html @@ -1,4 +1,4 @@ -<table class='tabulka_oramovane_sloupce tabulka_s_uchycenym_radkem_a_sloupcem'> +<table class='vysledkovka tabulka_oramovane_sloupce tabulka_s_uchycenym_radkem_a_sloupcem'> <thead> <tr> <th>#</th> From a1fa654bec6fc7c8ebdffc7f6feaf3e30680246a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 16:56:47 +0100 Subject: [PATCH 055/225] =?UTF-8?q?Oprava=20mobiln=C3=ADho=20men=C3=AD?= =?UTF-8?q?=C4=8Dka=20na=20nov=C3=BD=20bootstrap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/css.rst | 2 +- .../js/{bootstrap.js => bootstrap.bundle.js} | 1896 ++++++++++++++++- mamweb/static/css/layout.css | 3 +- mamweb/templates/base.html | 5 +- mamweb/templates/menu_mobile.html | 6 +- 5 files changed, 1866 insertions(+), 46 deletions(-) rename mamweb/static/bootstrap/js/{bootstrap.js => bootstrap.bundle.js} (69%) diff --git a/docs/css.rst b/docs/css.rst index b2ec20ed..574de4f0 100644 --- a/docs/css.rst +++ b/docs/css.rst @@ -13,7 +13,7 @@ Dále jsem separoval CSSka pro **galerii** (potřebuje hodně specifických styl Dále web (asi) používá externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): -- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap kdysi přidával ``font-size:14px``, bez čehož se web úplně rozpadnul) +- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap kdysi přidával ``font-size:14px``, bez čehož se web úplně rozpadnul) (také na něm běží mobilní meníčko, které navíc vyžaduje Popper, tedy bootstrap.bundle.js místo bootstrap.js) Pak jsou tu ``mamweb-dev.css`` a ``printtable.css``, co jsem si ještě nerozmyslel, co s tím. diff --git a/mamweb/static/bootstrap/js/bootstrap.js b/mamweb/static/bootstrap/js/bootstrap.bundle.js similarity index 69% rename from mamweb/static/bootstrap/js/bootstrap.js rename to mamweb/static/bootstrap/js/bootstrap.bundle.js index d861a326..37e6f95d 100644 --- a/mamweb/static/bootstrap/js/bootstrap.js +++ b/mamweb/static/bootstrap/js/bootstrap.bundle.js @@ -4,29 +4,10 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) : - typeof define === 'function' && define.amd ? define(['@popperjs/core'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory(global.Popper)); -})(this, (function (Popper) { 'use strict'; - - function _interopNamespaceDefault(e) { - const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); - if (e) { - for (const k in e) { - if (k !== 'default') { - const d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - n.default = e; - return Object.freeze(n); - } - - const Popper__namespace = /*#__PURE__*/_interopNamespaceDefault(Popper); + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory()); +})(this, (function () { 'use strict'; /** * -------------------------------------------------------------------------- @@ -144,7 +125,7 @@ const triggerTransitionEnd = element => { element.dispatchEvent(new Event(TRANSITION_END)); }; - const isElement = object => { + const isElement$1 = object => { if (!object || typeof object !== 'object') { return false; } @@ -155,7 +136,7 @@ }; const getElement = object => { // it's a jQuery object or a node element - if (isElement(object)) { + if (isElement$1(object)) { return object.jquery ? object[0] : object; } if (typeof object === 'string' && object.length > 0) { @@ -164,7 +145,7 @@ return null; }; const isVisible = element => { - if (!isElement(element) || element.getClientRects().length === 0) { + if (!isElement$1(element) || element.getClientRects().length === 0) { return false; } const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; @@ -635,19 +616,19 @@ return config; } _mergeConfigObj(config, element) { - const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse + const jsonConfig = isElement$1(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse return { ...this.constructor.Default, ...(typeof jsonConfig === 'object' ? jsonConfig : {}), - ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), + ...(isElement$1(element) ? Manipulator.getDataAttributes(element) : {}), ...(typeof config === 'object' ? config : {}) }; } _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { for (const [property, expectedTypes] of Object.entries(configTypes)) { const value = config[property]; - const valueType = isElement(value) ? 'element' : toType(value); + const valueType = isElement$1(value) ? 'element' : toType(value); if (!new RegExp(expectedTypes).test(valueType)) { throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); } @@ -1704,6 +1685,1845 @@ defineJQueryPlugin(Collapse); + var top = 'top'; + var bottom = 'bottom'; + var right = 'right'; + var left = 'left'; + var auto = 'auto'; + var basePlacements = [top, bottom, right, left]; + var start = 'start'; + var end = 'end'; + var clippingParents = 'clippingParents'; + var viewport = 'viewport'; + var popper = 'popper'; + var reference = 'reference'; + var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); + }, []); + var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); + }, []); // modifiers that need to read the DOM + + var beforeRead = 'beforeRead'; + var read = 'read'; + var afterRead = 'afterRead'; // pure-logic modifiers + + var beforeMain = 'beforeMain'; + var main = 'main'; + var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) + + var beforeWrite = 'beforeWrite'; + var write = 'write'; + var afterWrite = 'afterWrite'; + var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; + + function getNodeName(element) { + return element ? (element.nodeName || '').toLowerCase() : null; + } + + function getWindow(node) { + if (node == null) { + return window; + } + + if (node.toString() !== '[object Window]') { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + + return node; + } + + function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; + } + + function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; + } + + function isShadowRoot(node) { + // IE 11 has no ShadowRoot + if (typeof ShadowRoot === 'undefined') { + return false; + } + + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; + } + + // and applies them to the HTMLElements such as popper and arrow + + function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function (name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } // Flow doesn't support to extend this property, but it's the most + // effective way to apply styles to an HTMLElement + // $FlowFixMe[cannot-write] + + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (name) { + var value = attributes[name]; + + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? '' : value); + } + }); + }); + } + + function effect$2(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: '0', + top: '0', + margin: '0' + }, + arrow: { + position: 'absolute' + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + + return function () { + Object.keys(state.elements).forEach(function (name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them + + var style = styleProperties.reduce(function (style, property) { + style[property] = ''; + return style; + }, {}); // arrow is optional + virtual elements + + if (!isHTMLElement(element) || !getNodeName(element)) { + return; + } + + Object.assign(element.style, style); + Object.keys(attributes).forEach(function (attribute) { + element.removeAttribute(attribute); + }); + }); + }; + } // eslint-disable-next-line import/no-unused-modules + + + const applyStyles$1 = { + name: 'applyStyles', + enabled: true, + phase: 'write', + fn: applyStyles, + effect: effect$2, + requires: ['computeStyles'] + }; + + function getBasePlacement(placement) { + return placement.split('-')[0]; + } + + var max = Math.max; + var min = Math.min; + var round = Math.round; + + function getUAString() { + var uaData = navigator.userAgentData; + + if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { + return uaData.brands.map(function (item) { + return item.brand + "/" + item.version; + }).join(' '); + } + + return navigator.userAgent; + } + + function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); + } + + function getBoundingClientRect(element, includeScale, isFixedStrategy) { + if (includeScale === void 0) { + includeScale = false; + } + + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + + var clientRect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + + if (includeScale && isHTMLElement(element)) { + scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; + scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; + } + + var _ref = isElement(element) ? getWindow(element) : window, + visualViewport = _ref.visualViewport; + + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; + return { + width: width, + height: height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x: x, + y: y + }; + } + + // means it doesn't take into account transforms. + + function getLayoutRect(element) { + var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. + // Fixes https://github.com/popperjs/popper-core/issues/1223 + + var width = element.offsetWidth; + var height = element.offsetHeight; + + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + + return { + x: element.offsetLeft, + y: element.offsetTop, + width: width, + height: height + }; + } + + function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method + + if (parent.contains(child)) { + return true; + } // then fallback to custom implementation with Shadow DOM support + else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + + do { + if (next && parent.isSameNode(next)) { + return true; + } // $FlowFixMe[prop-missing]: need a better way to handle this... + + + next = next.parentNode || next.host; + } while (next); + } // Give up, the result is false + + + return false; + } + + function getComputedStyle$1(element) { + return getWindow(element).getComputedStyle(element); + } + + function isTableElement(element) { + return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; + } + + function getDocumentElement(element) { + // $FlowFixMe[incompatible-return]: assume body is always available + return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] + element.document) || window.document).documentElement; + } + + function getParentNode(element) { + if (getNodeName(element) === 'html') { + return element; + } + + return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element.parentNode || ( // DOM Element detected + isShadowRoot(element) ? element.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element) // fallback + + ); + } + + function getTrueOffsetParent(element) { + if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle$1(element).position === 'fixed') { + return null; + } + + return element.offsetParent; + } // `.offsetParent` reports `null` for fixed elements, while absolute elements + // return the containing block + + + function getContainingBlock(element) { + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); + + if (isIE && isHTMLElement(element)) { + // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport + var elementCss = getComputedStyle$1(element); + + if (elementCss.position === 'fixed') { + return null; + } + } + + var currentNode = getParentNode(element); + + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + + while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that + // create a containing block. + // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block + + if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + + return null; + } // Gets the closest ancestor positioned element. Handles some edge cases, + // such as table ancestors and cross browser bugs. + + + function getOffsetParent(element) { + var window = getWindow(element); + var offsetParent = getTrueOffsetParent(element); + + while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') { + offsetParent = getTrueOffsetParent(offsetParent); + } + + if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) { + return window; + } + + return offsetParent || getContainingBlock(element) || window; + } + + function getMainAxisFromPlacement(placement) { + return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; + } + + function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); + } + function withinMaxClamp(min, value, max) { + var v = within(min, value, max); + return v > max ? max : v; + } + + function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + + function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); + } + + function expandToHashMap(value, keys) { + return keys.reduce(function (hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); + } + + var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + }; + + function arrow(_ref) { + var _state$modifiersData$; + + var state = _ref.state, + name = _ref.name, + options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? 'height' : 'width'; + + if (!arrowElement || !popperOffsets) { + return; + } + + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === 'y' ? top : left; + var maxProp = axis === 'y' ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is + // outside of the popper bounds + + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = within(min, center, max); // Prevents breaking syntax highlighting... + + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); + } + + function effect$1(_ref2) { + var state = _ref2.state, + options = _ref2.options; + var _options$element = options.element, + arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; + + if (arrowElement == null) { + return; + } // CSS selector + + + if (typeof arrowElement === 'string') { + arrowElement = state.elements.popper.querySelector(arrowElement); + + if (!arrowElement) { + return; + } + } + + if (!contains(state.elements.popper, arrowElement)) { + return; + } + + state.elements.arrow = arrowElement; + } // eslint-disable-next-line import/no-unused-modules + + + const arrow$1 = { + name: 'arrow', + enabled: true, + phase: 'main', + fn: arrow, + effect: effect$1, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'] + }; + + function getVariation(placement) { + return placement.split('-')[1]; + } + + var unsetSides = { + top: 'auto', + right: 'auto', + bottom: 'auto', + left: 'auto' + }; // Round the offsets to the nearest suitable subpixel based on the DPR. + // Zooming can change the DPR, but it seems to report a value that will + // cleanly divide the values into the appropriate subpixels. + + function roundOffsetsByDPR(_ref, win) { + var x = _ref.x, + y = _ref.y; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; + } + + function mapToStyles(_ref2) { + var _Object$assign2; + + var popper = _ref2.popper, + popperRect = _ref2.popperRect, + placement = _ref2.placement, + variation = _ref2.variation, + offsets = _ref2.offsets, + position = _ref2.position, + gpuAcceleration = _ref2.gpuAcceleration, + adaptive = _ref2.adaptive, + roundOffsets = _ref2.roundOffsets, + isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, + x = _offsets$x === void 0 ? 0 : _offsets$x, + _offsets$y = offsets.y, + y = _offsets$y === void 0 ? 0 : _offsets$y; + + var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ + x: x, + y: y + }) : { + x: x, + y: y + }; + + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty('x'); + var hasY = offsets.hasOwnProperty('y'); + var sideX = left; + var sideY = top; + var win = window; + + if (adaptive) { + var offsetParent = getOffsetParent(popper); + var heightProp = 'clientHeight'; + var widthProp = 'clientWidth'; + + if (offsetParent === getWindow(popper)) { + offsetParent = getDocumentElement(popper); + + if (getComputedStyle$1(offsetParent).position !== 'static' && position === 'absolute') { + heightProp = 'scrollHeight'; + widthProp = 'scrollWidth'; + } + } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it + + + offsetParent = offsetParent; + + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] + offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] + offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + + var commonStyles = Object.assign({ + position: position + }, adaptive && unsetSides); + + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x: x, + y: y + }, getWindow(popper)) : { + x: x, + y: y + }; + + x = _ref4.x; + y = _ref4.y; + + if (gpuAcceleration) { + var _Object$assign; + + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); + } + + function computeStyles(_ref5) { + var state = _ref5.state, + options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, + gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, + _options$adaptive = options.adaptive, + adaptive = _options$adaptive === void 0 ? true : _options$adaptive, + _options$roundOffsets = options.roundOffsets, + roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration: gpuAcceleration, + isFixed: state.options.strategy === 'fixed' + }; + + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive: adaptive, + roundOffsets: roundOffsets + }))); + } + + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: 'absolute', + adaptive: false, + roundOffsets: roundOffsets + }))); + } + + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-placement': state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + const computeStyles$1 = { + name: 'computeStyles', + enabled: true, + phase: 'beforeWrite', + fn: computeStyles, + data: {} + }; + + var passive = { + passive: true + }; + + function effect(_ref) { + var state = _ref.state, + instance = _ref.instance, + options = _ref.options; + var _options$scroll = options.scroll, + scroll = _options$scroll === void 0 ? true : _options$scroll, + _options$resize = options.resize, + resize = _options$resize === void 0 ? true : _options$resize; + var window = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.addEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.addEventListener('resize', instance.update, passive); + } + + return function () { + if (scroll) { + scrollParents.forEach(function (scrollParent) { + scrollParent.removeEventListener('scroll', instance.update, passive); + }); + } + + if (resize) { + window.removeEventListener('resize', instance.update, passive); + } + }; + } // eslint-disable-next-line import/no-unused-modules + + + const eventListeners = { + name: 'eventListeners', + enabled: true, + phase: 'write', + fn: function fn() {}, + effect: effect, + data: {} + }; + + var hash$1 = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' + }; + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash$1[matched]; + }); + } + + var hash = { + start: 'end', + end: 'start' + }; + function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function (matched) { + return hash[matched]; + }); + } + + function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft: scrollLeft, + scrollTop: scrollTop + }; + } + + function getWindowScrollBarX(element) { + // If <html> has a CSS width greater than the viewport, then this will be + // incorrect for RTL. + // Popper 1 is broken in this case and never had a bug report so let's assume + // it's not an issue. I don't think anyone ever specifies width on <html> + // anyway. + // Browsers where the left scrollbar doesn't cause an issue report `0` for + // this (e.g. Edge 2019, IE11, Safari) + return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; + } + + function getViewportRect(element, strategy) { + var win = getWindow(element); + var html = getDocumentElement(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + var layoutViewport = isLayoutViewport(); + + if (layoutViewport || !layoutViewport && strategy === 'fixed') { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + + return { + width: width, + height: height, + x: x + getWindowScrollBarX(element), + y: y + }; + } + + // of the `<html>` and `<body>` rect bounds if horizontally scrollable + + function getDocumentRect(element) { + var _element$ownerDocumen; + + var html = getDocumentElement(element); + var winScroll = getWindowScroll(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element); + var y = -winScroll.scrollTop; + + if (getComputedStyle$1(body || html).direction === 'rtl') { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + + return { + width: width, + height: height, + x: x, + y: y + }; + } + + function isScrollParent(element) { + // Firefox wants us to check `-x` and `-y` variations as well + var _getComputedStyle = getComputedStyle$1(element), + overflow = _getComputedStyle.overflow, + overflowX = _getComputedStyle.overflowX, + overflowY = _getComputedStyle.overflowY; + + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); + } + + function getScrollParent(node) { + if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { + // $FlowFixMe[incompatible-return]: assume body is always available + return node.ownerDocument.body; + } + + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + + return getScrollParent(getParentNode(node)); + } + + /* + given a DOM element, return the list of all scroll parents, up the list of ancesors + until we get to the top window object. This list is what we attach scroll listeners + to, because if any of these parent elements scroll, we'll need to re-calculate the + reference element's position. + */ + + function listScrollParents(element, list) { + var _element$ownerDocumen; + + if (list === void 0) { + list = []; + } + + var scrollParent = getScrollParent(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))); + } + + function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); + } + + function getInnerBoundingClientRect(element, strategy) { + var rect = getBoundingClientRect(element, false, strategy === 'fixed'); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + + function getClientRectFromMixedType(element, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); + } // A "clipping parent" is an overflowable container with the characteristic of + // clipping (or hiding) overflowing elements with a position different from + // `initial` + + + function getClippingParents(element) { + var clippingParents = listScrollParents(getParentNode(element)); + var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; + + if (!isElement(clipperElement)) { + return []; + } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 + + + return clippingParents.filter(function (clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; + }); + } // Gets the maximum area that the element is visible in due to any number of + // clipping parents + + + function getClippingRect(element, boundary, rootBoundary, strategy) { + var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element, firstClippingParent, strategy)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; + } + + function computeOffsets(_ref) { + var reference = _ref.reference, + element = _ref.element, + placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + + if (mainAxis != null) { + var len = mainAxis === 'y' ? 'height' : 'width'; + + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + } + } + + return offsets; + } + + function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + _options$placement = _options.placement, + placement = _options$placement === void 0 ? state.placement : _options$placement, + _options$strategy = _options.strategy, + strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, + _options$boundary = _options.boundary, + boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, + _options$rootBoundary = _options.rootBoundary, + rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, + _options$elementConte = _options.elementContext, + elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, + _options$altBoundary = _options.altBoundary, + altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, + _options$padding = _options.padding, + padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: 'absolute', + placement: placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect + // 0 or negative = within the clipping rect + + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element + + if (elementContext === popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function (key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; + overflowOffsets[key] += offset[axis] * multiply; + }); + } + + return overflowOffsets; + } + + function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + + var _options = options, + placement = _options.placement, + boundary = _options.boundary, + rootBoundary = _options.rootBoundary, + padding = _options.padding, + flipVariations = _options.flipVariations, + _options$allowedAutoP = _options.allowedAutoPlacements, + allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { + return getVariation(placement) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function (placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; + }); + + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; + } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... + + + var overflows = allowedPlacements.reduce(function (acc, placement) { + acc[placement] = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding + })[getBasePlacement(placement)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function (a, b) { + return overflows[a] - overflows[b]; + }); + } + + function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } + + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; + } + + function flip(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + + if (state.modifiersData[name]._skip) { + return; + } + + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, + specifiedFallbackPlacements = options.fallbackPlacements, + padding = options.padding, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + _options$flipVariatio = options.flipVariations, + flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, + allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { + return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + flipVariations: flipVariations, + allowedAutoPlacements: allowedAutoPlacements + }) : placement); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + + var _basePlacement = getBasePlacement(placement); + + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? 'width' : 'height'; + var overflow = detectOverflow(state, { + placement: placement, + boundary: boundary, + rootBoundary: rootBoundary, + altBoundary: altBoundary, + padding: padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; + + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } + + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + + if (checks.every(function (check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + + checksMap.set(placement, checks); + } + + if (makeFallbackChecks) { + // `2` may be desired in some cases – research later + var numberOfChecks = flipVariations ? 3 : 1; + + var _loop = function _loop(_i) { + var fittingPlacement = placements.find(function (placement) { + var checks = checksMap.get(placement); + + if (checks) { + return checks.slice(0, _i).every(function (check) { + return check; + }); + } + }); + + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + + if (_ret === "break") break; + } + } + + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } + } // eslint-disable-next-line import/no-unused-modules + + + const flip$1 = { + name: 'flip', + enabled: true, + phase: 'main', + fn: flip, + requiresIfExists: ['offset'], + data: { + _skip: false + } + }; + + function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; + } + + function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function (side) { + return overflow[side] >= 0; + }); + } + + function hide(_ref) { + var state = _ref.state, + name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: 'reference' + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets: referenceClippingOffsets, + popperEscapeOffsets: popperEscapeOffsets, + isReferenceHidden: isReferenceHidden, + hasPopperEscaped: hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + 'data-popper-reference-hidden': isReferenceHidden, + 'data-popper-escaped': hasPopperEscaped + }); + } // eslint-disable-next-line import/no-unused-modules + + + const hide$1 = { + name: 'hide', + enabled: true, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: hide + }; + + function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + + var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { + placement: placement + })) : offset, + skidding = _ref[0], + distance = _ref[1]; + + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; + } + + function offset(_ref2) { + var state = _ref2.state, + options = _ref2.options, + name = _ref2.name; + var _options$offset = options.offset, + offset = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function (acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }, {}); + var _data$state$placement = data[state.placement], + x = _data$state$placement.x, + y = _data$state$placement.y; + + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules + + + const offset$1 = { + name: 'offset', + enabled: true, + phase: 'main', + requires: ['popperOffsets'], + fn: offset + }; + + function popperOffsets(_ref) { + var state = _ref.state, + name = _ref.name; + // Offsets are the actual position the popper needs to have to be + // properly positioned near its reference element + // This is the most basic placement, and will be adjusted by + // the modifiers in the next step + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: 'absolute', + placement: state.placement + }); + } // eslint-disable-next-line import/no-unused-modules + + + const popperOffsets$1 = { + name: 'popperOffsets', + enabled: true, + phase: 'read', + fn: popperOffsets, + data: {} + }; + + function getAltAxis(axis) { + return axis === 'x' ? 'y' : 'x'; + } + + function preventOverflow(_ref) { + var state = _ref.state, + options = _ref.options, + name = _ref.name; + var _options$mainAxis = options.mainAxis, + checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, + _options$altAxis = options.altAxis, + checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, + boundary = options.boundary, + rootBoundary = options.rootBoundary, + altBoundary = options.altBoundary, + padding = options.padding, + _options$tether = options.tether, + tether = _options$tether === void 0 ? true : _options$tether, + _options$tetherOffset = options.tetherOffset, + tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary: boundary, + rootBoundary: rootBoundary, + padding: padding, + altBoundary: altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + + if (!popperOffsets) { + return; + } + + if (checkMainAxis) { + var _offsetModifierState$; + + var mainSide = mainAxis === 'y' ? top : left; + var altSide = mainAxis === 'y' ? bottom : right; + var len = mainAxis === 'y' ? 'height' : 'width'; + var offset = popperOffsets[mainAxis]; + var min$1 = offset + overflow[mainSide]; + var max$1 = offset - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go + // outside the reference bounds + + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want + // to include its full size in the calculation. If the reference is small + // and near the edge of a boundary, the popper can overflow even if the + // reference is not overflowing as well (e.g. virtual elements with no + // width or height) + + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset + maxOffset - offsetModifierValue; + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } + + if (checkAltAxis) { + var _offsetModifierState$2; + + var _mainSide = mainAxis === 'x' ? top : left; + + var _altSide = mainAxis === 'x' ? bottom : right; + + var _offset = popperOffsets[altAxis]; + + var _len = altAxis === 'y' ? 'height' : 'width'; + + var _min = _offset + overflow[_mainSide]; + + var _max = _offset - overflow[_altSide]; + + var isOriginSide = [top, left].indexOf(basePlacement) !== -1; + + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + + var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + + state.modifiersData[name] = data; + } // eslint-disable-next-line import/no-unused-modules + + + const preventOverflow$1 = { + name: 'preventOverflow', + enabled: true, + phase: 'main', + fn: preventOverflow, + requiresIfExists: ['offset'] + }; + + function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + + function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } + } + + function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = round(rect.width) / element.offsetWidth || 1; + var scaleY = round(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; + } // Returns the composite rect of an element relative to its offsetParent. + // Composite means it takes into account transforms as well as layout. + + + function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + + function order(modifiers) { + var map = new Map(); + var visited = new Set(); + var result = []; + modifiers.forEach(function (modifier) { + map.set(modifier.name, modifier); + }); // On visiting object, check for its dependencies and visit them recursively + + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function (dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + + modifiers.forEach(function (modifier) { + if (!visited.has(modifier.name)) { + // check for visited object + sort(modifier); + } + }); + return result; + } + + function orderModifiers(modifiers) { + // order based on dependencies + var orderedModifiers = order(modifiers); // order based on phase + + return modifierPhases.reduce(function (acc, phase) { + return acc.concat(orderedModifiers.filter(function (modifier) { + return modifier.phase === phase; + })); + }, []); + } + + function debounce(fn) { + var pending; + return function () { + if (!pending) { + pending = new Promise(function (resolve) { + Promise.resolve().then(function () { + pending = undefined; + resolve(fn()); + }); + }); + } + + return pending; + }; + } + + function mergeByName(modifiers) { + var merged = modifiers.reduce(function (merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }, {}); // IE11 does not support Object.values + + return Object.keys(merged).map(function (key) { + return merged[key]; + }); + } + + var DEFAULT_OPTIONS = { + placement: 'bottom', + modifiers: [], + strategy: 'absolute' + }; + + function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return !args.some(function (element) { + return !(element && typeof element.getBoundingClientRect === 'function'); + }); + } + + function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + + var _generatorOptions = generatorOptions, + _generatorOptions$def = _generatorOptions.defaultModifiers, + defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, + _generatorOptions$def2 = _generatorOptions.defaultOptions, + defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + + var state = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference, + popper: popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state: state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], + popper: listScrollParents(popper) + }; // Orders the modifiers based on their dependencies and `phase` + // properties + + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers + + state.orderedModifiers = orderedModifiers.filter(function (m) { + return m.enabled; + }); + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + + var _state$elements = state.elements, + reference = _state$elements.reference, + popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements + // anymore + + if (!areValidElements(reference, popper)) { + return; + } // Store the reference and popper rects to be read by modifiers + + + state.rects = { + reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), + popper: getLayoutRect(popper) + }; // Modifiers have the ability to reset the current update cycle. The + // most common use case for this is the `flip` modifier changing the + // placement, which then needs to re-run all the modifiers, because the + // logic was previously ran for the previous placement and is therefore + // stale/incorrect + + state.reset = false; + state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier + // is filled with the initial data specified by the modifier. This means + // it doesn't persist and is fresh on each update. + // To ensure persistent data, use `${name}#persistent` + + state.orderedModifiers.forEach(function (modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + + var _state$orderedModifie = state.orderedModifiers[index], + fn = _state$orderedModifie.fn, + _state$orderedModifie2 = _state$orderedModifie.options, + _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, + name = _state$orderedModifie.name; + + if (typeof fn === 'function') { + state = fn({ + state: state, + options: _options, + name: name, + instance: instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function () { + return new Promise(function (resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + + if (!areValidElements(reference, popper)) { + return instance; + } + + instance.setOptions(options).then(function (state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + }); // Modifiers have the ability to execute arbitrary code before the first + // update cycle runs. They will be executed in the same order as the update + // cycle. This is useful when a modifier adds some persistent data that + // other modifiers need to use, but the modifier is run after the dependent + // one. + + function runModifierEffects() { + state.orderedModifiers.forEach(function (_ref) { + var name = _ref.name, + _ref$options = _ref.options, + options = _ref$options === void 0 ? {} : _ref$options, + effect = _ref.effect; + + if (typeof effect === 'function') { + var cleanupFn = effect({ + state: state, + name: name, + instance: instance, + options: options + }); + + var noopFn = function noopFn() {}; + + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + + function cleanupModifierEffects() { + effectCleanupFns.forEach(function (fn) { + return fn(); + }); + effectCleanupFns = []; + } + + return instance; + }; + } + var createPopper$2 = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules + + var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; + var createPopper$1 = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers$1 + }); // eslint-disable-next-line import/no-unused-modules + + var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; + var createPopper = /*#__PURE__*/popperGenerator({ + defaultModifiers: defaultModifiers + }); // eslint-disable-next-line import/no-unused-modules + + const Popper = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ + __proto__: null, + afterMain, + afterRead, + afterWrite, + applyStyles: applyStyles$1, + arrow: arrow$1, + auto, + basePlacements, + beforeMain, + beforeRead, + beforeWrite, + bottom, + clippingParents, + computeStyles: computeStyles$1, + createPopper, + createPopperBase: createPopper$2, + createPopperLite: createPopper$1, + detectOverflow, + end, + eventListeners, + flip: flip$1, + hide: hide$1, + left, + main, + modifierPhases, + offset: offset$1, + placements, + popper, + popperGenerator, + popperOffsets: popperOffsets$1, + preventOverflow: preventOverflow$1, + read, + reference, + right, + start, + top, + variationPlacements, + viewport, + write + }, Symbol.toStringTag, { value: 'Module' })); + /** * -------------------------------------------------------------------------- * Bootstrap dropdown.js @@ -1874,26 +3694,26 @@ } _getConfig(config) { config = super._getConfig(config); - if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { + if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { // Popper virtual elements require a getBoundingClientRect method throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); } return config; } _createPopper() { - if (typeof Popper__namespace === 'undefined') { + if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); } let referenceElement = this._element; if (this._config.reference === 'parent') { referenceElement = this._parent; - } else if (isElement(this._config.reference)) { + } else if (isElement$1(this._config.reference)) { referenceElement = getElement(this._config.reference); } else if (typeof this._config.reference === 'object') { referenceElement = this._config.reference; } const popperConfig = this._getPopperConfig(); - this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig); + this._popper = createPopper(referenceElement, this._menu, popperConfig); } _isShown() { return this._menu.classList.contains(CLASS_NAME_SHOW$6); @@ -2384,7 +4204,7 @@ this._applyManipulationCallback(selector, manipulationCallBack); } _applyManipulationCallback(selector, callBack) { - if (isElement(selector)) { + if (isElement$1(selector)) { callBack(selector); return; } @@ -3133,7 +4953,7 @@ templateElement.remove(); return; } - if (isElement(content)) { + if (isElement$1(content)) { this._putElementInTemplate(getElement(content), templateElement); return; } @@ -3245,7 +5065,7 @@ class Tooltip extends BaseComponent { constructor(element, config) { - if (typeof Popper__namespace === 'undefined') { + if (typeof Popper === 'undefined') { throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); } super(element, config); @@ -3465,7 +5285,7 @@ _createPopper(tip) { const placement = execute(this._config.placement, [this, tip, this._element]); const attachment = AttachmentMap[placement.toUpperCase()]; - return Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment)); + return createPopper(this._element, tip, this._getPopperConfig(attachment)); } _getOffset() { const { @@ -4491,4 +6311,4 @@ return index_umd; })); -//# sourceMappingURL=bootstrap.js.map +//# sourceMappingURL=bootstrap.bundle.js.map diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 7bd8f6e1..c149b197 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -703,9 +703,10 @@ div.zadani_termin .datum { li.dropdown div.submenu_mobile{ display: none; + --bs-dropdown-bg: var(--hlavni-oranzova); } - li.dropdown.open div.submenu_mobile{ + li.dropdown div.submenu_mobile.show{ display: block; } diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index b8ba0039..db686e5c 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -8,7 +8,6 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="{% static 'images/MATFYZ_MM_barevne.svg' %}" type="image/x-icon"> {% block custom_css %}{% endblock %} - <link href="{% static 'bootstrap/css/bootstrap-theme.css' %}" rel="stylesheet"> <link href="{% static 'bootstrap/css/bootstrap.css' %}" rel="stylesheet"> <link href="{% static 'css/constants.css' %}?version=1" rel="stylesheet"> <link href="{% static 'css/base.css' %}?version=1" rel="stylesheet"> @@ -82,7 +81,7 @@ <nav class="nav-button"> <!-- Collapse button --> - <button class="navbar-button" type="button" data-toggle="collapse" data-target="#navbar-content" + <button class="navbar-button" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-content" aria-controls="navbar-content" aria-expanded="false"><span>Menu</span></button> <!-- Collapsible content --> @@ -120,7 +119,7 @@ </div> <!-- container --> - <script src="{% static 'bootstrap/js/bootstrap.js' %}"></script> + <script src="{% static 'bootstrap/js/bootstrap.bundle.js' %}"></script> {% include 'april.html' %} {% block js %}{% endblock %} </body> diff --git a/mamweb/templates/menu_mobile.html b/mamweb/templates/menu_mobile.html index 28b3aad3..90a30239 100644 --- a/mamweb/templates/menu_mobile.html +++ b/mamweb/templates/menu_mobile.html @@ -1,13 +1,13 @@ {% load sitetree %} {% spaceless %} {% autoescape off %} -<ul class="menu_mobile"> +<ul class="navbar-nav menu_mobile"> {% for item in sitetree_items %} <li class="{% if item.has_children %}dropdown{% endif %} {% if item.is_current or item.in_current_branch %}active{% endif %}"> - <a href="{% if item.has_children %}#{% else %}{% sitetree_url for item %}{% endif %}" {% if item.has_children %}class="dropdown-toggle" data-toggle="dropdown"{% endif %}> + <a href="{% if item.has_children %}#{% else %}{% sitetree_url for item %}{% endif %}" {% if item.has_children %}class="dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"{% endif %}> {% if item.title == "HIDDEN" %}Korektury{% else %}{{ item.title_resolved }}{% endif %} </a> - <div class="submenu_mobile {% if item.is_current or item.in_current_branch %}active{% endif %}"> + <div class="dropdown-menu submenu_mobile {% if item.is_current or item.in_current_branch %}active{% endif %}"> {% if item.has_children %} {% sitetree_children of item for menu template "menu_mobile_dropdown.html" %} {% endif %} From d469019c4428afb98d70efbb4ae000f44c3076d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 17:00:06 +0100 Subject: [PATCH 056/225] =?UTF-8?q?Oprava=20mobiln=C3=ADho=20men=C3=AD?= =?UTF-8?q?=C4=8Dka=20na=20nov=C3=BD=20bootstrap=20(je=C5=A1t=C4=9B=20jsem?= =?UTF-8?q?=20zapomn=C4=9Bl=20jednu=20v=C4=9Bc)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/menu_mobile.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/templates/menu_mobile.html b/mamweb/templates/menu_mobile.html index 90a30239..b46b6e97 100644 --- a/mamweb/templates/menu_mobile.html +++ b/mamweb/templates/menu_mobile.html @@ -4,7 +4,7 @@ <ul class="navbar-nav menu_mobile"> {% for item in sitetree_items %} <li class="{% if item.has_children %}dropdown{% endif %} {% if item.is_current or item.in_current_branch %}active{% endif %}"> - <a href="{% if item.has_children %}#{% else %}{% sitetree_url for item %}{% endif %}" {% if item.has_children %}class="dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"{% endif %}> + <a href="{% if item.has_children %}#{% else %}{% sitetree_url for item %}{% endif %}" {% if item.has_children %}class="dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false" data-bs-display="static"{% endif %}> {% if item.title == "HIDDEN" %}Korektury{% else %}{{ item.title_resolved }}{% endif %} </a> <div class="dropdown-menu submenu_mobile {% if item.is_current or item.in_current_branch %}active{% endif %}"> From 31ee8937f8bbf9912fcd7e72d6c5df9bac97dfb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 14 Feb 2024 17:24:46 +0100 Subject: [PATCH 057/225] Pruhy (local/test/prod) dozadu --- mamweb/static/css/layout.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index c149b197..ceba8fba 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -257,6 +257,7 @@ body.suprodweb:before, body.suprodweb:after { width: 20px; height: 100%; top: 0; + z-index: -1000; } body.localweb:before, body.testweb:before, body.suprodweb:before { From 14e8520b208d0c643a158c15536666fab6f1b785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 20 Feb 2024 17:51:01 +0100 Subject: [PATCH 058/225] =?UTF-8?q?=C3=9Aprava=20tabulky=20odevzdan=C3=BDc?= =?UTF-8?q?h=20=3D=20m=C3=BDch=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 28 --------------- mamweb/static/css/modules.css | 34 +++++++++++++++---- .../odevzdavatko/prehled_reseni.html | 2 +- 3 files changed, 28 insertions(+), 36 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index ceba8fba..6bb11092 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -343,10 +343,6 @@ div.odpocet { text-align: center; } -.odevzdanareseni_mid, .odevzdanareseni_small, .odevzdanareseni_mini { - display: none; -} - /*stránka organizátorů*/ div.seznam_orgu, div.rozcestnik_temat, div.seznam_archiv { @@ -497,14 +493,6 @@ div.zadani_termin .datum { margin-top: 8px; /* mezera mezi hlavním menu a submenu */ } - .odevzdanareseni_big { - display: none; - } - - .odevzdanareseni_mid { - display: table-cell; - } - } /* stránka přes celý menší displej, větší mobil, tablet */ @@ -573,14 +561,6 @@ div.zadani_termin .datum { .zjistit_vic hr { display: flex; } - - .odevzdanareseni_mid { - display: none; - } - - .odevzdanareseni_small { - display: table-cell; - } } /* malý tablet, mobil */ @@ -756,13 +736,5 @@ div.zadani_termin .datum { padding: 10px; } - .odevzdanareseni_small { - display: none; - } - - .odevzdanareseni_mini { - display: table-cell; - } - } diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 2d82b19c..5936459d 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -233,6 +233,16 @@ div.cislo_odkazy ul { } /*******************************************************/ +/** Tabulka mající všechna ohraničení **/ +.plne_ohranicena_tabulka { + border-collapse: collapse; +} + +.plne_ohranicena_tabulka tr th, .plne_ohranicena_tabulka tr td { + border: 1px solid black; + padding: 1px 10px 1px 10px; +} +/***************************************/ /** Tabulka odevzdaných a došlých řešení **/ .tabulka_doslych_reseni td { @@ -261,15 +271,25 @@ div.cislo_odkazy ul { /** Tabulka mých (řešitelových) řešení **/ -.odevzdana_reseni tr th, .odevzdana_reseni tr td { - border: 1px solid black; - padding: 1px 10px 1px 10px; - border-collapse: collapse; - text-align: center; +.moje_reseni tr th, .moje_reseni tr td { text-align: center; } +.moje_reseni tr td.problem { text-align: left; } + +/* Různá šířka problému */ +.odevzdanareseni_mid, .odevzdanareseni_small, .odevzdanareseni_mini { display: none; } + +@media (max-width: 970px) { + .odevzdanareseni_big { display: none; } + .odevzdanareseni_mid { display: table-cell; } } -.odevzdana_reseni.problem tr td { - text-align: left; +@media(max-width: 800px) { + .odevzdanareseni_mid { display: none; } + .odevzdanareseni_small { display: table-cell; } +} + +@media (max-width: 650px) { + .odevzdanareseni_small { display: none; } + .odevzdanareseni_mini { display: table-cell; } } /****************************************/ diff --git a/odevzdavatko/templates/odevzdavatko/prehled_reseni.html b/odevzdavatko/templates/odevzdavatko/prehled_reseni.html index f374b572..0700e3fe 100644 --- a/odevzdavatko/templates/odevzdavatko/prehled_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/prehled_reseni.html @@ -14,7 +14,7 @@ {% for rocnik, hodnoceni in podle_rocniku %} <h1>Ročník {{ rocnik }}</h1> -<table class="odevzdana_reseni"> +<table class="moje_reseni plne_ohranicena_tabulka"> <tr> <th>Doručeno</th> <th>Problém</th> From 5048439aee842afa6d74f8d709014c7c23f8864f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 20 Feb 2024 18:46:26 +0100 Subject: [PATCH 059/225] =?UTF-8?q?N=C4=9Bjak=C3=A9=20nepou=C5=BE=C3=ADvan?= =?UTF-8?q?=C3=A9=20css=20t=C5=99=C3=ADdy=20a=20hodnoty=20tag=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 6bb11092..7465b9d3 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -64,11 +64,6 @@ div.content { text-shadow: none; } -#title-mobile { - display: none; -} - - #header { position: relative; background: url("../images/header/vikendovka.jpg") no-repeat center top; /* poměr 350:970, TODO: aby to nemuselo být přesně na pixely */ @@ -77,7 +72,6 @@ div.content { } #header img.logo { - position: absolute center; width: 100%; filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); } @@ -187,7 +181,6 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { width: 100%; background: url("../images/mozaika-footer.svg") no-repeat top center; height: var(--footer-height); - background-position: relative; background-size: 100%; filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.4)); padding-top: 3.5%; @@ -584,20 +577,6 @@ div.zadani_termin .datum { background-image: none; } - #header.cojemam, - #header.soustredeni, - #header.zadani, - #header.clanky, - #header.archiv, - #header.NOC, - #header.NOCcojemam, - #header.NOCsoustredeni, - #header.NOCzaani, - #header.NOCclanky, - #header.NOCarchiv { - background-image: none; - } - #header img.logo { display: none; } From a4a4af5f931e213cc4b74e12ae2fb059236db52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 20 Feb 2024 18:52:18 +0100 Subject: [PATCH 060/225] =?UTF-8?q?Tohle=20asi=20pat=C5=99=C3=AD=20sem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/base.css | 7 +++++++ mamweb/static/css/modules.css | 5 ----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mamweb/static/css/base.css b/mamweb/static/css/base.css index 602452c7..70adda46 100644 --- a/mamweb/static/css/base.css +++ b/mamweb/static/css/base.css @@ -74,6 +74,13 @@ a:focus, a:hover, a:active { } /******************/ +/**** Další ****/ +input[type="file"] { + max-width: 250px; + text-overflow: ellipsis; +} +/***************/ + /**** Divné (aneb nevím, co bylo cílem) ****/ h1 a:hover { diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 5936459d..17047f1c 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -331,11 +331,6 @@ table#reseni.form td, table#reseni.form tr { display: inline-table; } -input[type="file"] { - max-width: 250px; - text-overflow: ellipsis; -} - .field-with-comment{ position:relative; } From 10c252cd16687622d8790489f0713608d4f98b9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 20 Feb 2024 19:14:17 +0100 Subject: [PATCH 061/225] =?UTF-8?q?Rozh=C3=A1zen=C3=AD=20@media,=20o=20kte?= =?UTF-8?q?r=C3=BDch=20je=20jasn=C3=A9,=20kam=20pat=C5=99=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 44 ++++++++++++----------------------- mamweb/static/css/modules.css | 18 ++++++++++++++ 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 7465b9d3..d488c3b0 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -200,6 +200,21 @@ p.license-mobile { display: none; margin-bottom: 0px; } + +@media (max-width: 650px) { + #footer { + display: none; + } + + p.license-mobile { + position: relative; + display: block; + font-size: 90%; + background-color: var(--hlavni-oranzova); + padding: 5%; + text-align: justify; + } +} /****************/ @@ -508,15 +523,6 @@ div.zadani_termin .datum { margin-top: 8px; /* mezera mezi hlavním menu a submenu */ } - a.ref-org-foto { - pointer-events: none; - } - - table#reseni.form td, table#reseni.form tr { - display: inline-grid; - max-width: 300px; - } - /* titulni stranka */ .titulnistrana { @@ -670,26 +676,6 @@ div.zadani_termin .datum { display: block; } - - /*patička mobil*/ - - #footer { - display: none; - } - - p.license-mobile { - position: relative; - display: block; - font-size: 90%; - background-color: var(--hlavni-oranzova); - padding: 5%; - text-align: justify; - } - - table.form td, table.form tr { - display: inherit; - } - /* titulni stranka */ .titulnistrana { diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 17047f1c..24984f67 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -120,6 +120,10 @@ div.flip-card-foto, div.flip-card-foto img { background-color: white; } +@media(max-width: 800px) { + a.ref-org-foto { pointer-events: none; } +} + /* karty archiv */ div.popis_rocniku { @@ -331,6 +335,20 @@ table#reseni.form td, table#reseni.form tr { display: inline-table; } +@media (max-width: 650px) { + table.form td, table.form tr { + display: inherit; + } +} + +@media(max-width: 800px) { + + table#reseni.form td, table#reseni.form tr { + display: inline-grid; + max-width: 300px; + } +} + .field-with-comment{ position:relative; } From ee7771bdb350337217ff67aa7f1d99dbae4575c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 20 Feb 2024 19:16:47 +0100 Subject: [PATCH 062/225] =?UTF-8?q?P=C5=99esun=20CSS=20menu=20mimo=20hlavn?= =?UTF-8?q?=C3=AD=20layout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 164 ++++++++++++++++++----------------- 1 file changed, 86 insertions(+), 78 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index d488c3b0..36a7fd32 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -86,6 +86,92 @@ div.content { /******************/ +/**** Footer ****/ +#footer { + position: absolute; + bottom: 0; + width: 100%; + background: url("../images/mozaika-footer.svg") no-repeat top center; + height: var(--footer-height); + background-size: 100%; + filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.4)); + padding-top: 3.5%; +} + +#footer p.license { + text-align: center; + font-weight: 400; + bottom: 0px; +} + +#footer p.license a { + color: #333; +} + +p.license-mobile { + display: none; + margin-bottom: 0px; +} + +@media (max-width: 650px) { + #footer { + display: none; + } + + p.license-mobile { + position: relative; + display: block; + font-size: 90%; + background-color: var(--hlavni-oranzova); + padding: 5%; + text-align: justify; + } +} +/****************/ + + +/**** LOGIN BAR ****/ +div.login-bar { + background: var(--orgovska-fialova); + color: var(--svetla-oranzova); + width: 100%; + + position: fixed; + margin-top: calc(-1 * var(--login-bar-height)); + min-height: var(--login-bar-height); + z-index: 4086; + + padding-left: 5px; + padding-right: 5px; +} + +div.login-bar div { + display: inline; +} + +a.login-ref-admin { + display: inline; + color: var(--barva-pozadi); +} + +.napis-webarum { + display: inline; + color: var(--barva-pozadi); + float: right; +} + +.napis-webarum a { + color: var(--svetla-oranzova); + text-decoration: underline; +} +/*******************/ + + + + + + + /**** MENU ****/ ul.menu_mobile { display: none; @@ -174,86 +260,8 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { /**************/ -/**** Footer ****/ -#footer { - position: absolute; - bottom: 0; - width: 100%; - background: url("../images/mozaika-footer.svg") no-repeat top center; - height: var(--footer-height); - background-size: 100%; - filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.4)); - padding-top: 3.5%; -} - -#footer p.license { - text-align: center; - font-weight: 400; - bottom: 0px; -} - -#footer p.license a { - color: #333; -} - -p.license-mobile { - display: none; - margin-bottom: 0px; -} - -@media (max-width: 650px) { - #footer { - display: none; - } - - p.license-mobile { - position: relative; - display: block; - font-size: 90%; - background-color: var(--hlavni-oranzova); - padding: 5%; - text-align: justify; - } -} -/****************/ -/**** LOGIN BAR ****/ - -div.login-bar { - background: var(--orgovska-fialova); - color: var(--svetla-oranzova); - width: 100%; - - position: fixed; - margin-top: calc(-1 * var(--login-bar-height)); - min-height: var(--login-bar-height); - z-index: 4086; - - padding-left: 5px; - padding-right: 5px; -} - -div.login-bar div { - display: inline; -} - -a.login-ref-admin { - display: inline; - color: var(--barva-pozadi); -} - -.napis-webarum { - display: inline; - color: var(--barva-pozadi); - float: right; -} - -.napis-webarum a { - color: var(--svetla-oranzova); - text-decoration: underline; -} -/*******************/ /**** ROZLIŠENÍ MEZI LOKÁLNÍM, TESTOVACÍM A PRODUKČNÍM WEBEM ****/ From 7b1e3ab58b9eb25dc2d3ae55477d929e9eb347ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 20 Feb 2024 19:26:57 +0100 Subject: [PATCH 063/225] =?UTF-8?q?Rozhozen=C3=AD=20layoutovac=C3=AD=20@me?= =?UTF-8?q?dia=20(styly=20na=20men=C5=A1=C3=ADch=20displej=C3=ADch)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 505 +++++++++++++++++------------------ 1 file changed, 243 insertions(+), 262 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 36a7fd32..cabecd94 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -167,6 +167,63 @@ a.login-ref-admin { /*******************/ +/* stránka přes celý displej */ +@media (max-width: 970px) { + div.container { + width: 100%; + } + + #title { + width: 100%; + text-align: center; + } + + #header { + background-size: 100%; + } + + #header img.logo { + width: 100%; + } + + #footer { + width: 100%; + } +} + +/* malý tablet, mobil */ +@media (max-width: 650px) { + .no-mobile{ + display: none; + } + + #hide-if-small.login-bar-flatpage { + display: none; + } + + #title { + display: none; + } + + #header { + width: 100%; + top: 0px; + background-image: none; + } + + #header img.logo { + display: none; + } + + #header img.logo-mobile { + display: block; + top: 0px; + left: 0px; + width: 100%; + filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.4)); + margin-bottom: 3px; + } +} @@ -257,6 +314,126 @@ ul.menu li.active>a { ul.submenu li.active>a, .parentactive ul li:first-child>a { color: black; } + +@media (max-width: 970px) { + + ul.menu { + font-size: 90%; + margin-top: -7px; + } + + ul.menu li { + margin-top: 10px; /* posunutí textu hlavního menu níže */ + } + + ul.submenu li { + margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + } + + ul.submenu { + margin-top: 8px; /* mezera mezi hlavním menu a submenu */ + } +} + +@media(max-width: 800px) { + ul.menu { + font-size: 80%; + margin-top: -2px; + } + + ul.menu li { + margin-top: 10px; /* posunutí textu hlavního menu níže */ + } + + ul.submenu li { + margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + } + + ul.submenu { + margin-top: 8px; /* mezera mezi hlavním menu a submenu */ + } +} + +@media (max-width: 650px) { + ul.menu { + display: none; + } + + ul.menu_mobile { + display: block; + z-index: 10; + position: sticky; + font-variant: small-caps; + font-size: 150%; + font-weight: bold; + list-style-type: none; + padding-top: 3px; + padding-bottom: 3px; + padding-left: 12px; + } + + ul.menu_mobile a:active, + ul.menu_mobile a:hover, + ul.menu_mobile a:focus { + text-decoration: none; + color: black; + } + + ul.menu_mobile ul { + list-style-type: none; + font-size: 90%; + color: black; /*černé šipky submenu*/ + } + + ul.menu_mobile ul li > a { + color: black; + } + + ul.menu_mobile ul li::before { + content: ' \276D '; /*https://www.w3schools.com/cssref/css_entities.asp*/ + } + + ul.menu_mobile br { + display: none; + } + + nav.nav-button { + display: block; + position: sticky; + position: -webkit-sticky; + top: 0; + z-index: 10; + } + + #navbar-content { + background-color: var(--hlavni-oranzova); + } + + button.navbar-button { + color: #f9d59e; + background-color: var(--hlavni-oranzova); + font-variant: small-caps; + font-size: 160%; + border-radius: 0px; + border-width: 0px; + width: 100%; + text-align: right; + } + + button.navbar-button span::after { + content: ' \2261 '; + font-size: 120%; + } + + li.dropdown div.submenu_mobile { + display: none; + --bs-dropdown-bg: var(--hlavni-oranzova); + } + + li.dropdown div.submenu_mobile.show { + display: block; + } +} /* konec @media */ /**************/ @@ -359,6 +536,72 @@ div.odpocet { text-align: center; } +@media(max-width: 800px){ + + /* titulni stranka */ + + .titulnistrana { + display: block; + } + + .graf { + padding-top: 40px; + } + + .titulnistrana_obsah { + width: 100%; + } + + .vitej_titulka, .temata_titulka { + width: 49%; + padding: 10px; + display: table-cell; + } + + .titulnistrana_novinky { + width: 100%; + max-width: 500px; + padding: 10px; + margin: auto; + } + + #svg-graf { + width: 100%; + max-width: 500px; + padding: 10px; + margin: auto; + } + + .zjistit_vic hr { + display: flex; + } +} + +@media (max-width: 650px) { + .titulnistrana { + display: block; + } + + .graf { + padding-top: 40px; + } + + .titulnistrana_obsah { + width: 100%; + } + + .vitej_titulka, .temata_titulka { + width: 100%; + padding: 10px; + display: block; + } + + .titulnistrana_novinky { + width: 100%; + padding: 10px; + } +} + /*stránka organizátorů*/ div.seznam_orgu, div.rozcestnik_temat, div.seznam_archiv { @@ -449,265 +692,3 @@ div.zadani_termin .datum { } } /****************/ - - - - - - - - - - - - - - -/********************** - * Zmenšování displeje -***********************/ - - -/* stránka přes celý displej */ -@media (max-width: 970px) { - - div.container { - width: 100%; - } - - #title { - width: 100%; - text-align: center; - } - - #header { - background-size: 100%; - } - - #header img.logo { - width: 100%; - } - - #footer { - width: 100%; - } - - ul.menu { - font-size: 90%; - margin-top: -7px; - } - - ul.menu li { - margin-top: 10px; /* posunutí textu hlavního menu níže */ - } - - ul.submenu li { - margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ - } - - ul.submenu { - margin-top: 8px; /* mezera mezi hlavním menu a submenu */ - } - -} - -/* stránka přes celý menší displej, větší mobil, tablet */ -@media(max-width: 800px){ - - ul.menu { - font-size: 80%; - margin-top: -2px; - } - - ul.menu li { - margin-top: 10px; /* posunutí textu hlavního menu níže */ - } - - ul.submenu li { - margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ - } - - ul.submenu { - margin-top: 8px; /* mezera mezi hlavním menu a submenu */ - } - - /* titulni stranka */ - - .titulnistrana { - display: block; - } - - .graf { - padding-top: 40px; - } - - .titulnistrana_obsah { - width: 100%; - } - - .vitej_titulka, .temata_titulka { - width: 49%; - padding: 10px; - display: table-cell; - } - - .titulnistrana_novinky { - width: 100%; - max-width: 500px; - padding: 10px; - margin: auto; - } - - #svg-graf { - width: 100%; - max-width: 500px; - padding: 10px; - margin: auto; - } - - .zjistit_vic hr { - display: flex; - } -} - -/* malý tablet, mobil */ -@media (max-width: 650px) { - - .no-mobile{ - display: none; - } - - #hide-if-small.login-bar-flatpage { - display: none; - } - - #title { - display: none; - } - - #header { - width: 100%; - top: 0px; - background-image: none; - } - - #header img.logo { - display: none; - } - - #header img.logo-mobile { - display: block; - top: 0px; - left: 0px; - width: 100%; - filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.4)); - margin-bottom: 3px; - } - - /* mobilní menu */ - ul.menu { - display: none; - } - - ul.menu_mobile { - display: block; - z-index: 10; - position: sticky; - font-variant: small-caps; - font-size: 150%; - font-weight: bold; - list-style-type: none; - padding-top: 3px; - padding-bottom: 3px; - padding-left: 12px; - } - - ul.menu_mobile a:active, - ul.menu_mobile a:hover, - ul.menu_mobile a:focus { - text-decoration: none; - color: black; - } - - ul.menu_mobile ul { - list-style-type: none; - font-size: 90%; - color: black; /*černé šipky submenu*/ - } - - ul.menu_mobile ul li>a { - color: black; - } - - ul.menu_mobile ul li::before { - content: ' \276D '; /*https://www.w3schools.com/cssref/css_entities.asp*/ - } - - ul.menu_mobile br { - display: none; - } - - nav.nav-button { - display: block; - position: sticky; - position: -webkit-sticky; - top: 0; - z-index: 10; - } - - #navbar-content { - background-color: var(--hlavni-oranzova); - } - - button.navbar-button { - color: #f9d59e; - background-color: var(--hlavni-oranzova); - font-variant: small-caps; - font-size: 160%; - border-radius: 0px; - border-width: 0px; - width: 100%; - text-align: right; - } - - button.navbar-button span::after{ - content: ' \2261 '; - font-size: 120%; - } - - li.dropdown div.submenu_mobile{ - display: none; - --bs-dropdown-bg: var(--hlavni-oranzova); - } - - li.dropdown div.submenu_mobile.show{ - display: block; - } - - /* titulni stranka */ - - .titulnistrana { - display: block; - } - - .graf { - padding-top: 40px; - } - - .titulnistrana_obsah { - width: 100%; - } - - .vitej_titulka, .temata_titulka { - width: 100%; - padding: 10px; - display: block; - } - - .titulnistrana_novinky { - width: 100%; - padding: 10px; - } - -} - From 3f8756148d35e3d1616513b0f13a8f9c4290b292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 20 Feb 2024 19:34:50 +0100 Subject: [PATCH 064/225] =?UTF-8?q?Drobn=C3=A9=20=C3=BApravy=20CSSek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/base.css | 4 ++-- mamweb/static/css/layout.css | 36 +++++++++++++++++------------------ mamweb/static/css/modules.css | 17 ++++++++--------- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/mamweb/static/css/base.css b/mamweb/static/css/base.css index 70adda46..49fc894b 100644 --- a/mamweb/static/css/base.css +++ b/mamweb/static/css/base.css @@ -39,7 +39,7 @@ h5 { font-size: 140%; } h6 { font-size: 120%; } h1 { - margin-top: 0px; + margin-top: 0; } /*****************/ @@ -55,7 +55,7 @@ a:focus, a:hover, a:active { } .button { - margin: 10px 0px 10px 0px; + margin: 10px 0 10px 0; padding: 4px 0; /*vertikální centování textu*/ text-align: center; background-color: var(--hlavni-oranzova); diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index cabecd94..ad88656f 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -13,7 +13,7 @@ div.container { margin: auto; min-height: 100vh; position: relative; - padding: 0px; + padding: 0; } @@ -101,7 +101,7 @@ div.content { #footer p.license { text-align: center; font-weight: 400; - bottom: 0px; + bottom: 0; } #footer p.license a { @@ -110,7 +110,7 @@ div.content { p.license-mobile { display: none; - margin-bottom: 0px; + margin-bottom: 0; } @media (max-width: 650px) { @@ -207,7 +207,7 @@ a.login-ref-admin { #header { width: 100%; - top: 0px; + top: 0; background-image: none; } @@ -217,10 +217,10 @@ a.login-ref-admin { #header img.logo-mobile { display: block; - top: 0px; - left: 0px; + top: 0; + left: 0; width: 100%; - filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.4)); + filter: drop-shadow(0px 0 5px rgba(0, 0, 0, 0.4)); margin-bottom: 3px; } } @@ -246,7 +246,7 @@ div.dropdown-backdrop { /* tohle způsobuje, že funguje mobilní menu */ ul.menu { width: 100%; - padding: 0px; + padding: 0; margin-top: -5px; /* posune celé menu nahoru (pak potřeba zvětšit mezeru mezi menu a submenu) */ font-variant: small-caps; @@ -259,7 +259,7 @@ ul.menu a { } ul.menu li { - margin: 0px; + margin: 0; display: inline-block; width: 16.666667%; text-align: center; @@ -294,7 +294,7 @@ ul.submenu { ul.submenu li { width: auto; - padding: 0px 20px 0px 20px; + padding: 0 20px 0 20px; display: inline-block; } ul.submenu li>a { @@ -327,7 +327,7 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { } ul.submenu li { - margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ } ul.submenu { @@ -346,7 +346,7 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { } ul.submenu li { - margin-top: 0px; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ } ul.submenu { @@ -414,8 +414,8 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { background-color: var(--hlavni-oranzova); font-variant: small-caps; font-size: 160%; - border-radius: 0px; - border-width: 0px; + border-radius: 0; + border-width: 0; width: 100%; text-align: right; } @@ -514,7 +514,7 @@ body.suprodweb:before, body.suprodweb:after { background: red; } } .novinka_obrazek { - margin: 10px 0px 10px 0px; + margin: 10px 0 10px 0; width: 100%; } @@ -635,7 +635,7 @@ div.cislo_pole { div.seznam_orgu h3 { text-align: center; margin-top: 10px; - margin-bottom: 0px; + margin-bottom: 0; } div.org_email { @@ -665,8 +665,8 @@ div.zadani_termin { } div.zadani_termin .datum { - color:var(--hlavni-oranzova); - margin:0px; + color: var(--hlavni-oranzova); + margin: 0; } #obrazek_cisla_archiv { diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 24984f67..0675e688 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -18,12 +18,12 @@ } .mam-org-only .mam-org-only { - border: 0px; + border: 0; } li.mam-org-only { - padding: 3px 0px; - margin: -2px 0px; + padding: 3px 0; + margin: -2px 0; } /**********************************/ @@ -144,8 +144,8 @@ div.cislo_odkazy a:hover { } div.cislo_odkazy ul { - margin: 0px; - padding: 0px; + margin: 0; + padding: 0; } /***********************/ @@ -357,12 +357,11 @@ table#reseni.form td, table#reseni.form tr { display:none; text-shadow: 0 1px 0 #fff; background-color: #f0f0f0 ; - border-color: #dbdbdb; position:absolute; z-index:100; - border:1px; - border-style:solid; border-width:1px; + border-color: #dbdbdb; + border-style:solid; border-radius: 5px; padding:3px; top:50px; @@ -385,7 +384,7 @@ textarea.feedback { ul.form { list-style-type: none; - padding-left: 0px; + padding-left: 0; } label.field-label { font-weight: normal; From 3363fbdc7c45b002b7067027b0e38a2898b66820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 24 Feb 2024 08:33:08 +0100 Subject: [PATCH 065/225] Tohle asi sem --- mamweb/static/css/layout.css | 5 ----- mamweb/static/css/modules.css | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index ad88656f..1e509414 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -638,11 +638,6 @@ div.seznam_orgu h3 { margin-bottom: 0; } -div.org_email { - margin-bottom: 10px; - font-weight: bold; -} - /* aktuální zadání */ .stranka_aktualni_zadani { text-align: center; diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 0675e688..1247e602 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -147,6 +147,12 @@ div.cislo_odkazy ul { margin: 0; padding: 0; } + +/* karty orgů */ +div.org_email { + margin-bottom: 10px; + font-weight: bold; +} /***********************/ From cc0998063298f7e7cea39b42939a702e3777a368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 24 Feb 2024 08:55:09 +0100 Subject: [PATCH 066/225] =?UTF-8?q?Lep=C5=A1=C3=AD=20=C5=99e=C5=A1en=C3=AD?= =?UTF-8?q?=20ot=C3=A1=C4=8Dec=C3=ADch=20karet=20na=20dotykov=C3=BDch=20za?= =?UTF-8?q?=C5=99=C3=ADzen=C3=ADch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 5 +++-- seminar/templates/seminar/cojemam/organizatori.html | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 1247e602..90b4f6cb 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -120,8 +120,9 @@ div.flip-card-foto, div.flip-card-foto img { background-color: white; } -@media(max-width: 800px) { - a.ref-org-foto { pointer-events: none; } +/* Pokud je na přední straně něco proklikávacího (třeba celá fotka), tak na dotykových zařízeních nemůže proklikávat, aby se dalo otáčet */ +@media(hover: none) { + .flip-card-foto a { pointer-events: none; } } /* karty archiv */ diff --git a/seminar/templates/seminar/cojemam/organizatori.html b/seminar/templates/seminar/cojemam/organizatori.html index 799bbe49..b6d3c88f 100644 --- a/seminar/templates/seminar/cojemam/organizatori.html +++ b/seminar/templates/seminar/cojemam/organizatori.html @@ -44,7 +44,7 @@ <div class="flip-card-foto"> {% if org.osoba.foto %} - <a href="{{org.osoba.foto.url}}" class="ref-org-foto"><img src="{{org.osoba.foto_male.url}}" height="{{org.osoba.foto_male.height}}" alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"></a> + <a href="{{org.osoba.foto.url}}"><img src="{{org.osoba.foto_male.url}}" height="{{org.osoba.foto_male.height}}" alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"></a> {% else %} {# pokud osoba nemá fotku, zobrazuje se defaultní obrázek #} {% load static %} <img src="{% static 'images/no-photo.png' %}" height=200px alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"> {% endif %} From 8cd3250bb095c220ae9d1d05200cef0152a5eb6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 24 Feb 2024 10:42:54 +0100 Subject: [PATCH 067/225] =?UTF-8?q?Zkrocen=C3=AD=20styl=C5=AF=20okolo=20ot?= =?UTF-8?q?=C3=A1=C4=8Dec=C3=ADch=20karet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 36 ------- mamweb/static/css/modules.css | 94 +++++++++++++------ seminar/templates/seminar/archiv/cisla.html | 8 +- seminar/templates/seminar/archiv/rocnik.html | 12 +-- .../seminar/cojemam/organizatori.html | 4 +- .../templates/seminar/tematka/rozcestnik.html | 5 +- 6 files changed, 81 insertions(+), 78 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 1e509414..9d22f009 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -602,42 +602,6 @@ div.odpocet { } } -/*stránka organizátorů*/ - -div.seznam_orgu, div.rozcestnik_temat, div.seznam_archiv { - text-align: center; - padding-bottom: 10px; -} - -div.org_pole, div.rocnik_pole, div.tema_pole { - display: inline-block; - width: 30%; - min-width: 300px; - text-align: center; -} - -div.tema_pole { - display: inline-block; - width: 40%; - min-width: 350px; - padding-bottom: 20px; - text-align: center; -} - -div.cislo_pole { - display: inline-block; - width: 15%; - min-width: 165px; - text-align: center; - padding: 10px; -} - -div.seznam_orgu h3 { - text-align: center; - margin-top: 10px; - margin-bottom: 0; -} - /* aktuální zadání */ .stranka_aktualni_zadani { text-align: center; diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 90b4f6cb..e459b374 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -51,32 +51,14 @@ li.mam-org-only { /**** OTÁČECÍ KARTY ****/ /* (orgové, archiv) */ + +/** Samotné karty **/ .flip-card { perspective: 1000px; /* Remove this if you don't want the 3D effect */ margin-left: auto; margin-right: auto; } -#organizatori.flip-card { - width: 200px; - height: 250px; -} - -#archiv.flip-card { - width: 210px; - height: 298px; -} - -#archiv-rocnik.flip-card { - width: 144px; - height: 205px; -} - -#tema-rozcestnik.flip-card { - width: 300px; - height: 300px; -} - /* This container is needed to position the front and back side */ .flip-card-inner { position: relative; @@ -109,21 +91,79 @@ div.flip-card-foto, div.flip-card-foto img { /* Style the back side */ .flip-card-back { - background-color: var(--svetla-oranzova); - color: black; transform: rotateY(180deg); padding: 10px; padding-top: 20px; } -#archiv.flip-card-back { - background-color: white; -} - /* Pokud je na přední straně něco proklikávacího (třeba celá fotka), tak na dotykových zařízeních nemůže proklikávat, aby se dalo otáčet */ @media(hover: none) { .flip-card-foto a { pointer-events: none; } } +/*******************/ + + +.flip-card-back { + background-color: var(--svetla-oranzova); + color: black; +} + +.otaceci_cisla .flip-card-back { + background-color: white; + color: unset; +} + +/* Otáčecí karta musí mít kolem sebe nějaké místo a mívá nějaký nadpis */ +.flip_card_container { + display: inline-block; + width: 30%; + min-width: 300px; + text-align: center; +} + + +/** Jednotlivá použití **/ +.seznam_orgu .flip-card { + width: 200px; + height: 250px; +} + +.seznam_orgu .flip_card_container h3 { + margin-bottom: 0; +} + + +.seznam_archiv .flip-card { + width: 210px; + height: 298px; +} + + +.cisla-v-rocniku .flip-card { + width: 144px; + height: 205px; +} + +.cisla-v-rocniku .flip_card_container { + width: 15%; + min-width: 165px; + padding: 10px; +} + + +.rozcestnik_temat .flip-card { + width: 300px; + height: 300px; +} + +.rozcestnik_temat .flip_card_container { + width: 40%; + min-width: 350px; + padding-bottom: 20px; +} +/************************/ + + /* karty archiv */ @@ -136,7 +176,7 @@ div.popis_rocniku { div.popis_rocniku a, div.cislo_odkazy a { font-weight: bold; - color: black; + color: unset; } div.popis_rocniku a:hover, diff --git a/seminar/templates/seminar/archiv/cisla.html b/seminar/templates/seminar/archiv/cisla.html index 830e37b4..c2b52a5a 100644 --- a/seminar/templates/seminar/archiv/cisla.html +++ b/seminar/templates/seminar/archiv/cisla.html @@ -7,11 +7,11 @@ Archiv čísel {% endblock %} </h2> - <div class="seznam_archiv"> + <div class="seznam_archiv otaceci_cisla"> {% for rocnik, url_png in object_list.items %} - <div class="rocnik_pole"> + <div class="flip_card_container"> <h3> <a href='{{ rocnik.verejne_url }}'>Ročník {{ rocnik }}</a> @@ -20,7 +20,7 @@ {# karta ročníku - zepředu obrázek prvního čísla, zezadu odkaz na jednotlivá čísla a výsledkovku #} - <div class="flip-card" id="archiv"> + <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card-front"> @@ -30,7 +30,7 @@ </div> </div> - <div class="flip-card-back" id="archiv"> + <div class="flip-card-back"> <div class="popis_rocniku"> Jednotlivá čísla: <ul> diff --git a/seminar/templates/seminar/archiv/rocnik.html b/seminar/templates/seminar/archiv/rocnik.html index fd2a99b6..1b409583 100644 --- a/seminar/templates/seminar/archiv/rocnik.html +++ b/seminar/templates/seminar/archiv/rocnik.html @@ -19,13 +19,13 @@ <h2>Čísla</h2> -<div class="cisla-v-rocniku"> +<div class="cisla-v-rocniku otaceci_cisla"> {% for c in rocnik.verejna_cisla %} - <div class="cislo_pole"> + <div class="flip_card_container"> <h6> Číslo {{ c.kod }}</h6> - <div class="flip-card" id="archiv-rocnik"> + <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card-front"> @@ -65,13 +65,13 @@ {% if user.je_org and rocnik.neverejna_cisla %} <div class="mam-org-only"> - <div class="cisla-v-rocniku"> + <div class="cisla-v-rocniku otaceci_cisla"> {% for c in rocnik.neverejna_cisla %} - <div class="cislo_pole"> + <div class="flip_card_container"> <h6> Číslo {{ c.kod }}</h6> - <div class="flip-card" id="archiv-rocnik"> + <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card-front"> diff --git a/seminar/templates/seminar/cojemam/organizatori.html b/seminar/templates/seminar/cojemam/organizatori.html index b6d3c88f..a9257a01 100644 --- a/seminar/templates/seminar/cojemam/organizatori.html +++ b/seminar/templates/seminar/cojemam/organizatori.html @@ -18,7 +18,7 @@ <div class="seznam_orgu"> {% for org in object_list %} - <div class="org_pole"> + <div class="flip_card_container"> <h3> {{org.osoba.jmeno}} @@ -37,7 +37,7 @@ {# karta organizátora - zepředu fotka, zezadu popis, u neaktivních data kdy organizovali #} - <div class="flip-card" id="organizatori"> + <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card-front"> diff --git a/seminar/templates/seminar/tematka/rozcestnik.html b/seminar/templates/seminar/tematka/rozcestnik.html index 605a6549..52101483 100644 --- a/seminar/templates/seminar/tematka/rozcestnik.html +++ b/seminar/templates/seminar/tematka/rozcestnik.html @@ -19,15 +19,14 @@ <div class="rozcestnik_temat"> {% for tematko in tematka %} - {# karta témátka - zepředu ilustrační, zezadu abstrakt #} -<div class="tema_pole"> +<div class="flip_card_container"> <h3> <a href='{{ tematko.verejne_url }}'>Téma {{ tematko.nazev }}</a> </h3> - <div class="flip-card" id="tema-rozcestnik"> + <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card-front"> From bd1d04802be7a607705cf2a292fe26aa93debab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 24 Feb 2024 11:15:01 +0100 Subject: [PATCH 068/225] =?UTF-8?q?Oprava=20v=C3=BDsledkovek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 7 +++++-- seminar/templates/seminar/archiv/cislo.html | 4 ---- seminar/templates/seminar/archiv/rocnik.html | 3 --- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index e459b374..eff70525 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -274,11 +274,14 @@ div.org_email { z-index: 1; } -/* (Snad) zneprůhlednění prvního řádku (a sloupce) */ +/* (Snad) zneprůhlednění prvního řádku (a sloupce) FIXME: tohle je trochu hack a potenciálně může něco rozbít */ .tabulka_s_uchycenym_radkem_a_sloupcem, .tabulka_s_uchycenym_radkem_a_sloupcem thead, .tabulka_s_uchycenym_radkem_a_sloupcem tbody, -.tabulka_s_uchycenym_radkem_a_sloupcem tr +.tabulka_s_uchycenym_radkem_a_sloupcem tr, +.container, +.content-wrapper, +.content { background: inherit; } diff --git a/seminar/templates/seminar/archiv/cislo.html b/seminar/templates/seminar/archiv/cislo.html index fa34e965..ca8f4714 100644 --- a/seminar/templates/seminar/archiv/cislo.html +++ b/seminar/templates/seminar/archiv/cislo.html @@ -2,8 +2,6 @@ {% load render_bundle from webpack_loader %} {% block content %} - <div> - <h1> {% block nadpis1a %} Číslo {{ cislo }} @@ -90,6 +88,4 @@ {% endif %} {% endif %} {% endfor %} - -</div> {% endblock content %} diff --git a/seminar/templates/seminar/archiv/rocnik.html b/seminar/templates/seminar/archiv/rocnik.html index 1b409583..a49c1a89 100644 --- a/seminar/templates/seminar/archiv/rocnik.html +++ b/seminar/templates/seminar/archiv/rocnik.html @@ -1,7 +1,6 @@ {% extends "base.html" %} {% block content %} -<div> <h2> {% block nadpis1a %} Ročník {{ rocnik }} @@ -127,6 +126,4 @@ {% include "vysledkovky/vysledkovka_rocnik.html" with vysledkovka=vysledkovka_neverejna %} </div> {% endif %} - -</div> {% endblock content %} From a59e2f99777c36eb24f8c03909092fec10b17dd0 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 3 Mar 2024 22:44:59 +0100 Subject: [PATCH 069/225] =?UTF-8?q?U=C5=BEite=C4=8Dn=C3=A1=20chybov=C3=A1?= =?UTF-8?q?=20str=C3=A1nka=20pro=20ne=C3=BAsp=C4=9B=C5=A1n=C3=A9=20generov?= =?UTF-8?q?=C3=A1n=C3=AD=20ob=C3=A1lek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 318eee21..9dc03550 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -562,6 +562,11 @@ def cisloObalkyView(request, rocnik, cislo): def obalkyView(request, resitele): + if len(resitele) == 0: + return render(request, 'universal.html', { + 'title': 'Není pro koho vyrobit obálky.', + 'text': 'Právě ses pokusil/a vygenerovat obálky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)', + }) tex = render(request,'seminar/archiv/obalky.tex', {'resitele': resitele}).content tempdir = tempfile.mkdtemp() From d2926bd1a7b577c5ec7a4afbae67f5ba24784e15 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 3 Mar 2024 23:05:39 +0100 Subject: [PATCH 070/225] =?UTF-8?q?Spr=C3=A1vn=C3=A9=20hled=C3=A1n=C3=AD?= =?UTF-8?q?=20li=C5=A1=C3=A1ka=20pro=20ob=C3=A1lky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 9dc03550..e345e45d 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -8,6 +8,7 @@ from django.http import Http404 from django.db.models import Q, Sum, Count from django.views.generic.base import RedirectView from django.core.exceptions import PermissionDenied +from django.contrib.staticfiles.finders import find import seminar.models as s import seminar.models as m @@ -572,7 +573,7 @@ def obalkyView(request, resitele): tempdir = tempfile.mkdtemp() with open(tempdir+"/obalky.tex","w") as texfile: texfile.write(tex.decode()) - shutil.copy(os.path.join(settings.STATIC_ROOT, 'seminar/lisak.pdf'), tempdir) + shutil.copy(find('seminar/lisak.pdf'), tempdir) subprocess.call(["pdflatex","obalky.tex"], cwd = tempdir) with open(tempdir+"/obalky.pdf","rb") as pdffile: From 4ecd2a7a61509f7a1b7d50ebd1e87ba79ae3e127 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 3 Mar 2024 23:06:43 +0100 Subject: [PATCH 071/225] =?UTF-8?q?Je=C5=A1t=C4=9B=20status=20k=C3=B3d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index e345e45d..1d0d87ba 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -37,6 +37,7 @@ import unicodedata import logging import time from collections.abc import Sequence +import http from seminar.utils import aktivniResitele @@ -564,10 +565,14 @@ def cisloObalkyView(request, rocnik, cislo): def obalkyView(request, resitele): if len(resitele) == 0: - return render(request, 'universal.html', { - 'title': 'Není pro koho vyrobit obálky.', - 'text': 'Právě ses pokusil/a vygenerovat obálky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)', - }) + return HttpResponse( + render(request, 'universal.html', { + 'title': 'Není pro koho vyrobit obálky.', + 'text': 'Právě ses pokusil/a vygenerovat obálky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)', + }), + status=http.HTTPStatus.NOT_FOUND, + ) + tex = render(request,'seminar/archiv/obalky.tex', {'resitele': resitele}).content tempdir = tempfile.mkdtemp() From 213d3cc7b239ddedd3ff4c91fb20af63b910ca4e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 3 Mar 2024 23:07:51 +0100 Subject: [PATCH 072/225] =?UTF-8?q?Lep=C5=A1=C3=AD=20vyr=C3=A1b=C4=9Bn?= =?UTF-8?q?=C3=AD=20do=C4=8Dasn=C3=BDch=20adres=C3=A1=C5=99=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chceme je po sobě nejspíš mazat i když to spadne. Možná to zesložití vývoj, ale je to odolnější proti náhodnému pádu čehokoliv. --- seminar/views/views_all.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 1d0d87ba..662c5025 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -575,15 +575,14 @@ def obalkyView(request, resitele): tex = render(request,'seminar/archiv/obalky.tex', {'resitele': resitele}).content - tempdir = tempfile.mkdtemp() - with open(tempdir+"/obalky.tex","w") as texfile: - texfile.write(tex.decode()) - shutil.copy(find('seminar/lisak.pdf'), tempdir) - subprocess.call(["pdflatex","obalky.tex"], cwd = tempdir) + with tempfile.TemporaryDirectory() as tempdir: + with open(tempdir+"/obalky.tex","w") as texfile: + texfile.write(tex.decode()) + shutil.copy(find('seminar/lisak.pdf'), tempdir) + subprocess.call(["pdflatex","obalky.tex"], cwd = tempdir) - with open(tempdir+"/obalky.pdf","rb") as pdffile: - response = HttpResponse(pdffile.read(), content_type='application/pdf') - shutil.rmtree(tempdir) + with open(tempdir+"/obalky.pdf","rb") as pdffile: + response = HttpResponse(pdffile.read(), content_type='application/pdf') return response From 88ae103ec11c5cfa874bd9bc915e44ba7946aae0 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 3 Mar 2024 23:09:18 +0100 Subject: [PATCH 073/225] =?UTF-8?q?Lep=C5=A1=C3=AD=20slo=C5=BEky=20i=20pro?= =?UTF-8?q?=20stvrzenky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index f2aafdf7..899ee7f9 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -79,14 +79,14 @@ def soustredeniStvrzenkyView(request, soustredeni): castka = Nastaveni.get_solo().cena_sous tex = render(request, 'soustredeni/stvrzenky.tex', {'ucastnici': ucastnici, 'soustredeni': soustredeni, 'castka': castka}).content - tempdir = Path(tempfile.mkdtemp()) - with open(tempdir / "stvrzenky.tex", "w") as texfile: - texfile.write(tex.decode()) + with tempfile.TemporaryDirectory() as tempdirfn: + tempdir = Path(tempdirfn) + with open(tempdir / "stvrzenky.tex", "w") as texfile: + texfile.write(tex.decode()) - shutil.copy(find('images/logomm.pdf'), tempdir) - subprocess.call(["pdflatex", "stvrzenky.tex"], cwd = tempdir, stdout=subprocess.DEVNULL) + shutil.copy(find('images/logomm.pdf'), tempdir) + subprocess.call(["pdflatex", "stvrzenky.tex"], cwd = tempdir, stdout=subprocess.DEVNULL) - with open(tempdir / "stvrzenky.pdf", "rb") as pdffile: - response = HttpResponse(pdffile.read(), content_type='application/pdf') - shutil.rmtree(tempdir) + with open(tempdir / "stvrzenky.pdf", "rb") as pdffile: + response = HttpResponse(pdffile.read(), content_type='application/pdf') return response From a1000ad2bfbc5258f513b258d553f10386593a30 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 3 Mar 2024 23:11:51 +0100 Subject: [PATCH 074/225] =?UTF-8?q?Chybov=C3=A1=20hl=C3=A1=C5=A1ka=20i=20p?= =?UTF-8?q?ro=20stvrzenky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/soustredeni/views.py b/soustredeni/views.py index 899ee7f9..f150b6b8 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -9,6 +9,7 @@ import tempfile import shutil import subprocess from pathlib import Path +import http from seminar.views import obalkyView @@ -76,6 +77,14 @@ def soustredeniUcastniciExportView(request, soustredeni): def soustredeniStvrzenkyView(request, soustredeni): soustredeni = get_object_or_404(Soustredeni, id=soustredeni) ucastnici = Resitel.objects.filter(soustredeni=soustredeni) + if ucastnici.count() == 0: + return HttpResponse( + render(request, 'universal.html', { + 'title': 'Není pro koho vyrobit stvrzenky.', + 'text': 'Právě ses pokusil/a vygenerovat stvrzenky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)', + }), + status=http.HTTPStatus.NOT_FOUND, + ) castka = Nastaveni.get_solo().cena_sous tex = render(request, 'soustredeni/stvrzenky.tex', {'ucastnici': ucastnici, 'soustredeni': soustredeni, 'castka': castka}).content From 7a34fced0ad3e5028f5088044000718b3b7e8b33 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 21:27:26 +0100 Subject: [PATCH 075/225] =?UTF-8?q?P=C5=99=C3=ADprava=20na=20zru=C5=A1en?= =?UTF-8?q?=C3=AD=20person=C3=A1ln=C3=ADch=20v=C4=9Bc=C3=AD=20ze=20Semin?= =?UTF-8?q?=C3=A1=C5=99e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modely: Osoba, Řešitel, Organizátor, Škola, Příjemce --- korektury/migrations/0021_auto_20240312_2124.py | 13 +++++++++++++ personalni/migrations/0002_auto_20240312_2118.py | 13 +++++++++++++ prednasky/migrations/0013_auto_20240312_2124.py | 13 +++++++++++++ seminar/migrations/0117_auto_20240312_2125.py | 16 ++++++++++++++++ sifrovacka/migrations/0004_auto_20240312_2124.py | 13 +++++++++++++ 5 files changed, 68 insertions(+) create mode 100644 korektury/migrations/0021_auto_20240312_2124.py create mode 100644 personalni/migrations/0002_auto_20240312_2118.py create mode 100644 prednasky/migrations/0013_auto_20240312_2124.py create mode 100644 seminar/migrations/0117_auto_20240312_2125.py create mode 100644 sifrovacka/migrations/0004_auto_20240312_2124.py diff --git a/korektury/migrations/0021_auto_20240312_2124.py b/korektury/migrations/0021_auto_20240312_2124.py new file mode 100644 index 00000000..ee2eb53d --- /dev/null +++ b/korektury/migrations/0021_auto_20240312_2124.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.8 on 2024-03-12 20:24 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('korektury', '0020_lepsi_popis_nazvu_PDF_v_adminu'), + ] + + operations = [ + ] diff --git a/personalni/migrations/0002_auto_20240312_2118.py b/personalni/migrations/0002_auto_20240312_2118.py new file mode 100644 index 00000000..62a0b0d2 --- /dev/null +++ b/personalni/migrations/0002_auto_20240312_2118.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.8 on 2024-03-12 20:18 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0001_skupiny'), + ] + + operations = [ + ] diff --git a/prednasky/migrations/0013_auto_20240312_2124.py b/prednasky/migrations/0013_auto_20240312_2124.py new file mode 100644 index 00000000..ea9ddb2e --- /dev/null +++ b/prednasky/migrations/0013_auto_20240312_2124.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.8 on 2024-03-12 20:24 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('prednasky', '0012_auto_20190610_2358'), + ] + + operations = [ + ] diff --git a/seminar/migrations/0117_auto_20240312_2125.py b/seminar/migrations/0117_auto_20240312_2125.py new file mode 100644 index 00000000..57b2431f --- /dev/null +++ b/seminar/migrations/0117_auto_20240312_2125.py @@ -0,0 +1,16 @@ +# Generated by Django 4.2.8 on 2024-03-12 20:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0116_delete_nastaveni'), + ('personalni', '0001_skupiny'), + ('korektury', '0021_auto_20240312_2124'), + ('sifrovacka', '0004_auto_20240312_2124'), + ] + + operations = [ + ] diff --git a/sifrovacka/migrations/0004_auto_20240312_2124.py b/sifrovacka/migrations/0004_auto_20240312_2124.py new file mode 100644 index 00000000..8f58cf58 --- /dev/null +++ b/sifrovacka/migrations/0004_auto_20240312_2124.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.8 on 2024-03-12 20:24 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('sifrovacka', '0003_odpoveducastnika_uspech'), + ] + + operations = [ + ] From ae8040fb04720fc504bf2a017ef909eb62093c15 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 21:30:58 +0100 Subject: [PATCH 076/225] =?UTF-8?q?P=C5=99id=C3=A1v=C3=A1m=20(si)=20pozn?= =?UTF-8?q?=C3=A1mky=20o=20tom,=20jak=20se=20to=20bastl=C3=AD=20:-)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/dummy_migration.py | 6 ++++++ split-apps-meta/pre.sh | 3 +++ 2 files changed, 9 insertions(+) create mode 100644 split-apps-meta/dummy_migration.py create mode 100644 split-apps-meta/pre.sh diff --git a/split-apps-meta/dummy_migration.py b/split-apps-meta/dummy_migration.py new file mode 100644 index 00000000..6f9a2c9c --- /dev/null +++ b/split-apps-meta/dummy_migration.py @@ -0,0 +1,6 @@ +from django.db import migrations +class Migration(migrations.Migration): + dependencies = [ + ('APP', 'MIGR'), + ] + operations = [] diff --git a/split-apps-meta/pre.sh b/split-apps-meta/pre.sh new file mode 100644 index 00000000..28dbe9da --- /dev/null +++ b/split-apps-meta/pre.sh @@ -0,0 +1,3 @@ +for app in whatever I want; do + ./manage.py makemigrations --empty $app +vim seminar/migrations/whatever.py # add the other as depends. From b550857a8d9c88f3380e226c73762fb4e3e87099 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 21:45:50 +0100 Subject: [PATCH 077/225] Wtf nastaveni.aktualni_cislo nebylo??!?! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nějaká bullshit migrace, whatever. --- .../0004_nastaveni_aktualni_cislo.py | 21 +++++++++++++++++++ various/models.py | 8 ++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 various/migrations/0004_nastaveni_aktualni_cislo.py diff --git a/various/migrations/0004_nastaveni_aktualni_cislo.py b/various/migrations/0004_nastaveni_aktualni_cislo.py new file mode 100644 index 00000000..feb6bc71 --- /dev/null +++ b/various/migrations/0004_nastaveni_aktualni_cislo.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.8 on 2024-03-12 20:44 + +from django.db import migrations, models +import django.db.models.deletion +import various.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0118_alter_organizator_options_alter_osoba_options_and_more'), + ('various', '0003_fix_permissions'), + ] + + operations = [ + migrations.AddField( + model_name='nastaveni', + name='aktualni_cislo', + field=models.ForeignKey(default=various.models._default_aktualni_cislo, on_delete=django.db.models.deletion.PROTECT, to='seminar.cislo', verbose_name='Aktuální číslo'), + ), + ] diff --git a/various/models.py b/various/models.py index 6fc48e44..eb89ab25 100644 --- a/various/models.py +++ b/various/models.py @@ -7,6 +7,10 @@ from seminar.models import Cislo from django.urls import reverse +# Whatever, makemigrations chce default, má ho mít lol. +def _default_aktualni_cislo(): + return Cislo.objects.last() + @reversion.register(ignore_duplicates=True) class Nastaveni(SingletonModel): @@ -18,7 +22,9 @@ class Nastaveni(SingletonModel): # null=False, on_delete=models.PROTECT) aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', - null=False, on_delete=models.PROTECT) + null=False, on_delete=models.PROTECT, + default=_default_aktualni_cislo, + ) cena_sous = models.IntegerField(null=False, verbose_name="Účastnický poplatek za soustředění", From a1c1b9f280aa57a27441da64d5125afa3de99009 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 21:46:50 +0100 Subject: [PATCH 078/225] =?UTF-8?q?Pozn=C3=A1mky=20k=20odmanagov=C3=A1n?= =?UTF-8?q?=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/unmanage.notes | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 split-apps-meta/unmanage.notes diff --git a/split-apps-meta/unmanage.notes b/split-apps-meta/unmanage.notes new file mode 100644 index 00000000..a3965cdb --- /dev/null +++ b/split-apps-meta/unmanage.notes @@ -0,0 +1,5 @@ +vim seminar/models/whatever + Model.Meta.managed = False + Model.field.related_name = Model.related_name + '_old' # až vyrobíme nový objekt, tak nesmí kolidovat. + # related_name se vyhodnocuje za běhu, takže pokud nic nespustíme (celý + # blok migrací spustíme najednou), tak nám nevadí, že v tuhle chvíli nefunguje půlka views ap :-) From e3ce5efdd67ccf16a71fcea74c2c1e1eefcb3266 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 21:47:02 +0100 Subject: [PATCH 079/225] =?UTF-8?q?Odmanagovan=C3=BD=20semin=C3=A1=C5=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...or_options_alter_osoba_options_and_more.py | 33 +++++++++++++++++++ seminar/models/personalni.py | 7 +++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 seminar/migrations/0118_alter_organizator_options_alter_osoba_options_and_more.py diff --git a/seminar/migrations/0118_alter_organizator_options_alter_osoba_options_and_more.py b/seminar/migrations/0118_alter_organizator_options_alter_osoba_options_and_more.py new file mode 100644 index 00000000..642820a6 --- /dev/null +++ b/seminar/migrations/0118_alter_organizator_options_alter_osoba_options_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.8 on 2024-03-12 20:44 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0117_auto_20240312_2125'), + ] + + operations = [ + migrations.AlterModelOptions( + name='organizator', + options={'managed': False, 'ordering': ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'], 'verbose_name': 'Organizátor', 'verbose_name_plural': 'Organizátoři'}, + ), + migrations.AlterModelOptions( + name='osoba', + options={'managed': False, 'ordering': ['prijmeni', 'jmeno'], 'verbose_name': 'Osoba', 'verbose_name_plural': 'Osoby'}, + ), + migrations.AlterModelOptions( + name='prijemce', + options={'managed': False, 'verbose_name': 'příjemce', 'verbose_name_plural': 'příjemce'}, + ), + migrations.AlterModelOptions( + name='resitel', + options={'managed': False, 'ordering': ['osoba'], 'verbose_name': 'Řešitel', 'verbose_name_plural': 'Řešitelé'}, + ), + migrations.AlterModelOptions( + name='skola', + options={'managed': False, 'ordering': ['mesto', 'nazev'], 'verbose_name': 'Škola', 'verbose_name_plural': 'Školy'}, + ), + ] diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index 61313e87..b245c2a4 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -25,6 +25,7 @@ class Osoba(SeminarModelBase): verbose_name = 'Osoba' verbose_name_plural = 'Osoby' ordering = ['prijmeni','jmeno'] + managed = False id = models.AutoField(primary_key = True) @@ -128,6 +129,7 @@ class Skola(SeminarModelBase): verbose_name = 'Škola' verbose_name_plural = 'Školy' ordering = ['mesto', 'nazev'] + managed = False # Interní ID id = models.AutoField(primary_key = True) @@ -180,6 +182,7 @@ class Prijemce(SeminarModelBase): db_table = 'seminar_prijemce' verbose_name = 'příjemce' verbose_name_plural = 'příjemce' + managed = False # Interní ID @@ -209,6 +212,7 @@ class Resitel(SeminarModelBase): verbose_name = 'Řešitel' verbose_name_plural = 'Řešitelé' ordering = ['osoba'] + managed = False # Interní ID id = models.AutoField(primary_key = True) @@ -395,7 +399,7 @@ class Resitel(SeminarModelBase): @reversion.register(ignore_duplicates=True) class Organizator(SeminarModelBase): - osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org', + osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org_old', help_text='osobní údaje organizátora', null=False, blank=False, on_delete=models.PROTECT) @@ -445,3 +449,4 @@ class Organizator(SeminarModelBase): # TODO: Zohledňovat přezdívky? # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu ordering = ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'] + managed = False From 559297240d100b4f5b395f08b77189744b9ae7c7 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 21:53:17 +0100 Subject: [PATCH 080/225] =?UTF-8?q?Dal=C5=A1=C3=AD=20pozn=C3=A1mky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/create.notes | 4 ++++ split-apps-meta/unmanage.notes | 2 ++ 2 files changed, 6 insertions(+) create mode 100644 split-apps-meta/create.notes diff --git a/split-apps-meta/create.notes b/split-apps-meta/create.notes new file mode 100644 index 00000000..9abae94d --- /dev/null +++ b/split-apps-meta/create.notes @@ -0,0 +1,4 @@ +Prostě zkopírovat vedle, s původními (=správnými) related names. +makemigrations +doplnit závislost na unmanage +migrate diff --git a/split-apps-meta/unmanage.notes b/split-apps-meta/unmanage.notes index a3965cdb..b00cb294 100644 --- a/split-apps-meta/unmanage.notes +++ b/split-apps-meta/unmanage.notes @@ -3,3 +3,5 @@ vim seminar/models/whatever Model.field.related_name = Model.related_name + '_old' # až vyrobíme nový objekt, tak nesmí kolidovat. # related_name se vyhodnocuje za běhu, takže pokud nic nespustíme (celý # blok migrací spustíme najednou), tak nám nevadí, že v tuhle chvíli nefunguje půlka views ap :-) +makemigrations, bez úprav +migrate? From d4b92854c25cd726add0040d2b729da5dcd6d9a0 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 21:57:09 +0100 Subject: [PATCH 081/225] =?UTF-8?q?Pozn=C3=A1mky:=20nezapomenout=20na=20de?= =?UTF-8?q?faultn=C3=AD=20related=5Fnames?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/unmanage.notes | 2 ++ 1 file changed, 2 insertions(+) diff --git a/split-apps-meta/unmanage.notes b/split-apps-meta/unmanage.notes index b00cb294..4d863a21 100644 --- a/split-apps-meta/unmanage.notes +++ b/split-apps-meta/unmanage.notes @@ -3,5 +3,7 @@ vim seminar/models/whatever Model.field.related_name = Model.related_name + '_old' # až vyrobíme nový objekt, tak nesmí kolidovat. # related_name se vyhodnocuje za běhu, takže pokud nic nespustíme (celý # blok migrací spustíme najednou), tak nám nevadí, že v tuhle chvíli nefunguje půlka views ap :-) + Nastavit nějak i všechny další závislostní fieldy (mají defaultní related_name!) + - ManyToManyF, OneToOneF, ForeignKey, … makemigrations, bez úprav migrate? From df5ae2c12ab8331b013719431d50dd42d601bd97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 12 Mar 2024 22:09:32 +0100 Subject: [PATCH 082/225] Fix: bootstrap upravuje .container --- mamweb/static/css/layout.css | 10 +++++----- mamweb/static/css/modules.css | 6 +++--- mamweb/templates/april.html | 6 +++--- mamweb/templates/base.html | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 9d22f009..08fa63a7 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -8,7 +8,7 @@ } /**** KONTEJNER ****/ -div.container { +div.kontejner { width: 970px; margin: auto; min-height: 100vh; @@ -17,16 +17,16 @@ div.container { } -.org-logged-in div.container { +.org-logged-in div.kontejner { margin-top: var(--login-bar-height); } -div.content-wrapper { +div.kontent-wrapper { padding-bottom: var(--footer-height); } -div.content { +div.kontent { padding: 15px 30px; } @@ -169,7 +169,7 @@ a.login-ref-admin { /* stránka přes celý displej */ @media (max-width: 970px) { - div.container { + div.kontejner { width: 100%; } diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index eff70525..5c798bd3 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -279,9 +279,9 @@ div.org_email { .tabulka_s_uchycenym_radkem_a_sloupcem thead, .tabulka_s_uchycenym_radkem_a_sloupcem tbody, .tabulka_s_uchycenym_radkem_a_sloupcem tr, -.container, -.content-wrapper, -.content +.kontejner, +.kontent-wrapper, +.kontent { background: inherit; } diff --git a/mamweb/templates/april.html b/mamweb/templates/april.html index c67fae54..92266311 100644 --- a/mamweb/templates/april.html +++ b/mamweb/templates/april.html @@ -36,8 +36,8 @@ return Math.floor(360*Math.random()); } - $('.container').css('margin', 0); - rotace_a_posun($('.container'), randomUhel()); + $('.kontejner').css('margin', 0); + rotace_a_posun($('.kontejner'), randomUhel()); </script> {% endif %} @@ -58,4 +58,4 @@ } walkText(document.body); </script> -{% endif %} \ No newline at end of file +{% endif %} diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index db686e5c..8294d2b8 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -55,8 +55,8 @@ </div> {% endif %} - <div class="container"> - <div class="content-wrapper"> + <div class="kontejner"> + <div class="kontent-wrapper"> <a href='/'> <div id="title" >M&M – korespondenční seminář a časopis MFF UK</div> @@ -100,7 +100,7 @@ {# ========= END MENU ========== #} - <div class='content'> + <div class='kontent'> {% block content %} {% endblock content %} From 8cc5864257e3451d5a8e88422b9b42fcf8447205 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 22:09:52 +0100 Subject: [PATCH 083/225] =?UTF-8?q?Je=C5=A1t=C4=9B=20pozn=C3=A1mka=20k=20r?= =?UTF-8?q?elated=5Fnames?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/unmanage.notes | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/split-apps-meta/unmanage.notes b/split-apps-meta/unmanage.notes index 4d863a21..d623425f 100644 --- a/split-apps-meta/unmanage.notes +++ b/split-apps-meta/unmanage.notes @@ -5,5 +5,16 @@ vim seminar/models/whatever # blok migrací spustíme najednou), tak nám nevadí, že v tuhle chvíli nefunguje půlka views ap :-) Nastavit nějak i všechny další závislostní fieldy (mají defaultní related_name!) - ManyToManyF, OneToOneF, ForeignKey, … + Nevím proč, ale když nebyly unikátní, tak se to potlouklo:: + seminar.Prijemce.osoba: (fields.E304) Reverse accessor 'Osoba.osoba_old' for 'seminar.Prijemce.osoba' clashes with reverse accessor for 'seminar.Resitel.osoba'. + HINT: Add or change a related_name argument to the definition for 'seminar.Prijemce.osoba' or 'seminar.Resitel.osoba'. + seminar.Prijemce.osoba: (fields.E305) Reverse query name for 'seminar.Prijemce.osoba' clashes with reverse query name for 'seminar.Resitel.osoba'. + HINT: Add or change a related_name argument to the definition for 'seminar.Prijemce.osoba' or 'seminar.Resitel.osoba'. + seminar.Resitel.osoba: (fields.E304) Reverse accessor 'Osoba.osoba_old' for 'seminar.Resitel.osoba' clashes with reverse accessor for 'seminar.Prijemce.osoba'. + HINT: Add or change a related_name argument to the definition for 'seminar.Resitel.osoba' or 'seminar.Prijemce.osoba'. + seminar.Resitel.osoba: (fields.E305) Reverse query name for 'seminar.Resitel.osoba' clashes with reverse query name for 'seminar.Prijemce.osoba'. + HINT: Add or change a related_name argument to the definition for 'seminar.Resitel.osoba' or 'seminar.Prijemce.osoba'. + Snadné řešení: dočasné related names mít unikátní. Stejně to nikoho nezajímá. + makemigrations, bez úprav migrate? From 17b4a4764c1f42be7ed52e5c7bd94850cc3e7007 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 22:10:25 +0100 Subject: [PATCH 084/225] =?UTF-8?q?Vyr=C3=A1b=C3=ADme=20person=C3=A1ln?= =?UTF-8?q?=C3=AD=20v=20person=C3=A1ln=C3=ADch=20+=20oprava=20sem/models.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nezapomenout na závislost v migraci! --- personalni/migrations/0003_initial.py | 124 +++++++ personalni/models.py | 453 ++++++++++++++++++++++++++ seminar/models/personalni.py | 13 +- 3 files changed, 584 insertions(+), 6 deletions(-) create mode 100644 personalni/migrations/0003_initial.py create mode 100644 personalni/models.py diff --git a/personalni/migrations/0003_initial.py b/personalni/migrations/0003_initial.py new file mode 100644 index 00000000..3c445cab --- /dev/null +++ b/personalni/migrations/0003_initial.py @@ -0,0 +1,124 @@ +# Generated by Django 4.2.8 on 2024-03-12 21:10 + +from django.db import migrations, models +import django.utils.timezone +import django_countries.fields +import imagekit.models.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('personalni', '0002_auto_20240312_2118'), + ('seminar', '0118_alter_organizator_options_alter_osoba_options_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='Organizator', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('vytvoreno', models.DateTimeField(blank=True, default=django.utils.timezone.now, editable=False, verbose_name='Vytvořeno')), + ('organizuje_od', models.DateTimeField(blank=True, null=True, verbose_name='Organizuje od')), + ('organizuje_do', models.DateTimeField(blank=True, null=True, verbose_name='Organizuje do')), + ('studuje', models.CharField(blank=True, help_text="Např. 'Studuje Obecnou fyziku (Bc.), 3. ročník', 'Vystudovala Diskrétní modely a algoritmy (Mgr.)' nebo 'Přednáší na MFF'", max_length=256, null=True, verbose_name='Studium aj.')), + ('strucny_popis_organizatora', models.TextField(blank=True, null=True, verbose_name='Stručný popis organizátora')), + ('skola', models.CharField(blank=True, help_text='Škola, např. MFF, VŠCHT, VUT, ... prostě aby se nemuselo psát do studuješkolu, ale jen obor, možnost zobrazit zvlášť', max_length=256, null=True, verbose_name='Škola, kterou studuje')), + ], + options={ + 'verbose_name': 'Organizátor', + 'verbose_name_plural': 'Organizátoři', + 'ordering': ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'], + 'managed': False, + }, + ), + migrations.CreateModel( + name='Osoba', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('jmeno', models.CharField(max_length=256, verbose_name='jméno')), + ('prijmeni', models.CharField(max_length=256, verbose_name='příjmení')), + ('prezdivka', models.CharField(blank=True, max_length=256, null=True, verbose_name='přezdívka')), + ('pohlavi_muz', models.BooleanField(default=False, verbose_name='pohlaví (muž)')), + ('email', models.EmailField(blank=True, default='', max_length=256, verbose_name='e-mail')), + ('telefon', models.CharField(blank=True, default='', max_length=256, verbose_name='telefon')), + ('datum_narozeni', models.DateField(blank=True, null=True, verbose_name='datum narození')), + ('datum_souhlasu_udaje', models.DateField(blank=True, help_text='Datum souhlasu se zpracováním osobních údajů', null=True, verbose_name='datum souhlasu (údaje)')), + ('datum_souhlasu_zasilani', models.DateField(blank=True, help_text='Datum souhlasu se zasíláním MFF materiálů', null=True, verbose_name='datum souhlasu (spam)')), + ('datum_registrace', models.DateField(default=django.utils.timezone.now, verbose_name='datum registrace do semináře')), + ('ulice', models.CharField(blank=True, default='', max_length=256, verbose_name='ulice')), + ('mesto', models.CharField(blank=True, default='', max_length=256, verbose_name='město')), + ('psc', models.CharField(blank=True, default='', max_length=32, verbose_name='PSČ')), + ('stat', django_countries.fields.CountryField(default='CZ', help_text='ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)', max_length=2, verbose_name='stát')), + ('jak_se_dozvedeli', models.TextField(blank=True, verbose_name='Jak se dozvěděli')), + ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k osobě (plain text)', verbose_name='neveřejná poznámka')), + ('foto', imagekit.models.fields.ProcessedImageField(blank=True, help_text='Vlož fotografii osoby o libovolné velikosti', null=True, upload_to='image_osoby/velke/%Y/', verbose_name='Fotografie osoby')), + ], + options={ + 'verbose_name': 'Osoba', + 'verbose_name_plural': 'Osoby', + 'db_table': 'seminar_osoby', + 'ordering': ['prijmeni', 'jmeno'], + 'managed': False, + }, + ), + migrations.CreateModel( + name='Prijemce', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k příemci čísel (plain text)', verbose_name='neveřejná poznámka')), + ('zasilat_cislo_emailem', models.BooleanField(default=False, help_text='True pokud chce příjemce dostávat číslo emailem', verbose_name='zasílat číslo emailem')), + ], + options={ + 'verbose_name': 'příjemce', + 'verbose_name_plural': 'příjemce', + 'db_table': 'seminar_prijemce', + 'managed': False, + }, + ), + migrations.CreateModel( + name='Resitel', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('prezdivka_resitele', models.CharField(blank=True, max_length=256, null=True, unique=True, verbose_name='přezdívka řešitele')), + ('rok_maturity', models.IntegerField(blank=True, null=True, verbose_name='rok maturity')), + ('zasilat', models.CharField(choices=[('domu', 'Domů'), ('do_skoly', 'Do školy'), ('nikam', 'Nezasílat papírově')], default='domu', max_length=32, verbose_name='kam zasílat')), + ('zasilat_cislo_emailem', models.BooleanField(default=False, help_text='True pokud chce řešitel dostávat číslo emailem', verbose_name='zasílat číslo emailem')), + ('zasilat_cislo_papirove', models.BooleanField(default=True, help_text='True pokud chce řešitel dostávat číslo papírově', verbose_name='zasílat číslo papírově')), + ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k řešiteli (plain text)', verbose_name='neveřejná poznámka')), + ], + options={ + 'verbose_name': 'Řešitel', + 'verbose_name_plural': 'Řešitelé', + 'db_table': 'seminar_resitele', + 'ordering': ['osoba'], + 'managed': False, + }, + ), + migrations.CreateModel( + name='Skola', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('aesop_id', models.CharField(blank=True, default='', help_text='Aesopi ID typu "izo:..." nebo "aesop:..."', max_length=32, verbose_name='Aesop ID')), + ('izo', models.CharField(blank=True, help_text='IZO školy (jen české školy)', max_length=32, verbose_name='IZO')), + ('nazev', models.CharField(help_text='Celý název školy', max_length=256, verbose_name='název')), + ('kratky_nazev', models.CharField(blank=True, help_text='Zkrácený název pro zobrazení ve výsledkovce', max_length=256, verbose_name='zkrácený název')), + ('ulice', models.CharField(max_length=256, verbose_name='ulice')), + ('mesto', models.CharField(max_length=256, verbose_name='město')), + ('psc', models.CharField(max_length=32, verbose_name='PSČ')), + ('stat', django_countries.fields.CountryField(default='CZ', help_text='ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)', max_length=2, verbose_name='stát')), + ('je_zs', models.BooleanField(default=True, verbose_name='základní stupeň')), + ('je_ss', models.BooleanField(default=True, verbose_name='střední stupeň')), + ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka ke škole (plain text)', verbose_name='neveřejná poznámka')), + ], + options={ + 'verbose_name': 'Škola', + 'verbose_name_plural': 'Školy', + 'db_table': 'seminar_skoly', + 'ordering': ['mesto', 'nazev'], + 'managed': False, + }, + ), + ] diff --git a/personalni/models.py b/personalni/models.py new file mode 100644 index 00000000..743e18b8 --- /dev/null +++ b/personalni/models.py @@ -0,0 +1,453 @@ +# -*- coding: utf-8 -*- +import logging + +from django.db import models +from django.utils import timezone +from django.conf import settings +from django.core.exceptions import ValidationError +from imagekit.models import ImageSpecField, ProcessedImageField +from imagekit.processors import ResizeToFit, Transpose + +from django_countries.fields import CountryField + +from reversion import revisions as reversion + +from seminar.models.base import SeminarModelBase + +logger = logging.getLogger(__name__) + + +@reversion.register(ignore_duplicates=True) +class Osoba(SeminarModelBase): + + class Meta: + db_table = 'seminar_osoby' + verbose_name = 'Osoba' + verbose_name_plural = 'Osoby' + ordering = ['prijmeni','jmeno'] + managed = False + + id = models.AutoField(primary_key = True) + + jmeno = models.CharField('jméno', max_length=256) + + prijmeni = models.CharField('příjmení', max_length=256) + + prezdivka = models.CharField('přezdívka', blank=True, null=True, max_length=256) + + # User, pokud má na webu účet + user = models.OneToOneField(settings.AUTH_USER_MODEL, blank=True, null=True, + verbose_name='uživatel', on_delete=models.DO_NOTHING) + + # Pohlaví. Že ho neznáme se snad nestane (a ušetří to práci při programování) + pohlavi_muz = models.BooleanField('pohlaví (muž)', default=False) + + email = models.EmailField('e-mail', max_length=256, blank=True, default='') + + telefon = models.CharField('telefon', max_length=256, blank=True, default='') + + datum_narozeni = models.DateField('datum narození', blank=True, null=True) + + # NULL dokud nedali souhlas + datum_souhlasu_udaje = models.DateField('datum souhlasu (údaje)', blank=True, null=True, + help_text='Datum souhlasu se zpracováním osobních údajů') + + # NULL dokud nedali souhlas + datum_souhlasu_zasilani = models.DateField('datum souhlasu (spam)', blank=True, null=True, + help_text='Datum souhlasu se zasíláním MFF materiálů') + + # Alespoň odhad (rok či i měsíc) + datum_registrace = models.DateField('datum registrace do semináře', default=timezone.now) + + # Ulice může být i jen číslo + ulice = models.CharField('ulice', max_length=256, blank=True, default='') + + mesto = models.CharField('město', max_length=256, blank=True, default='') + + psc = models.CharField('PSČ', max_length=32, blank=True, default='') + + # ISO 3166-1 dvojznakovy kod zeme velkym pismem (CZ, SK) + # Ekvivalentní s CharField(max_length=2, default='CZ', ...) + stat = CountryField('stát', default='CZ', + help_text='ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)') + + jak_se_dozvedeli = models.TextField('Jak se dozvěděli', blank=True) + + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k osobě (plain text)') + + foto = ProcessedImageField(verbose_name='Fotografie osoby', + upload_to='image_osoby/velke/%Y/', null = True, blank = True, + help_text = 'Vlož fotografii osoby o libovolné velikosti', + processors=[ + Transpose(Transpose.AUTO), + ResizeToFit(500, 500, upscale=False) + ], + options={'quality': 95}) + foto_male = ImageSpecField(source='foto', + processors=[ + ResizeToFit(200, 200, upscale=False) + ], + options={'quality': 95}) + + # má OneToOneField nejvýše s: + # Resitel + # Prijemce + # Organizator + + def plne_jmeno(self): + return '{} {}'.format(self.jmeno, self.prijmeni) + + def inicial_krestni(self): + jmena = self.jmeno.split() + return " ".join(['{}.'.format(jmeno[0]) for jmeno in jmena]) + + def __str__(self): + return self.plne_jmeno() + + # Overridujeme save Osoby, aby když si změní e-mail, aby se projevil i v + # Userovi (a tak se dal poslat mail s resetem hesla) + def save(self, *args, **kwargs): + if self.user is not None: + u = self.user + # U svatého tučňáka, prosím ať tohle funguje. + # (Takhle se kódit asi nemá...) + u.email = self.email + u.save() + super().save() + +# +# Mělo by být částečně vytaženo z Aesopa +# viz https://ovvp.mff.cuni.cz/wiki/aesop/export-skol. +# + +@reversion.register(ignore_duplicates=True) +class Skola(SeminarModelBase): + + class Meta: + db_table = 'seminar_skoly' + verbose_name = 'Škola' + verbose_name_plural = 'Školy' + ordering = ['mesto', 'nazev'] + managed = False + + # Interní ID + id = models.AutoField(primary_key = True) + + # Aesopi ID "izo:..." nebo "aesop:..." + # NULL znamená v exportu do aesopa "ufo" + aesop_id = models.CharField('Aesop ID', max_length=32, blank=True, default='', + help_text='Aesopi ID typu "izo:..." nebo "aesop:..."') + + # IZO školy (jen české školy) + izo = models.CharField('IZO', max_length=32, blank=True, + help_text='IZO školy (jen české školy)') + + # Celý název školy + nazev = models.CharField('název', max_length=256, + help_text='Celý název školy') + + # Zkraceny nazev pro zobrazení ve výsledkovce, volitelné. + # Není v Aesopovi, musíme vytvářet sami. + kratky_nazev = models.CharField('zkrácený název', max_length=256, blank=True, + help_text="Zkrácený název pro zobrazení ve výsledkovce") + + # Ulice může být jen číslo + ulice = models.CharField('ulice', max_length=256) + + mesto = models.CharField('město', max_length=256) + + psc = models.CharField('PSČ', max_length=32) + + # ISO 3166-1 dvojznakovy kod zeme velkym pismem (CZ, SK) + # Ekvivalentní s CharField(max_length=2, default='CZ', ...) + stat = CountryField('stát', default='CZ', + help_text='ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)') + + # Jaké vzdělání škpla poskytuje? + je_zs = models.BooleanField('základní stupeň', default=True) + je_ss = models.BooleanField('střední stupeň', default=True) + + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka ke škole (plain text)') + + kontaktni_osoba = models.ForeignKey(Osoba, verbose_name='Kontaktní osoba', + blank=True, null=True, on_delete=models.SET_NULL) + + def __str__(self): + return '{}, {}, {}'.format(self.nazev, self.ulice, self.mesto) + +class Prijemce(SeminarModelBase): + class Meta: + db_table = 'seminar_prijemce' + verbose_name = 'příjemce' + verbose_name_plural = 'příjemce' + managed = False + + + # Interní ID + id = models.AutoField(primary_key = True) + + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k příemci čísel (plain text)') + + osoba = models.OneToOneField(Osoba, verbose_name='komu', blank=False, null=False, + help_text='Které osobě či na jakou adresu se mají zasílat čísla', + on_delete=models.CASCADE) + + zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce příjemce dostávat číslo emailem', default=False) + + # FIXME: možná chceme něco jako vazbu na osobu XOR školu a počet kusů k zaslání + # FIXME: a možná taky posílání na mail a možná taky přes něj chceme posílat i řešitelům + + def __str__(self): + return self.osoba.plne_jmeno() + + +@reversion.register(ignore_duplicates=True) +class Resitel(SeminarModelBase): + + class Meta: + db_table = 'seminar_resitele' + verbose_name = 'Řešitel' + verbose_name_plural = 'Řešitelé' + ordering = ['osoba'] + managed = False + + # Interní ID + id = models.AutoField(primary_key = True) + + prezdivka_resitele = models.CharField('přezdívka řešitele', blank=True, null=True, max_length=256, unique=True) + + osoba = models.OneToOneField(Osoba, blank=False, null=False, verbose_name='osoba', + on_delete=models.PROTECT) + + + skola = models.ForeignKey(Skola, blank=True, null=True, verbose_name='škola', + on_delete=models.SET_NULL) + + # Očekávaný rok maturity a vyřazení z aktivních řešitelů + rok_maturity = models.IntegerField('rok maturity', blank=True, null=True) + + ZASILAT_DOMU = 'domu' + ZASILAT_DO_SKOLY = 'do_skoly' + ZASILAT_NIKAM = 'nikam' + ZASILAT_CHOICES = [ + (ZASILAT_DOMU, 'Domů'), + (ZASILAT_DO_SKOLY, 'Do školy'), + (ZASILAT_NIKAM, 'Nezasílat papírově'), + ] + + zasilat = models.CharField('kam zasílat', max_length=32, choices=ZASILAT_CHOICES, blank=False, default=ZASILAT_DOMU) + + zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce řešitel dostávat číslo emailem', default=False) + + zasilat_cislo_papirove = models.BooleanField('zasílat číslo papírově', help_text='True pokud chce řešitel dostávat číslo papírově', default=True) + + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k řešiteli (plain text)') + + + def export_row(self): + "Slovnik pro pouziti v AESOP exportu" + return { + 'id': self.id, + 'name': self.osoba.jmeno, + 'surname': self.osoba.prijmeni, + 'gender': 'M' if self.osoba.pohlavi_muz else 'F', + 'born': self.osoba.datum_narozeni.isoformat() if self.osoba.datum_narozeni else '', + 'email': self.osoba.email, + 'end-year': self.rok_maturity or '', + + 'street': self.osoba.ulice, + 'town': self.osoba.mesto, + 'postcode': self.osoba.psc, + 'country': self.osoba.stat, + + 'spam-flag': 'Y' if self.osoba.datum_souhlasu_zasilani else '', + 'spam-date': self.osoba.datum_souhlasu_zasilani.isoformat() if self.osoba.datum_souhlasu_zasilani else '', + + 'school': self.skola.aesop_id if self.skola else '', + 'school-name': str(self.skola) if self.skola else 'Skola neni znama', + } + + def rocnik(self, rocnik): + """Vrati skolni rocnik resitele pro zadany Rocnik. + Vraci '' pro neznamy rok maturity resitele, Z* pro ekvivalent ZŠ.""" + if self.rok_maturity is None: + return '' + rozdil = 5 - (self.rok_maturity - rocnik.prvni_rok) + if rozdil >= 1: + return str(rozdil) + else: + return 'Z' + str(rozdil + 9) + + def vsechny_body(self): + "Spočítá body odjakživa." + vsechna_reseni = self.reseni_set.all() + from .odevzdavatko import Hodnoceni + vsechna_hodnoceni = Hodnoceni.objects.filter( + reseni__in=vsechna_reseni) + return sum(h.body for h in list(vsechna_hodnoceni) if h.body is not None) + + + def get_titul(self, body=None): + "Vrati titul jako řetězec." + + # Nejprve si zadefinujeme titul + from enum import Enum + from functools import total_ordering + @total_ordering + class Titul(Enum): + """ Třída reprezentující možné tituly. Hodnoty jsou dvojice (dolní hranice, stringifikace). """ + nic = (0, '') + bc = (20, 'Bc.') + mgr = (50, 'Mgr.') + dr = (100, 'Dr.') + doc = (200, 'Doc.') + prof = (500, 'Prof.') + akad = (1000, 'Akad.') + + def __lt__(self, other): + return True if self.value[0] < other.value[0] else False + def __eq__(self, other): # Měla by být implicitní, ale klidně explicitně. + return True if self.value[0] == other.value[0] else False + + def __str__(self): + return self.value[1] + + @classmethod + def z_bodu(cls, body): + aktualni = cls.nic + # TODO: ověřit, že to funguje + for titul in cls: # Kdyžtak použít __members__.items() + if titul.value[0] <= body: + aktualni = titul + else: + break + return aktualni + + # Hledáme body v databázi + # V listopadu 2020 jsme se na filosofické schůzce shodli o změně hranic titulů: + # - body z 25. ročníku a dříve byly shledány dvakrát hodnotnějšími + # - proto se započítávají dvojnásobně a byly posunuté hranice titulů + # - staré tituly se ale nemají odebrat, pokud řešitel v t.č. minulém (26.) ročníku měl titul, má ho mít pořád. + from .odevzdavatko import Hodnoceni + hodnoceni_do_25_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=25,reseni__in=self.reseni_set.all()) + novejsi_hodnoceni = Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()).difference(hodnoceni_do_25_rocniku) + + def body_z_hodnoceni(hh : list): + return sum(h.body for h in hh if h.body is not None) + + stare_body = body_z_hodnoceni(hodnoceni_do_25_rocniku) + if body is None: + nove_body = body_z_hodnoceni(novejsi_hodnoceni) + else: + # Zjistíme, kolik bodů jsou staré, tedy hodnotnější + nove_body = max(0, body - stare_body) # Všechny body nad počet původních hodnotnějších + stare_body = min(stare_body, body) # Skutečný počet hodnotnějších bodů + logicke_body = 2*stare_body + nove_body + + + # Titul se určí následovně: + # - Pokud se řeší body, které jsou starší, než do 26 ročníku (včetně), dáváme tituly postaru. + # - Jinak dáváme tituly po novu... + # - ... ale titul se nesmí odebrat, pokud se zmenšil. + def titul_do_26_rocniku(body): + """ Původní hranice bodů za tituly """ + if body < 10: + return Titul.nic + elif body < 20: + return Titul.bc + elif body < 50: + return Titul.mgr + elif body < 100: + return Titul.dr + elif body < 200: + return Titul.doc + elif body < 500: + return Titul.prof + else: + return Titul.akad + + from .odevzdavatko import Hodnoceni + hodnoceni_do_26_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=26,reseni__in=self.reseni_set.all()) + novejsi_body = body_z_hodnoceni( + Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()) + .difference(hodnoceni_do_26_rocniku) + ) + starsi_body = body_z_hodnoceni(hodnoceni_do_26_rocniku) + if body is not None: + # Ještě z toho vybereme ty správně staré body + novejsi_body = max(0, body - starsi_body) + starsi_body = min(starsi_body, body) + + # Titul pro 26. ročník + stary_titul = titul_do_26_rocniku(starsi_body) + # Titul podle aktuálních pravidel + novy_titul = Titul.z_bodu(logicke_body) + + if novejsi_body == 0: + # Žádné nové body -- titul podle starých pravidel + return str(stary_titul) + return str(max(novy_titul, stary_titul)) + + + def __str__(self): + return self.osoba.plne_jmeno() + + +@reversion.register(ignore_duplicates=True) +class Organizator(SeminarModelBase): + + class Meta: + verbose_name = 'Organizátor' + verbose_name_plural = 'Organizátoři' + # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy. + # TODO: Chtěl bych spíš mít nejstarší orgy dole. + # TODO: Zohledňovat přezdívky? + # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu + ordering = ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'] + managed = False + + osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org', + help_text='osobní údaje organizátora', null=False, blank=False, + on_delete=models.PROTECT) + + vytvoreno = models.DateTimeField( + 'Vytvořeno', + default=timezone.now, + blank=True, + editable=False + ) + + # Ne, date to nebude. SQLite: invalid literal for int() with base 10: b'17 23:00:00' + organizuje_od = models.DateTimeField('Organizuje od', blank=True, null=True) + + organizuje_do = models.DateTimeField('Organizuje do', blank=True, null=True) + + studuje = models.CharField('Studium aj.', max_length = 256, + null = True, blank = True, + help_text="Např. 'Studuje Obecnou fyziku (Bc.), 3. ročník', " + "'Vystudovala Diskrétní modely a algoritmy (Mgr.)' nebo " + "'Přednáší na MFF'") + + strucny_popis_organizatora = models.TextField('Stručný popis organizátora', + null = True, blank = True) + + skola = models.CharField('Škola, kterou studuje', max_length = 256, null=True, blank=True, + help_text="Škola, např. MFF, VŠCHT, VUT, ... prostě aby se nemuselo psát do studuje" + "školu, ale jen obor, možnost zobrazit zvlášť") + + def clean(self): + if self.organizuje_od and self.organizuje_do and (self.organizuje_od > self.organizuje_do): + raise ValidationError("Organizátor nemůže skončit s organizováním dříve než začal!") + super().clean() + + def __str__(self): + if self.osoba.prezdivka: + return "{} '{}' {}".format(self.osoba.jmeno, + self.osoba.prezdivka, + self.osoba.prijmeni) + else: + return "{} {}".format(self.osoba.jmeno, self.osoba.prijmeni) diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index b245c2a4..5286e1be 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -37,7 +37,8 @@ class Osoba(SeminarModelBase): # User, pokud má na webu účet user = models.OneToOneField(settings.AUTH_USER_MODEL, blank=True, null=True, - verbose_name='uživatel', on_delete=models.DO_NOTHING) + verbose_name='uživatel', on_delete=models.DO_NOTHING, + related_name='user_old') # Pohlaví. Že ho neznáme se snad nestane (a ušetří to práci při programování) pohlavi_muz = models.BooleanField('pohlaví (muž)', default=False) @@ -172,7 +173,7 @@ class Skola(SeminarModelBase): help_text='Neveřejná poznámka ke škole (plain text)') kontaktni_osoba = models.ForeignKey(Osoba, verbose_name='Kontaktní osoba', - blank=True, null=True, on_delete=models.SET_NULL) + blank=True, null=True, on_delete=models.SET_NULL, related_name='kontaktni_osoba_old') def __str__(self): return '{}, {}, {}'.format(self.nazev, self.ulice, self.mesto) @@ -193,7 +194,7 @@ class Prijemce(SeminarModelBase): osoba = models.OneToOneField(Osoba, verbose_name='komu', blank=False, null=False, help_text='Které osobě či na jakou adresu se mají zasílat čísla', - on_delete=models.CASCADE) + on_delete=models.CASCADE, related_name='osobad_old1') zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce příjemce dostávat číslo emailem', default=False) @@ -220,11 +221,11 @@ class Resitel(SeminarModelBase): prezdivka_resitele = models.CharField('přezdívka řešitele', blank=True, null=True, max_length=256, unique=True) osoba = models.OneToOneField(Osoba, blank=False, null=False, verbose_name='osoba', - on_delete=models.PROTECT) + on_delete=models.PROTECT, related_name='osoba_old2') skola = models.ForeignKey(Skola, blank=True, null=True, verbose_name='škola', - on_delete=models.SET_NULL) + on_delete=models.SET_NULL, related_name='skola_old3') # Očekávaný rok maturity a vyřazení z aktivních řešitelů rok_maturity = models.IntegerField('rok maturity', blank=True, null=True) @@ -399,7 +400,7 @@ class Resitel(SeminarModelBase): @reversion.register(ignore_duplicates=True) class Organizator(SeminarModelBase): - osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org_old', + osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org_old4', help_text='osobní údaje organizátora', null=False, blank=False, on_delete=models.PROTECT) From 4182bd542edcc1928de46608f4e4cba071795452 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 22:15:12 +0100 Subject: [PATCH 085/225] =?UTF-8?q?Oprava=20nejv=C3=ADc=20haluz=20migrace,?= =?UTF-8?q?=20wtf,=20nev=C3=ADm=20co=20d=C4=9Bl=C3=A1m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Best commit. --- various/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/models.py b/various/models.py index eb89ab25..f551a652 100644 --- a/various/models.py +++ b/various/models.py @@ -9,7 +9,7 @@ from django.urls import reverse # Whatever, makemigrations chce default, má ho mít lol. def _default_aktualni_cislo(): - return Cislo.objects.last() + return Cislo.objects.last().id @reversion.register(ignore_duplicates=True) class Nastaveni(SingletonModel): From 457236c21a5e754d69f137362a16248c0567f002 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 12 Mar 2024 22:25:32 +0100 Subject: [PATCH 086/225] Vzor migrace pro create --- split-apps-meta/create-ct-hack.py | 52 +++++++++++++++++++++++++++++++ split-apps-meta/create.notes | 1 + 2 files changed, 53 insertions(+) create mode 100644 split-apps-meta/create-ct-hack.py diff --git a/split-apps-meta/create-ct-hack.py b/split-apps-meta/create-ct-hack.py new file mode 100644 index 00000000..fb603f6f --- /dev/null +++ b/split-apps-meta/create-ct-hack.py @@ -0,0 +1,52 @@ +# Správná migrace vypadá takto: +# Generated by Django 3.2.23 on 2023-12-11 19:19 + +def nastav_nove_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + old_ct = ContentType.objects.filter(app_label='seminar', model='nastaveni') + # Pozn: tohle může být prázdné (pokud Django nedostalo signál o dokončených migracích, např. při vyrábění databáze z nuly) + # Ale .update to nevadí… + old_ct.update(app_label='various') + +def nastav_stare_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + new_ct = ContentType.objects.filter(app_label='various', model='nastaveni') + new_ct.update(app_label='seminar') + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('seminar', '0115_alter_nastaveni_options'), + ] + + operations = [ + migrations.CreateModel( + name='Nastaveni', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cena_sous', models.IntegerField(default=1000, verbose_name='Účastnický poplatek za soustředění')), + ], + options={ + 'verbose_name': 'Nastavení semináře', + 'db_table': 'seminar_nastaveni', + 'managed': False, + }, + ), + migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), + ] + + + +#Hack: zkrácení +def nastav_nove_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('resitel', 'organizator', 'osoba', 'skola', 'prijemce'): + ContentType.objects.filter(app_label='seminar', model=m).update(app_label='personalni') + +def nastav_stare_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('resitel', 'organizator', 'osoba', 'skola', 'prijemce'): + ContentType.objects.filter(app_label='personalni', model=m).update(app_label='seminar') + diff --git a/split-apps-meta/create.notes b/split-apps-meta/create.notes index 9abae94d..43872d68 100644 --- a/split-apps-meta/create.notes +++ b/split-apps-meta/create.notes @@ -1,4 +1,5 @@ Prostě zkopírovat vedle, s původními (=správnými) related names. makemigrations +! Doplnit hack kolem content-types doplnit závislost na unmanage migrate From a23daf8b9713a30751766580a060a3ee4b4b7ff9 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 21:35:52 +0100 Subject: [PATCH 087/225] =?UTF-8?q?Dal=C5=A1=C3=AD=20pokus=20o=20migraci,?= =?UTF-8?q?=20I=20guess=20(po=20t=C3=BDdnu,=20lol)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/migrations/0003_initial.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/personalni/migrations/0003_initial.py b/personalni/migrations/0003_initial.py index 3c445cab..fc586ff6 100644 --- a/personalni/migrations/0003_initial.py +++ b/personalni/migrations/0003_initial.py @@ -5,6 +5,17 @@ import django.utils.timezone import django_countries.fields import imagekit.models.fields +def nastav_nove_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('resitel', 'organizator', 'osoba', 'skola', 'prijemce'): + oct = ContentType.objects.filter(app_label='seminar', model=m) + oct.update(app_label='personalni') + +def nastav_stare_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('resitel', 'organizator', 'osoba', 'skola', 'prijemce'): + nct = ContentType.objects.filter(app_label='personalni', model=m) + nct.update(app_label='seminar') class Migration(migrations.Migration): @@ -16,6 +27,7 @@ class Migration(migrations.Migration): ] operations = [ + migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), migrations.CreateModel( name='Organizator', fields=[ From 5eb936d89191d9d7a8ac2cda944371a653db209c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 19 Mar 2024 21:52:04 +0100 Subject: [PATCH 088/225] =?UTF-8?q?Fix:=20z=20flip-card=20mi=20vypadlo=20j?= =?UTF-8?q?ejich=20zarovn=C3=A1n=C3=AD=20na=20st=C5=99ed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/modules.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 5c798bd3..706eb040 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -123,6 +123,10 @@ div.flip-card-foto, div.flip-card-foto img { /** Jednotlivá použití **/ +.seznam_orgu, .seznam_archiv, .rozcestnik_temat { + text-align: center; /* zarovná karty na střed */ +} + .seznam_orgu .flip-card { width: 200px; height: 250px; From 46f1d3d42ddb23d8e0e30c9b061801520eb2c421 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 22:15:29 +0100 Subject: [PATCH 089/225] I did something! --- various/migrations/0001_initial.py | 1 + .../0004_nastaveni_aktualni_cislo.py | 21 ------------------- various/models.py | 7 +------ 3 files changed, 2 insertions(+), 27 deletions(-) delete mode 100644 various/migrations/0004_nastaveni_aktualni_cislo.py diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py index 38f2a029..43b77171 100644 --- a/various/migrations/0001_initial.py +++ b/various/migrations/0001_initial.py @@ -28,6 +28,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('cena_sous', models.IntegerField(default=1000, verbose_name='Účastnický poplatek za soustředění')), + ('aktualni_cislo', models.ForeignKey(null=True, on_delete=models.deletion.PROTECT, to='seminar.cislo', verbose_name='Aktuální číslo')), ], options={ 'verbose_name': 'Nastavení semináře', diff --git a/various/migrations/0004_nastaveni_aktualni_cislo.py b/various/migrations/0004_nastaveni_aktualni_cislo.py deleted file mode 100644 index feb6bc71..00000000 --- a/various/migrations/0004_nastaveni_aktualni_cislo.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 4.2.8 on 2024-03-12 20:44 - -from django.db import migrations, models -import django.db.models.deletion -import various.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('seminar', '0118_alter_organizator_options_alter_osoba_options_and_more'), - ('various', '0003_fix_permissions'), - ] - - operations = [ - migrations.AddField( - model_name='nastaveni', - name='aktualni_cislo', - field=models.ForeignKey(default=various.models._default_aktualni_cislo, on_delete=django.db.models.deletion.PROTECT, to='seminar.cislo', verbose_name='Aktuální číslo'), - ), - ] diff --git a/various/models.py b/various/models.py index f551a652..17632c46 100644 --- a/various/models.py +++ b/various/models.py @@ -7,10 +7,6 @@ from seminar.models import Cislo from django.urls import reverse -# Whatever, makemigrations chce default, má ho mít lol. -def _default_aktualni_cislo(): - return Cislo.objects.last().id - @reversion.register(ignore_duplicates=True) class Nastaveni(SingletonModel): @@ -22,8 +18,7 @@ class Nastaveni(SingletonModel): # null=False, on_delete=models.PROTECT) aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', - null=False, on_delete=models.PROTECT, - default=_default_aktualni_cislo, + null=True, blank=False, on_delete=models.PROTECT, ) cena_sous = models.IntegerField(null=False, From 1f0e6cccf60b7f49a545fbf3bb939a4f1a722a2a Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 22:47:11 +0100 Subject: [PATCH 090/225] =?UTF-8?q?Dal=C5=A1=C3=AD=20pozn=C3=A1mky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/relink.notes | 4 ++++ split-apps-meta/unmanage.notes | 1 + 2 files changed, 5 insertions(+) create mode 100644 split-apps-meta/relink.notes diff --git a/split-apps-meta/relink.notes b/split-apps-meta/relink.notes new file mode 100644 index 00000000..54d70260 --- /dev/null +++ b/split-apps-meta/relink.notes @@ -0,0 +1,4 @@ +Přepsat všechny odkazy v sousedních aplikacích na novou aplikaci +Naincludovat nové modely v seminar.models kvůli views +makemigrations +migrate diff --git a/split-apps-meta/unmanage.notes b/split-apps-meta/unmanage.notes index d623425f..846b7314 100644 --- a/split-apps-meta/unmanage.notes +++ b/split-apps-meta/unmanage.notes @@ -15,6 +15,7 @@ vim seminar/models/whatever seminar.Resitel.osoba: (fields.E305) Reverse query name for 'seminar.Resitel.osoba' clashes with reverse query name for 'seminar.Prijemce.osoba'. HINT: Add or change a related_name argument to the definition for 'seminar.Resitel.osoba' or 'seminar.Prijemce.osoba'. Snadné řešení: dočasné related names mít unikátní. Stejně to nikoho nezajímá. + !! Zkontrolovat, že všechno má nastavenou db_table (jinak se to potom pokusí vybastlit jméno tabulky podle aplikace…) makemigrations, bez úprav migrate? From 9e21b2ca1a88f08897e7b715fcee6d331efd0595 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 22:47:45 +0100 Subject: [PATCH 091/225] relink --- ...tor_alter_korekturovanepdf_org_and_more.py | 30 +++++++ korektury/models.py | 2 +- .../migrations/0014_alter_prednaska_org.py | 20 +++++ prednasky/models.py | 3 +- .../0119_alter_konfera_ucastnici_and_more.py | 85 +++++++++++++++++++ seminar/models/__init__.py | 2 +- seminar/models/novinky.py | 4 +- seminar/models/odevzdavatko.py | 6 +- seminar/models/soustredeni.py | 14 +-- seminar/models/treenode.py | 4 +- seminar/models/tvorba.py | 12 +-- .../0005_alter_odpoveducastnika_resitel.py | 20 +++++ sifrovacka/models.py | 2 +- 13 files changed, 180 insertions(+), 24 deletions(-) create mode 100644 korektury/migrations/0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more.py create mode 100644 prednasky/migrations/0014_alter_prednaska_org.py create mode 100644 seminar/migrations/0119_alter_konfera_ucastnici_and_more.py create mode 100644 sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py diff --git a/korektury/migrations/0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more.py b/korektury/migrations/0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more.py new file mode 100644 index 00000000..4e063a89 --- /dev/null +++ b/korektury/migrations/0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 4.2.11 on 2024-03-19 21:35 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0003_initial'), + ('korektury', '0021_auto_20240312_2124'), + ] + + operations = [ + migrations.AlterField( + model_name='komentar', + name='autor', + field=models.ForeignKey(blank=True, help_text='Autor komentáře', null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator'), + ), + migrations.AlterField( + model_name='korekturovanepdf', + name='org', + field=models.ForeignKey(blank=True, default=None, help_text='Zodpovědný organizátor za obsah', null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator'), + ), + migrations.AlterField( + model_name='oprava', + name='autor', + field=models.ForeignKey(blank=True, help_text='Autor opravy', null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator'), + ), + ] diff --git a/korektury/models.py b/korektury/models.py index c9d47dfa..ca1bb877 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -20,7 +20,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.utils.functional import cached_property from django.utils.text import get_valid_filename -from seminar.models import Organizator +from personalni.models import Organizator import subprocess from reversion import revisions as reversion diff --git a/prednasky/migrations/0014_alter_prednaska_org.py b/prednasky/migrations/0014_alter_prednaska_org.py new file mode 100644 index 00000000..09742377 --- /dev/null +++ b/prednasky/migrations/0014_alter_prednaska_org.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.11 on 2024-03-19 21:35 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0003_initial'), + ('prednasky', '0013_auto_20240312_2124'), + ] + + operations = [ + migrations.AlterField( + model_name='prednaska', + name='org', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='personalni.organizator'), + ), + ] diff --git a/prednasky/models.py b/prednasky/models.py index dcf44cbc..7045f4d5 100644 --- a/prednasky/models.py +++ b/prednasky/models.py @@ -2,7 +2,8 @@ from django.db import models -from seminar.models import Organizator, Soustredeni +from seminar.models import Soustredeni +from personalni.models import Organizator STAV_NAVRH = 1 STAV_BUDE = 2 diff --git a/seminar/migrations/0119_alter_konfera_ucastnici_and_more.py b/seminar/migrations/0119_alter_konfera_ucastnici_and_more.py new file mode 100644 index 00000000..31457997 --- /dev/null +++ b/seminar/migrations/0119_alter_konfera_ucastnici_and_more.py @@ -0,0 +1,85 @@ +# Generated by Django 4.2.11 on 2024-03-19 21:35 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0003_initial'), + ('seminar', '0118_alter_organizator_options_alter_osoba_options_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='konfera', + name='ucastnici', + field=models.ManyToManyField(help_text='Seznam účastníků konfery', through='seminar.Konfery_Ucastnici', to='personalni.resitel', verbose_name='účastníci konfery'), + ), + migrations.AlterField( + model_name='konfery_ucastnici', + name='resitel', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='personalni.resitel', verbose_name='řešitel'), + ), + migrations.AlterField( + model_name='novinky', + name='autor', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator', verbose_name='Autor novinky'), + ), + migrations.AlterField( + model_name='orgtextnode', + name='organizator', + field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='personalni.organizator', verbose_name='Organizátor'), + ), + migrations.AlterField( + model_name='pohadka', + name='autor', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.organizator', verbose_name='Autor pohádky'), + ), + migrations.AlterField( + model_name='problem', + name='autor', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='autor_problemu_%(class)s', to='personalni.organizator', verbose_name='autor problému'), + ), + migrations.AlterField( + model_name='problem', + name='garant', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='garant_problemu_%(class)s', to='personalni.organizator', verbose_name='garant zadaného problému'), + ), + migrations.AlterField( + model_name='problem', + name='opravovatele', + field=models.ManyToManyField(blank=True, related_name='opravovatele_%(class)s', to='personalni.organizator', verbose_name='opravovatelé'), + ), + migrations.AlterField( + model_name='reseni', + name='resitele', + field=models.ManyToManyField(help_text='Seznam autorů řešení', through='seminar.Reseni_Resitele', to='personalni.resitel', verbose_name='autoři řešení'), + ), + migrations.AlterField( + model_name='reseni_resitele', + name='resitele', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='personalni.resitel', verbose_name='řešitel'), + ), + migrations.AlterField( + model_name='soustredeni', + name='organizatori', + field=models.ManyToManyField(help_text='Seznam organizátorů soustředění', through='seminar.Soustredeni_Organizatori', to='personalni.organizator', verbose_name='Organizátoři soustředění'), + ), + migrations.AlterField( + model_name='soustredeni', + name='ucastnici', + field=models.ManyToManyField(help_text='Seznam účastníků soustředění', through='seminar.Soustredeni_Ucastnici', to='personalni.resitel', verbose_name='účastníci soustředění'), + ), + migrations.AlterField( + model_name='soustredeni_organizatori', + name='organizator', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='personalni.organizator', verbose_name='organizátor'), + ), + migrations.AlterField( + model_name='soustredeni_ucastnici', + name='resitel', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='personalni.resitel', verbose_name='řešitel'), + ), + ] diff --git a/seminar/models/__init__.py b/seminar/models/__init__.py index 6df1478f..e3026a2c 100644 --- a/seminar/models/__init__.py +++ b/seminar/models/__init__.py @@ -1,10 +1,10 @@ from .tvorba import * from .odevzdavatko import * from .base import * -from .personalni import * from .soustredeni import * from .pomocne import * from .treenode import * from .novinky import * from various.models import Nastaveni +from personalni.models import Organizator, Resitel, Skola, Prijemce, Osoba diff --git a/seminar/models/novinky.py b/seminar/models/novinky.py index cee674a8..b67bdfe6 100644 --- a/seminar/models/novinky.py +++ b/seminar/models/novinky.py @@ -4,7 +4,7 @@ from imagekit.processors import ResizeToFit from reversion import revisions as reversion -from . import personalni as pm +from personalni.models import Organizator @reversion.register(ignore_duplicates=True) class Novinky(models.Model): @@ -26,7 +26,7 @@ class Novinky(models.Model): ], options={'quality': 95}) - autor = models.ForeignKey(pm.Organizator, verbose_name='Autor novinky', null=True, + autor = models.ForeignKey(Organizator, verbose_name='Autor novinky', null=True, on_delete=models.SET_NULL) zverejneno = models.BooleanField('Zveřejněno', default=False) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 744fe38c..b0dec663 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -10,11 +10,11 @@ from django.utils import timezone from django.conf import settings from seminar.models import tvorba as am -from seminar.models import personalni as pm from seminar.models import treenode as tm from seminar.models import base as bm from seminar.utils import vzorecek_na_prepocet, inverze_vzorecku_na_prepocet +from personalni.models import Resitel @reversion.register(ignore_duplicates=True) @@ -34,7 +34,7 @@ class Reseni(bm.SeminarModelBase): problem = models.ManyToManyField(am.Problem, verbose_name='problém', help_text='Problém', through='Hodnoceni') - resitele = models.ManyToManyField(pm.Resitel, verbose_name='autoři řešení', + resitele = models.ManyToManyField(Resitel, verbose_name='autoři řešení', help_text='Seznam autorů řešení', through='Reseni_Resitele') @@ -229,7 +229,7 @@ class Reseni_Resitele(models.Model): # Interní ID id = models.AutoField(primary_key = True) - resitele = models.ForeignKey(pm.Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + resitele = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE) diff --git a/seminar/models/soustredeni.py b/seminar/models/soustredeni.py index 03ff5909..275224a3 100644 --- a/seminar/models/soustredeni.py +++ b/seminar/models/soustredeni.py @@ -8,7 +8,7 @@ from reversion import revisions as reversion from django.conf import settings -from . import personalni as pm +from personalni.models import Resitel, Organizator from .base import SeminarModelBase from seminar.models import tvorba as am @@ -42,10 +42,10 @@ class Soustredeni(SeminarModelBase): misto = models.CharField('místo soustředění', max_length=256, blank=True, default='', help_text='Místo (název obce, volitelně též objektu') - ucastnici = models.ManyToManyField(pm.Resitel, verbose_name='účastníci soustředění', + ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění', help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici') - organizatori = models.ManyToManyField(pm.Organizator, + organizatori = models.ManyToManyField(Organizator, verbose_name='Organizátoři soustředění', help_text='Seznam organizátorů soustředění', through='Soustredeni_Organizatori') @@ -92,7 +92,7 @@ class Soustredeni_Ucastnici(SeminarModelBase): # Interní ID id = models.AutoField(primary_key = True) - resitel = models.ForeignKey(pm.Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', on_delete=models.PROTECT) @@ -118,7 +118,7 @@ class Soustredeni_Organizatori(SeminarModelBase): # Interní ID id = models.AutoField(primary_key = True) - organizator = models.ForeignKey(pm.Organizator, verbose_name='organizátor', + organizator = models.ForeignKey(Organizator, verbose_name='organizátor', on_delete=models.PROTECT) soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', @@ -163,7 +163,7 @@ class Konfera(am.Problem): help_text='Abstrakt konfery tak, jak byl uveden ve sborníku') # FIXME: Umíme omezit jen na účastníky daného soustřeďka? - ucastnici = models.ManyToManyField(pm.Resitel, verbose_name='účastníci konfery', + ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci konfery', help_text='Seznam účastníků konfery', through='Konfery_Ucastnici') soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', @@ -204,7 +204,7 @@ class Konfery_Ucastnici(models.Model): # Interní ID id = models.AutoField(primary_key = True) - resitel = models.ForeignKey(pm.Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE) diff --git a/seminar/models/treenode.py b/seminar/models/treenode.py index 50261d1a..735501c0 100644 --- a/seminar/models/treenode.py +++ b/seminar/models/treenode.py @@ -9,7 +9,7 @@ from unidecode import unidecode # Používám pro získání ID odkazu (ještě from polymorphic.models import PolymorphicModel -from . import personalni as pm +from personalni.models import Organizator from .pomocne import Text @@ -166,7 +166,7 @@ class OrgTextNode(TreeNode): verbose_name = 'Organizátorský článek (Node)' verbose_name_plural = 'Organizátorské články (Node)' - organizator = models.ForeignKey(pm.Organizator, + organizator = models.ForeignKey(Organizator, null=False, blank=False, on_delete=models.DO_NOTHING, diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 41def9c4..1dd9db8e 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -34,7 +34,7 @@ from polymorphic.models import PolymorphicModel from django.core.mail import EmailMessage from seminar.utils import aktivniResitele -from . import personalni as pm +from personalni.models import Prijemce, Organizator from .base import SeminarModelBase @@ -306,7 +306,7 @@ class Cislo(SeminarModelBase): resitele_vsichni.filter(zasilat_cislo_papirove=True)) paticka_prijemce = "---\nPokud tyto e-maily nechcete nadále dostávat, prosíme, ozvěte se nám na mam@matfyz.cz." - posli(predmet, text_mailu + paticka_prijemce, pm.Prijemce.objects.filter(zasilat_cislo_emailem=True)) + posli(predmet, text_mailu + paticka_prijemce, Prijemce.objects.filter(zasilat_cislo_emailem=True)) def save(self, *args, **kwargs): super().save(*args, **kwargs) @@ -462,15 +462,15 @@ class Problem(SeminarModelBase,PolymorphicModel): poznamka = models.TextField('org poznámky (HTML)', blank=True, help_text='Neveřejný návrh úlohy, návrh řešení, text zadání, poznámky ...') - autor = models.ForeignKey(pm.Organizator, verbose_name='autor problému', + autor = models.ForeignKey(Organizator, verbose_name='autor problému', related_name='autor_problemu_%(class)s', null=True, blank=True, on_delete=models.SET_NULL) - garant = models.ForeignKey(pm.Organizator, verbose_name='garant zadaného problému', + garant = models.ForeignKey(Organizator, verbose_name='garant zadaného problému', related_name='garant_problemu_%(class)s', null=True, blank=True, on_delete=models.SET_NULL) - opravovatele = models.ManyToManyField(pm.Organizator, verbose_name='opravovatelé', + opravovatele = models.ManyToManyField(Organizator, verbose_name='opravovatelé', blank=True, related_name='opravovatele_%(class)s') kod = models.CharField('lokální kód', max_length=32, blank=True, default='', @@ -691,7 +691,7 @@ class Pohadka(SeminarModelBase): id = models.AutoField(primary_key=True) autor = models.ForeignKey( - pm.Organizator, + Organizator, verbose_name="Autor pohádky", # Při nahrávání z TeXu není vyplnění vyžadováno, v adminu je diff --git a/sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py b/sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py new file mode 100644 index 00000000..34b50d4b --- /dev/null +++ b/sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.11 on 2024-03-19 21:35 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0003_initial'), + ('sifrovacka', '0004_auto_20240312_2124'), + ] + + operations = [ + migrations.AlterField( + model_name='odpoveducastnika', + name='resitel', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='personalni.resitel'), + ), + ] diff --git a/sifrovacka/models.py b/sifrovacka/models.py index 6517c2e0..5bad397f 100644 --- a/sifrovacka/models.py +++ b/sifrovacka/models.py @@ -1,7 +1,7 @@ from django.db import models from django.utils import timezone -from seminar.models.personalni import Resitel +from personalni.models import Resitel # Create your models here. From 53f40e193d06553e220735d34e86095263099f59 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 22:48:42 +0100 Subject: [PATCH 092/225] =?UTF-8?q?Dopln=C4=9Bn=C3=AD=20chyb=C4=9Bj=C3=ADc?= =?UTF-8?q?=C3=ADho=20jm=C3=A9na=20tabulky=20(do=20p=C5=99edchoz=C3=AD=20m?= =?UTF-8?q?igrace,=20proto=C5=BEe=20yolo)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/migrations/0003_initial.py | 1 + personalni/models.py | 1 + 2 files changed, 2 insertions(+) diff --git a/personalni/migrations/0003_initial.py b/personalni/migrations/0003_initial.py index fc586ff6..e026182c 100644 --- a/personalni/migrations/0003_initial.py +++ b/personalni/migrations/0003_initial.py @@ -42,6 +42,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'Organizátor', 'verbose_name_plural': 'Organizátoři', + 'db_table': 'seminar_organizator', 'ordering': ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'], 'managed': False, }, diff --git a/personalni/models.py b/personalni/models.py index 743e18b8..cff2899e 100644 --- a/personalni/models.py +++ b/personalni/models.py @@ -407,6 +407,7 @@ class Organizator(SeminarModelBase): # TODO: Chtěl bych spíš mít nejstarší orgy dole. # TODO: Zohledňovat přezdívky? # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu + db_table = 'seminar_organizator' ordering = ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'] managed = False From e083f74a835991958ff131d72337bd743c184e37 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 22:49:32 +0100 Subject: [PATCH 093/225] =?UTF-8?q?Dal=C5=A1=C3=AD=20pozn=C3=A1mka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/relink.notes | 1 + 1 file changed, 1 insertion(+) diff --git a/split-apps-meta/relink.notes b/split-apps-meta/relink.notes index 54d70260..5465c47d 100644 --- a/split-apps-meta/relink.notes +++ b/split-apps-meta/relink.notes @@ -1,4 +1,5 @@ Přepsat všechny odkazy v sousedních aplikacích na novou aplikaci Naincludovat nové modely v seminar.models kvůli views makemigrations + Zkontrolovat přítomnost závislosti na create! migrate From ace30c931e3d4168be0ca5a76bae8b160103e115 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 22:57:51 +0100 Subject: [PATCH 094/225] =?UTF-8?q?Neimportovat=20z=20mazan=C3=A9ho=20modu?= =?UTF-8?q?lu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 9c4af3ed..960dc366 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -4,7 +4,7 @@ from django.views.generic import FormView, ListView from seminar.views import formularOKView from .forms import SifrovackaForm from .models import OdpovedUcastnika, SpravnaOdpoved -from seminar.models.personalni import Resitel +from seminar.models import Resitel # Create your views here. From 858b5ce054ffc8f9a9e7fd9193eeaac18aeff3d3 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 22:58:15 +0100 Subject: [PATCH 095/225] =?UTF-8?q?Smaz=C3=A1n=C3=AD,=20makemigrations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oba_user_remove_prijemce_osoba_and_more.py | 48 ++ seminar/models/personalni.py | 453 ------------------ 2 files changed, 48 insertions(+), 453 deletions(-) create mode 100644 seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py delete mode 100644 seminar/models/personalni.py diff --git a/seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py b/seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py new file mode 100644 index 00000000..6e4f4612 --- /dev/null +++ b/seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py @@ -0,0 +1,48 @@ +# Generated by Django 4.2.11 on 2024-03-19 21:57 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0119_alter_konfera_ucastnici_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='osoba', + name='user', + ), + migrations.RemoveField( + model_name='prijemce', + name='osoba', + ), + migrations.RemoveField( + model_name='resitel', + name='osoba', + ), + migrations.RemoveField( + model_name='resitel', + name='skola', + ), + migrations.RemoveField( + model_name='skola', + name='kontaktni_osoba', + ), + migrations.DeleteModel( + name='Organizator', + ), + migrations.DeleteModel( + name='Osoba', + ), + migrations.DeleteModel( + name='Prijemce', + ), + migrations.DeleteModel( + name='Resitel', + ), + migrations.DeleteModel( + name='Skola', + ), + ] diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py deleted file mode 100644 index 5286e1be..00000000 --- a/seminar/models/personalni.py +++ /dev/null @@ -1,453 +0,0 @@ -# -*- coding: utf-8 -*- -import logging - -from django.db import models -from django.utils import timezone -from django.conf import settings -from django.core.exceptions import ValidationError -from imagekit.models import ImageSpecField, ProcessedImageField -from imagekit.processors import ResizeToFit, Transpose - -from django_countries.fields import CountryField - -from reversion import revisions as reversion - -from .base import SeminarModelBase - -logger = logging.getLogger(__name__) - - -@reversion.register(ignore_duplicates=True) -class Osoba(SeminarModelBase): - - class Meta: - db_table = 'seminar_osoby' - verbose_name = 'Osoba' - verbose_name_plural = 'Osoby' - ordering = ['prijmeni','jmeno'] - managed = False - - id = models.AutoField(primary_key = True) - - jmeno = models.CharField('jméno', max_length=256) - - prijmeni = models.CharField('příjmení', max_length=256) - - prezdivka = models.CharField('přezdívka', blank=True, null=True, max_length=256) - - # User, pokud má na webu účet - user = models.OneToOneField(settings.AUTH_USER_MODEL, blank=True, null=True, - verbose_name='uživatel', on_delete=models.DO_NOTHING, - related_name='user_old') - - # Pohlaví. Že ho neznáme se snad nestane (a ušetří to práci při programování) - pohlavi_muz = models.BooleanField('pohlaví (muž)', default=False) - - email = models.EmailField('e-mail', max_length=256, blank=True, default='') - - telefon = models.CharField('telefon', max_length=256, blank=True, default='') - - datum_narozeni = models.DateField('datum narození', blank=True, null=True) - - # NULL dokud nedali souhlas - datum_souhlasu_udaje = models.DateField('datum souhlasu (údaje)', blank=True, null=True, - help_text='Datum souhlasu se zpracováním osobních údajů') - - # NULL dokud nedali souhlas - datum_souhlasu_zasilani = models.DateField('datum souhlasu (spam)', blank=True, null=True, - help_text='Datum souhlasu se zasíláním MFF materiálů') - - # Alespoň odhad (rok či i měsíc) - datum_registrace = models.DateField('datum registrace do semináře', default=timezone.now) - - # Ulice může být i jen číslo - ulice = models.CharField('ulice', max_length=256, blank=True, default='') - - mesto = models.CharField('město', max_length=256, blank=True, default='') - - psc = models.CharField('PSČ', max_length=32, blank=True, default='') - - # ISO 3166-1 dvojznakovy kod zeme velkym pismem (CZ, SK) - # Ekvivalentní s CharField(max_length=2, default='CZ', ...) - stat = CountryField('stát', default='CZ', - help_text='ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)') - - jak_se_dozvedeli = models.TextField('Jak se dozvěděli', blank=True) - - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k osobě (plain text)') - - foto = ProcessedImageField(verbose_name='Fotografie osoby', - upload_to='image_osoby/velke/%Y/', null = True, blank = True, - help_text = 'Vlož fotografii osoby o libovolné velikosti', - processors=[ - Transpose(Transpose.AUTO), - ResizeToFit(500, 500, upscale=False) - ], - options={'quality': 95}) - foto_male = ImageSpecField(source='foto', - processors=[ - ResizeToFit(200, 200, upscale=False) - ], - options={'quality': 95}) - - # má OneToOneField nejvýše s: - # Resitel - # Prijemce - # Organizator - - def plne_jmeno(self): - return '{} {}'.format(self.jmeno, self.prijmeni) - - def inicial_krestni(self): - jmena = self.jmeno.split() - return " ".join(['{}.'.format(jmeno[0]) for jmeno in jmena]) - - def __str__(self): - return self.plne_jmeno() - - # Overridujeme save Osoby, aby když si změní e-mail, aby se projevil i v - # Userovi (a tak se dal poslat mail s resetem hesla) - def save(self, *args, **kwargs): - if self.user is not None: - u = self.user - # U svatého tučňáka, prosím ať tohle funguje. - # (Takhle se kódit asi nemá...) - u.email = self.email - u.save() - super().save() - -# -# Mělo by být částečně vytaženo z Aesopa -# viz https://ovvp.mff.cuni.cz/wiki/aesop/export-skol. -# - -@reversion.register(ignore_duplicates=True) -class Skola(SeminarModelBase): - - class Meta: - db_table = 'seminar_skoly' - verbose_name = 'Škola' - verbose_name_plural = 'Školy' - ordering = ['mesto', 'nazev'] - managed = False - - # Interní ID - id = models.AutoField(primary_key = True) - - # Aesopi ID "izo:..." nebo "aesop:..." - # NULL znamená v exportu do aesopa "ufo" - aesop_id = models.CharField('Aesop ID', max_length=32, blank=True, default='', - help_text='Aesopi ID typu "izo:..." nebo "aesop:..."') - - # IZO školy (jen české školy) - izo = models.CharField('IZO', max_length=32, blank=True, - help_text='IZO školy (jen české školy)') - - # Celý název školy - nazev = models.CharField('název', max_length=256, - help_text='Celý název školy') - - # Zkraceny nazev pro zobrazení ve výsledkovce, volitelné. - # Není v Aesopovi, musíme vytvářet sami. - kratky_nazev = models.CharField('zkrácený název', max_length=256, blank=True, - help_text="Zkrácený název pro zobrazení ve výsledkovce") - - # Ulice může být jen číslo - ulice = models.CharField('ulice', max_length=256) - - mesto = models.CharField('město', max_length=256) - - psc = models.CharField('PSČ', max_length=32) - - # ISO 3166-1 dvojznakovy kod zeme velkym pismem (CZ, SK) - # Ekvivalentní s CharField(max_length=2, default='CZ', ...) - stat = CountryField('stát', default='CZ', - help_text='ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)') - - # Jaké vzdělání škpla poskytuje? - je_zs = models.BooleanField('základní stupeň', default=True) - je_ss = models.BooleanField('střední stupeň', default=True) - - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka ke škole (plain text)') - - kontaktni_osoba = models.ForeignKey(Osoba, verbose_name='Kontaktní osoba', - blank=True, null=True, on_delete=models.SET_NULL, related_name='kontaktni_osoba_old') - - def __str__(self): - return '{}, {}, {}'.format(self.nazev, self.ulice, self.mesto) - -class Prijemce(SeminarModelBase): - class Meta: - db_table = 'seminar_prijemce' - verbose_name = 'příjemce' - verbose_name_plural = 'příjemce' - managed = False - - - # Interní ID - id = models.AutoField(primary_key = True) - - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k příemci čísel (plain text)') - - osoba = models.OneToOneField(Osoba, verbose_name='komu', blank=False, null=False, - help_text='Které osobě či na jakou adresu se mají zasílat čísla', - on_delete=models.CASCADE, related_name='osobad_old1') - - zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce příjemce dostávat číslo emailem', default=False) - - # FIXME: možná chceme něco jako vazbu na osobu XOR školu a počet kusů k zaslání - # FIXME: a možná taky posílání na mail a možná taky přes něj chceme posílat i řešitelům - - def __str__(self): - return self.osoba.plne_jmeno() - - -@reversion.register(ignore_duplicates=True) -class Resitel(SeminarModelBase): - - class Meta: - db_table = 'seminar_resitele' - verbose_name = 'Řešitel' - verbose_name_plural = 'Řešitelé' - ordering = ['osoba'] - managed = False - - # Interní ID - id = models.AutoField(primary_key = True) - - prezdivka_resitele = models.CharField('přezdívka řešitele', blank=True, null=True, max_length=256, unique=True) - - osoba = models.OneToOneField(Osoba, blank=False, null=False, verbose_name='osoba', - on_delete=models.PROTECT, related_name='osoba_old2') - - - skola = models.ForeignKey(Skola, blank=True, null=True, verbose_name='škola', - on_delete=models.SET_NULL, related_name='skola_old3') - - # Očekávaný rok maturity a vyřazení z aktivních řešitelů - rok_maturity = models.IntegerField('rok maturity', blank=True, null=True) - - ZASILAT_DOMU = 'domu' - ZASILAT_DO_SKOLY = 'do_skoly' - ZASILAT_NIKAM = 'nikam' - ZASILAT_CHOICES = [ - (ZASILAT_DOMU, 'Domů'), - (ZASILAT_DO_SKOLY, 'Do školy'), - (ZASILAT_NIKAM, 'Nezasílat papírově'), - ] - - zasilat = models.CharField('kam zasílat', max_length=32, choices=ZASILAT_CHOICES, blank=False, default=ZASILAT_DOMU) - - zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce řešitel dostávat číslo emailem', default=False) - - zasilat_cislo_papirove = models.BooleanField('zasílat číslo papírově', help_text='True pokud chce řešitel dostávat číslo papírově', default=True) - - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k řešiteli (plain text)') - - - def export_row(self): - "Slovnik pro pouziti v AESOP exportu" - return { - 'id': self.id, - 'name': self.osoba.jmeno, - 'surname': self.osoba.prijmeni, - 'gender': 'M' if self.osoba.pohlavi_muz else 'F', - 'born': self.osoba.datum_narozeni.isoformat() if self.osoba.datum_narozeni else '', - 'email': self.osoba.email, - 'end-year': self.rok_maturity or '', - - 'street': self.osoba.ulice, - 'town': self.osoba.mesto, - 'postcode': self.osoba.psc, - 'country': self.osoba.stat, - - 'spam-flag': 'Y' if self.osoba.datum_souhlasu_zasilani else '', - 'spam-date': self.osoba.datum_souhlasu_zasilani.isoformat() if self.osoba.datum_souhlasu_zasilani else '', - - 'school': self.skola.aesop_id if self.skola else '', - 'school-name': str(self.skola) if self.skola else 'Skola neni znama', - } - - def rocnik(self, rocnik): - """Vrati skolni rocnik resitele pro zadany Rocnik. - Vraci '' pro neznamy rok maturity resitele, Z* pro ekvivalent ZŠ.""" - if self.rok_maturity is None: - return '' - rozdil = 5 - (self.rok_maturity - rocnik.prvni_rok) - if rozdil >= 1: - return str(rozdil) - else: - return 'Z' + str(rozdil + 9) - - def vsechny_body(self): - "Spočítá body odjakživa." - vsechna_reseni = self.reseni_set.all() - from .odevzdavatko import Hodnoceni - vsechna_hodnoceni = Hodnoceni.objects.filter( - reseni__in=vsechna_reseni) - return sum(h.body for h in list(vsechna_hodnoceni) if h.body is not None) - - - def get_titul(self, body=None): - "Vrati titul jako řetězec." - - # Nejprve si zadefinujeme titul - from enum import Enum - from functools import total_ordering - @total_ordering - class Titul(Enum): - """ Třída reprezentující možné tituly. Hodnoty jsou dvojice (dolní hranice, stringifikace). """ - nic = (0, '') - bc = (20, 'Bc.') - mgr = (50, 'Mgr.') - dr = (100, 'Dr.') - doc = (200, 'Doc.') - prof = (500, 'Prof.') - akad = (1000, 'Akad.') - - def __lt__(self, other): - return True if self.value[0] < other.value[0] else False - def __eq__(self, other): # Měla by být implicitní, ale klidně explicitně. - return True if self.value[0] == other.value[0] else False - - def __str__(self): - return self.value[1] - - @classmethod - def z_bodu(cls, body): - aktualni = cls.nic - # TODO: ověřit, že to funguje - for titul in cls: # Kdyžtak použít __members__.items() - if titul.value[0] <= body: - aktualni = titul - else: - break - return aktualni - - # Hledáme body v databázi - # V listopadu 2020 jsme se na filosofické schůzce shodli o změně hranic titulů: - # - body z 25. ročníku a dříve byly shledány dvakrát hodnotnějšími - # - proto se započítávají dvojnásobně a byly posunuté hranice titulů - # - staré tituly se ale nemají odebrat, pokud řešitel v t.č. minulém (26.) ročníku měl titul, má ho mít pořád. - from .odevzdavatko import Hodnoceni - hodnoceni_do_25_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=25,reseni__in=self.reseni_set.all()) - novejsi_hodnoceni = Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()).difference(hodnoceni_do_25_rocniku) - - def body_z_hodnoceni(hh : list): - return sum(h.body for h in hh if h.body is not None) - - stare_body = body_z_hodnoceni(hodnoceni_do_25_rocniku) - if body is None: - nove_body = body_z_hodnoceni(novejsi_hodnoceni) - else: - # Zjistíme, kolik bodů jsou staré, tedy hodnotnější - nove_body = max(0, body - stare_body) # Všechny body nad počet původních hodnotnějších - stare_body = min(stare_body, body) # Skutečný počet hodnotnějších bodů - logicke_body = 2*stare_body + nove_body - - - # Titul se určí následovně: - # - Pokud se řeší body, které jsou starší, než do 26 ročníku (včetně), dáváme tituly postaru. - # - Jinak dáváme tituly po novu... - # - ... ale titul se nesmí odebrat, pokud se zmenšil. - def titul_do_26_rocniku(body): - """ Původní hranice bodů za tituly """ - if body < 10: - return Titul.nic - elif body < 20: - return Titul.bc - elif body < 50: - return Titul.mgr - elif body < 100: - return Titul.dr - elif body < 200: - return Titul.doc - elif body < 500: - return Titul.prof - else: - return Titul.akad - - from .odevzdavatko import Hodnoceni - hodnoceni_do_26_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=26,reseni__in=self.reseni_set.all()) - novejsi_body = body_z_hodnoceni( - Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()) - .difference(hodnoceni_do_26_rocniku) - ) - starsi_body = body_z_hodnoceni(hodnoceni_do_26_rocniku) - if body is not None: - # Ještě z toho vybereme ty správně staré body - novejsi_body = max(0, body - starsi_body) - starsi_body = min(starsi_body, body) - - # Titul pro 26. ročník - stary_titul = titul_do_26_rocniku(starsi_body) - # Titul podle aktuálních pravidel - novy_titul = Titul.z_bodu(logicke_body) - - if novejsi_body == 0: - # Žádné nové body -- titul podle starých pravidel - return str(stary_titul) - return str(max(novy_titul, stary_titul)) - - - def __str__(self): - return self.osoba.plne_jmeno() - - -@reversion.register(ignore_duplicates=True) -class Organizator(SeminarModelBase): - osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org_old4', - help_text='osobní údaje organizátora', null=False, blank=False, - on_delete=models.PROTECT) - - vytvoreno = models.DateTimeField( - 'Vytvořeno', - default=timezone.now, - blank=True, - editable=False - ) - - # Ne, date to nebude. SQLite: invalid literal for int() with base 10: b'17 23:00:00' - organizuje_od = models.DateTimeField('Organizuje od', blank=True, null=True) - - organizuje_do = models.DateTimeField('Organizuje do', blank=True, null=True) - - studuje = models.CharField('Studium aj.', max_length = 256, - null = True, blank = True, - help_text="Např. 'Studuje Obecnou fyziku (Bc.), 3. ročník', " - "'Vystudovala Diskrétní modely a algoritmy (Mgr.)' nebo " - "'Přednáší na MFF'") - - strucny_popis_organizatora = models.TextField('Stručný popis organizátora', - null = True, blank = True) - - skola = models.CharField('Škola, kterou studuje', max_length = 256, null=True, blank=True, - help_text="Škola, např. MFF, VŠCHT, VUT, ... prostě aby se nemuselo psát do studuje" - "školu, ale jen obor, možnost zobrazit zvlášť") - - def clean(self): - if self.organizuje_od and self.organizuje_do and (self.organizuje_od > self.organizuje_do): - raise ValidationError("Organizátor nemůže skončit s organizováním dříve než začal!") - super().clean() - - def __str__(self): - if self.osoba.prezdivka: - return "{} '{}' {}".format(self.osoba.jmeno, - self.osoba.prezdivka, - self.osoba.prijmeni) - else: - return "{} {}".format(self.osoba.jmeno, self.osoba.prijmeni) - - class Meta: - verbose_name = 'Organizátor' - verbose_name_plural = 'Organizátoři' - # Řadí aktivní orgy na začátek, pod tím v pořadí od nejstarších neaktivní orgy. - # TODO: Chtěl bych spíš mít nejstarší orgy dole. - # TODO: Zohledňovat přezdívky? - # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu - ordering = ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'] - managed = False From 9c1c393395be0491e3ccd52a692566056d5bec59 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 19 Mar 2024 23:11:15 +0100 Subject: [PATCH 096/225] delete notes --- split-apps-meta/delete.notes | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 split-apps-meta/delete.notes diff --git a/split-apps-meta/delete.notes b/split-apps-meta/delete.notes new file mode 100644 index 00000000..64c15c0a --- /dev/null +++ b/split-apps-meta/delete.notes @@ -0,0 +1,8 @@ +Prostě to smazat. +makemigrations + Kromě triviální smazání modelů se smažou i jejich vazby, to je snad OK. + (Hypotéza: kvůli konzistenčním kontrolám v DB?) +migrate +a doufat :-P + +(Pozor: pokud něco (JSON serializace, data/… atp.) má starý identifikátor modelu, tak se to teď rozbije.) From b17b97e4e4e5299b55a597e487b1133b79b6d602 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:09:12 +0100 Subject: [PATCH 097/225] OrgSkolyAutocompleteTestCase: jde vypnout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Když máme jiný model, tak se nepotkají typy dumpů. Cherry-pickable. --- api/tests/test_skola_autocomplete.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/tests/test_skola_autocomplete.py b/api/tests/test_skola_autocomplete.py index 9fc4aee6..36df97e8 100644 --- a/api/tests/test_skola_autocomplete.py +++ b/api/tests/test_skola_autocomplete.py @@ -1,9 +1,10 @@ -from django.test import TestCase +from django.test import TestCase, tag from django.urls import reverse import seminar.models as m import seminar.views as v from seminar.utils import sync_skoly +@tag('stejny-model-na-produkci') class OrgSkolyAutocompleteTestCase(TestCase): @classmethod def setUpClass(cls): From 54db53805a87e3d117df184f66f51fc6c7780be4 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:16:59 +0100 Subject: [PATCH 098/225] Nezapomenout na vazby --- split-apps-meta/delete.notes | 1 + 1 file changed, 1 insertion(+) diff --git a/split-apps-meta/delete.notes b/split-apps-meta/delete.notes index 64c15c0a..dad0e6d4 100644 --- a/split-apps-meta/delete.notes +++ b/split-apps-meta/delete.notes @@ -2,6 +2,7 @@ Prostě to smazat. makemigrations Kromě triviální smazání modelů se smažou i jejich vazby, to je snad OK. (Hypotéza: kvůli konzistenčním kontrolám v DB?) +Doplnit vazby na relinky a vznik nového modelu migrate a doufat :-P From 1a3dd5d6b233aa646e3797002655fe2407e939ed Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:17:53 +0100 Subject: [PATCH 099/225] =?UTF-8?q?Jak=20za=C5=99=C3=ADdit,=20=C5=BEe=20mo?= =?UTF-8?q?del=20bude=20managed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/manage.notes | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 split-apps-meta/manage.notes diff --git a/split-apps-meta/manage.notes b/split-apps-meta/manage.notes new file mode 100644 index 00000000..3cf5a8d2 --- /dev/null +++ b/split-apps-meta/manage.notes @@ -0,0 +1,3 @@ +1. smazat `managed = False` +2. makemigrations +3. migrate From b4b41b949966c1cf8ed194de8c90fb06e6c5c278 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:18:12 +0100 Subject: [PATCH 100/225] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20z=C3=A1vislost?= =?UTF-8?q?=C3=AD=20do=20delete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0120_remove_osoba_user_remove_prijemce_osoba_and_more.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py b/seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py index 6e4f4612..1bbfcff0 100644 --- a/seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py +++ b/seminar/migrations/0120_remove_osoba_user_remove_prijemce_osoba_and_more.py @@ -7,6 +7,10 @@ class Migration(migrations.Migration): dependencies = [ ('seminar', '0119_alter_konfera_ucastnici_and_more'), + ('personalni', '0003_initial'), + ('korektury', '0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more'), + ('prednasky', '0014_alter_prednaska_org'), + ('sifrovacka', '0005_alter_odpoveducastnika_resitel'), ] operations = [ From a17914f49ce6b09995369f933192dd0c6f3ab8ca Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:18:25 +0100 Subject: [PATCH 101/225] Personalni: managed = True + makemigrations --- ...or_options_alter_osoba_options_and_more.py | 33 +++++++++++++++++++ personalni/models.py | 5 --- 2 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py diff --git a/personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py b/personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py new file mode 100644 index 00000000..8abbf0a0 --- /dev/null +++ b/personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.11 on 2024-03-26 21:11 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0003_initial'), + ] + + operations = [ + migrations.AlterModelOptions( + name='organizator', + options={'ordering': ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'], 'verbose_name': 'Organizátor', 'verbose_name_plural': 'Organizátoři'}, + ), + migrations.AlterModelOptions( + name='osoba', + options={'ordering': ['prijmeni', 'jmeno'], 'verbose_name': 'Osoba', 'verbose_name_plural': 'Osoby'}, + ), + migrations.AlterModelOptions( + name='prijemce', + options={'verbose_name': 'příjemce', 'verbose_name_plural': 'příjemce'}, + ), + migrations.AlterModelOptions( + name='resitel', + options={'ordering': ['osoba'], 'verbose_name': 'Řešitel', 'verbose_name_plural': 'Řešitelé'}, + ), + migrations.AlterModelOptions( + name='skola', + options={'ordering': ['mesto', 'nazev'], 'verbose_name': 'Škola', 'verbose_name_plural': 'Školy'}, + ), + ] diff --git a/personalni/models.py b/personalni/models.py index cff2899e..7ede2d08 100644 --- a/personalni/models.py +++ b/personalni/models.py @@ -25,7 +25,6 @@ class Osoba(SeminarModelBase): verbose_name = 'Osoba' verbose_name_plural = 'Osoby' ordering = ['prijmeni','jmeno'] - managed = False id = models.AutoField(primary_key = True) @@ -129,7 +128,6 @@ class Skola(SeminarModelBase): verbose_name = 'Škola' verbose_name_plural = 'Školy' ordering = ['mesto', 'nazev'] - managed = False # Interní ID id = models.AutoField(primary_key = True) @@ -182,7 +180,6 @@ class Prijemce(SeminarModelBase): db_table = 'seminar_prijemce' verbose_name = 'příjemce' verbose_name_plural = 'příjemce' - managed = False # Interní ID @@ -212,7 +209,6 @@ class Resitel(SeminarModelBase): verbose_name = 'Řešitel' verbose_name_plural = 'Řešitelé' ordering = ['osoba'] - managed = False # Interní ID id = models.AutoField(primary_key = True) @@ -409,7 +405,6 @@ class Organizator(SeminarModelBase): # TODO: Sjednotit s tím, jak se řadí organizátoři v seznau orgů na webu db_table = 'seminar_organizator' ordering = ['-organizuje_do', 'osoba__jmeno', 'osoba__prijmeni'] - managed = False osoba = models.OneToOneField(Osoba, verbose_name='osoba', related_name='org', help_text='osobní údaje organizátora', null=False, blank=False, From 49f9b052852a84a107e5fdb402ac77310dd24b87 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:19:02 +0100 Subject: [PATCH 102/225] =?UTF-8?q?nezapomenout=20vazby=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/manage.notes | 1 + 1 file changed, 1 insertion(+) diff --git a/split-apps-meta/manage.notes b/split-apps-meta/manage.notes index 3cf5a8d2..c6d4b189 100644 --- a/split-apps-meta/manage.notes +++ b/split-apps-meta/manage.notes @@ -1,3 +1,4 @@ 1. smazat `managed = False` 2. makemigrations + Vazba na delete! 3. migrate From d21ac37187001b65aeb0bb74adb1540af6c985ad Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:19:38 +0100 Subject: [PATCH 103/225] vazba --- ...004_alter_organizator_options_alter_osoba_options_and_more.py | 1 + 1 file changed, 1 insertion(+) diff --git a/personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py b/personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py index 8abbf0a0..6065e58f 100644 --- a/personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py +++ b/personalni/migrations/0004_alter_organizator_options_alter_osoba_options_and_more.py @@ -7,6 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('personalni', '0003_initial'), + ('seminar', '0120_remove_osoba_user_remove_prijemce_osoba_and_more'), ] operations = [ From 9b12681e4526b96ea2ca3853f26d1c1ef3b5947d Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:23:40 +0100 Subject: [PATCH 104/225] =?UTF-8?q?pomigra=C4=8Dn=C3=AD=20safeguardy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/post | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 split-apps-meta/post diff --git a/split-apps-meta/post b/split-apps-meta/post new file mode 100644 index 00000000..0fa01c0d --- /dev/null +++ b/split-apps-meta/post @@ -0,0 +1,2 @@ +dummy migrace v novém modelu +dummy migrace v semináři a ostatních, závisející na té nové migraci. From e0d45ddf5d7ce558e6bcef59ba5996d3baf00ab1 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:26:33 +0100 Subject: [PATCH 105/225] =?UTF-8?q?Pomigra=C4=8Dn=C3=AD=20migrace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lol wording --- .../migrations/0023_personalni_post_migrate.py | 14 ++++++++++++++ .../migrations/0005_personalni_post_migrate.py | 13 +++++++++++++ .../migrations/0015_personalni_post_migrate.py | 14 ++++++++++++++ seminar/migrations/0121_personalni_post_migrate.py | 14 ++++++++++++++ .../migrations/0006_personalni_post_migrate.py | 14 ++++++++++++++ 5 files changed, 69 insertions(+) create mode 100644 korektury/migrations/0023_personalni_post_migrate.py create mode 100644 personalni/migrations/0005_personalni_post_migrate.py create mode 100644 prednasky/migrations/0015_personalni_post_migrate.py create mode 100644 seminar/migrations/0121_personalni_post_migrate.py create mode 100644 sifrovacka/migrations/0006_personalni_post_migrate.py diff --git a/korektury/migrations/0023_personalni_post_migrate.py b/korektury/migrations/0023_personalni_post_migrate.py new file mode 100644 index 00000000..a92ec89d --- /dev/null +++ b/korektury/migrations/0023_personalni_post_migrate.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.11 on 2024-03-26 21:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('korektury', '0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more'), + ('peronalni', '0005_personalni_post_migrate'), + ] + + operations = [ + ] diff --git a/personalni/migrations/0005_personalni_post_migrate.py b/personalni/migrations/0005_personalni_post_migrate.py new file mode 100644 index 00000000..72d1571a --- /dev/null +++ b/personalni/migrations/0005_personalni_post_migrate.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.11 on 2024-03-26 21:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0004_alter_organizator_options_alter_osoba_options_and_more'), + ] + + operations = [ + ] diff --git a/prednasky/migrations/0015_personalni_post_migrate.py b/prednasky/migrations/0015_personalni_post_migrate.py new file mode 100644 index 00000000..7bb596d6 --- /dev/null +++ b/prednasky/migrations/0015_personalni_post_migrate.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.11 on 2024-03-26 21:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('prednasky', '0014_alter_prednaska_org'), + ('peronalni', '0005_personalni_post_migrate'), + ] + + operations = [ + ] diff --git a/seminar/migrations/0121_personalni_post_migrate.py b/seminar/migrations/0121_personalni_post_migrate.py new file mode 100644 index 00000000..f84328a5 --- /dev/null +++ b/seminar/migrations/0121_personalni_post_migrate.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.11 on 2024-03-26 21:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0120_remove_osoba_user_remove_prijemce_osoba_and_more'), + ('peronalni', '0005_personalni_post_migrate'), + ] + + operations = [ + ] diff --git a/sifrovacka/migrations/0006_personalni_post_migrate.py b/sifrovacka/migrations/0006_personalni_post_migrate.py new file mode 100644 index 00000000..25775ae4 --- /dev/null +++ b/sifrovacka/migrations/0006_personalni_post_migrate.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.11 on 2024-03-26 21:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('sifrovacka', '0005_alter_odpoveducastnika_resitel'), + ('peronalni', '0005_personalni_post_migrate'), + ] + + operations = [ + ] From 51f730fe71d9017a45d123ecf6352e7c77c644df Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 26 Mar 2024 22:27:48 +0100 Subject: [PATCH 106/225] =?UTF-8?q?typo=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/migrations/0023_personalni_post_migrate.py | 2 +- prednasky/migrations/0015_personalni_post_migrate.py | 2 +- seminar/migrations/0121_personalni_post_migrate.py | 2 +- sifrovacka/migrations/0006_personalni_post_migrate.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/korektury/migrations/0023_personalni_post_migrate.py b/korektury/migrations/0023_personalni_post_migrate.py index a92ec89d..048ece7a 100644 --- a/korektury/migrations/0023_personalni_post_migrate.py +++ b/korektury/migrations/0023_personalni_post_migrate.py @@ -7,7 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('korektury', '0022_alter_komentar_autor_alter_korekturovanepdf_org_and_more'), - ('peronalni', '0005_personalni_post_migrate'), + ('personalni', '0005_personalni_post_migrate'), ] operations = [ diff --git a/prednasky/migrations/0015_personalni_post_migrate.py b/prednasky/migrations/0015_personalni_post_migrate.py index 7bb596d6..04553e8f 100644 --- a/prednasky/migrations/0015_personalni_post_migrate.py +++ b/prednasky/migrations/0015_personalni_post_migrate.py @@ -7,7 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('prednasky', '0014_alter_prednaska_org'), - ('peronalni', '0005_personalni_post_migrate'), + ('personalni', '0005_personalni_post_migrate'), ] operations = [ diff --git a/seminar/migrations/0121_personalni_post_migrate.py b/seminar/migrations/0121_personalni_post_migrate.py index f84328a5..51840894 100644 --- a/seminar/migrations/0121_personalni_post_migrate.py +++ b/seminar/migrations/0121_personalni_post_migrate.py @@ -7,7 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('seminar', '0120_remove_osoba_user_remove_prijemce_osoba_and_more'), - ('peronalni', '0005_personalni_post_migrate'), + ('personalni', '0005_personalni_post_migrate'), ] operations = [ diff --git a/sifrovacka/migrations/0006_personalni_post_migrate.py b/sifrovacka/migrations/0006_personalni_post_migrate.py index 25775ae4..cf2c8ad5 100644 --- a/sifrovacka/migrations/0006_personalni_post_migrate.py +++ b/sifrovacka/migrations/0006_personalni_post_migrate.py @@ -7,7 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('sifrovacka', '0005_alter_odpoveducastnika_resitel'), - ('peronalni', '0005_personalni_post_migrate'), + ('personalni', '0005_personalni_post_migrate'), ] operations = [ From a301b122fd3dc824fc1ad8dbdf59a7dd74d03410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 31 Mar 2024 19:12:24 +0200 Subject: [PATCH 107/225] =?UTF-8?q?Apr=C3=ADl=202024?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/base.html | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index a29d4697..fafce9fa 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -188,6 +188,24 @@ walkText(document.body); </script> {% endif %} + + {% if april == 2024 %} + <script> + {# By https://stackoverflow.com/a/34559316 #} + function walkText(node) { + if (node.nodeType == 3) { + node.data = node.data.replace(/M&M/g, "W8W"); + } + if (node.nodeType == 1 && node.nodeName != "SCRIPT") { + for (var i = 0; i < node.childNodes.length; i++) { + walkText(node.childNodes[i]); + } + } + } + walkText(document.body); + </script> + {% endif %} + {% block js %}{% endblock %} </body> </html> From 026efe2467646fc8aa95eba5c7f67da103ee310a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 14 Apr 2024 15:09:03 +0200 Subject: [PATCH 108/225] =?UTF-8?q?N=C3=A1pov=C4=9Bdy=20v=20=C5=A1ifrova?= =?UTF-8?q?=C4=8Dce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/admin.py | 4 +- sifrovacka/forms.py | 14 +++- .../0004_napoveda_napovezenoucastnikovi.py | 65 +++++++++++++++++++ sifrovacka/models.py | 17 +++++ sifrovacka/templates/sifrovacka/napoveda.html | 48 ++++++++++++++ .../templates/sifrovacka/napovedy_list.html | 23 +++++++ .../templates/sifrovacka/sifrovacka.html | 2 + sifrovacka/urls.py | 12 +++- sifrovacka/views.py | 27 +++++++- 9 files changed, 206 insertions(+), 6 deletions(-) create mode 100644 sifrovacka/migrations/0004_napoveda_napovezenoucastnikovi.py create mode 100644 sifrovacka/templates/sifrovacka/napoveda.html create mode 100644 sifrovacka/templates/sifrovacka/napovedy_list.html diff --git a/sifrovacka/admin.py b/sifrovacka/admin.py index 71d191d4..5099c241 100644 --- a/sifrovacka/admin.py +++ b/sifrovacka/admin.py @@ -1,8 +1,10 @@ from django.contrib import admin -from .models import OdpovedUcastnika, SpravnaOdpoved +from .models import OdpovedUcastnika, SpravnaOdpoved, NapovezenoUcastnikovi, Napoveda # Register your models here. admin.site.register(OdpovedUcastnika) admin.site.register(SpravnaOdpoved) +admin.site.register(Napoveda) +admin.site.register(NapovezenoUcastnikovi) diff --git a/sifrovacka/forms.py b/sifrovacka/forms.py index e3eba7c7..8a1e16d1 100644 --- a/sifrovacka/forms.py +++ b/sifrovacka/forms.py @@ -1,6 +1,6 @@ from django.core.exceptions import ValidationError from django.forms import ModelForm, Textarea -from .models import OdpovedUcastnika, SpravnaOdpoved +from .models import OdpovedUcastnika, SpravnaOdpoved, NapovezenoUcastnikovi, Napoveda class SifrovackaForm(ModelForm): @@ -16,3 +16,15 @@ class SifrovackaForm(ModelForm): if SpravnaOdpoved.objects.filter(sifra=sifra).count() == 0: raise ValidationError("Tohle číslo šifry v databázi nemáme. Zkontrolujte si ho prosím.") return sifra + + +class NapovedaForm(ModelForm): + class Meta: + model = NapovezenoUcastnikovi + fields = ["sifra",] + + def clean_sifra(self): + sifra = self.cleaned_data.get('sifra') + if Napoveda.objects.filter(sifra=sifra).count() == 0: + raise ValidationError("K tomuto číslu šifry nemáme nápovědu. Zkonstolujte si ho prosím.") + return sifra diff --git a/sifrovacka/migrations/0004_napoveda_napovezenoucastnikovi.py b/sifrovacka/migrations/0004_napoveda_napovezenoucastnikovi.py new file mode 100644 index 00000000..cba7ae8f --- /dev/null +++ b/sifrovacka/migrations/0004_napoveda_napovezenoucastnikovi.py @@ -0,0 +1,65 @@ +# Generated by Django 4.2.8 on 2024-04-14 12:57 + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + dependencies = [ + ( + "seminar", + "0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci", + ), + ("sifrovacka", "0003_odpoveducastnika_uspech"), + ] + + operations = [ + migrations.CreateModel( + name="Napoveda", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("text", models.TextField()), + ("sifra", models.IntegerField()), + ], + ), + migrations.CreateModel( + name="NapovezenoUcastnikovi", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("sifra", models.IntegerField(verbose_name="Číslo šifry")), + ( + "timestamp", + models.DateTimeField( + default=django.utils.timezone.now, verbose_name="Timestamp" + ), + ), + ( + "resitel", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="seminar.resitel", + ), + ), + ], + options={ + "ordering": ["-timestamp"], + }, + ), + ] diff --git a/sifrovacka/models.py b/sifrovacka/models.py index 6517c2e0..beabd0a7 100644 --- a/sifrovacka/models.py +++ b/sifrovacka/models.py @@ -25,3 +25,20 @@ class SpravnaOdpoved(models.Model): def __str__(self): return f"{self.sifra}: {self.odpoved}" + + +class NapovezenoUcastnikovi(models.Model): + class Meta: + ordering = ["-timestamp"] + + resitel = models.ForeignKey(Resitel, blank=False, null=False, on_delete=models.CASCADE) + sifra = models.IntegerField("Číslo šifry", blank=False, null=False,) + timestamp = models.DateTimeField("Timestamp", blank=False, null=False, default=timezone.now) + + +class Napoveda(models.Model): + text = models.TextField(blank=False, null=False,) + sifra = models.IntegerField(blank=False, null=False,) + + def __str__(self): + return f"{self.sifra}: {self.text}" diff --git a/sifrovacka/templates/sifrovacka/napoveda.html b/sifrovacka/templates/sifrovacka/napoveda.html new file mode 100644 index 00000000..88944216 --- /dev/null +++ b/sifrovacka/templates/sifrovacka/napoveda.html @@ -0,0 +1,48 @@ +{% extends "base.html" %} + +{% block content %} + + <br> + + <h1>{% block nadpis1a %}M&Mí šifrovačka{% endblock nadpis1a %}</h1> + + <br> + + <h2>Získat nápovědu k šifře:</h2> + + <form action="{% url 'sifrovacka_napoveda' %}" method="post"> + <table class="form"> + {{form.non_field_errors}} + {% for field in form %} + <tr> + <td> + <label class="field-label{% if field.field.required %} field-required{% endif %}" for="{{ field.id_for_label }}"> + {{ field.label }} + </label> + + </td> + + <td {% if field.help_text %} class="field-with-comment"{% endif %}> + {{ field }} + <span class="field-comment">{{ field.help_text|safe }}</span> + </td> + + </tr> + + + {% if field.errors %} + <tr> + <td colspan="2"><span class="field-error">{{ field.errors }}</span></td> + </tr> + {% endif %} + {% endfor %} + </table> + + {% csrf_token %} + + <input type="submit" value="Chci nápovědu"> + </form> + + <a href="{% url 'sifrovacka' %}">Nechceme nápovědu, známe řešení!</a> + +{% endblock content %} diff --git a/sifrovacka/templates/sifrovacka/napovedy_list.html b/sifrovacka/templates/sifrovacka/napovedy_list.html new file mode 100644 index 00000000..dc729947 --- /dev/null +++ b/sifrovacka/templates/sifrovacka/napovedy_list.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} + +{% block content %} + + <h1>{% block nadpis1a %}Šifrovačka vzaté nápovědy{% endblock nadpis1a %}</h1> + + <table class="dosla_reseni"> + <tr> + <th>Timestamp</th> + <th>Řešitel</th> + <th>Šifra</th> + </tr> + + {% for u in object_list %} + <tr> + <td>{{ u.timestamp }}</td> + <td>{{ u.resitel }}</td> + <td>{{ u.sifra }}</td> + </tr> + {% endfor %} + </table> + +{% endblock content %} diff --git a/sifrovacka/templates/sifrovacka/sifrovacka.html b/sifrovacka/templates/sifrovacka/sifrovacka.html index 4e0cc15a..74943406 100644 --- a/sifrovacka/templates/sifrovacka/sifrovacka.html +++ b/sifrovacka/templates/sifrovacka/sifrovacka.html @@ -43,4 +43,6 @@ <input type="submit" value="Tak pravím!"> </form> + <a href="{% url 'sifrovacka_napoveda' %}">Získat nápovědu</a> + {% endblock content %} diff --git a/sifrovacka/urls.py b/sifrovacka/urls.py index a7af5e54..916d73ec 100644 --- a/sifrovacka/urls.py +++ b/sifrovacka/urls.py @@ -1,7 +1,7 @@ from django.urls import path from seminar.utils import org_required, resitel_or_org_required -from .views import SifrovackaView, SifrovackaListView +from .views import SifrovackaView, SifrovackaListView, NapovedaView, NapovedaListView urlpatterns = [ path( @@ -14,4 +14,14 @@ urlpatterns = [ org_required(SifrovackaListView.as_view()), name='sifrovacka_odpovedi' ), + path( + 'napoveda/', + resitel_or_org_required(NapovedaView.as_view()), + name='sifrovacka_napoveda' + ), + path( + 'napovedy/', + org_required(NapovedaListView.as_view()), + name='sifrovacka_napovedy' + ), ] diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 9c4af3ed..5537344b 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -2,8 +2,8 @@ from django.urls import reverse from django.views.generic import FormView, ListView from seminar.views import formularOKView -from .forms import SifrovackaForm -from .models import OdpovedUcastnika, SpravnaOdpoved +from .forms import SifrovackaForm, NapovedaForm +from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi from seminar.models.personalni import Resitel @@ -24,10 +24,31 @@ class SifrovackaView(FormView): instance.uspech = True instance.save() - + return formularOKView(self.request, f'<h1>{sifra.skryty_text}</h1> <p><a href="{reverse("sifrovacka")}">Odevzdat další.</a></p><br><br><br>') class SifrovackaListView(ListView): template_name = 'sifrovacka/odpovedi_list.html' model = OdpovedUcastnika + + +class NapovedaView(FormView): + template_name = 'sifrovacka/napoveda.html' + form_class = NapovedaForm + + def form_valid(self, form): + instance = form.save(commit=False) + resitel = Resitel.objects.get(osoba__user=self.request.user) + instance.resitel = resitel + + if NapovezenoUcastnikovi.objects.filter(resitel=resitel, sifra=instance.sifra).first() is None: + instance.save() + + napoveda = Napoveda.objects.filter(sifra=instance.sifra).first() + return formularOKView(self.request, f'<h1>Nápověda k šifře číslo {instance.sifra} je:</h1><p>{napoveda.text}</p> <p><a href="{reverse("sifrovacka")}">Odevzdat řešení.</a></p><br><br><br>') + + +class NapovedaListView(ListView): + template_name = 'sifrovacka/napovedy_list.html' + model = NapovezenoUcastnikovi From 9a93f954906d1eeaccc2a447d0c6c73a1f7a2445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 21 Apr 2024 21:06:56 +0200 Subject: [PATCH 109/225] =?UTF-8?q?fix:=20N=C3=A1pov=C4=9Bdy=20v=20=C5=A1i?= =?UTF-8?q?frova=C4=8Dce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sifrovacka/forms.py b/sifrovacka/forms.py index 8a1e16d1..3ae75cc1 100644 --- a/sifrovacka/forms.py +++ b/sifrovacka/forms.py @@ -26,5 +26,5 @@ class NapovedaForm(ModelForm): def clean_sifra(self): sifra = self.cleaned_data.get('sifra') if Napoveda.objects.filter(sifra=sifra).count() == 0: - raise ValidationError("K tomuto číslu šifry nemáme nápovědu. Zkonstolujte si ho prosím.") + raise ValidationError("K tomuto číslu šifry nemáme nápovědu. Zkontrolujte si ho prosím.") return sifra From d09a08f53fc5c9c028ac4295f0908fe7e4a9441e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 22 Apr 2024 23:27:29 +0200 Subject: [PATCH 110/225] =?UTF-8?q?fix:=20P=C5=99eskakov=C3=A1n=C3=AD=20v?= =?UTF-8?q?=20=C5=A1ifrova=C4=8Dce=20(je=20tam=20faaaaakt=20hodn=C4=9B=20s?= =?UTF-8?q?n=C4=9Bhu)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/templates/sifrovacka/napoveda.html | 4 +- .../templates/sifrovacka/preskoceni.html | 54 +++++++++++++++++++ .../templates/sifrovacka/sifrovacka.html | 4 +- sifrovacka/urls.py | 7 ++- sifrovacka/views.py | 16 ++++++ 5 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 sifrovacka/templates/sifrovacka/preskoceni.html diff --git a/sifrovacka/templates/sifrovacka/napoveda.html b/sifrovacka/templates/sifrovacka/napoveda.html index 88944216..cce48ed8 100644 --- a/sifrovacka/templates/sifrovacka/napoveda.html +++ b/sifrovacka/templates/sifrovacka/napoveda.html @@ -43,6 +43,8 @@ <input type="submit" value="Chci nápovědu"> </form> - <a href="{% url 'sifrovacka' %}">Nechceme nápovědu, známe řešení!</a> + <p><a href="{% url 'sifrovacka' %}">Nechceme nápovědu, známe řešení!</a></p> + + <p><a href="{% url 'sifrovacka_preskoceni' %}">Přeskoč šifru</a></p> {% endblock content %} diff --git a/sifrovacka/templates/sifrovacka/preskoceni.html b/sifrovacka/templates/sifrovacka/preskoceni.html new file mode 100644 index 00000000..64e777ea --- /dev/null +++ b/sifrovacka/templates/sifrovacka/preskoceni.html @@ -0,0 +1,54 @@ +{% extends "base.html" %} + +{% block content %} + + <br> + + <h1>{% block nadpis1a %}M&Mí šifrovačka{% endblock nadpis1a %}</h1> + + <br> + + <h2>Přeskočit šifru:</h2> + + <form action="{% url 'sifrovacka_preskoceni' %}" method="post"> + <table class="form"> + {{form.non_field_errors}} + {% for field in form %} + {% if field.id_for_label != "id_odpoved" %} + <tr> + <td> + <label class="field-label{% if field.field.required %} field-required{% endif %}" for="{{ field.id_for_label }}"> + {{ field.label }} + </label> + + </td> + + <td {% if field.help_text %} class="field-with-comment"{% endif %}> + {{ field }} + <span class="field-comment">{{ field.help_text|safe }}</span> + </td> + + </tr> + + + {% if field.errors %} + <tr> + <td colspan="2"><span class="field-error">{{ field.errors }}</span></td> + </tr> + {% endif %} + {% else %} + {{ field.as_hidden }} + {% endif %} + {% endfor %} + </table> + + {% csrf_token %} + + <input type="submit" value="Chceme další stanoviště bez vyřešení šifry"> + </form> + + <p><a href="{% url 'sifrovacka' %}">Nechceme přeskočit, známe řešení!</a></p> + + <p><a href="{% url 'sifrovacka_napoveda' %}">Nechceme přeskakovat, ale nápověda by se šikla.</a></p> + +{% endblock content %} diff --git a/sifrovacka/templates/sifrovacka/sifrovacka.html b/sifrovacka/templates/sifrovacka/sifrovacka.html index 74943406..1ce95454 100644 --- a/sifrovacka/templates/sifrovacka/sifrovacka.html +++ b/sifrovacka/templates/sifrovacka/sifrovacka.html @@ -43,6 +43,8 @@ <input type="submit" value="Tak pravím!"> </form> - <a href="{% url 'sifrovacka_napoveda' %}">Získat nápovědu</a> + <p><a href="{% url 'sifrovacka_napoveda' %}">Získat nápovědu</a></p> + + <p><a href="{% url 'sifrovacka_preskoceni' %}">Přeskoč šifru</a></p> {% endblock content %} diff --git a/sifrovacka/urls.py b/sifrovacka/urls.py index 916d73ec..85f9c4cc 100644 --- a/sifrovacka/urls.py +++ b/sifrovacka/urls.py @@ -1,7 +1,7 @@ from django.urls import path from seminar.utils import org_required, resitel_or_org_required -from .views import SifrovackaView, SifrovackaListView, NapovedaView, NapovedaListView +from .views import SifrovackaView, SifrovackaListView, NapovedaView, NapovedaListView, PreskoceniView urlpatterns = [ path( @@ -24,4 +24,9 @@ urlpatterns = [ org_required(NapovedaListView.as_view()), name='sifrovacka_napovedy' ), + path( + 'preskoceni/', + resitel_or_org_required(PreskoceniView.as_view()), + name='sifrovacka_preskoceni' + ), ] diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 5537344b..59f3deec 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -52,3 +52,19 @@ class NapovedaView(FormView): class NapovedaListView(ListView): template_name = 'sifrovacka/napovedy_list.html' model = NapovezenoUcastnikovi + + +class PreskoceniView(FormView): + template_name = 'sifrovacka/preskoceni.html' + form_class = SifrovackaForm + initial = {"odpoved": "=======PŘESKOČENO======="} + + def form_valid(self, form): + instance = form.save(commit=False) + instance.odpoved = "=======PŘESKOČENO=======" + resitel = Resitel.objects.get(osoba__user=self.request.user) + instance.resitel = resitel + instance.save() + sifra = SpravnaOdpoved.objects.filter(sifra=instance.sifra).first() # FIXME co když je více "správných" odpovědí? + + return formularOKView(self.request, f'<h1>{sifra.skryty_text}</h1> <p><a href="{reverse("sifrovacka")}">Zpět na odevzdávátko.</a></p><br><br><br>') From 4eb6746c75f73fbe90cfc901e321d43e0f0ba674 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 30 Apr 2024 21:05:10 +0200 Subject: [PATCH 111/225] =?UTF-8?q?Chyb=C4=9Bj=C3=ADc=C3=AD=20ForeignKeys/?= =?UTF-8?q?1-2-1Keys?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/migrations/0003_initial.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/personalni/migrations/0003_initial.py b/personalni/migrations/0003_initial.py index e026182c..4103295e 100644 --- a/personalni/migrations/0003_initial.py +++ b/personalni/migrations/0003_initial.py @@ -5,6 +5,9 @@ import django.utils.timezone import django_countries.fields import imagekit.models.fields +from django.conf import settings +import django.db.models.deletion + def nastav_nove_contenttypes(apps, schema_editor): ContentType = apps.get_model('contenttypes', 'ContentType') for m in ('resitel', 'organizator', 'osoba', 'skola', 'prijemce'): @@ -38,6 +41,7 @@ class Migration(migrations.Migration): ('studuje', models.CharField(blank=True, help_text="Např. 'Studuje Obecnou fyziku (Bc.), 3. ročník', 'Vystudovala Diskrétní modely a algoritmy (Mgr.)' nebo 'Přednáší na MFF'", max_length=256, null=True, verbose_name='Studium aj.')), ('strucny_popis_organizatora', models.TextField(blank=True, null=True, verbose_name='Stručný popis organizátora')), ('skola', models.CharField(blank=True, help_text='Škola, např. MFF, VŠCHT, VUT, ... prostě aby se nemuselo psát do studuješkolu, ale jen obor, možnost zobrazit zvlášť', max_length=256, null=True, verbose_name='Škola, kterou studuje')), + ('osoba', models.OneToOneField(help_text='osobní údaje organizátora', on_delete=django.db.models.deletion.PROTECT, related_name='org', to='personalni.osoba', verbose_name='osoba')), ], options={ 'verbose_name': 'Organizátor', @@ -68,6 +72,7 @@ class Migration(migrations.Migration): ('jak_se_dozvedeli', models.TextField(blank=True, verbose_name='Jak se dozvěděli')), ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k osobě (plain text)', verbose_name='neveřejná poznámka')), ('foto', imagekit.models.fields.ProcessedImageField(blank=True, help_text='Vlož fotografii osoby o libovolné velikosti', null=True, upload_to='image_osoby/velke/%Y/', verbose_name='Fotografie osoby')), + ('user', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL, verbose_name='uživatel')), ], options={ 'verbose_name': 'Osoba', @@ -83,6 +88,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(primary_key=True, serialize=False)), ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k příemci čísel (plain text)', verbose_name='neveřejná poznámka')), ('zasilat_cislo_emailem', models.BooleanField(default=False, help_text='True pokud chce příjemce dostávat číslo emailem', verbose_name='zasílat číslo emailem')), + ('osoba', models.OneToOneField(help_text='Které osobě či na jakou adresu se mají zasílat čísla', on_delete=django.db.models.deletion.CASCADE, to='personalni.osoba', verbose_name='komu')), ], options={ 'verbose_name': 'příjemce', @@ -101,6 +107,8 @@ class Migration(migrations.Migration): ('zasilat_cislo_emailem', models.BooleanField(default=False, help_text='True pokud chce řešitel dostávat číslo emailem', verbose_name='zasílat číslo emailem')), ('zasilat_cislo_papirove', models.BooleanField(default=True, help_text='True pokud chce řešitel dostávat číslo papírově', verbose_name='zasílat číslo papírově')), ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k řešiteli (plain text)', verbose_name='neveřejná poznámka')), + ('osoba', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to='personalni.osoba', verbose_name='osoba')), + ('skola', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.skola', verbose_name='škola')), ], options={ 'verbose_name': 'Řešitel', @@ -125,6 +133,7 @@ class Migration(migrations.Migration): ('je_zs', models.BooleanField(default=True, verbose_name='základní stupeň')), ('je_ss', models.BooleanField(default=True, verbose_name='střední stupeň')), ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka ke škole (plain text)', verbose_name='neveřejná poznámka')), + ('kontaktni_osoba', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='personalni.osoba', verbose_name='Kontaktní osoba')), ], options={ 'verbose_name': 'Škola', From 8ab25545a493258cf0c198353b2c07306bd681d1 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 30 Apr 2024 21:07:11 +0200 Subject: [PATCH 112/225] =?UTF-8?q?Pozn=C3=A1mky=20k=20FK/1to1F=20v=20crea?= =?UTF-8?q?et?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/create.notes | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/split-apps-meta/create.notes b/split-apps-meta/create.notes index 43872d68..8d3174e3 100644 --- a/split-apps-meta/create.notes +++ b/split-apps-meta/create.notes @@ -1,5 +1,6 @@ Prostě zkopírovat vedle, s původními (=správnými) related names. makemigrations -! Doplnit hack kolem content-types +! Doplnit hack kolem content-types (jako první operace při migraci) +! Doplnit ForeignKeys (TODO: jak? Já jsem je ukradl až zpětně…) doplnit závislost na unmanage migrate From 03589e484c3b84b0b289f80fbba38c187697ee26 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 30 Apr 2024 21:34:54 +0200 Subject: [PATCH 113/225] =?UTF-8?q?Fix=20import=C5=AF=20v=20personalni.mod?= =?UTF-8?q?els.Resitel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lokální, přehlédl jsem je… --- personalni/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/personalni/models.py b/personalni/models.py index 7ede2d08..b78ab4c1 100644 --- a/personalni/models.py +++ b/personalni/models.py @@ -281,7 +281,7 @@ class Resitel(SeminarModelBase): def vsechny_body(self): "Spočítá body odjakživa." vsechna_reseni = self.reseni_set.all() - from .odevzdavatko import Hodnoceni + from seminar.odevzdavatko import Hodnoceni vsechna_hodnoceni = Hodnoceni.objects.filter( reseni__in=vsechna_reseni) return sum(h.body for h in list(vsechna_hodnoceni) if h.body is not None) @@ -328,7 +328,7 @@ class Resitel(SeminarModelBase): # - body z 25. ročníku a dříve byly shledány dvakrát hodnotnějšími # - proto se započítávají dvojnásobně a byly posunuté hranice titulů # - staré tituly se ale nemají odebrat, pokud řešitel v t.č. minulém (26.) ročníku měl titul, má ho mít pořád. - from .odevzdavatko import Hodnoceni + from seminar.odevzdavatko import Hodnoceni hodnoceni_do_25_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=25,reseni__in=self.reseni_set.all()) novejsi_hodnoceni = Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()).difference(hodnoceni_do_25_rocniku) @@ -366,7 +366,7 @@ class Resitel(SeminarModelBase): else: return Titul.akad - from .odevzdavatko import Hodnoceni + from seminar.odevzdavatko import Hodnoceni hodnoceni_do_26_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=26,reseni__in=self.reseni_set.all()) novejsi_body = body_z_hodnoceni( Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()) From 77d392f14f3e4722ae0b0473d3650ac13c9be1b4 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky <ledoian@matfyz.cz> Date: Tue, 30 Apr 2024 21:36:59 +0200 Subject: [PATCH 114/225] =?UTF-8?q?fixup!=20Fix=20import=C5=AF=20v=20perso?= =?UTF-8?q?nalni.models.Resitel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/personalni/models.py b/personalni/models.py index b78ab4c1..dfcc7372 100644 --- a/personalni/models.py +++ b/personalni/models.py @@ -281,7 +281,7 @@ class Resitel(SeminarModelBase): def vsechny_body(self): "Spočítá body odjakživa." vsechna_reseni = self.reseni_set.all() - from seminar.odevzdavatko import Hodnoceni + from seminar.models.odevzdavatko import Hodnoceni vsechna_hodnoceni = Hodnoceni.objects.filter( reseni__in=vsechna_reseni) return sum(h.body for h in list(vsechna_hodnoceni) if h.body is not None) @@ -328,7 +328,7 @@ class Resitel(SeminarModelBase): # - body z 25. ročníku a dříve byly shledány dvakrát hodnotnějšími # - proto se započítávají dvojnásobně a byly posunuté hranice titulů # - staré tituly se ale nemají odebrat, pokud řešitel v t.č. minulém (26.) ročníku měl titul, má ho mít pořád. - from seminar.odevzdavatko import Hodnoceni + from seminar.models.odevzdavatko import Hodnoceni hodnoceni_do_25_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=25,reseni__in=self.reseni_set.all()) novejsi_hodnoceni = Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()).difference(hodnoceni_do_25_rocniku) @@ -366,7 +366,7 @@ class Resitel(SeminarModelBase): else: return Titul.akad - from seminar.odevzdavatko import Hodnoceni + from seminar.models.odevzdavatko import Hodnoceni hodnoceni_do_26_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=26,reseni__in=self.reseni_set.all()) novejsi_body = body_z_hodnoceni( Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()) From 6ab00392cca19542f4f332bb7a70553ad887b276 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Tue, 30 Apr 2024 22:20:36 +0200 Subject: [PATCH 115/225] =?UTF-8?q?Pou=C5=BE=C3=ADt=20p=C5=99=C3=ADmo=20no?= =?UTF-8?q?v=C3=BD=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … když už můžeme --- sifrovacka/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 0428e043..2ad352da 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -4,7 +4,7 @@ from django.views.generic import FormView, ListView from seminar.views import formularOKView from .forms import SifrovackaForm, NapovedaForm from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi -from seminar.models import Resitel +from personalni.models import Resitel # Create your views here. From 676b94ca1bf354bcbfb75a17f8bb2c7ea204641a Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Tue, 30 Apr 2024 22:27:06 +0200 Subject: [PATCH 116/225] =?UTF-8?q?Oprava=20po=C5=99ad=C3=AD=20migrac?= =?UTF-8?q?=C3=AD=20v=20=C5=A0ifrova=C4=8Dce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/migrations/0004_auto_20240312_2124.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sifrovacka/migrations/0004_auto_20240312_2124.py b/sifrovacka/migrations/0004_auto_20240312_2124.py index 8f58cf58..252268a6 100644 --- a/sifrovacka/migrations/0004_auto_20240312_2124.py +++ b/sifrovacka/migrations/0004_auto_20240312_2124.py @@ -6,7 +6,7 @@ from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('sifrovacka', '0003_odpoveducastnika_uspech'), + ('sifrovacka', '0004_napoveda_napovezenoucastnikovi'), ] operations = [ From b8b0c5440f270a885e3cb0b4e5a2e5f967fcd084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Apr 2024 22:40:50 +0200 Subject: [PATCH 117/225] =?UTF-8?q?N=C4=9Bjak=C3=BD=20z=C3=A1klad=20nov?= =?UTF-8?q?=C3=A9=20verze=20CSSek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 279 +++++++++--------- mamweb/static/css/modules.css | 132 +++++---- .../templates/odevzdavatko/detail.html | 4 +- .../templates/personalni/udaje/gdpr.html | 24 +- seminar/templates/seminar/novinky.html | 2 +- 5 files changed, 218 insertions(+), 223 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 08fa63a7..efd74c07 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -14,11 +14,10 @@ div.kontejner { min-height: 100vh; position: relative; padding: 0; -} - -.org-logged-in div.kontejner { - margin-top: var(--login-bar-height); + .org-logged-in & { + margin-top: var(--login-bar-height); + } } div.kontent-wrapper { @@ -34,10 +33,9 @@ div.kontent { .full_width { width: 100vw; margin-left: calc(-50vw + 485px); -} -/* Na úzkém displeji nechceme nic dělat. */ -@media(max-width: 860px) { - .full_width{ + + /* Na úzkém displeji nechceme nic dělat. */ + @media(max-width: 860px) { margin-left: 0; width: unset; } @@ -69,15 +67,15 @@ div.kontent { background: url("../images/header/vikendovka.jpg") no-repeat center top; /* poměr 350:970, TODO: aby to nemuselo být přesně na pixely */ background-size: 100%; top: 58px; -} -#header img.logo { - width: 100%; - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); -} + img.logo { + width: 100%; + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); + } -#header img.logo-mobile { - display: none; + img.logo-mobile { + display: none; + } } .no-mobile { @@ -96,29 +94,27 @@ div.kontent { background-size: 100%; filter: drop-shadow(5px 0px 5px rgba(0, 0, 0, 0.4)); padding-top: 3.5%; -} -#footer p.license { - text-align: center; - font-weight: 400; - bottom: 0; -} + p.license { + text-align: center; + font-weight: 400; + bottom: 0; -#footer p.license a { - color: #333; + a { + color: #333; + } + } + + @media (max-width: 650px) { + display: none; + } } p.license-mobile { display: none; margin-bottom: 0; -} -@media (max-width: 650px) { - #footer { - display: none; - } - - p.license-mobile { + @media (max-width: 650px) { position: relative; display: block; font-size: 90%; @@ -143,10 +139,10 @@ div.login-bar { padding-left: 5px; padding-right: 5px; -} -div.login-bar div { - display: inline; + div { + display: inline; + } } a.login-ref-admin { @@ -158,11 +154,11 @@ a.login-ref-admin { display: inline; color: var(--barva-pozadi); float: right; -} -.napis-webarum a { - color: var(--svetla-oranzova); - text-decoration: underline; + a { + color: var(--svetla-oranzova); + text-decoration: underline; + } } /*******************/ @@ -250,30 +246,34 @@ ul.menu { margin-top: -5px; /* posune celé menu nahoru (pak potřeba zvětšit mezeru mezi menu a submenu) */ font-variant: small-caps; -} -ul.menu a { - text-decoration: none; - font-weight: bold; - font-size: 105%; -} + a { + text-decoration: none; + font-weight: bold; + font-size: 105%; + } -ul.menu li { - margin: 0; - display: inline-block; - width: 16.666667%; - text-align: center; + li { + margin: 0; + display: inline-block; + width: 16.666667%; + text-align: center; - font-size: 140%; - font-weight: 400; -} + font-size: 140%; + font-weight: 400; -ul.menu li>a:hover { - color: black; -} + >a:hover { + color: black; + } -ul.menu li>a:active { /* TODO: nefunfuje */ - color: black; + >a:active { /* TODO: nefunfuje */ + color: black; + } + + &.active>a { + color: var(--svetla-oranzova); + } + } } ul.submenu { @@ -284,31 +284,25 @@ ul.submenu { padding-top: 10px; padding-bottom: 5px; filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); -} -ul.submenu { - background-color: var(--hlavni-oranzova); z-index: 50; font-weight: 400; -} -ul.submenu li { - width: auto; - padding: 0 20px 0 20px; - display: inline-block; -} -ul.submenu li>a { - color: var(--svetla-oranzova); - text-decoration: none; - text-shadow: none; -} + li { + width: auto; + padding: 0 20px 0 20px; + display: inline-block; -ul.submenu li>a:hover { - color: black; -} + >a { + color: var(--svetla-oranzova); + text-decoration: none; + text-shadow: none; -ul.menu li.active>a { - color: var(--svetla-oranzova); + :hover { + color: black; + } + } + } } ul.submenu li.active>a, .parentactive ul li:first-child>a { @@ -316,22 +310,21 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { } @media (max-width: 970px) { - ul.menu { font-size: 90%; margin-top: -7px; - } - ul.menu li { - margin-top: 10px; /* posunutí textu hlavního menu níže */ - } - - ul.submenu li { - margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + li { + margin-top: 10px; /* posunutí textu hlavního menu níže */ + } } ul.submenu { margin-top: 8px; /* mezera mezi hlavním menu a submenu */ + + li { + margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + } } } @@ -339,18 +332,18 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { ul.menu { font-size: 80%; margin-top: -2px; - } - ul.menu li { - margin-top: 10px; /* posunutí textu hlavního menu níže */ - } - - ul.submenu li { - margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + li { + margin-top: 10px; /* posunutí textu hlavního menu níže */ + } } ul.submenu { margin-top: 8px; /* mezera mezi hlavním menu a submenu */ + + li { + margin-top: 0; /* aby se spolu s textem hlavního menu neposunoval níže i text submenu */ + } } } @@ -370,31 +363,33 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { padding-top: 3px; padding-bottom: 3px; padding-left: 12px; - } - ul.menu_mobile a:active, - ul.menu_mobile a:hover, - ul.menu_mobile a:focus { - text-decoration: none; - color: black; - } + a { + &:active, &:hover, &:focus { + text-decoration: none; + color: black; + } + } - ul.menu_mobile ul { - list-style-type: none; - font-size: 90%; - color: black; /*černé šipky submenu*/ - } + ul { + list-style-type: none; + font-size: 90%; + color: black; /*černé šipky submenu*/ - ul.menu_mobile ul li > a { - color: black; - } + li { + > a { + color: black; + } - ul.menu_mobile ul li::before { - content: ' \276D '; /*https://www.w3schools.com/cssref/css_entities.asp*/ - } + &::before { + content: ' \276D '; /*https://www.w3schools.com/cssref/css_entities.asp*/ + } + } + } - ul.menu_mobile br { - display: none; + br { + display: none; + } } nav.nav-button { @@ -442,27 +437,23 @@ ul.submenu li.active>a, .parentactive ul li:first-child>a { /**** ROZLIŠENÍ MEZI LOKÁLNÍM, TESTOVACÍM A PRODUKČNÍM WEBEM ****/ -body.localweb:before, body.localweb:after, -body.testweb:before, body.testweb:after, -body.suprodweb:before, body.suprodweb:after { - content: ""; - position: fixed; - width: 20px; - height: 100%; - top: 0; - z-index: -1000; +body.localweb, body.testweb, body.suprodweb { + &:before, &:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + top: 0; + z-index: -1000; + } + + &:before { left: 0; } + &:after { right: 0; } } -body.localweb:before, body.testweb:before, body.suprodweb:before { - left: 0; -} -body.localweb:after, body.testweb:after, body.suprodweb:after { - right: 0; -} - -body.localweb:before, body.localweb:after { background: greenyellow; } -body.testweb:before, body.testweb:after { background: darkorange; } -body.suprodweb:before, body.suprodweb:after { background: red; } +body.localweb { &:before, &:after { background: greenyellow; } } +body.testweb { &:before, &:after { background: darkorange; } } +body.suprodweb { &:before, &:after { background: red; } } /****************************************************************/ @@ -473,19 +464,15 @@ body.suprodweb:before, body.suprodweb:after { background: red; } .titulnistrana { display: flex; text-align: justify; -} -.titulnistrana h1 { - text-align: center; + h1 { text-align: center; } } .zjistit_vic{ text-align: center; margin-bottom: 30px; -} -.zjistit_vic hr { - display: none; + hr { display: none; } } .graf-svg { @@ -513,18 +500,20 @@ body.suprodweb:before, body.suprodweb:after { background: red; } padding: 10px; } -.novinka_obrazek { - margin: 10px 0 10px 0; - width: 100%; -} +.novinka { + .novinka_obrazek { + margin: 10px 0 10px 0; + width: 100%; + } -.novinka_datum { - font-weight: bold; -} + .novinka_datum { + font-weight: bold; + } -.novinka_autor { - text-align: right; - font-style: italic; + .novinka_autor { + text-align: right; + font-style: italic; + } } div.org-text { diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 706eb040..c6ac5ea4 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -15,15 +15,15 @@ padding: 10px; margin: 10px -10px; border: var(--orgovska-fialova) 2px dashed; -} -.mam-org-only .mam-org-only { - border: 0; -} + & .mam-org-only { + border: 0; + } -li.mam-org-only { - padding: 3px 0; - margin: -2px 0; + &li { + padding: 3px 0; + margin: -2px 0; + } } /**********************************/ @@ -208,24 +208,24 @@ div.org_email { .tabulka_oramovane_sloupce { border: solid 2px; -} -.tabulka_oramovane_sloupce td:first-child, .tabulka_oramovane_sloupce th:first-child { - border-left: none; - border-right: solid 1px; -} + td, th { + &:first-child, &:first-child { + border-left: none; + border-right: solid 1px; + } -.tabulka_oramovane_sloupce td:nth-child(2), .tabulka_oramovane_sloupce th:nth-child(2) { - border-left: none; -} + &:nth-child(2), &:nth-child(2) { + border-left: none; + } -.tabulka_oramovane_sloupce td, .tabulka_oramovane_sloupce th { - padding: 0.1em 0.3em; - border-left: solid 1px; -} + padding: 0.1em 0.3em; + border-left: solid 1px; + } -.tabulka_oramovane_sloupce thead th, .tabulka_oramovane_sloupce thead td { - border-bottom: solid 1px; + thead { th, td { + border-bottom: solid 1px; + } } } /***********************************/ @@ -233,25 +233,26 @@ div.org_email { /** Tabulka se střídajícími se barvami řádků **/ /* Skoro jakákoliv tabulka kromě výsledkovek */ -.barevna_tabulka td th { - padding: 1px 10px 1px 10px; -} +.barevna_tabulka { + td th { + padding: 1px 10px 1px 10px; + } -.barevna_tabulka tbody tr:nth-child(even), .barevna_tabulka thead tr { - background: var(--svetlounka-oranzova); -} + tbody tr:nth-child(even), thead tr { + background: var(--svetlounka-oranzova); + } -.barevna_tabulka tbody tr:nth-child(odd) { - background: var(--barva-pozadi); + tbody tr:nth-child(odd) { + background: var(--barva-pozadi); + } } /**********************************************/ /** Tabulka, kde první řádek a sloupec je pořád vidět **/ /* Např. tabulka odevzdaných řešení, nebo výsledkovky */ - -/* Omezí výšku a šířku, aby bylo příjemné na scrollování a zapne scrollování */ .tabulka_s_uchycenym_radkem_a_sloupcem { + /* Omezí výšku a šířku, aby bylo příjemné na scrollování a zapne scrollování */ display: block; width: fit-content; /* display: block; roztahuje na celou šířku */ max-height: 80vh; @@ -261,21 +262,21 @@ div.org_email { border-collapse: separate; /* Pokud má tabulka orámování, je potřeba ho separovat, aby dodrželo position: sticky; */ border-spacing: 0; -} -/* Uchytí první řádek */ -.tabulka_s_uchycenym_radkem_a_sloupcem thead tr { - position: sticky; - top: 0; - z-index: 2; -} + /* Uchytí první řádek */ + thead tr { + position: sticky; + top: 0; + z-index: 2; + } -/* Uchytí první sloupec */ -.tabulka_s_uchycenym_radkem_a_sloupcem td:first-child, .tabulka_s_uchycenym_radkem_a_sloupcem th:first-child { - position: sticky; - left: 0; - background: inherit; /* (Snad) zneprůhlední první sloupec */ - z-index: 1; + /* Uchytí první sloupec */ + td, th { &:first-child { + position: sticky; + left: 0; + background: inherit; /* (Snad) zneprůhlední první sloupec */ + z-index: 1; + } } } /* (Snad) zneprůhlednění prvního řádku (a sloupce) FIXME: tohle je trochu hack a potenciálně může něco rozbít */ @@ -294,11 +295,11 @@ div.org_email { /** Tabulka mající všechna ohraničení **/ .plne_ohranicena_tabulka { border-collapse: collapse; -} -.plne_ohranicena_tabulka tr th, .plne_ohranicena_tabulka tr td { - border: 1px solid black; - padding: 1px 10px 1px 10px; + tr { th, td { + border: 1px solid black; + padding: 1px 10px 1px 10px; + } } } /***************************************/ @@ -329,8 +330,13 @@ div.org_email { /** Tabulka mých (řešitelových) řešení **/ -.moje_reseni tr th, .moje_reseni tr td { text-align: center; } -.moje_reseni tr td.problem { text-align: left; } +.moje_reseni tr { + th, td { + text-align: center; + } + + td.problem { text-align: left; } +} /* Různá šířka problému */ .odevzdanareseni_mid, .odevzdanareseni_small, .odevzdanareseni_mini { display: none; } @@ -355,20 +361,19 @@ div.org_email { /** Detail řešení **/ .bodovani>input { width: 4em; -} -.bodovani>input::placeholder { - color: lightgray; - opacity: 1; -} + &::placeholder { + color: lightgray; + opacity: 1; + } -.bodovani>input::-webkit-input-placeholder { /* Edge */ - color: lightgray; + &::-webkit-input-placeholder { /* Edge */ + color: lightgray; + } } /* td obsahující křížek v detailu řešení se nesmí smrštit na 0 */ -/* FIXME až bude firefox příčetný, nahradit td:has(.smazat_hodnoceni) */ -.has_smazat_hodnoceni { +.td:has(.smazat_hodnoceni) { min-width: 20px; padding: 3px; } @@ -453,12 +458,13 @@ label.field-required { ul.form li{ margin-bottom: 3px; } -p.gdpr { - font-size: 6pt; - margin-bottom: .66em; -} div.gdpr { font-size: 6pt; + + p { + font-size: 6pt; + margin-bottom: .66em; + } } /* registrace */ diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 6ea9acc6..616ec8e0 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -119,7 +119,7 @@ <td class="bodovani teamovaCast">{{ subform.body_neprepocitane_celkem }}</td> <td>{{ subform.deadline_body }}</td> <td>{{ subform.feedback }}</td> - <td class="has_smazat_hodnoceni"><a href="#" class="smazat_hodnoceni" id="id_{{subform.prefix}}-jsremove" title="Smazat hodnocení"><img src="{% static "odevzdavatko/cross.png" %}" alt="Smazat"></a></td> + <td><a href="#" class="smazat_hodnoceni" id="id_{{subform.prefix}}-jsremove" title="Smazat hodnocení"><img src="{% static "odevzdavatko/cross.png" %}" alt="Smazat"></a></td> </tr> </tbody> {% endfor %} @@ -138,7 +138,7 @@ <td class="bodovani teamovaCast">{{ form.empty_form.body_neprepocitane_celkem }}</td> <td>{{ form.empty_form.deadline_body }}</td> <td>{{ form.empty_form.feedback }}</td> - <td class="has_smazat_hodnoceni"><a href="#" class="smazat_hodnoceni" id="id_{{form.empty_form.prefix}}-jsremove" title="Smazat hodnocení"><img src="{% static "odevzdavatko/cross.png" %}" alt="Smazat"></a></td> + <td><a href="#" class="smazat_hodnoceni" id="id_{{form.empty_form.prefix}}-jsremove" title="Smazat hodnocení"><img src="{% static "odevzdavatko/cross.png" %}" alt="Smazat"></a></td> </tr> </table> diff --git a/personalni/templates/personalni/udaje/gdpr.html b/personalni/templates/personalni/udaje/gdpr.html index 5d9af535..71f76edd 100644 --- a/personalni/templates/personalni/udaje/gdpr.html +++ b/personalni/templates/personalni/udaje/gdpr.html @@ -4,37 +4,37 @@ K tomu, abychom mohli zpracovávat Tvá data (uložit si tvou adresu, zobrazit T Pokud se zpracováváním souhlasíš dle níže uvedených podmínek, zaškrtni políčko níže. </p> <div class="gdpr"> -<p class="gdpr"> +<p> Získáváme od Tebe údaje vyplněné v přihlášce do semináře (jméno, příjmení, poštovní a e-mailovou adresu, školu, kterou navštěvuješ a rok maturity), případně v přihlášce na soustředění (navíc datum narození, telefonní číslo). Také uchováváme všechna řešení, která nám pošleš, a jejich hodnocení. </p> -<p class="gdpr"> +<p> Slibujeme Ti, že Tvá osobní data nezneužijeme k ničemu, co by nesouviselo s M&M nebo s dalšími aktivitami Matfyzu, a nikdy je nepředáme nikomu cizímu. Údaje využíváme k zajištění chodu semináře a také je sdílíme s ostatními propagačními akcemi Matfyzu, abychom mohli vyhodnocovat úspěšnost akcí. Pokud budeš mít zájem, budeme Ti také posílat zajímavé zprávy a novinky týkajíci se Matfyzu. </p> -<p class="gdpr"> +<p> Veřejně vystavujeme pouze seznam přezdívek (pro výběr spoluřešitelů k řešení) a výsledkové listiny, které také uchováváme pro archivní účely. Pokud ale z nějakého důvodu nebudeš chtít mít své jméno či školu uvedené ve výsledkové listině, není problém to zařídit, napiš nám. Z tištěných materiálů samozřejmě údaje už odstranit nemůžeme. </p> -<p class="gdpr"> +<p> Na soustředěních a dalších akcích semináře navíc pořizujeme fotografie a videozáznamy a používáme je ke zpravodajským a propagačním účelům. Pro propagační účely si od Tebe vyžádáme samostatný souhlas na začátku akce. </p> -<p class="gdpr"> +<p> <i>Souhlas se zpracováním osobních údajů pro potřeby chodu semináře</i> </p> -<p class="gdpr"> +<p> Tímto uděluji souhlas Univerzitě Karlově, se sídlem Ovocný trh 560/5, 116 36 Praha 1, IČO 00216208 (dále jen UK), která je správcem osobních údajů všech fakult a součástí UK, ke zpracování osobních údajů pro potřeby Korespondenčního semináře M&M a Matematicko-fyzikální fakulty UK (dále jen M&M a MFF UK). </p> -<p class="gdpr"> +<p> Tento souhlas uděluji pro všechny výše uvedené osobní údaje, a to po dobu účasti v semináři a 10 let poté, a dále souhlasím s uchováváním potřebných dat pro archivní účely i po této lhůtě (vystavené výsledkové listiny aj.). </p> -<p class="gdpr"> +<p> MFF UK tyto údaje zpracovává za účelem evidence řešitelů a účastníků M&M, k zajištění celoročního fungování semináře, analýze účinnosti jednotlivých propagačních akcí MFF UK a zpravodajským účelům. Osobám, které o to projeví zájem v nastavení svého účtu, bude MFF UK také zasílat propagační materiály. </p> -<p class="gdpr"> +<p> Údaje nebudou předány třetí osobě ani využívány k jiným účelům, než ke kterým byly poskytnuty. </p> -<p class="gdpr"> +<p> Tento souhlas uděluji ze své vlastní a svobodné vůle a beru na vědomí, že jej mohu kdykoliv odvolat zasláním e-mailu na adresu mam@matfyz.cz. Stejně tak může být požadováno vymazání i z archivních údajů M&M, pokud to bude technicky možné. Beru na vědomí, že údaje z tištěných publikací není možné zpětně odstranit. </p> -<p class="gdpr"> +<p> Dále máte právo: </p> <ul> @@ -44,7 +44,7 @@ Dále máte právo: <li>požadovat, aby byly vaše osobní údaje předány jinému správci, <li>podat stížnost u dozorového úřadu. </ul> -<p class="gdpr"> +<p> V případě jakéhokoliv dotazu nebo uplatnění svých práv můžete kontaktovat pověřence pro ochranu osobních údajů na e-mailové adrese gdpr@cuni.cz. </p> </div> diff --git a/seminar/templates/seminar/novinky.html b/seminar/templates/seminar/novinky.html index c1e5b663..535349a5 100644 --- a/seminar/templates/seminar/novinky.html +++ b/seminar/templates/seminar/novinky.html @@ -1,6 +1,6 @@ {% for novinka in object_list %} {# pripravene div-y na stylovani#} -<div> +<div class="novinka"> {% if not novinka.zverejneno and user.je_org %} <div class="mam-org-only"> <ul> From 99c00954651d1dc5f49150e77d6cf6a0ce5f8d6b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Tue, 30 Apr 2024 23:00:28 +0200 Subject: [PATCH 118/225] =?UTF-8?q?Fix=20migrac=C3=AD:=20p=C5=99ibyl=20FK?= =?UTF-8?q?=20na=20masteru=20b=C4=9Bhem=20p=C5=99ekop=C3=A1v=C3=A1n=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py b/sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py index 34b50d4b..d21d65d6 100644 --- a/sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py +++ b/sifrovacka/migrations/0005_alter_odpoveducastnika_resitel.py @@ -17,4 +17,9 @@ class Migration(migrations.Migration): name='resitel', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='personalni.resitel'), ), + migrations.AlterField( + model_name='napovezenoucastnikovi', + name='resitel', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='personalni.resitel'), + ), ] From ed703b10a1cd3f7ca37a7d7f343c334dbb7be4d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Apr 2024 23:27:53 +0200 Subject: [PATCH 119/225] =?UTF-8?q?Vize,=20jak=20by=20m=C4=9Bly=20vypadat?= =?UTF-8?q?=20CSSka=20konkr=C3=A9tn=C3=ADch=20str=C3=A1nek=20(a=20mo=C5=BE?= =?UTF-8?q?n=C3=A1=20CSSka=20obecn=C4=9B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 199 ++++++++---------- .../seminar/titulnistrana/titulnistrana.html | 14 +- .../seminar/zadani/AktualniZadani.html | 10 +- 3 files changed, 94 insertions(+), 129 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index efd74c07..01b40e0f 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -460,44 +460,81 @@ body.suprodweb { &:before, &:after { background: red; } } /**** ZBYTEK ****/ /* (konkrétní stránky) */ -/* titulni stranka */ +/* Titulní stránka */ .titulnistrana { display: flex; text-align: justify; + @media(max-width: 800px){ + display: block; + } + h1 { text-align: center; } -} -.zjistit_vic{ - text-align: center; - margin-bottom: 30px; + .TS_zjistit_vic{ + text-align: center; + margin-bottom: 30px; - hr { display: none; } -} + hr { + display: none; -.graf-svg { - display: flex; -} + @media(max-width: 800px){ + display: flex; + } + } + } -#svg-graf { - width: 100%; - height: auto; - margin: 30px; -} + .TS_graf { + @media(max-width: 800px) { + padding-top: 40px; + } -.titulnistrana_obsah { - width: 66%; -} + .TS_graf-svg { + display: flex; -.vitej_titulka, .temata_titulka { - width: 49%; - padding: 10px; - display: table-cell; -} + #svg-graf { + width: 100%; + height: auto; + margin: 30px; -.titulnistrana_novinky { - width: 33%; - padding: 10px; + @media(max-width: 800px){ + max-width: 500px; + padding: 10px; + margin: auto; + } + } + } + } + + .TS_obsah { + width: 66%; + + @media(max-width: 800px){ + width: 100%; + } + } + + .TS_vitej_titulka, .TS_temata_titulka { + width: 49%; + padding: 10px; + display: table-cell; + + @media (max-width: 650px) { + width: 100%; + display: block; + } + } + + .TS_novinky { + width: 33%; + padding: 10px; + + @media(max-width: 800px){ + width: 100%; + max-width: 500px; + margin: auto; + } + } } .novinka { @@ -525,96 +562,28 @@ div.odpocet { text-align: center; } -@media(max-width: 800px){ - - /* titulni stranka */ - - .titulnistrana { - display: block; - } - - .graf { - padding-top: 40px; - } - - .titulnistrana_obsah { - width: 100%; - } - - .vitej_titulka, .temata_titulka { - width: 49%; - padding: 10px; - display: table-cell; - } - - .titulnistrana_novinky { - width: 100%; - max-width: 500px; - padding: 10px; - margin: auto; - } - - #svg-graf { - width: 100%; - max-width: 500px; - padding: 10px; - margin: auto; - } - - .zjistit_vic hr { - display: flex; - } -} - -@media (max-width: 650px) { - .titulnistrana { - display: block; - } - - .graf { - padding-top: 40px; - } - - .titulnistrana_obsah { - width: 100%; - } - - .vitej_titulka, .temata_titulka { - width: 100%; - padding: 10px; - display: block; - } - - .titulnistrana_novinky { - width: 100%; - padding: 10px; - } -} - -/* aktuální zadání */ +/* Stránky Aktuální ročník */ .stranka_aktualni_zadani { text-align: center; -} -#azad_obrazek { - margin-top: 15px; -} - -div.zadani_termin { - text-align: center; - font-size: large; - font-weight: bold; -} - -@media (max-width: 420px) { - div.zadani_termin { - font-size: small; + #AZAD_obrazek { + margin-top: 15px; } -} -div.zadani_termin .datum { - color: var(--hlavni-oranzova); - margin: 0; + div.AZAD_termin { + text-align: center; + font-size: large; + font-weight: bold; + + @media (max-width: 420px) { + font-size: small; + } + + .AZAD_datum { + color: var(--hlavni-oranzova); + margin: 0; + } + } } #obrazek_cisla_archiv { @@ -623,20 +592,16 @@ div.zadani_termin .datum { } -/* Jak řešit */ - +/* Stránka Jak řešit */ .jakresit svg { width: 33%; padding: 10px; filter: none; -} -@media(max-width: 860px) { - .jakresit svg { + @media(max-width: 860px) { margin: auto; display: grid; width: 100%; max-width: 360px; } } -/****************/ diff --git a/seminar/templates/seminar/titulnistrana/titulnistrana.html b/seminar/templates/seminar/titulnistrana/titulnistrana.html index f79bbbf1..d8b1e583 100644 --- a/seminar/templates/seminar/titulnistrana/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana/titulnistrana.html @@ -36,9 +36,9 @@ function sousdeadline() { <div class=titulnistrana> -<div class="titulnistrana_obsah"> +<div class="TS_obsah"> -<div class="vitej_titulka"> +<div class="TS_vitej_titulka"> <h1> {% block nadpis1a %} @@ -54,7 +54,7 @@ function sousdeadline() { </div> -<div class="temata_titulka"> +<div class="TS_temata_titulka"> <h1> Vyřeš to! @@ -76,13 +76,13 @@ function sousdeadline() { </div> -<div class="graf"> +<div class="TS_graf"> -<div class="graf-svg"> +<div class="TS_graf-svg"> {% include 'seminar/titulnistrana/graph.svg' %} <!-- TODO: aby to nemuselo být v templates --> </div> - <span class="zjistit_vic"> + <span class="TS_zjistit_vic"> <h2><a href="/o-nas/uvod/">Zjisti víc!</a></h2> <hr> </span> @@ -91,7 +91,7 @@ function sousdeadline() { </div> -<div class="titulnistrana_novinky"> +<div class="TS_novinky"> {# Novinky #} <h1>Co je nového?</h1> diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index 81040dec..2ebbcaa4 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -14,20 +14,20 @@ {% if user.je_org and not verejne %}<div class="mam-org-only">{% endif %} <hr> - <div class="zadani_termin"> + <div class="AZAD_termin"> Termíny pro odeslání řešení {{ac.poradi}}. série:<br> {% for deadline in ac.deadline_v_cisle.all %} {% if deadline.typ == deadline.TYP_SOUS or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} - <span class="datum">{{deadline.deadline.date}}</span> pro účast na soustředění<br> + <span class="AZAD_datum">{{deadline.deadline.date}}</span> pro účast na soustředění<br> {% endif %} {% if deadline.typ == deadline.TYP_PRVNI or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} - <span class="datum">{{deadline.deadline.date}}</span> pro otištění v dalším čísle<br> + <span class="AZAD_datum">{{deadline.deadline.date}}</span> pro otištění v dalším čísle<br> {% endif %} {% if deadline.typ == deadline.TYP_CISLA %} - <span class="datum">{{deadline.deadline.date}}</span> definitivní deadline<br> + <span class="AZAD_datum">{{deadline.deadline.date}}</span> definitivní deadline<br> {% endif %} {% endfor %} @@ -35,7 +35,7 @@ <hr> {% if ac.titulka_nahled and ac.pdf %} - <a href="{{ac.pdf.url}}"><img id="azad_obrazek" src="{{ac.titulka_nahled.url}}" alt="Titulní strana {{ac.poradi}}. čísla" title="Klikni pro stažení!"></a> + <a href="{{ac.pdf.url}}"><img id="AZAD_obrazek" src="{{ac.titulka_nahled.url}}" alt="Titulní strana {{ac.poradi}}. čísla" title="Klikni pro stažení!"></a> {% endif %} {% if ac.pdf %} From 53caf7f73aab4129e72dd1c22d97f454bc041a4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Apr 2024 23:28:37 +0200 Subject: [PATCH 120/225] =?UTF-8?q?Novinka=20je=20rozhodn=C4=9B=20modul=20?= =?UTF-8?q?(m=C5=AF=C5=BEeme=20ji=20pou=C5=BE=C3=ADt=20kdekoliv,=20nejen?= =?UTF-8?q?=20na=20jedn=C3=A9=20konkr=C3=A9tn=C3=AD=20str=C3=A1nce)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 16 ---------------- mamweb/static/css/modules.css | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 01b40e0f..376b174c 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -537,22 +537,6 @@ body.suprodweb { &:before, &:after { background: red; } } } } -.novinka { - .novinka_obrazek { - margin: 10px 0 10px 0; - width: 100%; - } - - .novinka_datum { - font-weight: bold; - } - - .novinka_autor { - text-align: right; - font-style: italic; - } -} - div.org-text { font-style: italic; } diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index c6ac5ea4..c4a388c4 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -381,6 +381,22 @@ div.org_email { /*****************/ +.novinka { + .novinka_obrazek { + margin: 10px 0 10px 0; + width: 100%; + } + + .novinka_datum { + font-weight: bold; + } + + .novinka_autor { + text-align: right; + font-style: italic; + } +} + /**** FORMULÁŘE ****/ /* přihláška a další formuláře */ From 3f1a570878a321596353c87bff27fce763e257d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Apr 2024 23:53:50 +0200 Subject: [PATCH 121/225] =?UTF-8?q?N=C4=9Bjak=C3=A9=20dal=C5=A1=C3=AD=20p?= =?UTF-8?q?=C5=99echody=20na=20CSS=20nesting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 126 +++++++++++++++++----------------- mamweb/static/css/modules.css | 112 +++++++++++++++--------------- mamweb/templates/base.html | 8 +-- 3 files changed, 120 insertions(+), 126 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 376b174c..c10eef88 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -18,15 +18,14 @@ div.kontejner { .org-logged-in & { margin-top: var(--login-bar-height); } -} -div.kontent-wrapper { - padding-bottom: var(--footer-height); -} + div.kontent-wrapper { + padding-bottom: var(--footer-height); - -div.kontent { - padding: 15px 30px; + div.kontent { + padding: 15px 30px; + } + } } /* Roztáhne obsah z containeru na celou šířku obrazovky: */ @@ -76,10 +75,10 @@ div.kontent { img.logo-mobile { display: none; } -} -.no-mobile { - background-size: contain; + .no-mobile { + background-size: contain; + } } /******************/ @@ -143,21 +142,21 @@ div.login-bar { div { display: inline; } -} -a.login-ref-admin { - display: inline; - color: var(--barva-pozadi); -} + a.LOGIN-ref-admin { + display: inline; + color: var(--barva-pozadi); + } -.napis-webarum { - display: inline; - color: var(--barva-pozadi); - float: right; + .LOGIN_napis-webarum { + display: inline; + color: var(--barva-pozadi); + float: right; - a { - color: var(--svetla-oranzova); - text-decoration: underline; + a { + color: var(--svetla-oranzova); + text-decoration: underline; + } } } /*******************/ @@ -176,10 +175,10 @@ a.login-ref-admin { #header { background-size: 100%; - } - #header img.logo { - width: 100%; + img.logo { + width: 100%; + } } #footer { @@ -189,9 +188,6 @@ a.login-ref-admin { /* malý tablet, mobil */ @media (max-width: 650px) { - .no-mobile{ - display: none; - } #hide-if-small.login-bar-flatpage { display: none; @@ -205,19 +201,23 @@ a.login-ref-admin { width: 100%; top: 0; background-image: none; - } - #header img.logo { - display: none; - } + img.logo { + display: none; + } - #header img.logo-mobile { - display: block; - top: 0; - left: 0; - width: 100%; - filter: drop-shadow(0px 0 5px rgba(0, 0, 0, 0.4)); - margin-bottom: 3px; + img.logo-mobile { + display: block; + top: 0; + left: 0; + width: 100%; + filter: drop-shadow(0px 0 5px rgba(0, 0, 0, 0.4)); + margin-bottom: 3px; + } + + .no-mobile{ + display: none; + } } } @@ -238,8 +238,6 @@ div.dropdown-backdrop { /* tohle způsobuje, že funguje mobilní menu */ z-index: -1; } -/* nové menu */ - ul.menu { width: 100%; padding: 0; @@ -274,39 +272,39 @@ ul.menu { color: var(--svetla-oranzova); } } -} -ul.submenu { + ul.submenu { - background-color: var(--hlavni-oranzova); - margin-top: 10px; /* mezera mezi hlavním menu a submenu */ - margin-bottom: 10px; - padding-top: 10px; - padding-bottom: 5px; - filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); + background-color: var(--hlavni-oranzova); + margin-top: 10px; /* mezera mezi hlavním menu a submenu */ + margin-bottom: 10px; + padding-top: 10px; + padding-bottom: 5px; + filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); - z-index: 50; - font-weight: 400; + z-index: 50; + font-weight: 400; - li { - width: auto; - padding: 0 20px 0 20px; - display: inline-block; + li { + width: auto; + padding: 0 20px 0 20px; + display: inline-block; - >a { - color: var(--svetla-oranzova); - text-decoration: none; - text-shadow: none; + >a { + color: var(--svetla-oranzova); + text-decoration: none; + text-shadow: none; - :hover { - color: black; + :hover { + color: black; + } } } } -} -ul.submenu li.active>a, .parentactive ul li:first-child>a { - color: black; + ul.submenu li.active>a, .parentactive ul li:first-child>a { + color: black; + } } @media (max-width: 970px) { diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index c4a388c4..2b823349 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -51,58 +51,52 @@ /**** OTÁČECÍ KARTY ****/ /* (orgové, archiv) */ - -/** Samotné karty **/ .flip-card { perspective: 1000px; /* Remove this if you don't want the 3D effect */ margin-left: auto; margin-right: auto; + + /* This container is needed to position the front and back side */ + .flip-card-inner { + position: relative; + width: 100%; + height: 100%; + transition: transform 0.8s; + transform-style: preserve-3d; + } + + /* Do an horizontal flip when you move the mouse over the flip box container */ + &:hover .flip-card-inner { + transform: rotateY(180deg); + } + + /* Position the front and back side */ + .flip-card-front, .flip-card-back { + position: absolute; + width: 100%; + height: 100%; + -webkit-backface-visibility: hidden; /* Safari */ + backface-visibility: hidden; + } + + div.flip-card-foto, div.flip-card-foto img { + width: 100%; + height: 100%; + + /* Pokud je na přední straně něco proklikávacího (třeba celá fotka), tak na dotykových zařízeních nemůže proklikávat, aby se dalo otáčet */ + @media(hover: none) { + a { pointer-events: none; } + } + } + + /* Style the back side */ + .flip-card-back { + transform: rotateY(180deg); + padding: 10px; + padding-top: 20px; + } } -/* This container is needed to position the front and back side */ -.flip-card-inner { - position: relative; - width: 100%; - height: 100%; - transition: transform 0.8s; - transform-style: preserve-3d; -} - -/* Do an horizontal flip when you move the mouse over the flip box container */ -.flip-card:hover .flip-card-inner { - transform: rotateY(180deg); -} - -/* Position the front and back side */ -.flip-card-front, .flip-card-back { - position: absolute; - width: 100%; - height: 100%; - -webkit-backface-visibility: hidden; /* Safari */ - backface-visibility: hidden; -} - - -div.flip-card-foto, div.flip-card-foto img { - width: 100%; - height: 100%; - -} - -/* Style the back side */ -.flip-card-back { - transform: rotateY(180deg); - padding: 10px; - padding-top: 20px; -} - -/* Pokud je na přední straně něco proklikávacího (třeba celá fotka), tak na dotykových zařízeních nemůže proklikávat, aby se dalo otáčet */ -@media(hover: none) { - .flip-card-foto a { pointer-events: none; } -} -/*******************/ - - .flip-card-back { background-color: var(--svetla-oranzova); color: black; @@ -310,21 +304,23 @@ div.org_email { /******************************************/ /** Výsledkovky **/ -.vysledkovka td:first-child, .tabulka_oramovane_sloupce th:first-child { - position: unset; -} +.vysledkovka, .tabulka_oramovane_sloupce { + td, th { + &:first-child { position: unset; } -.vysledkovka td:nth-child(2), .tabulka_oramovane_sloupce th:nth-child(2) { - border-right: solid 1px; + &:nth-child(2) { + border-right: solid 1px; - position: sticky; - left: 0; - background: inherit; /* (Snad) zneprůhlední druhý sloupec */ - z-index: 1; -} + position: sticky; + left: 0; + background: inherit; /* (Snad) zneprůhlední druhý sloupec */ + z-index: 1; + } -.vysledkovka td:nth-child(3), .tabulka_oramovane_sloupce th:nth-child(3) { - border-left: none; + &:nth-child(3) { + border-left: none; + } + } } /*****************/ diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 4a21c43c..69b533aa 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -43,15 +43,15 @@ <div class="login-bar" > {% if view.object %} Objekt {{ view.object }}: {{ view.object }} - {% if view.object.admin_url %}<a class="login-ref-admin" href='{{ view.object.admin_url }}'>[admin]</a>{% endif %} + {% if view.object.admin_url %}<a class="LOGIN-ref-admin" href='{{ view.object.admin_url }}'>[admin]</a>{% endif %} {% endif %} {% if flatpage %} <div class="login-bar-flatpage" id="hide-if-small"> Stránka <tt>{{ flatpage.url }}</tt> ({{ flatpage.title }})</div> - <a class="login-ref-admin" href='{% url 'admin:flatpages_flatpage_change' flatpage.id %}'>[admin]</a> + <a class="LOGIN-ref-admin" href='{% url 'admin:flatpages_flatpage_change' flatpage.id %}'>[admin]</a> {% endif %} - <a class="login-ref-admin" href='/admin'>[admin mainpage]</a> + <a class="LOGIN-ref-admin" href='/admin'>[admin mainpage]</a> - <span class="napis-webarum">Něco ti nejde/nefunguje/mate tě? <a class="login-ref-admin" href='mailto:web@mam.mff.cuni.cz'>Napiš webařům!</a></span> + <span class="LOGIN_napis-webarum">Něco ti nejde/nefunguje/mate tě? <a class="LOGIN-ref-admin" href='mailto:web@mam.mff.cuni.cz'>Napiš webařům!</a></span> </div> {% endif %} From 72f11a25ce477477cd40ca49a573b882fa800e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Apr 2024 23:54:57 +0200 Subject: [PATCH 122/225] =?UTF-8?q?Mysl=C3=ADm,=20=C5=BEe=20funguje,=20?= =?UTF-8?q?=C5=BEe=20jsem=20byl=20jen=20hloup=C3=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index c10eef88..9a4f5c96 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -260,11 +260,7 @@ ul.menu { font-size: 140%; font-weight: 400; - >a:hover { - color: black; - } - - >a:active { /* TODO: nefunfuje */ + >a:hover, >a:active { color: black; } From 6cc1b1fbe76251f194df1e0b82b7273cd9a968ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Apr 2024 23:57:32 +0200 Subject: [PATCH 123/225] =?UTF-8?q?Tohle=20je=20sp=C3=AD=C5=A1e=20nepou?= =?UTF-8?q?=C5=BE=C3=ADvan=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb-dev.css | 38 -------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 mamweb/static/css/mamweb-dev.css diff --git a/mamweb/static/css/mamweb-dev.css b/mamweb/static/css/mamweb-dev.css deleted file mode 100644 index 576da844..00000000 --- a/mamweb/static/css/mamweb-dev.css +++ /dev/null @@ -1,38 +0,0 @@ -/* -.pink { - background-color: #ffc0cb; -} - -div.borderized { - border-style: solid; - border-radius: 5px; - padding: 5px; - padding-right: 20px; -} - -div.tnmenu { - float: right; - margin-right: 0px; -} - - -div.parent { - border-width: 2px; -} - -div.children { - border-width: 1px; -} - -div.node_type { - background-color: #d4d4d4; -} - -.hidden-tn { - display: none; -} - -/*test*/ -h1 { - color: chartreuse; -} From 4d13b0eb254a1af379ec2a6239160f238579d954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 30 Apr 2024 23:57:55 +0200 Subject: [PATCH 124/225] =?UTF-8?q?Tohle=20je=20mysl=C3=ADm=20zastaral?= =?UTF-8?q?=C3=A9=20(star=C3=A1=20verze=20bootstrapu)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 9a4f5c96..828b1d7d 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -234,10 +234,6 @@ nav.nav-button { display: none; } -div.dropdown-backdrop { /* tohle způsobuje, že funguje mobilní menu */ - z-index: -1; -} - ul.menu { width: 100%; padding: 0; From cdc147259589d445fc881a78febec15e95912088 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 1 May 2024 00:46:31 +0200 Subject: [PATCH 125/225] =?UTF-8?q?Pre,=20unmanage,=20create.=20Snad=20ve?= =?UTF-8?q?=20fin=C3=A1ln=C3=AD=20podob=C4=9B.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0011_pre_split_soustredeni.py | 13 ++ .../migrations/0006_pre_split_soustredeni.py | 13 ++ .../migrations/0016_pre_split_soustredeni.py | 13 ++ .../migrations/0122_pre_split_soustredeni.py | 16 ++ .../migrations/0123_soustredeni_unmanage.py | 33 +++ seminar/models/soustredeni.py | 25 +- .../migrations/0001_split_from_seminar.py | 119 ++++++++++ soustredeni/models.py | 221 ++++++++++++++++++ split-apps-meta/create.notes | 3 +- split-apps-meta/unmanage.notes | 3 + 10 files changed, 453 insertions(+), 6 deletions(-) create mode 100644 galerie/migrations/0011_pre_split_soustredeni.py create mode 100644 personalni/migrations/0006_pre_split_soustredeni.py create mode 100644 prednasky/migrations/0016_pre_split_soustredeni.py create mode 100644 seminar/migrations/0122_pre_split_soustredeni.py create mode 100644 seminar/migrations/0123_soustredeni_unmanage.py create mode 100644 soustredeni/migrations/0001_split_from_seminar.py create mode 100644 soustredeni/models.py diff --git a/galerie/migrations/0011_pre_split_soustredeni.py b/galerie/migrations/0011_pre_split_soustredeni.py new file mode 100644 index 00000000..a038ca44 --- /dev/null +++ b/galerie/migrations/0011_pre_split_soustredeni.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.11 on 2024-04-30 21:53 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('galerie', '0010_auto_20200819_0947'), + ] + + operations = [ + ] diff --git a/personalni/migrations/0006_pre_split_soustredeni.py b/personalni/migrations/0006_pre_split_soustredeni.py new file mode 100644 index 00000000..ce2b4de1 --- /dev/null +++ b/personalni/migrations/0006_pre_split_soustredeni.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.11 on 2024-04-30 21:53 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0005_personalni_post_migrate'), + ] + + operations = [ + ] diff --git a/prednasky/migrations/0016_pre_split_soustredeni.py b/prednasky/migrations/0016_pre_split_soustredeni.py new file mode 100644 index 00000000..77ade0d0 --- /dev/null +++ b/prednasky/migrations/0016_pre_split_soustredeni.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.11 on 2024-04-30 21:53 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('prednasky', '0015_personalni_post_migrate'), + ] + + operations = [ + ] diff --git a/seminar/migrations/0122_pre_split_soustredeni.py b/seminar/migrations/0122_pre_split_soustredeni.py new file mode 100644 index 00000000..58e9d479 --- /dev/null +++ b/seminar/migrations/0122_pre_split_soustredeni.py @@ -0,0 +1,16 @@ +# Generated by Django 4.2.11 on 2024-04-30 21:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0121_personalni_post_migrate'), + ('personalni', '0006_pre_split_soustredeni'), + ('galerie', '0011_pre_split_soustredeni'), + ('prednasky', '0016_pre_split_soustredeni'), + ] + + operations = [ + ] diff --git a/seminar/migrations/0123_soustredeni_unmanage.py b/seminar/migrations/0123_soustredeni_unmanage.py new file mode 100644 index 00000000..a7b87ff3 --- /dev/null +++ b/seminar/migrations/0123_soustredeni_unmanage.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.11 on 2024-04-30 22:17 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0122_pre_split_soustredeni'), + ] + + operations = [ + migrations.AlterModelOptions( + name='konfera', + options={'managed': False, 'verbose_name': 'Konfera', 'verbose_name_plural': 'Konfery'}, + ), + migrations.AlterModelOptions( + name='konfery_ucastnici', + options={'managed': False, 'ordering': ['konfera', 'resitel'], 'verbose_name': 'Účast na konfeře', 'verbose_name_plural': 'Účasti na konfeře'}, + ), + migrations.AlterModelOptions( + name='soustredeni', + options={'managed': False, 'ordering': ['-rocnik__rocnik', '-datum_zacatku'], 'verbose_name': 'Soustředění', 'verbose_name_plural': 'Soustředění'}, + ), + migrations.AlterModelOptions( + name='soustredeni_organizatori', + options={'managed': False, 'ordering': ['soustredeni', 'organizator'], 'verbose_name': 'Účast organizátorů na soustředění', 'verbose_name_plural': 'Účasti organizátorů na soustředění'}, + ), + migrations.AlterModelOptions( + name='soustredeni_ucastnici', + options={'managed': False, 'ordering': ['soustredeni', 'resitel'], 'verbose_name': 'Účast na soustředění', 'verbose_name_plural': 'Účasti na soustředění'}, + ), + ] diff --git a/seminar/models/soustredeni.py b/seminar/models/soustredeni.py index 275224a3..3f761444 100644 --- a/seminar/models/soustredeni.py +++ b/seminar/models/soustredeni.py @@ -20,6 +20,7 @@ logger = logging.getLogger(__name__) class Soustredeni(SeminarModelBase): class Meta: + managed = False db_table = 'seminar_soustredeni' verbose_name = 'Soustředění' verbose_name_plural = 'Soustředění' @@ -28,7 +29,7 @@ class Soustredeni(SeminarModelBase): # Interní ID id = models.AutoField(primary_key = True) - rocnik = models.ForeignKey(am.Rocnik, verbose_name='ročník', related_name='soustredeni', + rocnik = models.ForeignKey(am.Rocnik, verbose_name='ročník', related_name='soustredeni_old', on_delete=models.PROTECT) datum_zacatku = models.DateField('datum začátku', blank=True, null=True, @@ -43,9 +44,11 @@ class Soustredeni(SeminarModelBase): help_text='Místo (název obce, volitelně též objektu') ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění', + related_name='soustredeni_old', help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici') organizatori = models.ManyToManyField(Organizator, + related_name='soustredeni_old', verbose_name='Organizátoři soustředění', help_text='Seznam organizátorů soustředění', through='Soustredeni_Organizatori') @@ -84,6 +87,7 @@ class Soustredeni_Ucastnici(SeminarModelBase): # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu class Meta: + managed = False db_table = 'seminar_soustredeni_ucastnici' verbose_name = 'Účast na soustředění' verbose_name_plural = 'Účasti na soustředění' @@ -92,9 +96,12 @@ class Soustredeni_Ucastnici(SeminarModelBase): # Interní ID id = models.AutoField(primary_key = True) - resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + resitel = models.ForeignKey(Resitel, verbose_name='řešitel', + related_name='sous_ucastnici', + on_delete=models.PROTECT) soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', + related_name='sous_ucastnici', on_delete=models.PROTECT) poznamka = models.TextField('neveřejná poznámka', blank=True, @@ -110,6 +117,7 @@ class Soustredeni_Organizatori(SeminarModelBase): # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu class Meta: + managed = False db_table = 'seminar_soustredeni_organizatori' verbose_name = 'Účast organizátorů na soustředění' verbose_name_plural = 'Účasti organizátorů na soustředění' @@ -119,9 +127,11 @@ class Soustredeni_Organizatori(SeminarModelBase): id = models.AutoField(primary_key = True) organizator = models.ForeignKey(Organizator, verbose_name='organizátor', + related_name='sous_orgove', on_delete=models.PROTECT) soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', + related_name='sous_orgove', on_delete=models.PROTECT) poznamka = models.TextField('neveřejná poznámka', blank=True, @@ -152,10 +162,13 @@ def generate_filename_konfera(self, filename): @reversion.register(ignore_duplicates=True) class Konfera(am.Problem): class Meta: + managed = False db_table = 'seminar_konfera' verbose_name = 'Konfera' verbose_name_plural = 'Konfery' + problem_ptr_old = models.OneToOneField(am.Problem, parent_link=True, related_name='konfera_old', on_delete=models.PROTECT, primary_key=True) + anotace = models.TextField('anotace', blank=True, help_text='Popis, o čem bude konfera.') @@ -164,10 +177,11 @@ class Konfera(am.Problem): # FIXME: Umíme omezit jen na účastníky daného soustřeďka? ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci konfery', + related_name='konfera_old', help_text='Seznam účastníků konfery', through='Konfery_Ucastnici') soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', - related_name='konfery', on_delete = models.SET_NULL, null=True) + related_name='konfery_old', on_delete = models.SET_NULL, null=True) TYP_VELETRH = 'veletrh' TYP_PREZENTACE = 'prezentace' @@ -196,6 +210,7 @@ class Konfera(am.Problem): class Konfery_Ucastnici(models.Model): class Meta: + managed = False db_table = 'seminar_konfery_ucastnici' verbose_name = 'Účast na konfeře' verbose_name_plural = 'Účasti na konfeře' @@ -204,9 +219,9 @@ class Konfery_Ucastnici(models.Model): # Interní ID id = models.AutoField(primary_key = True) - resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT, related_name='konf_uc') - konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE) + konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE, related_name='konf_uc') poznamka = models.TextField('neveřejná poznámka', blank=True, help_text='Neveřejná poznámka k účasti (plain text)') diff --git a/soustredeni/migrations/0001_split_from_seminar.py b/soustredeni/migrations/0001_split_from_seminar.py new file mode 100644 index 00000000..745f62e7 --- /dev/null +++ b/soustredeni/migrations/0001_split_from_seminar.py @@ -0,0 +1,119 @@ +# Generated by Django 4.2.11 on 2024-04-30 22:53 + +from django.db import migrations, models +import django.db.models.deletion +import soustredeni.models + +def nastav_nove_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('konfera', 'soustredeni', 'soustredeni_ucastnici', 'soustredeni_organizatori', 'konfery_ucastnici'): + oct = ContentType.objects.filter(app_label='seminar', model=m) + oct.update(app_label='soustredeni') + +def nastav_stare_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('konfera', 'soustredeni', 'soustredeni_ucastnici', 'soustredeni_organizatori', 'konfery_ucastnici'): + nct = ContentType.objects.filter(app_label='soustredeni', model=m) + nct.update(app_label='seminar') + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('seminar', '0123_soustredeni_unmanage'), + ] + + operations = [ + migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), + + migrations.CreateModel( + name='Konfera', + fields=[ + ('problem_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='seminar.problem')), + ('anotace', models.TextField(blank=True, help_text='Popis, o čem bude konfera.', verbose_name='anotace')), + ('abstrakt', models.TextField(blank=True, help_text='Abstrakt konfery tak, jak byl uveden ve sborníku', verbose_name='abstrakt')), + ('typ_prezentace', models.CharField(choices=[('veletrh', 'Veletrh (postery)'), ('prezentace', 'Prezentace (přednáška)')], default='veletrh', max_length=16, verbose_name='typ prezentace')), + ('prezentace', models.FileField(blank=True, help_text='Prezentace nebo fotka posteru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='prezentace')), + ('materialy', models.FileField(blank=True, help_text='Další materiály ke konfeře zabalené do jednoho souboru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='materialy')), + ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), + ], + options={ + 'verbose_name': 'Konfera', + 'verbose_name_plural': 'Konfery', + 'db_table': 'seminar_konfera', + 'managed': False, + }, + bases=('seminar.problem',), + ), + migrations.CreateModel( + name='Konfery_Ucastnici', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti (plain text)', verbose_name='neveřejná poznámka')), + ('resitel', models.ForeignKey(to='personalni.resitel', verbose_name='řešitel', on_delete=models.PROTECT)), + ('konfera', models.ForeignKey(to='soustredeni.konfera', verbose_name='konfera', on_delete=models.CASCADE)), + ], + options={ + 'verbose_name': 'Účast na konfeře', + 'verbose_name_plural': 'Účasti na konfeře', + 'db_table': 'seminar_konfery_ucastnici', + 'ordering': ['konfera', 'resitel'], + 'managed': False, + }, + ), + migrations.CreateModel( + name='Soustredeni', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('datum_zacatku', models.DateField(blank=True, help_text='První den soustředění', null=True, verbose_name='datum začátku')), + ('datum_konce', models.DateField(blank=True, help_text='Poslední den soustředění', null=True, verbose_name='datum konce')), + ('verejne_db', models.BooleanField(db_column='verejne', default=False, verbose_name='soustředění zveřejněno')), + ('misto', models.CharField(blank=True, default='', help_text='Místo (název obce, volitelně též objektu', max_length=256, verbose_name='místo soustředění')), + ('text', models.TextField(blank=True, default='', verbose_name='text k soustředění (HTML)')), + ('typ', models.CharField(choices=[('jarni', 'Jarní soustředění'), ('podzimni', 'Podzimní soustředění'), ('vikend', 'Víkendový sraz'), ('vylet', 'Výlet')], default='podzimni', max_length=16, verbose_name='typ akce')), + ('exportovat', models.BooleanField(db_column='exportovat', default=False, help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)', verbose_name='export do AESOPa')), + ('rocnik', models.ForeignKey(to='seminar.rocnik', verbose_name='ročník', related_name='soustredeni', on_delete=models.PROTECT)), + ], + options={ + 'verbose_name': 'Soustředění', + 'verbose_name_plural': 'Soustředění', + 'db_table': 'seminar_soustredeni', + 'ordering': ['-rocnik__rocnik', '-datum_zacatku'], + 'managed': False, + }, + ), + migrations.CreateModel( + name='Soustredeni_Organizatori', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti organizátora (plain text)', verbose_name='neveřejná poznámka')), + ('organizator', models.ForeignKey(to='personalni.organizator', verbose_name='organizátor', on_delete=models.PROTECT)), + ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), + ], + options={ + 'verbose_name': 'Účast organizátorů na soustředění', + 'verbose_name_plural': 'Účasti organizátorů na soustředění', + 'db_table': 'seminar_soustredeni_organizatori', + 'ordering': ['soustredeni', 'organizator'], + 'managed': False, + }, + ), + migrations.CreateModel( + name='Soustredeni_Ucastnici', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('poznamka', models.TextField(blank=True, help_text='Neveřejná poznámka k účasti (plain text)', verbose_name='neveřejná poznámka')), + ('resitel', models.ForeignKey(to='personalni.resitel', verbose_name='řešitel', on_delete=models.PROTECT)), + ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), + ], + options={ + 'verbose_name': 'Účast na soustředění', + 'verbose_name_plural': 'Účasti na soustředění', + 'db_table': 'seminar_soustredeni_ucastnici', + 'ordering': ['soustredeni', 'resitel'], + 'managed': False, + }, + ), + ] diff --git a/soustredeni/models.py b/soustredeni/models.py new file mode 100644 index 00000000..4429e2bf --- /dev/null +++ b/soustredeni/models.py @@ -0,0 +1,221 @@ +# -*- coding: utf-8 -*- +import logging +import os + +from django.db import models +from django.urls import reverse +from reversion import revisions as reversion + +from django.conf import settings + +from personalni.models import Resitel, Organizator + +from seminar.models.base import SeminarModelBase +from seminar.models import tvorba as am + +logger = logging.getLogger(__name__) + + +@reversion.register(ignore_duplicates=True) +class Soustredeni(SeminarModelBase): + + class Meta: + managed = False + db_table = 'seminar_soustredeni' + verbose_name = 'Soustředění' + verbose_name_plural = 'Soustředění' + ordering = ['-rocnik__rocnik', '-datum_zacatku'] + + # Interní ID + id = models.AutoField(primary_key = True) + + rocnik = models.ForeignKey(am.Rocnik, verbose_name='ročník', related_name='soustredeni', + on_delete=models.PROTECT) + + datum_zacatku = models.DateField('datum začátku', blank=True, null=True, + help_text='První den soustředění') + + datum_konce = models.DateField('datum konce', blank=True, null=True, + help_text='Poslední den soustředění') + + verejne_db = models.BooleanField('soustředění zveřejněno', db_column='verejne', default=False) + + misto = models.CharField('místo soustředění', max_length=256, blank=True, default='', + help_text='Místo (název obce, volitelně též objektu') + + ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění', + help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici') + + organizatori = models.ManyToManyField(Organizator, + verbose_name='Organizátoři soustředění', + help_text='Seznam organizátorů soustředění', + through='Soustredeni_Organizatori') + + text = models.TextField('text k soustředění (HTML)', blank=True, default='') + + TYP_JARNI = 'jarni' + TYP_PODZIMNI = 'podzimni' + TYP_VIKEND = 'vikend' + TYP_VYLET = 'vylet' + TYP_CHOICES = [ + (TYP_JARNI, 'Jarní soustředění'), + (TYP_PODZIMNI, 'Podzimní soustředění'), + (TYP_VIKEND, 'Víkendový sraz'), + (TYP_VYLET, 'Výlet'), + ] + typ = models.CharField('typ akce', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_PODZIMNI) + + exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False, + help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)') + + def __str__(self): + return '{} ({})'.format(self.misto, self.datum_zacatku) + + def verejne(self): + return self.verejne_db + verejne.boolean = True + + def verejne_url(self): + #return reverse('seminar_soustredeni', kwargs={'pk': self.id}) + return reverse('seminar_seznam_soustredeni') + + +@reversion.register(ignore_duplicates=True) +class Soustredeni_Ucastnici(SeminarModelBase): +# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu + + class Meta: + managed = False + db_table = 'seminar_soustredeni_ucastnici' + verbose_name = 'Účast na soustředění' + verbose_name_plural = 'Účasti na soustředění' + ordering = ['soustredeni', 'resitel'] + + # Interní ID + id = models.AutoField(primary_key = True) + + resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + + soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', + on_delete=models.PROTECT) + + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k účasti (plain text)') + + def __str__(self): + return '{} na {}'.format(self.resitel, self.soustredeni) + # NOTE: Poteciální DB HOG bez select_related + + +@reversion.register(ignore_duplicates=True) +class Soustredeni_Organizatori(SeminarModelBase): +# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu + + class Meta: + managed = False + db_table = 'seminar_soustredeni_organizatori' + verbose_name = 'Účast organizátorů na soustředění' + verbose_name_plural = 'Účasti organizátorů na soustředění' + ordering = ['soustredeni', 'organizator'] + + # Interní ID + id = models.AutoField(primary_key = True) + + organizator = models.ForeignKey(Organizator, verbose_name='organizátor', + on_delete=models.PROTECT) + + soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', + on_delete=models.PROTECT) + + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k účasti organizátora (plain text)') + + def __str__(self): + return '{} na {}'.format(self.organizator, self.soustredeni) + # NOTE: Poteciální DB HOG bez select_related + + +# FIXME cycle import + + +# Django neumí jednoduše serializovat partial nebo třídu s __call__ +# (https://docs.djangoproject.com/en/1.8/topics/migrations/), +# neprojdou pak migrace. Takže rozlišení funkcí generujících názvy souboru +# podle adresáře řešíme takto. + +## +def generate_filename_konfera(self, filename): + return os.path.join( + settings.SEMINAR_KONFERY_DIR, + am.aux_generate_filename(self, filename) + ) + +## + +@reversion.register(ignore_duplicates=True) +class Konfera(am.Problem): + class Meta: + managed = False + db_table = 'seminar_konfera' + verbose_name = 'Konfera' + verbose_name_plural = 'Konfery' + + anotace = models.TextField('anotace', blank=True, + help_text='Popis, o čem bude konfera.') + + abstrakt = models.TextField('abstrakt', blank=True, + help_text='Abstrakt konfery tak, jak byl uveden ve sborníku') + + # FIXME: Umíme omezit jen na účastníky daného soustřeďka? + ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci konfery', + help_text='Seznam účastníků konfery', through='Konfery_Ucastnici') + + soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', + related_name='konfery', on_delete = models.SET_NULL, null=True) + + TYP_VELETRH = 'veletrh' + TYP_PREZENTACE = 'prezentace' + TYP_CHOICES = [ + (TYP_VELETRH, 'Veletrh (postery)'), + (TYP_PREZENTACE, 'Prezentace (přednáška)'), + ] + typ_prezentace = models.CharField('typ prezentace', max_length=16, choices=TYP_CHOICES, + blank=False, default=TYP_VELETRH) + + prezentace = models.FileField('prezentace',help_text = 'Prezentace nebo fotka posteru', + upload_to = generate_filename_konfera, blank=True) + + materialy = models.FileField('materialy', + help_text = 'Další materiály ke konfeře zabalené do jednoho souboru', + upload_to = generate_filename_konfera, blank=True) + + def __str__(self): + return "{}: ({})".format(self.nazev, self.soustredeni) + + def cislo_node(self): + return None + + +@reversion.register(ignore_duplicates=True) +class Konfery_Ucastnici(models.Model): + + class Meta: + managed = False + db_table = 'seminar_konfery_ucastnici' + verbose_name = 'Účast na konfeře' + verbose_name_plural = 'Účasti na konfeře' + ordering = ['konfera', 'resitel'] + + # Interní ID + id = models.AutoField(primary_key = True) + + resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + + konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE) + + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k účasti (plain text)') + + def __str__(self): + return '{} na {}'.format(self.resitel, self.konfera) + # NOTE: Poteciální DB HOG bez select_related diff --git a/split-apps-meta/create.notes b/split-apps-meta/create.notes index 8d3174e3..606f76d8 100644 --- a/split-apps-meta/create.notes +++ b/split-apps-meta/create.notes @@ -1,6 +1,7 @@ Prostě zkopírovat vedle, s původními (=správnými) related names. + (Případně opravit *všechny* relativní importy) makemigrations ! Doplnit hack kolem content-types (jako první operace při migraci) -! Doplnit ForeignKeys (TODO: jak? Já jsem je ukradl až zpětně…) +! Doplnit ForeignKeys (Vypadá to, že se dá vesměs zkopírovat předpis z models.py, jen místo prvního fieldu dát `to='app.model'. Dokonce asi funguje použít už novou aplikaci pro vazby v rámci aplikace.) doplnit závislost na unmanage migrate diff --git a/split-apps-meta/unmanage.notes b/split-apps-meta/unmanage.notes index 846b7314..bce419bf 100644 --- a/split-apps-meta/unmanage.notes +++ b/split-apps-meta/unmanage.notes @@ -16,6 +16,9 @@ vim seminar/models/whatever HINT: Add or change a related_name argument to the definition for 'seminar.Resitel.osoba' or 'seminar.Prijemce.osoba'. Snadné řešení: dočasné related names mít unikátní. Stejně to nikoho nezajímá. !! Zkontrolovat, že všechno má nastavenou db_table (jinak se to potom pokusí vybastlit jméno tabulky podle aplikace…) + Pro tip: related names nejsou součástí DB schématu, takže když se tohle opraví později (typicky při create spadne makemigrations), nevadí to a nemělo by být potřeba měnit migrace). + Pro multi-table inheritance je potřeba explicitně přidat 1to1Field s parent_link=True (<https://docs.djangoproject.com/en/5.0/topics/db/models/#specifying-the-parent-link-field>) + Je potřeba to udělat správně (třeba nemít FK), migrace potřeba není, protože je to stejně unmanaged… makemigrations, bez úprav migrate? From e3771f865d70835e6e84e7200399be0373908216 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 1 May 2024 15:37:54 +0200 Subject: [PATCH 126/225] =?UTF-8?q?Relink=20=E2=80=93=20post,=20asi=20done?= =?UTF-8?q?=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/migrations/0012_soustredeni_relink.py | 20 ++ .../migrations/0013_post_split_soustredeni.py | 14 ++ galerie/models.py | 2 +- .../migrations/0017_soustredeni_relink.py | 20 ++ .../migrations/0018_post_split_soustredeni.py | 14 ++ prednasky/models.py | 2 +- .../0124_remove_sous_from_seminar.py | 67 +++++ .../migrations/0125_post_split_soustredeni.py | 14 ++ seminar/models/__init__.py | 5 +- seminar/models/soustredeni.py | 231 ------------------ soustredeni/admin.py | 2 +- .../migrations/0001_split_from_seminar.py | 5 +- .../migrations/0002_manage_soustredeni.py | 34 +++ .../migrations/0003_post_split_soustredeni.py | 13 + soustredeni/models.py | 5 - split-apps-meta/create.notes | 2 + 16 files changed, 209 insertions(+), 241 deletions(-) create mode 100644 galerie/migrations/0012_soustredeni_relink.py create mode 100644 galerie/migrations/0013_post_split_soustredeni.py create mode 100644 prednasky/migrations/0017_soustredeni_relink.py create mode 100644 prednasky/migrations/0018_post_split_soustredeni.py create mode 100644 seminar/migrations/0124_remove_sous_from_seminar.py create mode 100644 seminar/migrations/0125_post_split_soustredeni.py delete mode 100644 seminar/models/soustredeni.py create mode 100644 soustredeni/migrations/0002_manage_soustredeni.py create mode 100644 soustredeni/migrations/0003_post_split_soustredeni.py diff --git a/galerie/migrations/0012_soustredeni_relink.py b/galerie/migrations/0012_soustredeni_relink.py new file mode 100644 index 00000000..0b8cbaff --- /dev/null +++ b/galerie/migrations/0012_soustredeni_relink.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:07 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('soustredeni', '0001_split_from_seminar'), + ('galerie', '0011_pre_split_soustredeni'), + ] + + operations = [ + migrations.AlterField( + model_name='galerie', + name='soustredeni', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni'), + ), + ] diff --git a/galerie/migrations/0013_post_split_soustredeni.py b/galerie/migrations/0013_post_split_soustredeni.py new file mode 100644 index 00000000..de3cfa60 --- /dev/null +++ b/galerie/migrations/0013_post_split_soustredeni.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:35 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('galerie', '0012_soustredeni_relink'), + ('soustredeni', '0003_post_split_soustredeni'), + ] + + operations = [ + ] diff --git a/galerie/models.py b/galerie/models.py index 78551969..96225101 100644 --- a/galerie/models.py +++ b/galerie/models.py @@ -7,7 +7,7 @@ from imagekit.processors import ResizeToFit, Transpose import os -from seminar.models import Soustredeni +from soustredeni.models import Soustredeni VZDY=0 ORG=1 diff --git a/prednasky/migrations/0017_soustredeni_relink.py b/prednasky/migrations/0017_soustredeni_relink.py new file mode 100644 index 00000000..6542b51d --- /dev/null +++ b/prednasky/migrations/0017_soustredeni_relink.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:07 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('soustredeni', '0001_split_from_seminar'), + ('prednasky', '0016_pre_split_soustredeni'), + ] + + operations = [ + migrations.AlterField( + model_name='seznam', + name='soustredeni', + field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.PROTECT, to='soustredeni.soustredeni'), + ), + ] diff --git a/prednasky/migrations/0018_post_split_soustredeni.py b/prednasky/migrations/0018_post_split_soustredeni.py new file mode 100644 index 00000000..bd59819d --- /dev/null +++ b/prednasky/migrations/0018_post_split_soustredeni.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:35 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('prednasky', '0017_soustredeni_relink'), + ('soustredeni', '0003_post_split_soustredeni'), + ] + + operations = [ + ] diff --git a/prednasky/models.py b/prednasky/models.py index 7045f4d5..54764381 100644 --- a/prednasky/models.py +++ b/prednasky/models.py @@ -2,7 +2,7 @@ from django.db import models -from seminar.models import Soustredeni +from soustredeni.models import Soustredeni from personalni.models import Organizator STAV_NAVRH = 1 diff --git a/seminar/migrations/0124_remove_sous_from_seminar.py b/seminar/migrations/0124_remove_sous_from_seminar.py new file mode 100644 index 00000000..9acc3bc4 --- /dev/null +++ b/seminar/migrations/0124_remove_sous_from_seminar.py @@ -0,0 +1,67 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:13 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0123_soustredeni_unmanage'), + ('soustredeni', '0001_split_from_seminar'), + ('galerie', '0012_soustredeni_relink'), + ('prednasky', '0017_soustredeni_relink'), + ] + + operations = [ + migrations.RemoveField( + model_name='konfery_ucastnici', + name='konfera', + ), + migrations.RemoveField( + model_name='konfery_ucastnici', + name='resitel', + ), + migrations.RemoveField( + model_name='soustredeni', + name='organizatori', + ), + migrations.RemoveField( + model_name='soustredeni', + name='rocnik', + ), + migrations.RemoveField( + model_name='soustredeni', + name='ucastnici', + ), + migrations.RemoveField( + model_name='soustredeni_organizatori', + name='organizator', + ), + migrations.RemoveField( + model_name='soustredeni_organizatori', + name='soustredeni', + ), + migrations.RemoveField( + model_name='soustredeni_ucastnici', + name='resitel', + ), + migrations.RemoveField( + model_name='soustredeni_ucastnici', + name='soustredeni', + ), + migrations.DeleteModel( + name='Konfera', + ), + migrations.DeleteModel( + name='Konfery_Ucastnici', + ), + migrations.DeleteModel( + name='Soustredeni', + ), + migrations.DeleteModel( + name='Soustredeni_Organizatori', + ), + migrations.DeleteModel( + name='Soustredeni_Ucastnici', + ), + ] diff --git a/seminar/migrations/0125_post_split_soustredeni.py b/seminar/migrations/0125_post_split_soustredeni.py new file mode 100644 index 00000000..3d8c8c58 --- /dev/null +++ b/seminar/migrations/0125_post_split_soustredeni.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:35 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0124_remove_sous_from_seminar'), + ('soustredeni', '0003_post_split_soustredeni'), + ] + + operations = [ + ] diff --git a/seminar/models/__init__.py b/seminar/models/__init__.py index e3026a2c..121aeb04 100644 --- a/seminar/models/__init__.py +++ b/seminar/models/__init__.py @@ -1,10 +1,13 @@ from .tvorba import * from .odevzdavatko import * from .base import * -from .soustredeni import * from .pomocne import * from .treenode import * from .novinky import * from various.models import Nastaveni from personalni.models import Organizator, Resitel, Skola, Prijemce, Osoba +from soustredeni.models import Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Konfera, Konfery_Ucastnici + +# Kvůli migr. 0041 +from soustredeni.models import generate_filename_konfera diff --git a/seminar/models/soustredeni.py b/seminar/models/soustredeni.py deleted file mode 100644 index 3f761444..00000000 --- a/seminar/models/soustredeni.py +++ /dev/null @@ -1,231 +0,0 @@ -# -*- coding: utf-8 -*- -import logging -import os - -from django.db import models -from django.urls import reverse -from reversion import revisions as reversion - -from django.conf import settings - -from personalni.models import Resitel, Organizator - -from .base import SeminarModelBase -from seminar.models import tvorba as am - -logger = logging.getLogger(__name__) - - -@reversion.register(ignore_duplicates=True) -class Soustredeni(SeminarModelBase): - - class Meta: - managed = False - db_table = 'seminar_soustredeni' - verbose_name = 'Soustředění' - verbose_name_plural = 'Soustředění' - ordering = ['-rocnik__rocnik', '-datum_zacatku'] - - # Interní ID - id = models.AutoField(primary_key = True) - - rocnik = models.ForeignKey(am.Rocnik, verbose_name='ročník', related_name='soustredeni_old', - on_delete=models.PROTECT) - - datum_zacatku = models.DateField('datum začátku', blank=True, null=True, - help_text='První den soustředění') - - datum_konce = models.DateField('datum konce', blank=True, null=True, - help_text='Poslední den soustředění') - - verejne_db = models.BooleanField('soustředění zveřejněno', db_column='verejne', default=False) - - misto = models.CharField('místo soustředění', max_length=256, blank=True, default='', - help_text='Místo (název obce, volitelně též objektu') - - ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění', - related_name='soustredeni_old', - help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici') - - organizatori = models.ManyToManyField(Organizator, - related_name='soustredeni_old', - verbose_name='Organizátoři soustředění', - help_text='Seznam organizátorů soustředění', - through='Soustredeni_Organizatori') - - text = models.TextField('text k soustředění (HTML)', blank=True, default='') - - TYP_JARNI = 'jarni' - TYP_PODZIMNI = 'podzimni' - TYP_VIKEND = 'vikend' - TYP_VYLET = 'vylet' - TYP_CHOICES = [ - (TYP_JARNI, 'Jarní soustředění'), - (TYP_PODZIMNI, 'Podzimní soustředění'), - (TYP_VIKEND, 'Víkendový sraz'), - (TYP_VYLET, 'Výlet'), - ] - typ = models.CharField('typ akce', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_PODZIMNI) - - exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False, - help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)') - - def __str__(self): - return '{} ({})'.format(self.misto, self.datum_zacatku) - - def verejne(self): - return self.verejne_db - verejne.boolean = True - - def verejne_url(self): - #return reverse('seminar_soustredeni', kwargs={'pk': self.id}) - return reverse('seminar_seznam_soustredeni') - - -@reversion.register(ignore_duplicates=True) -class Soustredeni_Ucastnici(SeminarModelBase): -# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu - - class Meta: - managed = False - db_table = 'seminar_soustredeni_ucastnici' - verbose_name = 'Účast na soustředění' - verbose_name_plural = 'Účasti na soustředění' - ordering = ['soustredeni', 'resitel'] - - # Interní ID - id = models.AutoField(primary_key = True) - - resitel = models.ForeignKey(Resitel, verbose_name='řešitel', - related_name='sous_ucastnici', - on_delete=models.PROTECT) - - soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', - related_name='sous_ucastnici', - on_delete=models.PROTECT) - - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k účasti (plain text)') - - def __str__(self): - return '{} na {}'.format(self.resitel, self.soustredeni) - # NOTE: Poteciální DB HOG bez select_related - - -@reversion.register(ignore_duplicates=True) -class Soustredeni_Organizatori(SeminarModelBase): -# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu - - class Meta: - managed = False - db_table = 'seminar_soustredeni_organizatori' - verbose_name = 'Účast organizátorů na soustředění' - verbose_name_plural = 'Účasti organizátorů na soustředění' - ordering = ['soustredeni', 'organizator'] - - # Interní ID - id = models.AutoField(primary_key = True) - - organizator = models.ForeignKey(Organizator, verbose_name='organizátor', - related_name='sous_orgove', - on_delete=models.PROTECT) - - soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', - related_name='sous_orgove', - on_delete=models.PROTECT) - - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k účasti organizátora (plain text)') - - def __str__(self): - return '{} na {}'.format(self.organizator, self.soustredeni) - # NOTE: Poteciální DB HOG bez select_related - - -# FIXME cycle import - - -# Django neumí jednoduše serializovat partial nebo třídu s __call__ -# (https://docs.djangoproject.com/en/1.8/topics/migrations/), -# neprojdou pak migrace. Takže rozlišení funkcí generujících názvy souboru -# podle adresáře řešíme takto. - -## -def generate_filename_konfera(self, filename): - return os.path.join( - settings.SEMINAR_KONFERY_DIR, - am.aux_generate_filename(self, filename) - ) - -## - -@reversion.register(ignore_duplicates=True) -class Konfera(am.Problem): - class Meta: - managed = False - db_table = 'seminar_konfera' - verbose_name = 'Konfera' - verbose_name_plural = 'Konfery' - - problem_ptr_old = models.OneToOneField(am.Problem, parent_link=True, related_name='konfera_old', on_delete=models.PROTECT, primary_key=True) - - anotace = models.TextField('anotace', blank=True, - help_text='Popis, o čem bude konfera.') - - abstrakt = models.TextField('abstrakt', blank=True, - help_text='Abstrakt konfery tak, jak byl uveden ve sborníku') - - # FIXME: Umíme omezit jen na účastníky daného soustřeďka? - ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci konfery', - related_name='konfera_old', - help_text='Seznam účastníků konfery', through='Konfery_Ucastnici') - - soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění', - related_name='konfery_old', on_delete = models.SET_NULL, null=True) - - TYP_VELETRH = 'veletrh' - TYP_PREZENTACE = 'prezentace' - TYP_CHOICES = [ - (TYP_VELETRH, 'Veletrh (postery)'), - (TYP_PREZENTACE, 'Prezentace (přednáška)'), - ] - typ_prezentace = models.CharField('typ prezentace', max_length=16, choices=TYP_CHOICES, - blank=False, default=TYP_VELETRH) - - prezentace = models.FileField('prezentace',help_text = 'Prezentace nebo fotka posteru', - upload_to = generate_filename_konfera, blank=True) - - materialy = models.FileField('materialy', - help_text = 'Další materiály ke konfeře zabalené do jednoho souboru', - upload_to = generate_filename_konfera, blank=True) - - def __str__(self): - return "{}: ({})".format(self.nazev, self.soustredeni) - - def cislo_node(self): - return None - - -@reversion.register(ignore_duplicates=True) -class Konfery_Ucastnici(models.Model): - - class Meta: - managed = False - db_table = 'seminar_konfery_ucastnici' - verbose_name = 'Účast na konfeře' - verbose_name_plural = 'Účasti na konfeře' - ordering = ['konfera', 'resitel'] - - # Interní ID - id = models.AutoField(primary_key = True) - - resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT, related_name='konf_uc') - - konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE, related_name='konf_uc') - - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k účasti (plain text)') - - def __str__(self): - return '{} na {}'.format(self.resitel, self.konfera) - # NOTE: Poteciální DB HOG bez select_related diff --git a/soustredeni/admin.py b/soustredeni/admin.py index c6f048db..048b9ec3 100644 --- a/soustredeni/admin.py +++ b/soustredeni/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from django.forms import widgets from django.db import models -from seminar.models import soustredeni as m +import soustredeni.models as m class SoustredeniUcastniciInline(admin.TabularInline): diff --git a/soustredeni/migrations/0001_split_from_seminar.py b/soustredeni/migrations/0001_split_from_seminar.py index 745f62e7..c5e432d3 100644 --- a/soustredeni/migrations/0001_split_from_seminar.py +++ b/soustredeni/migrations/0001_split_from_seminar.py @@ -37,7 +37,8 @@ class Migration(migrations.Migration): ('typ_prezentace', models.CharField(choices=[('veletrh', 'Veletrh (postery)'), ('prezentace', 'Prezentace (přednáška)')], default='veletrh', max_length=16, verbose_name='typ prezentace')), ('prezentace', models.FileField(blank=True, help_text='Prezentace nebo fotka posteru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='prezentace')), ('materialy', models.FileField(blank=True, help_text='Další materiály ke konfeře zabalené do jednoho souboru', upload_to=soustredeni.models.generate_filename_konfera, verbose_name='materialy')), - ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.PROTECT)), + ('soustredeni', models.ForeignKey(to='soustredeni.soustredeni', verbose_name='soustředění', on_delete=models.SET_NULL, null=True, related_name='konfery')), + ('ucastnici', models.ManyToManyField(help_text='Seznam účastníků konfery', through='soustredeni.Konfery_Ucastnici', to='personalni.resitel', verbose_name='účastníci konfery')), ], options={ 'verbose_name': 'Konfera', @@ -75,6 +76,8 @@ class Migration(migrations.Migration): ('typ', models.CharField(choices=[('jarni', 'Jarní soustředění'), ('podzimni', 'Podzimní soustředění'), ('vikend', 'Víkendový sraz'), ('vylet', 'Výlet')], default='podzimni', max_length=16, verbose_name='typ akce')), ('exportovat', models.BooleanField(db_column='exportovat', default=False, help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)', verbose_name='export do AESOPa')), ('rocnik', models.ForeignKey(to='seminar.rocnik', verbose_name='ročník', related_name='soustredeni', on_delete=models.PROTECT)), + ('organizatori', models.ManyToManyField(help_text='Seznam organizátorů soustředění', through='soustredeni.Soustredeni_Organizatori', to='personalni.organizator', verbose_name='Organizátoři soustředění')), + ('ucastnici', models.ManyToManyField(help_text='Seznam účastníků soustředění', through='soustredeni.Soustredeni_Ucastnici', to='personalni.resitel', verbose_name='účastníci soustředění')), ], options={ 'verbose_name': 'Soustředění', diff --git a/soustredeni/migrations/0002_manage_soustredeni.py b/soustredeni/migrations/0002_manage_soustredeni.py new file mode 100644 index 00000000..1a535eb0 --- /dev/null +++ b/soustredeni/migrations/0002_manage_soustredeni.py @@ -0,0 +1,34 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:18 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('soustredeni', '0001_split_from_seminar'), + ('seminar', '0124_remove_sous_from_seminar'), + ] + + operations = [ + migrations.AlterModelOptions( + name='konfera', + options={'verbose_name': 'Konfera', 'verbose_name_plural': 'Konfery'}, + ), + migrations.AlterModelOptions( + name='konfery_ucastnici', + options={'ordering': ['konfera', 'resitel'], 'verbose_name': 'Účast na konfeře', 'verbose_name_plural': 'Účasti na konfeře'}, + ), + migrations.AlterModelOptions( + name='soustredeni', + options={'ordering': ['-rocnik__rocnik', '-datum_zacatku'], 'verbose_name': 'Soustředění', 'verbose_name_plural': 'Soustředění'}, + ), + migrations.AlterModelOptions( + name='soustredeni_organizatori', + options={'ordering': ['soustredeni', 'organizator'], 'verbose_name': 'Účast organizátorů na soustředění', 'verbose_name_plural': 'Účasti organizátorů na soustředění'}, + ), + migrations.AlterModelOptions( + name='soustredeni_ucastnici', + options={'ordering': ['soustredeni', 'resitel'], 'verbose_name': 'Účast na soustředění', 'verbose_name_plural': 'Účasti na soustředění'}, + ), + ] diff --git a/soustredeni/migrations/0003_post_split_soustredeni.py b/soustredeni/migrations/0003_post_split_soustredeni.py new file mode 100644 index 00000000..ad1821ee --- /dev/null +++ b/soustredeni/migrations/0003_post_split_soustredeni.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.11 on 2024-05-01 13:35 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('soustredeni', '0002_manage_soustredeni'), + ] + + operations = [ + ] diff --git a/soustredeni/models.py b/soustredeni/models.py index 4429e2bf..78582565 100644 --- a/soustredeni/models.py +++ b/soustredeni/models.py @@ -20,7 +20,6 @@ logger = logging.getLogger(__name__) class Soustredeni(SeminarModelBase): class Meta: - managed = False db_table = 'seminar_soustredeni' verbose_name = 'Soustředění' verbose_name_plural = 'Soustředění' @@ -85,7 +84,6 @@ class Soustredeni_Ucastnici(SeminarModelBase): # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu class Meta: - managed = False db_table = 'seminar_soustredeni_ucastnici' verbose_name = 'Účast na soustředění' verbose_name_plural = 'Účasti na soustředění' @@ -112,7 +110,6 @@ class Soustredeni_Organizatori(SeminarModelBase): # zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu class Meta: - managed = False db_table = 'seminar_soustredeni_organizatori' verbose_name = 'Účast organizátorů na soustředění' verbose_name_plural = 'Účasti organizátorů na soustředění' @@ -155,7 +152,6 @@ def generate_filename_konfera(self, filename): @reversion.register(ignore_duplicates=True) class Konfera(am.Problem): class Meta: - managed = False db_table = 'seminar_konfera' verbose_name = 'Konfera' verbose_name_plural = 'Konfery' @@ -200,7 +196,6 @@ class Konfera(am.Problem): class Konfery_Ucastnici(models.Model): class Meta: - managed = False db_table = 'seminar_konfery_ucastnici' verbose_name = 'Účast na konfeře' verbose_name_plural = 'Účasti na konfeře' diff --git a/split-apps-meta/create.notes b/split-apps-meta/create.notes index 606f76d8..a48a17f8 100644 --- a/split-apps-meta/create.notes +++ b/split-apps-meta/create.notes @@ -3,5 +3,7 @@ Prostě zkopírovat vedle, s původními (=správnými) related names. makemigrations ! Doplnit hack kolem content-types (jako první operace při migraci) ! Doplnit ForeignKeys (Vypadá to, že se dá vesměs zkopírovat předpis z models.py, jen místo prvního fieldu dát `to='app.model'. Dokonce asi funguje použít už novou aplikaci pro vazby v rámci aplikace.) + To samé s ManyToManyFieldy (through= musí taky být 'app.model') +(Zdá se, že jde dobastlit tuhle migraci polozpětně – doplnit co chybělo až podle toho, co vygeneruje migrace po zamanagování nového modelu.) doplnit závislost na unmanage migrate From 8c4bf4d19a99980e3e3430c26bc759d18a9df8d8 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 1 May 2024 15:48:33 +0200 Subject: [PATCH 127/225] =?UTF-8?q?Oprava=20jmen=20model=C5=AF=20v=20org?= =?UTF-8?q?=20pr=C3=A1vech?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy_v2/admin_org_prava.json | 70 +++++++++++++++++----------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/deploy_v2/admin_org_prava.json b/deploy_v2/admin_org_prava.json index 3ef169a5..01de7476 100644 --- a/deploy_v2/admin_org_prava.json +++ b/deploy_v2/admin_org_prava.json @@ -271,42 +271,42 @@ }, { "codename": "add_konfera", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfera" }, { "codename": "change_konfera", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfera" }, { "codename": "delete_konfera", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfera" }, { "codename": "view_konfera", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfera" }, { "codename": "add_konfery_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfery_ucastnici" }, { "codename": "change_konfery_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfery_ucastnici" }, { "codename": "delete_konfery_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfery_ucastnici" }, { "codename": "view_konfery_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "konfery_ucastnici" }, { @@ -351,22 +351,22 @@ }, { "codename": "change_organizator", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "organizator" }, { "codename": "view_organizator", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "organizator" }, { "codename": "change_osoba", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "osoba" }, { "codename": "view_osoba", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "osoba" }, { @@ -391,22 +391,22 @@ }, { "codename": "add_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { "codename": "change_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { "codename": "delete_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { "codename": "view_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { @@ -431,12 +431,12 @@ }, { "codename": "change_resitel", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "resitel" }, { "codename": "view_resitel", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "resitel" }, { @@ -461,82 +461,82 @@ }, { "codename": "add_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { "codename": "change_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { "codename": "delete_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { "codename": "view_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { "codename": "add_soustredeni", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni" }, { "codename": "change_soustredeni", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni" }, { "codename": "delete_soustredeni", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni" }, { "codename": "view_soustredeni", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni" }, { "codename": "add_soustredeni_organizatori", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_organizatori" }, { "codename": "change_soustredeni_organizatori", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_organizatori" }, { "codename": "delete_soustredeni_organizatori", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_organizatori" }, { "codename": "view_soustredeni_organizatori", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_organizatori" }, { "codename": "add_soustredeni_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_ucastnici" }, { "codename": "change_soustredeni_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_ucastnici" }, { "codename": "delete_soustredeni_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_ucastnici" }, { "codename": "view_soustredeni_ucastnici", - "ct_app_label": "seminar", + "ct_app_label": "soustredeni", "ct_model": "soustredeni_ucastnici" }, { @@ -619,4 +619,4 @@ "ct_app_label": "taggit", "ct_model": "taggeditem" } -] \ No newline at end of file +] From e075a9e749613c4bf9081e065af5b394371e28fd Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 1 May 2024 16:27:39 +0200 Subject: [PATCH 128/225] =?UTF-8?q?Oprava=20jmen=20model=C5=AF=20po=20odst?= =?UTF-8?q?=C5=99elu=20person=C3=A1li=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy_v2/admin_org_prava.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/deploy_v2/admin_org_prava.json b/deploy_v2/admin_org_prava.json index 3ef169a5..0bc582fb 100644 --- a/deploy_v2/admin_org_prava.json +++ b/deploy_v2/admin_org_prava.json @@ -351,22 +351,22 @@ }, { "codename": "change_organizator", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "organizator" }, { "codename": "view_organizator", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "organizator" }, { "codename": "change_osoba", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "osoba" }, { "codename": "view_osoba", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "osoba" }, { @@ -391,22 +391,22 @@ }, { "codename": "add_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { "codename": "change_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { "codename": "delete_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { "codename": "view_prijemce", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "prijemce" }, { @@ -431,12 +431,12 @@ }, { "codename": "change_resitel", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "resitel" }, { "codename": "view_resitel", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "resitel" }, { @@ -461,22 +461,22 @@ }, { "codename": "add_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { "codename": "change_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { "codename": "delete_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { "codename": "view_skola", - "ct_app_label": "seminar", + "ct_app_label": "personalni", "ct_model": "skola" }, { From 9f08ec332faa94ea591f84915ba6507c0b176f72 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 1 May 2024 16:31:54 +0200 Subject: [PATCH 129/225] =?UTF-8?q?Oprava=20jmen=20model=C5=AF=20po=20odst?= =?UTF-8?q?=C5=99elu=20nastaven=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy_v2/admin_org_prava.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deploy_v2/admin_org_prava.json b/deploy_v2/admin_org_prava.json index 0bc582fb..bfac6c77 100644 --- a/deploy_v2/admin_org_prava.json +++ b/deploy_v2/admin_org_prava.json @@ -311,22 +311,22 @@ }, { "codename": "add_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { "codename": "change_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { "codename": "delete_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { "codename": "view_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { @@ -619,4 +619,4 @@ "ct_app_label": "taggit", "ct_model": "taggeditem" } -] \ No newline at end of file +] From 6c59c3c2ed1169b0e3e3c5d421a7eec043adf873 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 1 May 2024 16:31:54 +0200 Subject: [PATCH 130/225] =?UTF-8?q?Oprava=20jmen=20model=C5=AF=20po=20odst?= =?UTF-8?q?=C5=99elu=20nastaven=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy_v2/admin_org_prava.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy_v2/admin_org_prava.json b/deploy_v2/admin_org_prava.json index 01de7476..9caa6eb2 100644 --- a/deploy_v2/admin_org_prava.json +++ b/deploy_v2/admin_org_prava.json @@ -311,22 +311,22 @@ }, { "codename": "add_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { "codename": "change_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { "codename": "delete_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { "codename": "view_nastaveni", - "ct_app_label": "seminar", + "ct_app_label": "various", "ct_model": "nastaveni" }, { From 7569447baaf9f51a3efd44b0cd3cdb75aa93b8f0 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 13 May 2024 22:12:51 +0200 Subject: [PATCH 131/225] Oprava assertEquals na assertEqual MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit první je deprecated a v Py3.12 už nefunguje. --- various/tests.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/various/tests.py b/various/tests.py index 0abf4e26..0bb094fb 100644 --- a/various/tests.py +++ b/various/tests.py @@ -6,18 +6,18 @@ class MailTagsTest(TestCase): """Testuje template tagy ohledně mailů.""" def test_maillink(self): # Tohle nedává smysl dělit do víc funkcí, bylo by v nich víc boilerplatu než užitečného kódu. - self.assertEquals(maillink('Hello', to='some@body.test'), r'<a href="mailto:some@body.test">Hello</a>') - self.assertEquals(maillink('Hello', to=['some@body.test']), r'<a href="mailto:some@body.test">Hello</a>') - self.assertEquals( + self.assertEqual(maillink('Hello', to='some@body.test'), r'<a href="mailto:some@body.test">Hello</a>') + self.assertEqual(maillink('Hello', to=['some@body.test']), r'<a href="mailto:some@body.test">Hello</a>') + self.assertEqual( maillink('Hello', to=['alice@test.test', 'bob@jinde.test']), r'<a href="mailto:alice@test.test,bob@jinde.test">Hello</a>', ) - self.assertEquals( + self.assertEqual( maillink('Hello', to='some@body.test', attrs='class="trida" id="id"'), r'<a href="mailto:some@body.test" class="trida" id="id">Hello</a>', ) # Následující test toho testuje moc zároveň, měly by předcházet dedikované testy… (kašlu na ně :-P) - self.assertEquals( + self.assertEqual( maillink('Text odkazu', to='prijemce@wtf.test', subject="Předmět", body="Čau"), r'<a href="mailto:prijemce@wtf.test?subject=P%C5%99edm%C4%9Bt&body=%C4%8Cau">Text odkazu</a>', ) @@ -25,10 +25,10 @@ class MailTagsTest(TestCase): self.assertRaises(TypeError, lambda: maillink()) # Nemá text, takže to shodí python def test_mailurl(self): - self.assertEquals(mailurl(to='some@body.test'), r'mailto:some@body.test') - self.assertEquals(mailurl(to=['some@body.test']), r'mailto:some@body.test') - self.assertEquals(mailurl(to=['alice@test.test', 'bob@jinde.test']), r'mailto:alice@test.test,bob@jinde.test') - self.assertEquals( + self.assertEqual(mailurl(to='some@body.test'), r'mailto:some@body.test') + self.assertEqual(mailurl(to=['some@body.test']), r'mailto:some@body.test') + self.assertEqual(mailurl(to=['alice@test.test', 'bob@jinde.test']), r'mailto:alice@test.test,bob@jinde.test') + self.assertEqual( mailurl(to='some@body.test', body='Tělo', subject='Předmět'), r'mailto:some@body.test?subject=P%C5%99edm%C4%9Bt&body=T%C4%9Blo', ) @@ -48,7 +48,7 @@ class MailTagsTest(TestCase): # TODO: Vyzkoušet i víc adresátů. (Nepamatuji si z hlavy syntaxi…) r'{% maillink "Text" to="alice@test.test" subject="Oprava řešení" %}' ) - self.assertEquals( + self.assertEqual( render_template(template), r'<a href="mailto:alice@test.test?subject=Oprava%20%C5%99e%C5%A1en%C3%AD">Text</a>', ) @@ -57,4 +57,4 @@ class MailTagsTest(TestCase): r'{% load mail %}' r'{% mailurl to="alice@test.test" subject="Čau Alice" %}' ) - self.assertEquals(render_template(mailurltemplate), r'mailto:alice@test.test?subject=%C4%8Cau%20Alice') + self.assertEqual(render_template(mailurltemplate), r'mailto:alice@test.test?subject=%C4%8Cau%20Alice') From 3be9578ec3b96511188dec99a1ada0145216f54a Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 13 May 2024 23:10:22 +0200 Subject: [PATCH 132/225] Novinky split It's everything, everything at once. --- deploy_v2/admin_org_prava.json | 8 ++-- mamweb/settings_common.py | 1 + novinky/__init__.py | 0 novinky/admin.py | 3 ++ novinky/apps.py | 5 +++ novinky/migrations/0001_initial.py | 45 +++++++++++++++++++ novinky/migrations/0002_manage_novinky.py | 18 ++++++++ novinky/migrations/0003_novinky_post.py | 13 ++++++ novinky/migrations/__init__.py | 0 .../models/novinky.py => novinky/models.py | 1 + novinky/tests.py | 3 ++ novinky/views.py | 3 ++ personalni/migrations/0007_novinky_pre.py | 13 ++++++ personalni/migrations/0008_novinky_post.py | 14 ++++++ seminar/migrations/0126_novinky_pre.py | 14 ++++++ seminar/migrations/0127_unmanage_novinky.py | 17 +++++++ seminar/migrations/0128_delete_novinky.py | 17 +++++++ seminar/migrations/0129_novinky_post.py | 14 ++++++ seminar/models/__init__.py | 2 +- 19 files changed, 186 insertions(+), 5 deletions(-) create mode 100644 novinky/__init__.py create mode 100644 novinky/admin.py create mode 100644 novinky/apps.py create mode 100644 novinky/migrations/0001_initial.py create mode 100644 novinky/migrations/0002_manage_novinky.py create mode 100644 novinky/migrations/0003_novinky_post.py create mode 100644 novinky/migrations/__init__.py rename seminar/models/novinky.py => novinky/models.py (97%) create mode 100644 novinky/tests.py create mode 100644 novinky/views.py create mode 100644 personalni/migrations/0007_novinky_pre.py create mode 100644 personalni/migrations/0008_novinky_post.py create mode 100644 seminar/migrations/0126_novinky_pre.py create mode 100644 seminar/migrations/0127_unmanage_novinky.py create mode 100644 seminar/migrations/0128_delete_novinky.py create mode 100644 seminar/migrations/0129_novinky_post.py diff --git a/deploy_v2/admin_org_prava.json b/deploy_v2/admin_org_prava.json index 9caa6eb2..370aec4f 100644 --- a/deploy_v2/admin_org_prava.json +++ b/deploy_v2/admin_org_prava.json @@ -331,22 +331,22 @@ }, { "codename": "add_novinky", - "ct_app_label": "seminar", + "ct_app_label": "novinky", "ct_model": "novinky" }, { "codename": "change_novinky", - "ct_app_label": "seminar", + "ct_app_label": "novinky", "ct_model": "novinky" }, { "codename": "delete_novinky", - "ct_app_label": "seminar", + "ct_app_label": "novinky", "ct_model": "novinky" }, { "codename": "view_novinky", - "ct_app_label": "seminar", + "ct_app_label": "novinky", "ct_model": "novinky" }, { diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index d5b35281..92124364 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -149,6 +149,7 @@ INSTALLED_APPS = ( 'treenode', 'vyroci', 'sifrovacka', + 'novinky', # Admin upravy: diff --git a/novinky/__init__.py b/novinky/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/novinky/admin.py b/novinky/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/novinky/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/novinky/apps.py b/novinky/apps.py new file mode 100644 index 00000000..1b728573 --- /dev/null +++ b/novinky/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + +class NovinkyConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'novinky' diff --git a/novinky/migrations/0001_initial.py b/novinky/migrations/0001_initial.py new file mode 100644 index 00000000..0503402c --- /dev/null +++ b/novinky/migrations/0001_initial.py @@ -0,0 +1,45 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:43 + +from django.db import migrations, models + +def nastav_nove_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('novinka'): + oct = ContentType.objects.filter(app_label='seminar', model=m) + oct.update(app_label='novinky') + +def nastav_stare_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + for m in ('novinka'): + nct = ContentType.objects.filter(app_label='novinky', model=m) + nct.update(app_label='seminar') + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('seminar', '0127_unmanage_novinky'), + ] + + operations = [ + migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), + migrations.CreateModel( + name='Novinky', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('datum', models.DateField(auto_now_add=True)), + ('text', models.TextField(blank=True, null=True, verbose_name='Text novinky')), + ('obrazek', models.ImageField(blank=True, null=True, upload_to='image_novinky/%Y/%m/%d/', verbose_name='Obrázek')), + ('autor', models.ForeignKey(to='personalni.organizator', verbose_name='Autor novinky', null=True, on_delete=models.SET_NULL)), + ('zverejneno', models.BooleanField(default=False, verbose_name='Zveřejněno')), + ], + options={ + 'verbose_name': 'Novinka', + 'verbose_name_plural': 'Novinky', + 'db_table': 'seminar_novinky', + 'ordering': ['-datum'], + 'managed': False, + }, + ), + ] diff --git a/novinky/migrations/0002_manage_novinky.py b/novinky/migrations/0002_manage_novinky.py new file mode 100644 index 00000000..6c69fe6e --- /dev/null +++ b/novinky/migrations/0002_manage_novinky.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:58 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('novinky', '0001_initial'), + ('seminar', '0128_delete_novinky'), + ] + + operations = [ + migrations.AlterModelOptions( + name='novinky', + options={'ordering': ['-datum'], 'verbose_name': 'Novinka', 'verbose_name_plural': 'Novinky'}, + ), + ] diff --git a/novinky/migrations/0003_novinky_post.py b/novinky/migrations/0003_novinky_post.py new file mode 100644 index 00000000..63cef737 --- /dev/null +++ b/novinky/migrations/0003_novinky_post.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.13 on 2024-05-13 21:00 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('novinky', '0002_manage_novinky'), + ] + + operations = [ + ] diff --git a/novinky/migrations/__init__.py b/novinky/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/seminar/models/novinky.py b/novinky/models.py similarity index 97% rename from seminar/models/novinky.py rename to novinky/models.py index b67bdfe6..b08faacb 100644 --- a/seminar/models/novinky.py +++ b/novinky/models.py @@ -13,6 +13,7 @@ class Novinky(models.Model): verbose_name = 'Novinka' verbose_name_plural = 'Novinky' ordering = ['-datum'] + db_table = 'seminar_novinky' datum = models.DateField(auto_now_add=True) diff --git a/novinky/tests.py b/novinky/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/novinky/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/novinky/views.py b/novinky/views.py new file mode 100644 index 00000000..91ea44a2 --- /dev/null +++ b/novinky/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/personalni/migrations/0007_novinky_pre.py b/personalni/migrations/0007_novinky_pre.py new file mode 100644 index 00000000..c04d481e --- /dev/null +++ b/personalni/migrations/0007_novinky_pre.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:35 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0006_pre_split_soustredeni'), + ] + + operations = [ + ] diff --git a/personalni/migrations/0008_novinky_post.py b/personalni/migrations/0008_novinky_post.py new file mode 100644 index 00000000..9d30e7cf --- /dev/null +++ b/personalni/migrations/0008_novinky_post.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0007_novinky_pre'), + ('novinky', '0003_novinky_post'), + ] + + operations = [ + ] diff --git a/seminar/migrations/0126_novinky_pre.py b/seminar/migrations/0126_novinky_pre.py new file mode 100644 index 00000000..1729d176 --- /dev/null +++ b/seminar/migrations/0126_novinky_pre.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:36 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0125_post_split_soustredeni'), + ('personalni', '0007_novinky_pre'), + ] + + operations = [ + ] diff --git a/seminar/migrations/0127_unmanage_novinky.py b/seminar/migrations/0127_unmanage_novinky.py new file mode 100644 index 00000000..afca5443 --- /dev/null +++ b/seminar/migrations/0127_unmanage_novinky.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:41 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0126_novinky_pre'), + ] + + operations = [ + migrations.AlterModelOptions( + name='novinky', + options={'managed': False, 'ordering': ['-datum'], 'verbose_name': 'Novinka', 'verbose_name_plural': 'Novinky'}, + ), + ] diff --git a/seminar/migrations/0128_delete_novinky.py b/seminar/migrations/0128_delete_novinky.py new file mode 100644 index 00000000..9708a09a --- /dev/null +++ b/seminar/migrations/0128_delete_novinky.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:54 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0127_unmanage_novinky'), + ('novinky', '0001_initial'), + ] + + operations = [ + migrations.DeleteModel( + name='Novinky', + ), + ] diff --git a/seminar/migrations/0129_novinky_post.py b/seminar/migrations/0129_novinky_post.py new file mode 100644 index 00000000..11b2b587 --- /dev/null +++ b/seminar/migrations/0129_novinky_post.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.13 on 2024-05-13 20:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0128_delete_novinky'), + ('novinky', '0003_novinky_post'), + ] + + operations = [ + ] diff --git a/seminar/models/__init__.py b/seminar/models/__init__.py index 121aeb04..e404864a 100644 --- a/seminar/models/__init__.py +++ b/seminar/models/__init__.py @@ -3,11 +3,11 @@ from .odevzdavatko import * from .base import * from .pomocne import * from .treenode import * -from .novinky import * from various.models import Nastaveni from personalni.models import Organizator, Resitel, Skola, Prijemce, Osoba from soustredeni.models import Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Konfera, Konfery_Ucastnici +from novinky.models import Novinky # Kvůli migr. 0041 from soustredeni.models import generate_filename_konfera From 7e6dd72722a75205e1164e7c472dea9a706be9b6 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 13 May 2024 23:13:51 +0200 Subject: [PATCH 133/225] =?UTF-8?q?P=C5=99esunut=C3=AD=20admina=20pro=20no?= =?UTF-8?q?vinky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- novinky/admin.py | 4 +++- seminar/admin.py | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/novinky/admin.py b/novinky/admin.py index 8c38f3f3..ea822bca 100644 --- a/novinky/admin.py +++ b/novinky/admin.py @@ -1,3 +1,5 @@ from django.contrib import admin -# Register your models here. +from .models import Novinky + +admin.site.register(Novinky) diff --git a/seminar/admin.py b/seminar/admin.py index 8f589a03..deaba97f 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -186,4 +186,3 @@ class ResitelInline(admin.TabularInline): # admin.site.register(m.Pohadka) admin.site.register(m.Obrazek) admin.site.register(m.Nastaveni, SingletonModelAdmin) -admin.site.register(m.Novinky) From af9f2442079e58ce009e9a4701e5380603bca7bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 13 May 2024 23:26:16 +0200 Subject: [PATCH 134/225] =?UTF-8?q?Drobn=C3=BD=20nesting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/base.css | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mamweb/static/css/base.css b/mamweb/static/css/base.css index 49fc894b..b129e63e 100644 --- a/mamweb/static/css/base.css +++ b/mamweb/static/css/base.css @@ -64,13 +64,13 @@ a:focus, a:hover, a:active { font-weight: bold; font-variant: small-caps; filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); -} -.button:hover { - position: relative; - top: 2px; - left:2px; - background-color: #df490e; + &:hover { + position: relative; + top: 2px; + left: 2px; + background-color: #df490e; + } } /******************/ From e618d390de20365dec01fe3cb1317d8b487932d9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 13 May 2024 23:44:26 +0200 Subject: [PATCH 135/225] =?UTF-8?q?Orgorozcestn=C3=ADk=20pou=C5=BE=C3=ADv?= =?UTF-8?q?=C3=A1=20urls,=20ne=20hardcodovan=C3=A9=20cesty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personalni/profil/orgorozcestnik.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/personalni/templates/personalni/profil/orgorozcestnik.html b/personalni/templates/personalni/profil/orgorozcestnik.html index 34c4daba..46a26826 100644 --- a/personalni/templates/personalni/profil/orgorozcestnik.html +++ b/personalni/templates/personalni/profil/orgorozcestnik.html @@ -13,18 +13,18 @@ <li>soustředění</li> </ul> </li> - <li><a href="/admin/seminar/novinky/add/"><strong>přidat novinku</strong></a> na web</li> + <li><a href="{% url 'admin:seminar_novinky_add' %}"><strong>přidat novinku</strong></a> na web</li> </ul> <hr /> <h2><strong>Tvorba čísla</strong></h2> <ul> - <li><a href="/admin/seminar/problem/add/"><strong>přidat téma</strong></a></li> + <li><a href="{% url 'admin:seminar_problem_add' %}"><strong>přidat téma</strong></a></li> <li><strong>korektury</strong> <ul> - <li><a href="/korektury/">korekturování</a></li> - <li><a href="/admin/korektury/korekturovanepdf/add/">přidat pdf k opravám</a></li> + <li><a href="{% url 'korektury_list' %}">korekturování</a></li> + <li><a href="{% url 'admin:korektury_korekturovanepdf_add' %}">přidat pdf k opravám</a></li> </ul> </li> <li> @@ -70,15 +70,15 @@ <h2><strong>Soustředění</strong></h2> <ul> - <li><a href="/admin/seminar/soustredeni/add/">přidat soustředění</a></li> + <li><a href="{% url 'admin:soustredeni_soustredeni_add' %}">přidat soustředění</a></li> <li><strong>přednášky</strong> <ul> - <li><a href="/admin/prednasky/prednaska/">vypisování přednášek</a></li> + <li><a href="{% url 'admin:prednasky_prednaska_add' %}">vypisování přednášek</a></li> <li>hlasování o přednáškách</li> </ul> </li> - <li><a href="/soustredeni/probehlo/">proběhlá soustředění</a> + <li><a href="{% url 'seminar_seznam_soustredeni' %}">proběhlá soustředění</a> <ul> <li>vytvoření galerie</li> <li>stažení seznamu účastníků</li> @@ -91,7 +91,7 @@ <h2><strong>Můj profil</strong></h2> <ul> - <li><a href="/admin/seminar/organizator/{{ organizator.id }}/change/"><strong>upravit </strong></a></li> + <li><a href="{% url 'admin:personalni_organizator_change' organizator.id %}"><strong>upravit </strong></a></li> </ul> <hr/> @@ -108,6 +108,6 @@ </ul> <hr /> -<p>Nemůžeš najít, co hledáš? Může to být v <a href="/admin/">administračním rozhraní webu</a>.</p> +<p>Nemůžeš najít, co hledáš? Může to být v <a href="{% url 'admin:index' %}">administračním rozhraní webu</a>.</p> {% endblock content %} From 2ce45b3d897abf7a7874924f00ff025c7688194c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 13 May 2024 23:44:54 +0200 Subject: [PATCH 136/225] =?UTF-8?q?Co=20dal=C5=A1=C3=ADho=20nezapomenout?= =?UTF-8?q?=20p=C5=99i=20odst=C5=99elu=20aplikac=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- split-apps-meta/other | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 split-apps-meta/other diff --git a/split-apps-meta/other b/split-apps-meta/other new file mode 100644 index 00000000..68d320e2 --- /dev/null +++ b/split-apps-meta/other @@ -0,0 +1,6 @@ +admin +práva +aplikovat práva +orgorozcestník a další reverzované urls + +výhledově smazat ze seminare From 607129a8995a1265494f97012563543da282928e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 13 May 2024 23:45:47 +0200 Subject: [PATCH 137/225] =?UTF-8?q?=C3=9Aprava=20orgorozcestn=C3=ADku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/templates/personalni/profil/orgorozcestnik.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/templates/personalni/profil/orgorozcestnik.html b/personalni/templates/personalni/profil/orgorozcestnik.html index 46a26826..90d5867d 100644 --- a/personalni/templates/personalni/profil/orgorozcestnik.html +++ b/personalni/templates/personalni/profil/orgorozcestnik.html @@ -13,7 +13,7 @@ <li>soustředění</li> </ul> </li> - <li><a href="{% url 'admin:seminar_novinky_add' %}"><strong>přidat novinku</strong></a> na web</li> + <li><a href="{% url 'admin:novinky_novinky_add' %}"><strong>přidat novinku</strong></a> na web</li> </ul> <hr /> From a3a9c629d8c0280064011a02555f323a2aae734a Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sat, 13 Apr 2024 15:36:21 +0200 Subject: [PATCH 138/225] =?UTF-8?q?Reforma=20pohlav=C3=AD,=20I=20guess?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 2 +- personalni/forms.py | 2 +- .../templates/personalni/udaje/udaje.html | 2 +- personalni/views.py | 10 ++--- seminar/migrations/0115_reforma_pohlavi.py | 40 +++++++++++++++++++ seminar/models/personalni.py | 22 ++++++++-- seminar/testutils.py | 16 ++++---- seminar/utils.py | 2 +- seminar/views/views_all.py | 4 +- 9 files changed, 79 insertions(+), 21 deletions(-) create mode 100644 seminar/migrations/0115_reforma_pohlavi.py diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 41af1dcb..e5de47c2 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -504,7 +504,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): EmailMessage( subject="Nové řešení k " + seznam_do_subjectu, - body=f"Řešitel{ '' if resitel.pohlavi_muz else 'ka' } { resitel } právě nahrál{'' if resitel.pohlavi_muz else 'a' } nové řešení k { seznam }.\n\nHurá do opravování: { self.object.absolute_url() }", + body=f"{resitel} posílá nové řešení k { seznam }.\n\nHurá do opravování: { self.object.absolute_url() }", from_email="submitovatko@mam.mff.cuni.cz", # FIXME: Chceme to mít radši tady, nebo v nastavení? to=list(prijemci), ).send() diff --git a/personalni/forms.py b/personalni/forms.py index 3199a8a2..ea0891e7 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -32,7 +32,7 @@ class UdajeForm(forms.Form): 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) + osloveni = forms.ChoiceField(label='Oslovení', choices=Osoba.OSLOVENI_CHOICES, required=False) 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) diff --git a/personalni/templates/personalni/udaje/udaje.html b/personalni/templates/personalni/udaje/udaje.html index f39e8b47..894ddaf9 100644 --- a/personalni/templates/personalni/udaje/udaje.html +++ b/personalni/templates/personalni/udaje/udaje.html @@ -24,7 +24,7 @@ {% 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.osloveni%} {% 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 %} diff --git a/personalni/views.py b/personalni/views.py index 876cc7ec..5e5ad22c 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -139,7 +139,7 @@ def resitelEditView(request): form_logger.info("EDIT:" + str(fcd) + str(form_hash)) # TODO možná logovat jinak osoba_edit.jmeno = fcd['jmeno'] osoba_edit.prijmeni = fcd['prijmeni'] - osoba_edit.pohlavi_muz = fcd['pohlavi_muz'] + osoba_edit.osloveni = fcd['osloveni'] osoba_edit.email = fcd['email'] osoba_edit.telefon = fcd['telefon'] osoba_edit.ulice = fcd['ulice'] @@ -209,7 +209,7 @@ def prihlaskaView(request): o = s.Osoba( jmeno = fcd['jmeno'], prijmeni = fcd['prijmeni'], - pohlavi_muz = fcd['pohlavi_muz'], + osloveni = fcd['osloveni'], email = fcd['email'], telefon = fcd.get('telefon',''), datum_narozeni = fcd.get('datum_narozeni',None), @@ -242,7 +242,7 @@ def prihlaskaView(request): # Porovnání údajů assert orig_osoba.user is None, "Právě-registrující-se osoba už má Uživatele!" - osoba_attrs = ['jmeno', 'prijmeni', 'pohlavi_muz', 'email', 'telefon', 'datum_narozeni', 'ulice', 'mesto', 'psc', 'stat', 'datum_souhlasu_udaje', 'datum_souhlasu_zasilani', 'datum_registrace'] + osoba_attrs = ['jmeno', 'prijmeni', 'osloveni', 'email', 'telefon', 'datum_narozeni', 'ulice', 'mesto', 'psc', 'stat', 'datum_souhlasu_udaje', 'datum_souhlasu_zasilani', 'datum_registrace'] diffattrs = [] for attr in osoba_attrs: new = getattr(o, attr) @@ -339,7 +339,7 @@ def dataResiteluCsvResponse(queryset, columns=None, with_header=True): 'osoba__telefon', 'osoba__user__username', 'osoba__datum_narozeni', - 'osoba__pohlavi_muz', + 'osoba__osloveni', 'osoba__ulice', 'osoba__mesto', 'osoba__psc', @@ -367,7 +367,7 @@ def dataResiteluCsvResponse(queryset, columns=None, with_header=True): 'osoba__telefon': 'telefon', 'osoba__user__username': 'user', 'osoba__datum_narozeni': 'datum_narozeni', - 'osoba__pohlavi_muz': 'pohlavi_muz', + 'osoba__osloveni': 'osloveni', 'osoba__ulice': 'ulice', 'osoba__mesto': 'mesto', 'osoba__psc': 'psc', diff --git a/seminar/migrations/0115_reforma_pohlavi.py b/seminar/migrations/0115_reforma_pohlavi.py new file mode 100644 index 00000000..3a0f72fd --- /dev/null +++ b/seminar/migrations/0115_reforma_pohlavi.py @@ -0,0 +1,40 @@ +# Generated by Django 4.2.11 on 2024-04-12 14:03 + +from django.db import migrations, models + +# V migracích nemáme Osoba.OSLOVENI_*, tak si to sem nakopíruji. +OSLOVENI_MUZSKE = 'resitel' +OSLOVENI_ZENSKE = 'resitelka' +OSLOVENI_ZADNE = '' + +def pohlavi_to_osloveni(apps, schema_editor): + Osoba = apps.get_model('seminar', 'Osoba') + Osoba.objects.filter(pohlavi_muz=True).update(osloveni=OSLOVENI_MUZSKE) + Osoba.objects.filter(pohlavi_muz=False).update(osloveni=OSLOVENI_ZENSKE) + +def osloveni_to_pohlavi(apps, schema_editor): + Osoba = apps.get_model('seminar', 'Osoba') + nebinarni = Osoba.objects.filter(osloveni=OSLOVENI_ZADNE) + if nebinarni.count() > 0: + raise Exception("Nelze odmigrovat: v databázi jsou nebinární osoby, které starý model nereprezentuje správně.") + Osoba.objects.filter(osloveni=OSLOVENI_MUZSKE).update(pohlavi_muz=True) + Osoba.objects.filter(osloveni=OSLOVENI_MUZSKE).update(pohlavi_muz=False) + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci'), + ] + + operations = [ + migrations.AddField( + model_name='osoba', + name='osloveni', + field=models.CharField(blank=True, choices=[('resitel', 'Řešitel'), ('resitelka', 'Řešitelka')], max_length=32, verbose_name='Oslovení'), + ), + migrations.RunPython(pohlavi_to_osloveni, osloveni_to_pohlavi), + migrations.RemoveField( + model_name='osoba', + name='pohlavi_muz', + ), + ] diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index 61313e87..f93e35b0 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -38,8 +38,16 @@ class Osoba(SeminarModelBase): user = models.OneToOneField(settings.AUTH_USER_MODEL, blank=True, null=True, verbose_name='uživatel', on_delete=models.DO_NOTHING) - # Pohlaví. Že ho neznáme se snad nestane (a ušetří to práci při programování) - pohlavi_muz = models.BooleanField('pohlaví (muž)', default=False) + # Pohlaví nás prakticky nezajímá, reálně. + OSLOVENI_MUZSKE = 'resitel' + OSLOVENI_ZENSKE = 'resitelka' + OSLOVENI_ZADNE = '' + OSLOVENI_CHOICES = [ + (OSLOVENI_MUZSKE, 'Řešitel'), + (OSLOVENI_ZENSKE, 'Řešitelka'), + (OSLOVENI_ZADNE, 'Cokoliv jiného'), # Reálně nás u nikoho jiného oslovení nezajímá? (A pohlaví už vůbec) + ] + osloveni = models.CharField('Oslovení', choices=OSLOVENI_CHOICES, max_length=32, blank=True) email = models.EmailField('e-mail', max_length=256, blank=True, default='') @@ -246,11 +254,19 @@ class Resitel(SeminarModelBase): def export_row(self): "Slovnik pro pouziti v AESOP exportu" + # Ref: https://opmk.mff.cuni.cz/wiki/aesop/import#telo + + # FUJ: Oslovení nemusí souviset s genderem. + gender = { + Osoba.OSLOVENI_MUZSKE: 'M', + Osoba.OSLOVENI_ZENSKE: 'F', + Osoba.OSLOVENI_ZADNE: '', + }[self.osoba.osloveni] return { 'id': self.id, 'name': self.osoba.jmeno, 'surname': self.osoba.prijmeni, - 'gender': 'M' if self.osoba.pohlavi_muz else 'F', + 'gender': gender, 'born': self.osoba.datum_narozeni.isoformat() if self.osoba.datum_narozeni else '', 'email': self.osoba.email, 'end-year': self.rok_maturity or '', diff --git a/seminar/testutils.py b/seminar/testutils.py index c3d64f56..0d90456a 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -58,17 +58,19 @@ def gen_osoby(rnd, size): # 30 je náhodná konstanta, size je použité na víc místech a # říká, jak velká asi chceme testovací data for i in range(30 * size): - pohlavi = rnd.randint(0,1) - jmeno = rnd.choice([jmena_m, jmena_f][pohlavi]) - prijmeni = rnd.choice([prijmeni_m, prijmeni_f][pohlavi]) + pohlavi_idx = rnd.randint(0,2) # 2 = nebinární + osloveni = [Osoba.OSLOVENI_MUZSKE, Osoba.OSLOVENI_ZENSKE, Osoba.OSLOVENI_ZADNE][pohlavi_idx] + jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) + prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) + if pohlavi_idx == 2: logger.debug(f'Testdata: nebinární osoba: {jmeno} {prijmeni}.') pokusy = 0 max_pokusy = 120*size while (not __unikatni_jmeno and pokusy < max_pokusy): # pokud jméno a příjmení není unikátní, zkoušíme generovat nová # do daného limitu (abychom se nezacyklili do nekonečna při málo jménech a příjmeních # ze kterých se generuje) - jmeno = rnd.choice([jmena_m, jmena_f][pohlavi]) - prijmeni = rnd.choice([prijmeni_m, prijmeni_f][pohlavi]) + jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) + prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) pokusy = pokusy + 1 if pokusy >= max_pokusy: print("Chyba, na danou velikost testovacích dat příliš málo možných" @@ -86,7 +88,7 @@ def gen_osoby(rnd, size): psc = "".join([str(rnd.choice([k for k in range(10)])) for i in range(5)]) osoby.append(Osoba.objects.create(jmeno = jmeno, prijmeni = prijmeni, - prezdivka = prezdivka, pohlavi_muz = pohlavi, email = email, + prezdivka = prezdivka, osloveni = osloveni, email = email, telefon = telefon, datum_narozeni = narozeni, ulice = ulice, mesto = mesto, psc = psc, datum_registrace = datetime.date(rnd.randint(2019, 2029), @@ -818,7 +820,7 @@ def create_test_data(size = 6, rnd = None): admin = User.objects.create_superuser(username='admin', email='', password='admin') os_admin = Osoba.objects.create( user=admin, jmeno='admin', prijmeni='admin', - prezdivka='admin', pohlavi_muz=1, email='admin@admin.admin', + prezdivka='admin', osloveni='', email='admin@admin.admin', telefon='123 456 789', datum_narozeni=datetime.date(2000, 1, 1), ulice='admin', mesto='admin', psc='100 00', datum_registrace=datetime.date(2020, 9, 6) diff --git a/seminar/utils.py b/seminar/utils.py index 891f8c15..ddce769c 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -337,7 +337,7 @@ def merge_osoby(cilova, zdrojova): # ID, User neřešíme, poznámku vyřešíme separátně. fieldy = ['datum_narozeni', 'datum_registrace', 'datum_souhlasu_udaje', 'datum_souhlasu_zasilani', 'email', 'foto', 'jmeno', 'mesto', - 'pohlavi_muz', 'prezdivka', 'prijmeni', 'psc', 'stat', 'telefon', 'ulice'] + 'osloveni', 'prezdivka', 'prijmeni', 'psc', 'stat', 'telefon', 'ulice'] for f in fieldy: zf = getattr(zdrojova, f) cf = getattr(cilova, f) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 662c5025..31cfbe17 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -674,8 +674,8 @@ class ClankyResitelView(generic.ListView): def StavDatabazeView(request): # nastaveni = Nastaveni.objects.get() problemy = utils.seznam_problemu() - muzi = Resitel.objects.filter(osoba__pohlavi_muz=True) - zeny = Resitel.objects.filter(osoba__pohlavi_muz=False) + muzi = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_MUZSKE) + zeny = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_ZENSKE) return render(request, 'seminar/stav_databaze.html', { # 'nastaveni': nastaveni, From 8949424f48a6a388963ed2be1b7d0acc93ef8f3c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Tue, 21 May 2024 21:33:25 +0200 Subject: [PATCH 139/225] =?UTF-8?q?Zapomenut=C3=A1=20migrace=20post=5Fsous?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0007_post_split_soustredeni.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 personalni/migrations/0007_post_split_soustredeni.py diff --git a/personalni/migrations/0007_post_split_soustredeni.py b/personalni/migrations/0007_post_split_soustredeni.py new file mode 100644 index 00000000..a4b8063e --- /dev/null +++ b/personalni/migrations/0007_post_split_soustredeni.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.11 on 2024-04-30 21:53 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('soustredeni', '0003_post_split_soustredeni'), + ] + + operations = [ + ] From bb1fb87665f81bd7d612f7dc2c8dd64aed502fbd Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Tue, 21 May 2024 21:33:42 +0200 Subject: [PATCH 140/225] =?UTF-8?q?Oprava=20migrace=20kolem=20pohlav=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0008_reforma_pohlavi.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename seminar/migrations/0115_reforma_pohlavi.py => personalni/migrations/0008_reforma_pohlavi.py (88%) diff --git a/seminar/migrations/0115_reforma_pohlavi.py b/personalni/migrations/0008_reforma_pohlavi.py similarity index 88% rename from seminar/migrations/0115_reforma_pohlavi.py rename to personalni/migrations/0008_reforma_pohlavi.py index 3a0f72fd..ed0862f5 100644 --- a/seminar/migrations/0115_reforma_pohlavi.py +++ b/personalni/migrations/0008_reforma_pohlavi.py @@ -8,12 +8,12 @@ OSLOVENI_ZENSKE = 'resitelka' OSLOVENI_ZADNE = '' def pohlavi_to_osloveni(apps, schema_editor): - Osoba = apps.get_model('seminar', 'Osoba') + Osoba = apps.get_model('personalni', 'Osoba') Osoba.objects.filter(pohlavi_muz=True).update(osloveni=OSLOVENI_MUZSKE) Osoba.objects.filter(pohlavi_muz=False).update(osloveni=OSLOVENI_ZENSKE) def osloveni_to_pohlavi(apps, schema_editor): - Osoba = apps.get_model('seminar', 'Osoba') + Osoba = apps.get_model('personalni', 'Osoba') nebinarni = Osoba.objects.filter(osloveni=OSLOVENI_ZADNE) if nebinarni.count() > 0: raise Exception("Nelze odmigrovat: v databázi jsou nebinární osoby, které starý model nereprezentuje správně.") @@ -23,7 +23,7 @@ def osloveni_to_pohlavi(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('seminar', '0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci'), + ('personalni', '0007_post_split_soustredeni'), ] operations = [ From 6165c5916bd8a9c811a86cb950566aeb64950cd4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Tue, 21 May 2024 21:35:06 +0200 Subject: [PATCH 141/225] =?UTF-8?q?Zapomenut=C3=A1=20z=C3=A1vislost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/migrations/0007_post_split_soustredeni.py | 1 + 1 file changed, 1 insertion(+) diff --git a/personalni/migrations/0007_post_split_soustredeni.py b/personalni/migrations/0007_post_split_soustredeni.py index a4b8063e..afdf0896 100644 --- a/personalni/migrations/0007_post_split_soustredeni.py +++ b/personalni/migrations/0007_post_split_soustredeni.py @@ -6,6 +6,7 @@ from django.db import migrations class Migration(migrations.Migration): dependencies = [ + ('personalni', '0006_pre_split_soustredeni'), ('soustredeni', '0003_post_split_soustredeni'), ] From 8dbb92d3a4e779121c56bfca5d35117ce0a4cc1e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 2 Jun 2024 17:17:57 +0200 Subject: [PATCH 142/225] =?UTF-8?q?Filtrov=C3=A1ni=20=C5=99e=C5=A1itel?= =?UTF-8?q?=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/admin.py | 1 + 1 file changed, 1 insertion(+) diff --git a/personalni/admin.py b/personalni/admin.py index 14af2c2c..b3506fc4 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -53,6 +53,7 @@ class OrganizatorAdmin(ReverseModelAdmin): @admin.register(m.Resitel) class ResitelAdmin(ReverseModelAdmin): search_fields = ['osoba__jmeno', 'osoba__prijmeni', 'osoba__prezdivka'] + list_filter = ['zasilat', 'zasilat_cislo_papirove', 'zasilat_cislo_emailem', 'rok_maturity'] ordering = ('osoba__prijmeni', 'osoba__jmeno') inline_type = 'stacked' inline_reverse = ['osoba'] From e431e23ad42467abd9b82c0bef713eea4cb3ab53 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 2 Jun 2024 18:08:18 +0200 Subject: [PATCH 143/225] =?UTF-8?q?Vyr=C3=A1b=C4=9Bn=C3=AD=20org=C5=AF=20z?= =?UTF-8?q?=20=C5=99e=C5=A1itel=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/admin.py | 50 +++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/personalni/admin.py b/personalni/admin.py index b3506fc4..81cf7ecb 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -5,10 +5,31 @@ from django.contrib.messages import WARNING, ERROR, SUCCESS import seminar.models as m from datetime import datetime +# Tohle chceme umět použít i z ResitelAdmin +@admin.action(description="Udělej z vybraných osob organizátory") +def udelej_orgem(admin, request, queryset): + org_group = Group.objects.get(name='org') + uspesne_vytvoreni_orgove = 0 + for o in queryset: + if m.Organizator.objects.filter(osoba=o).exists(): + # Ref: https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.message_user + admin.message_user(request, f"Osoba {o} už je org, přeskakuji.", level=WARNING) + continue + user = o.user + if user is None: + admin.message_user(request, f"Osoba {o} nemá uživatele! Přeskakuji.", level=ERROR) + continue + user.groups.add(org_group) + user.is_staff = True + user.save() + org = m.Organizator.objects.create(osoba=o, organizuje_od=datetime.now()) + org.save() + uspesne_vytvoreni_orgove += 1 + admin.message_user(request, f'Úspěšně vytvořeno {uspesne_vytvoreni_orgove} orgů.', level=SUCCESS) @admin.register(m.Osoba) class OsobaAdmin(admin.ModelAdmin): - actions = ['synchronizuj_maily', 'udelej_orgem'] + actions = ['synchronizuj_maily', udelej_orgem] search_fields = ['jmeno', 'prijmeni', 'prezdivka'] def synchronizuj_maily(self, request, queryset): @@ -20,27 +41,6 @@ class OsobaAdmin(admin.ModelAdmin): self.message_user(request, "E-maily synchronizovány.") synchronizuj_maily.short_description = "Synchronizuj vybraným osobám e-maily do uživatelů" - def udelej_orgem(self,request,queryset): - org_group = Group.objects.get(name='org') - uspesne_vytvoreni_orgove = 0 - for o in queryset: - if m.Organizator.objects.filter(osoba=o).exists(): - # Ref: https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.message_user - self.message_user(request, f"Osoba {o} už je org, přeskakuji.", level=WARNING) - continue - user = o.user - if user is None: - self.message_user(request, f"Osoba {o} nemá uživatele! Přeskakuji.", level=ERROR) - continue - user.groups.add(org_group) - user.is_staff = True - user.save() - org = m.Organizator.objects.create(osoba=o, organizuje_od=datetime.now()) - org.save() - uspesne_vytvoreni_orgove += 1 - self.message_user(request, f'Úspěšně vytvořeno {uspesne_vytvoreni_orgove} orgů.', level=SUCCESS) - udelej_orgem.short_description = "Udělej z vybraných osob organizátory" - class OsobaInline(admin.TabularInline): model = m.Osoba @@ -58,5 +58,11 @@ class ResitelAdmin(ReverseModelAdmin): inline_type = 'stacked' inline_reverse = ['osoba'] + actions = ['udelej_resitele_orgem'] + @admin.action(description="Udělej z řešitelů organizátory") + def udelej_resitele_orgem(self, req, qs): + osoby = m.Osoba.objects.filter(resitel__in=qs) + udelej_orgem(self, req, osoby) + admin.site.register(m.Skola) admin.site.register(m.Prijemce) From 15b09c23a7e5cc4721903859044082d8716c7e37 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sun, 2 Jun 2024 22:54:28 +0200 Subject: [PATCH 144/225] =?UTF-8?q?Posunut=C3=AD=20odst=C5=99elu=20novinek?= =?UTF-8?q?=20a=C5=BE=20za=20reformu=20pohlav=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/{0007_novinky_pre.py => 0009_novinky_pre.py} | 2 +- .../migrations/{0008_novinky_post.py => 0010_novinky_post.py} | 2 +- seminar/migrations/0126_novinky_pre.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename personalni/migrations/{0007_novinky_pre.py => 0009_novinky_pre.py} (76%) rename personalni/migrations/{0008_novinky_post.py => 0010_novinky_post.py} (83%) diff --git a/personalni/migrations/0007_novinky_pre.py b/personalni/migrations/0009_novinky_pre.py similarity index 76% rename from personalni/migrations/0007_novinky_pre.py rename to personalni/migrations/0009_novinky_pre.py index c04d481e..49a94a93 100644 --- a/personalni/migrations/0007_novinky_pre.py +++ b/personalni/migrations/0009_novinky_pre.py @@ -6,7 +6,7 @@ from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('personalni', '0006_pre_split_soustredeni'), + ('personalni', '0008_reforma_pohlavi'), ] operations = [ diff --git a/personalni/migrations/0008_novinky_post.py b/personalni/migrations/0010_novinky_post.py similarity index 83% rename from personalni/migrations/0008_novinky_post.py rename to personalni/migrations/0010_novinky_post.py index 9d30e7cf..8c580214 100644 --- a/personalni/migrations/0008_novinky_post.py +++ b/personalni/migrations/0010_novinky_post.py @@ -6,7 +6,7 @@ from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('personalni', '0007_novinky_pre'), + ('personalni', '0009_novinky_pre'), ('novinky', '0003_novinky_post'), ] diff --git a/seminar/migrations/0126_novinky_pre.py b/seminar/migrations/0126_novinky_pre.py index 1729d176..644abb44 100644 --- a/seminar/migrations/0126_novinky_pre.py +++ b/seminar/migrations/0126_novinky_pre.py @@ -7,7 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('seminar', '0125_post_split_soustredeni'), - ('personalni', '0007_novinky_pre'), + ('personalni', '0009_novinky_pre'), ] operations = [ From 381c5ca3de96a9ae7c9b4f5a21deaf571ee592ff Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 3 Jun 2024 02:06:00 +0200 Subject: [PATCH 145/225] =?UTF-8?q?Hezk=C3=A1=20jm=C3=A9na=20a=20po=C5=99a?= =?UTF-8?q?d=C3=AD=20aplikac=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aesop/apps.py | 2 +- api/apps.py | 1 + header_fotky/apps.py | 1 + mamweb/admin.py | 13 +++++++++++-- novinky/apps.py | 1 + odevzdavatko/apps.py | 1 + personalni/apps.py | 1 + seminar/apps.py | 7 +++++++ sifrovacka/apps.py | 1 + soustredeni/apps.py | 1 + treenode/apps.py | 1 + various/apps.py | 1 + vyroci/apps.py | 1 + vysledkovky/apps.py | 1 + 14 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 seminar/apps.py diff --git a/aesop/apps.py b/aesop/apps.py index 4e8b4787..d7dea2e3 100644 --- a/aesop/apps.py +++ b/aesop/apps.py @@ -3,6 +3,6 @@ Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. """ from django.apps import AppConfig - class AesopConfig(AppConfig): name = 'aesop' + verbose_name = 'Export do AESOPa' diff --git a/api/apps.py b/api/apps.py index 6a2bdbc4..a74c8c0e 100644 --- a/api/apps.py +++ b/api/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class ApiConfig(AppConfig): name = 'api' + verbose_name = 'Různá webová API' diff --git a/header_fotky/apps.py b/header_fotky/apps.py index 13f93ed4..9cf572ec 100644 --- a/header_fotky/apps.py +++ b/header_fotky/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class HeaderFotkyConfig(AppConfig): name = 'header_fotky' + verbose_name = 'Fotky v záhlaví' diff --git a/mamweb/admin.py b/mamweb/admin.py index 5d0351df..d905f186 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -42,8 +42,17 @@ def get_app_list(self, request, app_label=None): """ app_dict = self._build_app_dict(request, label=app_label) - # Sort the apps alphabetically. - app_list = sorted(app_dict.values(), key=lambda x: locale.strxfrm('!') if (x['name'] == "Seminar") else locale.strxfrm(x['name'].lower())) + aplikace_nahore = [ + 'seminar', + 'personalni', + 'novinky', + 'korektury', + 'various', + 'prednasky', + 'soustredeni', + ] + app_list = [app_dict[label] for label in aplikace_nahore] + [app_dict[label] for label in app_dict if label not in aplikace_nahore] + # Sort the models alphabetically within each app. for app in app_list: diff --git a/novinky/apps.py b/novinky/apps.py index 1b728573..92519305 100644 --- a/novinky/apps.py +++ b/novinky/apps.py @@ -3,3 +3,4 @@ from django.apps import AppConfig class NovinkyConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'novinky' + verbose_name = 'Novinky' diff --git a/odevzdavatko/apps.py b/odevzdavatko/apps.py index 95811247..d20e4a5a 100644 --- a/odevzdavatko/apps.py +++ b/odevzdavatko/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class OdevzdavatkoConfig(AppConfig): name = 'odevzdavatko' + verbose_name = 'Odevzdávátko' diff --git a/personalni/apps.py b/personalni/apps.py index 47ba22cc..a6ea47fa 100644 --- a/personalni/apps.py +++ b/personalni/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class PersonalniConfig(AppConfig): name = 'personalni' + verbose_name = 'Personální' # Má to nějaký použitelnější název? diff --git a/seminar/apps.py b/seminar/apps.py new file mode 100644 index 00000000..161a73f8 --- /dev/null +++ b/seminar/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + +class SeminarConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'seminar' + verbose_name = 'Seminář' + diff --git a/sifrovacka/apps.py b/sifrovacka/apps.py index e9f34de6..edca3802 100644 --- a/sifrovacka/apps.py +++ b/sifrovacka/apps.py @@ -3,3 +3,4 @@ from django.apps import AppConfig class SifrovackaConfig(AppConfig): name = 'sifrovacka' + verbose_name = 'Šifrovačka' diff --git a/soustredeni/apps.py b/soustredeni/apps.py index a0a8dae5..3dd0b94e 100644 --- a/soustredeni/apps.py +++ b/soustredeni/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class SoustredeniConfig(AppConfig): name = 'soustredeni' + verbose_name = 'Soustředění' diff --git a/treenode/apps.py b/treenode/apps.py index 8e7df6fc..7e709e48 100644 --- a/treenode/apps.py +++ b/treenode/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class TreenodeConfig(AppConfig): name = 'treenode' + verbose_name = 'TreeNody' diff --git a/various/apps.py b/various/apps.py index bf6023f0..d1f6ad2e 100644 --- a/various/apps.py +++ b/various/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class VariousConfig(AppConfig): name = 'various' + verbose_name = 'Různé' diff --git a/vyroci/apps.py b/vyroci/apps.py index b30f5d73..0fb1491e 100644 --- a/vyroci/apps.py +++ b/vyroci/apps.py @@ -3,3 +3,4 @@ from django.apps import AppConfig class VyrociConfig(AppConfig): name = 'vyroci' + verbose_name = '30. výročí M&M' diff --git a/vysledkovky/apps.py b/vysledkovky/apps.py index de1c2bde..7b9a1e0f 100644 --- a/vysledkovky/apps.py +++ b/vysledkovky/apps.py @@ -6,3 +6,4 @@ from django.apps import AppConfig class VysledkovkyConfig(AppConfig): name = 'vysledkovky' + verbose_name = 'Výsledkovky' From c78b932587cc19e502c3a963d7d3e3b1d5042314 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 3 Jun 2024 03:02:06 +0200 Subject: [PATCH 146/225] =?UTF-8?q?Oprava=20odhl=C3=A1=C5=A1en=C3=A9ho=20a?= =?UTF-8?q?dmina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/admin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mamweb/admin.py b/mamweb/admin.py index d905f186..04d564cc 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -51,7 +51,8 @@ def get_app_list(self, request, app_label=None): 'prednasky', 'soustredeni', ] - app_list = [app_dict[label] for label in aplikace_nahore] + [app_dict[label] for label in app_dict if label not in aplikace_nahore] + # Odhlášený admin má prázdný app_dict :-/ + app_list = [app_dict[label] for label in aplikace_nahore if label in app_dict] + [app_dict[label] for label in app_dict if label not in aplikace_nahore] # Sort the models alphabetically within each app. From c917655a22e5e9aacecfde38932240308cbab550 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 3 Jun 2024 14:02:05 +0200 Subject: [PATCH 147/225] =?UTF-8?q?P=C5=99i=20make/init=5Flocal=20nesyncuj?= =?UTF-8?q?eme=20flatpages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Je to otravné a navíc to vyžaduje klíč… --- make/init_local | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/init_local b/make/init_local index 1b2f7c1e..76448a3c 100755 --- a/make/init_local +++ b/make/init_local @@ -7,5 +7,5 @@ make/install_web ensure_venv ./manage.py testdata ./manage.py loaddata data/* -make/sync_prod_flatpages +#make/sync_prod_flatpages ./manage.py load_org_permissions deploy_v2/admin_org_prava.json From f75408e936b606ada344874f4081a4a27dae9ee9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 3 Jun 2024 14:10:41 +0200 Subject: [PATCH 148/225] =?UTF-8?q?fix=20z=C3=A1vislost=C3=AD=20seminar/01?= =?UTF-8?q?17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/migrations/0117_auto_20240312_2125.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/seminar/migrations/0117_auto_20240312_2125.py b/seminar/migrations/0117_auto_20240312_2125.py index 57b2431f..0134534a 100644 --- a/seminar/migrations/0117_auto_20240312_2125.py +++ b/seminar/migrations/0117_auto_20240312_2125.py @@ -7,9 +7,11 @@ class Migration(migrations.Migration): dependencies = [ ('seminar', '0116_delete_nastaveni'), - ('personalni', '0001_skupiny'), + ('various', '0003_fix_permissions'), # Zapomenutá post-split migrace, suplujeme tady. + ('personalni', '0001_skupiny'), # Mělo být spíš 0002_auto_20240312_2118, ale to je no-op, tak je to jedno. ('korektury', '0021_auto_20240312_2124'), ('sifrovacka', '0004_auto_20240312_2124'), + ('prednasky', '0013_auto_20240312_2124'), ] operations = [ From 067cd073527cb5c32086f2c78e5669182231e2d4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 3 Jun 2024 16:31:38 +0200 Subject: [PATCH 149/225] =?UTF-8?q?Zapomenut=C3=BD=20choice=20u=20osoby?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0011_osloveni_vsechny_choices.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 personalni/migrations/0011_osloveni_vsechny_choices.py diff --git a/personalni/migrations/0011_osloveni_vsechny_choices.py b/personalni/migrations/0011_osloveni_vsechny_choices.py new file mode 100644 index 00000000..9b360208 --- /dev/null +++ b/personalni/migrations/0011_osloveni_vsechny_choices.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.13 on 2024-06-03 14:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0010_novinky_post'), + ] + + operations = [ + migrations.AlterField( + model_name='osoba', + name='osloveni', + field=models.CharField(blank=True, choices=[('resitel', 'Řešitel'), ('resitelka', 'Řešitelka'), ('', 'Cokoliv jiného')], max_length=32, verbose_name='Oslovení'), + ), + ] From d895cd0636b05d83161a0e256771bdba21ac610b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 12 Jun 2024 02:02:37 +0200 Subject: [PATCH 150/225] =?UTF-8?q?V=C3=ADc=20org=C5=AF=20k=20jednomu=20PD?= =?UTF-8?q?F=20v=20korekturov=C3=A1tku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/admin.py | 5 ++- korektury/migrations/0024_vic_orgu_k_pdf.py | 41 +++++++++++++++++++++ korektury/models.py | 7 ++-- korektury/views.py | 6 +-- 4 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 korektury/migrations/0024_vic_orgu_k_pdf.py diff --git a/korektury/admin.py b/korektury/admin.py index 5f92c542..a116e260 100644 --- a/korektury/admin.py +++ b/korektury/admin.py @@ -36,12 +36,13 @@ class KorekturovanePDFAdmin(VersionAdmin): fieldsets = [ (None, {'fields': - ['pdf', 'cas', 'org', 'stran', 'nazev', 'komentar', 'poslat_mail']}), + ['pdf', 'cas', 'stran', 'nazev', 'orgove', 'komentar', 'poslat_mail']}), # (u'PDF', {'fields': ['pdf']}), ] - list_display = ['nazev', 'cas', 'stran', 'org'] + list_display = ['nazev', 'cas', 'stran'] list_filter = [] search_fields = [] + filter_horizontal = ['orgove'] def save_model(self, request, obj, form, change): """ diff --git a/korektury/migrations/0024_vic_orgu_k_pdf.py b/korektury/migrations/0024_vic_orgu_k_pdf.py new file mode 100644 index 00000000..b0776303 --- /dev/null +++ b/korektury/migrations/0024_vic_orgu_k_pdf.py @@ -0,0 +1,41 @@ +# Generated by Django 4.2.13 on 2024-06-11 23:53 + +from django.db import migrations, models + +def pridej_orgy(apps, schema_editor): + PDF = apps.get_model('korektury', 'KorekturovanePDF') + for pdf in PDF.objects.all(): # Tohle by asi mělo jít udělat pomocí update, ale moc práce a rychlé hledání taky nepomohlo. + pdf.orgove.add(pdf.org) + pdf.save() # ig? + +def vyber_orga(apps, schema_editor): + PDF = apps.get_model('korektury', 'KorekturovanePDF') + for pdf in PDF.objects.all(): + orgove = pdf.orgove.all() + if len(orgove) > 1: + raise migrations.exceptions.IrreversibleError(f'PDF {pdf.id} má víc než jednoho zodpovědného orga, nejde odmigrovat na verzi, která umí jen jednoho.') + if len(orgove) == 0: + pdf.org = None + else: + pdf.org = orgove[0] + pdf.save() + +class Migration(migrations.Migration): + + dependencies = [ + ('personalni', '0011_osloveni_vsechny_choices'), + ('korektury', '0023_personalni_post_migrate'), + ] + + operations = [ + migrations.AddField( + model_name='korekturovanepdf', + name='orgove', + field=models.ManyToManyField(blank=True, default=None, help_text='Zodpovědní organizátoři za obsah (chodí jim maily o nových korekturách)', to='personalni.organizator'), + ), + migrations.RunPython(pridej_orgy, vyber_orga), + migrations.RemoveField( + model_name='korekturovanepdf', + name='org', + ), + ] diff --git a/korektury/models.py b/korektury/models.py index ca1bb877..9f2f82f7 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -40,7 +40,6 @@ def generate_filename(self, filename): clean) return os.path.join(settings.KOREKTURY_PDF_DIR, fname) - #@reversion.register(ignore_duplicates=True) class KorekturovanePDF(models.Model): class Meta: @@ -60,9 +59,9 @@ class KorekturovanePDF(models.Model): pdf = models.FileField(u'PDF', upload_to = generate_filename) - org = models.ForeignKey(Organizator, blank=True, - help_text='Zodpovědný organizátor za obsah', - null=True, default=None, on_delete=models.SET_NULL) + orgove = models.ManyToManyField(Organizator, blank=True, + help_text='Zodpovědní organizátoři za obsah (chodí jim maily o nových korekturách)', + default=None) stran = models.IntegerField(u'počet stran', help_text='Počet stran PDF', default=0) diff --git a/korektury/views.py b/korektury/views.py index 1bdfaa92..4408254a 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -188,9 +188,9 @@ class KorekturyView(generic.TemplateView): if email_komentujiciho: emails.add(email_komentujiciho) - # zodpovedny org - if oprava.pdf.org: - email_zobpovedny = oprava.pdf.org.osoba.email + # zodpovedni orgove + for org in oprava.pdf.orgove.all(): + email_zobpovedny = org.osoba.email if email_zobpovedny: emails.add(email_zobpovedny) From 8a5659420d0ac959fe244210847c26218e215bbc Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Wed, 12 Jun 2024 02:25:01 +0200 Subject: [PATCH 151/225] =?UTF-8?q?Na=20v=C3=BDb=C4=9Br=20org=C5=AF=20pro?= =?UTF-8?q?=20PDF=20chceme=20autocomplete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/korektury/admin.py b/korektury/admin.py index a116e260..459932a3 100644 --- a/korektury/admin.py +++ b/korektury/admin.py @@ -42,7 +42,7 @@ class KorekturovanePDFAdmin(VersionAdmin): list_display = ['nazev', 'cas', 'stran'] list_filter = [] search_fields = [] - filter_horizontal = ['orgove'] + autocomplete_fields = ['orgove'] def save_model(self, request, obj, form, change): """ From 2304a8282c4d69881146d3553b790848c3e61a1b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Sat, 15 Jun 2024 22:50:20 +0200 Subject: [PATCH 152/225] =?UTF-8?q?PDF=20nemus=C3=AD=20m=C3=ADt=20zodpov?= =?UTF-8?q?=C4=9Bdn=C3=A9ho=20orga!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/migrations/0024_vic_orgu_k_pdf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/korektury/migrations/0024_vic_orgu_k_pdf.py b/korektury/migrations/0024_vic_orgu_k_pdf.py index b0776303..96af9d93 100644 --- a/korektury/migrations/0024_vic_orgu_k_pdf.py +++ b/korektury/migrations/0024_vic_orgu_k_pdf.py @@ -5,7 +5,7 @@ from django.db import migrations, models def pridej_orgy(apps, schema_editor): PDF = apps.get_model('korektury', 'KorekturovanePDF') for pdf in PDF.objects.all(): # Tohle by asi mělo jít udělat pomocí update, ale moc práce a rychlé hledání taky nepomohlo. - pdf.orgove.add(pdf.org) + if pdf.org is not None: pdf.orgove.add(pdf.org) pdf.save() # ig? def vyber_orga(apps, schema_editor): From 491f91cf4704170c1bbbe332da796b91b9cd2297 Mon Sep 17 00:00:00 2001 From: ticvac <vaclav.tichy180@gmail.com> Date: Sat, 15 Jun 2024 22:54:26 +0200 Subject: [PATCH 153/225] akce na sjednoceni cisel do +420 123 456 78 --- personalni/admin.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/personalni/admin.py b/personalni/admin.py index 81cf7ecb..ecb59674 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -5,6 +5,24 @@ from django.contrib.messages import WARNING, ERROR, SUCCESS import seminar.models as m from datetime import datetime +@admin.action(description="Sjednoť telefony") +def sjednot_telefony(admin, request, queryset): + for o in queryset: + try: + telefon = int(o.telefon.replace(" ", "").replace("+", "")) + # 6 míst + if len(str(telefon)) == 9: + o.telefon = "+420 " + str(telefon)[0:3] + " " + str(telefon)[3:6] + " " + str(telefon)[6:9] + o.save() + # 12 míst + elif len(str(telefon)) == 12: + o.telefon = "+" + str(telefon)[0:3] + " " + str(telefon)[3:6] + " " + str(telefon)[6:9] + " " + str(telefon)[9:12] + o.save() + else: + raise ValueError + except: + print("Hmm má divné číslo - " + o.telefon + " - " + str(o.id)) + # Tohle chceme umět použít i z ResitelAdmin @admin.action(description="Udělej z vybraných osob organizátory") def udelej_orgem(admin, request, queryset): @@ -29,7 +47,7 @@ def udelej_orgem(admin, request, queryset): @admin.register(m.Osoba) class OsobaAdmin(admin.ModelAdmin): - actions = ['synchronizuj_maily', udelej_orgem] + actions = ['synchronizuj_maily', udelej_orgem, sjednot_telefony] search_fields = ['jmeno', 'prijmeni', 'prezdivka'] def synchronizuj_maily(self, request, queryset): From fad2c6940d6a2b755702d457753b8faa746a54e3 Mon Sep 17 00:00:00 2001 From: ticvac <vaclav.tichy180@gmail.com> Date: Sat, 15 Jun 2024 23:20:35 +0200 Subject: [PATCH 154/225] =?UTF-8?q?oprava=20chybov=C3=A9=20hl=C3=A1=C5=A1k?= =?UTF-8?q?y?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/admin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/personalni/admin.py b/personalni/admin.py index ecb59674..e86898db 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -21,7 +21,8 @@ def sjednot_telefony(admin, request, queryset): else: raise ValueError except: - print("Hmm má divné číslo - " + o.telefon + " - " + str(o.id)) + admin.message_user(request, f"{o.jmeno} {o.prijmeni} (id: {o.id}) má divný telefon: {o.telefon}", level=ERROR) + admin.message_user(request, "Telefony sjednoceny.", level=SUCCESS) # Tohle chceme umět použít i z ResitelAdmin @admin.action(description="Udělej z vybraných osob organizátory") From cf3c9f6f805dc839f6550bbae74b5abba67bb82c Mon Sep 17 00:00:00 2001 From: ticvac <vaclav.tichy180@gmail.com> Date: Sat, 15 Jun 2024 23:27:42 +0200 Subject: [PATCH 155/225] prazdy string -> continue --- personalni/admin.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/personalni/admin.py b/personalni/admin.py index e86898db..3418769a 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -8,6 +8,8 @@ from datetime import datetime @admin.action(description="Sjednoť telefony") def sjednot_telefony(admin, request, queryset): for o in queryset: + if o.telefon == '': + continue try: telefon = int(o.telefon.replace(" ", "").replace("+", "")) # 6 míst From 3c3b9f755a52c773c3f23006249b5cbac5d26ec2 Mon Sep 17 00:00:00 2001 From: Riki <ucastnik@mam> Date: Sat, 15 Jun 2024 23:35:46 +0200 Subject: [PATCH 156/225] Add `strana` column to `Clanek` Optionally add page fragment to `resitelske_clanky.html` --- ..._strana_alter_text_id_alter_treenode_id.py | 28 +++++++++++++++++++ seminar/models/tvorba.py | 2 ++ .../seminar/clanky/resitelske_clanky.html | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 seminar/migrations/0130_clanek_strana_alter_text_id_alter_treenode_id.py diff --git a/seminar/migrations/0130_clanek_strana_alter_text_id_alter_treenode_id.py b/seminar/migrations/0130_clanek_strana_alter_text_id_alter_treenode_id.py new file mode 100644 index 00000000..cc6774d6 --- /dev/null +++ b/seminar/migrations/0130_clanek_strana_alter_text_id_alter_treenode_id.py @@ -0,0 +1,28 @@ +# Generated by Django 4.2.13 on 2024-06-15 21:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0129_novinky_post'), + ] + + operations = [ + migrations.AddField( + model_name='clanek', + name='strana', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='první strana'), + ), + migrations.AlterField( + model_name='text', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='treenode', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + ] diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 1dd9db8e..4ef57bde 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -600,6 +600,8 @@ class Clanek(Problem): cislo = models.ForeignKey(Cislo, blank=True, null=True, on_delete=models.PROTECT, verbose_name='číslo vydání', related_name='vydane_clanky') + + strana = models.PositiveIntegerField(verbose_name="první strana", blank=True, null=True) @cached_property def kod_v_rocniku(self): diff --git a/seminar/templates/seminar/clanky/resitelske_clanky.html b/seminar/templates/seminar/clanky/resitelske_clanky.html index 2bcc7a6b..558232c0 100644 --- a/seminar/templates/seminar/clanky/resitelske_clanky.html +++ b/seminar/templates/seminar/clanky/resitelske_clanky.html @@ -17,7 +17,7 @@ {% endifchanged %} <li> {% if clanek.cislo.pdf %} - <a href="{{ clanek.cislo.pdf.url }}"> + <a href="{{clanek.cislo.pdf.url}}{% if clanek.strana %}#page={{ clanek.cislo.strana }}{% endif %}"> {{ clanek.nazev }} ({% for r in clanek.reseni_set.first.resitele.all %}{{r}}{% if not forloop.last %}, {% endif %}{% endfor %}) </a> From 6225630f9f949bdb812e8893aadb0bc5251bbeda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Thu, 20 Jun 2024 14:31:58 +0200 Subject: [PATCH 157/225] =?UTF-8?q?Migra=C4=8Dn=C3=AD=20kekel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...t_id_alter_treenode_id.py => 0130_clanek_strana.py} | 10 ---------- 1 file changed, 10 deletions(-) rename seminar/migrations/{0130_clanek_strana_alter_text_id_alter_treenode_id.py => 0130_clanek_strana.py} (50%) diff --git a/seminar/migrations/0130_clanek_strana_alter_text_id_alter_treenode_id.py b/seminar/migrations/0130_clanek_strana.py similarity index 50% rename from seminar/migrations/0130_clanek_strana_alter_text_id_alter_treenode_id.py rename to seminar/migrations/0130_clanek_strana.py index cc6774d6..d2f985fb 100644 --- a/seminar/migrations/0130_clanek_strana_alter_text_id_alter_treenode_id.py +++ b/seminar/migrations/0130_clanek_strana.py @@ -15,14 +15,4 @@ class Migration(migrations.Migration): name='strana', field=models.PositiveIntegerField(blank=True, null=True, verbose_name='první strana'), ), - migrations.AlterField( - model_name='text', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), - migrations.AlterField( - model_name='treenode', - name='id', - field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), - ), ] From 1ce9cb445f66b7002937e6e4b8be64c17ae46bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Thu, 20 Jun 2024 14:38:27 +0200 Subject: [PATCH 158/225] =?UTF-8?q?Tady=20bylo=20=E2=80=9E.cislo=E2=80=9C?= =?UTF-8?q?=20nav=C3=ADc=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/clanky/resitelske_clanky.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/clanky/resitelske_clanky.html b/seminar/templates/seminar/clanky/resitelske_clanky.html index 558232c0..0c808bda 100644 --- a/seminar/templates/seminar/clanky/resitelske_clanky.html +++ b/seminar/templates/seminar/clanky/resitelske_clanky.html @@ -17,7 +17,7 @@ {% endifchanged %} <li> {% if clanek.cislo.pdf %} - <a href="{{clanek.cislo.pdf.url}}{% if clanek.strana %}#page={{ clanek.cislo.strana }}{% endif %}"> + <a href="{{clanek.cislo.pdf.url}}{% if clanek.strana %}#page={{ clanek.strana }}{% endif %}"> {{ clanek.nazev }} ({% for r in clanek.reseni_set.first.resitele.all %}{{r}}{% if not forloop.last %}, {% endif %}{% endfor %}) </a> From 2444e5f985f6bd3c2e7156ec60f1e7a731b0aae3 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 8 Jul 2024 22:39:46 +0200 Subject: [PATCH 159/225] =?UTF-8?q?Nemus=C3=ADm=20shazovat=20web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/views.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/personalni/views.py b/personalni/views.py index 5e5ad22c..e7cb4f48 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -4,7 +4,7 @@ from django.views import generic from django.db.models import Q, Count, Min from django.views.decorators.debug import sensitive_post_parameters from django.views.generic.base import TemplateView -from django.contrib.auth.models import User, Permission, Group +from django.contrib.auth.models import User, Permission, Group, AnonymousUser from django.contrib.auth.mixins import LoginRequiredMixin from django.db import transaction from django.http import HttpResponse @@ -318,6 +318,12 @@ def prihlaskaView(request): # Jen hloupé rozhazovátko def profilView(request): user = request.user + if not isinstance(user, AnonymousUser) and m.Osoba.objects.filter(user=user).count() != 1: + # m.Osoba.objects.get() v ostatních views selže + return HttpResponse(render(request, "universal.html", { + 'title': 'Krize identity.', + 'raw_html': r'<blockquote>Zvláštní pocit, že jo?<br>[…]<br>Co to znamená?<br>— Že ti MaMweb neumí říct, kdo jsi.<br>A <a href="/admin">Admin</a> ano?<br>— V tom je rozdíl.</blockquote> — Matrix (1999), parafrázováno', + })) if user.has_perm('auth.org'): return OrgoRozcestnikView.as_view()(request) if user.has_perm('auth.resitel'): From ca8e8506b3d11f66823591de7362dc22776f26ea Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" <ledoian@matfyz.cz> Date: Mon, 8 Jul 2024 22:52:58 +0200 Subject: [PATCH 160/225] =?UTF-8?q?P=C5=99ebyte=C4=8Dn=C3=A1=20HttpRespons?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/personalni/views.py b/personalni/views.py index e7cb4f48..c2712b30 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -320,10 +320,10 @@ def profilView(request): user = request.user if not isinstance(user, AnonymousUser) and m.Osoba.objects.filter(user=user).count() != 1: # m.Osoba.objects.get() v ostatních views selže - return HttpResponse(render(request, "universal.html", { + return render(request, "universal.html", { 'title': 'Krize identity.', 'raw_html': r'<blockquote>Zvláštní pocit, že jo?<br>[…]<br>Co to znamená?<br>— Že ti MaMweb neumí říct, kdo jsi.<br>A <a href="/admin">Admin</a> ano?<br>— V tom je rozdíl.</blockquote> — Matrix (1999), parafrázováno', - })) + }) if user.has_perm('auth.org'): return OrgoRozcestnikView.as_view()(request) if user.has_perm('auth.resitel'): From 49aea5b8b401294a137f72b4760ea1e2638ab495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 9 Jul 2024 19:30:32 +0200 Subject: [PATCH 161/225] =?UTF-8?q?Zm=C4=9Bny=20(z=20gimliho)=20v=20konfig?= =?UTF-8?q?uraci=20nginxu,=20kter=C3=A9=20asi=20chceme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/nginx/mam-test.ks.matfyz.cz | 9 ++++++--- setup/nginx/mam.mff.cuni.cz | 5 ++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/setup/nginx/mam-test.ks.matfyz.cz b/setup/nginx/mam-test.ks.matfyz.cz index 46f9b2ec..90838840 100644 --- a/setup/nginx/mam-test.ks.matfyz.cz +++ b/setup/nginx/mam-test.ks.matfyz.cz @@ -7,11 +7,10 @@ server { } server { # SSL configuration - listen 195.113.20.177:443 ssl; - listen [2001:718:1e03:801::b1]:443 ssl; + listen 195.113.20.177:443 ssl http2; + listen [2001:718:1e03:801::b1]:443 ssl http2; # SSL keys - ssl on; ssl_certificate /etc/letsencrypt/live/mam-test.ks.matfyz.cz/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/mam-test.ks.matfyz.cz/privkey.pem; # managed by Certbot ssl_dhparam /etc/ssl/dhparams.pem; @@ -33,6 +32,10 @@ server { root /akce/mam/www/mamweb-test/; } + location /docs { + alias /akce/mam/www/mamweb-test/docs/_build/html/; + } + location /aesop-export/ { auth_basic "AESOP API"; auth_basic_user_file /akce/mam/www/mamweb-test/.htpasswd-aesop; diff --git a/setup/nginx/mam.mff.cuni.cz b/setup/nginx/mam.mff.cuni.cz index 99292a67..62fc307c 100644 --- a/setup/nginx/mam.mff.cuni.cz +++ b/setup/nginx/mam.mff.cuni.cz @@ -9,11 +9,10 @@ server { server { # SSL configuration # - listen 195.113.20.177:443 ssl; - listen [2001:718:1e03:801::b1]:443 ssl; + listen 195.113.20.177:443 ssl http2; + listen [2001:718:1e03:801::b1]:443 ssl http2; # SSL keys - ssl on; ssl_certificate /etc/ssl/domains/mam.mff.cuni.cz/bundle.pem; ssl_certificate_key /etc/ssl/domains/mam.mff.cuni.cz/privkey.pem; ssl_dhparam /etc/ssl/dhparams.pem; From f564d4e1452fff713f3555aa69edf66681cacc6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 9 Jul 2024 19:32:09 +0200 Subject: [PATCH 162/225] =?UTF-8?q?Spr=C3=A1vn=C3=BD=20odkaz=20na=20diff?= =?UTF-8?q?=20(na=20wiki)=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/nginx/mam.mff.cuni.cz | 1 + 1 file changed, 1 insertion(+) diff --git a/setup/nginx/mam.mff.cuni.cz b/setup/nginx/mam.mff.cuni.cz index 62fc307c..5e5ed681 100644 --- a/setup/nginx/mam.mff.cuni.cz +++ b/setup/nginx/mam.mff.cuni.cz @@ -48,6 +48,7 @@ server { sub_filter 'href="/' 'href="/wiki/'; sub_filter 'src="/' 'src="/wiki/'; sub_filter 'action="/' 'action="/wiki/'; + sub_filter 'diffurl="/' 'diffurl="/wiki/'; # Overkill: #sub_filter '="/' '="/wiki/'; #sub_filter ':5001/' '/wiki/'; From ec474530e48cc8fa02510e06cc05561feb9d4aef Mon Sep 17 00:00:00 2001 From: ticvac <vaclav.tichy180@gmail.com> Date: Fri, 19 Jul 2024 11:41:53 +0200 Subject: [PATCH 163/225] add .DS_store to .gitignore --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d3a2a533..5216e441 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,7 @@ TODO # dokumentace docs/_build -docs/modules \ No newline at end of file +docs/modules + +# Mac users +.DS_Store From 3188e024da432aa7b32926595448b1c2e2972910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 13:24:29 +0200 Subject: [PATCH 164/225] =?UTF-8?q?Logy=20t=C3=BDrac=C3=ADho=20skriptu=20d?= =?UTF-8?q?o=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5216e441..f70ed3c4 100644 --- a/.gitignore +++ b/.gitignore @@ -31,12 +31,15 @@ TODO # reversion kvůli historii objektů v reversion **/reversion -# pro lidi, co programují v nástrojích od JetBrains -.idea - # dokumentace docs/_build docs/modules +# logy týracího skriptu (./checklinks.sh) +/wget.log.* + +# pro lidi, co programují v nástrojích od JetBrains +.idea + # Mac users .DS_Store From b094347b7cc628799cd8bb5ba007df08522a8650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 18:34:05 +0200 Subject: [PATCH 165/225] =?UTF-8?q?Vyta=C5=BEen=C3=AD=20prefixu=20'soustre?= =?UTF-8?q?deni/'=20do=20aplikace=20soustredeni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/urls.py | 2 +- soustredeni/urls.py | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mamweb/urls.py b/mamweb/urls.py index cdd7df09..25910d33 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -43,7 +43,7 @@ urlpatterns = [ path('', include('prednasky.urls')), # Soustredkova aplikace (ma vlastni podadresare) - path('', include('soustredeni.urls')), + path('soustredeni/', include('soustredeni.urls')), # Personalni aplikace (ma vlastni podadresare) # (profil, osobní údaje, ..., ne autentizace, viz dále) diff --git a/soustredeni/urls.py b/soustredeni/urls.py index 2e5a6136..4d07f660 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -2,39 +2,40 @@ from django.urls import path, include from . import views from seminar.utils import org_required +# prefix = 'soustredeni/' urlpatterns = [ path( - 'soustredeni/probehlo/', + 'probehlo/', views.SoustredeniListView.as_view(), name='seminar_seznam_soustredeni' ), path( - 'soustredeni/<int:soustredeni>/seznam_ucastniku', + '<int:soustredeni>/seznam_ucastniku', org_required(views.SoustredeniUcastniciView.as_view()), name='soustredeni_ucastnici' ), path( - 'soustredeni/<int:soustredeni>/maily_ucastniku', + '<int:soustredeni>/maily_ucastniku', org_required(views.SoustredeniMailyUcastnikuView.as_view()), name='maily_ucastniku' ), path( - 'soustredeni/<int:soustredeni>/export_ucastniku', + '<int:soustredeni>/export_ucastniku', org_required(views.soustredeniUcastniciExportView), name='soustredeni_ucastnici_export' ), path( - 'soustredeni/<int:soustredeni>/stvrzenky.pdf', + '<int:soustredeni>/stvrzenky.pdf', org_required(views.soustredeniStvrzenkyView), name='soustredeni_ucastnici_stvrzenky' ), path( - 'soustredeni/<int:soustredeni>/obalky.pdf', + '<int:soustredeni>/obalky.pdf', org_required(views.soustredeniObalkyView), name='seminar_soustredeni_obalky' ), path( - 'soustredeni/<int:soustredeni>/fotogalerie/', + '<int:soustredeni>/fotogalerie/', include('galerie.urls') ), ] From 0fa2fb8e2bd8eb7c9ef34d135e9deb501bd05c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 19:01:50 +0200 Subject: [PATCH 166/225] =?UTF-8?q?=C3=9Aprava=20import=C5=AF=20v=20soustr?= =?UTF-8?q?edeni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index f150b6b8..6ec8c36c 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -1,9 +1,8 @@ from django.shortcuts import get_object_or_404, render from django.http import HttpResponse from django.views import generic -from django.conf import settings from django.contrib.staticfiles.finders import find -from seminar.models import Soustredeni, Resitel, Soustredeni_Ucastnici, Nastaveni # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci + import csv import tempfile import shutil @@ -13,6 +12,10 @@ import http from seminar.views import obalkyView +from .models import Soustredeni, Soustredeni_Ucastnici +from personalni.models import Resitel +from various.models import Nastaveni + class SoustredeniListView(generic.ListView): model = Soustredeni From ddda7052ae1b619c47aef27fbacd18a4a11e17c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 19:17:11 +0200 Subject: [PATCH 167/225] =?UTF-8?q?Zbaven=C3=AD=20se=20zbyte=C4=8Dn=C3=A9h?= =?UTF-8?q?o=20importu=20modelu=20Resitel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index 6ec8c36c..2022adba 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -13,7 +13,6 @@ import http from seminar.views import obalkyView from .models import Soustredeni, Soustredeni_Ucastnici -from personalni.models import Resitel from various.models import Nastaveni @@ -66,7 +65,7 @@ class SoustredeniUcastniciView(SoustredeniUcastniciBaseView): def soustredeniUcastniciExportView(request, soustredeni): soustredeni = get_object_or_404(Soustredeni, id=soustredeni) - ucastnici = Resitel.objects.filter(soustredeni=soustredeni) + ucastnici = soustredeni.ucastnici.all() response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="ucastnici.csv"' @@ -79,7 +78,7 @@ def soustredeniUcastniciExportView(request, soustredeni): def soustredeniStvrzenkyView(request, soustredeni): soustredeni = get_object_or_404(Soustredeni, id=soustredeni) - ucastnici = Resitel.objects.filter(soustredeni=soustredeni) + ucastnici = soustredeni.ucastnici.all() if ucastnici.count() == 0: return HttpResponse( render(request, 'universal.html', { From d1db1b952fba9aabdd1cbf83d5924e12553fe82c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 19:17:49 +0200 Subject: [PATCH 168/225] Obsah modulu soustredeni --- soustredeni/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/soustredeni/__init__.py b/soustredeni/__init__.py index a9f1f263..88d1678e 100644 --- a/soustredeni/__init__.py +++ b/soustredeni/__init__.py @@ -1,5 +1,3 @@ """ -Obsahuje vše (až na přednášky) ohledně soustředění. - -TODO stvrzenky? -""" \ No newline at end of file +Obsahuje vše (až na přednášky a galerie) ohledně soustředění. +""" From 036af434c643620122b1e148e3fa6e51bf779614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 19:25:25 +0200 Subject: [PATCH 169/225] =?UTF-8?q?Odd=C4=9Blen=C3=AD=20urlpatterns=20konk?= =?UTF-8?q?r=C3=A9tn=C3=ADho=20sousu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/urls.py | 66 +++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/soustredeni/urls.py b/soustredeni/urls.py index 4d07f660..7ae79cdd 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -2,7 +2,7 @@ from django.urls import path, include from . import views from seminar.utils import org_required -# prefix = 'soustredeni/' +# prefix = soustredeni/ urlpatterns = [ path( 'probehlo/', @@ -10,32 +10,40 @@ urlpatterns = [ name='seminar_seznam_soustredeni' ), path( - '<int:soustredeni>/seznam_ucastniku', - org_required(views.SoustredeniUcastniciView.as_view()), - name='soustredeni_ucastnici' - ), - path( - '<int:soustredeni>/maily_ucastniku', - org_required(views.SoustredeniMailyUcastnikuView.as_view()), - name='maily_ucastniku' - ), - path( - '<int:soustredeni>/export_ucastniku', - org_required(views.soustredeniUcastniciExportView), - name='soustredeni_ucastnici_export' - ), - path( - '<int:soustredeni>/stvrzenky.pdf', - org_required(views.soustredeniStvrzenkyView), - name='soustredeni_ucastnici_stvrzenky' - ), - path( - '<int:soustredeni>/obalky.pdf', - org_required(views.soustredeniObalkyView), - name='seminar_soustredeni_obalky' - ), - path( - '<int:soustredeni>/fotogalerie/', - include('galerie.urls') - ), + '<int:soustredeni>/', + include( + # prefix = 'soustredeni/<int:soustredeni>/' + [ + path( + 'seznam_ucastniku', + org_required(views.SoustredeniUcastniciView.as_view()), + name='soustredeni_ucastnici' + ), + path( + 'maily_ucastniku', + org_required(views.SoustredeniMailyUcastnikuView.as_view()), + name='maily_ucastniku' + ), + path( + 'export_ucastniku', + org_required(views.soustredeniUcastniciExportView), + name='soustredeni_ucastnici_export' + ), + path( + 'stvrzenky.pdf', + org_required(views.soustredeniStvrzenkyView), + name='soustredeni_ucastnici_stvrzenky' + ), + path( + 'obalky.pdf', + org_required(views.soustredeniObalkyView), + name='seminar_soustredeni_obalky' + ), + path( + 'fotogalerie/', + include('galerie.urls') + ), + ] + ) + ) ] From 62a65af40ed8954fc1966fc72ca23fe10197d755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 19:29:13 +0200 Subject: [PATCH 170/225] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20zbyte=C4=8Dn?= =?UTF-8?q?=C3=A9ho=20importu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/forms.py | 1 - 1 file changed, 1 deletion(-) diff --git a/galerie/forms.py b/galerie/forms.py index e6666884..2f4e1337 100644 --- a/galerie/forms.py +++ b/galerie/forms.py @@ -1,7 +1,6 @@ #coding: utf-8 from django import forms -from seminar.models import Soustredeni class KomentarForm(forms.Form): komentar = forms.CharField(label = "Komentář:", max_length = 300, required=False) From 27beb3415398779fe2c70e4efd42167d50c4573a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 19:38:06 +0200 Subject: [PATCH 171/225] =?UTF-8?q?Odd=C4=9Blen=C3=AD=20generov=C3=A1n?= =?UTF-8?q?=C3=AD=20testdat=20k=20sous=20v=C4=9Bcem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 52 +++-------------------------------- soustredeni/testutils.py | 59 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 48 deletions(-) create mode 100644 soustredeni/testutils.py diff --git a/seminar/testutils.py b/seminar/testutils.py index 0d90456a..b3888fa9 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -12,13 +12,15 @@ import unidecode import logging from korektury.testutils import create_test_pdf -from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode +from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Osoba, Organizator, Prijemce, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode import seminar.models as m from django.contrib.flatpages.models import FlatPage from django.contrib.sites.models import Site from treenode.treelib import all_children, insert_last_child, all_children_of_type, create_node_after +from soustredeni.testutils import gen_soustredeni, gen_konfery + User = django.contrib.auth.get_user_model() zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu @@ -354,30 +356,6 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) return -def gen_soustredeni(rnd, resitele, organizatori): - logger.info('Generuji soustředění...') - - soustredeni = [] - for _ in range(1, 10): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - datum_zacatku=datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) - working_sous = Soustredeni.objects.create( - rocnik=Rocnik.objects.order_by('?').first(), - verejne_db=rnd.choice([True, False]), - misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), - typ=rnd.choice(['jarni', 'podzimni', 'vikend']), - datum_zacatku=datum_zacatku, - datum_konce=datum_zacatku + datetime.timedelta(days=7)) - ucastnici = rnd.sample(resitele, min(len(resitele), 20)) - working_sous.ucastnici.set(ucastnici) - #for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) - orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) - working_sous.organizatori.set(orgove_vyber) - #for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) - working_sous.save() - soustredeni.append(working_sous) - return soustredeni def gen_rocniky(last_rocnik, size): logger.info('Generuji ročníky (size={})...'.format(size)) @@ -392,28 +370,6 @@ def gen_rocniky(last_rocnik, size): rocniky.append(rocnik) return rocniky -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): - logger.info('Generuji konfery (size={})...'.format(size)) - - konfery = [] - for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, - # kolik dat se nageneruje - konfera = Konfera.objects.create( - nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), - anotace=lorem.paragraph(), - abstrakt=lorem.paragraph(), - garant=rnd.choice(organizatori), - soustredeni=rnd.choice(soustredeni), - typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) - ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) - konfera.ucastnici.set(ucastnici) - #for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) - konfera.save() - konfery.append(konfera) - return konfery def gen_cisla(rnd, rocniky): logger.info('Generuji čísla...') @@ -883,7 +839,7 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) #generování konfer konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py new file mode 100644 index 00000000..12a48378 --- /dev/null +++ b/soustredeni/testutils.py @@ -0,0 +1,59 @@ +import logging +import datetime + +import lorem + +from .models import Soustredeni, Konfera +import seminar.models.tvorba as am + +logger = logging.getLogger(__name__) + + +def gen_soustredeni(size, rnd, resitele, organizatori): + logger.info('Generuji soustředění...') + + soustredeni = [] + for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + datum_zacatku = datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) + working_sous = Soustredeni.objects.create( + rocnik=am.Rocnik.objects.order_by('?').first(), + verejne_db=rnd.choice([True, False]), + misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), + typ=rnd.choice(['jarni', 'podzimni', 'vikend']), + datum_zacatku=datum_zacatku, + datum_konce=datum_zacatku + datetime.timedelta(days=7)) + ucastnici = rnd.sample(resitele, min(len(resitele), 20)) + working_sous.ucastnici.set(ucastnici) + # for res in rnd.sample(resitele, min(len(resitele), 20)): + # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) + orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) + working_sous.organizatori.set(orgove_vyber) + # for org in rnd.sample(organizatori, min(len(organizatori), 20)): + # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) + working_sous.save() + soustredeni.append(working_sous) + return soustredeni + + +def gen_konfery(size, rnd, organizatori, resitele, soustredeni): + logger.info('Generuji konfery (size={})...'.format(size)) + + konfery = [] + for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, + # kolik dat se nageneruje + konfera = Konfera.objects.create( + nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), + anotace=lorem.paragraph(), + abstrakt=lorem.paragraph(), + garant=rnd.choice(organizatori), + soustredeni=rnd.choice(soustredeni), + typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) + ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) + konfera.ucastnici.set(ucastnici) + # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): + # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) + konfera.save() + konfery.append(konfera) + return konfery From a6220e8d50b12d61618f164a9582ac29b3222d02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 20:05:19 +0200 Subject: [PATCH 172/225] =?UTF-8?q?Typov=C3=A9=20anotace=20a=20dal=C5=A1?= =?UTF-8?q?=C3=AD=20detaily=20v=20generov=C3=A1n=C3=AD=20testdat=20k=20sou?= =?UTF-8?q?stredeni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 4 ++-- soustredeni/testutils.py | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index b3888fa9..2de60884 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -839,10 +839,10 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) + konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 12a48378..51bbb135 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -1,16 +1,25 @@ import logging import datetime +import random +from typing import Sequence import lorem from .models import Soustredeni, Konfera import seminar.models.tvorba as am +import personalni.models as pm logger = logging.getLogger(__name__) -def gen_soustredeni(size, rnd, resitele, organizatori): - logger.info('Generuji soustředění...') +def gen_soustredeni( + size: int, + resitele: Sequence[pm.Resitel], + organizatori: Sequence[pm.Organizator], + rnd: random.Random = None, +) -> Sequence[Soustredeni]: + logger.info('Generuji soustředění (size={})...') + rnd = rnd or random.Random(x=42) soustredeni = [] for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) @@ -35,8 +44,15 @@ def gen_soustredeni(size, rnd, resitele, organizatori): return soustredeni -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): +def gen_konfery( + size: int, + organizatori: Sequence[pm.Organizator], + resitele: Sequence[pm.Resitel], + soustredeni: Sequence[Soustredeni], + rnd: random.Random = None, +) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) + rnd = rnd or random.Random(x=42) konfery = [] for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) From b44bdadb0a4060ac61a8b865868efdb28721d208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 20:15:02 +0200 Subject: [PATCH 173/225] =?UTF-8?q?Odstran=C4=9Bn=20zakomentovan=C3=BD=20z?= =?UTF-8?q?byte=C4=8Dn=C4=9B=20slo=C5=BEit=C3=BD=20k=C3=B3d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/testutils.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 51bbb135..6e406530 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -33,12 +33,8 @@ def gen_soustredeni( datum_konce=datum_zacatku + datetime.timedelta(days=7)) ucastnici = rnd.sample(resitele, min(len(resitele), 20)) working_sous.ucastnici.set(ucastnici) - # for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) working_sous.organizatori.set(orgove_vyber) - # for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) working_sous.save() soustredeni.append(working_sous) return soustredeni @@ -68,8 +64,6 @@ def gen_konfery( ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) - # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) konfera.save() konfery.append(konfera) return konfery From ccf3ec07f7865ecace408d4d1ea4f18bb8b980fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 20:17:31 +0200 Subject: [PATCH 174/225] =?UTF-8?q?Generov=C3=A1n=C3=AD=20konfer=20s=20kon?= =?UTF-8?q?kr=C3=A9tn=C3=ADmi=20=C5=99e=C5=A1iteli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 2 +- soustredeni/testutils.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index 2de60884..ea6e0125 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -842,7 +842,7 @@ def create_test_data(size = 6, rnd = None): soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) + konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 6e406530..52e81d1c 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -43,8 +43,8 @@ def gen_soustredeni( def gen_konfery( size: int, organizatori: Sequence[pm.Organizator], - resitele: Sequence[pm.Resitel], soustredeni: Sequence[Soustredeni], + resitele: Sequence[pm.Resitel] = None, rnd: random.Random = None, ) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) @@ -61,7 +61,7 @@ def gen_konfery( garant=rnd.choice(organizatori), soustredeni=rnd.choice(soustredeni), typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici_sous = resitele if resitele else list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) konfera.save() From 4a3681b1a6818171f078e778a398db8a6e16e6bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 20:32:07 +0200 Subject: [PATCH 175/225] Drobnost --- soustredeni/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index 2022adba..a0e3fe13 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -24,7 +24,7 @@ class SoustredeniListView(generic.ListView): if not self.request.user.je_org: return super().get_queryset() return ( - Soustredeni.objects + super().get_queryset() .prefetch_related( "ucastnici", "ucastnici__osoba", "organizatori", "organizatori__osoba", From 2bb732959ac84f41f0c163a4235d24ace5b76b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 10:31:20 +0200 Subject: [PATCH 176/225] =?UTF-8?q?Nepou=C5=BE=C3=ADvan=C3=BD=20k=C3=B3d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/utils.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/seminar/utils.py b/seminar/utils.py index ddce769c..7c009210 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -6,7 +6,6 @@ import decimal from django.contrib.auth import get_user_model from django.contrib.auth.decorators import permission_required, \ user_passes_test -from html.parser import HTMLParser from django import views as DjangoViews from django.db import transaction @@ -55,16 +54,6 @@ def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Dec return round(body * (resitelu + 2) / 3, 1) -class FirstTagParser(HTMLParser): - def __init__(self, *args, **kwargs): - self.firstTag = None - super().__init__(*args, **kwargs) - - def handle_data(self, data): - if self.firstTag == None: - self.firstTag = data - - def histogram(seznam): d = {} for i in seznam: From 350623c6ac33f3ab5c684c9930779644ff29ca19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 10:38:00 +0200 Subject: [PATCH 177/225] =?UTF-8?q?Python=20u=C5=BE=20je=20d=C3=A1vno=20de?= =?UTF-8?q?faultn=C4=9B=20utf-8,=20net=C5=99eba=20deklarace=20na=20za?= =?UTF-8?q?=C4=8D=C3=A1tku=20souboru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/admin.py | 2 -- galerie/autocomplete_light_registry.py.old | 2 -- galerie/forms.py | 2 -- galerie/migrations/0001_initial.py | 1 - galerie/migrations/0002_auto_20151013_1145.py | 1 - galerie/migrations/0003_add_galerie_poradi.py | 1 - galerie/migrations/0004_nepovinna_galerie_u_obrazku.py | 1 - galerie/migrations/0005_obrazek_ordering_datum.py | 1 - galerie/migrations/0006_django_imagekit.py | 1 - galerie/migrations/0007_obrazek_odstranen_datum.py | 1 - galerie/migrations/0008_auto_20190430_2340.py | 1 - galerie/migrations/0009_auto_20190610_2358.py | 1 - galerie/models.py | 2 -- galerie/views.py | 2 -- korektury/migrations/0001_initial.py | 1 - korektury/migrations/0002_auto_20151202_2351.py | 1 - korektury/migrations/0003_auto_20151204_1855.py | 1 - korektury/migrations/0004_auto_20151204_2240.py | 1 - korektury/migrations/0005_auto_20151204_2244.py | 1 - korektury/migrations/0006_oprava_pdf.py | 1 - korektury/migrations/0007_auto_20151225_1237.py | 1 - korektury/migrations/0008_auto_20151229_1556.py | 1 - korektury/migrations/0009_trizeni_korektur_v_seznamu.py | 1 - korektury/migrations/0010_Pridani_odkazu_na_organizatora.py | 1 - .../migrations/0011_prevod_autora_z_charField_na_Organizator.py | 1 - korektury/migrations/0012_delete_autor.py | 1 - korektury/migrations/0013_rename_autor_org.py | 1 - korektury/migrations/0014_add_org_to_pdf.py | 1 - korektury/migrations/0015_auto_20161004_2005.py | 1 - korektury/migrations/0016_auto_20190430_2340.py | 1 - korektury/migrations/0017_auto_20190610_2358.py | 1 - mamweb/settings_prod.py | 2 -- mamweb/settings_test.py | 2 -- personalni/models.py | 1 - prednasky/admin.py | 1 - prednasky/forms.py | 1 - prednasky/migrations/0001_initial.py | 1 - prednasky/migrations/0002_auto_20160417_2347.py | 1 - prednasky/migrations/0003_auto_20160929_0117.py | 1 - prednasky/migrations/0004_remove_prednaska_seznam.py | 1 - prednasky/migrations/0005_auto_20160929_0153.py | 1 - prednasky/migrations/0006_hlasovani_seznam.py | 1 - prednasky/migrations/0007_prednaska_seznamy.py | 1 - prednasky/migrations/0008_auto_20160929_0225.py | 1 - prednasky/migrations/0009_auto_20160929_0354.py | 1 - prednasky/migrations/0010_auto_20160929_0508.py | 1 - prednasky/migrations/0011_auto_20190430_2340.py | 1 - prednasky/migrations/0012_auto_20190610_2358.py | 1 - prednasky/models.py | 2 -- prednasky/views.py | 1 - requirements.txt | 1 - seminar/management/commands/load_org_permissions.py | 2 -- seminar/management/commands/save_org_permissions.py | 2 -- seminar/management/commands/testdata.py | 2 -- seminar/migrations/0001_initial.py | 1 - seminar/migrations/0002_add_body_views.py | 1 - seminar/migrations/0003_add_skola_zs_ss.py | 1 - seminar/migrations/0004_add_old_dakos_id.py | 1 - seminar/migrations/0005_alter_problem_autor.py | 1 - seminar/migrations/0006_problem_add_timestamp.py | 1 - seminar/migrations/0007_problem_zamereni.py | 1 - seminar/migrations/0008_reseni_forma.py | 1 - seminar/migrations/0009_rename_imported_IDs.py | 1 - seminar/migrations/0010_alter_rok_maturity.py | 1 - seminar/migrations/0011_alter_timestamp_def.py | 1 - seminar/migrations/0012_remove_soustredeni_ucastnici.py | 1 - seminar/migrations/0013_soustredeni_ucastnici_through_model.py | 1 - seminar/migrations/0014_uprava_poznamek.py | 1 - seminar/migrations/0015_soustredeni_text.py | 1 - seminar/migrations/0016_texty_problemu.py | 1 - seminar/migrations/0017_texty_problemu_minor.py | 1 - seminar/migrations/0018_problemnavrh_problemzadany.py | 1 - seminar/migrations/0019_rocnik_ciselne.py | 1 - seminar/migrations/0020_indexy_a_razeni.py | 1 - seminar/migrations/0021_cislo_verejna_vysledkovka.py | 1 - seminar/migrations/0022_decimal_body.py | 1 - seminar/migrations/0023_add_novinky.py | 1 - seminar/migrations/0024_add_organizator.py | 1 - seminar/migrations/0025_zmena_cesty_nahravani_obrazku.py | 1 - seminar/migrations/0026_soustredeni_typ.py | 1 - seminar/migrations/0027_export_flag_a_typ_akce.py | 1 - seminar/migrations/0028_add_body_celkem_views.py | 1 - seminar/migrations/0029_fix_body_celkem_views.py | 1 - seminar/migrations/0030_add_vysledky.py | 1 - seminar/migrations/0031_cislo_pdf.py | 1 - seminar/migrations/0032_cislo_pdf_blank_typos.py | 1 - seminar/migrations/0033_organizator_studuje_popisek.py | 1 - seminar/migrations/0034_reseni_forma_default_email.py | 1 - seminar/migrations/0035_django_imagekit.py | 1 - seminar/migrations/0036_add_org_to_soustredeni.py | 1 - seminar/migrations/0037_prispevek.py | 1 - seminar/migrations/0038_change_meta_prispevek.py | 1 - seminar/migrations/0039_pohadka.py | 1 - seminar/migrations/0040_pohadka_nepovinny_autor.py | 1 - seminar/migrations/0041_konfery.py | 1 - seminar/migrations/0042_auto_20161005_0847.py | 1 - seminar/migrations/0042_cislo_faze.py | 1 - seminar/migrations/0043_uprava_faze.py | 1 - seminar/migrations/0044_uprava_faze.py | 1 - seminar/migrations/0045_cislo_pridani_faze_nahrano.py | 1 - seminar/migrations/0046_merge.py | 1 - seminar/migrations/0047_auto_20170120_2118.py | 1 - seminar/migrations/0048_add_cislo_datum_deadline_soustredeni.py | 1 - seminar/migrations/0049_auto_20190430_2354.py | 1 - seminar/migrations/0050_auto_20190510_2228.py | 1 - seminar/migrations/0051_resitel_to_osoba.py | 1 - seminar/migrations/0052_user_to_organizator.py | 1 - seminar/migrations/0053_organizator_organizuje_od_do.py | 1 - seminar/migrations/0055_smazat_nemigrovane_zastarale_veci.py | 1 - seminar/migrations/0056_vrcholy_pro_rocniky_a_cisla.py | 1 - seminar/migrations/0057_reseni_to_reseni_hodnoceni.py | 1 - seminar/migrations/0058_problem_to_uloha_tema_clanek.py | 1 - seminar/migrations/0059_vytvorit_pohadkanode.py | 1 - seminar/migrations/0060_spoj_stromy.py | 1 - seminar/migrations/0061_kill_frankenstein.py | 1 - seminar/migrations/0062_redukce_modelu_pohadky.py | 1 - seminar/migrations/0063_procisteni_migraci.py | 1 - seminar/migrations/0064_auto_20190610_2358.py | 1 - seminar/models/pomocne.py | 1 - seminar/models/treenode.py | 1 - seminar/models/tvorba.py | 1 - seminar/testutils.py | 2 -- seminar/utils.py | 2 -- soustredeni/models.py | 1 - 124 files changed, 137 deletions(-) diff --git a/galerie/admin.py b/galerie/admin.py index 54b0751e..2b270163 100644 --- a/galerie/admin.py +++ b/galerie/admin.py @@ -1,5 +1,3 @@ -#coding: utf-8 - from galerie.models import Obrazek, Galerie from django.contrib import admin from django.http import HttpResponseRedirect diff --git a/galerie/autocomplete_light_registry.py.old b/galerie/autocomplete_light_registry.py.old index dcedfc1a..8a0c5952 100644 --- a/galerie/autocomplete_light_registry.py.old +++ b/galerie/autocomplete_light_registry.py.old @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from autocomplete_light import shortcuts as autocomplete_light from .models import Obrazek, Galerie diff --git a/galerie/forms.py b/galerie/forms.py index e6666884..e27b53fb 100644 --- a/galerie/forms.py +++ b/galerie/forms.py @@ -1,5 +1,3 @@ -#coding: utf-8 - from django import forms from seminar.models import Soustredeni diff --git a/galerie/migrations/0001_initial.py b/galerie/migrations/0001_initial.py index 21701185..9e65fe22 100644 --- a/galerie/migrations/0001_initial.py +++ b/galerie/migrations/0001_initial.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/galerie/migrations/0002_auto_20151013_1145.py b/galerie/migrations/0002_auto_20151013_1145.py index ea241267..5ec830a6 100644 --- a/galerie/migrations/0002_auto_20151013_1145.py +++ b/galerie/migrations/0002_auto_20151013_1145.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/galerie/migrations/0003_add_galerie_poradi.py b/galerie/migrations/0003_add_galerie_poradi.py index d9b32f48..a8abf94d 100644 --- a/galerie/migrations/0003_add_galerie_poradi.py +++ b/galerie/migrations/0003_add_galerie_poradi.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/galerie/migrations/0004_nepovinna_galerie_u_obrazku.py b/galerie/migrations/0004_nepovinna_galerie_u_obrazku.py index 53e17922..a2b593b1 100644 --- a/galerie/migrations/0004_nepovinna_galerie_u_obrazku.py +++ b/galerie/migrations/0004_nepovinna_galerie_u_obrazku.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/galerie/migrations/0005_obrazek_ordering_datum.py b/galerie/migrations/0005_obrazek_ordering_datum.py index 988e0fd4..cc6f2948 100644 --- a/galerie/migrations/0005_obrazek_ordering_datum.py +++ b/galerie/migrations/0005_obrazek_ordering_datum.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/galerie/migrations/0006_django_imagekit.py b/galerie/migrations/0006_django_imagekit.py index 6b90b791..b38caae3 100644 --- a/galerie/migrations/0006_django_imagekit.py +++ b/galerie/migrations/0006_django_imagekit.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/galerie/migrations/0007_obrazek_odstranen_datum.py b/galerie/migrations/0007_obrazek_odstranen_datum.py index 94c3596b..9ee8ac46 100644 --- a/galerie/migrations/0007_obrazek_odstranen_datum.py +++ b/galerie/migrations/0007_obrazek_odstranen_datum.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/galerie/migrations/0008_auto_20190430_2340.py b/galerie/migrations/0008_auto_20190430_2340.py index 140d554a..df70a161 100644 --- a/galerie/migrations/0008_auto_20190430_2340.py +++ b/galerie/migrations/0008_auto_20190430_2340.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-04-30 21:40 from __future__ import unicode_literals diff --git a/galerie/migrations/0009_auto_20190610_2358.py b/galerie/migrations/0009_auto_20190610_2358.py index 0228a8a7..513ee1de 100644 --- a/galerie/migrations/0009_auto_20190610_2358.py +++ b/galerie/migrations/0009_auto_20190610_2358.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.21 on 2019-06-10 21:58 from __future__ import unicode_literals diff --git a/galerie/models.py b/galerie/models.py index 96225101..074b0d26 100644 --- a/galerie/models.py +++ b/galerie/models.py @@ -1,5 +1,3 @@ -# coding: utf-8 - from django.db import models #from django.db.models import Q from imagekit.models import ImageSpecField diff --git a/galerie/views.py b/galerie/views.py index f0d9b53b..872bb46e 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -1,5 +1,3 @@ -# coding: utf-8 - import random from django.http import HttpResponse, Http404 diff --git a/korektury/migrations/0001_initial.py b/korektury/migrations/0001_initial.py index e9a89d18..37c2d18e 100644 --- a/korektury/migrations/0001_initial.py +++ b/korektury/migrations/0001_initial.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0002_auto_20151202_2351.py b/korektury/migrations/0002_auto_20151202_2351.py index 2e7a8032..ed17b81c 100644 --- a/korektury/migrations/0002_auto_20151202_2351.py +++ b/korektury/migrations/0002_auto_20151202_2351.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0003_auto_20151204_1855.py b/korektury/migrations/0003_auto_20151204_1855.py index 8f8cb70b..f08d8ece 100644 --- a/korektury/migrations/0003_auto_20151204_1855.py +++ b/korektury/migrations/0003_auto_20151204_1855.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0004_auto_20151204_2240.py b/korektury/migrations/0004_auto_20151204_2240.py index ed47ccaf..18413ce0 100644 --- a/korektury/migrations/0004_auto_20151204_2240.py +++ b/korektury/migrations/0004_auto_20151204_2240.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0005_auto_20151204_2244.py b/korektury/migrations/0005_auto_20151204_2244.py index 52ebdfb6..7047a49c 100644 --- a/korektury/migrations/0005_auto_20151204_2244.py +++ b/korektury/migrations/0005_auto_20151204_2244.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0006_oprava_pdf.py b/korektury/migrations/0006_oprava_pdf.py index e8f81884..988388b2 100644 --- a/korektury/migrations/0006_oprava_pdf.py +++ b/korektury/migrations/0006_oprava_pdf.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0007_auto_20151225_1237.py b/korektury/migrations/0007_auto_20151225_1237.py index 805e3510..6f6436d5 100644 --- a/korektury/migrations/0007_auto_20151225_1237.py +++ b/korektury/migrations/0007_auto_20151225_1237.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0008_auto_20151229_1556.py b/korektury/migrations/0008_auto_20151229_1556.py index 50e28379..253fe64d 100644 --- a/korektury/migrations/0008_auto_20151229_1556.py +++ b/korektury/migrations/0008_auto_20151229_1556.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/korektury/migrations/0009_trizeni_korektur_v_seznamu.py b/korektury/migrations/0009_trizeni_korektur_v_seznamu.py index c4099dce..8fde3a28 100644 --- a/korektury/migrations/0009_trizeni_korektur_v_seznamu.py +++ b/korektury/migrations/0009_trizeni_korektur_v_seznamu.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/korektury/migrations/0010_Pridani_odkazu_na_organizatora.py b/korektury/migrations/0010_Pridani_odkazu_na_organizatora.py index 6b318cab..445496ee 100644 --- a/korektury/migrations/0010_Pridani_odkazu_na_organizatora.py +++ b/korektury/migrations/0010_Pridani_odkazu_na_organizatora.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/korektury/migrations/0011_prevod_autora_z_charField_na_Organizator.py b/korektury/migrations/0011_prevod_autora_z_charField_na_Organizator.py index 53082df9..30d40ef5 100644 --- a/korektury/migrations/0011_prevod_autora_z_charField_na_Organizator.py +++ b/korektury/migrations/0011_prevod_autora_z_charField_na_Organizator.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/korektury/migrations/0012_delete_autor.py b/korektury/migrations/0012_delete_autor.py index 4f41a955..ad542e18 100644 --- a/korektury/migrations/0012_delete_autor.py +++ b/korektury/migrations/0012_delete_autor.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/korektury/migrations/0013_rename_autor_org.py b/korektury/migrations/0013_rename_autor_org.py index db0d3151..99d1b3f4 100644 --- a/korektury/migrations/0013_rename_autor_org.py +++ b/korektury/migrations/0013_rename_autor_org.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/korektury/migrations/0014_add_org_to_pdf.py b/korektury/migrations/0014_add_org_to_pdf.py index afd939ba..d497ea16 100644 --- a/korektury/migrations/0014_add_org_to_pdf.py +++ b/korektury/migrations/0014_add_org_to_pdf.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/korektury/migrations/0015_auto_20161004_2005.py b/korektury/migrations/0015_auto_20161004_2005.py index 36be10df..d4659ffc 100644 --- a/korektury/migrations/0015_auto_20161004_2005.py +++ b/korektury/migrations/0015_auto_20161004_2005.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/korektury/migrations/0016_auto_20190430_2340.py b/korektury/migrations/0016_auto_20190430_2340.py index f14bce2b..7c264485 100644 --- a/korektury/migrations/0016_auto_20190430_2340.py +++ b/korektury/migrations/0016_auto_20190430_2340.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-04-30 21:40 from __future__ import unicode_literals diff --git a/korektury/migrations/0017_auto_20190610_2358.py b/korektury/migrations/0017_auto_20190610_2358.py index 111f2f8f..a135a020 100644 --- a/korektury/migrations/0017_auto_20190610_2358.py +++ b/korektury/migrations/0017_auto_20190610_2358.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.21 on 2019-06-10 21:58 from __future__ import unicode_literals diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index 060ba870..7d9c99e9 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os.path # diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index dc5beee8..83c08b92 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os.path # diff --git a/personalni/models.py b/personalni/models.py index d7beb22a..8f6cd63f 100644 --- a/personalni/models.py +++ b/personalni/models.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- import logging from django.db import models diff --git a/prednasky/admin.py b/prednasky/admin.py index c9807b27..d086cd0c 100644 --- a/prednasky/admin.py +++ b/prednasky/admin.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from django.contrib import admin from django.contrib import messages from reversion.admin import VersionAdmin diff --git a/prednasky/forms.py b/prednasky/forms.py index 071d068e..f095a64e 100644 --- a/prednasky/forms.py +++ b/prednasky/forms.py @@ -1,4 +1,3 @@ -# coding: utf-8 from django import forms class NewPrednaskyForm(forms.Form): diff --git a/prednasky/migrations/0001_initial.py b/prednasky/migrations/0001_initial.py index 07da4a4e..06db1d7b 100644 --- a/prednasky/migrations/0001_initial.py +++ b/prednasky/migrations/0001_initial.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0002_auto_20160417_2347.py b/prednasky/migrations/0002_auto_20160417_2347.py index aa09d465..10e5d24c 100644 --- a/prednasky/migrations/0002_auto_20160417_2347.py +++ b/prednasky/migrations/0002_auto_20160417_2347.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0003_auto_20160929_0117.py b/prednasky/migrations/0003_auto_20160929_0117.py index 606d6cf7..3c6929fa 100644 --- a/prednasky/migrations/0003_auto_20160929_0117.py +++ b/prednasky/migrations/0003_auto_20160929_0117.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0004_remove_prednaska_seznam.py b/prednasky/migrations/0004_remove_prednaska_seznam.py index d149199f..4eee9c42 100644 --- a/prednasky/migrations/0004_remove_prednaska_seznam.py +++ b/prednasky/migrations/0004_remove_prednaska_seznam.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0005_auto_20160929_0153.py b/prednasky/migrations/0005_auto_20160929_0153.py index 7ecff0a0..b7aa5814 100644 --- a/prednasky/migrations/0005_auto_20160929_0153.py +++ b/prednasky/migrations/0005_auto_20160929_0153.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0006_hlasovani_seznam.py b/prednasky/migrations/0006_hlasovani_seznam.py index e1b7bd8f..05f9acc3 100644 --- a/prednasky/migrations/0006_hlasovani_seznam.py +++ b/prednasky/migrations/0006_hlasovani_seznam.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0007_prednaska_seznamy.py b/prednasky/migrations/0007_prednaska_seznamy.py index 8f054e17..335cceef 100644 --- a/prednasky/migrations/0007_prednaska_seznamy.py +++ b/prednasky/migrations/0007_prednaska_seznamy.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0008_auto_20160929_0225.py b/prednasky/migrations/0008_auto_20160929_0225.py index a5bbb92e..054ad059 100644 --- a/prednasky/migrations/0008_auto_20160929_0225.py +++ b/prednasky/migrations/0008_auto_20160929_0225.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0009_auto_20160929_0354.py b/prednasky/migrations/0009_auto_20160929_0354.py index 6b4f9486..5b5bb54f 100644 --- a/prednasky/migrations/0009_auto_20160929_0354.py +++ b/prednasky/migrations/0009_auto_20160929_0354.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0010_auto_20160929_0508.py b/prednasky/migrations/0010_auto_20160929_0508.py index b654e23f..30a33395 100644 --- a/prednasky/migrations/0010_auto_20160929_0508.py +++ b/prednasky/migrations/0010_auto_20160929_0508.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/prednasky/migrations/0011_auto_20190430_2340.py b/prednasky/migrations/0011_auto_20190430_2340.py index a01d1878..dc081254 100644 --- a/prednasky/migrations/0011_auto_20190430_2340.py +++ b/prednasky/migrations/0011_auto_20190430_2340.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-04-30 21:40 from __future__ import unicode_literals diff --git a/prednasky/migrations/0012_auto_20190610_2358.py b/prednasky/migrations/0012_auto_20190610_2358.py index 1ca6db83..f6551d8a 100644 --- a/prednasky/migrations/0012_auto_20190610_2358.py +++ b/prednasky/migrations/0012_auto_20190610_2358.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.21 on 2019-06-10 21:58 from __future__ import unicode_literals diff --git a/prednasky/models.py b/prednasky/models.py index 54764381..74b37403 100644 --- a/prednasky/models.py +++ b/prednasky/models.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from django.db import models from soustredeni.models import Soustredeni diff --git a/prednasky/views.py b/prednasky/views.py index 2c370b7a..699b690d 100644 --- a/prednasky/views.py +++ b/prednasky/views.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from django.shortcuts import render, get_object_or_404 from django.views import generic from django.shortcuts import HttpResponseRedirect diff --git a/requirements.txt b/requirements.txt index 4a7163d3..6855e0ae 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- -c constraints.txt # basic libs diff --git a/seminar/management/commands/load_org_permissions.py b/seminar/management/commands/load_org_permissions.py index c1e4a106..6b4f9e0a 100644 --- a/seminar/management/commands/load_org_permissions.py +++ b/seminar/management/commands/load_org_permissions.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from django.core.management.base import BaseCommand from django.contrib.sessions.models import Session from django.contrib.auth.models import Group, Permission diff --git a/seminar/management/commands/save_org_permissions.py b/seminar/management/commands/save_org_permissions.py index a6814e6f..216f9e4b 100644 --- a/seminar/management/commands/save_org_permissions.py +++ b/seminar/management/commands/save_org_permissions.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from django.core.management.base import BaseCommand from django.contrib.sessions.models import Session from django.contrib.auth.models import Group, Permission diff --git a/seminar/management/commands/testdata.py b/seminar/management/commands/testdata.py index dbbd908d..d9ce8cfb 100644 --- a/seminar/management/commands/testdata.py +++ b/seminar/management/commands/testdata.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import datetime import os import random diff --git a/seminar/migrations/0001_initial.py b/seminar/migrations/0001_initial.py index 088193b3..cd36a7dc 100644 --- a/seminar/migrations/0001_initial.py +++ b/seminar/migrations/0001_initial.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0002_add_body_views.py b/seminar/migrations/0002_add_body_views.py index 3d128ab9..1ece029e 100644 --- a/seminar/migrations/0002_add_body_views.py +++ b/seminar/migrations/0002_add_body_views.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0003_add_skola_zs_ss.py b/seminar/migrations/0003_add_skola_zs_ss.py index 1b1fbb80..478e49d3 100644 --- a/seminar/migrations/0003_add_skola_zs_ss.py +++ b/seminar/migrations/0003_add_skola_zs_ss.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0004_add_old_dakos_id.py b/seminar/migrations/0004_add_old_dakos_id.py index 1ec28943..769232cb 100644 --- a/seminar/migrations/0004_add_old_dakos_id.py +++ b/seminar/migrations/0004_add_old_dakos_id.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0005_alter_problem_autor.py b/seminar/migrations/0005_alter_problem_autor.py index d8a40585..d7763ecc 100644 --- a/seminar/migrations/0005_alter_problem_autor.py +++ b/seminar/migrations/0005_alter_problem_autor.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0006_problem_add_timestamp.py b/seminar/migrations/0006_problem_add_timestamp.py index fd1509de..dd5fd94c 100644 --- a/seminar/migrations/0006_problem_add_timestamp.py +++ b/seminar/migrations/0006_problem_add_timestamp.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0007_problem_zamereni.py b/seminar/migrations/0007_problem_zamereni.py index 10718bd7..d1363cde 100644 --- a/seminar/migrations/0007_problem_zamereni.py +++ b/seminar/migrations/0007_problem_zamereni.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0008_reseni_forma.py b/seminar/migrations/0008_reseni_forma.py index 399e81a9..22b36d43 100644 --- a/seminar/migrations/0008_reseni_forma.py +++ b/seminar/migrations/0008_reseni_forma.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0009_rename_imported_IDs.py b/seminar/migrations/0009_rename_imported_IDs.py index 997bc0ac..06eaf074 100644 --- a/seminar/migrations/0009_rename_imported_IDs.py +++ b/seminar/migrations/0009_rename_imported_IDs.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0010_alter_rok_maturity.py b/seminar/migrations/0010_alter_rok_maturity.py index 58c099fb..bfae4d5f 100644 --- a/seminar/migrations/0010_alter_rok_maturity.py +++ b/seminar/migrations/0010_alter_rok_maturity.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0011_alter_timestamp_def.py b/seminar/migrations/0011_alter_timestamp_def.py index 238386a6..90582816 100644 --- a/seminar/migrations/0011_alter_timestamp_def.py +++ b/seminar/migrations/0011_alter_timestamp_def.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0012_remove_soustredeni_ucastnici.py b/seminar/migrations/0012_remove_soustredeni_ucastnici.py index ddb61304..2011659c 100644 --- a/seminar/migrations/0012_remove_soustredeni_ucastnici.py +++ b/seminar/migrations/0012_remove_soustredeni_ucastnici.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0013_soustredeni_ucastnici_through_model.py b/seminar/migrations/0013_soustredeni_ucastnici_through_model.py index c725691d..944ae080 100644 --- a/seminar/migrations/0013_soustredeni_ucastnici_through_model.py +++ b/seminar/migrations/0013_soustredeni_ucastnici_through_model.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0014_uprava_poznamek.py b/seminar/migrations/0014_uprava_poznamek.py index 0eb34984..ee52c65b 100644 --- a/seminar/migrations/0014_uprava_poznamek.py +++ b/seminar/migrations/0014_uprava_poznamek.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0015_soustredeni_text.py b/seminar/migrations/0015_soustredeni_text.py index 87298eba..4f9ebd88 100644 --- a/seminar/migrations/0015_soustredeni_text.py +++ b/seminar/migrations/0015_soustredeni_text.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0016_texty_problemu.py b/seminar/migrations/0016_texty_problemu.py index 451c888e..0e91f010 100644 --- a/seminar/migrations/0016_texty_problemu.py +++ b/seminar/migrations/0016_texty_problemu.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0017_texty_problemu_minor.py b/seminar/migrations/0017_texty_problemu_minor.py index f732c111..cd3f2a1c 100644 --- a/seminar/migrations/0017_texty_problemu_minor.py +++ b/seminar/migrations/0017_texty_problemu_minor.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0018_problemnavrh_problemzadany.py b/seminar/migrations/0018_problemnavrh_problemzadany.py index afdcfa8c..42c448f9 100644 --- a/seminar/migrations/0018_problemnavrh_problemzadany.py +++ b/seminar/migrations/0018_problemnavrh_problemzadany.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0019_rocnik_ciselne.py b/seminar/migrations/0019_rocnik_ciselne.py index da9591aa..72055d18 100644 --- a/seminar/migrations/0019_rocnik_ciselne.py +++ b/seminar/migrations/0019_rocnik_ciselne.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0020_indexy_a_razeni.py b/seminar/migrations/0020_indexy_a_razeni.py index 1e199f0e..59674291 100644 --- a/seminar/migrations/0020_indexy_a_razeni.py +++ b/seminar/migrations/0020_indexy_a_razeni.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0021_cislo_verejna_vysledkovka.py b/seminar/migrations/0021_cislo_verejna_vysledkovka.py index d4d34c7f..19768357 100644 --- a/seminar/migrations/0021_cislo_verejna_vysledkovka.py +++ b/seminar/migrations/0021_cislo_verejna_vysledkovka.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0022_decimal_body.py b/seminar/migrations/0022_decimal_body.py index ff92fcde..22acbf99 100644 --- a/seminar/migrations/0022_decimal_body.py +++ b/seminar/migrations/0022_decimal_body.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals import importlib diff --git a/seminar/migrations/0023_add_novinky.py b/seminar/migrations/0023_add_novinky.py index 7db2a005..6e5db0c4 100644 --- a/seminar/migrations/0023_add_novinky.py +++ b/seminar/migrations/0023_add_novinky.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0024_add_organizator.py b/seminar/migrations/0024_add_organizator.py index 16faee72..4ce7a5e3 100644 --- a/seminar/migrations/0024_add_organizator.py +++ b/seminar/migrations/0024_add_organizator.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0025_zmena_cesty_nahravani_obrazku.py b/seminar/migrations/0025_zmena_cesty_nahravani_obrazku.py index 23e02c95..0d1ee7b4 100644 --- a/seminar/migrations/0025_zmena_cesty_nahravani_obrazku.py +++ b/seminar/migrations/0025_zmena_cesty_nahravani_obrazku.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0026_soustredeni_typ.py b/seminar/migrations/0026_soustredeni_typ.py index 46d3416f..3c97c387 100644 --- a/seminar/migrations/0026_soustredeni_typ.py +++ b/seminar/migrations/0026_soustredeni_typ.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0027_export_flag_a_typ_akce.py b/seminar/migrations/0027_export_flag_a_typ_akce.py index e7172dcc..e6616f36 100644 --- a/seminar/migrations/0027_export_flag_a_typ_akce.py +++ b/seminar/migrations/0027_export_flag_a_typ_akce.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0028_add_body_celkem_views.py b/seminar/migrations/0028_add_body_celkem_views.py index 0f6799f0..c26baec2 100644 --- a/seminar/migrations/0028_add_body_celkem_views.py +++ b/seminar/migrations/0028_add_body_celkem_views.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0029_fix_body_celkem_views.py b/seminar/migrations/0029_fix_body_celkem_views.py index 5e287747..b2b9f24a 100644 --- a/seminar/migrations/0029_fix_body_celkem_views.py +++ b/seminar/migrations/0029_fix_body_celkem_views.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0030_add_vysledky.py b/seminar/migrations/0030_add_vysledky.py index 06842c6b..65289e23 100644 --- a/seminar/migrations/0030_add_vysledky.py +++ b/seminar/migrations/0030_add_vysledky.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0031_cislo_pdf.py b/seminar/migrations/0031_cislo_pdf.py index c51570bf..b2b65102 100644 --- a/seminar/migrations/0031_cislo_pdf.py +++ b/seminar/migrations/0031_cislo_pdf.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0032_cislo_pdf_blank_typos.py b/seminar/migrations/0032_cislo_pdf_blank_typos.py index b16c4501..b72ad75d 100644 --- a/seminar/migrations/0032_cislo_pdf_blank_typos.py +++ b/seminar/migrations/0032_cislo_pdf_blank_typos.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0033_organizator_studuje_popisek.py b/seminar/migrations/0033_organizator_studuje_popisek.py index 07f15712..cc9f7e63 100644 --- a/seminar/migrations/0033_organizator_studuje_popisek.py +++ b/seminar/migrations/0033_organizator_studuje_popisek.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0034_reseni_forma_default_email.py b/seminar/migrations/0034_reseni_forma_default_email.py index 2d691b30..6cbe180c 100644 --- a/seminar/migrations/0034_reseni_forma_default_email.py +++ b/seminar/migrations/0034_reseni_forma_default_email.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0035_django_imagekit.py b/seminar/migrations/0035_django_imagekit.py index dd443018..ba18c7cc 100644 --- a/seminar/migrations/0035_django_imagekit.py +++ b/seminar/migrations/0035_django_imagekit.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0036_add_org_to_soustredeni.py b/seminar/migrations/0036_add_org_to_soustredeni.py index 4db43239..357cdf7b 100644 --- a/seminar/migrations/0036_add_org_to_soustredeni.py +++ b/seminar/migrations/0036_add_org_to_soustredeni.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations diff --git a/seminar/migrations/0037_prispevek.py b/seminar/migrations/0037_prispevek.py index c4c3b867..cb32f983 100644 --- a/seminar/migrations/0037_prispevek.py +++ b/seminar/migrations/0037_prispevek.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0038_change_meta_prispevek.py b/seminar/migrations/0038_change_meta_prispevek.py index 5378e57e..80a2bef5 100644 --- a/seminar/migrations/0038_change_meta_prispevek.py +++ b/seminar/migrations/0038_change_meta_prispevek.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0039_pohadka.py b/seminar/migrations/0039_pohadka.py index f798bd75..4636accc 100644 --- a/seminar/migrations/0039_pohadka.py +++ b/seminar/migrations/0039_pohadka.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0040_pohadka_nepovinny_autor.py b/seminar/migrations/0040_pohadka_nepovinny_autor.py index babf9b24..5be7ac80 100644 --- a/seminar/migrations/0040_pohadka_nepovinny_autor.py +++ b/seminar/migrations/0040_pohadka_nepovinny_autor.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0041_konfery.py b/seminar/migrations/0041_konfery.py index 9fddbe17..bb040465 100644 --- a/seminar/migrations/0041_konfery.py +++ b/seminar/migrations/0041_konfery.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0042_auto_20161005_0847.py b/seminar/migrations/0042_auto_20161005_0847.py index 27930952..e606e325 100644 --- a/seminar/migrations/0042_auto_20161005_0847.py +++ b/seminar/migrations/0042_auto_20161005_0847.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0042_cislo_faze.py b/seminar/migrations/0042_cislo_faze.py index 7d35ace5..0685e932 100644 --- a/seminar/migrations/0042_cislo_faze.py +++ b/seminar/migrations/0042_cislo_faze.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0043_uprava_faze.py b/seminar/migrations/0043_uprava_faze.py index 29e06e01..aff30bc3 100644 --- a/seminar/migrations/0043_uprava_faze.py +++ b/seminar/migrations/0043_uprava_faze.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0044_uprava_faze.py b/seminar/migrations/0044_uprava_faze.py index 0d683d6c..e05d56a8 100644 --- a/seminar/migrations/0044_uprava_faze.py +++ b/seminar/migrations/0044_uprava_faze.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0045_cislo_pridani_faze_nahrano.py b/seminar/migrations/0045_cislo_pridani_faze_nahrano.py index 06ca8201..a48db840 100644 --- a/seminar/migrations/0045_cislo_pridani_faze_nahrano.py +++ b/seminar/migrations/0045_cislo_pridani_faze_nahrano.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0046_merge.py b/seminar/migrations/0046_merge.py index 19352440..46496f5c 100644 --- a/seminar/migrations/0046_merge.py +++ b/seminar/migrations/0046_merge.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0047_auto_20170120_2118.py b/seminar/migrations/0047_auto_20170120_2118.py index 1876fe25..4486d786 100644 --- a/seminar/migrations/0047_auto_20170120_2118.py +++ b/seminar/migrations/0047_auto_20170120_2118.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0048_add_cislo_datum_deadline_soustredeni.py b/seminar/migrations/0048_add_cislo_datum_deadline_soustredeni.py index 134a00a8..71df4284 100644 --- a/seminar/migrations/0048_add_cislo_datum_deadline_soustredeni.py +++ b/seminar/migrations/0048_add_cislo_datum_deadline_soustredeni.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations, models diff --git a/seminar/migrations/0049_auto_20190430_2354.py b/seminar/migrations/0049_auto_20190430_2354.py index 14fa23d8..3fb7c437 100644 --- a/seminar/migrations/0049_auto_20190430_2354.py +++ b/seminar/migrations/0049_auto_20190430_2354.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-04-30 21:54 from __future__ import unicode_literals diff --git a/seminar/migrations/0050_auto_20190510_2228.py b/seminar/migrations/0050_auto_20190510_2228.py index a9afc764..86f2639b 100644 --- a/seminar/migrations/0050_auto_20190510_2228.py +++ b/seminar/migrations/0050_auto_20190510_2228.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-10 20:28 from __future__ import unicode_literals diff --git a/seminar/migrations/0051_resitel_to_osoba.py b/seminar/migrations/0051_resitel_to_osoba.py index 6644ab7d..81eab2d5 100644 --- a/seminar/migrations/0051_resitel_to_osoba.py +++ b/seminar/migrations/0051_resitel_to_osoba.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-10 20:44 from __future__ import unicode_literals diff --git a/seminar/migrations/0052_user_to_organizator.py b/seminar/migrations/0052_user_to_organizator.py index a91a7966..0577a0e0 100644 --- a/seminar/migrations/0052_user_to_organizator.py +++ b/seminar/migrations/0052_user_to_organizator.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.15 on 2019-05-16 20:59 from __future__ import unicode_literals diff --git a/seminar/migrations/0053_organizator_organizuje_od_do.py b/seminar/migrations/0053_organizator_organizuje_od_do.py index b94e8032..b46b93de 100644 --- a/seminar/migrations/0053_organizator_organizuje_od_do.py +++ b/seminar/migrations/0053_organizator_organizuje_od_do.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-16 21:26 from __future__ import unicode_literals diff --git a/seminar/migrations/0055_smazat_nemigrovane_zastarale_veci.py b/seminar/migrations/0055_smazat_nemigrovane_zastarale_veci.py index 1b6f95f4..66eae38c 100644 --- a/seminar/migrations/0055_smazat_nemigrovane_zastarale_veci.py +++ b/seminar/migrations/0055_smazat_nemigrovane_zastarale_veci.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-23 20:16 from __future__ import unicode_literals diff --git a/seminar/migrations/0056_vrcholy_pro_rocniky_a_cisla.py b/seminar/migrations/0056_vrcholy_pro_rocniky_a_cisla.py index 56146261..4c755c48 100644 --- a/seminar/migrations/0056_vrcholy_pro_rocniky_a_cisla.py +++ b/seminar/migrations/0056_vrcholy_pro_rocniky_a_cisla.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-23 21:54 from __future__ import unicode_literals diff --git a/seminar/migrations/0057_reseni_to_reseni_hodnoceni.py b/seminar/migrations/0057_reseni_to_reseni_hodnoceni.py index a11d99ae..9e162b94 100644 --- a/seminar/migrations/0057_reseni_to_reseni_hodnoceni.py +++ b/seminar/migrations/0057_reseni_to_reseni_hodnoceni.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-28 21:46 from __future__ import unicode_literals diff --git a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py index 4ef135c4..f8fbc87b 100644 --- a/seminar/migrations/0058_problem_to_uloha_tema_clanek.py +++ b/seminar/migrations/0058_problem_to_uloha_tema_clanek.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-17 17:44 from __future__ import unicode_literals diff --git a/seminar/migrations/0059_vytvorit_pohadkanode.py b/seminar/migrations/0059_vytvorit_pohadkanode.py index 2a78c7ee..8aca874b 100644 --- a/seminar/migrations/0059_vytvorit_pohadkanode.py +++ b/seminar/migrations/0059_vytvorit_pohadkanode.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-29 03:26 from __future__ import unicode_literals diff --git a/seminar/migrations/0060_spoj_stromy.py b/seminar/migrations/0060_spoj_stromy.py index d0826ca1..6bf74f28 100644 --- a/seminar/migrations/0060_spoj_stromy.py +++ b/seminar/migrations/0060_spoj_stromy.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-29 03:26 from __future__ import unicode_literals diff --git a/seminar/migrations/0061_kill_frankenstein.py b/seminar/migrations/0061_kill_frankenstein.py index 0a367edf..80cde7a1 100644 --- a/seminar/migrations/0061_kill_frankenstein.py +++ b/seminar/migrations/0061_kill_frankenstein.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-29 03:29 from __future__ import unicode_literals diff --git a/seminar/migrations/0062_redukce_modelu_pohadky.py b/seminar/migrations/0062_redukce_modelu_pohadky.py index b4e5f11e..80bf280e 100644 --- a/seminar/migrations/0062_redukce_modelu_pohadky.py +++ b/seminar/migrations/0062_redukce_modelu_pohadky.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-30 01:16 from __future__ import unicode_literals diff --git a/seminar/migrations/0063_procisteni_migraci.py b/seminar/migrations/0063_procisteni_migraci.py index 3dce57ad..52f84179 100644 --- a/seminar/migrations/0063_procisteni_migraci.py +++ b/seminar/migrations/0063_procisteni_migraci.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.20 on 2019-05-30 01:32 from __future__ import unicode_literals diff --git a/seminar/migrations/0064_auto_20190610_2358.py b/seminar/migrations/0064_auto_20190610_2358.py index 78e62862..8f1a90f4 100644 --- a/seminar/migrations/0064_auto_20190610_2358.py +++ b/seminar/migrations/0064_auto_20190610_2358.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.21 on 2019-06-10 21:58 from __future__ import unicode_literals diff --git a/seminar/models/pomocne.py b/seminar/models/pomocne.py index cb552a67..9fc6b7cd 100644 --- a/seminar/models/pomocne.py +++ b/seminar/models/pomocne.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- import logging import os from django.db import models diff --git a/seminar/models/treenode.py b/seminar/models/treenode.py index 735501c0..abc20eab 100644 --- a/seminar/models/treenode.py +++ b/seminar/models/treenode.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- import logging from django.db import models diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 4ef57bde..209008f5 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- import datetime import os import subprocess diff --git a/seminar/testutils.py b/seminar/testutils.py index 0d90456a..be7f3677 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import datetime from django.contrib.auth.models import Permission diff --git a/seminar/utils.py b/seminar/utils.py index 7c009210..c826bf0b 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import datetime import decimal diff --git a/soustredeni/models.py b/soustredeni/models.py index 78582565..518b3291 100644 --- a/soustredeni/models.py +++ b/soustredeni/models.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- import logging import os From 75344c2c3a23e499517f39d769db0ed4aca57858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 10:39:31 +0200 Subject: [PATCH 178/225] Kontroly codestylu nechceme --- _git_hooks/README.md | 16 ------------ _git_hooks/pre-commit | 30 --------------------- _git_hooks/update | 61 ------------------------------------------- 3 files changed, 107 deletions(-) delete mode 100644 _git_hooks/README.md delete mode 100755 _git_hooks/pre-commit delete mode 100755 _git_hooks/update diff --git a/_git_hooks/README.md b/_git_hooks/README.md deleted file mode 100644 index e74e5c53..00000000 --- a/_git_hooks/README.md +++ /dev/null @@ -1,16 +0,0 @@ -git hooks -========= - -Kontrola stylu pythoních zdrojáků pomocí flake8. Kontrolujeme jen změny, -abychom nenutili lidi dělat nesouvisející úpravy, které by rozbíjely historii -(git blame). - -pre-commit ----------- -* kontrola změn před commitnutím -* instalace: lokálně zkopírovat do .git/hooks (musí být spustitelný) - -update ------- -* kontrola změn přicházejících s pushem -* instalace: na atreyi zkopírovat do /akce/MaM/MaMweb/mamweb.git/hooks diff --git a/_git_hooks/pre-commit b/_git_hooks/pre-commit deleted file mode 100755 index f78840d4..00000000 --- a/_git_hooks/pre-commit +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# Git hook script to verify what is about to be committed. -# Checks that the changes don't introduce new flake8 errors. - -TMPDIFF=`tempfile` -FLAKE8="`git rev-parse --show-toplevel`/bin/flake8" - -status=0 - -# select only changed python files which are not migrations -changed=`git diff --cached --name-only | grep 'py$' | grep -v 'migrations/[0-9]'` -if [ -z $changed ] ; then - # Nothing to check. Note the exit is necessary -- we would not pass any - # paths to git diff below and it would output the diff unfiltered. - exit 0 -fi - -git diff --unified=1 --cached HEAD -- $changed > $TMPDIFF - -# only do the check when there are some changes to be commited -# otherwise flake8 would hang waiting for input -if [ -s $TMPDIFF ] ; then - cat $TMPDIFF | $FLAKE8 --diff - status=$? -fi - -rm -f $TMPDIFF - -exit $status diff --git a/_git_hooks/update b/_git_hooks/update deleted file mode 100755 index c700a1b1..00000000 --- a/_git_hooks/update +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - -# git update hook to check that pushed changes don't introduce new flake8 -# errors - -# --- Command line -refname="$1" -oldrev="$2" -newrev="$3" - -# --- Safety check -if [ -z "$GIT_DIR" ]; then - echo "Don't run this script from the command line." >&2 - echo " (if you want, you could supply GIT_DIR then run" >&2 - echo " $0 <ref> <oldrev> <newrev>)" >&2 - exit 1 -fi - -if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then - echo "usage: $0 <ref> <oldrev> <newrev>" >&2 - exit 1 -fi - - -TMPDIR=`mktemp -d` -TMPDIFF=`tempfile` - -[ $refname != "refs/heads/master" -a $refname != "refs/heads/stable" ] && exit 0 - -# select only changed python files which are not migrations -changed=`git diff --name-only $oldrev $newrev | grep 'py$' | grep -v 'migrations/[0-9]'` -if [ -z $changed ] ; then - # Nothing to check. Note the exit is necessary -- we would not pass any - # paths to git diff below and it would output the diff unfiltered. - exit 0 -fi - -git diff --unified=1 $oldrev $newrev -- $changed >${TMPDIFF} - -# there is no working tree in bare git repository, so we recreate it for flake8 -git archive $newrev | tar -x -C ${TMPDIR} - -cd ${TMPDIR} -# report only errors on lines in diff -# (if threre was flake8 installed on atrey, we could just call flake8) -/akce/MaM/WWW/mamweb-test/bin/flake8 --diff <${TMPDIFF} -status=$? -if [ $status != 0 ] ; then - echo - echo -n "Změny, které se snažíte pushnout, obsahují kód v pythonu " - echo -n "nevyhovující flake8 (viz výše). Opravte je a zkuste to znovu. " - echo -n "Nezapomeňte, že můžete editovat historii (git commit --amend, " - echo -n "git rebase -i). Pokud byste chybu příště raději odhalili už při " - echo "commitu, zkopírujte si pre-commit hook z _git_hooks do .git/hooks." - echo -fi - -rm -rf ${TMPDIR} -rm -f ${TMPDIFF} - -exit $status From 7a6a7cb0f58b640b9448f6c4e352f8cd4ccaf830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 10:42:31 +0200 Subject: [PATCH 179/225] =?UTF-8?q?N=C3=A1vod=20na=20nahr=C3=A1t=C3=AD=20o?= =?UTF-8?q?br=C3=A1zk=C5=AF=20do=20odm=C4=9Bn=20(a=20jinak=20o=20flatpage)?= =?UTF-8?q?=20nem=C3=A1=20smysl=20m=C3=ADt=20v=20ko=C5=99enov=C3=A9=20slo?= =?UTF-8?q?=C5=BEce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {ilustrace_odmeny => docs}/jak_nahrat_do_flatpage | 1 + 1 file changed, 1 insertion(+) rename {ilustrace_odmeny => docs}/jak_nahrat_do_flatpage (82%) diff --git a/ilustrace_odmeny/jak_nahrat_do_flatpage b/docs/jak_nahrat_do_flatpage similarity index 82% rename from ilustrace_odmeny/jak_nahrat_do_flatpage rename to docs/jak_nahrat_do_flatpage index 7e88641d..2c4b208c 100644 --- a/ilustrace_odmeny/jak_nahrat_do_flatpage +++ b/docs/jak_nahrat_do_flatpage @@ -1,3 +1,4 @@ +FIXME přepsat do rst, přidat i další věci a případně přesunout na wiki Přidání obrázků do odměn: admin -> flatpage odměn -> ikona přidat obrázek záložka odeslat, vybrat obrázek, odeslat From 081701213087ccd945cf1828b6e17be7fdcebdaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 10:55:03 +0200 Subject: [PATCH 180/225] =?UTF-8?q?Tahle=20moje=20=E2=80=9Edokumentace?= =?UTF-8?q?=E2=80=9C=20je=20k=20ni=C4=8Demu,=20ma=C5=BEu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aesop/apps.py | 3 --- aesop/urls.py | 7 ------- aesop/views.py | 5 ----- api/apps.py | 3 --- api/urls.py | 12 ------------ api/views/__init__.py | 5 ----- galerie/urls.py | 9 --------- header_fotky/admin.py | 13 +------------ header_fotky/apps.py | 3 --- header_fotky/models.py | 14 -------------- korektury/admin.py | 10 ---------- korektury/forms.py | 10 ---------- korektury/models.py | 14 -------------- korektury/urls.py | 8 -------- korektury/views.py | 5 ----- mamweb/urls.py | 15 +-------------- odevzdavatko/admin.py | 6 ------ odevzdavatko/apps.py | 3 --- odevzdavatko/urls.py | 14 -------------- personalni/apps.py | 3 --- personalni/urls.py | 14 -------------- prednasky/urls.py | 9 --------- seminar/urls.py | 31 ------------------------------- soustredeni/apps.py | 3 --- treenode/apps.py | 3 --- treenode/urls.py | 5 ----- various/apps.py | 3 --- various/autentizace/forms.py | 11 ----------- various/autentizace/urls.py | 13 ------------- vysledkovky/apps.py | 3 --- 30 files changed, 2 insertions(+), 255 deletions(-) diff --git a/aesop/apps.py b/aesop/apps.py index d7dea2e3..3974f084 100644 --- a/aesop/apps.py +++ b/aesop/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig class AesopConfig(AppConfig): diff --git a/aesop/urls.py b/aesop/urls.py index 946a873b..f39a0ba8 100644 --- a/aesop/urls.py +++ b/aesop/urls.py @@ -1,10 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``aesop-export/mam-rocnik-<int:prvni_rok>.csv`` (seminar_export_rocnik) :class:`~aesop.views.ExportRocnikView` -- ``aesop-export/mam-sous-<str:datum_zacatku>.csv`` (seminar_export_sous) :class:`~aesop.views.ExportSousView` -- ``aesop-export/index.csv`` (seminar_export_index) :class:`~aesop.views.ExportIndexView` -""" from django.urls import path from aesop import views diff --git a/aesop/views.py b/aesop/views.py index e4b3364b..5fd49cbc 100644 --- a/aesop/views.py +++ b/aesop/views.py @@ -1,8 +1,3 @@ -""" -Soubor sloužící k deklaraci jednotlivých „views“ (nejčastěji funkce beroucí request -a vracející :func:`django.shortcuts.render` respektive nějakou response, nebo -třídy většinou rozšiřující nějakou třídu z :mod:`django.views.generic`) -""" import django from django.shortcuts import get_object_or_404 from django.http import HttpResponse diff --git a/api/apps.py b/api/apps.py index a74c8c0e..3800f6a9 100644 --- a/api/apps.py +++ b/api/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig diff --git a/api/urls.py b/api/urls.py index a3b5a4aa..9ff38424 100644 --- a/api/urls.py +++ b/api/urls.py @@ -1,15 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``api/expor/skoly/`` (export_skoly) :func:`~api.views.exports.exportSkolView` -- ``api/autocomplete/skola/`` (autocomplete_skola) :class:`~api.views.autocomplete.SkolaAutocomplete` -- ``api/autocomplete/resitel/`` (autocomplete_resitel) :class:`~api.views.autocomplete.ResitelAutocomplete` -- ``api/autocomplete/problem/odevzdatelny`` (autocomplete_problem_odevzdatelny) :class:`~api.views.autocomplete.OdevzdatelnyProblemAutocomplete` - -Na autocomplete v3 čeká: - -- ``autocomplete/organizatori/`` (seminar_autocomplete_organizator) :class:`~api.views.autocomplete.OrganizatorAutocomplete` -""" from django.urls import path from . import views from seminar.utils import org_required diff --git a/api/views/__init__.py b/api/views/__init__.py index 13ce91ba..fc00554e 100644 --- a/api/views/__init__.py +++ b/api/views/__init__.py @@ -1,7 +1,2 @@ -""" -Soubory sloužící k deklaraci jednotlivých „views“ (nejčastěji funkce beroucí request -a vracející :func:`django.shortcuts.render` respektive nějakou response, nebo -třídy většinou rozšiřující nějakou třídu z :mod:`django.views.generic`) -""" from .autocomplete import * from .exports import * diff --git a/galerie/urls.py b/galerie/urls.py index 2e311cd8..32824248 100644 --- a/galerie/urls.py +++ b/galerie/urls.py @@ -1,12 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``<int:pk>/`` :func:`~galerie.views.nahled` -- ``<int:pk>/<int:fotka>/`` :func:`~galerie.views.detail` -- ``<int:galerie>/new/`` :func:`~galerie.views.new_galerie` -- ``<int:galerie>/plus/<int:subgalerie>/`` :func:`~galerie.views.plus_galerie` -- ``<int:galerie>/minus/<int:subgalerie>/`` :func:`~galerie.views.minus_galerie` -""" from django.urls import path from seminar.utils import org_required from . import views diff --git a/header_fotky/admin.py b/header_fotky/admin.py index b939541b..cfcb4d48 100644 --- a/header_fotky/admin.py +++ b/header_fotky/admin.py @@ -1,14 +1,3 @@ -""" -Soubor sloužící k definici toho, co bude v adminu. Většinou pouhým zavoláním -funkce :func:`django.contrib.admin.site.register`, v případě, že chceme něco -upravit, tak jako třída rozšiřující :class:`django.contrib.admin.ModelAdmin` -s dekorátorem :func:`django.contrib.admin.register`. - -Zde se definuje admin pro: - -- :class:`~header_fotky.models.FotkaHeader` -- :class:`~header_fotky.models.FotkaUrlVazba` -""" from django.contrib import admin from django.contrib.admin import ModelAdmin import header_fotky.models as m @@ -22,4 +11,4 @@ class FotkaPozadiAdmin(ModelAdmin): readonly_fields = ['cas'] admin.site.register(m.FotkaHeader, FotkaPozadiAdmin) -admin.site.register(m.FotkaUrlVazba) \ No newline at end of file +admin.site.register(m.FotkaUrlVazba) diff --git a/header_fotky/apps.py b/header_fotky/apps.py index 9cf572ec..6f9e5aee 100644 --- a/header_fotky/apps.py +++ b/header_fotky/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig diff --git a/header_fotky/models.py b/header_fotky/models.py index 750cc575..e48a743a 100644 --- a/header_fotky/models.py +++ b/header_fotky/models.py @@ -1,17 +1,3 @@ -""" -Tento soubor slouží k definici databázového modelu. - -Třídy rozšiřují většinou :class:`django.db.models.Model` a jejich atributy jsou -většinou sloupce v databázi (tj. nastaví se na hodnotu něčeho z :mod:`django.db.models`). -Na výběr jsou: - - - :class:`django.db.models.TextField` - - :class:`django.db.models.ForeignKey` - - :class:`django.db.models.DateField` - - :class:`django.db.models.DateTimeField` - - :class:`django.db.models.ImageField` - - :class:`django.db.models.CharField` -""" from django.core.exceptions import ValidationError from django.db import models from django.utils import timezone diff --git a/korektury/admin.py b/korektury/admin.py index 5f92c542..881a951c 100644 --- a/korektury/admin.py +++ b/korektury/admin.py @@ -1,13 +1,3 @@ -""" -Soubor sloužící k definici toho, co bude v adminu. Většinou pouhým zavoláním -funkce :func:`django.contrib.admin.site.register`, v případě, že chceme něco -upravit, tak jako třída rozšiřující :class:`django.contrib.admin.ModelAdmin` -s dekorátorem :func:`django.contrib.admin.register`. - -Zde se definuje admin pro: - -- :class:`korektury.models.KorekturovanePDF` -""" from django.contrib import admin from reversion.admin import VersionAdmin from korektury.models import KorekturovanePDF diff --git a/korektury/forms.py b/korektury/forms.py index 2fd439a6..22c82818 100644 --- a/korektury/forms.py +++ b/korektury/forms.py @@ -1,13 +1,3 @@ -""" -Formuláře (:class:`django.forms.Form`) umožňují jednoduchou tvorbu formulářů, -které lze pak jednoduše dát do frontendu i zpracovat na backendu. - -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 -""" from django import forms class OpravaForm(forms.Form): diff --git a/korektury/models.py b/korektury/models.py index ca1bb877..153c4f3c 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -1,17 +1,3 @@ -""" -Tento soubor slouží k definici databázového modelu. - -Třídy rozšiřují většinou :class:`django.db.models.Model` a jejich atributy jsou -většinou sloupce v databázi (tj. nastaví se na hodnotu něčeho z :mod:`django.db.models`). -Na výběr jsou: - - - :class:`django.db.models.TextField` - - :class:`django.db.models.ForeignKey` - - :class:`django.db.models.DateField` - - :class:`django.db.models.DateTimeField` - - :class:`django.db.models.ImageField` - - :class:`django.db.models.CharField` -""" import os from django.db import models from django.utils import timezone diff --git a/korektury/urls.py b/korektury/urls.py index 96eb4dd4..dcd1d965 100644 --- a/korektury/urls.py +++ b/korektury/urls.py @@ -1,11 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``korektury/`` (korektury_list) :class:`~korektury.views.KorekturySeskupeneListView` -- ``korektury/neseskupene/`` (korektury_neseskupene_list) :class:`~korektury.views.KorekturyAktualniListView` -- ``korektury/zastarale/`` (korektury_stare_list) :class:`~korektury.views.KorekturyZastaraleListView` -- ``korektury/<int:pdf>/`` (korektury) :class:`~korektury.views.KorekturyView` -""" from django.urls import path from seminar.utils import org_required from . import views diff --git a/korektury/views.py b/korektury/views.py index 1bdfaa92..d5066af8 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -1,8 +1,3 @@ -""" -Soubor sloužící k deklaraci jednotlivých „views“ (nejčastěji funkce beroucí request -a vracející :func:`django.shortcuts.render` respektive nějakou response, nebo -třídy většinou rozšiřující nějakou třídu z :mod:`django.views.generic`) -""" from django.shortcuts import get_object_or_404, render from django.views import generic from django.conf import settings diff --git a/mamweb/urls.py b/mamweb/urls.py index cdd7df09..4b870fec 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -1,18 +1,5 @@ """ -Soubor sloužící jako základní „router“, tj. zde se includují veškeré ostatní urls: - -- ``admin/`` :mod:`django.contrib.admin.site.urls` -- ``ckeditor/`` :mod:`ckeditor_uploader.urls` -- :mod:`seminar.urls` -- :mod:`odevzdavatko.urls` -- :mod:`korektury.urls` -- :mod:`prednasky.urls` -- :mod:`soustredeni.urls` -- :mod:`personalni.urls` -- :mod:`various.autentizace.urls` -- :mod:`api.urls` -- :mod:`treenode.urls` -- :mod:`aesop.urls` +Soubor sloužící jako základní „router“, tj. zde se includují veškeré ostatní urls. """ from django.urls import path, include from django.contrib.staticfiles.urls import staticfiles_urlpatterns diff --git a/odevzdavatko/admin.py b/odevzdavatko/admin.py index 168beab1..6048eb36 100644 --- a/odevzdavatko/admin.py +++ b/odevzdavatko/admin.py @@ -1,9 +1,3 @@ -""" -Soubor sloužící k definici toho, co bude v adminu. Většinou pouhým zavoláním -funkce :func:`django.contrib.admin.site.register`, v případě, že chceme něco -upravit, tak jako třída rozšiřující :class:`django.contrib.admin.ModelAdmin` -s dekorátorem :func:`django.contrib.admin.register`. -""" from django.contrib import admin from django_reverse_admin import ReverseModelAdmin import seminar.models as m diff --git a/odevzdavatko/apps.py b/odevzdavatko/apps.py index d20e4a5a..98c02c0b 100644 --- a/odevzdavatko/apps.py +++ b/odevzdavatko/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig diff --git a/odevzdavatko/urls.py b/odevzdavatko/urls.py index 6b021f2e..e41b9c14 100644 --- a/odevzdavatko/urls.py +++ b/odevzdavatko/urls.py @@ -1,17 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``org/add_solution`` (seminar_vloz_reseni) :class:`~odevzdavatko.views.PosliReseniView` -- ``resitel/nahraj_reseni`` (seminar_nahraj_reseni) :class:`~odevzdavatko.views.NahrajReseniView` -- ``resitel/odevzdana_reseni/`` (seminar_resitel_odevzdana_reseni) :class:`~odevzdavatko.views.PrehledOdevzdanychReseni` -- ``org/reseni/`` (odevzdavatko_tabulka) :class:`~odevzdavatko.views.TabulkaOdevzdanychReseniView` -- ``org/reseni/rocnik/<int:rocnik>/`` (odevzdavatko_tabulka) :class:`~odevzdavatko.views.TabulkaOdevzdanychReseniView` -- ``org/reseni/<int:problem>/<int:resitel>/`` (odevzdavatko_reseni_resitele_k_problemu) :class:`~odevzdavatko.views.ReseniProblemuView` -- ``org/reseni/<int:pk>/`` (odevzdavatko_detail_reseni) :func:`~seminar.utils.viewMethodSwitch` + :class:`~odevzdavatko.views.DetailReseniView` + :func:`~odevzdavatko.views.hodnoceniReseniView` -- ``org/reseni/all`` :class:`~odevzdavatko.views.SeznamReseniView` -- ``org/reseni/akt`` :class:`~odevzdavatko.views.TabulkaOdevzdanychReseniView` -- ``resitel/reseni/<int:pk>`` (odevzdavatko_resitel_reseni) :class:`~odevzdavatko.views.ResitelReseniView` -""" from django.urls import path from seminar.utils import org_required, resitel_required, viewMethodSwitch, \ diff --git a/personalni/apps.py b/personalni/apps.py index a6ea47fa..8312e3ec 100644 --- a/personalni/apps.py +++ b/personalni/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig diff --git a/personalni/urls.py b/personalni/urls.py index cbcdb035..73a6f720 100644 --- a/personalni/urls.py +++ b/personalni/urls.py @@ -1,17 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``org/add_solution`` (seminar_vloz_reseni) :class:`~odevzdavatko.views.PosliReseniView` -- ``resitel/nahraj_reseni`` (seminar_nahraj_reseni) :class:`~odevzdavatko.views.NahrajReseniView` -- ``resitel/odevzdana_reseni/`` (seminar_resitel_odevzdana_reseni) :class:`~odevzdavatko.views.PrehledOdevzdanychReseni` -- ``org/reseni/`` (odevzdavatko_tabulka) :class:`~odevzdavatko.views.TabulkaOdevzdanychReseniView` -- ``org/reseni/rocnik/<int:rocnik>/`` (odevzdavatko_tabulka) :class:`~odevzdavatko.views.TabulkaOdevzdanychReseniView` -- ``org/reseni/<int:problem>/<int:resitel>/`` (odevzdavatko_reseni_resitele_k_problemu) :class:`~odevzdavatko.views.ReseniProblemuView` -- ``org/reseni/<int:pk>/`` (odevzdavatko_detail_reseni) :func:`~seminar.utils.viewMethodSwitch` + :class:`~odevzdavatko.views.DetailReseniView` + :func:`~odevzdavatko.views.hodnoceniReseniView` -- ``org/reseni/all`` :class:`~odevzdavatko.views.SeznamReseniView` -- ``org/reseni/akt`` :class:`~odevzdavatko.views.TabulkaOdevzdanychReseniView` -- ``resitel/reseni/<int:pk>`` (odevzdavatko_resitel_reseni) :class:`~odevzdavatko.views.ResitelReseniView` -""" from django.urls import path from django.contrib.auth.decorators import login_required from . import views diff --git a/prednasky/urls.py b/prednasky/urls.py index d0e7a703..6b455163 100644 --- a/prednasky/urls.py +++ b/prednasky/urls.py @@ -1,12 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``prednasky/`` :func:`~prednasky.views.newPrednaska` -- ``prednasky/hotovo`` :func:`~prednasky.views.Prednaska_hotovo` -- ``prednasky/metaseznam_prednasek`` (metaseznam-list) :class:`~prednasky.views.MetaSeznamListView` -- ``prednasky/seznam_prednasek/<int:seznam>/export`` (seznam-export) :func:`~prednasky.views.SeznamExportView` -- ``prednasky/seznam_prednasek/<int:seznam>/`` (seznam-list) :class:`~prednasky.views.SeznamListView` -""" from django.urls import path from seminar.utils import org_required, resitel_or_org_required from . import views diff --git a/seminar/urls.py b/seminar/urls.py index f6f2e2fb..f740e6a4 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -1,34 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- Organizátoři - - ``o-nas/organizatori/`` (organizatori) :class:`~seminar.views.views_all.CojemamOrganizatoriView` - - ``o-nas/organizatori/organizovali/`` (stari_organizatori) :class:`~seminar.views.views_all.CojemamOrganizatoriStariView` -- Archiv - - ``archiv/rocniky/`` (seminar_archiv_rocniky) :class:`~seminar.views.views_all.ArchivView` - - ``archiv/temata/`` (seminar_archiv_temata) :class:`~seminar.views.views_all.ArchivTemataView` - - ``rocnik/<int:rocnik>/`` (seminar_rocnik) :class:`~seminar.views.views_all.RocnikView` - - ``cislo/<int:rocnik>.<str:cislo>/`` (seminar_cislo) :class:`~seminar.views.views_all.CisloView` - - ``problem/<int:pk>/`` (seminar_problem) :func:`~seminar.views.views_all.problemView` -- Zadání - - ``aktualni/zadani/`` (seminar_aktualni_zadani) :func:`~seminar.views.views_all.AktualniZadaniView` - - ``aktualni/vysledkova-listina/`` (seminar_aktualni_vysledky) :func:`~seminar.views.views_all.ZadaniAktualniVysledkovkaView` - - ``aktualni/rocnik/`` (seminar_aktualni_rocnik) :class:`~seminar.views.views_all.AktualniRocnikRedirectView` -- Články - - ``archiv/clanky/`` (clanky_resitel) :class:`~seminar.views.views_all.ClankyResitelView` -- Orgovské stránky - - ``rocnik/<int:rocnik>/vysledkovka.tex`` (seminar_rocnik_vysledkovka) :class:`~seminar.views.views_all.RocnikVysledkovkaView` - - ``rocnik/<int:rocnik>/resitele.csv`` (seminar_rocnik_resitele_csv) :func:`~seminar.views.views_all.resiteleRocnikuCsvExportView` - - ``cislo/<int:rocnik>.<str:cislo>/vysledkovka.tex`` (seminar_cislo_vysledkovka) :class:`~seminar.views.views_all.CisloVysledkovkaView` - - ``cislo/<int:rocnik>.<str:cislo>/obalky.pdf`` (seminar_cislo_obalky) :func:`~seminar.views.views_all.cisloObalkyView` - - ``cislo/<int:rocnik>.<str:cislo>/tituly.tex`` (seminar_cislo_titul) :func:`~seminar.views.views_all.TitulyView` - - ``stav`` (stav_databaze) :func:`~seminar.views.views_all.StavDatabazeView` - - ``cislo/<int:trocnik>.<str:tcislo>/odmeny/<int:frocnik>.<str:fcislo>/`` (seminar_archiv_odmeny) :class:`~seminar.views.views_all.OdmenyView` -- Další - - `` `` (titulni_strana) :class:`~seminar.views.views_all.TitulniStranaView` - - ``jak-resit/`` (jak_resit) :class:`~seminar.views.views_all.JakResitView` - - ``stare-novinky/`` (stare_novinky) :class:`~seminar.views.views_all.StareNovinkyView` -""" from django.urls import path, include, re_path from . import views from .utils import org_required diff --git a/soustredeni/apps.py b/soustredeni/apps.py index 3dd0b94e..90e25f5b 100644 --- a/soustredeni/apps.py +++ b/soustredeni/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig diff --git a/treenode/apps.py b/treenode/apps.py index 7e709e48..5a04a618 100644 --- a/treenode/apps.py +++ b/treenode/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig diff --git a/treenode/urls.py b/treenode/urls.py index 1b6444bb..60dc88ad 100644 --- a/treenode/urls.py +++ b/treenode/urls.py @@ -1,8 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- Zatím tu nic moc není… -""" from django.urls import path, re_path from . import views diff --git a/various/apps.py b/various/apps.py index d1f6ad2e..751fe3a6 100644 --- a/various/apps.py +++ b/various/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig diff --git a/various/autentizace/forms.py b/various/autentizace/forms.py index f3138d74..bf1ab597 100644 --- a/various/autentizace/forms.py +++ b/various/autentizace/forms.py @@ -1,14 +1,3 @@ -""" -Formuláře (:class:`django.forms.Form`) umožňují jednoduchou tvorbu formulářů, -které lze pak jednoduše dát do frontendu i zpracovat na backendu. - -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 -""" - from django.contrib.auth.forms import AuthenticationForm from django.forms import BooleanField diff --git a/various/autentizace/urls.py b/various/autentizace/urls.py index a89ff89e..83c8e50e 100644 --- a/various/autentizace/urls.py +++ b/various/autentizace/urls.py @@ -1,16 +1,3 @@ -""" -Soubor sloužící jako „router“, tj. zde se definují url adresy a na co ukazují: - -- ``prihlasit/`` (login) :class:`~various.autentizace.views.LoginView` -- ``login/`` :class:`django.views.generic.base.RedirectView` předchozího -- ``odhlasit/`` (logout) :class:`~various.autentizace.views.LogoutView` -- ``logout/`` :class:`django.views.generic.base.RedirectView` předchozího -- ``reset-hesla/`` (reset_password) :class:`~various.autentizace.views.PasswordResetView` -- ``zmena-hesla/`` (change_password) :class:`~various.autentizace.views.PasswordChangeView` -- ``zmena-hesla/2/`` (reset_password_done) :class:`~various.autentizace.views.PasswordResetDoneView` -- ``reset-hesla/potvrzeni/<uidb64>/<token>/`` (reset_password_confirm) :class:`~various.autentizace.views.PasswordResetConfirmView` -- ``reset-hesla/hotovo/`` (reset_password_complete) :class:`~various.autentizace.views.PasswordResetCompleteView` -""" from django.urls import path from . import views from django.views.generic.base import RedirectView diff --git a/vysledkovky/apps.py b/vysledkovky/apps.py index 7b9a1e0f..ef946395 100644 --- a/vysledkovky/apps.py +++ b/vysledkovky/apps.py @@ -1,6 +1,3 @@ -""" -Soubor sloužící k pojmenování a jiným nastavením djangovské aplikace. -""" from django.apps import AppConfig From 5f9bda9afe0d1487182113fa554268c718c42949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 10:56:51 +0200 Subject: [PATCH 181/225] =?UTF-8?q?Ha,=20tohle=20m=C4=9Blo=20smaz=C3=A1no?= =?UTF-8?q?=20b=C3=BDt=20u=C5=BE=20v=2075344c2c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/dalsi_soubory.rst | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/dalsi_soubory.rst b/docs/dalsi_soubory.rst index 627a59d7..2b1a362b 100644 --- a/docs/dalsi_soubory.rst +++ b/docs/dalsi_soubory.rst @@ -9,12 +9,6 @@ static ------ Složka, kam django nakopíruje všechno ze složek static a pak na to z templatů / kódu jde ukazovat pomocí ``static``. -_git_hooks ----------- -Hooky do gitu pro kontrolu Pythoního stylu. Především ``flake8``. - -Zbylo tu z minulosti mamwebu. - data ---- Obsahuje data, která patří do databáze, ale jsou přímo součástí webu jako From ead2a4ede352e9d09e935b8f607278f2ef8cb146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 11:04:19 +0200 Subject: [PATCH 182/225] =?UTF-8?q?Tahle=20middleware=20se=20v=C5=AFbec=20?= =?UTF-8?q?nepou=C5=BE=C3=ADv=C3=A1=20(pou=C5=BE=C3=ADv=C3=A1=20se=20conte?= =?UTF-8?q?xtprocessor=20vzhled)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/middleware.py | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/mamweb/middleware.py b/mamweb/middleware.py index 7109423e..208c6cbd 100644 --- a/mamweb/middleware.py +++ b/mamweb/middleware.py @@ -52,37 +52,3 @@ class LoggedInHintCookieMiddleware(object): if self.cookie_name in request.COOKIES: response.delete_cookie(self.cookie_name) return response - - -class vzhled: - - def process_request(self, request): - return None - - def process_view(self, request, view_func, view_args, view_kwargs): - #print "====== process_request ======" - #print view_func - #print view_args - #print view_kwargs - #print "=============================" - return None - - def process_template_response(self, request, response): - hodin = datetime.now().hour - if (hodin <= 6) or (hodin >= 14): # TODO 20 - response.context_data['noc'] = True - else: - response.context_data['noc'] = False - return response - - def process_response(self, request, response): - #hodin = datetime.now().hour - #if (hodin <= 6) or (hodin >= 14): # TODO 20 - #response.context_data['noc'] = True - #else: - #response.context_data['noc'] = False - return response - - - ##def process_exception(request, exception): - #pass From e21a93f9e7bd063bd465dca98afa598dc86fd9e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 11:06:00 +0200 Subject: [PATCH 183/225] =?UTF-8?q?Middleware=20=C5=99e=C5=A1=C3=ADc=C3=AD?= =?UTF-8?q?=20sessioh=20mezi=20http=20a=20https=20se=20u=C5=BE=20fakt=20dl?= =?UTF-8?q?ouho=20nepou=C5=BE=C3=ADv=C3=A1=20a=20nav=C3=ADc=20je=20toto=20?= =?UTF-8?q?t=C3=A9ma=20dnes=20d=C3=A1vno=20pas=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/middleware.py | 54 --------------------------------------- mamweb/settings_common.py | 3 --- 2 files changed, 57 deletions(-) delete mode 100644 mamweb/middleware.py diff --git a/mamweb/middleware.py b/mamweb/middleware.py deleted file mode 100644 index 208c6cbd..00000000 --- a/mamweb/middleware.py +++ /dev/null @@ -1,54 +0,0 @@ -from datetime import datetime, date - -from django.conf import settings -from django.http import HttpResponse, HttpResponseRedirect - - - -class LoggedInHintCookieMiddleware(object): - """Middleware to securely help with 'logged-in' detection for dual HTTP/HTTPS sites. - - On insecure requests: Checks for a (non-secure) cookie settings.LOGGED_IN_HINT_COOKIE_NAME - and if present, redirects to HTTPS (same adress). - Note this usually breaks non-GET (POST) requests. - - On secure requests: Updates cookie settings.LOGGED_IN_HINT_COOKIE_NAME to reflect - whether an user is logged in in the current session (cookie set to 'True' or cleared). - The cookie is set to expire at the same time as the sessionid cookie. - - By default, LOGGED_IN_HINT_COOKIE_NAME = 'logged_in_hint'. - """ - - def __init__(self): - if hasattr(settings, 'LOGGED_IN_HINT_COOKIE_NAME'): - self.cookie_name = settings.LOGGED_IN_HINT_COOKIE_NAME - else: self.cookie_name = 'logged_in_hint' - self.cookie_value = 'True' - - def cookie_correct(self, request): - return self.cookie_name in request.COOKIES and request.COOKIES[self.cookie_name] == self.cookie_value - - def process_request(self, request): - if not request.is_secure(): - if self.cookie_correct(request): - # redirect insecure (assuming http) requests with hint cookie to https - url = request.build_absolute_uri() - assert url[:5] == 'http:' - return HttpResponseRedirect('https:' + url[5:]) - return None - - def process_response(self, request, response): - if request.is_secure(): - # assuming full session info (as the conn. is secure) - try: - user = request.user - except AttributeError: # no user - ajax or other special request - return response - if user.is_authenticated(): - if not self.cookie_correct(request): - expiry = None if request.session.get_expire_at_browser_close() else request.session.get_expiry_date() - response.set_cookie(self.cookie_name, value=self.cookie_value, expires=expiry, secure=False) - else: - if self.cookie_name in request.COOKIES: - response.delete_cookie(self.cookie_name) - return response diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 92124364..4bc713c8 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -68,9 +68,6 @@ MIDDLEWARE = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', -# FIXME: rozbilo se při přechodu na Django 2.0, nevím, jestli -# se to dá zahodit bez náhrady -# 'mamweb.middleware.LoggedInHintCookieMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', From 1d36cd076127413952a3c77f1c7debec40fbb1a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 11:09:39 +0200 Subject: [PATCH 184/225] =?UTF-8?q?Tohle=20nastaven=C3=AD=20u=C5=BE=20je?= =?UTF-8?q?=20v=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- novinky/apps.py | 1 - seminar/apps.py | 1 - 2 files changed, 2 deletions(-) diff --git a/novinky/apps.py b/novinky/apps.py index 92519305..6aa7efe9 100644 --- a/novinky/apps.py +++ b/novinky/apps.py @@ -1,6 +1,5 @@ from django.apps import AppConfig class NovinkyConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' name = 'novinky' verbose_name = 'Novinky' diff --git a/seminar/apps.py b/seminar/apps.py index 161a73f8..ce66f627 100644 --- a/seminar/apps.py +++ b/seminar/apps.py @@ -1,7 +1,6 @@ from django.apps import AppConfig class SeminarConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' name = 'seminar' verbose_name = 'Seminář' From 8fef21900c9d721152732068fb8d937c9a6c35be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 11:28:03 +0200 Subject: [PATCH 185/225] =?UTF-8?q?Autogenerovan=C3=A9=20koment=C3=A1?= =?UTF-8?q?=C5=99e=20a=20pr=C3=A1zdn=C3=A9=20testy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/admin.py | 1 - korektury/tests.py | 3 --- novinky/tests.py | 3 --- novinky/views.py | 3 --- prednasky/tests.py | 3 --- sifrovacka/admin.py | 2 -- sifrovacka/models.py | 3 --- sifrovacka/views.py | 2 -- various/admin.py | 2 -- various/views.py | 2 -- vyroci/admin.py | 2 -- vyroci/models.py | 2 -- vyroci/views.py | 2 -- 13 files changed, 30 deletions(-) delete mode 100644 korektury/tests.py delete mode 100644 novinky/tests.py delete mode 100644 prednasky/tests.py diff --git a/korektury/admin.py b/korektury/admin.py index 881a951c..a04026de 100644 --- a/korektury/admin.py +++ b/korektury/admin.py @@ -5,7 +5,6 @@ from korektury.models import KorekturovanePDF from django.core.mail import EmailMessage from django.urls import reverse -# Register your models here. class KorekturovanePDFAdmin(VersionAdmin): """ nastaví čas vložení (:attr:`~koretkury.models.KorekturovanePDF.cas`) a počet diff --git a/korektury/tests.py b/korektury/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/korektury/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/novinky/tests.py b/novinky/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/novinky/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/novinky/views.py b/novinky/views.py index 91ea44a2..e69de29b 100644 --- a/novinky/views.py +++ b/novinky/views.py @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here. diff --git a/prednasky/tests.py b/prednasky/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/prednasky/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/sifrovacka/admin.py b/sifrovacka/admin.py index 5099c241..ff980cd9 100644 --- a/sifrovacka/admin.py +++ b/sifrovacka/admin.py @@ -2,8 +2,6 @@ from django.contrib import admin from .models import OdpovedUcastnika, SpravnaOdpoved, NapovezenoUcastnikovi, Napoveda -# Register your models here. - admin.site.register(OdpovedUcastnika) admin.site.register(SpravnaOdpoved) admin.site.register(Napoveda) diff --git a/sifrovacka/models.py b/sifrovacka/models.py index 49565252..cd71fd15 100644 --- a/sifrovacka/models.py +++ b/sifrovacka/models.py @@ -4,9 +4,6 @@ from django.utils import timezone from personalni.models import Resitel -# Create your models here. - - class OdpovedUcastnika(models.Model): class Meta: ordering = ["-timestamp"] diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 2ad352da..0bfa994f 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -7,8 +7,6 @@ from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastn from personalni.models import Resitel -# Create your views here. - class SifrovackaView(FormView): template_name = 'sifrovacka/sifrovacka.html' form_class = SifrovackaForm diff --git a/various/admin.py b/various/admin.py index 8c38f3f3..694323fa 100644 --- a/various/admin.py +++ b/various/admin.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here. diff --git a/various/views.py b/various/views.py index 96d9a29d..e344ff26 100644 --- a/various/views.py +++ b/various/views.py @@ -1,8 +1,6 @@ from django.http import HttpResponseForbidden from django.shortcuts import render -# Create your views here. - def csrf_error(request, reason=""): """ Jednoduchý „template view“ (třída to být nemůže) pro CSRF chyby """ diff --git a/vyroci/admin.py b/vyroci/admin.py index 7bf94bef..61476d24 100644 --- a/vyroci/admin.py +++ b/vyroci/admin.py @@ -2,6 +2,4 @@ from django.contrib import admin from .models import UcastnikVyroci -# Register your models here. - admin.site.register(UcastnikVyroci) diff --git a/vyroci/models.py b/vyroci/models.py index 04fd2097..28e0206a 100644 --- a/vyroci/models.py +++ b/vyroci/models.py @@ -1,7 +1,5 @@ from django.db import models -# Create your models here. - class UcastnikVyroci(models.Model): diff --git a/vyroci/views.py b/vyroci/views.py index a2f4767d..207ed619 100644 --- a/vyroci/views.py +++ b/vyroci/views.py @@ -6,8 +6,6 @@ from .forms import UcastnikVyrociForm from .models import UcastnikVyroci -# Create your views here. - class VyrociView(FormView): template_name = 'vyroci/vyroci.html' form_class = UcastnikVyrociForm From 8dc3a2ba98ca138bcda04c5216368db9b6b5bd16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 11:50:14 +0200 Subject: [PATCH 186/225] =?UTF-8?q?Odstran=C4=9B=C5=88o=20star=C3=A9=20tes?= =?UTF-8?q?tov=C3=A1n=C3=AD=20e-mail=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/views.py | 7 ------- mamweb/settings_common.py | 4 ---- mamweb/settings_prod.py | 1 - mamweb/settings_test.py | 1 - seminar/models/tvorba.py | 3 --- 5 files changed, 16 deletions(-) diff --git a/korektury/views.py b/korektury/views.py index d5066af8..ee6f2841 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -194,13 +194,6 @@ class KorekturyView(generic.TemplateView): if email: emails.discard(email) - if not settings.POSLI_MAILOVOU_NOTIFIKACI: - print("Poslal bych upozornění na tyto adresy: ", " ".join(emails)) - print("---- Upozornění:") - print(text) - print("---- Konec upozornění") - return - EmailMessage( subject=subject, body=text, diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 4bc713c8..f737be1e 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -342,10 +342,6 @@ KOREKTURY_IMG_DIR = os.path.join('korektury', 'img') CISLO_IMG_DIR = os.path.join('cislo', 'img') -# E-MAIL NOTIFICATIONS -POSLI_MAILOVOU_NOTIFIKACI = False - - # Logování chyb class InvalidTemplateVariable(str): diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index 7d9c99e9..4a3f2198 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -68,5 +68,4 @@ LOGGING['handlers']['registration_error_log']['filename'] = '/home/mam-web/logs/ # E-MAIL NOTIFICATIONS -POSLI_MAILOVOU_NOTIFIKACI = True LOCAL_TEST_PROD = "prod" diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index 83c08b92..71f166ed 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -72,7 +72,6 @@ LOGGING['handlers']['registration_error_log']['filename'] = '/home/mam-web/logs/ FILE_UPLOAD_PERMISSIONS = 0o440 # Testování e-mailů -POSLI_MAILOVOU_NOTIFIKACI = True EMAIL_BACKEND = 'various.mail_prefixer.PrefixingMailBackend' # TODO Pouze na otestování testu… Zvolit konferu! # XXX: Je to pole, protože implementační detail backendu. diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 209008f5..36157c96 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -284,9 +284,6 @@ class Cislo(SeminarModelBase): def posli(subject, text, resitele): emaily = map(lambda resitel: resitel.osoba.email, resitele) - if not settings.POSLI_MAILOVOU_NOTIFIKACI: - print("Poslal bych upozornění na tyto adresy: ", " ".join(emaily)) - return email = EmailMessage( subject=subject, From f0b642ca4421bf0b87394f4fbbad7761f82e3d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 12:58:38 +0200 Subject: [PATCH 187/225] =?UTF-8?q?Nepou=C5=BE=C3=ADvan=C3=BD=20kus=20k?= =?UTF-8?q?=C3=B3du?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/admin.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/seminar/admin.py b/seminar/admin.py index deaba97f..f8768ddf 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -178,11 +178,6 @@ class TextAdminInline(admin.TabularInline): admin.site.register(m.Text) -class ResitelInline(admin.TabularInline): - model = m.Resitel - extra = 1 - - # admin.site.register(m.Pohadka) admin.site.register(m.Obrazek) admin.site.register(m.Nastaveni, SingletonModelAdmin) From 69635b42348e24b328b138d6f5ce08d1caa278bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 13:01:10 +0200 Subject: [PATCH 188/225] TODO jsou v kanboardu --- galerie/TODO | 25 ------------------------- korektury/TODO | 11 ----------- 2 files changed, 36 deletions(-) delete mode 100644 galerie/TODO delete mode 100644 korektury/TODO diff --git a/galerie/TODO b/galerie/TODO deleted file mode 100644 index c8afd3c4..00000000 --- a/galerie/TODO +++ /dev/null @@ -1,25 +0,0 @@ -======== -| TODO | -|======| - -Aktualni -* co s titulni fotkou -* do CSS - * nahledy - * nastylovat tabulku s nahledy - * komentare uz na nahledy? - * detail - * nahledy pred a po - * opravit prechodove sipky - * vyrobit prechodove sipky ve M&M-stylu - -Dlouhodobe -* sipky na prechazeni mezi fotkami -* hromadne PRIDANI fotek do jiz existujici galerie - -Fylozoficke -* zvolit velikosti velke a male fotky -* je potreba i jine razeni nez automaticky podle casu nebo staci podgalerie? - * napr. dve hry na dvou ruznych mistech ve stejny cas - * fotky od ucastniku ze hry (skupinky se pohybuji ve stejny cas, ale maji sled fotek) -- nestaci to pripadne vrazit do podgalerii? - diff --git a/korektury/TODO b/korektury/TODO deleted file mode 100644 index df1b937a..00000000 --- a/korektury/TODO +++ /dev/null @@ -1,11 +0,0 @@ -- korektura potrebuje reakci -+ komentáře fixně na username - - používat skutečné jméno? -- vyžádat pozornost autora obsahu -- zvednout upload limit na 5MB -- sbalit a rozbalit korekturu -- nahrávání jiných věcí než PDF - kontrolovat? -- stylování -- seznam PDF - co zobrazovat? - - From 431978e6267d86e2743dbeb7d31d54aa04fd0b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sat, 3 Aug 2024 13:03:09 +0200 Subject: [PATCH 189/225] =?UTF-8?q?Star=C3=BD=20kus=20k=C3=B3du,=20kter?= =?UTF-8?q?=C3=BD=20by=20se=20mohl=20hodit,=20ale=20je=20p=C5=99=C3=AD?= =?UTF-8?q?=C5=A1ern=C4=9B=20zastaral=C3=BD=20(ObrazekAutocomplete)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/autocomplete_light_registry.py.old | 45 ---------------------- 1 file changed, 45 deletions(-) delete mode 100644 galerie/autocomplete_light_registry.py.old diff --git a/galerie/autocomplete_light_registry.py.old b/galerie/autocomplete_light_registry.py.old deleted file mode 100644 index 8a0c5952..00000000 --- a/galerie/autocomplete_light_registry.py.old +++ /dev/null @@ -1,45 +0,0 @@ -from autocomplete_light import shortcuts as autocomplete_light - -from .models import Obrazek, Galerie -from .views import cesta_od_korene - - -class ObrazekAutocomplete(autocomplete_light.AutocompleteModelBase): - - model = Obrazek - search_fields = ['nazev', 'popis'] - split_words = True - limit_choices = 15 - attrs = { - # This will set the input placeholder attribute: - 'placeholder': u'Obrázek', - # This will set the yourlabs.Autocomplete.minimumCharacters - # options, the naming conversion is handled by jQuery - 'data-autocomplete-minimum-characters': 1, - } - - choice_html_format = ''' - <span class="block" data-value="{}"> - <span class="block"> - {} - <span class="block">{}</span> - </span> - </span> - ''' - - def choice_label(self, obrazek): - cesta = "/".join(g.nazev for g in cesta_od_korene(obrazek.galerie)) - popis = "{}<br>".format(obrazek.popis) if obrazek.popis else "" - return '{}<br>{}{}'.format(obrazek.nazev, popis, cesta) - - def choice_html(self, obrazek): - """Vrátí kus html i s obrázkem, které se pak ukazuje v nabídce""" - return self.choice_html_format.format(self.choice_value(obrazek), - obrazek.obrazek_maly_tag(), self.choice_label(obrazek)) - - widget_attrs={ - 'data-widget-maximum-values': 15, - 'class': 'modern-style', - } - -autocomplete_light.register(ObrazekAutocomplete) From 9920465f994aa5fc8d6c0a6b4ab1983cfc30afae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 16:57:39 +0200 Subject: [PATCH 190/225] Split novinek --- mamweb/urls.py | 3 +++ novinky/__init__.py | 3 +++ .../templates/novinky}/novinky.html | 0 .../templates/novinky}/stare_novinky.html | 2 +- novinky/urls.py | 7 ++++++ novinky/views.py | 23 +++++++++++++++++++ .../seminar/titulnistrana/titulnistrana.html | 2 +- seminar/urls.py | 1 - seminar/views/views_all.py | 19 +-------------- 9 files changed, 39 insertions(+), 21 deletions(-) rename {seminar/templates/seminar => novinky/templates/novinky}/novinky.html (100%) rename {seminar/templates/seminar => novinky/templates/novinky}/stare_novinky.html (78%) create mode 100644 novinky/urls.py diff --git a/mamweb/urls.py b/mamweb/urls.py index 4b870fec..95fd90a4 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -39,6 +39,9 @@ urlpatterns = [ # Autentizační aplikace (ma vlastni podadresare) path('', include('various.autentizace.urls')), + # Novinková aplikace (ma vlastni podadresare) + path('', include('novinky.urls')), + # Api (ma vlastni podadresare) (autocomplete apod.) path('', include('api.urls')), diff --git a/novinky/__init__.py b/novinky/__init__.py index e69de29b..26e6a606 100644 --- a/novinky/__init__.py +++ b/novinky/__init__.py @@ -0,0 +1,3 @@ +""" +Obsahuje vše okolo novinek (zpráv „Co je nového?“ na titulní straně). +""" diff --git a/seminar/templates/seminar/novinky.html b/novinky/templates/novinky/novinky.html similarity index 100% rename from seminar/templates/seminar/novinky.html rename to novinky/templates/novinky/novinky.html diff --git a/seminar/templates/seminar/stare_novinky.html b/novinky/templates/novinky/stare_novinky.html similarity index 78% rename from seminar/templates/seminar/stare_novinky.html rename to novinky/templates/novinky/stare_novinky.html index c300eaae..faf4c972 100644 --- a/seminar/templates/seminar/stare_novinky.html +++ b/novinky/templates/novinky/stare_novinky.html @@ -8,6 +8,6 @@ {% endblock %} </h1> - {% include 'seminar/novinky.html' %} + {% include 'novinky/novinky.html' %} {% endblock %} diff --git a/novinky/urls.py b/novinky/urls.py new file mode 100644 index 00000000..6a3be15b --- /dev/null +++ b/novinky/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from .views import StareNovinkyView + +urlpatterns = [ + path('stare-novinky/', StareNovinkyView.as_view(), name='stare_novinky'), +] diff --git a/novinky/views.py b/novinky/views.py index e69de29b..2cb20433 100644 --- a/novinky/views.py +++ b/novinky/views.py @@ -0,0 +1,23 @@ +from django.views import generic + +from .models import Novinky + + +def spravne_novinky(request): + """ + Vrátí správný QuerySet novinek, tedy ten, který daný uživatel smí vidět. + Tj. Organizátorům všechny, ostatním jen veřejné + """ + user = request.user + # Využíváme líné vyhodnocování QuerySetů + qs = Novinky.objects.all() + if not user.je_org: + qs = qs.filter(zverejneno=True) + return qs.order_by('-datum') + + +class StareNovinkyView(generic.ListView): + template_name = 'novinky/stare_novinky.html' + + def get_queryset(self): + return spravne_novinky(self.request) diff --git a/seminar/templates/seminar/titulnistrana/titulnistrana.html b/seminar/templates/seminar/titulnistrana/titulnistrana.html index f79bbbf1..7a6e3185 100644 --- a/seminar/templates/seminar/titulnistrana/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana/titulnistrana.html @@ -95,7 +95,7 @@ function sousdeadline() { {# Novinky #} <h1>Co je nového?</h1> - {% include 'seminar/novinky.html' %} + {% include 'novinky/novinky.html' %} <a href='/stare-novinky/'>Archiv novinek</a> diff --git a/seminar/urls.py b/seminar/urls.py index f740e6a4..d64320c1 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -77,7 +77,6 @@ urlpatterns = [ path('', views.TitulniStranaView.as_view(), name='titulni_strana'), path('jak-resit/', views.JakResitView.as_view(), name='jak_resit'), - path('stare-novinky/', views.StareNovinkyView.as_view(), name='stare_novinky'), # Dočasné & neodladěné: path( diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 31cfbe17..f58e8706 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -18,6 +18,7 @@ from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva from seminar import utils from treenode import treelib +from novinky.views import spravne_novinky import treenode.templatetags as tnltt import treenode.serializers as vr from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ @@ -218,18 +219,6 @@ def ZadaniAktualniVysledkovkaView(request): ### Titulni strana -def spravne_novinky(request): - """ - Vrátí správný QuerySet novinek, tedy ten, který daný uživatel smí vidět. - Tj. Organizátorům všechny, ostatním jen veřejné - """ - user = request.user - # Využíváme líné vyhodnocování QuerySetů - qs = Novinky.objects.all() - if not user.je_org: - qs = qs.filter(zverejneno=True) - return qs.order_by('-datum') - def aktualni_temata(rocnik): """ Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. @@ -264,12 +253,6 @@ class TitulniStranaView(generic.ListView): return context -class StareNovinkyView(generic.ListView): - template_name = 'seminar/stare_novinky.html' - - def get_queryset(self): - return spravne_novinky(self.request) - ### Co je M&M From 0cab9a828600d8ba06f47db241ce9489b3c01fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 17:01:44 +0200 Subject: [PATCH 191/225] =?UTF-8?q?P=C5=99esun=20csrf=5Ferror?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 2 +- various/views/__init__.py | 0 various/{views.py => views/csrf.py} | 0 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 various/views/__init__.py rename various/{views.py => views/csrf.py} (100%) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index f737be1e..30d5bedb 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -54,7 +54,7 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE = True DOBA_ODHLASENI_PRI_ZASKRTNUTI_NEODHLASOVAT = 365 * 24 * 3600 # rok # View pro chybu s CSRF tokenem (např. se sušenkami) -CSRF_FAILURE_VIEW = 'various.views.csrf_error' +CSRF_FAILURE_VIEW = 'various.views.csrf.csrf_error' # Modules configuration diff --git a/various/views/__init__.py b/various/views/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/various/views.py b/various/views/csrf.py similarity index 100% rename from various/views.py rename to various/views/csrf.py From 5f7ec853fa6a8998822adbddd851c4c588c97ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 17:41:24 +0200 Subject: [PATCH 192/225] =?UTF-8?q?P=C5=99esun=20n=C3=A1hodn=C3=BDch=20vie?= =?UTF-8?q?ws=20do=20various?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/urls.py | 3 + odevzdavatko/views.py | 2 +- personalni/views.py | 2 +- .../templates/seminar/jakresit/jak-resit.html | 16 ---- seminar/urls.py | 8 -- seminar/views/views_all.py | 69 ------------------ sifrovacka/views.py | 2 +- .../templates/various}/formular_ok.html | 0 .../templates/various/jakresit/jak-resit.html | 16 ++++ .../various}/jakresit/jakresit_1.svg | 0 .../various}/jakresit/jakresit_2.svg | 0 .../various}/jakresit/jakresit_3.svg | 0 .../templates/various}/pracuje_se.html | 2 +- .../templates/various}/stav_databaze.html | 0 .../various}/titulnistrana/graph.svg | 0 .../various}/titulnistrana/titulnistrana.html | 2 +- various/urls.py | 9 +++ various/views/final.py | 73 +++++++++++++++++++ various/views/pomocne.py | 26 +++++++ vyroci/views.py | 2 +- 20 files changed, 133 insertions(+), 99 deletions(-) delete mode 100644 seminar/templates/seminar/jakresit/jak-resit.html rename {seminar/templates/seminar => various/templates/various}/formular_ok.html (100%) create mode 100644 various/templates/various/jakresit/jak-resit.html rename {seminar/templates/seminar => various/templates/various}/jakresit/jakresit_1.svg (100%) rename {seminar/templates/seminar => various/templates/various}/jakresit/jakresit_2.svg (100%) rename {seminar/templates/seminar => various/templates/various}/jakresit/jakresit_3.svg (100%) rename {seminar/templates/seminar => various/templates/various}/pracuje_se.html (85%) rename {seminar/templates/seminar => various/templates/various}/stav_databaze.html (100%) rename {seminar/templates/seminar => various/templates/various}/titulnistrana/graph.svg (100%) rename {seminar/templates/seminar => various/templates/various}/titulnistrana/titulnistrana.html (97%) create mode 100644 various/urls.py create mode 100644 various/views/final.py create mode 100644 various/views/pomocne.py diff --git a/mamweb/urls.py b/mamweb/urls.py index 95fd90a4..9d438d93 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -51,6 +51,9 @@ urlpatterns = [ # Aesop (ma vlastni podadresare) path('', include('aesop.urls')), + # Various = co se nevešlo jinam + path('', include('various.urls')), + # REST API # path('api/', include(router.urls)), diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index e5de47c2..9215d3f8 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -21,7 +21,7 @@ import seminar.models as m from . import forms as f from .forms import OdevzdavatkoTabulkaFiltrForm as FiltrForm from seminar.utils import resi_v_rocniku -from seminar.views import formularOKView +from various.views.pomocne import formularOKView logger = logging.getLogger(__name__) diff --git a/personalni/views.py b/personalni/views.py index c2712b30..96ef2405 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -17,7 +17,7 @@ from datetime import date import logging import csv -from seminar.views import formularOKView +from various.views.pomocne import formularOKView from various.autentizace.views import LoginView from various.autentizace.utils import posli_reset_hesla diff --git a/seminar/templates/seminar/jakresit/jak-resit.html b/seminar/templates/seminar/jakresit/jak-resit.html deleted file mode 100644 index fd278c68..00000000 --- a/seminar/templates/seminar/jakresit/jak-resit.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends 'base.html' %} - -{% load humanize %} -{% load static %} - - -{% block content %} - -<div class=jakresit> - -{% include 'seminar/jakresit/jakresit_1.svg' %} -{% include 'seminar/jakresit/jakresit_2.svg' %} -{% include 'seminar/jakresit/jakresit_3.svg' %} - -</div> -{% endblock %} diff --git a/seminar/urls.py b/seminar/urls.py index d64320c1..afc2cd1d 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -65,19 +65,11 @@ urlpatterns = [ org_required(views.TitulyView), name='seminar_cislo_titul' ), - path( - 'stav', - org_required(views.StavDatabazeView), - name='stav_databaze' - ), path( 'cislo/<int:trocnik>.<str:tcislo>/odmeny/<int:frocnik>.<str:fcislo>/', org_required(views.OdmenyView.as_view()), name="seminar_archiv_odmeny"), - path('', views.TitulniStranaView.as_view(), name='titulni_strana'), - path('jak-resit/', views.JakResitView.as_view(), name='jak_resit'), - # Dočasné & neodladěné: path( 'hidden/hromadne_pridani', diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index f58e8706..3c3d4b16 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -18,7 +18,6 @@ from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva from seminar import utils from treenode import treelib -from novinky.views import spravne_novinky import treenode.templatetags as tnltt import treenode.serializers as vr from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ @@ -37,7 +36,6 @@ from django.conf import settings import unicodedata import logging import time -from collections.abc import Sequence import http from seminar.utils import aktivniResitele @@ -226,33 +224,6 @@ def aktualni_temata(rocnik): return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') -class TitulniStranaView(generic.ListView): - template_name= 'seminar/titulnistrana/titulnistrana.html' - - def get_queryset(self): - return spravne_novinky(self.request)[:3] - - def get_context_data(self, **kwargs): - context = super(TitulniStranaView, self).get_context_data(**kwargs) - nastaveni = get_object_or_404(Nastaveni) - - deadline = m.Deadline.objects.filter(deadline__gte=timezone.now()).order_by("deadline").first() - context['nejblizsi_deadline'] = deadline - - # Aktuální témata - nazvy_a_odkazy_na_aktualni_temata = [] - akt_temata = aktualni_temata(nastaveni.aktualni_rocnik) - - for tema in akt_temata: - # FIXME: netuším, jestli funguje tema.verejne_url(), nemáme testdata na témátka - je to asi url vzhledem k ročníku - nazvy_a_odkazy_na_aktualni_temata.append({'nazev':tema.nazev,'url':tema.verejne_url()}) - - context['aktualni_temata'] = nazvy_a_odkazy_na_aktualni_temata - - print(context) - - return context - ### Co je M&M @@ -652,47 +623,7 @@ class ClankyResitelView(generic.ListView): # queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') -### Status -def StavDatabazeView(request): -# nastaveni = Nastaveni.objects.get() - problemy = utils.seznam_problemu() - muzi = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_MUZSKE) - zeny = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_ZENSKE) - return render(request, 'seminar/stav_databaze.html', - { -# 'nastaveni': nastaveni, - 'problemy': problemy, - - 'resitele': Resitel.objects.all(), - 'muzi': muzi, - 'zeny': zeny, - 'jmena_muzu': utils.histogram([r.osoba.jmeno for r in muzi]), - 'jmena_zen': utils.histogram([r.osoba.jmeno for r in zeny]), - }) - - -# Interní, nemá se nikdy objevit v urls (jinak to účastníci vytrolí) -def formularOKView(request, text='', dalsi_odkazy: Sequence[tuple[str, str]] = ()): - template_name = 'seminar/formular_ok.html' - odkazy = list(dalsi_odkazy) + [ - # (Text, odkaz) - ('Vrátit se na titulní stránku', reverse('titulni_strana')), - ('Zobrazit aktuální zadání', reverse('seminar_aktualni_zadani')), - ] - context = { - 'odkazy': odkazy, - 'text': text, - } - return render(request, template_name, context) - -#------------------ Jak řešit - možná má být udělané úplně jinak - -class JakResitView(generic.ListView): - template_name = 'seminar/jakresit/jak-resit.html' - - def get_queryset(self): - return None class AktualniRocnikRedirectView(RedirectView): permanent=False diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 0bfa994f..2a111faf 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -1,7 +1,7 @@ from django.urls import reverse from django.views.generic import FormView, ListView -from seminar.views import formularOKView +from various.views.pomocne import formularOKView from .forms import SifrovackaForm, NapovedaForm from .models import OdpovedUcastnika, SpravnaOdpoved, Napoveda, NapovezenoUcastnikovi from personalni.models import Resitel diff --git a/seminar/templates/seminar/formular_ok.html b/various/templates/various/formular_ok.html similarity index 100% rename from seminar/templates/seminar/formular_ok.html rename to various/templates/various/formular_ok.html diff --git a/various/templates/various/jakresit/jak-resit.html b/various/templates/various/jakresit/jak-resit.html new file mode 100644 index 00000000..8aba9597 --- /dev/null +++ b/various/templates/various/jakresit/jak-resit.html @@ -0,0 +1,16 @@ +{% extends 'base.html' %} + +{% load humanize %} +{% load static %} + + +{% block content %} + +<div class=jakresit> + +{% include 'various/jakresit/jakresit_1.svg' %} +{% include 'various/jakresit/jakresit_2.svg' %} +{% include 'various/jakresit/jakresit_3.svg' %} + +</div> +{% endblock %} diff --git a/seminar/templates/seminar/jakresit/jakresit_1.svg b/various/templates/various/jakresit/jakresit_1.svg similarity index 100% rename from seminar/templates/seminar/jakresit/jakresit_1.svg rename to various/templates/various/jakresit/jakresit_1.svg diff --git a/seminar/templates/seminar/jakresit/jakresit_2.svg b/various/templates/various/jakresit/jakresit_2.svg similarity index 100% rename from seminar/templates/seminar/jakresit/jakresit_2.svg rename to various/templates/various/jakresit/jakresit_2.svg diff --git a/seminar/templates/seminar/jakresit/jakresit_3.svg b/various/templates/various/jakresit/jakresit_3.svg similarity index 100% rename from seminar/templates/seminar/jakresit/jakresit_3.svg rename to various/templates/various/jakresit/jakresit_3.svg diff --git a/seminar/templates/seminar/pracuje_se.html b/various/templates/various/pracuje_se.html similarity index 85% rename from seminar/templates/seminar/pracuje_se.html rename to various/templates/various/pracuje_se.html index 1a396534..e80fea23 100644 --- a/seminar/templates/seminar/pracuje_se.html +++ b/various/templates/various/pracuje_se.html @@ -10,7 +10,7 @@ <p> Na této stránce velmi intenzivně pracujeme. Za dočasnou nedostupnost se omlouváme. - Zkuste přejít na <a href="/">titulní stránku</a> + Zkuste přejít na <a href="/static">titulní stránku</a> nebo se podívat na <a href="{% url 'seminar_aktualni_zadani' %}">aktuální zadání</a>. </p> <img src="{% static '404.png' %}"> diff --git a/seminar/templates/seminar/stav_databaze.html b/various/templates/various/stav_databaze.html similarity index 100% rename from seminar/templates/seminar/stav_databaze.html rename to various/templates/various/stav_databaze.html diff --git a/seminar/templates/seminar/titulnistrana/graph.svg b/various/templates/various/titulnistrana/graph.svg similarity index 100% rename from seminar/templates/seminar/titulnistrana/graph.svg rename to various/templates/various/titulnistrana/graph.svg diff --git a/seminar/templates/seminar/titulnistrana/titulnistrana.html b/various/templates/various/titulnistrana/titulnistrana.html similarity index 97% rename from seminar/templates/seminar/titulnistrana/titulnistrana.html rename to various/templates/various/titulnistrana/titulnistrana.html index 7a6e3185..10354c2f 100644 --- a/seminar/templates/seminar/titulnistrana/titulnistrana.html +++ b/various/templates/various/titulnistrana/titulnistrana.html @@ -79,7 +79,7 @@ function sousdeadline() { <div class="graf"> <div class="graf-svg"> - {% include 'seminar/titulnistrana/graph.svg' %} <!-- TODO: aby to nemuselo být v templates --> + {% include 'various/titulnistrana/graph.svg' %} <!-- TODO: aby to nemuselo být v templates --> </div> <span class="zjistit_vic"> diff --git a/various/urls.py b/various/urls.py new file mode 100644 index 00000000..ae2d3042 --- /dev/null +++ b/various/urls.py @@ -0,0 +1,9 @@ +from django.urls import path +from .views.final import TitulniStranaView, JakResitView, StavDatabazeView +from seminar.utils import org_required + +urlpatterns = [ + path('', TitulniStranaView.as_view(), name='titulni_strana'), + path('jak-resit/', JakResitView.as_view(), name='jak_resit'), + path('stav', org_required(StavDatabazeView), name='stav_databaze'), +] diff --git a/various/views/final.py b/various/views/final.py new file mode 100644 index 00000000..a4c06f74 --- /dev/null +++ b/various/views/final.py @@ -0,0 +1,73 @@ +""" +Stránky, které se mi nepovedlo lépe zařadit. + +Oproti `./pomocne.py` se tyto views používají přímo ve various +a naopak importují spoustu věcí odjinud +""" + +from django.shortcuts import get_object_or_404, render +from django.utils import timezone +from django.views import generic + +import novinky.views +import seminar.utils +import seminar.views +from personalni.models import Resitel +from seminar import models as m + +from ..models import Nastaveni + + +class TitulniStranaView(generic.ListView): + template_name = 'various/titulnistrana/titulnistrana.html' + + def get_queryset(self): + return novinky.views.spravne_novinky(self.request)[:3] + + def get_context_data(self, **kwargs): + context = super(TitulniStranaView, self).get_context_data(**kwargs) + nastaveni = get_object_or_404(Nastaveni) + + deadline = m.Deadline.objects.filter( + deadline__gte=timezone.now()).order_by("deadline").first() + context['nejblizsi_deadline'] = deadline + + # Aktuální témata + nazvy_a_odkazy_na_aktualni_temata = [] + akt_temata = seminar.views.aktualni_temata(nastaveni.aktualni_rocnik) + + for tema in akt_temata: + # FIXME: netuším, jestli funguje tema.verejne_url(), nemáme testdata na témátka - je to asi url vzhledem k ročníku + nazvy_a_odkazy_na_aktualni_temata.append({ + 'nazev': tema.nazev, + 'url': tema.verejne_url() + }) + + context['aktualni_temata'] = nazvy_a_odkazy_na_aktualni_temata + + return context + + +class JakResitView(generic.ListView): + template_name = 'various/jakresit/jak-resit.html' + + def get_queryset(self): + return None + + +### Status +def StavDatabazeView(request): + # nastaveni = Nastaveni.objects.get() + problemy = seminar.utils.seznam_problemu() + muzi = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_MUZSKE) + zeny = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_ZENSKE) + return render(request, 'various/stav_databaze.html', { + # 'nastaveni': nastaveni, + 'problemy': problemy, + + 'resitele': Resitel.objects.all(), + 'muzi': muzi, + 'zeny': zeny, + 'jmena_muzu': seminar.utils.histogram([r.osoba.jmeno for r in muzi]), + 'jmena_zen': seminar.utils.histogram([r.osoba.jmeno for r in zeny]), + }) diff --git a/various/views/pomocne.py b/various/views/pomocne.py new file mode 100644 index 00000000..42547467 --- /dev/null +++ b/various/views/pomocne.py @@ -0,0 +1,26 @@ +""" +Stránky, které se mi nepovedlo lépe zařadit. + +Oproti `./final.py` se tyto views importují odjinud +tedy ideálně neimportovat sem nic od jinud +""" + +from typing import Sequence + +from django.shortcuts import render +from django.urls import reverse + + +# Interní, nemá se nikdy objevit v urls (jinak to účastníci vytrolí) +def formularOKView(request, text='', dalsi_odkazy: Sequence[tuple[str, str]] = ()): + template_name = 'seminar/formular_ok.html' + odkazy = list(dalsi_odkazy) + [ + # (Text, odkaz) + ('Vrátit se na titulní stránku', reverse('titulni_strana')), + ('Zobrazit aktuální zadání', reverse('seminar_aktualni_zadani')), + ] + context = { + 'odkazy': odkazy, + 'text': text, + } + return render(request, template_name, context) diff --git a/vyroci/views.py b/vyroci/views.py index 207ed619..455d6e25 100644 --- a/vyroci/views.py +++ b/vyroci/views.py @@ -1,7 +1,7 @@ from django.views.generic import FormView, ListView from seminar.models import Osoba -from seminar.views import formularOKView +from various.views.pomocne import formularOKView from .forms import UcastnikVyrociForm from .models import UcastnikVyroci From a6eebb2d59d35dc61e5a49cbc41b28d94234aa72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 18:15:01 +0200 Subject: [PATCH 193/225] =?UTF-8?q?Seznam=20organiz=C3=A1tor=C5=AF=20do=20?= =?UTF-8?q?person=C3=A1ln=C3=ADho?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/personalni}/organizatori.html | 0 personalni/urls.py | 12 +++++++ personalni/views.py | 29 +++++++++++++++++ seminar/urls.py | 4 --- seminar/views/views_all.py | 31 +------------------ 5 files changed, 42 insertions(+), 34 deletions(-) rename {seminar/templates/seminar/cojemam => personalni/templates/personalni}/organizatori.html (100%) diff --git a/seminar/templates/seminar/cojemam/organizatori.html b/personalni/templates/personalni/organizatori.html similarity index 100% rename from seminar/templates/seminar/cojemam/organizatori.html rename to personalni/templates/personalni/organizatori.html diff --git a/personalni/urls.py b/personalni/urls.py index 73a6f720..eae46257 100644 --- a/personalni/urls.py +++ b/personalni/urls.py @@ -21,4 +21,16 @@ urlpatterns = [ # Obecný view na profil -- orgům dá rozcestník, řešitelům jejich stránku path('profil/', views.profilView, name='profil'), + # Seznam organizátorů + path( + 'o-nas/organizatori/', + views.CojemamOrganizatoriView.as_view(), + name='organizatori' + ), + path( + 'o-nas/organizatori/organizovali/', + views.CojemamOrganizatoriStariView.as_view(), + name='stari_organizatori' + ), + ] diff --git a/personalni/views.py b/personalni/views.py index 96ef2405..da3ed07e 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -8,6 +8,7 @@ from django.contrib.auth.models import User, Permission, Group, AnonymousUser from django.contrib.auth.mixins import LoginRequiredMixin from django.db import transaction from django.http import HttpResponse +from django.utils import timezone import seminar.models as s import seminar.models as m @@ -23,6 +24,34 @@ from various.autentizace.utils import posli_reset_hesla from django.forms.models import model_to_dict +from .models import Organizator + + +def aktivniOrganizatori(datum=timezone.now()): + return Organizator.objects.exclude( + organizuje_do__isnull=False, + organizuje_do__lt=datum + ).order_by('osoba__jmeno') + + +class CojemamOrganizatoriView(generic.ListView): + model = Organizator + template_name = 'personalni/organizatori.html' + queryset = aktivniOrganizatori() + + def get_context_data(self, **kwargs): + context = super(CojemamOrganizatoriView, self).get_context_data(**kwargs) + context['aktivni'] = True + return context + + +class CojemamOrganizatoriStariView(generic.ListView): + model = Organizator + template_name = 'personalni/organizatori.html' + queryset = Organizator.objects.exclude( + id__in=aktivniOrganizatori() + ).order_by('-organizuje_do') + class OrgoRozcestnikView(TemplateView): """ Zobrazí organizátorský rozcestník.""" diff --git a/seminar/urls.py b/seminar/urls.py index afc2cd1d..275f64ba 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -6,10 +6,6 @@ urlpatterns = [ # path('aktualni/temata/', views.TemataRozcestnikView), # path('<int:rocnik>/t<int:tematko>/', views.TematkoView), - # Organizatori - path('o-nas/organizatori/', views.CojemamOrganizatoriView.as_view(), name='organizatori'), - path('o-nas/organizatori/organizovali/', views.CojemamOrganizatoriStariView.as_view(), name='stari_organizatori'), - # Archiv path('archiv/rocniky/', views.ArchivView.as_view(), name="seminar_archiv_rocniky"), path('archiv/temata/', views.ArchivTemataView.as_view(), name="seminar_archiv_temata"), diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 3c3d4b16..f838481c 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -13,7 +13,7 @@ from django.contrib.staticfiles.finders import find import seminar.models as s import seminar.models as m from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ - Organizator, Resitel, Novinky, Tema, Clanek, \ + Resitel, Novinky, Tema, Clanek, \ Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva from seminar import utils @@ -24,7 +24,6 @@ from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ VysledkovkaRocniku, VysledkovkaDoTeXu from datetime import date, datetime -from django.utils import timezone from itertools import groupby from collections import OrderedDict import tempfile @@ -224,34 +223,6 @@ def aktualni_temata(rocnik): return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') -### Co je M&M - - -# Organizatori -def aktivniOrganizatori(datum=timezone.now()): - return Organizator.objects.exclude( - organizuje_do__isnull=False, - organizuje_do__lt=datum - ).order_by('osoba__jmeno') - - -class CojemamOrganizatoriView(generic.ListView): - model = Organizator - template_name = 'seminar/cojemam/organizatori.html' - queryset = aktivniOrganizatori() - - def get_context_data(self, **kwargs): - context = super(CojemamOrganizatoriView, self).get_context_data(**kwargs) - context['aktivni'] = True - return context - - -class CojemamOrganizatoriStariView(generic.ListView): - model = Organizator - template_name = 'seminar/cojemam/organizatori.html' - queryset = Organizator.objects.exclude( - id__in=aktivniOrganizatori()).order_by('-organizuje_do') - ### Archiv From ba2ea74a049f0167770a5d385261bb6e257c287c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 18:21:50 +0200 Subject: [PATCH 194/225] =?UTF-8?q?Ob=C3=A1lky=20do=20person=C3=A1ln=C3=AD?= =?UTF-8?q?ho?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/personalni}/obalky.tex | 0 personalni/views.py | 31 +++++++++++++++++++ seminar/views/views_all.py | 30 ++---------------- soustredeni/views.py | 4 +-- 4 files changed, 35 insertions(+), 30 deletions(-) rename {seminar/templates/seminar/archiv => personalni/templates/personalni}/obalky.tex (100%) diff --git a/seminar/templates/seminar/archiv/obalky.tex b/personalni/templates/personalni/obalky.tex similarity index 100% rename from seminar/templates/seminar/archiv/obalky.tex rename to personalni/templates/personalni/obalky.tex diff --git a/personalni/views.py b/personalni/views.py index da3ed07e..a4c410be 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -1,3 +1,8 @@ +import tempfile +import subprocess +import shutil +import http + from django.shortcuts import render from django.urls import reverse from django.views import generic @@ -6,6 +11,7 @@ from django.views.decorators.debug import sensitive_post_parameters from django.views.generic.base import TemplateView from django.contrib.auth.models import User, Permission, Group, AnonymousUser from django.contrib.auth.mixins import LoginRequiredMixin +from django.contrib.staticfiles.finders import find from django.db import transaction from django.http import HttpResponse from django.utils import timezone @@ -53,6 +59,31 @@ class CojemamOrganizatoriStariView(generic.ListView): ).order_by('-organizuje_do') +def obalkyView(request, resitele): + if len(resitele) == 0: + return HttpResponse( + render(request, 'universal.html', { + 'title': 'Není pro koho vyrobit obálky.', + 'text': 'Právě ses pokusil/a vygenerovat obálky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)', + }), + status=http.HTTPStatus.NOT_FOUND, + ) + + tex = render(request, 'personalni/obalky.tex', { + 'resitele': resitele + }).content + + with tempfile.TemporaryDirectory() as tempdir: + with open(tempdir+"/obalky.tex", "w") as texfile: + texfile.write(tex.decode()) + shutil.copy(find('seminar/lisak.pdf'), tempdir) + subprocess.call(["pdflatex", "obalky.tex"], cwd=tempdir) + + with open(tempdir+"/obalky.pdf", "rb") as pdffile: + response = HttpResponse(pdffile.read(), content_type='application/pdf') + return response + + class OrgoRozcestnikView(TemplateView): """ Zobrazí organizátorský rozcestník.""" diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index f838481c..9f115687 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -8,7 +8,6 @@ from django.http import Http404 from django.db.models import Q, Sum, Count from django.views.generic.base import RedirectView from django.core.exceptions import PermissionDenied -from django.contrib.staticfiles.finders import find import seminar.models as s import seminar.models as m @@ -26,18 +25,15 @@ from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ from datetime import date, datetime from itertools import groupby from collections import OrderedDict -import tempfile -import subprocess -import shutil import os import os.path as op from django.conf import settings import unicodedata import logging import time -import http from seminar.utils import aktivniResitele +import personalni.views # ze starého modelu #def verejna_temata(rocnik): @@ -485,31 +481,9 @@ class RocnikVysledkovkaView(RocnikView): def cisloObalkyView(request, rocnik, cislo): realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) - return obalkyView(request, aktivniResitele(realne_cislo)) + return personalni.views.obalkyView(request, aktivniResitele(realne_cislo)) -def obalkyView(request, resitele): - if len(resitele) == 0: - return HttpResponse( - render(request, 'universal.html', { - 'title': 'Není pro koho vyrobit obálky.', - 'text': 'Právě ses pokusil/a vygenerovat obálky pro prázdnou množinu lidí. Můžeš to zkusit změnit, případně se zeptej webařů :-)', - }), - status=http.HTTPStatus.NOT_FOUND, - ) - - tex = render(request,'seminar/archiv/obalky.tex', {'resitele': resitele}).content - - with tempfile.TemporaryDirectory() as tempdir: - with open(tempdir+"/obalky.tex","w") as texfile: - texfile.write(tex.decode()) - shutil.copy(find('seminar/lisak.pdf'), tempdir) - subprocess.call(["pdflatex","obalky.tex"], cwd = tempdir) - - with open(tempdir+"/obalky.pdf","rb") as pdffile: - response = HttpResponse(pdffile.read(), content_type='application/pdf') - return response - ### Tituly def TitulyViewRocnik(request, rocnik): diff --git a/soustredeni/views.py b/soustredeni/views.py index f150b6b8..4b8fb91f 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -11,7 +11,7 @@ import subprocess from pathlib import Path import http -from seminar.views import obalkyView +import personalni.views class SoustredeniListView(generic.ListView): @@ -34,7 +34,7 @@ class SoustredeniListView(generic.ListView): def soustredeniObalkyView(request, soustredeni): soustredeni = get_object_or_404(Soustredeni, id=soustredeni) - return obalkyView(request, soustredeni.ucastnici.all()) + return personalni.views.obalkyView(request, soustredeni.ucastnici.all()) class SoustredeniUcastniciBaseView(generic.ListView): From 31b7cbb8d742e7cc9bea5574caf62f5125ee4f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 18:53:35 +0200 Subject: [PATCH 195/225] Tvorba (templates, admin, views) --- api/tests/test_skola_autocomplete.py | 1 - mamweb/settings_common.py | 1 + mamweb/urls.py | 4 +- seminar/admin.py | 165 +--------------- treenode/templates/treenode/orphanage.html | 2 +- tvorba/__init__.py | 0 tvorba/admin.py | 177 ++++++++++++++++++ tvorba/apps.py | 6 + tvorba/migrations/__init__.py | 0 .../templates/tvorba}/archiv/cisla.html | 0 .../templates/tvorba}/archiv/cislo.html | 0 .../tvorba}/archiv/cislo_vysledkovka.tex | 0 .../templates/tvorba}/archiv/odmeny.html | 0 .../templates/tvorba}/archiv/prispevek.html | 0 .../templates/tvorba}/archiv/problem.html | 0 .../tvorba}/archiv/problem_clanek.html | 0 .../tvorba}/archiv/problem_tema.html | 0 .../tvorba}/archiv/problem_uloha.html | 0 .../tvorba}/archiv/problem_uloha_tema.html | 0 .../templates/tvorba}/archiv/rocnik.html | 0 .../tvorba}/archiv/rocnik_vysledkovka.tex | 0 .../templates/tvorba}/archiv/temata.html | 0 .../templates/tvorba}/archiv/tituly.tex | 0 .../tvorba}/clanky/organizatorske_clanky.html | 0 .../tvorba}/clanky/resitelske_clanky.html | 0 .../templates/tvorba}/tematka/rozcestnik.html | 0 .../templates/tvorba}/tematka/toaletak.html | 0 .../tvorba}/zadani/AktualniVysledkovka.html | 0 .../tvorba}/zadani/AktualniZadani.html | 0 .../templates/tvorba}/zadani/Temata.html | 0 {seminar => tvorba}/urls.py | 2 +- {seminar => tvorba}/views/__init__.py | 0 {seminar => tvorba}/views/docasne.py | 0 {seminar => tvorba}/views/views_all.py | 38 ++-- various/admin.py | 5 + various/views/final.py | 4 +- 36 files changed, 215 insertions(+), 190 deletions(-) create mode 100644 tvorba/__init__.py create mode 100644 tvorba/admin.py create mode 100644 tvorba/apps.py create mode 100644 tvorba/migrations/__init__.py rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/cisla.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/cislo.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/cislo_vysledkovka.tex (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/odmeny.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/prispevek.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/problem.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/problem_clanek.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/problem_tema.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/problem_uloha.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/problem_uloha_tema.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/rocnik.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/rocnik_vysledkovka.tex (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/temata.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/archiv/tituly.tex (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/clanky/organizatorske_clanky.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/clanky/resitelske_clanky.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/tematka/rozcestnik.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/tematka/toaletak.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/zadani/AktualniVysledkovka.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/zadani/AktualniZadani.html (100%) rename {seminar/templates/seminar => tvorba/templates/tvorba}/zadani/Temata.html (100%) rename {seminar => tvorba}/urls.py (98%) rename {seminar => tvorba}/views/__init__.py (100%) rename {seminar => tvorba}/views/docasne.py (100%) rename {seminar => tvorba}/views/views_all.py (94%) diff --git a/api/tests/test_skola_autocomplete.py b/api/tests/test_skola_autocomplete.py index 36df97e8..f69669f0 100644 --- a/api/tests/test_skola_autocomplete.py +++ b/api/tests/test_skola_autocomplete.py @@ -1,7 +1,6 @@ from django.test import TestCase, tag from django.urls import reverse import seminar.models as m -import seminar.views as v from seminar.utils import sync_skoly @tag('stejny-model-na-produkci') diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 30d5bedb..078c3d4d 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -131,6 +131,7 @@ INSTALLED_APPS = ( # MaMweb 'mamweb', 'seminar', + 'tvorba', 'galerie', 'korektury', 'prednasky', diff --git a/mamweb/urls.py b/mamweb/urls.py index 9d438d93..4152ae80 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -17,8 +17,8 @@ urlpatterns = [ path('admin/', admin.site.urls), # NOQA path('ckeditor/', include('ckeditor_uploader.urls')), - # Seminarova aplikace (ma vlastni podadresare) - path('', include('seminar.urls')), + # Tvorba = ročníky, čísla, problémy atd. (ma vlastni podadresare) + path('', include('tvorba.urls')), # Odevzdavatko (ma vlastni podadresare) path('', include('odevzdavatko.urls')), diff --git a/seminar/admin.py b/seminar/admin.py index f8768ddf..b806edab 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -1,173 +1,11 @@ from django.contrib import admin from django.db import models -from django.forms import widgets, ModelForm -from django.core.exceptions import ValidationError - -from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter -from solo.admin import SingletonModelAdmin -from django.utils.safestring import mark_safe +from django.forms import widgets # Todo: reversion import seminar.models as m -admin.site.register(m.Rocnik) -admin.site.register(m.ZmrazenaVysledkovka) - -@admin.register(m.Deadline) -class DeadlineAdmin(admin.ModelAdmin): - actions = ['pregeneruj_vysledkovku'] - - # Nikomu nezobrazovat, ale superuživatelům se může hodit :-) - @admin.action(permissions=['bazmek'], description= 'Přegeneruj výsledkovky vybraných deadlinů') - def pregeneruj_vysledkovku(self, req, qs): - for deadline in qs: - deadline.vygeneruj_vysledkovku() - - def has_bazmek_permission(self, request): - # Boilerplate: potřebujeme nějakou permission, protože nějaká haluz v Djangu… - return request.user.is_superuser - -class DeadlineAdminInline(admin.TabularInline): - model = m.Deadline - extra = 0 - -class CisloForm(ModelForm): - class Meta: - model = m.Cislo - fields = '__all__' - - def clean(self): - if self.cleaned_data.get('verejne_db') == False: - return self.cleaned_data - # cn = m.CisloNode.objects.get(cislo=self.instance) - # errors = [] - # for ch in tl.all_children(cn): - # if isinstance(ch, m.TemaVCisleNode): - # if ch.tema.stav not in \ - # (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - # errors.append(ValidationError('Téma %(tema)s není zadané ani vyřešené', params={'tema':ch.tema})) - # - # if isinstance(ch, m.UlohaZadaniNode) or isinstance(ch, m.UlohaVzorakNode): - # if ch.uloha.stav not in \ - # (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - # errors.append(ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha':ch.uloha})) - # if isinstance(ch, m.ReseniNode): - # for problem in ch.reseni.problem_set: - # if problem not in \ - # (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - # errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem)) - # if errors: - # errors.append(ValidationError(mark_safe('<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) - # raise ValidationError(errors) - - errors = [] - for ch in m.Uloha.objects.filter(cislo_zadani=self.instance): - if ch.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - errors.append( - ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha': ch})) - if errors: - errors.append(ValidationError(mark_safe( - '<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) - if self.cleaned_data.get('datum_vydani') == None: - self.add_error('datum_vydani','Číslo určené ke zveřejnění nemá nastavené datum vydání') - - if errors: - raise ValidationError(errors) - - return self.cleaned_data - - -@admin.register(m.Cislo) -class CisloAdmin(admin.ModelAdmin): - form = CisloForm - actions = ['force_publish', 'pregeneruj_vysledkovky'] - inlines = (DeadlineAdminInline,) - - def force_publish(self,request,queryset): - for cislo in queryset: - # cn = m.CisloNode.objects.get(cislo=cislo) - # for ch in tl.all_children(cn): - # if isinstance(ch, m.TemaVCisleNode): - # if ch.tema.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - # ch.tema.stav = m.Problem.STAV_ZADANY - # ch.tema.save() - # - # if isinstance(ch, m.UlohaZadaniNode) or isinstance(ch, m.UlohaVzorakNode): - # if ch.uloha.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - # ch.uloha.stav = m.Problem.STAV_ZADANY - # ch.uloha.save() - # if isinstance(ch, m.ReseniNode): - # for problem in ch.reseni.problem_set: - # if problem not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - # problem.stav = m.Problem.STAV_ZADANY - # problem.save() - - for ch in m.Uloha.objects.filter(cislo_zadani=cislo): - if ch.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - ch.stav = m.Problem.STAV_ZADANY - ch.save() - - hp = ch.hlavni_problem - if hp.stav not in (m.Problem.STAV_ZADANY, m.Problem.STAV_VYRESENY): - hp.stav = m.Problem.STAV_ZADANY - hp.save() - - # TODO Řešení, vzoráky? - # TODO Konfera/Článek? - - cislo.verejne_db = True - cislo.save() - - force_publish.short_description = 'Zveřejnit vybraná čísla a všechny návrhy úloh v nich učinit zadanými' - - # Jen pro superuživatele - @admin.action(permissions=['bazmek'], description='Přegenerovat výsledkovky všech deadlinů vybraných čísel') - def pregeneruj_vysledkovky(self, req, qs): - for cislo in qs: - for deadline in cislo.deadline_v_cisle.all(): - deadline.vygeneruj_vysledkovku() - - def has_bazmek_permission(self, request): - # Boilerplate: potřebujeme nějakou permission, protože nějaká haluz v Djangu… - return request.user.is_superuser - - -@admin.register(m.Problem) -class ProblemAdmin(PolymorphicParentModelAdmin): - base_model = m.Problem - child_models = [ - m.Tema, - m.Clanek, - m.Uloha, - m.Konfera, - ] - # Pokud chceme orezavat na aktualni rocnik, musime do modelu pridat odkaz na rocnik. Zatim bere vse. - search_fields = ['nazev'] - -# V ProblemAdmin to nejde, protoze se to nepropise do deti -class ProblemAdminMixin(object): - show_in_index = True - autocomplete_fields = ['nadproblem','autor','garant'] - filter_horizontal = ['opravovatele'] - - -@admin.register(m.Tema) -class TemaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): - base_model = m.Tema - -@admin.register(m.Clanek) -class ClanekAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): - base_model = m.Clanek - -@admin.register(m.Uloha) -class UlohaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): - base_model = m.Uloha - -@admin.register(m.Konfera) -class KonferaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): - base_model = m.Konfera - class TextAdminInline(admin.TabularInline): model = m.Text @@ -180,4 +18,3 @@ admin.site.register(m.Text) # admin.site.register(m.Pohadka) admin.site.register(m.Obrazek) -admin.site.register(m.Nastaveni, SingletonModelAdmin) diff --git a/treenode/templates/treenode/orphanage.html b/treenode/templates/treenode/orphanage.html index 53d4ed67..551ea544 100644 --- a/treenode/templates/treenode/orphanage.html +++ b/treenode/templates/treenode/orphanage.html @@ -1,4 +1,4 @@ -{% extends "seminar/archiv/base.html" %} +{% extends "tvorba/archiv/base.html" %} {% load static %} {% block custom_css %} diff --git a/tvorba/__init__.py b/tvorba/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tvorba/admin.py b/tvorba/admin.py new file mode 100644 index 00000000..817c16d3 --- /dev/null +++ b/tvorba/admin.py @@ -0,0 +1,177 @@ +from django.contrib import admin +from django.db import models +from django.forms import widgets, ModelForm +from django.core.exceptions import ValidationError + +from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter +from django.utils.safestring import mark_safe + +# Todo: reversion + +import soustredeni.models + +from seminar.models.tvorba import Rocnik, ZmrazenaVysledkovka, Deadline, Uloha, Problem, Tema, Clanek, Cislo + +admin.site.register(Rocnik) +admin.site.register(ZmrazenaVysledkovka) + +@admin.register(Deadline) +class DeadlineAdmin(admin.ModelAdmin): + actions = ['pregeneruj_vysledkovku'] + + # Nikomu nezobrazovat, ale superuživatelům se může hodit :-) + @admin.action(permissions=['bazmek'], description= 'Přegeneruj výsledkovky vybraných deadlinů') + def pregeneruj_vysledkovku(self, req, qs): + for deadline in qs: + deadline.vygeneruj_vysledkovku() + + def has_bazmek_permission(self, request): + # Boilerplate: potřebujeme nějakou permission, protože nějaká haluz v Djangu… + return request.user.is_superuser + + +class DeadlineAdminInline(admin.TabularInline): + model = Deadline + extra = 0 + + +class CisloForm(ModelForm): + class Meta: + model = Cislo + fields = '__all__' + + def clean(self): + if self.cleaned_data.get('verejne_db') == False: + return self.cleaned_data + # cn = CisloNode.objects.get(cislo=self.instance) + # errors = [] + # for ch in tl.all_children(cn): + # if isinstance(ch, TemaVCisleNode): + # if ch.tema.stav not in \ + # (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + # errors.append(ValidationError('Téma %(tema)s není zadané ani vyřešené', params={'tema':ch.tema})) + # + # if isinstance(ch, UlohaZadaniNode) or isinstance(ch, UlohaVzorakNode): + # if ch.uloha.stav not in \ + # (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + # errors.append(ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha':ch.uloha})) + # if isinstance(ch, ReseniNode): + # for problem in ch.reseni.problem_set: + # if problem not in \ + # (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + # errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem)) + # if errors: + # errors.append(ValidationError(mark_safe('<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) + # raise ValidationError(errors) + + errors = [] + for ch in Uloha.objects.filter(cislo_zadani=self.instance): + if ch.stav not in (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + errors.append( + ValidationError('Úloha %(uloha)s není zadaná ani vyřešená', params={'uloha': ch})) + if errors: + errors.append(ValidationError(mark_safe( + '<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>'))) + if self.cleaned_data.get('datum_vydani') == None: + self.add_error('datum_vydani','Číslo určené ke zveřejnění nemá nastavené datum vydání') + + if errors: + raise ValidationError(errors) + + return self.cleaned_data + + +@admin.register(Cislo) +class CisloAdmin(admin.ModelAdmin): + form = CisloForm + actions = ['force_publish', 'pregeneruj_vysledkovky'] + inlines = (DeadlineAdminInline,) + + def force_publish(self,request,queryset): + for cislo in queryset: + # cn = CisloNode.objects.get(cislo=cislo) + # for ch in tl.all_children(cn): + # if isinstance(ch, TemaVCisleNode): + # if ch.tema.stav not in (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + # ch.tema.stav = Problem.STAV_ZADANY + # ch.tema.save() + # + # if isinstance(ch, UlohaZadaniNode) or isinstance(ch, UlohaVzorakNode): + # if ch.uloha.stav not in (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + # ch.uloha.stav = Problem.STAV_ZADANY + # ch.uloha.save() + # if isinstance(ch, ReseniNode): + # for problem in ch.reseni.problem_set: + # if problem not in (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + # problem.stav = Problem.STAV_ZADANY + # problem.save() + + for ch in Uloha.objects.filter(cislo_zadani=cislo): + if ch.stav not in (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + ch.stav = Problem.STAV_ZADANY + ch.save() + + hp = ch.hlavni_problem + if hp.stav not in (Problem.STAV_ZADANY, Problem.STAV_VYRESENY): + hp.stav = Problem.STAV_ZADANY + hp.save() + + # TODO Řešení, vzoráky? + # TODO Konfera/Článek? + + cislo.verejne_db = True + cislo.save() + + force_publish.short_description = 'Zveřejnit vybraná čísla a všechny návrhy úloh v nich učinit zadanými' + + # Jen pro superuživatele + @admin.action(permissions=['bazmek'], description='Přegenerovat výsledkovky všech deadlinů vybraných čísel') + def pregeneruj_vysledkovky(self, req, qs): + for cislo in qs: + for deadline in cislo.deadline_v_cisle.all(): + deadline.vygeneruj_vysledkovku() + + def has_bazmek_permission(self, request): + # Boilerplate: potřebujeme nějakou permission, protože nějaká haluz v Djangu… + return request.user.is_superuser + + +@admin.register(Problem) +class ProblemAdmin(PolymorphicParentModelAdmin): + base_model = Problem + child_models = [ + Tema, + Clanek, + Uloha, + soustredeni.models.Konfera, + ] + # Pokud chceme orezavat na aktualni rocnik, musime do modelu pridat odkaz na rocnik. Zatim bere vse. + search_fields = ['nazev'] + + +# V ProblemAdmin to nejde, protoze se to nepropise do deti +class ProblemAdminMixin(object): + show_in_index = True + autocomplete_fields = ['nadproblem','autor','garant'] + filter_horizontal = ['opravovatele'] + + +@admin.register(Tema) +class TemaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): + base_model = Tema + + +@admin.register(Clanek) +class ClanekAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): + base_model = Clanek + + +@admin.register(Uloha) +class UlohaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): + base_model = Uloha + + +@admin.register(soustredeni.models.Konfera) +class KonferaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): + base_model = soustredeni.models.Konfera + diff --git a/tvorba/apps.py b/tvorba/apps.py new file mode 100644 index 00000000..b04cb04c --- /dev/null +++ b/tvorba/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class TvorbaConfig(AppConfig): + name = 'tvorba' + verbose_name = 'Tvorba' diff --git a/tvorba/migrations/__init__.py b/tvorba/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/seminar/templates/seminar/archiv/cisla.html b/tvorba/templates/tvorba/archiv/cisla.html similarity index 100% rename from seminar/templates/seminar/archiv/cisla.html rename to tvorba/templates/tvorba/archiv/cisla.html diff --git a/seminar/templates/seminar/archiv/cislo.html b/tvorba/templates/tvorba/archiv/cislo.html similarity index 100% rename from seminar/templates/seminar/archiv/cislo.html rename to tvorba/templates/tvorba/archiv/cislo.html diff --git a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex b/tvorba/templates/tvorba/archiv/cislo_vysledkovka.tex similarity index 100% rename from seminar/templates/seminar/archiv/cislo_vysledkovka.tex rename to tvorba/templates/tvorba/archiv/cislo_vysledkovka.tex diff --git a/seminar/templates/seminar/archiv/odmeny.html b/tvorba/templates/tvorba/archiv/odmeny.html similarity index 100% rename from seminar/templates/seminar/archiv/odmeny.html rename to tvorba/templates/tvorba/archiv/odmeny.html diff --git a/seminar/templates/seminar/archiv/prispevek.html b/tvorba/templates/tvorba/archiv/prispevek.html similarity index 100% rename from seminar/templates/seminar/archiv/prispevek.html rename to tvorba/templates/tvorba/archiv/prispevek.html diff --git a/seminar/templates/seminar/archiv/problem.html b/tvorba/templates/tvorba/archiv/problem.html similarity index 100% rename from seminar/templates/seminar/archiv/problem.html rename to tvorba/templates/tvorba/archiv/problem.html diff --git a/seminar/templates/seminar/archiv/problem_clanek.html b/tvorba/templates/tvorba/archiv/problem_clanek.html similarity index 100% rename from seminar/templates/seminar/archiv/problem_clanek.html rename to tvorba/templates/tvorba/archiv/problem_clanek.html diff --git a/seminar/templates/seminar/archiv/problem_tema.html b/tvorba/templates/tvorba/archiv/problem_tema.html similarity index 100% rename from seminar/templates/seminar/archiv/problem_tema.html rename to tvorba/templates/tvorba/archiv/problem_tema.html diff --git a/seminar/templates/seminar/archiv/problem_uloha.html b/tvorba/templates/tvorba/archiv/problem_uloha.html similarity index 100% rename from seminar/templates/seminar/archiv/problem_uloha.html rename to tvorba/templates/tvorba/archiv/problem_uloha.html diff --git a/seminar/templates/seminar/archiv/problem_uloha_tema.html b/tvorba/templates/tvorba/archiv/problem_uloha_tema.html similarity index 100% rename from seminar/templates/seminar/archiv/problem_uloha_tema.html rename to tvorba/templates/tvorba/archiv/problem_uloha_tema.html diff --git a/seminar/templates/seminar/archiv/rocnik.html b/tvorba/templates/tvorba/archiv/rocnik.html similarity index 100% rename from seminar/templates/seminar/archiv/rocnik.html rename to tvorba/templates/tvorba/archiv/rocnik.html diff --git a/seminar/templates/seminar/archiv/rocnik_vysledkovka.tex b/tvorba/templates/tvorba/archiv/rocnik_vysledkovka.tex similarity index 100% rename from seminar/templates/seminar/archiv/rocnik_vysledkovka.tex rename to tvorba/templates/tvorba/archiv/rocnik_vysledkovka.tex diff --git a/seminar/templates/seminar/archiv/temata.html b/tvorba/templates/tvorba/archiv/temata.html similarity index 100% rename from seminar/templates/seminar/archiv/temata.html rename to tvorba/templates/tvorba/archiv/temata.html diff --git a/seminar/templates/seminar/archiv/tituly.tex b/tvorba/templates/tvorba/archiv/tituly.tex similarity index 100% rename from seminar/templates/seminar/archiv/tituly.tex rename to tvorba/templates/tvorba/archiv/tituly.tex diff --git a/seminar/templates/seminar/clanky/organizatorske_clanky.html b/tvorba/templates/tvorba/clanky/organizatorske_clanky.html similarity index 100% rename from seminar/templates/seminar/clanky/organizatorske_clanky.html rename to tvorba/templates/tvorba/clanky/organizatorske_clanky.html diff --git a/seminar/templates/seminar/clanky/resitelske_clanky.html b/tvorba/templates/tvorba/clanky/resitelske_clanky.html similarity index 100% rename from seminar/templates/seminar/clanky/resitelske_clanky.html rename to tvorba/templates/tvorba/clanky/resitelske_clanky.html diff --git a/seminar/templates/seminar/tematka/rozcestnik.html b/tvorba/templates/tvorba/tematka/rozcestnik.html similarity index 100% rename from seminar/templates/seminar/tematka/rozcestnik.html rename to tvorba/templates/tvorba/tematka/rozcestnik.html diff --git a/seminar/templates/seminar/tematka/toaletak.html b/tvorba/templates/tvorba/tematka/toaletak.html similarity index 100% rename from seminar/templates/seminar/tematka/toaletak.html rename to tvorba/templates/tvorba/tematka/toaletak.html diff --git a/seminar/templates/seminar/zadani/AktualniVysledkovka.html b/tvorba/templates/tvorba/zadani/AktualniVysledkovka.html similarity index 100% rename from seminar/templates/seminar/zadani/AktualniVysledkovka.html rename to tvorba/templates/tvorba/zadani/AktualniVysledkovka.html diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/tvorba/templates/tvorba/zadani/AktualniZadani.html similarity index 100% rename from seminar/templates/seminar/zadani/AktualniZadani.html rename to tvorba/templates/tvorba/zadani/AktualniZadani.html diff --git a/seminar/templates/seminar/zadani/Temata.html b/tvorba/templates/tvorba/zadani/Temata.html similarity index 100% rename from seminar/templates/seminar/zadani/Temata.html rename to tvorba/templates/tvorba/zadani/Temata.html diff --git a/seminar/urls.py b/tvorba/urls.py similarity index 98% rename from seminar/urls.py rename to tvorba/urls.py index 275f64ba..b5ebed98 100644 --- a/seminar/urls.py +++ b/tvorba/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include, re_path from . import views -from .utils import org_required +from seminar.utils import org_required urlpatterns = [ # path('aktualni/temata/', views.TemataRozcestnikView), diff --git a/seminar/views/__init__.py b/tvorba/views/__init__.py similarity index 100% rename from seminar/views/__init__.py rename to tvorba/views/__init__.py diff --git a/seminar/views/docasne.py b/tvorba/views/docasne.py similarity index 100% rename from seminar/views/docasne.py rename to tvorba/views/docasne.py diff --git a/seminar/views/views_all.py b/tvorba/views/views_all.py similarity index 94% rename from seminar/views/views_all.py rename to tvorba/views/views_all.py index 9f115687..ac8b5477 100644 --- a/seminar/views/views_all.py +++ b/tvorba/views/views_all.py @@ -82,7 +82,7 @@ def get_problemy_k_tematu(tema): #class AktualniZadaniView(generic.TemplateView): -# template_name = 'seminar/treenode.html' +# template_name = 'treenode/treenode.html' # TODO Co chceme vlastně zobrazovat na této stránce? Zatím je zde aktuální číslo, ale může tu být cokoli jiného... #class AktualniZadaniView(TreeNodeView): @@ -100,7 +100,7 @@ def get_problemy_k_tematu(tema): def AktualniZadaniView(request): nastaveni = get_object_or_404(Nastaveni) verejne = nastaveni.aktualni_cislo.verejne() - return render(request, 'seminar/zadani/AktualniZadani.html', + return render(request, 'tvorba/zadani/AktualniZadani.html', {'nastaveni': nastaveni, 'verejne': verejne, }, @@ -111,7 +111,7 @@ def ZadaniTemataView(request): verejne = nastaveni.aktualni_cislo.verejne() akt_rocnik = nastaveni.aktualni_cislo.rocnik temata = s.Tema.objects.filter(rocnik=akt_rocnik, stav='zadany') - return render(request, 'seminar/tematka/rozcestnik.html', + return render(request, 'tvorba/tematka/rozcestnik.html', { 'tematka': temata, 'verejne': verejne, @@ -126,7 +126,7 @@ def ZadaniTemataView(request): # t.prispevky = t.prispevek_set.filter(problem=t) # else: # t.prispevky = t.prispevek_set.filter(problem=t, zverejnit=True) -# return render(request, 'seminar/zadani/Temata.html', +# return render(request, 'tvorba/zadani/Temata.html', # { # 'temata': temata, # } @@ -145,7 +145,7 @@ def ZadaniTemataView(request): # if node.isinstance(node, s.PohadkaNode): # Mohu ignorovat, má pod sebou # pass # -# return render(request, 'seminar/tematka/toaletak.html', {}) +# return render(request, 'tvorba/tematka/toaletak.html', {}) # # #def TemataRozcestnikView(request): @@ -181,7 +181,7 @@ def ZadaniTemataView(request): # "obrazek": tematko_object.obrazek, # "cisla" : cisla # }) -# return render(request, 'seminar/tematka/rozcestnik.html', {"tematka": tematka, "rocnik" : nastaveni.aktualni_rocnik().rocnik}) +# return render(request, 'tvorba/tematka/rozcestnik.html', {"tematka": tematka, "rocnik" : nastaveni.aktualni_rocnik().rocnik}) # def ZadaniAktualniVysledkovkaView(request): @@ -205,7 +205,7 @@ def ZadaniAktualniVysledkovkaView(request): context['rocnik'] = rocnik return render( request, - 'seminar/zadani/AktualniVysledkovka.html', + 'tvorba/zadani/AktualniVysledkovka.html', context ) @@ -224,7 +224,7 @@ def aktualni_temata(rocnik): class ArchivView(generic.ListView): model = Rocnik - template_name='seminar/archiv/cisla.html' + template_name = 'tvorba/archiv/cisla.html' def get_context_data(self, **kwargs): context = super(ArchivView, self).get_context_data(**kwargs) @@ -252,7 +252,7 @@ class ArchivView(generic.ListView): class RocnikView(generic.DetailView): model = Rocnik - template_name = 'seminar/archiv/rocnik.html' + template_name = 'tvorba/archiv/rocnik.html' # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) def get_object(self, queryset=None): @@ -292,7 +292,7 @@ def resiteleRocnikuCsvExportView(request, rocnik): # s.Clanek: "clanek", # } # context = super().get_context_data(**kwargs) -# return ['seminar/archiv/problem_' + spravne_templaty[context['object'].__class__] + '.html'] +# return ['tvorba/archiv/problem_' + spravne_templaty[context['object'].__class__] + '.html'] # # def get_context_data(self, **kwargs): # context = super().get_context_data(**kwargs) @@ -308,7 +308,7 @@ def resiteleRocnikuCsvExportView(request, rocnik): class CisloView(generic.DetailView): # FIXME zobrazování témátek a vůbec, teď je tam jen odkaz na číslo v pdf model = Cislo - template_name = 'seminar/archiv/cislo.html' + template_name = 'tvorba/archiv/cislo.html' # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) def get_object(self, queryset=None): @@ -351,7 +351,7 @@ class CisloView(generic.DetailView): class ArchivTemataView(generic.ListView): model = Problem - template_name = 'seminar/archiv/temata.html' + template_name = 'tvorba/archiv/temata.html' queryset = Tema.objects.filter(stav=Problem.STAV_ZADANY).select_related('rocnik').order_by('rocnik', 'kod') def get_context_data(self, *args, **kwargs): @@ -362,7 +362,7 @@ class ArchivTemataView(generic.ListView): return ctx class OdmenyView(generic.TemplateView): - template_name = 'seminar/archiv/odmeny.html' + template_name = 'tvorba/archiv/odmeny.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) @@ -408,7 +408,7 @@ class CisloVysledkovkaView(CisloView): """View vytvořené pro stránku zobrazující výsledkovku čísla v TeXu.""" model = Cislo - template_name = 'seminar/archiv/cislo_vysledkovka.tex' + template_name = 'tvorba/archiv/cislo_vysledkovka.tex' #content_type = 'application/x-tex; charset=UTF8' #umozni rovnou stahnout TeXovsky dokument content_type = 'text/plain; charset=UTF8' @@ -439,7 +439,7 @@ class PosledniCisloVysledkovkaView(generic.DetailView): """View vytvořené pro zobrazení výsledkovky posledního čísla v TeXu.""" model = Rocnik - template_name = 'seminar/archiv/cislo_vysledkovka.tex' + template_name = 'tvorba/archiv/cislo_vysledkovka.tex' content_type = 'text/plain; charset=UTF8' def get_object(self, queryset=None): @@ -473,7 +473,7 @@ class PosledniCisloVysledkovkaView(generic.DetailView): class RocnikVysledkovkaView(RocnikView): """ View vytvořené pro stránku zobrazující výsledkovku ročníku v TeXu.""" model = Rocnik - template_name = 'seminar/archiv/rocnik_vysledkovka.tex' + template_name = 'tvorba/archiv/rocnik_vysledkovka.tex' #content_type = 'application/x-tex; charset=UTF8' #umozni rovnou stahnout TeXovsky dokument content_type = 'text/plain; charset=UTF8' @@ -517,7 +517,7 @@ def TitulyView(request, rocnik, cislo): else: jmenovci = True - return render(request, 'seminar/archiv/tituly.tex', + return render(request, 'tvorba/archiv/tituly.tex', {'resitele': resitele,'jmenovci':jmenovci},content_type="text/plain") @@ -548,7 +548,7 @@ def group_by_rocnik(clanky): # FIXME: Původně tu byl kód přímo v těle třídy, což rozbíjelo migrace. Opravil jsem, ale vůbec nevím, jestli to funguje. class ClankyResitelView(generic.ListView): model = Problem - template_name = 'seminar/clanky/resitelske_clanky.html' + template_name = 'tvorba/clanky/resitelske_clanky.html' # FIXME: QuerySet není pole! def get_queryset(self): @@ -564,7 +564,7 @@ class ClankyResitelView(generic.ListView): # FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit #class ClankyOrganizatorView(generic.ListView)<F12>: # model = Problem -# template_name = 'seminar/clanky/organizatorske_clanky.html' +# template_name = 'tvorba/clanky/organizatorske_clanky.html' # queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') diff --git a/various/admin.py b/various/admin.py index 694323fa..cd7104c2 100644 --- a/various/admin.py +++ b/various/admin.py @@ -1 +1,6 @@ +from solo.admin import SingletonModelAdmin from django.contrib import admin + +from .models import Nastaveni + +admin.site.register(Nastaveni, SingletonModelAdmin) diff --git a/various/views/final.py b/various/views/final.py index a4c06f74..12a18250 100644 --- a/various/views/final.py +++ b/various/views/final.py @@ -11,7 +11,7 @@ from django.views import generic import novinky.views import seminar.utils -import seminar.views +import tvorba.views from personalni.models import Resitel from seminar import models as m @@ -34,7 +34,7 @@ class TitulniStranaView(generic.ListView): # Aktuální témata nazvy_a_odkazy_na_aktualni_temata = [] - akt_temata = seminar.views.aktualni_temata(nastaveni.aktualni_rocnik) + akt_temata = tvorba.views.aktualni_temata(nastaveni.aktualni_rocnik) for tema in akt_temata: # FIXME: netuším, jestli funguje tema.verejne_url(), nemáme testdata na témátka - je to asi url vzhledem k ročníku From 731c795ee68fd814ae23edea4659ca3884dd7726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 19:01:09 +0200 Subject: [PATCH 196/225] Text a Obrazek --- seminar/admin.py | 20 -------------------- treenode/admin.py | 11 +++++++++++ tvorba/admin.py | 4 ++-- 3 files changed, 13 insertions(+), 22 deletions(-) delete mode 100644 seminar/admin.py diff --git a/seminar/admin.py b/seminar/admin.py deleted file mode 100644 index b806edab..00000000 --- a/seminar/admin.py +++ /dev/null @@ -1,20 +0,0 @@ -from django.contrib import admin -from django.db import models -from django.forms import widgets - -# Todo: reversion - -import seminar.models as m - - -class TextAdminInline(admin.TabularInline): - model = m.Text - formfield_overrides = { - models.TextField: {'widget': widgets.TextInput} - } - exclude = ['text_zkraceny_set','text_zkraceny'] - -admin.site.register(m.Text) - -# admin.site.register(m.Pohadka) -admin.site.register(m.Obrazek) diff --git a/treenode/admin.py b/treenode/admin.py index 92c85cd5..8ffe4fc8 100644 --- a/treenode/admin.py +++ b/treenode/admin.py @@ -1,4 +1,6 @@ from django.contrib import admin +from django.db import models +from django.forms import widgets from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter @@ -86,3 +88,12 @@ class TextNodeAdmin(PolymorphicChildModelAdmin): show_in_index = True +class TextAdminInline(admin.TabularInline): + model = m.Text + formfield_overrides = { + models.TextField: {'widget': widgets.TextInput} + } + exclude = ['text_zkraceny_set', 'text_zkraceny'] + +admin.site.register(m.Text) +admin.site.register(m.Obrazek) diff --git a/tvorba/admin.py b/tvorba/admin.py index 817c16d3..e6c2c64b 100644 --- a/tvorba/admin.py +++ b/tvorba/admin.py @@ -1,6 +1,5 @@ from django.contrib import admin -from django.db import models -from django.forms import widgets, ModelForm +from django.forms import ModelForm from django.core.exceptions import ValidationError from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter @@ -175,3 +174,4 @@ class UlohaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): class KonferaAdmin(ProblemAdminMixin,PolymorphicChildModelAdmin): base_model = soustredeni.models.Konfera +# admin.site.register(m.Pohadka) From 95ab0ee1dcabbe06f6b6f0ad6ad489f1cc2e62fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 19:08:24 +0200 Subject: [PATCH 197/225] =?UTF-8?q?Commandy=20zat=C3=ADm=20do=20various?= =?UTF-8?q?=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {seminar => various}/management/__init__.py | 0 {seminar => various}/management/commands/__init__.py | 0 {seminar => various}/management/commands/generate_thumbnails.py | 0 {seminar => various}/management/commands/load_org_permissions.py | 0 {seminar => various}/management/commands/nukedb.py | 0 .../management/commands/pregeneruj_zmrazene_vysledkovky.py | 0 {seminar => various}/management/commands/save_org_permissions.py | 0 {seminar => various}/management/commands/testdata.py | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {seminar => various}/management/__init__.py (100%) rename {seminar => various}/management/commands/__init__.py (100%) rename {seminar => various}/management/commands/generate_thumbnails.py (100%) rename {seminar => various}/management/commands/load_org_permissions.py (100%) rename {seminar => various}/management/commands/nukedb.py (100%) rename {seminar => various}/management/commands/pregeneruj_zmrazene_vysledkovky.py (100%) rename {seminar => various}/management/commands/save_org_permissions.py (100%) rename {seminar => various}/management/commands/testdata.py (100%) diff --git a/seminar/management/__init__.py b/various/management/__init__.py similarity index 100% rename from seminar/management/__init__.py rename to various/management/__init__.py diff --git a/seminar/management/commands/__init__.py b/various/management/commands/__init__.py similarity index 100% rename from seminar/management/commands/__init__.py rename to various/management/commands/__init__.py diff --git a/seminar/management/commands/generate_thumbnails.py b/various/management/commands/generate_thumbnails.py similarity index 100% rename from seminar/management/commands/generate_thumbnails.py rename to various/management/commands/generate_thumbnails.py diff --git a/seminar/management/commands/load_org_permissions.py b/various/management/commands/load_org_permissions.py similarity index 100% rename from seminar/management/commands/load_org_permissions.py rename to various/management/commands/load_org_permissions.py diff --git a/seminar/management/commands/nukedb.py b/various/management/commands/nukedb.py similarity index 100% rename from seminar/management/commands/nukedb.py rename to various/management/commands/nukedb.py diff --git a/seminar/management/commands/pregeneruj_zmrazene_vysledkovky.py b/various/management/commands/pregeneruj_zmrazene_vysledkovky.py similarity index 100% rename from seminar/management/commands/pregeneruj_zmrazene_vysledkovky.py rename to various/management/commands/pregeneruj_zmrazene_vysledkovky.py diff --git a/seminar/management/commands/save_org_permissions.py b/various/management/commands/save_org_permissions.py similarity index 100% rename from seminar/management/commands/save_org_permissions.py rename to various/management/commands/save_org_permissions.py diff --git a/seminar/management/commands/testdata.py b/various/management/commands/testdata.py similarity index 100% rename from seminar/management/commands/testdata.py rename to various/management/commands/testdata.py From 18364eb53122c2d9ac8c4aed1b91eebe7a577f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 19:15:15 +0200 Subject: [PATCH 198/225] seminar/static --- .../static/personalni}/lisak.pdf | Bin .../static/personalni}/no-photo.png | Bin personalni/templates/personalni/organizatori.html | 2 +- personalni/views.py | 2 +- .../static/soustredeni}/logomm.pdf | Bin soustredeni/views.py | 2 +- .../images => tvorba/static/tvorba}/no-picture.png | Bin .../static/tvorba}/tema-bez-obrazku.png | Bin tvorba/templates/tvorba/archiv/rocnik.html | 4 ++-- tvorba/templates/tvorba/tematka/rozcestnik.html | 2 +- tvorba/views/views_all.py | 2 +- 11 files changed, 7 insertions(+), 7 deletions(-) rename {seminar/static/seminar => personalni/static/personalni}/lisak.pdf (100%) rename {seminar/static/images => personalni/static/personalni}/no-photo.png (100%) rename {seminar/static/images => soustredeni/static/soustredeni}/logomm.pdf (100%) rename {seminar/static/images => tvorba/static/tvorba}/no-picture.png (100%) rename {seminar/static/images => tvorba/static/tvorba}/tema-bez-obrazku.png (100%) diff --git a/seminar/static/seminar/lisak.pdf b/personalni/static/personalni/lisak.pdf similarity index 100% rename from seminar/static/seminar/lisak.pdf rename to personalni/static/personalni/lisak.pdf diff --git a/seminar/static/images/no-photo.png b/personalni/static/personalni/no-photo.png similarity index 100% rename from seminar/static/images/no-photo.png rename to personalni/static/personalni/no-photo.png diff --git a/personalni/templates/personalni/organizatori.html b/personalni/templates/personalni/organizatori.html index 799bbe49..56fb351e 100644 --- a/personalni/templates/personalni/organizatori.html +++ b/personalni/templates/personalni/organizatori.html @@ -46,7 +46,7 @@ {% if org.osoba.foto %} <a href="{{org.osoba.foto.url}}" class="ref-org-foto"><img src="{{org.osoba.foto_male.url}}" height="{{org.osoba.foto_male.height}}" alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"></a> {% else %} {# pokud osoba nemá fotku, zobrazuje se defaultní obrázek #} - {% load static %} <img src="{% static 'images/no-photo.png' %}" height=200px alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"> + {% load static %} <img src="{% static 'personalni/no-photo.png' %}" height=200px alt="{{org.osoba.jmeno}} {{org.osoba.prijmeni}}"> {% endif %} </div> diff --git a/personalni/views.py b/personalni/views.py index a4c410be..12768c34 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -76,7 +76,7 @@ def obalkyView(request, resitele): with tempfile.TemporaryDirectory() as tempdir: with open(tempdir+"/obalky.tex", "w") as texfile: texfile.write(tex.decode()) - shutil.copy(find('seminar/lisak.pdf'), tempdir) + shutil.copy(find('personalni/lisak.pdf'), tempdir) subprocess.call(["pdflatex", "obalky.tex"], cwd=tempdir) with open(tempdir+"/obalky.pdf", "rb") as pdffile: diff --git a/seminar/static/images/logomm.pdf b/soustredeni/static/soustredeni/logomm.pdf similarity index 100% rename from seminar/static/images/logomm.pdf rename to soustredeni/static/soustredeni/logomm.pdf diff --git a/soustredeni/views.py b/soustredeni/views.py index 4b8fb91f..bbcf67c4 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -93,7 +93,7 @@ def soustredeniStvrzenkyView(request, soustredeni): with open(tempdir / "stvrzenky.tex", "w") as texfile: texfile.write(tex.decode()) - shutil.copy(find('images/logomm.pdf'), tempdir) + shutil.copy(find('soustredeni/logomm.pdf'), tempdir) subprocess.call(["pdflatex", "stvrzenky.tex"], cwd = tempdir, stdout=subprocess.DEVNULL) with open(tempdir / "stvrzenky.pdf", "rb") as pdffile: diff --git a/seminar/static/images/no-picture.png b/tvorba/static/tvorba/no-picture.png similarity index 100% rename from seminar/static/images/no-picture.png rename to tvorba/static/tvorba/no-picture.png diff --git a/seminar/static/images/tema-bez-obrazku.png b/tvorba/static/tvorba/tema-bez-obrazku.png similarity index 100% rename from seminar/static/images/tema-bez-obrazku.png rename to tvorba/static/tvorba/tema-bez-obrazku.png diff --git a/tvorba/templates/tvorba/archiv/rocnik.html b/tvorba/templates/tvorba/archiv/rocnik.html index fd2a99b6..9e070e82 100644 --- a/tvorba/templates/tvorba/archiv/rocnik.html +++ b/tvorba/templates/tvorba/archiv/rocnik.html @@ -34,7 +34,7 @@ {% if c.titulka_nahled %} <img src="{{ c.titulka_nahled.url }}" alt="{{ c.kod }}" height=180px> {% else %} - {% load static %} <img src="{% static 'images/no-picture.png' %}" height=180px alt="no-picture"> + {% load static %} <img src="{% static 'tvorba/no-picture.png' %}" height=180px alt="no-picture"> {% endif %} </div> @@ -80,7 +80,7 @@ {% if c.titulka_nahled %} <img src="{{ c.titulka_nahled.url }}" alt="{{ c.kod }}" height=180px> {% else %} - {% load static %} <img src="{% static 'images/no-picture.png' %}" height=180px alt="no-picture"> + {% load static %} <img src="{% static 'tvorba/no-picture.png' %}" height=180px alt="no-picture"> {% endif %} </div> diff --git a/tvorba/templates/tvorba/tematka/rozcestnik.html b/tvorba/templates/tvorba/tematka/rozcestnik.html index 605a6549..fcfba59e 100644 --- a/tvorba/templates/tvorba/tematka/rozcestnik.html +++ b/tvorba/templates/tvorba/tematka/rozcestnik.html @@ -35,7 +35,7 @@ {% if tematko.obrazek %} <img src="{{ tematko.obrazek.url }}" alt="{{ tematko.nazev }}"> {% else %} {# pokud témátko nemá fotku, zobrazuje se defaultní obrázek #} - {% load static %} <img src="{% static 'images/tema-bez-obrazku.png' %}" alt="{{ tematko.nazev }}"> + {% load static %} <img src="{% static 'tvorba/tema-bez-obrazku.png' %}" alt="{{ tematko.nazev }}"> {% endif %} </div> </div> diff --git a/tvorba/views/views_all.py b/tvorba/views/views_all.py index ac8b5477..b4bbad92 100644 --- a/tvorba/views/views_all.py +++ b/tvorba/views/views_all.py @@ -237,7 +237,7 @@ class ArchivView(generic.ListView): for i, c in enumerate(cisla): # Výchozí nastavení if c.rocnik not in urls: - urls[c.rocnik] = op.join(settings.STATIC_URL, "images", "no-picture.png") + urls[c.rocnik] = op.join(settings.STATIC_URL, "tvorba", "no-picture.png") # NOTE: tohle možná nastavuje poslední titulku if c.titulka_nahled: urls[c.rocnik] = c.titulka_nahled.url From 85c3969c50eac28758479d1dd942a322c82fc12c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 4 Aug 2024 19:21:46 +0200 Subject: [PATCH 199/225] seminar/templatetags --- .../templates/odevzdavatko/tabulka.html | 1 - seminar/templatetags/utils.py | 19 ------------------- {seminar => tvorba}/templatetags/__init__.py | 0 {seminar => tvorba}/templatetags/deadliny.py | 0 {seminar => various}/templatetags/tex.py | 0 5 files changed, 20 deletions(-) delete mode 100644 seminar/templatetags/utils.py rename {seminar => tvorba}/templatetags/__init__.py (100%) rename {seminar => tvorba}/templatetags/deadliny.py (100%) rename {seminar => various}/templatetags/tex.py (100%) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 7ee90ea9..cfbe0e6f 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -1,6 +1,5 @@ {% extends "base.html" %} -{% load utils %} {# Možná by mohlo být někde výš v hierarchii templatů... #} {% load barvy_reseni %} {% block content %} diff --git a/seminar/templatetags/utils.py b/seminar/templatetags/utils.py deleted file mode 100644 index ca400050..00000000 --- a/seminar/templatetags/utils.py +++ /dev/null @@ -1,19 +0,0 @@ -from django import template -from django.utils.safestring import mark_safe -from datetime import datetime, timedelta -from mamweb.settings import TIME_ZONE -import logging -register = template.Library() - -logger = logging.getLogger(__name__) - -@register.filter(name='kratke_datum', expects_localtime=True) -def kratke_datum(dt): - # None dává None, ne-datum dává False, aby se daly použít filtry typu "default". - if dt is None: - return None - if not isinstance(dt, datetime): - logger.warning(f"Špatné volání filtru {__name__}: {dt}") - return False - out = f'<time datetime="{dt.isoformat()}" title="{dt.strftime("%d. %m. %Y %H:%M")}">{dt.day}.{dt.month}.<span style="text-decoration:overline">{dt.year%100}</time>' - return mark_safe(out) diff --git a/seminar/templatetags/__init__.py b/tvorba/templatetags/__init__.py similarity index 100% rename from seminar/templatetags/__init__.py rename to tvorba/templatetags/__init__.py diff --git a/seminar/templatetags/deadliny.py b/tvorba/templatetags/deadliny.py similarity index 100% rename from seminar/templatetags/deadliny.py rename to tvorba/templatetags/deadliny.py diff --git a/seminar/templatetags/tex.py b/various/templatetags/tex.py similarity index 100% rename from seminar/templatetags/tex.py rename to various/templatetags/tex.py From c34716e134491b406b2ab2d28332427d14ba60d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Mon, 5 Aug 2024 11:46:38 +0200 Subject: [PATCH 200/225] seminar/utils.py --- aesop/views.py | 2 +- api/tests/test_skola_autocomplete.py | 2 +- api/urls.py | 2 +- ...-12-06-testovani_dokumentace_codereview.md | 2 +- galerie/urls.py | 2 +- korektury/urls.py | 2 +- odevzdavatko/urls.py | 4 +- odevzdavatko/utils.py | 11 + odevzdavatko/views.py | 2 +- personalni/urls.py | 2 +- personalni/utils.py | 175 +++++++- prednasky/urls.py | 2 +- seminar/models/odevzdavatko.py | 2 +- seminar/models/tvorba.py | 3 +- seminar/utils.py | 387 ------------------ sifrovacka/urls.py | 2 +- soustredeni/urls.py | 2 +- tvorba/urls.py | 2 +- tvorba/utils.py | 89 ++++ tvorba/views/views_all.py | 8 +- various/urls.py | 2 +- various/views/final.py | 95 ++++- various/views/generic.py | 29 ++ vyroci/urls.py | 2 +- vysledkovky/utils.py | 2 +- 25 files changed, 417 insertions(+), 416 deletions(-) create mode 100644 odevzdavatko/utils.py delete mode 100644 seminar/utils.py create mode 100644 tvorba/utils.py create mode 100644 various/views/generic.py diff --git a/aesop/views.py b/aesop/views.py index 5fd49cbc..1ff6c7ee 100644 --- a/aesop/views.py +++ b/aesop/views.py @@ -8,7 +8,7 @@ from django.utils.encoding import force_str from .utils import default_ovvpfile from seminar.models import Rocnik, Soustredeni from vysledkovky import utils -from seminar.utils import aktivniResitele +from tvorba.utils import aktivniResitele class ExportIndexView(generic.View): def get(self, request): diff --git a/api/tests/test_skola_autocomplete.py b/api/tests/test_skola_autocomplete.py index f69669f0..75019983 100644 --- a/api/tests/test_skola_autocomplete.py +++ b/api/tests/test_skola_autocomplete.py @@ -1,7 +1,7 @@ from django.test import TestCase, tag from django.urls import reverse import seminar.models as m -from seminar.utils import sync_skoly +from personalni.utils import sync_skoly @tag('stejny-model-na-produkci') class OrgSkolyAutocompleteTestCase(TestCase): diff --git a/api/urls.py b/api/urls.py index 9ff38424..be58d3f9 100644 --- a/api/urls.py +++ b/api/urls.py @@ -1,6 +1,6 @@ from django.urls import path from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ # Export škol diff --git a/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md b/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md index 224ea529..c2cfc1b5 100644 --- a/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md +++ b/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md @@ -116,7 +116,7 @@ Aktuálně: Jakýsi coding style zhruba existuje, není popsaný, šíří se li - Nesmí být striktně vynucovaný - Musel by být hodně nastavitelný - Nechceme mít kód plný `#NOQA: WTF42` -- Nejspíš vždycky bude mít false positives (`seminar.utils.roman_numerals`) i false negatives (`seminar.models.tvorba.Cislo.posli_cislo_mailem`) +- Nejspíš vždycky bude mít false positives (`tvorba.utils.roman_numerals`) i false negatives (`seminar.models.tvorba.Cislo.posli_cislo_mailem`) - Možná dobrý sluha, ale určitě špatný pán (also: špatná zkušenost ☺) - __Důsledek:__ Hrozí, že těch falešných varování bude moc, čímž to ztratí smysl úplně - Potenciálně by šlo aplikovat jen lokálně na změny? diff --git a/galerie/urls.py b/galerie/urls.py index 32824248..28b43a22 100644 --- a/galerie/urls.py +++ b/galerie/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from seminar.utils import org_required +from personalni.utils import org_required from . import views urlpatterns = [ diff --git a/korektury/urls.py b/korektury/urls.py index dcd1d965..cf45ea8f 100644 --- a/korektury/urls.py +++ b/korektury/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from seminar.utils import org_required +from personalni.utils import org_required from . import views urlpatterns = [ diff --git a/odevzdavatko/urls.py b/odevzdavatko/urls.py index e41b9c14..d4c2a092 100644 --- a/odevzdavatko/urls.py +++ b/odevzdavatko/urls.py @@ -1,7 +1,7 @@ from django.urls import path -from seminar.utils import org_required, resitel_required, viewMethodSwitch, \ - resitel_or_org_required +from personalni.utils import org_required, resitel_required, resitel_or_org_required +from various.views.generic import viewMethodSwitch from . import views urlpatterns = [ diff --git a/odevzdavatko/utils.py b/odevzdavatko/utils.py new file mode 100644 index 00000000..4157de4b --- /dev/null +++ b/odevzdavatko/utils.py @@ -0,0 +1,11 @@ +import decimal + + +def vzorecek_na_prepocet(body, resitelu): + """ Vzoreček na přepočet plných bodů na parciálni, když má řešení více řešitelů. """ + return body * 3 / (resitelu + 2) + + +def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: + """ Vzoreček na přepočet parciálních bodů na plné, když má řešení více řešitelů. """ + return round(body * (resitelu + 2) / 3, 1) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 9215d3f8..cbe9019e 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -20,7 +20,7 @@ import logging import seminar.models as m from . import forms as f from .forms import OdevzdavatkoTabulkaFiltrForm as FiltrForm -from seminar.utils import resi_v_rocniku +from tvorba.utils import resi_v_rocniku from various.views.pomocne import formularOKView logger = logging.getLogger(__name__) diff --git a/personalni/urls.py b/personalni/urls.py index eae46257..8abbb434 100644 --- a/personalni/urls.py +++ b/personalni/urls.py @@ -1,7 +1,7 @@ from django.urls import path from django.contrib.auth.decorators import login_required from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ path( diff --git a/personalni/utils.py b/personalni/utils.py index 0701d66a..4aac1e28 100644 --- a/personalni/utils.py +++ b/personalni/utils.py @@ -2,10 +2,183 @@ import seminar.models as m from various.utils import bez_diakritiky_translate import re -def normalizuj_jmeno(o: m.Osoba) -> str: +from django.contrib.auth import get_user_model +from django.contrib.auth.decorators import permission_required, user_passes_test +from django.contrib.auth.models import AnonymousUser +from django.db import transaction + +import seminar.models as m +import soustredeni.models + +from .models import Osoba, Organizator, Skola, Resitel, Prijemce + + +org_required = permission_required('auth.org') +resitel_required = permission_required('auth.resitel') + + +# inspirováno django.contrib.auth.decorators permission_required +def check_perms(user): + if user.has_perms(('auth.resitel',)): + return True + if user.has_perms(('auth.org',)): + return True + return False + + +resitel_or_org_required = user_passes_test(check_perms) + +User = get_user_model() +# Není to úplně hezké, ale budeme doufat, že to je funkční... +User.je_org = property(lambda self: self.has_perm('auth.org')) +User.je_resitel = property(lambda self: self.has_perm('auth.resitel')) +AnonymousUser.je_org = False +AnonymousUser.je_resitel = False + +def normalizuj_jmeno(o: Osoba) -> str: # FIXME: Možná není potřeba vázat na model? cele_jmeno = f'{o.jmeno} {o.prijmeni}' cele_jmeno = cele_jmeno.translate(bez_diakritiky_translate) cele_jmeno = re.sub(r'[^a-zA-Z- ]', '', cele_jmeno) return cele_jmeno + +def sync_skoly(base_url): + """Stáhne všechny školy z mamwebu na adrese <base_url> a uloží je do databáze""" + from django.urls import reverse + full_url = base_url.rstrip('/') + reverse('export_skoly') + import requests + from django.core import serializers + json = requests.get(full_url, stream=True).content + for skola in serializers.deserialize('json', json): + skola.save() + +@transaction.atomic +def merge_resitele(cilovy, zdrojovy): + """Spojí dva řešitelské objekty do cílového. + + Pojmenování "zdrojový" je silně nepřiléhající, ale co už…""" + + # Postup: + # Sjednotit / upravit informace cílového řešitele + print('Upravuji data modelu') + fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove'] + + for f in fieldy_shoda: + zf = getattr(zdrojovy, f) + cf = getattr(cilovy, f) + if cf == zf: + print(f' Údaj {f} je shodný ({zf})') + else: + if zf is None: + print(f' Údaj {f} je pouze v cílovém, používám') + continue + if cf is None: + setattr(cilovy, f, zf) + cilovy.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojového: {zf}' + print(f" Přiřazuji {f} ze zdrojového: {zf}") + continue + # Jsou fakt různé… + # FIXME: chybí možnost na vlastní úpravu… + verdikt = input(f"\n\n Údaj {f} se u řešitele {cilovy} ({cilovy.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") + verdikt = verdikt[0].casefold() + if verdikt == 'z': + setattr(cilovy, f, zf) + cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojový), nepoužit {cf} (cílový)' + elif verdikt == 'c': + cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílový), nepoužit {zf} (zdrojový)' + else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') + # poznámku chceme nezahodit… + cilovy.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojovy.poznamka}' + print(f' Výsledný řešitel: {cilovy.__dict__}, ukládám') + cilovy.save() + + + # Přepojit všechny vazby ze zdrojového na cílového + print('Přepojuji vazby') + # Vazby: Škola (hotovo), Řešení_Řešitelé, Konfery_Účastníci, Soustředění_Účastníci, Osoba (vyřeší se později, nejde přepojit) + ct = m.Reseni_Resitele.objects.filter(resitele=zdrojovy).update(resitele=cilovy) + print(f' Přepojeno {ct} řešení') + ct = soustredeni.models.Konfery_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) + print(f' Přepojeno {ct} konfer') + ct = soustredeni.models.Soustredeni_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) + print(f' Přepojeno {ct} sousů') + + # Teď by na zdrojovém řešiteli nemělo nic viset, smazat ho, pamatujíce si jeho Osobu + zdrosoba = zdrojovy.osoba + print(f'Mažu zdrojového řešitele {zdrojovy.__dict__}') + zdrojovy.delete() + # Spojit osoby (separátní funkce). + merge_osoby(cilovy.osoba, zdrosoba) + + input("Potvrdit transakci řešitelů (^C pro zrušení) ") + +@transaction.atomic +def merge_osoby(cilova, zdrojova): + """ Spojí dvě osoby do cílové + + Nehlídá omezení typu "max 1 řešitel na osobu", to by měla hlídat databáze (OneToOneField).""" + # Sjednocení dat + print('Sjednocuji data osob') + # ID, User neřešíme, poznámku vyřešíme separátně. + fieldy = ['datum_narozeni', 'datum_registrace', 'datum_souhlasu_udaje', + 'datum_souhlasu_zasilani', 'email', 'foto', 'jmeno', 'mesto', + 'osloveni', 'prezdivka', 'prijmeni', 'psc', 'stat', 'telefon', 'ulice'] + for f in fieldy: + zf = getattr(zdrojova, f) + cf = getattr(cilova, f) + if cf == zf: + print(f' Údaj {f} je shodný ({zf})') + else: + if zf is None: + print(f' Údaj {f} je pouze v cílové, používám') + continue + if cf is None: + setattr(cilova, f, zf) + cilova.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojové: {zf}' + print(f" Přiřazuji {f} ze zdrojové: {zf}") + continue + # Jsou fakt různé… + # FIXME: chybí možnost na vlastní úpravu… + verdikt = input(f"\n\n Údaj {f} se u osoby {cilova} ({cilova.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") + verdikt = verdikt[0].casefold() + if verdikt == 'z': + setattr(cilova, f, zf) + cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojová), nepoužit {cf} (cílová)' + elif verdikt == 'c': + cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílová), nepoužit {zf} (zdrojová)' + else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') + # poznámku chceme nezahodit… + cilova.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojova.poznamka}' + print(f' Výsledná osoba: {cilova.__dict__}, ukládám') + cilova.save() + + # Vazby: Řešitel, User, Příjemce, Organizátor, Škola.kontaktní_osoba + print('Přepojuji vazby') + ct = Skola.objects.filter(kontaktni_osoba=zdrojova).update(kontaktni_osoba=cilova) + print(f' Přepojeno {ct} kontaktních osob') + # Ostatní vazby vyřeší OneToOneFieldy, ale někdy nemusí existovat… + ct = Resitel.objects.filter(osoba=zdrojova).update(osoba=cilova) + print(f' Přepojeno {ct} řešitelů') + ct = Prijemce.objects.filter(osoba=zdrojova).update(osoba=cilova) + print(f' Přepojeno {ct} příjemců') + ct = Organizator.objects.filter(osoba=zdrojova).update(osoba=cilova) + print(f' Přepojeno {ct} organizátorů') + # Uživatelé vedou opačným směrem, radši chceme zkontrolovat, že jsou různí ručně: + if zdrojova.user != cilova.user: + # Jeden z nich může být nenastavený… + if zdrojova.user is None: + print('Uživatel je již v cílové osobě') + elif cilova.user is None: + print('Používám uživatele zdrojové osoby') + cilova.user = zdrojova.user + # Teď nemůžeme uložit, protože kolize uživatelů. Ukládat cílovou budeme až po smazání zdrojové. + else: raise ValueError('Osoby mají obě uživatele, radši padám') + + # Uložení a mazání + print(f'Mažu zdrojovou osobu {zdrojova.__dict__}') + zdrojova.delete() + print(f'Ukládám cílovou osobu {cilova.__dict__}') + cilova.save() + + input("Potvrdit transakci osob (^C pro zrušení) ") diff --git a/prednasky/urls.py b/prednasky/urls.py index 6b455163..eecc45ad 100644 --- a/prednasky/urls.py +++ b/prednasky/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from seminar.utils import org_required, resitel_or_org_required +from personalni.utils import org_required, resitel_or_org_required from . import views urlpatterns = [ diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index b0dec663..0c106df7 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -13,7 +13,7 @@ from seminar.models import tvorba as am from seminar.models import treenode as tm from seminar.models import base as bm -from seminar.utils import vzorecek_na_prepocet, inverze_vzorecku_na_prepocet +from odevzdavatko.utils import vzorecek_na_prepocet, inverze_vzorecku_na_prepocet from personalni.models import Resitel diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 36157c96..c11a3861 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -23,7 +23,7 @@ from taggit.managers import TaggableManager from reversion import revisions as reversion -from seminar.utils import roman +from tvorba.utils import roman, aktivniResitele from treenode import treelib from unidecode import unidecode # Používám pro získání ID odkazu (ještě je to někde po někom zakomentované) @@ -31,7 +31,6 @@ from unidecode import unidecode # Používám pro získání ID odkazu (ještě from polymorphic.models import PolymorphicModel from django.core.mail import EmailMessage -from seminar.utils import aktivniResitele from personalni.models import Prijemce, Organizator diff --git a/seminar/utils.py b/seminar/utils.py deleted file mode 100644 index c826bf0b..00000000 --- a/seminar/utils.py +++ /dev/null @@ -1,387 +0,0 @@ -import datetime -import decimal - -from django.contrib.auth import get_user_model -from django.contrib.auth.decorators import permission_required, \ - user_passes_test -from django import views as DjangoViews - -from django.db import transaction - -from django.contrib.auth.models import AnonymousUser -from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import ObjectDoesNotExist - -import logging - -import seminar.models as m -import treenode.treelib as t - -logger = logging.getLogger(__name__) - -org_required = permission_required('auth.org') -resitel_required = permission_required('auth.resitel') - - -# inspirováno django.contrib.auth.decorators permission_required -def check_perms(user): - if user.has_perms(('auth.resitel',)): - return True - if user.has_perms(('auth.org',)): - return True - return False - - -resitel_or_org_required = user_passes_test(check_perms) - -User = get_user_model() -# Není to úplně hezké, ale budeme doufat, že to je funkční... -User.je_org = property(lambda self: self.has_perm('auth.org')) -User.je_resitel = property(lambda self: self.has_perm('auth.resitel')) -AnonymousUser.je_org = False -AnonymousUser.je_resitel = False - - -def vzorecek_na_prepocet(body, resitelu): - """ Vzoreček na přepočet plných bodů na parciálni, když má řešení více řešitelů. """ - return body * 3 / (resitelu + 2) - - -def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: - """ Vzoreček na přepočet parciálních bodů na plné, když má řešení více řešitelů. """ - return round(body * (resitelu + 2) / 3, 1) - - -def histogram(seznam): - d = {} - for i in seznam: - if i not in d: - d[i] = 0 - d[i] += 1 - return d - -# Pozor: zarovnáno velmi netradičně pro přehlednost -roman_numerals = zip((1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1), - ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')) - - -def roman(num): - res = "" - for i, n in roman_numerals: - res += n * (num // i) - num %= i - return res - - -def from_roman(rom): - if not rom: - return 0 - for i, n in roman_numerals: - if rom.upper().startswith(n): - return i + from_roman(rom[len(n):]) - raise Exception('Invalid roman numeral: "%s"', rom) - - -def seznam_problemu(): - """Funkce pro hledání nekonzistencí v databázi a dalších nežádoucích stavů webu/databáze. - - Nijak nesouvisí s Problémy zadanými řešitelům.""" - # FIXME: přejmenovat funkci? - # FIXME: Tak, jak je napsaná, asi spíš patří někam k views a ne do utils (?) - problemy = [] - - # Pomocna fce k formatovani problemovych hlasek - def prb(cls, msg, objs=None): - s = '<b>%s:</b> %s' % (cls.__name__, msg) - if objs: - s += ' [' - for o in objs: - try: - url = o.admin_url() - except: - url = None - if url: - s += '<a href="%s">%s</a>, ' % (url, o.pk,) - else: - s += '%s, ' % (o.pk,) - s = s[:-2] + ']' - problemy.append(s) - - # Duplicita jmen - jmena = {} - for r in m.Resitel.objects.all(): - j = r.osoba.plne_jmeno() - if j not in jmena: - jmena[j] = [] - jmena[j].append(r) - for j in jmena: - if len(jmena[j]) > 1: - prb(m.Resitel, 'Duplicitní jméno "%s"' % (j,), jmena[j]) - - # Data maturity a narození - for r in m.Resitel.objects.all(): - if not r.rok_maturity: - prb(m.Resitel, 'Neznámý rok maturity', [r]) - if r.rok_maturity and (r.rok_maturity < 1990 or r.rok_maturity > datetime.date.today().year + 10): - prb(m.Resitel, 'Podezřelé datum maturity', [r]) - if r.osoba.datum_narozeni and ( - r.osoba.datum_narozeni.year < 1970 or r.osoba.datum_narozeni.year > datetime.date.today().year - 12): - prb(m.Resitel, 'Podezřelé datum narození', [r]) -# if not r.email: -# prb(Resitel, u'Neznámý email', [r]) - - ## Kontroly konzistence databáze a TreeNodů - - # Články - for clanek in m.Clanek.objects.all(): - # získáme řešení svázané se článkem a z něj node ve stromě - reseni = clanek.reseni_set - if (reseni.count() != 1): - raise ValueError("Článek k sobě má nejedno řešení!") - r = reseni.first() - clanek_node = r.text_cely # vazba na ReseniNode z Reseni - # content type je věc pomáhající rozeznávat různé typy objektů v django-polymorphic - # protože isinstance vrátí vždy jen TreeNode - # https://django-polymorphic.readthedocs.io/en/stable/migrating.html - cislonode_ct = ContentType.objects.get_for_model(m.CisloNode) - node = clanek_node - while node is not None: - node_ct = node.polymorphic_ctype - if node_ct == cislonode_ct: # dostali jsme se k CisloNode - # zkontrolujeme, že stromové číslo odpovídá atributu - # .cislonode je opačná vazba k treenode_ptr, abychom z TreeNode dostali - # CisloNode - if clanek.cislo != node.cislonode.cislo: - prb(m.Clanek, "Číslo otištění uložené u článku nesedí s " - "číslem otištění podle struktury treenodů.", [clanek]) - break - node = t.get_parent(node) - - return problemy - - -### Generovani obalek -def resi_v_rocniku(rocnik, cislo=None): - """ Vrátí seznam řešitelů, co vyřešili nějaký problém v daném ročníku, do daného čísla. - Parametry: - rocnik (typu Rocnik) ročník, ze kterého chci řešitele, co něco odevzdali - cislo (typu Cislo) číslo, do kterého včetně se počítá, že v daném - ročníku řešitel něco poslal. - Pokud není zadané, počítají se všechna řešení z daného ročníku. - Výstup: - QuerySet objektů typu Resitel """ - - if cislo is None: - # filtrujeme pouze podle ročníku - return m.Resitel.objects.filter(rok_maturity__gte=rocnik.druhy_rok(), - reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik).distinct() - else: # filtrujeme podle ročníku i čísla - return m.Resitel.objects.filter(rok_maturity__gte=rocnik.druhy_rok(), - reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik, - reseni__hodnoceni__deadline_body__cislo__poradi__lte=cislo.poradi).distinct() - - -def aktivniResitele(cislo, pouze_letosni=False): - """ Vrací QuerySet aktivních řešitelů, což jsou ti, co ještě neodmaturovali - a letos něco poslali (anebo loni něco poslali, pokud jde o první tři čísla). - Parametry: - cislo (typu Cislo) číslo, o které se jedná - pouze_letosni jen řešitelé, kteří tento rok něco poslali - - """ - letos = cislo.rocnik - - # detekujeme, zda jde o první tři čísla či nikoli (tj. zda spamovat řešitele z minulého roku) - zacatek_rocniku = True - try: - if int(cislo.poradi) > 3: - zacatek_rocniku = False - except ValueError: - # if cislo.poradi != '7-8': - # raise ValueError(f'{cislo} je neplatné číslo čísla (není int a není 7-8)') - zacatek_rocniku = False - - # nehledě na číslo chceme jen řešitele, kteří letos něco odevzdali - if pouze_letosni: - zacatek_rocniku = False - - try: - loni = m.Rocnik.objects.get(rocnik=letos.rocnik - 1) - except ObjectDoesNotExist: - # Pro první ročník neexistuje ročník předchozí - zacatek_rocniku = False - - if not zacatek_rocniku: - return resi_v_rocniku(letos, cislo).filter(rok_maturity__gte=letos.druhy_rok()) - else: - # spojíme querysety s řešiteli loni a letos do daného čísla - return (resi_v_rocniku(loni) | resi_v_rocniku(letos, cislo)).distinct().filter(rok_maturity__gte=letos.druhy_rok()) - -def viewMethodSwitch(get, post): - """ - Vrátí view, který zavolá různé jiné views podle toho, kterou metodou je zavolán. - - Inspirováno https://docs.djangoproject.com/en/3.1/topics/class-based-views/mixins/#an-alternative-better-solution, jen jsem to udělal genericky. - - Parametry: - post view pro metodu POST - get view pro metodu GET - - V obou případech se míní už view jakožto funkce, takže u class-based views se už má použít .as_view() - - TODO: Podpora i pro metodu HEAD? A možná i pro FILES? - """ - - theGetView = get - thePostView = post - - class NewView(DjangoViews.View): - def get(self, request, *args, **kwargs): - return theGetView(request, *args, **kwargs) - def post(self, request, *args, **kwargs): - return thePostView(request, *args, **kwargs) - - return NewView.as_view() - - -def sync_skoly(base_url): - """Stáhne všechny školy z mamwebu na adrese <base_url> a uloží je do databáze""" - from django.urls import reverse - full_url = base_url.rstrip('/') + reverse('export_skoly') - import requests - from django.core import serializers - json = requests.get(full_url, stream=True).content - for skola in serializers.deserialize('json', json): - skola.save() - -@transaction.atomic -def merge_resitele(cilovy, zdrojovy): - """Spojí dva řešitelské objekty do cílového. - - Pojmenování "zdrojový" je silně nepřiléhající, ale co už…""" - - # Postup: - # Sjednotit / upravit informace cílového řešitele - print('Upravuji data modelu') - fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove'] - - for f in fieldy_shoda: - zf = getattr(zdrojovy, f) - cf = getattr(cilovy, f) - if cf == zf: - print(f' Údaj {f} je shodný ({zf})') - else: - if zf is None: - print(f' Údaj {f} je pouze v cílovém, používám') - continue - if cf is None: - setattr(cilovy, f, zf) - cilovy.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojového: {zf}' - print(f" Přiřazuji {f} ze zdrojového: {zf}") - continue - # Jsou fakt různé… - # FIXME: chybí možnost na vlastní úpravu… - verdikt = input(f"\n\n Údaj {f} se u řešitele {cilovy} ({cilovy.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") - verdikt = verdikt[0].casefold() - if verdikt == 'z': - setattr(cilovy, f, zf) - cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojový), nepoužit {cf} (cílový)' - elif verdikt == 'c': - cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílový), nepoužit {zf} (zdrojový)' - else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') - # poznámku chceme nezahodit… - cilovy.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojovy.poznamka}' - print(f' Výsledný řešitel: {cilovy.__dict__}, ukládám') - cilovy.save() - - - # Přepojit všechny vazby ze zdrojového na cílového - print('Přepojuji vazby') - # Vazby: Škola (hotovo), Řešení_Řešitelé, Konfery_Účastníci, Soustředění_Účastníci, Osoba (vyřeší se později, nejde přepojit) - ct = m.Reseni_Resitele.objects.filter(resitele=zdrojovy).update(resitele=cilovy) - print(f' Přepojeno {ct} řešení') - ct = m.Konfery_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) - print(f' Přepojeno {ct} konfer') - ct = m.Soustredeni_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) - print(f' Přepojeno {ct} sousů') - - # Teď by na zdrojovém řešiteli nemělo nic viset, smazat ho, pamatujíce si jeho Osobu - zdrosoba = zdrojovy.osoba - print(f'Mažu zdrojového řešitele {zdrojovy.__dict__}') - zdrojovy.delete() - # Spojit osoby (separátní funkce). - merge_osoby(cilovy.osoba, zdrosoba) - - input("Potvrdit transakci řešitelů (^C pro zrušení) ") - -@transaction.atomic -def merge_osoby(cilova, zdrojova): - """ Spojí dvě osoby do cílové - - Nehlídá omezení typu "max 1 řešitel na osobu", to by měla hlídat databáze (OneToOneField).""" - # Sjednocení dat - print('Sjednocuji data osob') - # ID, User neřešíme, poznámku vyřešíme separátně. - fieldy = ['datum_narozeni', 'datum_registrace', 'datum_souhlasu_udaje', - 'datum_souhlasu_zasilani', 'email', 'foto', 'jmeno', 'mesto', - 'osloveni', 'prezdivka', 'prijmeni', 'psc', 'stat', 'telefon', 'ulice'] - for f in fieldy: - zf = getattr(zdrojova, f) - cf = getattr(cilova, f) - if cf == zf: - print(f' Údaj {f} je shodný ({zf})') - else: - if zf is None: - print(f' Údaj {f} je pouze v cílové, používám') - continue - if cf is None: - setattr(cilova, f, zf) - cilova.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojové: {zf}' - print(f" Přiřazuji {f} ze zdrojové: {zf}") - continue - # Jsou fakt různé… - # FIXME: chybí možnost na vlastní úpravu… - verdikt = input(f"\n\n Údaj {f} se u osoby {cilova} ({cilova.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") - verdikt = verdikt[0].casefold() - if verdikt == 'z': - setattr(cilova, f, zf) - cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojová), nepoužit {cf} (cílová)' - elif verdikt == 'c': - cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílová), nepoužit {zf} (zdrojová)' - else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') - # poznámku chceme nezahodit… - cilova.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojova.poznamka}' - print(f' Výsledná osoba: {cilova.__dict__}, ukládám') - cilova.save() - - # Vazby: Řešitel, User, Příjemce, Organizátor, Škola.kontaktní_osoba - print('Přepojuji vazby') - ct = m.Skola.objects.filter(kontaktni_osoba=zdrojova).update(kontaktni_osoba=cilova) - print(f' Přepojeno {ct} kontaktních osob') - # Ostatní vazby vyřeší OneToOneFieldy, ale někdy nemusí existovat… - ct = m.Resitel.objects.filter(osoba=zdrojova).update(osoba=cilova) - print(f' Přepojeno {ct} řešitelů') - ct = m.Prijemce.objects.filter(osoba=zdrojova).update(osoba=cilova) - print(f' Přepojeno {ct} příjemců') - ct = m.Organizator.objects.filter(osoba=zdrojova).update(osoba=cilova) - print(f' Přepojeno {ct} organizátorů') - # Uživatelé vedou opačným směrem, radši chceme zkontrolovat, že jsou různí ručně: - if zdrojova.user != cilova.user: - # Jeden z nich může být nenastavený… - if zdrojova.user is None: - print('Uživatel je již v cílové osobě') - elif cilova.user is None: - print('Používám uživatele zdrojové osoby') - cilova.user = zdrojova.user - # Teď nemůžeme uložit, protože kolize uživatelů. Ukládat cílovou budeme až po smazání zdrojové. - else: raise ValueError('Osoby mají obě uživatele, radši padám') - - # Uložení a mazání - print(f'Mažu zdrojovou osobu {zdrojova.__dict__}') - zdrojova.delete() - print(f'Ukládám cílovou osobu {cilova.__dict__}') - cilova.save() - - input("Potvrdit transakci osob (^C pro zrušení) ") - - diff --git a/sifrovacka/urls.py b/sifrovacka/urls.py index 85f9c4cc..1357ef27 100644 --- a/sifrovacka/urls.py +++ b/sifrovacka/urls.py @@ -1,6 +1,6 @@ from django.urls import path -from seminar.utils import org_required, resitel_or_org_required +from personalni.utils import org_required, resitel_or_org_required from .views import SifrovackaView, SifrovackaListView, NapovedaView, NapovedaListView, PreskoceniView urlpatterns = [ diff --git a/soustredeni/urls.py b/soustredeni/urls.py index 2e5a6136..92cfad18 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ path( diff --git a/tvorba/urls.py b/tvorba/urls.py index b5ebed98..e662491c 100644 --- a/tvorba/urls.py +++ b/tvorba/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include, re_path from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ # path('aktualni/temata/', views.TemataRozcestnikView), diff --git a/tvorba/utils.py b/tvorba/utils.py new file mode 100644 index 00000000..ba0c5d5b --- /dev/null +++ b/tvorba/utils.py @@ -0,0 +1,89 @@ +from django.core.exceptions import ObjectDoesNotExist + +import personalni.models + +import seminar.models as m + + +def resi_v_rocniku(rocnik, cislo=None): + """ Vrátí seznam řešitelů, co vyřešili nějaký problém v daném ročníku, do daného čísla. + Parametry: + rocnik (typu Rocnik) ročník, ze kterého chci řešitele, co něco odevzdali + cislo (typu Cislo) číslo, do kterého včetně se počítá, že v daném + ročníku řešitel něco poslal. + Pokud není zadané, počítají se všechna řešení z daného ročníku. + Výstup: + QuerySet objektů typu Resitel """ + + if cislo is None: + # filtrujeme pouze podle ročníku + return personalni.models.Resitel.objects.filter( + rok_maturity__gte=rocnik.druhy_rok(), + reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik + ).distinct() + else: # filtrujeme podle ročníku i čísla + return personalni.models.Resitel.objects.filter( + rok_maturity__gte=rocnik.druhy_rok(), + reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik, + reseni__hodnoceni__deadline_body__cislo__poradi__lte=cislo.poradi + ).distinct() + + +def aktivniResitele(cislo, pouze_letosni=False): + """ Vrací QuerySet aktivních řešitelů, což jsou ti, co ještě neodmaturovali + a letos něco poslali (anebo loni něco poslali, pokud jde o první tři čísla). + Parametry: + cislo (typu Cislo) číslo, o které se jedná + pouze_letosni jen řešitelé, kteří tento rok něco poslali + + """ + letos = cislo.rocnik + + # detekujeme, zda jde o první tři čísla či nikoli (tj. zda spamovat řešitele z minulého roku) + zacatek_rocniku = True + try: + if int(cislo.poradi) > 3: + zacatek_rocniku = False + except ValueError: + # if cislo.poradi != '7-8': + # raise ValueError(f'{cislo} je neplatné číslo čísla (není int a není 7-8)') + zacatek_rocniku = False + + # nehledě na číslo chceme jen řešitele, kteří letos něco odevzdali + if pouze_letosni: + zacatek_rocniku = False + + try: + loni = m.Rocnik.objects.get(rocnik=letos.rocnik - 1) + except ObjectDoesNotExist: + # Pro první ročník neexistuje ročník předchozí + zacatek_rocniku = False + + if not zacatek_rocniku: + return resi_v_rocniku(letos, cislo).filter(rok_maturity__gte=letos.druhy_rok()) + else: + # spojíme querysety s řešiteli loni a letos do daného čísla + return (resi_v_rocniku(loni) | resi_v_rocniku(letos, cislo))\ + .distinct().filter(rok_maturity__gte=letos.druhy_rok()) + + +# Pozor: zarovnáno velmi netradičně pro přehlednost +roman_numerals = zip((1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1), # noqa + ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')) # noqa + + +def roman(num): + res = "" + for i, n in roman_numerals: + res += n * (num // i) + num %= i + return res + + +def from_roman(rom): + if not rom: + return 0 + for i, n in roman_numerals: + if rom.upper().startswith(n): + return i + from_roman(rom[len(n):]) + raise Exception('Invalid roman numeral: "%s"', rom) diff --git a/tvorba/views/views_all.py b/tvorba/views/views_all.py index b4bbad92..f960aac8 100644 --- a/tvorba/views/views_all.py +++ b/tvorba/views/views_all.py @@ -15,7 +15,6 @@ from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ Resitel, Novinky, Tema, Clanek, \ Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva -from seminar import utils from treenode import treelib import treenode.templatetags as tnltt import treenode.serializers as vr @@ -32,9 +31,10 @@ import unicodedata import logging import time -from seminar.utils import aktivniResitele import personalni.views +from .. import utils + # ze starého modelu #def verejna_temata(rocnik): # """ @@ -368,7 +368,7 @@ class OdmenyView(generic.TemplateView): context = super().get_context_data(**kwargs) fromcislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) tocislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) - resitele = aktivniResitele(tocislo) + resitele = utils.aktivniResitele(tocislo) def get_diff(from_deadline: Deadline, to_deadline: Deadline): frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) @@ -481,7 +481,7 @@ class RocnikVysledkovkaView(RocnikView): def cisloObalkyView(request, rocnik, cislo): realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) - return personalni.views.obalkyView(request, aktivniResitele(realne_cislo)) + return personalni.views.obalkyView(request, utils.aktivniResitele(realne_cislo)) diff --git a/various/urls.py b/various/urls.py index ae2d3042..a3f03ade 100644 --- a/various/urls.py +++ b/various/urls.py @@ -1,6 +1,6 @@ from django.urls import path from .views.final import TitulniStranaView, JakResitView, StavDatabazeView -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ path('', TitulniStranaView.as_view(), name='titulni_strana'), diff --git a/various/views/final.py b/various/views/final.py index 12a18250..de23a718 100644 --- a/various/views/final.py +++ b/various/views/final.py @@ -4,13 +4,15 @@ Stránky, které se mi nepovedlo lépe zařadit. Oproti `./pomocne.py` se tyto views používají přímo ve various a naopak importují spoustu věcí odjinud """ +import datetime +from django.contrib.contenttypes.models import ContentType from django.shortcuts import get_object_or_404, render from django.utils import timezone from django.views import generic import novinky.views -import seminar.utils +import treenode.treelib as t import tvorba.views from personalni.models import Resitel from seminar import models as m @@ -56,9 +58,94 @@ class JakResitView(generic.ListView): ### Status +def histogram(seznam): + d = {} + for i in seznam: + if i not in d: + d[i] = 0 + d[i] += 1 + return d + + +def seznam_problemu(): + """Funkce pro hledání nekonzistencí v databázi a dalších nežádoucích stavů webu/databáze. + + Nijak nesouvisí s Problémy zadanými řešitelům.""" + # FIXME: přejmenovat funkci? + problemy = [] + + # Pomocna fce k formatovani problemovych hlasek + def prb(cls, msg, objs=None): + s = '<b>%s:</b> %s' % (cls.__name__, msg) + if objs: + s += ' [' + for o in objs: + try: + url = o.admin_url() + except: + url = None + if url: + s += '<a href="%s">%s</a>, ' % (url, o.pk,) + else: + s += '%s, ' % (o.pk,) + s = s[:-2] + ']' + problemy.append(s) + + # Duplicita jmen + jmena = {} + for r in m.Resitel.objects.all(): + j = r.osoba.plne_jmeno() + if j not in jmena: + jmena[j] = [] + jmena[j].append(r) + for j in jmena: + if len(jmena[j]) > 1: + prb(m.Resitel, 'Duplicitní jméno "%s"' % (j,), jmena[j]) + + # Data maturity a narození + for r in m.Resitel.objects.all(): + if not r.rok_maturity: + prb(m.Resitel, 'Neznámý rok maturity', [r]) + if r.rok_maturity and (r.rok_maturity < 1990 or r.rok_maturity > datetime.date.today().year + 10): + prb(m.Resitel, 'Podezřelé datum maturity', [r]) + if r.osoba.datum_narozeni and ( + r.osoba.datum_narozeni.year < 1970 or r.osoba.datum_narozeni.year > datetime.date.today().year - 12): + prb(m.Resitel, 'Podezřelé datum narození', [r]) + # if not r.email: + # prb(Resitel, u'Neznámý email', [r]) + + ## Kontroly konzistence databáze a TreeNodů + + # Články + for clanek in m.Clanek.objects.all(): + # získáme řešení svázané se článkem a z něj node ve stromě + reseni = clanek.reseni_set + if (reseni.count() != 1): + raise ValueError("Článek k sobě má nejedno řešení!") + r = reseni.first() + clanek_node = r.text_cely # vazba na ReseniNode z Reseni + # content type je věc pomáhající rozeznávat různé typy objektů v django-polymorphic + # protože isinstance vrátí vždy jen TreeNode + # https://django-polymorphic.readthedocs.io/en/stable/migrating.html + cislonode_ct = ContentType.objects.get_for_model(m.CisloNode) + node = clanek_node + while node is not None: + node_ct = node.polymorphic_ctype + if node_ct == cislonode_ct: # dostali jsme se k CisloNode + # zkontrolujeme, že stromové číslo odpovídá atributu + # .cislonode je opačná vazba k treenode_ptr, abychom z TreeNode dostali + # CisloNode + if clanek.cislo != node.cislonode.cislo: + prb(m.Clanek, "Číslo otištění uložené u článku nesedí s " + "číslem otištění podle struktury treenodů.", [clanek]) + break + node = t.get_parent(node) + + return problemy + def StavDatabazeView(request): # nastaveni = Nastaveni.objects.get() - problemy = seminar.utils.seznam_problemu() + problemy = seznam_problemu() muzi = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_MUZSKE) zeny = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_ZENSKE) return render(request, 'various/stav_databaze.html', { @@ -68,6 +155,6 @@ def StavDatabazeView(request): 'resitele': Resitel.objects.all(), 'muzi': muzi, 'zeny': zeny, - 'jmena_muzu': seminar.utils.histogram([r.osoba.jmeno for r in muzi]), - 'jmena_zen': seminar.utils.histogram([r.osoba.jmeno for r in zeny]), + 'jmena_muzu': histogram([r.osoba.jmeno for r in muzi]), + 'jmena_zen': histogram([r.osoba.jmeno for r in zeny]), }) diff --git a/various/views/generic.py b/various/views/generic.py new file mode 100644 index 00000000..b18178fb --- /dev/null +++ b/various/views/generic.py @@ -0,0 +1,29 @@ +import django.views + + +def viewMethodSwitch(get, post): + """ + Vrátí view, který zavolá různé jiné views podle toho, kterou metodou je zavolán. + + Inspirováno https://docs.djangoproject.com/en/3.1/topics/class-based-views/mixins/#an-alternative-better-solution, jen jsem to udělal genericky. + + Parametry: + post view pro metodu POST + get view pro metodu GET + + V obou případech se míní už view jakožto funkce, takže u class-based views se už má použít .as_view() + + TODO: Podpora i pro metodu HEAD? A možná i pro FILES? + """ + + theGetView = get + thePostView = post + + class NewView(django.views.View): + def get(self, request, *args, **kwargs): + return theGetView(request, *args, **kwargs) + + def post(self, request, *args, **kwargs): + return thePostView(request, *args, **kwargs) + + return NewView.as_view() diff --git a/vyroci/urls.py b/vyroci/urls.py index 69132f45..44215a46 100644 --- a/vyroci/urls.py +++ b/vyroci/urls.py @@ -1,6 +1,6 @@ from django.urls import path -from seminar.utils import org_required +from personalni.utils import org_required from .views import VyrociView, VyrociListView urlpatterns = [ diff --git a/vysledkovky/utils.py b/vysledkovky/utils.py index 2036b9d3..7cd914f4 100644 --- a/vysledkovky/utils.py +++ b/vysledkovky/utils.py @@ -4,7 +4,7 @@ from typing import Union, Iterable # TODO: s pythonem 3.10 přepsat na '|' import seminar.models as m from django.db.models import Q, Sum -from seminar.utils import resi_v_rocniku +from tvorba.utils import resi_v_rocniku ROCNIK_ZRUSENI_TEMAT = 25 From 0b0a939de5c33110b0870e0d48942a0a9cd1230b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 19:38:06 +0200 Subject: [PATCH 201/225] =?UTF-8?q?Odd=C4=9Blen=C3=AD=20generov=C3=A1n?= =?UTF-8?q?=C3=AD=20testdat=20k=20sous=20v=C4=9Bcem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 52 +++-------------------------------- soustredeni/testutils.py | 59 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 48 deletions(-) create mode 100644 soustredeni/testutils.py diff --git a/seminar/testutils.py b/seminar/testutils.py index be7f3677..51f3f362 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -10,13 +10,15 @@ import unidecode import logging from korektury.testutils import create_test_pdf -from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode +from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Osoba, Organizator, Prijemce, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode import seminar.models as m from django.contrib.flatpages.models import FlatPage from django.contrib.sites.models import Site from treenode.treelib import all_children, insert_last_child, all_children_of_type, create_node_after +from soustredeni.testutils import gen_soustredeni, gen_konfery + User = django.contrib.auth.get_user_model() zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu @@ -352,30 +354,6 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) return -def gen_soustredeni(rnd, resitele, organizatori): - logger.info('Generuji soustředění...') - - soustredeni = [] - for _ in range(1, 10): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - datum_zacatku=datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) - working_sous = Soustredeni.objects.create( - rocnik=Rocnik.objects.order_by('?').first(), - verejne_db=rnd.choice([True, False]), - misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), - typ=rnd.choice(['jarni', 'podzimni', 'vikend']), - datum_zacatku=datum_zacatku, - datum_konce=datum_zacatku + datetime.timedelta(days=7)) - ucastnici = rnd.sample(resitele, min(len(resitele), 20)) - working_sous.ucastnici.set(ucastnici) - #for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) - orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) - working_sous.organizatori.set(orgove_vyber) - #for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) - working_sous.save() - soustredeni.append(working_sous) - return soustredeni def gen_rocniky(last_rocnik, size): logger.info('Generuji ročníky (size={})...'.format(size)) @@ -390,28 +368,6 @@ def gen_rocniky(last_rocnik, size): rocniky.append(rocnik) return rocniky -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): - logger.info('Generuji konfery (size={})...'.format(size)) - - konfery = [] - for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, - # kolik dat se nageneruje - konfera = Konfera.objects.create( - nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), - anotace=lorem.paragraph(), - abstrakt=lorem.paragraph(), - garant=rnd.choice(organizatori), - soustredeni=rnd.choice(soustredeni), - typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) - ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) - konfera.ucastnici.set(ucastnici) - #for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) - konfera.save() - konfery.append(konfera) - return konfery def gen_cisla(rnd, rocniky): logger.info('Generuji čísla...') @@ -881,7 +837,7 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) #generování konfer konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py new file mode 100644 index 00000000..12a48378 --- /dev/null +++ b/soustredeni/testutils.py @@ -0,0 +1,59 @@ +import logging +import datetime + +import lorem + +from .models import Soustredeni, Konfera +import seminar.models.tvorba as am + +logger = logging.getLogger(__name__) + + +def gen_soustredeni(size, rnd, resitele, organizatori): + logger.info('Generuji soustředění...') + + soustredeni = [] + for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + datum_zacatku = datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) + working_sous = Soustredeni.objects.create( + rocnik=am.Rocnik.objects.order_by('?').first(), + verejne_db=rnd.choice([True, False]), + misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), + typ=rnd.choice(['jarni', 'podzimni', 'vikend']), + datum_zacatku=datum_zacatku, + datum_konce=datum_zacatku + datetime.timedelta(days=7)) + ucastnici = rnd.sample(resitele, min(len(resitele), 20)) + working_sous.ucastnici.set(ucastnici) + # for res in rnd.sample(resitele, min(len(resitele), 20)): + # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) + orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) + working_sous.organizatori.set(orgove_vyber) + # for org in rnd.sample(organizatori, min(len(organizatori), 20)): + # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) + working_sous.save() + soustredeni.append(working_sous) + return soustredeni + + +def gen_konfery(size, rnd, organizatori, resitele, soustredeni): + logger.info('Generuji konfery (size={})...'.format(size)) + + konfery = [] + for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, + # kolik dat se nageneruje + konfera = Konfera.objects.create( + nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), + anotace=lorem.paragraph(), + abstrakt=lorem.paragraph(), + garant=rnd.choice(organizatori), + soustredeni=rnd.choice(soustredeni), + typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) + ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) + konfera.ucastnici.set(ucastnici) + # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): + # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) + konfera.save() + konfery.append(konfera) + return konfery From 6a781323e0e01f4b791be44f2289c0a925c91848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 20:05:19 +0200 Subject: [PATCH 202/225] =?UTF-8?q?Typov=C3=A9=20anotace=20a=20dal=C5=A1?= =?UTF-8?q?=C3=AD=20detaily=20v=20generov=C3=A1n=C3=AD=20testdat=20k=20sou?= =?UTF-8?q?stredeni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 4 ++-- soustredeni/testutils.py | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index 51f3f362..b7bd61e2 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -837,10 +837,10 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) + konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 12a48378..51bbb135 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -1,16 +1,25 @@ import logging import datetime +import random +from typing import Sequence import lorem from .models import Soustredeni, Konfera import seminar.models.tvorba as am +import personalni.models as pm logger = logging.getLogger(__name__) -def gen_soustredeni(size, rnd, resitele, organizatori): - logger.info('Generuji soustředění...') +def gen_soustredeni( + size: int, + resitele: Sequence[pm.Resitel], + organizatori: Sequence[pm.Organizator], + rnd: random.Random = None, +) -> Sequence[Soustredeni]: + logger.info('Generuji soustředění (size={})...') + rnd = rnd or random.Random(x=42) soustredeni = [] for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) @@ -35,8 +44,15 @@ def gen_soustredeni(size, rnd, resitele, organizatori): return soustredeni -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): +def gen_konfery( + size: int, + organizatori: Sequence[pm.Organizator], + resitele: Sequence[pm.Resitel], + soustredeni: Sequence[Soustredeni], + rnd: random.Random = None, +) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) + rnd = rnd or random.Random(x=42) konfery = [] for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) From bf748b55ee7145ee7e06a87e6adee40647aa41d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 20:15:02 +0200 Subject: [PATCH 203/225] =?UTF-8?q?Odstran=C4=9Bn=20zakomentovan=C3=BD=20z?= =?UTF-8?q?byte=C4=8Dn=C4=9B=20slo=C5=BEit=C3=BD=20k=C3=B3d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/testutils.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 51bbb135..6e406530 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -33,12 +33,8 @@ def gen_soustredeni( datum_konce=datum_zacatku + datetime.timedelta(days=7)) ucastnici = rnd.sample(resitele, min(len(resitele), 20)) working_sous.ucastnici.set(ucastnici) - # for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) working_sous.organizatori.set(orgove_vyber) - # for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) working_sous.save() soustredeni.append(working_sous) return soustredeni @@ -68,8 +64,6 @@ def gen_konfery( ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) - # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) konfera.save() konfery.append(konfera) return konfery From d952ab13a5c8bbd39b1c660400c4cd6f0ba9b81c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Fri, 2 Aug 2024 20:17:31 +0200 Subject: [PATCH 204/225] =?UTF-8?q?Generov=C3=A1n=C3=AD=20konfer=20s=20kon?= =?UTF-8?q?kr=C3=A9tn=C3=ADmi=20=C5=99e=C5=A1iteli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 2 +- soustredeni/testutils.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index b7bd61e2..18bbbe2e 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -840,7 +840,7 @@ def create_test_data(size = 6, rnd = None): soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) + konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 6e406530..52e81d1c 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -43,8 +43,8 @@ def gen_soustredeni( def gen_konfery( size: int, organizatori: Sequence[pm.Organizator], - resitele: Sequence[pm.Resitel], soustredeni: Sequence[Soustredeni], + resitele: Sequence[pm.Resitel] = None, rnd: random.Random = None, ) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) @@ -61,7 +61,7 @@ def gen_konfery( garant=rnd.choice(organizatori), soustredeni=rnd.choice(soustredeni), typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici_sous = resitele if resitele else list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) konfera.save() From 348096024eb89ca1797b64c82fb88feb95714ffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 6 Aug 2024 02:33:53 +0200 Subject: [PATCH 205/225] seminar/testutils.py --- novinky/testutils.py | 27 ++ odevzdavatko/testutils.py | 40 +++ personalni/testutils.py | 235 +++++++++++++++ {seminar => tvorba}/testutils.py | 370 +----------------------- various/management/commands/testdata.py | 4 +- various/testutils.py | 135 +++++++++ 6 files changed, 443 insertions(+), 368 deletions(-) create mode 100644 novinky/testutils.py create mode 100644 odevzdavatko/testutils.py create mode 100644 personalni/testutils.py rename {seminar => tvorba}/testutils.py (53%) create mode 100644 various/testutils.py diff --git a/novinky/testutils.py b/novinky/testutils.py new file mode 100644 index 00000000..f1ef6adc --- /dev/null +++ b/novinky/testutils.py @@ -0,0 +1,27 @@ +import logging + +from .models import Novinky + +logger = logging.getLogger(__name__) + + +def gen_novinky(rnd, organizatori): + logger.info('Generuji novinky...') + + jake = ["zábavné", "veselé", "dobrodružné", "skvělé"] + co = ["soustředění", "Fyziklání", "víkendové setkání"] + kde = ["na Šumavě", "v Praze", "u Plzně", "na Marsu"] + kdy = ["Zítra bude", "10. 10. 2020 bude", "V prosinci bude", "V létě bude"] + + for i in range(5): + text_novinky = " ".join([ + rnd.choice(kdy), rnd.choice(kde), + rnd.choice(jake), rnd.choice(co), + ]) + novinka = Novinky.objects.create( + id=i, autor=rnd.choice(organizatori), + text=(text_novinky+", těšíme se na vás!"), + zverejneno=rnd.choice([True, False]), + ) + novinka.save() + return diff --git a/odevzdavatko/testutils.py b/odevzdavatko/testutils.py new file mode 100644 index 00000000..1f382438 --- /dev/null +++ b/odevzdavatko/testutils.py @@ -0,0 +1,40 @@ +import datetime +import random + +from seminar.models.odevzdavatko import Reseni, Hodnoceni + + +def gen_reseni_ulohy(rnd, cisla, uloha, pocet_resitelu, poradi_cisla, resitele_cisla, resitele): + pocet_reseni = rnd.randint(pocet_resitelu//4, pocet_resitelu * 4) + # generujeme náhodný počet řešení vzhledem k počtu řešitelů čísla + for _ in range(pocet_reseni): + #print("Generuji {}-té řešení".format(reseni)) + if rnd.randint(1, 10) == 1: + # cca desetina řešení od více řešitelů + res_vyber = rnd.sample(resitele_cisla, rnd.randint(2, 5)) + else: + res_vyber = rnd.sample(resitele_cisla, 1) + if resitele[0] in res_vyber: # speciální řešitel, který nemá žádné body + res_vyber.remove(resitele[0]) + + # Vytvoření řešení. + if uloha.cislo_zadani.zlomovy_deadline_pro_papirove_cislo() is not None: + # combine, abychom dostali plný čas a ne jen datum + cas_doruceni = uloha.cislo_zadani.deadline_v_cisle.first().deadline - datetime.timedelta(days=random.randint(0, 40)) - datetime.timedelta(minutes=random.randint(0, 60*24)) + # astimezone, protože jinak vyhazuje warning o nenastavené TZ + res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0], cas_doruceni=cas_doruceni.astimezone(datetime.timezone.utc)) + else: + res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0]) + # Problém a řešitele přiřadíme později, ManyToManyField + # se nedá vyplnit v create(). + res.resitele.set(res_vyber) + res.save() + + # Vytvoření hodnocení. + hod = Hodnoceni.objects.create( + body=rnd.randint(0, uloha.max_body), + cislo_body=cisla[poradi_cisla - 1], + reseni=res, + problem=uloha + ) + return diff --git a/personalni/testutils.py b/personalni/testutils.py new file mode 100644 index 00000000..2b2d6bcc --- /dev/null +++ b/personalni/testutils.py @@ -0,0 +1,235 @@ +import datetime +import logging +import unidecode + +from django.contrib.auth.models import Permission +from django.contrib.auth.models import Group +import django.contrib.auth + +from .models import Osoba, Skola, Organizator, Resitel, Prijemce + +logger = logging.getLogger(__name__) + +User = django.contrib.auth.get_user_model() + +zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu + + +# testuje unikátnost vygenerovaného jména +def __unikatni_jmeno(osoby, jmeno, prijmeni): + for os in osoby: + if os.jmeno == jmeno and os.prijmeni == prijmeni: + return 0 + else: + return 1 + + +def gen_osoby(rnd, size): + logger.info('Generuji osoby (size={})...'.format(size)) + + jmena_m = ['Aleš', 'Tomáš', 'Martin', 'Jakub', 'Petr', 'Lukáš', 'Cyril', 'Pavel Karel'] + jmena_f = ['Eva', 'Karolína', 'Zuzana', 'Sylvie', 'Iva', 'Jana', 'Marie', 'Marta Iva', 'Shu Shan'] + prijmeni_m = ['Novotný', 'Svoboda', 'Pecha', 'Kořen', 'Holan', 'Uhlíř', 'Chytráček', 'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"] + prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná', 'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui', "Nováčková Tydlitátová"] + prezdivky = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "", "", "", 'Riki', 'Sapa', "", '', '---', 'Koko'] + domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz', 'british.co.uk', 'splachni.to', 'haha.org'] + seznam_ulic = ['Krátká', 'Vlhká', 'Jungmanova', '17. listopadu', '4. října', 'Roztocká', 'Forstova', 'Generála Františka Janouška', 'Náměstí Války', 'Svratecké náměstí', 'Zelená lhota', 'Z Plynu', 'K Jezeru', 'U Kocourkova', 'Uštěpačná', 'Ostrorepská', 'Zubří'] + seznam_mest = ['Praha', 'Brno', 'Ostrava', 'Horní Jelení', 'Dolní Zábrdovice', 'Prdelkov', 'Stará myslivna', 'Kocourkov', 'Šalingrad', 'Medvědí hora', 'Basilej', 'Unterschiedlich', 'Old York', 'Lancastershire', 'Vóloďháza'] + + osoby = [] + # 30 je náhodná konstanta, size je použité na víc místech a + # říká, jak velká asi chceme testovací data + for i in range(30 * size): + pohlavi_idx = rnd.randint(0, 2) # 2 = nebinární + osloveni = [Osoba.OSLOVENI_MUZSKE, Osoba.OSLOVENI_ZENSKE, Osoba.OSLOVENI_ZADNE][pohlavi_idx] + jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) + prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) + if pohlavi_idx == 2: logger.debug(f'Testdata: nebinární osoba: {jmeno} {prijmeni}.') + pokusy = 0 + max_pokusy = 120*size + while not __unikatni_jmeno and pokusy < max_pokusy: + # pokud jméno a příjmení není unikátní, zkoušíme generovat nová + # do daného limitu (abychom se nezacyklili do nekonečna při málo jménech a příjmeních + # ze kterých se generuje) + jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) + prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) + pokusy += 1 + if pokusy >= max_pokusy: + print("Chyba, na danou velikost testovacích dat příliš málo možných jmen a příjmení") + exit() + prezdivka = rnd.choice(prezdivky) + email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)]) + telefon = "".join([str(rnd.choice([k for k in range(10)])) for _ in range(9)]) + narozeni = datetime.date( + rnd.randint(1980, datetime.datetime.now().year), + rnd.randint(1, 12), + rnd.randint(1, 28) + ) + ulic = rnd.choice(seznam_ulic) + cp = rnd.randint(1, 99) + ulice = " ".join([ulic, str(cp)]) + mesto = rnd.choice(seznam_mest) + psc = "".join([str(rnd.choice([k for k in range(10)])) for _ in range(5)]) + + osoby.append(Osoba.objects.create( + jmeno=jmeno, prijmeni=prijmeni, + prezdivka=prezdivka, osloveni=osloveni, + email=email, telefon=telefon, + datum_narozeni=narozeni, + ulice=ulice, mesto=mesto, psc=psc, + datum_registrace=datetime.date( + rnd.randint(2019, 2029), rnd.randint(1, 12), rnd.randint(1, 28) + ) + )) + + # TODO pridat foto male a velke. Jak? + # Pavel tvrdí, že to necháme a přidáme až do adminu + + return osoby + + +def gen_skoly(): # TODO někdy to přepsat, aby jich bylo více + logger.info('Generuji školy...') + + skoly = [] + prvnizs = Skola.objects.create( + mesto='Praha', stat='CZ', psc='101 00', + ulice='Krátká 5', nazev='První ZŠ', je_zs=True, je_ss=False, + ) + skoly.append(prvnizs) + skoly.append(Skola.objects.create( + mesto='Praha', stat='CZ', psc='101 00', + ulice='Krátká 5', nazev='První SŠ', je_zs=False, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Praha', stat='CZ', psc='102 00', + ulice='Dlouhá 5', nazev='Druhá SŠ', je_zs=False, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Praha', stat='CZ', psc='103 00', + ulice='Široká 3', nazev='Třetí SŠ a ZŠ', je_zs=True, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Ostrava', stat='CZ', psc='700 00', + ulice='Hluboká 42', nazev='Hutní gympl', je_zs=False, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Humenné', stat='SK', psc='012 34', + ulice='Pltká 1', nazev='Sredná škuola', je_zs=False, je_ss=True, + )) + global zlinska + zlinska = Skola.objects.create( + mesto='Zlín', stat='CZ', psc='76001', + ulice='náměstí T.G. Masaryka 2734-9', + nazev='Gymnázium a Střední jazyková škola s právem SJZ', + kratky_nazev="GaSJŠspSJZ", je_zs=True, je_ss=True, + ) + skoly.append(zlinska) + return skoly + + +def gen_resitele(rnd, osoby, skoly): + logger.info('Generuji řešitele...') + + resitele = [] + x = 0 + resitel_perm = Permission.objects.filter(codename__exact='resitel').first() + resitel_group = Group.objects.filter(name__exact='resitel').first() + for os in osoby: + rand = rnd.randint(0, 8) + if not (rand % 8 == 0): + if not os.user: + if x: + user = User.objects.create_user( + username='r'+str(x), email=os.email, password='r', + ) + else: + user = User.objects.create_user( + username='r', email=os.email, password='r', + ) + x += 1 + os.user = user + os.save() + os.user.user_permissions.add(resitel_perm) + os.user.groups.add(resitel_group) + resitele.append(Resitel.objects.create( + osoba=os, skola=rnd.choice(skoly), + rok_maturity=os.datum_narozeni.year + rnd.randint(18, 21), + zasilat=rnd.choice(Resitel.ZASILAT_CHOICES)[0], + )) + return resitele + + +def gen_prijemci(rnd, osoby, kolik=10): + logger.info('Generuji příjemce (kolik={})...'.format(kolik)) + prijemci = [] + for i in rnd.sample(osoby, kolik): + prijemci.append(Prijemce.objects.create(osoba=i)) + + global zlinska + if zlinska is not None: + zlinska.kontaktni_osoba=rnd.choice(osoby) + zlinska.save() + + return prijemci + + +def gen_organizatori(rnd, osoby, last_rocnik): + logger.info('Generuji organizátory...') + organizatori = [] + + + seznam_konicku = ["vařím", "jezdím na kole", "řeším diferenciální rovnice", "koukám z okna", "tancuji", "programuji", "jezdím vlakem", "nedělám nic"] + seznam_oboru = ["matematiku", "matematiku", "matematiku", "fyziku", "literaturu", "informatiku", "informatiku", "běhání dokolečka"] + + x = 0 + org_perm = Permission.objects.filter(codename__exact='org').first() + org_group = Group.objects.filter(name__exact='org').first() + for os in osoby: + rand = rnd.randint(0, 8) + if rand % 8 == 0: + pusobnost = rnd.randint(1, last_rocnik) + od = datetime.datetime( + year=1993 + pusobnost, + month=rnd.randint(1, 12), + day=rnd.randint(1, 28), + tzinfo=datetime.timezone.utc, + ) + do = datetime.datetime( + year=od.year + rnd.randint(1, 6), + month=rnd.randint(1, 12), + day=rnd.randint(1, 28), + tzinfo=datetime.timezone.utc, + ) + # aktualni organizatori jeste nemaji vyplnene organizuje_do + + # popis orga + konicek1 = rnd.choice(seznam_konicku) + konicek2 = rnd.choice(seznam_konicku) + obor = rnd.choice(seznam_oboru) + popis_orga = "Ve volném čase " + konicek1 + " a také " + konicek2 + ". Studuji " + obor + " a moc mě to baví." + + if do.year > datetime.datetime.now().year: + do = None + if not os.user: + if x: + user = User.objects.create_user( + username='o'+str(x), email=os.email, password='o', + ) + else: + user = User.objects.create_user( + username='o', email=os.email, password='o', + ) + x += 1 + os.user = user + os.save() + os.user.user_permissions.add(org_perm) + os.user.groups.add(org_group) + os.user.is_staff = True + os.user.save() + organizatori.append(Organizator.objects.create( + osoba=os, + organizuje_od=od, organizuje_do=do, + strucny_popis_organizatora=popis_orga, + )) + return organizatori diff --git a/seminar/testutils.py b/tvorba/testutils.py similarity index 53% rename from seminar/testutils.py rename to tvorba/testutils.py index 18bbbe2e..18440679 100644 --- a/seminar/testutils.py +++ b/tvorba/testutils.py @@ -1,216 +1,22 @@ +# FIXME vypreparovat treenode + import datetime -from django.contrib.auth.models import Permission -from django.contrib.auth.models import Group -import random import lorem import django.contrib.auth -from django.db import transaction -import unidecode import logging -from korektury.testutils import create_test_pdf -from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Osoba, Organizator, Prijemce, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode +from seminar.models import Rocnik, Cislo, Deadline, Problem, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, UlohaZadaniNode import seminar.models as m -from django.contrib.flatpages.models import FlatPage -from django.contrib.sites.models import Site from treenode.treelib import all_children, insert_last_child, all_children_of_type, create_node_after -from soustredeni.testutils import gen_soustredeni, gen_konfery - - -User = django.contrib.auth.get_user_model() -zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu +from odevzdavatko.testutils import gen_reseni_ulohy logger = logging.getLogger(__name__) -# testuje unikátnost vygenerovaného jména -def __unikatni_jmeno(osoby, jmeno, prijmeni): - for os in osoby: - if os.jmeno == jmeno and os.prijmeni == prijmeni: - return 0 - else: return 1 +User = django.contrib.auth.get_user_model() -def gen_osoby(rnd, size): - logger.info('Generuji osoby (size={})...'.format(size)) - - jmena_m = ['Aleš', 'Tomáš', 'Martin', 'Jakub', 'Petr', 'Lukáš', 'Cyril', 'Pavel Karel'] - jmena_f = ['Eva', 'Karolína', 'Zuzana', 'Sylvie', 'Iva', 'Jana', 'Marie', - 'Marta Iva', 'Shu Shan'] - prijmeni_m = ['Novotný', 'Svoboda', 'Pecha', 'Kořen', 'Holan', 'Uhlíř', 'Chytráček', - 'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"] - prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná', - 'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui', "Nováčková Tydlitátová"] - prezdivky = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "", - "", "", 'Riki', 'Sapa', "", '', '---', 'Koko'] - domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz', - 'british.co.uk', 'splachni.to', 'haha.org'] - seznam_ulic = ['Krátká', 'Vlhká', 'Jungmanova', '17. listopadu', '4. října', 'Roztocká', - 'Forstova', 'Generála Františka Janouška', 'Náměstí Války', - 'Svratecké náměstí', 'Zelená lhota', 'Z Plynu', 'K Jezeru', 'U Kocourkova', - 'Uštěpačná', 'Ostrorepská', 'Zubří'] - seznam_mest = ['Praha', 'Brno', 'Ostrava', 'Horní Jelení', 'Dolní Zábrdovice', 'Prdelkov', - 'Stará myslivna', 'Kocourkov', 'Šalingrad', 'Medvědí hora', 'Basilej', - 'Unterschiedlich', 'Old York', 'Lancastershire', 'Vóloďháza'] - - osoby = [] - # 30 je náhodná konstanta, size je použité na víc místech a - # říká, jak velká asi chceme testovací data - for i in range(30 * size): - pohlavi_idx = rnd.randint(0,2) # 2 = nebinární - osloveni = [Osoba.OSLOVENI_MUZSKE, Osoba.OSLOVENI_ZENSKE, Osoba.OSLOVENI_ZADNE][pohlavi_idx] - jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) - prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) - if pohlavi_idx == 2: logger.debug(f'Testdata: nebinární osoba: {jmeno} {prijmeni}.') - pokusy = 0 - max_pokusy = 120*size - while (not __unikatni_jmeno and pokusy < max_pokusy): - # pokud jméno a příjmení není unikátní, zkoušíme generovat nová - # do daného limitu (abychom se nezacyklili do nekonečna při málo jménech a příjmeních - # ze kterých se generuje) - jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) - prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) - pokusy = pokusy + 1 - if pokusy >= max_pokusy: - print("Chyba, na danou velikost testovacích dat příliš málo možných" - " jmen a příjmení") - exit() - prezdivka = rnd.choice(prezdivky) - email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)]) - telefon = "".join([str(rnd.choice([k for k in range(10)])) for i in range(9)]) - narozeni = datetime.date(rnd.randint(1980, datetime.datetime.now().year), - rnd.randint(1, 12), rnd.randint(1, 28)) - ulic = rnd.choice(seznam_ulic) - cp = rnd.randint(1, 99) - ulice = " ".join([ulic, str(cp)]) - mesto = rnd.choice(seznam_mest) - psc = "".join([str(rnd.choice([k for k in range(10)])) for i in range(5)]) - - osoby.append(Osoba.objects.create(jmeno = jmeno, prijmeni = prijmeni, - prezdivka = prezdivka, osloveni = osloveni, email = email, - telefon = telefon, datum_narozeni = narozeni, ulice = ulice, - mesto = mesto, psc = psc, - datum_registrace = datetime.date(rnd.randint(2019, 2029), - rnd.randint(1, 12), rnd.randint(1, 28)))) - #TODO pridat foto male a velke. Jak? - # Pavel tvrdí, že to necháme a přidáme až do adminu - - return osoby - - - -def gen_skoly(): #TODO někdy to přepsat, aby jich bylo více - logger.info('Generuji školy...') - - skoly = [] - prvnizs = Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', - ulice='Krátká 5', nazev='První ZŠ', je_zs=True, je_ss=False) - skoly.append(prvnizs) - skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', - ulice='Krátká 5', nazev='První SŠ', je_zs=False, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='102 00', - ulice='Dlouhá 5', nazev='Druhá SŠ', je_zs=False, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='103 00', - ulice='Široká 3', nazev='Třetí SŠ a ZŠ', je_zs=True, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Ostrava', stat='CZ', psc='700 00', - ulice='Hluboká 42', nazev='Hutní gympl', je_zs=False, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Humenné', stat='SK', psc='012 34', - ulice='Pltká 1', nazev='Sredná škuola', je_zs=False, je_ss=True)) - global zlinska - zlinska = Skola.objects.create(mesto = 'Zlín', stat='CZ', psc='76001', - ulice='náměstí T.G. Masaryka 2734-9', - nazev='Gymnázium a Střední jazyková škola s právem SJZ', - kratky_nazev="GaSJŠspSJZ", je_zs=True, je_ss=True) - skoly.append(zlinska) - return skoly - -def gen_resitele(rnd, osoby, skoly): - logger.info('Generuji řešitele...') - - resitele = [] - x = 0 - resitel_perm = Permission.objects.filter(codename__exact='resitel').first() - resitel_group = Group.objects.filter(name__exact='resitel').first() - for os in osoby: - rand = rnd.randint(0, 8) - if not (rand % 8 == 0): - if not os.user: - if x: - user = User.objects.create_user(username='r'+str(x), email=os.email, password='r') - else: - user = User.objects.create_user(username='r', email=os.email, password='r') - x += 1 - os.user = user - os.save() - os.user.user_permissions.add(resitel_perm) - os.user.groups.add(resitel_group) - resitele.append(Resitel.objects.create(osoba=os, skola=rnd.choice(skoly), - rok_maturity=os.datum_narozeni.year + rnd.randint(18, 21), - zasilat=rnd.choice(Resitel.ZASILAT_CHOICES)[0])) - return resitele - -def gen_prijemci(rnd, osoby, kolik=10): - logger.info('Generuji příjemce (kolik={})...'.format(kolik)) - prijemci = [] - for i in rnd.sample(osoby, kolik): - prijemci.append(Prijemce.objects.create(osoba=i)) - return prijemci - -def gen_organizatori(rnd, osoby, last_rocnik): - logger.info('Generuji organizátory...') - organizatori = [] - - - seznam_konicku = ["vařím", "jezdím na kole", "řeším diferenciální rovnice", "koukám z okna", - "tancuji", "programuji", "jezdím vlakem", "nedělám nic"] - seznam_oboru = ["matematiku", "matematiku", "matematiku", "fyziku", "literaturu", - "informatiku", "informatiku", "běhání dokolečka"] - - x = 0 - org_perm = Permission.objects.filter(codename__exact='org').first() - org_group = Group.objects.filter(name__exact='org').first() - for os in osoby: - rand = rnd.randint(0, 8) - if (rand % 8 == 0): - pusobnost = rnd.randint(1, last_rocnik) - od = datetime.datetime( - year=1993 + pusobnost, - month=rnd.randint(1, 12), - day=rnd.randint(1, 28), - tzinfo=datetime.timezone.utc, - ) - do = datetime.datetime( - year=od.year + rnd.randint(1, 6), - month=rnd.randint(1, 12), - day=rnd.randint(1, 28), - tzinfo=datetime.timezone.utc, - ) - #aktualni organizatori jeste nemaji vyplnene organizuje_do - - #popis orga - konicek1 = rnd.choice(seznam_konicku) - konicek2 = rnd.choice(seznam_konicku) - obor = rnd.choice(seznam_oboru) - popis_orga = "Ve volném čase " + konicek1 + " a také " + konicek2 + ". Studuji " + obor + " a moc mě to baví." - - if do.year > datetime.datetime.now().year: - do = None - if not os.user: - if x: - user = User.objects.create_user(username='o'+str(x), email=os.email, password='o') - else: - user = User.objects.create_user(username='o', email=os.email, password='o') - x += 1 - os.user = user - os.save() - os.user.user_permissions.add(org_perm) - os.user.groups.add(org_group) - os.user.is_staff = True - os.user.save() - organizatori.append(Organizator.objects.create(osoba=os, - organizuje_od=od, organizuje_do=do, strucny_popis_organizatora = popis_orga)) - return organizatori def gen_zadani_ulohy(rnd, cisla, organizatori, pocet_oboru, poradi_cisla, poradi_problemu): @@ -282,42 +88,6 @@ def gen_vzoroveho_reseni_ulohy(rnd, organizatori, uloha, pocet_opravovatelu): uloha.save() return uloha_vzorak -def gen_reseni_ulohy(rnd, cisla, uloha, pocet_resitelu, poradi_cisla, resitele_cisla, resitele): - - pocet_reseni = rnd.randint(pocet_resitelu//4, pocet_resitelu * 4) - # generujeme náhodný počet řešení vzhledem k počtu řešitelů čísla - for _ in range(pocet_reseni): - #print("Generuji {}-té řešení".format(reseni)) - if rnd.randint(1, 10) == 1: - # cca desetina řešení od více řešitelů - res_vyber = rnd.sample(resitele_cisla, - rnd.randint(2, 5)) - else: - res_vyber = rnd.sample(resitele_cisla, 1) - if resitele[0] in res_vyber: # speciální řešitel, který nemá žádné body - res_vyber.remove(resitele[0]) - - # Vytvoření řešení. - if uloha.cislo_zadani.zlomovy_deadline_pro_papirove_cislo() is not None: - # combine, abychom dostali plný čas a ne jen datum - cas_doruceni = uloha.cislo_zadani.deadline_v_cisle.first().deadline - datetime.timedelta(days=random.randint(0, 40)) - datetime.timedelta(minutes=random.randint(0, 60*24)) - # astimezone, protože jinak vyhazuje warning o nenastavené TZ - res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0], cas_doruceni=cas_doruceni.astimezone(datetime.timezone.utc)) - else: - res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0]) - # Problém a řešitele přiřadíme později, ManyToManyField - # se nedá vyplnit v create(). - res.resitele.set(res_vyber) - res.save() - - # Vytvoření hodnocení. - hod = Hodnoceni.objects.create( - body=rnd.randint(0, uloha.max_body), - cislo_body=cisla[poradi_cisla - 1], - reseni=res, - problem=uloha - ) - return def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size): logger.info('Generuji úlohy do čísla (size={})...'.format(size)) @@ -658,22 +428,6 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, u.save() return -def gen_novinky(rnd, organizatori): - logger.info('Generuji novinky...') - - - jake = ["zábavné", "veselé", "dobrodružné", "skvělé"] - co = ["soustředění", "Fyziklání", "víkendové setkání"] - kde = ["na Šumavě", "v Praze", "u Plzně", "na Marsu"] - kdy = ["Zítra bude", "10. 10. 2020 bude", "V prosinci bude", "V létě bude"] - - for i in range(5): - text_novinky = " ".join([rnd.choice(kdy), rnd.choice(kde), rnd.choice(jake), - rnd.choice(co)]) - novinka = Novinky.objects.create(id=i,autor=rnd.choice(organizatori), - text=(text_novinky+", těšíme se na vás!"),zverejneno=rnd.choice([True,False])) - novinka.save() - return def otec_syn(otec, syn): bratr = otec.first_child @@ -750,117 +504,3 @@ def gen_clanek(rnd, organizatori, resitele): text.save() create_child(castnode, m.TextNode, text=text) logger.info(f"Článek vygenerován (reseni={reseni.id}, treenode={reseninode.id})") - - - -@transaction.atomic -def create_test_data(size = 6, rnd = None): - logger.info('Vyrábím testovací data (size={})...'.format(size)) - - assert size >= 1 - # pevna pseudo-nahodnost - rnd = rnd or random.Random(x=42) - - # static URL stranky - # FIXME: nakopirovat sem vsechny z produkcni databaze - s = Site.objects.filter(name="example.com") - f = FlatPage.objects.create(url="/", title="Seminář M&M", - content = "<p>Vítejte na stránce semináře MaM!</p>") - print(s) - f.sites.add(s[0]) - f.save() - - # users - admin = User.objects.create_superuser(username='admin', email='', password='admin') - os_admin = Osoba.objects.create( - user=admin, jmeno='admin', prijmeni='admin', - prezdivka='admin', osloveni='', email='admin@admin.admin', - telefon='123 456 789', datum_narozeni=datetime.date(2000, 1, 1), - ulice='admin', mesto='admin', psc='100 00', - datum_registrace=datetime.date(2020, 9, 6) - ) - or_admin = Organizator.objects.create( - osoba=os_admin, organizuje_od=None, organizuje_do=None, - strucny_popis_organizatora="Organizátor k uživateli Admin" - ) - - usernames = ['anet', 'bara', 'cyril', 'david', 'eva', 'filip'] - users = [] - for usr in usernames[:size]: - u = User.objects.create_user(username=usr, password=usr) - u.first_name = usr.capitalize() - u.save() - users.append(u) - print(users) - - # skoly - skoly = gen_skoly() - - # osoby - osoby = gen_osoby(rnd, size) - - # resitele a organizatori - last_rocnik = 25 - organizatori = gen_organizatori(rnd, osoby, last_rocnik) - resitele = gen_resitele(rnd, osoby, skoly) - - #generování novinek - novinky = gen_novinky(rnd, organizatori) - - # prijemci - prijemci = gen_prijemci(rnd, osoby) - - global zlinska - zlinska.kontaktni_osoba=rnd.choice(osoby) - zlinska.save() - - # rocniky - rocniky = gen_rocniky(last_rocnik, size) - - # cisla - # rocnik_cisla je pole polí čísel (typ Cislo), vnitřní pole odpovídají jednotlivým ročníkům. - rocnik_cisla = gen_cisla(rnd, rocniky) - - # generování obyčejných úloh do čísel - gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) - - # generování témat, zatím v prvních třech číslech po jednom - # FIXME: více témat - # rocnik_temata je pole polí trojic (první číslo :int, poslední číslo :int, téma:Tema), přičemž každé vnitřní pole odpovídá ročníku a FIXME: je to takhle fuj a když to někdo vidí poprvé, tak je z toho smutný, protože vůbec neví, co se děje a co má čekat. - rocnik_temata = gen_temata(rnd, rocniky, rocnik_cisla, organizatori) - - rocnik = Rocnik.objects.filter(rocnik = 23).first() - dlouhe_tema = gen_dlouhe_tema(rnd, organizatori, rocnik, "Strašně dlouhé téma", - "MFI", 8) - - # generování úloh k tématům ve všech číslech - gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) - - #generování soustředění - soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) - - #generování konfer - konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) - - # vytvoreni pdf ke korekturam - create_test_pdf(rnd, organizatori) - - # TODO: nastavi správně, kolik se čeho generuje, aby rozsahy přibližně odpovídaly - # FIXME: misto typu ruzne typy objektu a vnoreni do sebe (Tom nechápe, co je tímto fixme míněno) - # TODO: vytvorit temata s ruznymi vlakny - # TODO: nagenerovat starsim rocnikum pohadku - # TODO: nagenerovat články - # TODO: vecpat obrázky všude, kde to jde - # TODO: mezičíslo node - # TODO: přidat ke konferám řešení a dát je do čísel - - # Dohackované vytvoření jednoho článku - gen_clanek(rnd, organizatori, resitele) - - # TODO: přidat články včetně zařazení do struktury treenodů, - # a následně otestovat konsistency check databáze z utils.py - # pomocí stránky /stav - - # obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně - nastaveni = Nastaveni.objects.create( - aktualni_cislo = Cislo.objects.all()[1]) diff --git a/various/management/commands/testdata.py b/various/management/commands/testdata.py index d9ce8cfb..8f591fa5 100644 --- a/various/management/commands/testdata.py +++ b/various/management/commands/testdata.py @@ -1,13 +1,11 @@ -import datetime import os -import random from django.core.management.base import BaseCommand from django.core.management import call_command from django.conf import settings from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni -from seminar.testutils import create_test_data +from various.testutils import create_test_data import django.contrib.auth User = django.contrib.auth.get_user_model() diff --git a/various/testutils.py b/various/testutils.py new file mode 100644 index 00000000..52411ef6 --- /dev/null +++ b/various/testutils.py @@ -0,0 +1,135 @@ +import datetime +import random +import logging + +import django.contrib.auth +from django.contrib.flatpages.models import FlatPage +from django.contrib.sites.models import Site +from django.db import transaction + +from seminar.models import Rocnik, Cislo, Nastaveni, Osoba, Organizator + +from korektury.testutils import create_test_pdf +from novinky.testutils import gen_novinky +from personalni.testutils import gen_organizatori, gen_osoby, gen_prijemci, gen_resitele, gen_skoly +from soustredeni.testutils import gen_soustredeni, gen_konfery +from tvorba.testutils import gen_cisla, gen_clanek, gen_dlouhe_tema, gen_rocniky, gen_temata, gen_ulohy_do_cisla, gen_ulohy_k_tematum + +logger = logging.getLogger(__name__) + +User = django.contrib.auth.get_user_model() + + +@transaction.atomic +def create_test_data(size=6, rnd=None): + logger.info('Vyrábím testovací data (size={})...'.format(size)) + + assert size >= 1 + # pevna pseudo-nahodnost + rnd = rnd or random.Random(x=42) + + # static URL stranky + # FIXME: nakopirovat sem vsechny z produkcni databaze + s = Site.objects.filter(name="example.com") + f = FlatPage.objects.create( + url="/", title="Seminář M&M", + content="<p>Vítejte na stránce semináře MaM!</p>", + ) + print(s) + f.sites.add(s[0]) + f.save() + + # users + admin = User.objects.create_superuser( + username='admin', email='', password='admin', + ) + os_admin = Osoba.objects.create( + user=admin, jmeno='admin', prijmeni='admin', + prezdivka='admin', osloveni='', email='admin@admin.admin', + telefon='123 456 789', datum_narozeni=datetime.date(2000, 1, 1), + ulice='admin', mesto='admin', psc='100 00', + datum_registrace=datetime.date(2020, 9, 6), + ) + or_admin = Organizator.objects.create( + osoba=os_admin, organizuje_od=None, organizuje_do=None, + strucny_popis_organizatora="Organizátor k uživateli Admin", + ) + + usernames = ['anet', 'bara', 'cyril', 'david', 'eva', 'filip'] + users = [] + for usr in usernames[:size]: + u = User.objects.create_user(username=usr, password=usr) + u.first_name = usr.capitalize() + u.save() + users.append(u) + print(users) + + # skoly + skoly = gen_skoly() + + # osoby + osoby = gen_osoby(rnd, size) + + # resitele a organizatori + last_rocnik = 25 + organizatori = gen_organizatori(rnd, osoby, last_rocnik) + resitele = gen_resitele(rnd, osoby, skoly) + + # generování novinek + novinky = gen_novinky(rnd, organizatori) + + # prijemci + prijemci = gen_prijemci(rnd, osoby) + + # rocniky + rocniky = gen_rocniky(last_rocnik, size) + + # cisla + # rocnik_cisla je pole polí čísel (typ Cislo), vnitřní pole odpovídají jednotlivým ročníkům. + rocnik_cisla = gen_cisla(rnd, rocniky) + + # generování obyčejných úloh do čísel + gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) + + # generování témat, zatím v prvních třech číslech po jednom + # FIXME: více témat + # rocnik_temata je pole polí trojic (první číslo :int, poslední číslo :int, téma:Tema), přičemž každé vnitřní pole odpovídá ročníku a FIXME: je to takhle fuj a když to někdo vidí poprvé, tak je z toho smutný, protože vůbec neví, co se děje a co má čekat. + rocnik_temata = gen_temata(rnd, rocniky, rocnik_cisla, organizatori) + + rocnik = Rocnik.objects.filter(rocnik=23).first() + dlouhe_tema = gen_dlouhe_tema( + rnd, organizatori, rocnik, "Strašně dlouhé téma", + "MFI", 8, + ) + + # generování úloh k tématům ve všech číslech + gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) + + # generování soustředění + soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) + + # generování konfer + konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) + + # vytvoreni pdf ke korekturam + create_test_pdf(rnd, organizatori) + + # TODO: nastavi správně, kolik se čeho generuje, aby rozsahy přibližně odpovídaly + # FIXME: misto typu ruzne typy objektu a vnoreni do sebe (Tom nechápe, co je tímto fixme míněno) + # TODO: vytvorit temata s ruznymi vlakny + # TODO: nagenerovat starsim rocnikum pohadku + # TODO: nagenerovat články + # TODO: vecpat obrázky všude, kde to jde + # TODO: mezičíslo node + # TODO: přidat ke konferám řešení a dát je do čísel + + # Dohackované vytvoření jednoho článku + gen_clanek(rnd, organizatori, resitele) + + # TODO: přidat články včetně zařazení do struktury treenodů, + # a následně otestovat konsistency check databáze z utils.py + # pomocí stránky /stav + + # obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně + nastaveni = Nastaveni.objects.create( + aktualni_cislo=Cislo.objects.all()[1]) From e250f1d5dc0e3b771acfb12d6571dcdd35e90c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 2 Oct 2024 21:16:53 +0200 Subject: [PATCH 206/225] =?UTF-8?q?Admin=5Furl=20soust=C5=99ed=C4=9Bn?= =?UTF-8?q?=C3=AD=20(aby=20mohlo=20b=C3=BDt=20v=20login-baru)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/soustredeni/models.py b/soustredeni/models.py index 518b3291..f71e6736 100644 --- a/soustredeni/models.py +++ b/soustredeni/models.py @@ -77,6 +77,10 @@ class Soustredeni(SeminarModelBase): #return reverse('seminar_soustredeni', kwargs={'pk': self.id}) return reverse('seminar_seznam_soustredeni') + def admin_url(self): + model_name = self.__class__.__name__.lower() + return reverse('admin:soustredeni_{}_change'.format(model_name), args=(self.id, )) + @reversion.register(ignore_duplicates=True) class Soustredeni_Ucastnici(SeminarModelBase): From 733484b503a3c0f0a704586988f4e7e64d219f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 2 Oct 2024 21:20:44 +0200 Subject: [PATCH 207/225] =?UTF-8?q?Export=20do=20abstrakt=C5=AF=20(soust?= =?UTF-8?q?=C5=99ed=C4=9Bn=C3=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sitetree.json | 24 +++++++++++++++++++ .../soustredeni/export_do_abstraktu.html | 17 +++++++++++++ .../soustredeni/seznam_soustredeni.html | 1 + soustredeni/urls.py | 5 ++++ soustredeni/views.py | 4 ++++ 5 files changed, 51 insertions(+) create mode 100644 soustredeni/templates/soustredeni/export_do_abstraktu.html diff --git a/data/sitetree.json b/data/sitetree.json index 29403e5a..933c628a 100644 --- a/data/sitetree.json +++ b/data/sitetree.json @@ -1079,5 +1079,29 @@ }, "model": "sitetree.treeitem", "pk": 53 + }, + { + "fields": { + "access_guest": false, + "access_loggedin": false, + "access_perm_type": 1, + "access_permissions": [], + "access_restricted": true, + "alias": null, + "description": "", + "hidden": false, + "hint": "", + "inbreadcrumbs": true, + "inmenu": true, + "insitetree": true, + "parent": 20, + "sort_order": 54, + "title": "Export do abstraktů sousu {{ soustredeni.id }}", + "tree": 1, + "url": "seminar_soustredeni_abstrakty soustredeni.id", + "urlaspattern": true + }, + "model": "sitetree.treeitem", + "pk": 54 } ] diff --git a/soustredeni/templates/soustredeni/export_do_abstraktu.html b/soustredeni/templates/soustredeni/export_do_abstraktu.html new file mode 100644 index 00000000..16de19a0 --- /dev/null +++ b/soustredeni/templates/soustredeni/export_do_abstraktu.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% load tex %} + +{% block nadpis1a %} + Soustředění – export do abstraktů +{% endblock %} + +{% block content %} + <h1>Export do abstraktů Soustředění {{ soustredeni }}</h1> + +{# Zde zcela záměrně chybí nějaké whitespacy, např. odřádkování a odsazení #} +<pre><code>{% for ucastnik in soustredeni.ucastnici.all %}\ucastnik{{ ucastnik|sloz }}{{ ucastnik.osoba.email|sloz }}{{ ucastnik.skola|sloz }} +{% endfor %} +{% for vedouci in soustredeni.organizatori.all %}\vedouci{{ vedouci|sloz }}{{ vedouci.osoba.email|sloz }}{TODO} +{% endfor %}</code></pre> + +{% endblock %} diff --git a/soustredeni/templates/soustredeni/seznam_soustredeni.html b/soustredeni/templates/soustredeni/seznam_soustredeni.html index e5f68bfc..ac33852a 100644 --- a/soustredeni/templates/soustredeni/seznam_soustredeni.html +++ b/soustredeni/templates/soustredeni/seznam_soustredeni.html @@ -40,6 +40,7 @@ <div class="mam-org-only"> <a href="../{{soustredeni.pk}}/fotogalerie/0/new/">Vytvořit novou fotogalerii</a><br> <a href="../{{soustredeni.pk}}/obalky.pdf">Vygenerovat obálky pro účastníky</a><br> + <a href={% url 'seminar_soustredeni_abstrakty' soustredeni.pk %}>Vygenerovat účastníky a vedoucí do abstraktů</a><br> Seznam účastníků - <a href="../{{soustredeni.pk}}/seznam_ucastniku">HTML tabulka pro tisk</a>, <a href="../{{soustredeni.pk}}/export_ucastniku">CSV</a>, diff --git a/soustredeni/urls.py b/soustredeni/urls.py index 2e5a6136..6d8de5e1 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -33,6 +33,11 @@ urlpatterns = [ org_required(views.soustredeniObalkyView), name='seminar_soustredeni_obalky' ), + path( + 'soustredeni/<int:pk>/abstrakty', + org_required(views.SoustredeniAbstraktyView.as_view()), + name='seminar_soustredeni_abstrakty' + ), path( 'soustredeni/<int:soustredeni>/fotogalerie/', include('galerie.urls') diff --git a/soustredeni/views.py b/soustredeni/views.py index f150b6b8..c7e17d24 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -99,3 +99,7 @@ def soustredeniStvrzenkyView(request, soustredeni): with open(tempdir / "stvrzenky.pdf", "rb") as pdffile: response = HttpResponse(pdffile.read(), content_type='application/pdf') return response + +class SoustredeniAbstraktyView(generic.DetailView): + model = Soustredeni + template_name = 'soustredeni/export_do_abstraktu.html' From 6ec2a10bf587b3be1f2510c543cd760aeebb8e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Thu, 10 Oct 2024 13:23:51 +0200 Subject: [PATCH 208/225] setuptools v requirements.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6855e0ae..8f172e2a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ -c constraints.txt -# basic libs +setuptools # django-polymorphic má rozbité dependencies +# basic libs psycopg2 # PostgreSQL adaptér ipython # Interaktivní shell Unidecode # Přepisuje unicode do ASCII (např. soubory nebo e-maily) From e87bbe60480a205cba4c616280b6ba6073aa9907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 13 Oct 2024 23:31:05 +0200 Subject: [PATCH 209/225] =?UTF-8?q?Sloupe=C4=8Dek=20ostatn=C3=AD=20ve=20v?= =?UTF-8?q?=C3=BDsledkovce=20(nov=C3=A1=20makra)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo_vysledkovka.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex index bebd5632..b8e9f248 100644 --- a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex +++ b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex @@ -1,6 +1,7 @@ \setlength{\tabcolsep}{3pt} +{% if vysledkovka.je_nejake_ostatni %}\vysledkovkaostatnitrue{% endif %} \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline -& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{Ostatní}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline +& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O.}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline \endhead \hline \endfoot From 9f421e9d77ed5ef7b879356a896984e10e9a5867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 13 Oct 2024 23:38:17 +0200 Subject: [PATCH 210/225] =?UTF-8?q?Sloupe=C4=8Dek=20ostatn=C3=AD=20ve=20v?= =?UTF-8?q?=C3=BDsledkovce=20(nov=C3=A1=20makra)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo_vysledkovka.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex index b8e9f248..4c637524 100644 --- a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex +++ b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex @@ -1,5 +1,5 @@ \setlength{\tabcolsep}{3pt} -{% if vysledkovka.je_nejake_ostatni %}\vysledkovkaostatnitrue{% endif %} +{% if vysledkovka.je_nejake_ostatni %}\global\vysledkovkaostatnitrue{% else %}\global\vysledkovkaostatnifalse{% endif %} \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline & & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O.}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline \endhead From 133c487637f34cb231bce5afdad20f58947d54e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Sun, 13 Oct 2024 23:39:47 +0200 Subject: [PATCH 211/225] =?UTF-8?q?Sloupe=C4=8Dek=20ostatn=C3=AD=20ve=20v?= =?UTF-8?q?=C3=BDsledkovce=20(nov=C3=A1=20makra)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo_vysledkovka.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex index 4c637524..de271652 100644 --- a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex +++ b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex @@ -1,7 +1,7 @@ \setlength{\tabcolsep}{3pt} {% if vysledkovka.je_nejake_ostatni %}\global\vysledkovkaostatnitrue{% else %}\global\vysledkovkaostatnifalse{% endif %} \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline -& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O.}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline +& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline \endhead \hline \endfoot From 592ae29d35f3446d91e625df6db90197e31a6f70 Mon Sep 17 00:00:00 2001 From: ticvac <vaclav.tichy180@gmail.com> Date: Tue, 22 Oct 2024 19:05:41 +0200 Subject: [PATCH 212/225] =?UTF-8?q?ghoul=20font=20na=20posledn=C3=ADch=207?= =?UTF-8?q?=20dn=C3=AD=20=C5=99=C3=ADjna=202024?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 13 ++++++++++--- mamweb/static/fonts/ghoul/ghoul.ttf | Bin 0 -> 14968 bytes mamweb/static/fonts/ghoul/ghoulheadline.ttf | Bin 0 -> 24980 bytes mamweb/templates/base.html | 12 ++++++++++++ various/context_processors.py | 13 +++++++++++++ 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 mamweb/static/fonts/ghoul/ghoul.ttf create mode 100644 mamweb/static/fonts/ghoul/ghoulheadline.ttf diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 0d699d5c..c931aee8 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -2,9 +2,16 @@ @import url("rozliseni.css"); @font-face { -font-family: 'OpenSans'; -src: url("../fonts/OpenSans/OpenSans-Regular.ttf"); -font-weight: normal; + font-family: 'OpenSans'; + src: url("../fonts/OpenSans/OpenSans-Regular.ttf"); + font-weight: normal; +} + +@font-face { + font-family: 'GhoulFace'; + src: url("../fonts/ghoul/ghoulheadline.ttf"), + url("../fonts/ghoul/ghoul.woff"); + font-weight: normal; } p { diff --git a/mamweb/static/fonts/ghoul/ghoul.ttf b/mamweb/static/fonts/ghoul/ghoul.ttf new file mode 100644 index 0000000000000000000000000000000000000000..64bab4789ae256a70f2af1ad00fc1edab5efbf27 GIT binary patch literal 14968 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 Y@QR^}vZk22sUkhC>N;K+&?x->0hVL~RsaA1 literal 0 HcmV?d00001 diff --git a/mamweb/static/fonts/ghoul/ghoulheadline.ttf b/mamweb/static/fonts/ghoul/ghoulheadline.ttf new file mode 100644 index 0000000000000000000000000000000000000000..90d4f7c126d0c67a754e622812a3b83f5929fade GIT binary patch literal 24980 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 F{%@Ya1ULWy literal 0 HcmV?d00001 diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index fafce9fa..c3fe697c 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -35,6 +35,18 @@ {# script specifický pro stránku #} {% block script %}{% endblock %} + <!-- Halloween 2024 --> + {% if halloween == 2024 %} + <script> + function printHalloween() { + console.log("Halloween 2024"); + body = document.getElementsByTagName('body')[0]; + body.style.fontFamily = 'GhoulFace'; + } + window.onload = printHalloween; + </script> + {% endif %} + </head> <body class='{{ LOCAL_TEST_PROD }}web{% if user.is_staff %} org-logged-in{% endif %}'> diff --git a/various/context_processors.py b/various/context_processors.py index a1e4478a..331780b1 100644 --- a/various/context_processors.py +++ b/various/context_processors.py @@ -15,6 +15,19 @@ def april(req): return {'april': today.year} return {} +def halloween(req): + if 'X-Halloween' in req.headers: + try: + year = int(req.headers['X-Halloween']) + return {'halloween': year} + except: + pass # Fall-back to regular behaviour + + import datetime + today = datetime.date.today() + if today.month == 10 and today.day >= 25: + return {'halloween': today.year} + return {} def rozliseni(request): ltp = settings.LOCAL_TEST_PROD From b491dcff7e596c1708992a6c0a3b83b923855c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 19:19:31 +0200 Subject: [PATCH 213/225] =?UTF-8?q?Koment=C3=A1=C5=99=20k=20kontejneru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 2 +- mamweb/templates/base.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 828b1d7d..abd911c1 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -8,7 +8,7 @@ } /**** KONTEJNER ****/ -div.kontejner { +div.kontejner {/* Ne container, aby se to netlouklo s bootstrapem. */ width: 970px; margin: auto; min-height: 100vh; diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 69b533aa..7f14b378 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -55,8 +55,8 @@ </div> {% endif %} - <div class="kontejner"> - <div class="kontent-wrapper"> + <div class="kontejner">{# ne container, aby se netlouklo s bootstrapem #} + <div class="kontent-wrapper">{# ne content, aby se netlouklo s bootstrapem #} <a href='/'> <div id="title" >M&M – korespondenční seminář a časopis MFF UK</div> From ffcc2e04a3c49202a9d98ed2d4a7d16a1252ee8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 19:28:12 +0200 Subject: [PATCH 214/225] TS -> TITULNI_STRANA a AZAD -> AKTUALNI_ZADANI --- mamweb/static/css/layout.css | 18 +++++++++--------- .../seminar/titulnistrana/titulnistrana.html | 14 +++++++------- .../seminar/zadani/AktualniZadani.html | 10 +++++----- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index abd911c1..bab8ea39 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -461,7 +461,7 @@ body.suprodweb { &:before, &:after { background: red; } } h1 { text-align: center; } - .TS_zjistit_vic{ + .TITULNI_STRANA_zjistit_vic{ text-align: center; margin-bottom: 30px; @@ -474,12 +474,12 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_graf { + .TITULNI_STRANA_graf { @media(max-width: 800px) { padding-top: 40px; } - .TS_graf-svg { + .TITULNI_STRANA_graf-svg { display: flex; #svg-graf { @@ -496,7 +496,7 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_obsah { + .TITULNI_STRANA_obsah { width: 66%; @media(max-width: 800px){ @@ -504,7 +504,7 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_vitej_titulka, .TS_temata_titulka { + .TITULNI_STRANA_vitej_titulka, .TITULNI_STRANA_temata_titulka { width: 49%; padding: 10px; display: table-cell; @@ -515,7 +515,7 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_novinky { + .TITULNI_STRANA_novinky { width: 33%; padding: 10px; @@ -540,11 +540,11 @@ div.odpocet { .stranka_aktualni_zadani { text-align: center; - #AZAD_obrazek { + #AKTUALNI_ZADADNI_obrazek { margin-top: 15px; } - div.AZAD_termin { + div.AKTUALNI_ZADANI_termin { text-align: center; font-size: large; font-weight: bold; @@ -553,7 +553,7 @@ div.odpocet { font-size: small; } - .AZAD_datum { + .AKTUALNI_ZADANI_datum { color: var(--hlavni-oranzova); margin: 0; } diff --git a/seminar/templates/seminar/titulnistrana/titulnistrana.html b/seminar/templates/seminar/titulnistrana/titulnistrana.html index d8b1e583..e9e5c16d 100644 --- a/seminar/templates/seminar/titulnistrana/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana/titulnistrana.html @@ -36,9 +36,9 @@ function sousdeadline() { <div class=titulnistrana> -<div class="TS_obsah"> +<div class="TITULNI_STRANA_obsah"> -<div class="TS_vitej_titulka"> +<div class="TITULNI_STRANA_vitej_titulka"> <h1> {% block nadpis1a %} @@ -54,7 +54,7 @@ function sousdeadline() { </div> -<div class="TS_temata_titulka"> +<div class="TITULNI_STRANA_temata_titulka"> <h1> Vyřeš to! @@ -76,13 +76,13 @@ function sousdeadline() { </div> -<div class="TS_graf"> +<div class="TITULNI_STRANA_graf"> -<div class="TS_graf-svg"> +<div class="TITULNI_STRANA_graf-svg"> {% include 'seminar/titulnistrana/graph.svg' %} <!-- TODO: aby to nemuselo být v templates --> </div> - <span class="TS_zjistit_vic"> + <span class="TITULNI_STRANA_zjistit_vic"> <h2><a href="/o-nas/uvod/">Zjisti víc!</a></h2> <hr> </span> @@ -91,7 +91,7 @@ function sousdeadline() { </div> -<div class="TS_novinky"> +<div class="TITULNI_STRANA_novinky"> {# Novinky #} <h1>Co je nového?</h1> diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index 2ebbcaa4..c463129d 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -14,20 +14,20 @@ {% if user.je_org and not verejne %}<div class="mam-org-only">{% endif %} <hr> - <div class="AZAD_termin"> + <div class="AKTUALNI_ZADANI_termin"> Termíny pro odeslání řešení {{ac.poradi}}. série:<br> {% for deadline in ac.deadline_v_cisle.all %} {% if deadline.typ == deadline.TYP_SOUS or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} - <span class="AZAD_datum">{{deadline.deadline.date}}</span> pro účast na soustředění<br> + <span class="AKTUALNI_ZADANI_datum">{{deadline.deadline.date}}</span> pro účast na soustředění<br> {% endif %} {% if deadline.typ == deadline.TYP_PRVNI or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} - <span class="AZAD_datum">{{deadline.deadline.date}}</span> pro otištění v dalším čísle<br> + <span class="AKTUALNI_ZADANI_datum">{{deadline.deadline.date}}</span> pro otištění v dalším čísle<br> {% endif %} {% if deadline.typ == deadline.TYP_CISLA %} - <span class="AZAD_datum">{{deadline.deadline.date}}</span> definitivní deadline<br> + <span class="AKTUALNI_ZADANI_datum">{{deadline.deadline.date}}</span> definitivní deadline<br> {% endif %} {% endfor %} @@ -35,7 +35,7 @@ <hr> {% if ac.titulka_nahled and ac.pdf %} - <a href="{{ac.pdf.url}}"><img id="AZAD_obrazek" src="{{ac.titulka_nahled.url}}" alt="Titulní strana {{ac.poradi}}. čísla" title="Klikni pro stažení!"></a> + <a href="{{ac.pdf.url}}"><img id="AKTUALNI_ZADADNI_obrazek" src="{{ac.titulka_nahled.url}}" alt="Titulní strana {{ac.poradi}}. čísla" title="Klikni pro stažení!"></a> {% endif %} {% if ac.pdf %} From 8dca676edce92b907bece2d08fa9a9ed46bd71b8 Mon Sep 17 00:00:00 2001 From: ticvac <vaclav.tichy180@gmail.com> Date: Tue, 22 Oct 2024 19:29:28 +0200 Subject: [PATCH 215/225] script presunut dolu pod april --- mamweb/templates/base.html | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index c3fe697c..cc6a1fc4 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -35,18 +35,6 @@ {# script specifický pro stránku #} {% block script %}{% endblock %} - <!-- Halloween 2024 --> - {% if halloween == 2024 %} - <script> - function printHalloween() { - console.log("Halloween 2024"); - body = document.getElementsByTagName('body')[0]; - body.style.fontFamily = 'GhoulFace'; - } - window.onload = printHalloween; - </script> - {% endif %} - </head> <body class='{{ LOCAL_TEST_PROD }}web{% if user.is_staff %} org-logged-in{% endif %}'> @@ -217,6 +205,17 @@ walkText(document.body); </script> {% endif %} + + {% if halloween == 2024 %} + <script> + function printHalloween() { + console.log("Halloween 2024"); + body = document.getElementsByTagName('body')[0]; + body.style.fontFamily = 'GhoulFace'; + } + window.onload = printHalloween; + </script> + {% endif %} {% block js %}{% endblock %} </body> From fbd5087c022fa3468ab0a1c3c03fd7a969f99be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 19:29:29 +0200 Subject: [PATCH 216/225] =?UTF-8?q?Zm=C4=9Bna=20version,=20aby=20po=C4=8D?= =?UTF-8?q?=C3=ADta=C4=8De=20p=C5=99ena=C4=8Detly=20CSSka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/base.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 7f14b378..a09ac528 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -8,11 +8,11 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="{% static 'images/MATFYZ_MM_barevne.svg' %}" type="image/x-icon"> {% block custom_css %}{% endblock %} - <link href="{% static 'bootstrap/css/bootstrap.css' %}" rel="stylesheet"> - <link href="{% static 'css/constants.css' %}?version=1" rel="stylesheet"> - <link href="{% static 'css/base.css' %}?version=1" rel="stylesheet"> - <link href="{% static 'css/layout.css' %}?version=1" rel="stylesheet"> - <link href="{% static 'css/modules.css' %}?version=1" rel="stylesheet"> + <link href="{% static 'bootstrap/css/bootstrap.css?version=2' %}" rel="stylesheet"> + <link href="{% static 'css/constants.css' %}?version=2" rel="stylesheet"> + <link href="{% static 'css/base.css' %}?version=2" rel="stylesheet"> + <link href="{% static 'css/layout.css' %}?version=2" rel="stylesheet"> + <link href="{% static 'css/modules.css' %}?version=2" rel="stylesheet"> <script src="{% static 'js/jquery-1.11.1.js' %}"></script> <script src="{% static 'js/jquery-3.4.1.js' %}"></script> From 77d158a3a711b6d91ee3c36acc51fff2f7929863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 19:56:08 +0200 Subject: [PATCH 217/225] =?UTF-8?q?Zm=C4=9Bna=20version,=20aby=20po=C4=8D?= =?UTF-8?q?=C3=ADta=C4=8De=20p=C5=99ena=C4=8Detly=20CSSka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index a09ac528..1a4c22ab 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -8,7 +8,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" href="{% static 'images/MATFYZ_MM_barevne.svg' %}" type="image/x-icon"> {% block custom_css %}{% endblock %} - <link href="{% static 'bootstrap/css/bootstrap.css?version=2' %}" rel="stylesheet"> + <link href="{% static 'bootstrap/css/bootstrap.css' %}?version=2" rel="stylesheet"> <link href="{% static 'css/constants.css' %}?version=2" rel="stylesheet"> <link href="{% static 'css/base.css' %}?version=2" rel="stylesheet"> <link href="{% static 'css/layout.css' %}?version=2" rel="stylesheet"> From 227b83b70100272b4386d76ee97886cc92861ff3 Mon Sep 17 00:00:00 2001 From: ticvac <vaclav.tichy180@gmail.com> Date: Tue, 22 Oct 2024 20:10:27 +0200 Subject: [PATCH 218/225] halloween do settings --- mamweb/settings_common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index f737be1e..a9b38c9a 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -87,6 +87,7 @@ TEMPLATES = [ 'header_fotky.context_processors.vzhled', 'various.context_processors.rozliseni', 'various.context_processors.april', + 'various.context_processors.halloween', ) }, }, From 8ff66cb63115b750af25da0f50122a22e4fe4ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 20:15:58 +0200 Subject: [PATCH 219/225] WTF? --- various/templates/various/pracuje_se.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/templates/various/pracuje_se.html b/various/templates/various/pracuje_se.html index e80fea23..1a396534 100644 --- a/various/templates/various/pracuje_se.html +++ b/various/templates/various/pracuje_se.html @@ -10,7 +10,7 @@ <p> Na této stránce velmi intenzivně pracujeme. Za dočasnou nedostupnost se omlouváme. - Zkuste přejít na <a href="/static">titulní stránku</a> + Zkuste přejít na <a href="/">titulní stránku</a> nebo se podívat na <a href="{% url 'seminar_aktualni_zadani' %}">aktuální zadání</a>. </p> <img src="{% static '404.png' %}"> From e443ecf33d519bfd0fd7b6acf39d2c023c012ab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 21:23:11 +0200 Subject: [PATCH 220/225] views_all do __init__ --- tvorba/views/__init__.py | 584 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 582 insertions(+), 2 deletions(-) diff --git a/tvorba/views/__init__.py b/tvorba/views/__init__.py index 8db4424b..823ddd96 100644 --- a/tvorba/views/__init__.py +++ b/tvorba/views/__init__.py @@ -1,4 +1,584 @@ -from .views_all import * - # Dočsasné views from .docasne import * + +# Zbytek + +from django.shortcuts import get_object_or_404, render +from django.http import HttpResponse +from django.urls import reverse +from django.core.exceptions import ObjectDoesNotExist +from django.views import generic +from django.utils.translation import gettext as _ +from django.http import Http404 +from django.db.models import Q, Sum, Count +from django.views.generic.base import RedirectView +from django.core.exceptions import PermissionDenied + +import seminar.models as s +import seminar.models as m +from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ + Resitel, Novinky, Tema, Clanek, \ + Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci +#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva +from treenode import treelib +import treenode.templatetags as tnltt +import treenode.serializers as vr +from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ + VysledkovkaRocniku, VysledkovkaDoTeXu + +from datetime import date, datetime +from itertools import groupby +from collections import OrderedDict +import os +import os.path as op +from django.conf import settings +import unicodedata +import logging +import time + +import personalni.views + +from .. import utils + +# ze starého modelu +#def verejna_temata(rocnik): +# """ +# Vrací queryset zveřejněných témat v daném ročníku. +# """ +# return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') +# +#def temata_v_rocniku(rocnik): +# return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) + +logger = logging.getLogger(__name__) + +def get_problemy_k_tematu(tema): + return Problem.objects.filter(nadproblem = tema) + + +# FIXME: Pozor, níž je ještě jeden ProblemView! +#class ProblemView(generic.DetailView): +# model = s.Problem +# # Zkopírujeme template_name od TreeNodeView, protože jsme prakticky jen trošku upravený TreeNodeView +# template_name = TreeNodeView.template_name +# +# def get_context_data(self, **kwargs): +# context = super().get_context_data(**kwargs) +# user = self.request.user +# # Teď potřebujeme doplnit tnldata do kontextu. +# # Ošklivý type switch, hezčí by bylo udělat to polymorfni. FIXME. +# if False: +# # Hezčí formátování zbytku :-P +# pass +# elif isinstance(self.object, s.Clanek) or isinstance(self.object, s.Konfera): +# # Tyhle Problémy mají ŘešeníNode +# context['tnldata'] = TNLData.from_treenode(self.object.reseninode,user) +# elif isinstance(self.object, s.Uloha): +# # FIXME: Teď vždycky zobrazujeme i vzorák! Možná by bylo hezčí/lepší mít to stejně jako pro Téma: procházet jen dosažitelné z Ročníku / čísla / whatever +# tnl_zadani = TNLData.from_treenode(self.object.ulohazadaninode,user) +# tnl_vzorak = TNLData.from_treenode(self.object.ulohavzoraknode,user) +# context['tnldata'] = TNLData.from_tnldata_list([tnl_zadani, tnl_vzorak]) +# elif isinstance(self.object, s.Tema): +# rocniknode = self.object.rocnik.rocniknode +# context['tnldata'] = TNLData.filter_treenode(rocniknode, lambda x: isinstance(x, s.TemaVCisleNode)) +# else: +# raise ValueError("Obecný problém nejde zobrazit.") +# return context + + +#class AktualniZadaniView(generic.TemplateView): +# template_name = 'treenode/treenode.html' + +# TODO Co chceme vlastně zobrazovat na této stránce? Zatím je zde aktuální číslo, ale může tu být cokoli jiného... +#class AktualniZadaniView(TreeNodeView): +# def get_object(self): +# nastaveni = get_object_or_404(Nastaveni) +# return nastaveni.aktualni_cislo.cislonode +# +# def get_context_data(self,**kwargs): +# nastaveni = get_object_or_404(Nastaveni) +# context = super().get_context_data(**kwargs) +# verejne = nastaveni.aktualni_cislo.verejne() +# context['verejne'] = verejne +# return context + +def AktualniZadaniView(request): + nastaveni = get_object_or_404(Nastaveni) + verejne = nastaveni.aktualni_cislo.verejne() + return render(request, 'tvorba/zadani/AktualniZadani.html', + {'nastaveni': nastaveni, + 'verejne': verejne, + }, + ) + +def ZadaniTemataView(request): + nastaveni = get_object_or_404(Nastaveni) + verejne = nastaveni.aktualni_cislo.verejne() + akt_rocnik = nastaveni.aktualni_cislo.rocnik + temata = s.Tema.objects.filter(rocnik=akt_rocnik, stav='zadany') + return render(request, 'tvorba/tematka/rozcestnik.html', + { + 'tematka': temata, + 'verejne': verejne, + }, + ) + + +# nastaveni = get_object_or_404(Nastaveni) +# temata = verejna_temata(nastaveni.aktualni_rocnik) +# for t in temata: +# if request.user.is_staff: +# t.prispevky = t.prispevek_set.filter(problem=t) +# else: +# t.prispevky = t.prispevek_set.filter(problem=t, zverejnit=True) +# return render(request, 'tvorba/zadani/Temata.html', +# { +# 'temata': temata, +# } +# ) +# +# +# +#def TematkoView(request, rocnik, tematko): +# nastaveni = s.Nastaveni.objects.first() +# rocnik_object = s.Rocnik.objects.filter(rocnik=rocnik) +# tematko_object = s.Tema.objects.filter(rocnik=rocnik_object[0], kod=tematko) +# seznam = vytahniZLesaSeznam(tematko_object[0], nastaveni.aktualni_rocnik().rocniknode) +# for node, depth in seznam: +# if node.isinstance(node, s.KonferaNode): +# raise Exception("Not implemented yet") +# if node.isinstance(node, s.PohadkaNode): # Mohu ignorovat, má pod sebou +# pass +# +# return render(request, 'tvorba/tematka/toaletak.html', {}) +# +# +#def TemataRozcestnikView(request): +# print("=============================================") +# nastaveni = s.Nastaveni.objects.first() +# tematka_objects = s.Tema.objects.filter(rocnik=nastaveni.aktualni_rocnik()) +# tematka = [] #List tematka obsahuje pro kazde tematko object a list vsech TemaVCisleNodu - implementované pomocí slovníku +# for tematko_object in tematka_objects: +# print("AKTUALNI TEMATKO") +# print(tematko_object.id) +# odkazy = vytahniZLesaSeznam(tematko_object, nastaveni.aktualni_rocnik().rocniknode, pouze_zajimave = True) #Odkazy jsou tuply (node, depth) v listu +# print(odkazy) +# cisla = [] # List tuplů (nazev cisla, list odkazů) +# vcisle = [] +# cislo = None +# for odkaz in odkazy: +# if odkaz[1] == 0: +# if cislo != None: +# cisla.append((cislo, vcisle)) +# cislo = (odkaz[0].getOdkazStr(), odkaz[0].getOdkaz()) +# vcisle = [] +# else: +# print(odkaz[0].getOdkaz()) +# vcisle.append((odkaz[0].getOdkazStr(), odkaz[0].getOdkaz())) +# if cislo != None: +# cisla.append((cislo, vcisle)) +# +# print(cisla) +# tematka.append({ +# "kod" : tematko_object.kod, +# "nazev" : tematko_object.nazev, +# "abstrakt" : tematko_object.abstrakt, +# "obrazek": tematko_object.obrazek, +# "cisla" : cisla +# }) +# return render(request, 'tvorba/tematka/rozcestnik.html', {"tematka": tematka, "rocnik" : nastaveni.aktualni_rocnik().rocnik}) +# + +def ZadaniAktualniVysledkovkaView(request): + nastaveni = get_object_or_404(Nastaveni) + # Aktualni verejna vysledkovka + rocnik = nastaveni.aktualni_rocnik + context = {'vysledkovka': VysledkovkaRocniku(rocnik, True)} + + # kdyz neni verejna vysledkovka, tak zobraz starou + if len(context['vysledkovka'].cisla_rocniku) == 0: + try: + minuly_rocnik = Rocnik.objects.get( + rocnik=(rocnik.rocnik-1)) + rocnik = minuly_rocnik + + # Přepíšeme prázdnou výsledkovku výsledkovkou z minulého ročníku + context['vysledkovka'] = VysledkovkaRocniku(rocnik, True) + except ObjectDoesNotExist: + pass + + context['rocnik'] = rocnik + return render( + request, + 'tvorba/zadani/AktualniVysledkovka.html', + context + ) + + +### Titulni strana + +def aktualni_temata(rocnik): + """ + Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. + """ + return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') + + +### Archiv + + +class ArchivView(generic.ListView): + model = Rocnik + template_name = 'tvorba/archiv/cisla.html' + + def get_context_data(self, **kwargs): + context = super(ArchivView, self).get_context_data(**kwargs) + + cisla = Cislo.objects.filter(poradi=1) + if not self.request.user.je_org: + cisla = cisla.filter(verejne_db=True) + urls ={} + + for i, c in enumerate(cisla): + # Výchozí nastavení + if c.rocnik not in urls: + urls[c.rocnik] = op.join(settings.STATIC_URL, "tvorba", "no-picture.png") + # NOTE: tohle možná nastavuje poslední titulku + if c.titulka_nahled: + urls[c.rocnik] = c.titulka_nahled.url + + context["object_list"] = urls + + return context + + + + + +class RocnikView(generic.DetailView): + model = Rocnik + template_name = 'tvorba/archiv/rocnik.html' + + # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) + def get_object(self, queryset=None): + if queryset is None: + queryset = self.get_queryset() + + return get_object_or_404(queryset,rocnik=self.kwargs.get('rocnik')) + + def get_context_data(self, **kwargs): + context = super(RocnikView, self).get_context_data(**kwargs) + context["vysledkovka"] = VysledkovkaRocniku(context["rocnik"], True) + context["neprazdna_vysledkovka"] = len(context['vysledkovka'].cisla_rocniku) != 0 + context["vysledkovka_neverejna"] = VysledkovkaRocniku(context["rocnik"], False) + return context + +def resiteleRocnikuCsvExportView(request, rocnik): + from personalni.views import dataResiteluCsvResponse + assert request.method in ('GET', 'HEAD') + return dataResiteluCsvResponse( + utils.resi_v_rocniku( + get_object_or_404(m.Rocnik, rocnik=rocnik) + ) + ) + + +# FIXME: Pozor, výš je ještě jeden ProblemView! +#class ProblemView(generic.DetailView): +# model = Problem +# +# # Používáme funkci, protože přímo template_name neumí mít v přiřazení dost logiky. Ledaže by se to udělalo polymorfně... +# def get_template_names(self, **kwargs): +# # FIXME: Switch podle typu není hezký, ale nechtělo se mi to přepisovat celé. Správně by se tohle mělo řešit polymorfismem. +# spravne_templaty = { +# s.Uloha: "uloha", +# s.Tema: "tema", +# s.Konfera: "konfera", +# s.Clanek: "clanek", +# } +# context = super().get_context_data(**kwargs) +# return ['tvorba/archiv/problem_' + spravne_templaty[context['object'].__class__] + '.html'] +# +# def get_context_data(self, **kwargs): +# context = super().get_context_data(**kwargs) +# # Musí se používat context['object'], protože nevíme, jestli dostaneme úložku, téma, článek, .... a tyhle věci vyrábějí různé klíče. +# if not context['object'].verejne() and not self.request.user.je_org: +# raise PermissionDenied() +# if isinstance(context['object'], Clanek): +# context['reseni'] = Reseni.objects.filter(problem=context['object']).select_related('resitel').order_by('resitel__prijmeni') +# return context + + + +class CisloView(generic.DetailView): + # FIXME zobrazování témátek a vůbec, teď je tam jen odkaz na číslo v pdf + model = Cislo + template_name = 'tvorba/archiv/cislo.html' + + # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) + def get_object(self, queryset=None): + if queryset is None: + queryset = self.get_queryset() + rocnik_arg = self.kwargs.get('rocnik') + poradi_arg = self.kwargs.get('cislo') + queryset = queryset.filter(rocnik__rocnik=rocnik_arg, poradi=poradi_arg) + + try: + obj = queryset.get() + except queryset.model.DoesNotExist: + raise Http404(_("No %(verbose_name)s found matching the query") % + {'verbose_name': queryset.model._meta.verbose_name}) + return obj + + def get_context_data(self, **kwargs): + context = super(CisloView, self).get_context_data(**kwargs) + + cislo = context['cislo'] + context['prevcislo'] = Cislo.objects.filter((Q(rocnik__lt=self.object.rocnik) | Q(poradi__lt=self.object.poradi))&Q(rocnik__lte=self.object.rocnik)).first() + + deadliny = Deadline.objects.filter(cislo=cislo).reverse() + deadliny_s_vysledkovkami = [] + + nadpisy = { + m.Deadline.TYP_CISLA: "Výsledkovka", + m.Deadline.TYP_PRVNI: "Výsledkovka do prvního deadlinu", + m.Deadline.TYP_PRVNI_A_SOUS: "Výsledkovka do prvního deadlinu a deadlinu pro účast na soustředění", + m.Deadline.TYP_SOUS: "Výsledkovka do deadlinu pro účast na soustředění", + } + + for deadline in deadliny: + if self.request.user.je_org | deadline.verejna_vysledkovka: + deadliny_s_vysledkovkami.append((deadline, nadpisy[deadline.typ], VysledkovkaCisla(cislo, not self.request.user.je_org, deadline))) + + context['deadliny_s_vysledkovkami'] = deadliny_s_vysledkovkami + return context + + +class ArchivTemataView(generic.ListView): + model = Problem + template_name = 'tvorba/archiv/temata.html' + queryset = Tema.objects.filter(stav=Problem.STAV_ZADANY).select_related('rocnik').order_by('rocnik', 'kod') + + def get_context_data(self, *args, **kwargs): + ctx = super().get_context_data(*args, **kwargs) + ctx['rocniky'] = OrderedDict() + for rocnik, temata in groupby(ctx['object_list'], lambda tema: tema.rocnik): + ctx['rocniky'][rocnik] = list(temata) + return ctx + +class OdmenyView(generic.TemplateView): + template_name = 'tvorba/archiv/odmeny.html' + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + fromcislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) + tocislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) + resitele = utils.aktivniResitele(tocislo) + + def get_diff(from_deadline: Deadline, to_deadline: Deadline): + frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) + tobody = body_resitelu(resitele=resitele, jen_verejne=False, do=to_deadline) + outlist = [] + for resitel in resitele: + fbody = frombody.get(resitel.id, 0) + tbody = tobody.get(resitel.id, 0) + ftitul = resitel.get_titul(fbody) + ttitul = resitel.get_titul(tbody) + if ftitul != ttitul: + outlist.append({'jmeno': resitel.osoba.plne_jmeno(), 'ftitul': ftitul, 'ttitul': ttitul}) + return outlist + + def posledni_deadline_oprava(cislo: Cislo) -> Deadline: + posledni_deadline = cislo.posledni_deadline + if posledni_deadline is None: + return Deadline.objects.filter(Q(cislo__poradi__lt=cislo.poradi, cislo__rocnik=cislo.rocnik) | Q(cislo__rocnik__rocnik__lt=cislo.rocnik.rocnik)).order_by("deadline").last() + return posledni_deadline + + context["from_cislo"] = fromcislo + context["to_cislo"] = tocislo + from_deadline = posledni_deadline_oprava(fromcislo) + to_deadline = posledni_deadline_oprava(tocislo) + context["from_deadline"] = from_deadline + context["to_deadline"] = to_deadline + context["zmeny"] = get_diff(from_deadline, to_deadline) + + return context + + + + +### Generovani vysledkovky + +class CisloVysledkovkaView(CisloView): + """View vytvořené pro stránku zobrazující výsledkovku čísla v TeXu.""" + + model = Cislo + template_name = 'tvorba/archiv/cislo_vysledkovka.tex' + #content_type = 'application/x-tex; charset=UTF8' + #umozni rovnou stahnout TeXovsky dokument + content_type = 'text/plain; charset=UTF8' + #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani + + def get_context_data(self, **kwargs): + context = super(CisloVysledkovkaView, self).get_context_data() + cislo = context['cislo'] + + cislopred = cislo.predchozi() + if cislopred is not None: + context['vysledkovka'] = VysledkovkaDoTeXu( + cislo, + od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), + do_vcetne=cislo.zlomovy_deadline_pro_papirove_cislo(), + ) + else: + context['vysledkovka'] = VysledkovkaCisla( + cislo, + jen_verejne=False, + do_deadlinu=cislo.zlomovy_deadline_pro_papirove_cislo(), + ) + return context + + +# Podle předchozího +class PosledniCisloVysledkovkaView(generic.DetailView): + """View vytvořené pro zobrazení výsledkovky posledního čísla v TeXu.""" + + model = Rocnik + template_name = 'tvorba/archiv/cislo_vysledkovka.tex' + content_type = 'text/plain; charset=UTF8' + + def get_object(self, queryset=None): + if queryset is None: + queryset = self.get_queryset() + rocnik_arg = self.kwargs.get('rocnik') + queryset = queryset.filter(rocnik=rocnik_arg) + + try: + obj = queryset.get() + except queryset.model.DoesNotExist: + raise Http404(_("No %(verbose_name)s found matching the query") % + {'verbose_name': queryset.model._meta.verbose_name}) + return obj + + def get_context_data(self, **kwargs): + context = super(PosledniCisloVysledkovkaView, self).get_context_data() + rocnik = context['rocnik'] + cislo = rocnik.cisla.order_by("poradi").filter(deadline_v_cisle__isnull=False).last() + if cislo is None: + raise Http404(f"Ročník {rocnik.rocnik} nemá číslo s deadlinem.") + cislopred = cislo.predchozi() + context['vysledkovka'] = VysledkovkaDoTeXu( + cislo, + od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), + do_vcetne=cislo.deadline_v_cisle.order_by("deadline").last(), + ) + return context + + +class RocnikVysledkovkaView(RocnikView): + """ View vytvořené pro stránku zobrazující výsledkovku ročníku v TeXu.""" + model = Rocnik + template_name = 'tvorba/archiv/rocnik_vysledkovka.tex' + #content_type = 'application/x-tex; charset=UTF8' + #umozni rovnou stahnout TeXovsky dokument + content_type = 'text/plain; charset=UTF8' +#vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani + +def cisloObalkyView(request, rocnik, cislo): + realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) + return personalni.views.obalkyView(request, utils.aktivniResitele(realne_cislo)) + + + +### Tituly +def TitulyViewRocnik(request, rocnik): + return TitulyView(request, rocnik, None) + + +def TitulyView(request, rocnik, cislo): + """ View pro stažení makra titulů v TeXu.""" + rocnik_obj = get_object_or_404(Rocnik, rocnik = rocnik) + resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok) + + asciijmena = [] + jmenovci = False # detekuje, zda jsou dva řešitelé jmenovci (modulo nabodeníčka), + # pokud ano, vrátí se jako true + if cislo is not None: + cislo_obj = get_object_or_404(Cislo, rocnik=rocnik_obj, poradi=cislo) + slovnik_s_body = body_resitelu(do=cislo_obj.zlomovy_deadline_pro_papirove_cislo(), jen_verejne=False) + else: + slovnik_s_body = body_resitelu(do=Deadline.objects.filter(cislo__rocnik=rocnik_obj).last(), jen_verejne=False) + + for resitel in resitele: + resitel.titul = resitel.get_titul(slovnik_s_body[resitel.id]) + jmeno = resitel.osoba.jmeno+resitel.osoba.prijmeni + # převedeme jména a příjmení řešitelů do ASCII + ascii_jmeno_bytes = unicodedata.normalize('NFKD', jmeno).encode("ascii","ignore") + # vrátí se byte string, převedeme na standardní string + ascii_jmeno_divnoznaky = str(ascii_jmeno_bytes, "utf-8", "ignore").replace(" ","") + resitel.ascii = ''.join(a for a in ascii_jmeno_divnoznaky if a.isalnum()) + if resitel.ascii not in asciijmena: + asciijmena.append(resitel.ascii) + else: + jmenovci = True + + return render(request, 'tvorba/archiv/tituly.tex', + {'resitele': resitele,'jmenovci':jmenovci},content_type="text/plain") + + +### Články +def group_by_rocnik(clanky): + ''' Vezme zadaný seznam článků a seskupí je podle ročníku. + Vrátí seznam seznamů článků ze stejného ročníku.''' + if len(clanky) == 0: + return clanky + clanky.order_by('cislo__rocnik__rocnik') + skupiny_clanku = [] + skupina = [] + + rocnik = clanky.first().cislo.rocnik.rocnik # první ročník + for clanek in clanky: + if clanek.cislo.rocnik.rocnik == rocnik: + skupina.append(clanek) + else: + skupiny_clanku.append(skupina) + skupina = [] + skupina.append(clanek) + rocnik = clanek.cislo.rocnik.rocnik + skupiny_clanku.append(skupina) + return skupiny_clanku + + +# FIXME: clanky jsou vsechny, pokud budou i neresitelske, tak se take zobrazi +# FIXME: Původně tu byl kód přímo v těle třídy, což rozbíjelo migrace. Opravil jsem, ale vůbec nevím, jestli to funguje. +class ClankyResitelView(generic.ListView): + model = Problem + template_name = 'tvorba/clanky/resitelske_clanky.html' + + # FIXME: QuerySet není pole! + def get_queryset(self): + clanky = Clanek.objects.filter(stav=Problem.STAV_VYRESENY).select_related('cislo__rocnik').order_by('-cislo__rocnik__rocnik') + queryset = [] + skupiny_clanku = group_by_rocnik(clanky) + for skupina in skupiny_clanku: + skupina.sort(key=lambda clanek: clanek.kod_v_rocniku) + for clanek in skupina: + queryset.append(clanek) + return queryset + +# FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit +#class ClankyOrganizatorView(generic.ListView)<F12>: +# model = Problem +# template_name = 'tvorba/clanky/organizatorske_clanky.html' +# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') + + + + +class AktualniRocnikRedirectView(RedirectView): + permanent=False + pattern_name = 'seminar_rocnik' + + def get_redirect_url(self, *args, **kwargs): + aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik.rocnik + return super().get_redirect_url(rocnik=aktualni_rocnik, *args, **kwargs) From f9a28689b0e2d43024557f6238b4ae07cadd2866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 21:30:33 +0200 Subject: [PATCH 221/225] views_all do __init__ --- tvorba/views/views_all.py | 579 -------------------------------------- 1 file changed, 579 deletions(-) delete mode 100644 tvorba/views/views_all.py diff --git a/tvorba/views/views_all.py b/tvorba/views/views_all.py deleted file mode 100644 index f960aac8..00000000 --- a/tvorba/views/views_all.py +++ /dev/null @@ -1,579 +0,0 @@ -from django.shortcuts import get_object_or_404, render -from django.http import HttpResponse -from django.urls import reverse -from django.core.exceptions import ObjectDoesNotExist -from django.views import generic -from django.utils.translation import gettext as _ -from django.http import Http404 -from django.db.models import Q, Sum, Count -from django.views.generic.base import RedirectView -from django.core.exceptions import PermissionDenied - -import seminar.models as s -import seminar.models as m -from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ - Resitel, Novinky, Tema, Clanek, \ - Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci -#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva -from treenode import treelib -import treenode.templatetags as tnltt -import treenode.serializers as vr -from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ - VysledkovkaRocniku, VysledkovkaDoTeXu - -from datetime import date, datetime -from itertools import groupby -from collections import OrderedDict -import os -import os.path as op -from django.conf import settings -import unicodedata -import logging -import time - -import personalni.views - -from .. import utils - -# ze starého modelu -#def verejna_temata(rocnik): -# """ -# Vrací queryset zveřejněných témat v daném ročníku. -# """ -# return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') -# -#def temata_v_rocniku(rocnik): -# return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) - -logger = logging.getLogger(__name__) - -def get_problemy_k_tematu(tema): - return Problem.objects.filter(nadproblem = tema) - - -# FIXME: Pozor, níž je ještě jeden ProblemView! -#class ProblemView(generic.DetailView): -# model = s.Problem -# # Zkopírujeme template_name od TreeNodeView, protože jsme prakticky jen trošku upravený TreeNodeView -# template_name = TreeNodeView.template_name -# -# def get_context_data(self, **kwargs): -# context = super().get_context_data(**kwargs) -# user = self.request.user -# # Teď potřebujeme doplnit tnldata do kontextu. -# # Ošklivý type switch, hezčí by bylo udělat to polymorfni. FIXME. -# if False: -# # Hezčí formátování zbytku :-P -# pass -# elif isinstance(self.object, s.Clanek) or isinstance(self.object, s.Konfera): -# # Tyhle Problémy mají ŘešeníNode -# context['tnldata'] = TNLData.from_treenode(self.object.reseninode,user) -# elif isinstance(self.object, s.Uloha): -# # FIXME: Teď vždycky zobrazujeme i vzorák! Možná by bylo hezčí/lepší mít to stejně jako pro Téma: procházet jen dosažitelné z Ročníku / čísla / whatever -# tnl_zadani = TNLData.from_treenode(self.object.ulohazadaninode,user) -# tnl_vzorak = TNLData.from_treenode(self.object.ulohavzoraknode,user) -# context['tnldata'] = TNLData.from_tnldata_list([tnl_zadani, tnl_vzorak]) -# elif isinstance(self.object, s.Tema): -# rocniknode = self.object.rocnik.rocniknode -# context['tnldata'] = TNLData.filter_treenode(rocniknode, lambda x: isinstance(x, s.TemaVCisleNode)) -# else: -# raise ValueError("Obecný problém nejde zobrazit.") -# return context - - -#class AktualniZadaniView(generic.TemplateView): -# template_name = 'treenode/treenode.html' - -# TODO Co chceme vlastně zobrazovat na této stránce? Zatím je zde aktuální číslo, ale může tu být cokoli jiného... -#class AktualniZadaniView(TreeNodeView): -# def get_object(self): -# nastaveni = get_object_or_404(Nastaveni) -# return nastaveni.aktualni_cislo.cislonode -# -# def get_context_data(self,**kwargs): -# nastaveni = get_object_or_404(Nastaveni) -# context = super().get_context_data(**kwargs) -# verejne = nastaveni.aktualni_cislo.verejne() -# context['verejne'] = verejne -# return context - -def AktualniZadaniView(request): - nastaveni = get_object_or_404(Nastaveni) - verejne = nastaveni.aktualni_cislo.verejne() - return render(request, 'tvorba/zadani/AktualniZadani.html', - {'nastaveni': nastaveni, - 'verejne': verejne, - }, - ) - -def ZadaniTemataView(request): - nastaveni = get_object_or_404(Nastaveni) - verejne = nastaveni.aktualni_cislo.verejne() - akt_rocnik = nastaveni.aktualni_cislo.rocnik - temata = s.Tema.objects.filter(rocnik=akt_rocnik, stav='zadany') - return render(request, 'tvorba/tematka/rozcestnik.html', - { - 'tematka': temata, - 'verejne': verejne, - }, - ) - - -# nastaveni = get_object_or_404(Nastaveni) -# temata = verejna_temata(nastaveni.aktualni_rocnik) -# for t in temata: -# if request.user.is_staff: -# t.prispevky = t.prispevek_set.filter(problem=t) -# else: -# t.prispevky = t.prispevek_set.filter(problem=t, zverejnit=True) -# return render(request, 'tvorba/zadani/Temata.html', -# { -# 'temata': temata, -# } -# ) -# -# -# -#def TematkoView(request, rocnik, tematko): -# nastaveni = s.Nastaveni.objects.first() -# rocnik_object = s.Rocnik.objects.filter(rocnik=rocnik) -# tematko_object = s.Tema.objects.filter(rocnik=rocnik_object[0], kod=tematko) -# seznam = vytahniZLesaSeznam(tematko_object[0], nastaveni.aktualni_rocnik().rocniknode) -# for node, depth in seznam: -# if node.isinstance(node, s.KonferaNode): -# raise Exception("Not implemented yet") -# if node.isinstance(node, s.PohadkaNode): # Mohu ignorovat, má pod sebou -# pass -# -# return render(request, 'tvorba/tematka/toaletak.html', {}) -# -# -#def TemataRozcestnikView(request): -# print("=============================================") -# nastaveni = s.Nastaveni.objects.first() -# tematka_objects = s.Tema.objects.filter(rocnik=nastaveni.aktualni_rocnik()) -# tematka = [] #List tematka obsahuje pro kazde tematko object a list vsech TemaVCisleNodu - implementované pomocí slovníku -# for tematko_object in tematka_objects: -# print("AKTUALNI TEMATKO") -# print(tematko_object.id) -# odkazy = vytahniZLesaSeznam(tematko_object, nastaveni.aktualni_rocnik().rocniknode, pouze_zajimave = True) #Odkazy jsou tuply (node, depth) v listu -# print(odkazy) -# cisla = [] # List tuplů (nazev cisla, list odkazů) -# vcisle = [] -# cislo = None -# for odkaz in odkazy: -# if odkaz[1] == 0: -# if cislo != None: -# cisla.append((cislo, vcisle)) -# cislo = (odkaz[0].getOdkazStr(), odkaz[0].getOdkaz()) -# vcisle = [] -# else: -# print(odkaz[0].getOdkaz()) -# vcisle.append((odkaz[0].getOdkazStr(), odkaz[0].getOdkaz())) -# if cislo != None: -# cisla.append((cislo, vcisle)) -# -# print(cisla) -# tematka.append({ -# "kod" : tematko_object.kod, -# "nazev" : tematko_object.nazev, -# "abstrakt" : tematko_object.abstrakt, -# "obrazek": tematko_object.obrazek, -# "cisla" : cisla -# }) -# return render(request, 'tvorba/tematka/rozcestnik.html', {"tematka": tematka, "rocnik" : nastaveni.aktualni_rocnik().rocnik}) -# - -def ZadaniAktualniVysledkovkaView(request): - nastaveni = get_object_or_404(Nastaveni) - # Aktualni verejna vysledkovka - rocnik = nastaveni.aktualni_rocnik - context = {'vysledkovka': VysledkovkaRocniku(rocnik, True)} - - # kdyz neni verejna vysledkovka, tak zobraz starou - if len(context['vysledkovka'].cisla_rocniku) == 0: - try: - minuly_rocnik = Rocnik.objects.get( - rocnik=(rocnik.rocnik-1)) - rocnik = minuly_rocnik - - # Přepíšeme prázdnou výsledkovku výsledkovkou z minulého ročníku - context['vysledkovka'] = VysledkovkaRocniku(rocnik, True) - except ObjectDoesNotExist: - pass - - context['rocnik'] = rocnik - return render( - request, - 'tvorba/zadani/AktualniVysledkovka.html', - context - ) - - -### Titulni strana - -def aktualni_temata(rocnik): - """ - Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. - """ - return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') - - -### Archiv - - -class ArchivView(generic.ListView): - model = Rocnik - template_name = 'tvorba/archiv/cisla.html' - - def get_context_data(self, **kwargs): - context = super(ArchivView, self).get_context_data(**kwargs) - - cisla = Cislo.objects.filter(poradi=1) - if not self.request.user.je_org: - cisla = cisla.filter(verejne_db=True) - urls ={} - - for i, c in enumerate(cisla): - # Výchozí nastavení - if c.rocnik not in urls: - urls[c.rocnik] = op.join(settings.STATIC_URL, "tvorba", "no-picture.png") - # NOTE: tohle možná nastavuje poslední titulku - if c.titulka_nahled: - urls[c.rocnik] = c.titulka_nahled.url - - context["object_list"] = urls - - return context - - - - - -class RocnikView(generic.DetailView): - model = Rocnik - template_name = 'tvorba/archiv/rocnik.html' - - # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) - def get_object(self, queryset=None): - if queryset is None: - queryset = self.get_queryset() - - return get_object_or_404(queryset,rocnik=self.kwargs.get('rocnik')) - - def get_context_data(self, **kwargs): - context = super(RocnikView, self).get_context_data(**kwargs) - context["vysledkovka"] = VysledkovkaRocniku(context["rocnik"], True) - context["neprazdna_vysledkovka"] = len(context['vysledkovka'].cisla_rocniku) != 0 - context["vysledkovka_neverejna"] = VysledkovkaRocniku(context["rocnik"], False) - return context - -def resiteleRocnikuCsvExportView(request, rocnik): - from personalni.views import dataResiteluCsvResponse - assert request.method in ('GET', 'HEAD') - return dataResiteluCsvResponse( - utils.resi_v_rocniku( - get_object_or_404(m.Rocnik, rocnik=rocnik) - ) - ) - - -# FIXME: Pozor, výš je ještě jeden ProblemView! -#class ProblemView(generic.DetailView): -# model = Problem -# -# # Používáme funkci, protože přímo template_name neumí mít v přiřazení dost logiky. Ledaže by se to udělalo polymorfně... -# def get_template_names(self, **kwargs): -# # FIXME: Switch podle typu není hezký, ale nechtělo se mi to přepisovat celé. Správně by se tohle mělo řešit polymorfismem. -# spravne_templaty = { -# s.Uloha: "uloha", -# s.Tema: "tema", -# s.Konfera: "konfera", -# s.Clanek: "clanek", -# } -# context = super().get_context_data(**kwargs) -# return ['tvorba/archiv/problem_' + spravne_templaty[context['object'].__class__] + '.html'] -# -# def get_context_data(self, **kwargs): -# context = super().get_context_data(**kwargs) -# # Musí se používat context['object'], protože nevíme, jestli dostaneme úložku, téma, článek, .... a tyhle věci vyrábějí různé klíče. -# if not context['object'].verejne() and not self.request.user.je_org: -# raise PermissionDenied() -# if isinstance(context['object'], Clanek): -# context['reseni'] = Reseni.objects.filter(problem=context['object']).select_related('resitel').order_by('resitel__prijmeni') -# return context - - - -class CisloView(generic.DetailView): - # FIXME zobrazování témátek a vůbec, teď je tam jen odkaz na číslo v pdf - model = Cislo - template_name = 'tvorba/archiv/cislo.html' - - # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) - def get_object(self, queryset=None): - if queryset is None: - queryset = self.get_queryset() - rocnik_arg = self.kwargs.get('rocnik') - poradi_arg = self.kwargs.get('cislo') - queryset = queryset.filter(rocnik__rocnik=rocnik_arg, poradi=poradi_arg) - - try: - obj = queryset.get() - except queryset.model.DoesNotExist: - raise Http404(_("No %(verbose_name)s found matching the query") % - {'verbose_name': queryset.model._meta.verbose_name}) - return obj - - def get_context_data(self, **kwargs): - context = super(CisloView, self).get_context_data(**kwargs) - - cislo = context['cislo'] - context['prevcislo'] = Cislo.objects.filter((Q(rocnik__lt=self.object.rocnik) | Q(poradi__lt=self.object.poradi))&Q(rocnik__lte=self.object.rocnik)).first() - - deadliny = Deadline.objects.filter(cislo=cislo).reverse() - deadliny_s_vysledkovkami = [] - - nadpisy = { - m.Deadline.TYP_CISLA: "Výsledkovka", - m.Deadline.TYP_PRVNI: "Výsledkovka do prvního deadlinu", - m.Deadline.TYP_PRVNI_A_SOUS: "Výsledkovka do prvního deadlinu a deadlinu pro účast na soustředění", - m.Deadline.TYP_SOUS: "Výsledkovka do deadlinu pro účast na soustředění", - } - - for deadline in deadliny: - if self.request.user.je_org | deadline.verejna_vysledkovka: - deadliny_s_vysledkovkami.append((deadline, nadpisy[deadline.typ], VysledkovkaCisla(cislo, not self.request.user.je_org, deadline))) - - context['deadliny_s_vysledkovkami'] = deadliny_s_vysledkovkami - return context - - -class ArchivTemataView(generic.ListView): - model = Problem - template_name = 'tvorba/archiv/temata.html' - queryset = Tema.objects.filter(stav=Problem.STAV_ZADANY).select_related('rocnik').order_by('rocnik', 'kod') - - def get_context_data(self, *args, **kwargs): - ctx = super().get_context_data(*args, **kwargs) - ctx['rocniky'] = OrderedDict() - for rocnik, temata in groupby(ctx['object_list'], lambda tema: tema.rocnik): - ctx['rocniky'][rocnik] = list(temata) - return ctx - -class OdmenyView(generic.TemplateView): - template_name = 'tvorba/archiv/odmeny.html' - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - fromcislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) - tocislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) - resitele = utils.aktivniResitele(tocislo) - - def get_diff(from_deadline: Deadline, to_deadline: Deadline): - frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) - tobody = body_resitelu(resitele=resitele, jen_verejne=False, do=to_deadline) - outlist = [] - for resitel in resitele: - fbody = frombody.get(resitel.id, 0) - tbody = tobody.get(resitel.id, 0) - ftitul = resitel.get_titul(fbody) - ttitul = resitel.get_titul(tbody) - if ftitul != ttitul: - outlist.append({'jmeno': resitel.osoba.plne_jmeno(), 'ftitul': ftitul, 'ttitul': ttitul}) - return outlist - - def posledni_deadline_oprava(cislo: Cislo) -> Deadline: - posledni_deadline = cislo.posledni_deadline - if posledni_deadline is None: - return Deadline.objects.filter(Q(cislo__poradi__lt=cislo.poradi, cislo__rocnik=cislo.rocnik) | Q(cislo__rocnik__rocnik__lt=cislo.rocnik.rocnik)).order_by("deadline").last() - return posledni_deadline - - context["from_cislo"] = fromcislo - context["to_cislo"] = tocislo - from_deadline = posledni_deadline_oprava(fromcislo) - to_deadline = posledni_deadline_oprava(tocislo) - context["from_deadline"] = from_deadline - context["to_deadline"] = to_deadline - context["zmeny"] = get_diff(from_deadline, to_deadline) - - return context - - - - -### Generovani vysledkovky - -class CisloVysledkovkaView(CisloView): - """View vytvořené pro stránku zobrazující výsledkovku čísla v TeXu.""" - - model = Cislo - template_name = 'tvorba/archiv/cislo_vysledkovka.tex' - #content_type = 'application/x-tex; charset=UTF8' - #umozni rovnou stahnout TeXovsky dokument - content_type = 'text/plain; charset=UTF8' - #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani - - def get_context_data(self, **kwargs): - context = super(CisloVysledkovkaView, self).get_context_data() - cislo = context['cislo'] - - cislopred = cislo.predchozi() - if cislopred is not None: - context['vysledkovka'] = VysledkovkaDoTeXu( - cislo, - od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), - do_vcetne=cislo.zlomovy_deadline_pro_papirove_cislo(), - ) - else: - context['vysledkovka'] = VysledkovkaCisla( - cislo, - jen_verejne=False, - do_deadlinu=cislo.zlomovy_deadline_pro_papirove_cislo(), - ) - return context - - -# Podle předchozího -class PosledniCisloVysledkovkaView(generic.DetailView): - """View vytvořené pro zobrazení výsledkovky posledního čísla v TeXu.""" - - model = Rocnik - template_name = 'tvorba/archiv/cislo_vysledkovka.tex' - content_type = 'text/plain; charset=UTF8' - - def get_object(self, queryset=None): - if queryset is None: - queryset = self.get_queryset() - rocnik_arg = self.kwargs.get('rocnik') - queryset = queryset.filter(rocnik=rocnik_arg) - - try: - obj = queryset.get() - except queryset.model.DoesNotExist: - raise Http404(_("No %(verbose_name)s found matching the query") % - {'verbose_name': queryset.model._meta.verbose_name}) - return obj - - def get_context_data(self, **kwargs): - context = super(PosledniCisloVysledkovkaView, self).get_context_data() - rocnik = context['rocnik'] - cislo = rocnik.cisla.order_by("poradi").filter(deadline_v_cisle__isnull=False).last() - if cislo is None: - raise Http404(f"Ročník {rocnik.rocnik} nemá číslo s deadlinem.") - cislopred = cislo.predchozi() - context['vysledkovka'] = VysledkovkaDoTeXu( - cislo, - od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), - do_vcetne=cislo.deadline_v_cisle.order_by("deadline").last(), - ) - return context - - -class RocnikVysledkovkaView(RocnikView): - """ View vytvořené pro stránku zobrazující výsledkovku ročníku v TeXu.""" - model = Rocnik - template_name = 'tvorba/archiv/rocnik_vysledkovka.tex' - #content_type = 'application/x-tex; charset=UTF8' - #umozni rovnou stahnout TeXovsky dokument - content_type = 'text/plain; charset=UTF8' - #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani - -def cisloObalkyView(request, rocnik, cislo): - realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) - return personalni.views.obalkyView(request, utils.aktivniResitele(realne_cislo)) - - - -### Tituly -def TitulyViewRocnik(request, rocnik): - return TitulyView(request, rocnik, None) - - -def TitulyView(request, rocnik, cislo): - """ View pro stažení makra titulů v TeXu.""" - rocnik_obj = get_object_or_404(Rocnik, rocnik = rocnik) - resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok) - - asciijmena = [] - jmenovci = False # detekuje, zda jsou dva řešitelé jmenovci (modulo nabodeníčka), - # pokud ano, vrátí se jako true - if cislo is not None: - cislo_obj = get_object_or_404(Cislo, rocnik=rocnik_obj, poradi=cislo) - slovnik_s_body = body_resitelu(do=cislo_obj.zlomovy_deadline_pro_papirove_cislo(), jen_verejne=False) - else: - slovnik_s_body = body_resitelu(do=Deadline.objects.filter(cislo__rocnik=rocnik_obj).last(), jen_verejne=False) - - for resitel in resitele: - resitel.titul = resitel.get_titul(slovnik_s_body[resitel.id]) - jmeno = resitel.osoba.jmeno+resitel.osoba.prijmeni - # převedeme jména a příjmení řešitelů do ASCII - ascii_jmeno_bytes = unicodedata.normalize('NFKD', jmeno).encode("ascii","ignore") - # vrátí se byte string, převedeme na standardní string - ascii_jmeno_divnoznaky = str(ascii_jmeno_bytes, "utf-8", "ignore").replace(" ","") - resitel.ascii = ''.join(a for a in ascii_jmeno_divnoznaky if a.isalnum()) - if resitel.ascii not in asciijmena: - asciijmena.append(resitel.ascii) - else: - jmenovci = True - - return render(request, 'tvorba/archiv/tituly.tex', - {'resitele': resitele,'jmenovci':jmenovci},content_type="text/plain") - - -### Články -def group_by_rocnik(clanky): - ''' Vezme zadaný seznam článků a seskupí je podle ročníku. - Vrátí seznam seznamů článků ze stejného ročníku.''' - if len(clanky) == 0: - return clanky - clanky.order_by('cislo__rocnik__rocnik') - skupiny_clanku = [] - skupina = [] - - rocnik = clanky.first().cislo.rocnik.rocnik # první ročník - for clanek in clanky: - if clanek.cislo.rocnik.rocnik == rocnik: - skupina.append(clanek) - else: - skupiny_clanku.append(skupina) - skupina = [] - skupina.append(clanek) - rocnik = clanek.cislo.rocnik.rocnik - skupiny_clanku.append(skupina) - return skupiny_clanku - - -# FIXME: clanky jsou vsechny, pokud budou i neresitelske, tak se take zobrazi -# FIXME: Původně tu byl kód přímo v těle třídy, což rozbíjelo migrace. Opravil jsem, ale vůbec nevím, jestli to funguje. -class ClankyResitelView(generic.ListView): - model = Problem - template_name = 'tvorba/clanky/resitelske_clanky.html' - - # FIXME: QuerySet není pole! - def get_queryset(self): - clanky = Clanek.objects.filter(stav=Problem.STAV_VYRESENY).select_related('cislo__rocnik').order_by('-cislo__rocnik__rocnik') - queryset = [] - skupiny_clanku = group_by_rocnik(clanky) - for skupina in skupiny_clanku: - skupina.sort(key=lambda clanek: clanek.kod_v_rocniku) - for clanek in skupina: - queryset.append(clanek) - return queryset - -# FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit -#class ClankyOrganizatorView(generic.ListView)<F12>: -# model = Problem -# template_name = 'tvorba/clanky/organizatorske_clanky.html' -# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') - - - - -class AktualniRocnikRedirectView(RedirectView): - permanent=False - pattern_name = 'seminar_rocnik' - - def get_redirect_url(self, *args, **kwargs): - aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik.rocnik - return super().get_redirect_url(rocnik=aktualni_rocnik, *args, **kwargs) From d5d55d76a9bd9fbc528a7a13920bca0adff61f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 21:57:01 +0200 Subject: [PATCH 222/225] =?UTF-8?q?Lep=C5=A1=C3=AD=20koment=C3=A1=C5=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/soustredeni/__init__.py b/soustredeni/__init__.py index 88d1678e..94eca4f4 100644 --- a/soustredeni/__init__.py +++ b/soustredeni/__init__.py @@ -1,3 +1,4 @@ """ -Obsahuje vše (až na přednášky a galerie) ohledně soustředění. +Obsahuje vše (až na přednášky a galerie) ohledně soustředění, +tzn. převážně informace o účastech orgů a účastníků a o tom, kdo byl na které konfeře. """ From 3db6231a77d89bb15407440376fa0052b97baa58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Tue, 22 Oct 2024 22:11:59 +0200 Subject: [PATCH 223/225] =?UTF-8?q?N=C3=A1zev=20id=20v=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/soustredeni/views.py b/soustredeni/views.py index 2f296b60..67a0305f 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -105,3 +105,4 @@ def soustredeniStvrzenkyView(request, soustredeni): class SoustredeniAbstraktyView(generic.DetailView): model = Soustredeni template_name = 'soustredeni/export_do_abstraktu.html' + pk_url_kwarg = 'soustredeni' # v url bude <int:soustredeni> místo defaultně požadovaného <int:pk> From 2ae906495dc51f53300d9a9945ac7588a095c11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 23 Oct 2024 11:49:48 +0200 Subject: [PATCH 224/225] Opravil jsem font (aby fungovala diakritika apod.) --- mamweb/static/css/base.css | 4 ++-- mamweb/static/fonts/ghoul/ghoul.ttf | Bin 14968 -> 57984 bytes mamweb/static/fonts/ghoul/ghoulheadline.ttf | Bin 24980 -> 0 bytes 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 mamweb/static/fonts/ghoul/ghoulheadline.ttf diff --git a/mamweb/static/css/base.css b/mamweb/static/css/base.css index a7febafc..a4433d55 100644 --- a/mamweb/static/css/base.css +++ b/mamweb/static/css/base.css @@ -8,10 +8,10 @@ font-weight: normal; } +/* https://fontzone.net/font-details/qtghoulface-regular doplněný o diakritiku pomocí FontForge*/ @font-face { font-family: 'GhoulFace'; - src: url("../fonts/ghoul/ghoulheadline.ttf"), - url("../fonts/ghoul/ghoul.woff"); + src: url("../fonts/ghoul/ghoul.ttf"); font-weight: normal; } diff --git a/mamweb/static/fonts/ghoul/ghoul.ttf b/mamweb/static/fonts/ghoul/ghoul.ttf index 64bab4789ae256a70f2af1ad00fc1edab5efbf27..dcb13354068ccbaf4ec42a37b7ffc4e7d5c200c3 100644 GIT binary patch literal 57984 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%0AxQ%-_lIP=y(?EksHhek%Kx~P>c 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 literal 14968 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 Y@QR^}vZk22sUkhC>N;K+&?x->0hVL~RsaA1 diff --git a/mamweb/static/fonts/ghoul/ghoulheadline.ttf b/mamweb/static/fonts/ghoul/ghoulheadline.ttf deleted file mode 100644 index 90d4f7c126d0c67a754e622812a3b83f5929fade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24980 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 F{%@Ya1ULWy From 35131c96ec721ab82f10f1876dadf407cde3e3a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= <jonas.havelka@volny.cz> Date: Wed, 23 Oct 2024 12:22:46 +0200 Subject: [PATCH 225/225] =?UTF-8?q?Novinky=20byly=20b=C5=AFhv=C3=AD=20pro?= =?UTF-8?q?=C4=8D=20BigAutoField?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- novinky/migrations/0004_alter_novinky_id.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 novinky/migrations/0004_alter_novinky_id.py diff --git a/novinky/migrations/0004_alter_novinky_id.py b/novinky/migrations/0004_alter_novinky_id.py new file mode 100644 index 00000000..a4a48490 --- /dev/null +++ b/novinky/migrations/0004_alter_novinky_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.16 on 2024-10-23 10:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('novinky', '0003_novinky_post'), + ] + + operations = [ + migrations.AlterField( + model_name='novinky', + name='id', + field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + ]