diff --git a/data/flat.json b/data/flat.json index 887d4ddc..4185052c 100644 --- a/data/flat.json +++ b/data/flat.json @@ -1,19 +1,4 @@ [ - { - "fields": { - "content": "
Vítejte na stránce semináře MaM!
\r\n", @@ -39,7 +24,7 @@ ], "template_name": "", "title": "Co je M&M?", - "url": "/co-je-MaM/uvod/" + "url": "/o-nas/uvod/" }, "model": "flatpages.flatpage", "pk": 3 @@ -59,36 +44,6 @@ "model": "flatpages.flatpage", "pk": 4 }, - { - "fields": { - "content": "\r\n Na této stránce velmi intenzivně pracujeme.\r\n Za dočasnou nedostupnost se omlouváme.\r\n Zkuste přejít na titulní stránku\r\n nebo se podívat na aktuální zadání.\r\n
\r\n ", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Témata", - "url": "/archiv/temata/" - }, - "model": "flatpages.flatpage", - "pk": 5 - }, - { - "fields": { - "content": "\r\n Na této stránce velmi intenzivně pracujeme.\r\n Za dočasnou nedostupnost se omlouváme.\r\n Zkuste přejít na titulní stránku\r\n nebo se podívat na aktuální zadání.\r\n
\r\n ", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Úlohy", - "url": "/archiv/ulohy/" - }, - "model": "flatpages.flatpage", - "pk": 6 - }, { "fields": { "content": "Čím se náš seminář liší od většiny ostatních soutěží, jsou příspěvková témata. Jedná se o simulaci vědecké práce ve smyslu, že zadáme jistý okruh problémů, nad kterým můžeš následující rok bádat. O výsledky své práce se pak podělíš s námi a s ostatními řešiteli a my tvou práci ohodnotíme. V každé sérii bývají témata rozšiřována, navíc jsou některé zadané problémy omezeny termínem odeslání, proto je potřeba své výsledky posílat už průběžně. Na každý ročník témat vypisujeme pět až šest.
\r\n\r\nŘešení, které nám pošleš, může být dvou různých typů:
\r\n\r\nV rámci každého tématu bývá zadána jedna nebo dvě menší úlohy, které daný problém určitým způsobem rozvíjí. Tyto úlohy bývají trochu těžší než obvyklé školní, jejich řešení často vyžaduje buď hlubší zamyšlení nebo nějaký trik. Středoškolské znalosti by na ně ale měly stačit. Odevzdávání úloh se omezuje termínem odeslání, poté bývá zveřejněno vzorové řešení. U každé úlohy je uveden počet bodů za správné řešení. Přiměřenou část z těchto bodů lze získat i za neúplné řešení. A naopak za velmi zajímavé nebo elegantní řešení můžeš dostat i bodovou prémii.
\r\n\r\nSystém témat poskytuje příležitost pro podrobnější rozbor daného okruhu problémů. Výsledek takové práce však vyžaduje o něco víc prostoru nežli klasické řešení, proto je tvým úkolem napsat článek zabývající se problémem, který sis vybral. Může to být záznam o provedeném experimentu, teoretickém výpočtu či úvaze, napsaném programu či o dalších (podle tebe zajímavých) otázkách z daného okruhu.
\r\n\r\nVyber si některý z navrhovaných podproblémů, kterým se chceš zabývat, případně si navrhni podproblém vlastní (to bývá ohodnoceno bodovým bonusem). Podproblém pak vyřeš podobně jako úlohu z čísla. Podrobné řešení některého z podproblémů bude bodově hodnoceno výrazně lépe než souhrnný článek krátce zmiňující kdeco. I částečné řešení je lepší než žádné. Své řešení pak hezky sepiš, aby mělo formu článku, a článek nám pošli. Vedoucí tématu ho pak ohodnotí, případně zkoriguje a publikuje na webu či dokonce v čísle. Čím blíže bude forma tvého příspěvku publikovatelnému článku, tím lepšího bodového ohodnocení dosáhneš. Moderátor tématu ho pak ohodnotí, případně zkoriguje a publikuje na webu či dokonce v čísle. Čím blíže bude forma tvého příspěvku publikovatelnému článku, tím lepšího bodového ohodnocení dosáhneš.
\r\n\r\nVelmi důležitou vlastností témat je, že můžeš na články ostatních reagovat – rozvíjet je, nebo naopak bořit jejich představy. Proto se hodí poslat také částečná řešení, postřehy, nebo nápady na další podproblémy, které třeba nezvládneš vyřešit sám. Takovéto příspěvky dávají prostor ostatním a mohou je dál inspirovat – ostatní zase svými příspěvky mohou inspirovat tebe.
\r\n\r\nProtože víc hlav víc ví, můžete na tématech pracovat i ve skupinách.
\r\n\r\n\r\nNad nápady k tématům můžeš přemýšlet celý rok až do termínu odevzdání poslední série úloh. Samozřejmě, čím dříve nám článek pošleš, tím dříve na něj ostatní budou moci zareagovat.
\r\n\r\nČlánek k tématu by měl po obsahové a formální stránce odpovídat vědeckému článku. Můžeš se podívat na stručný přehled toho, jak by měl takový vědecký článek vypadat.
\r\n\r\nTémata vytvářejí prostor pro vlastní tvůrčí (často vědeckou) činnost, jejímž smyslem je krom jiného přinést ostatním řešitelům nové podněty a inspirovat je k dalším nápadům. Kromě samotného bádání je důležitá i komunikace mezi lidmi, která je obvykle zprostředkována odbornými časopisy a vědeckými konferencemi. Časopis M&M je určen právě pro písemnou komunikaci. Ústní formu prezentace si můžeš vyzkoušet na našem soustředění, kde se tradičně koná malá vědecká konference.
\r\n\r\nSvá řešení můžeš poslat buď elektronicky na náš e-mail mam@matfyz.cz, nebo poštou na naši adresu. Pokud potřebuješ k řešení přiložit nějaký hodně velký soubor, použij některou volně dostupnou službu pro sdílení souborů (Dropbox, Google Drive, …) nebo nás kontaktuj na e-mailu mam@matfyz.cz a předání domluvíme.
\r\n\r\nPokud posíláš řešení elektronicky, věz, že nás daleko více potěší pdfko s textem než vyfocené ručně psané řešení. Každou úlohu prosím pošli v samostatném souboru resp. na samostatném listě A4, aby si úlohy mohli rozdělit různí opravující. Na každý list uveď svoje jméno a číslo úlohy či tématu. Na tvou poštovní adresu ti pak budou zdarma chodit další čísla našeho časopisu.
\r\n\r\nKe svému prvnímu řešení přilož prosím také své jméno, adresu, e-mail, školu a rok maturity. Pokud chceš jet na soustředění, uveď prosím i telefon. A neboj, tyto údaje budeme využívat pouze pro potřeby M&M. Mimo údajů na výsledkové listině (jméno, škola, ročník) je nebudeme nikde zveřejňovat.
\r\n", @@ -114,7 +69,7 @@ ], "template_name": "", "title": "Často kladené dotazy", - "url": "/co-je-MaM/FAQ/" + "url": "/o-nas/FAQ/" }, "model": "flatpages.flatpage", "pk": 8 @@ -149,96 +104,6 @@ "model": "flatpages.flatpage", "pk": 11 }, - { - "fields": { - "content": "Na této stránce velmi intenzivně pracujeme. Za dočasnou nedostupnost se omlouváme. Zkuste přejít na titulní stránku nebo se podívat na aktuální zadání.
\r\n\r\n\r\n", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Proběhlo", - "url": "/soustredeni/probehlo/" - }, - "model": "flatpages.flatpage", - "pk": 12 - }, - { - "fields": { - "content": "Témata jsou texty nejen z oblasti matematiky, fyziky a informatiky, které popisují nějaký problém a jsou doprovázeny návodnými úlohami. Vaším úkolem je zamyslet se nad daným problémem a sepsat vaše úvahy ve formě krátkého textu.
\r\n\r\n\r\n\r\n\r\n\r\n
AKTUÁLNÍ TÉMATA
", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Témata", - "url": "/zadani/temata/" - }, - "model": "flatpages.flatpage", - "pk": 16 - }, - { - "fields": { - "content": "Tady patří aktuální číslo.
\r\n", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Aktuální číslo", - "url": "/zadani/aktualni-cislo/" - }, - "model": "flatpages.flatpage", - "pk": 17 - }, - { - "fields": { - "content": "Na této stránce velmi intenzivně pracujeme. Za dočasnou nedostupnost se omlouváme. Zkuste přejít na titulní stránku nebo se podívat na aktuální zadání.
\r\n\r\n\r\n", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Výsledková listina", - "url": "/zadani/vysledkova-listina/" - }, - "model": "flatpages.flatpage", - "pk": 18 - }, - { - "fields": { - "content": "\r\n Na této stránce velmi intenzivně pracujeme.\r\n Za dočasnou nedostupnost se omlouváme.\r\n Zkuste přejít na titulní stránku\r\n nebo se podívat na aktuální zadání.\r\n
\r\n ", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Organizátorské články", - "url": "/clanky/org/" - }, - "model": "flatpages.flatpage", - "pk": 19 - }, - { - "fields": { - "content": "Na této stránce se budou postupně objevovat různorodé články od našich řešitelů.
\r\n\r\nObsah:
\r\n\r\nOndřej Knopp: Flatland (již brzy)
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Řešitelské články", - "url": "/clanky/resitel/" - }, - "model": "flatpages.flatpage", - "pk": 20 - }, { "fields": { "content": "
Pro psaní vědeckých článků byla vytvořena některá obecná pravidla, která usnadňují jejich čitelnost a možnost vyhledat potřebné informace. Na tomto místě bychom ti chtěli ukázat, jak by měl takový vědecký článek vypadat po obsahové i formální stránce.
\r\n\r\nKvalita vědeckého článku závisí hlavně na tom, kolik nových poznatků přináší. Je velmi vhodné, aby obsahem bylo jen to, co může zajímat ostatní řešitele daného tématu.
\r\n\r\nDále platí pravidlo, že jeden článek by se měl týkat právě jednoho problému. Pokud píšeš o více problémech najednou, zamysli se nad tím, jestli by nebylo možné napsat více článků. Čím stručnější a přehlednější článek je a čím více nových poznatků na tak omezeném prostoru obsahuje, tím čitelnější a zajímavější je pro ostatní řešitele.
\r\n\r\nKaždý článek by měl mít vhodný název (titulek), který dokáže přitáhnout čtenáře, kteří se zajímají o dané téma. Nadpis je ta část článku, které si každý všimne hned na první pohled. Nepodceňuj jeho znění a dej pozor na to, aby přesně vystihoval to, čemu se v článku věnuješ.
\r\n\r\nV úvodu bys měl popsat problém, kterým ses zabýval, dále na co a na koho jsi navazoval a také proč ses daným problémem zabýval. Většinou je zde uvedena hypotéza, která je dokazována v samotném článku. Součástí úvodu je i motivace čtenáře a první přiblížení podstaty problému.
\r\n\r\nZa úvodem pak pokračuje podrobnější popis postupů, které využíváš, a zdůvodnění tvých tvrzení.
\r\n\r\nKvalita vědeckého článku je dána především tím, jakou má informační hodnotu. Informacemi v článku mohou být jak výsledky vlastního výzkumu, tak přehledné shrnutí a zpracování jinde uveřejněných výsledků týkajících se zkoumaného problému. Takovému zpracování se říká rešerše a pokud podobné shrnutí ještě neexistuje, může být přínosné stejně jako vlastní nový výzkum.
\r\n\r\nJe důležité, aby všechna tvrzení uvedená v článku byla dostatečně podložena fakty. Článek tedy nelze založit na něčem, o čem si jen myslíš, že by to mohlo platit. Jakákoliv složitější tvrzení v článku by měla být podpořena buď odkazem na literaturu, anebo důkazem či experimentem. Měly by být také uvedeny všechny předpoklady použitých tvrzení a teorií a v případě experimentu podmínky, za kterých byl prováděn.
\r\n\r\nV závěru je pak vhodné znovu shrnout hlavní výsledky své práce a případně položit nějaké další otázky související s tématem, jejichž řešení by mohlo navazovat na tvůj článek.
\r\n\r\nNa úplném konci se pak uvádí seznam použité literatury a literatury, na kterou bylo v článku odkazováno. Obvykle se v článku použije jen odkaz, např. „... Jak je uvedeno v [1], můžeme výraz upravit...“ V seznamu literatury se pak uvedou plné údaje o knize, článku či internetové adrese. Dodržuje se následující schéma:
\r\n\r\n\r\n\r\n
[#] Autor. Název díla: podnázev díla. Číslo vydání. Místo vydání: Označení nakladatele, Rok vydání. Počet stránek. ISBN.
\r\n\r\nNapříklad:
\r\n[1] O. Lepil, Z. Krupka. Fyzika pro gymnázia: Optika. 2. vydání. Praha: Prometheus, 1996. 167 s. ISBN 80–85849–71–2.
Jednotlivé části krátkého článku stačí oddělit odstavci. Pokud se jedná o rozsáhlejší příspěvek, je lepší rozdělit ho na několik sekcí s vhodnými podnadpisy.
\r\n\r\nV odborném článku je nutné se vyjadřovat přesně a jednoznačně. Je potřeba používat správné termíny, aby byl článek správně pochopen ostatními čtenáři. Pokud používáš poměrně neobvyklý pojem nebo zavádíš nějaký nový, tak je potřeba jej přesně definovat. Vždy si pořádně uvědom, kdo bude tvůj článek číst. Na tom také záleží, jaké termíny použiješ a jak moc podrobně je budeš vysvětlovat.
\r\n\r\nAby byl článek vůbec publikovatelný, měl by být napsán bez jazykových a stylistických chyb. V článku, který je publikován, a tedy jej čte širší skupina lidí, používáme spisovný jazyk. V M&Mku můžeš psát česky nebo slovensky.
\r\n\r\n\r\n\r\n
Doufáme, že ti tento návod při psaní článků pomůže, a že i díky němu naše témátka zůstanou přehledná, čitelná a zajímavá.
\r\n", @@ -264,41 +129,11 @@ ], "template_name": "", "title": "Kontakt", - "url": "/co-je-MaM/kontakt/" + "url": "/o-nas/kontakt/" }, "model": "flatpages.flatpage", "pk": 22 }, - { - "fields": { - "content": "Svoje řešení nám prosím pošli na náš e-mail mam@matfyz.cz, nebo poštou na adresu redakce.
\r\n", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Odevzdat řešení", - "url": "/odevzdat-reseni/muj-ucet/" - }, - "model": "flatpages.flatpage", - "pk": 23 - }, - { - "fields": { - "content": "Na této stránce velmi intenzivně pracujeme. Za dočasnou nedostupnost se omlouváme. Zkuste přejít na titulní stránku nebo se podívat na aktuální zadání.
\r\n\r\n\r\n", - "enable_comments": false, - "registration_required": false, - "sites": [ - 1 - ], - "template_name": "", - "title": "Výsledkové listiny", - "url": "/archiv/vysledky/" - }, - "model": "flatpages.flatpage", - "pk": 24 - }, { "fields": { "content": "Každý rok oceňujeme 5 nejlepších řešitelů knihou a deskovou hrou dle jejich výběru.
\r\nLetos můžeš být mezi nimi i ty, stačí pilně řešit! :-)
\r\nNásledující knihy a deskovky si vybralo pět nejúspěšnějších řešitelů 23. ročníku semináře:
Můžeš se podívat i na odměny z 22. a 21. ročníku.
\r\n\r\n Bc.MM (10 bodů) – propiska
\r\n
Mgr.MM (20 bodů) – reflexní páska
\r\n
Dr.MM (50 bodů) – hrneček
\r\n
Doc.MM (100 bodů) – deka
\r\n
Prof.MM (200 bodů) – mikina
\r\n\r\n\r\n\r\nAkad.MM (500 bodů) – tabule s nápisem „Jsi fakt borec“ podepsaná všemi organizátory
\r\n", @@ -309,7 +144,7 @@ ], "template_name": "", "title": "Odměny", - "url": "/co-je-MaM/odmeny/" + "url": "/o-nas/odmeny/" }, "model": "flatpages.flatpage", "pk": 25 @@ -324,7 +159,7 @@ ], "template_name": "", "title": "Mám moc času!", - "url": "/co-je-MaM/mam-moc-casu/" + "url": "/o-nas/dalsi-akce/" }, "model": "flatpages.flatpage", "pk": 27 diff --git a/data/sitetree.json b/data/sitetree.json index 3445dd59..1f58d744 100644 --- a/data/sitetree.json +++ b/data/sitetree.json @@ -337,8 +337,8 @@ "sort_order": 33, "title": "Výsledková listina", "tree": 1, - "url": "zadani/vysledkova-listina/", - "urlaspattern": false + "url": "seminar_aktualni_vysledky", + "urlaspattern": true }, "model": "sitetree.treeitem", "pk": 16 diff --git a/seminar/.~lock.profile_vysledkovka.txt# b/seminar/.~lock.profile_vysledkovka.txt# deleted file mode 100644 index cf1b89b4..00000000 --- a/seminar/.~lock.profile_vysledkovka.txt# +++ /dev/null @@ -1 +0,0 @@ -,anet,erebus,25.03.2020 22:21,file:///home/anet/.config/libreoffice/4; \ No newline at end of file diff --git a/seminar/forms.py b/seminar/forms.py index c64095c6..39714fae 100644 --- a/seminar/forms.py +++ b/seminar/forms.py @@ -316,3 +316,77 @@ class JednoHodnoceniForm(forms.ModelForm): OhodnoceniReseniFormSet = formset_factory(JednoHodnoceniForm, extra = 0, ) + +# FIXME: Ideálně by mělo být součástí třídy níž, ale neumím to udělat +DATE_FORMAT = '%Y-%m-%d' + +class OdevzdavatkoTabulkaFiltrForm(forms.Form): + """Form pro filtrování přehledové odevzdávátkové tabulky + + Inspirováno https://kam.mff.cuni.cz/mffzoom/""" + + # Věci definované níž se importují i ve views pro odevzdávátko (Inspirováno https://docs.djangoproject.com/en/3.1/ref/models/fields/#field-choices) + + RESITELE_RELEVANTNI = 'relevantni' + RESITELE_LETOSNI = 'letosni' + RESITELE_CHOICES = [ + (RESITELE_RELEVANTNI, 'Relevantní řešitelé'), # I.e. nezobrazovat prázdné řádky tabulky + (RESITELE_LETOSNI, 'Všichni letošní'), + # Možná: všechny vč. historických? + ] + + PROBLEMY_MOJE = 'moje' + PROBLEMY_LETOSNI = 'letosni' + PROBLEMY_CHOICES = [ + (PROBLEMY_MOJE, 'Moje problémy'), # Letošní problémy, které mají v sobě nebo v nadproblémech přiřazeného daného orga + (PROBLEMY_LETOSNI, 'Všechny letošní'), + # TODO: *hlavní problémy, možná všechny... + # XXX: Chtělo by to i "aktuálně zadané... + ] + + # TODO: Typy problémů (problémy, úlohy, ostatní, všechny)? Jen některá řešení (obodovaná/neobodovaná, víc řešitelů, ...)? + + + def gen_terminy(): + import datetime + from time import strftime + + aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik + aktualni_cislo = m.Nastaveni.get_solo().aktualni_cislo + + result = [] + + for cislo in m.Cislo.objects.filter( + rocnik=aktualni_rocnik, + poradi__lte=aktualni_cislo.poradi, + ).reverse(): # Standardně se řadí od nejnovějšího čísla + # Předem je mi líto kohokoliv, kdo tyhle řádky bude číst... + if cislo.datum_vydani is not None and cislo.datum_vydani <= datetime.date.today(): + result.append(( + strftime(DATE_FORMAT, cislo.datum_vydani.timetuple()), + f"Vydání {cislo.poradi}. čísla")) + if cislo.datum_preddeadline is not None and cislo.datum_preddeadline <= datetime.date.today(): + result.append(( + strftime(DATE_FORMAT, cislo.datum_preddeadline.timetuple()), + f"Předdeadline {cislo.poradi}. čísla")) + if cislo.datum_deadline_soustredeni is not None and cislo.datum_deadline_soustredeni <= datetime.date.today(): + result.append(( + strftime(DATE_FORMAT, cislo.datum_deadline_soustredeni.timetuple()), + f"Sous. deadline {cislo.poradi}. čísla")) + if cislo.datum_deadline is not None and cislo.datum_deadline <= datetime.date.today(): + result.append(( + strftime(DATE_FORMAT, cislo.datum_deadline.timetuple()), + f"Finální deadline {cislo.poradi}. čísla")) + result.append(( + strftime(DATE_FORMAT, datetime.date.today().timetuple()), f"Dnes")) + + return result + + # NOTE: Initial definuji pro jednotlivé fieldy, aby to bylo tady a nebylo potřeba to řešit ve views... + resitele = forms.ChoiceField(choices=RESITELE_CHOICES, initial=RESITELE_RELEVANTNI) + problemy = forms.ChoiceField(choices=PROBLEMY_CHOICES, initial=PROBLEMY_MOJE) + + # choices jako parametr Select widgetu neumí brát callable, jen iterable, takže si pro jednoduchost můžu rovnou uložit výsledek sem... + terminy = gen_terminy() + reseni_od = forms.DateField(input_formats=[DATE_FORMAT], widget=forms.Select(choices=terminy), initial=terminy[-2]) + reseni_do = forms.DateField(input_formats=[DATE_FORMAT], widget=forms.Select(choices=terminy), initial=terminy[-1]) diff --git a/seminar/templates/seminar/clanky/resitelske_clanky.html b/seminar/templates/seminar/clanky/resitelske_clanky.html index 0b7edc70..610f9b25 100644 --- a/seminar/templates/seminar/clanky/resitelske_clanky.html +++ b/seminar/templates/seminar/clanky/resitelske_clanky.html @@ -19,18 +19,15 @@ {% if clanek.cislo.pdf %} {{ clanek.nazev }} - ({% for r in clanek.reseni_set.first.resitele.all %} - {{r}} - {% if not forloop.last %},{% endif %} - {% endfor %} + ({% for r in clanek.reseni_set.first.resitele.all %}{{r}}{% if not forloop.last %}, {% endif %}{% endfor %}) - ) + {% else %} {{ clanek.nazev }} - ({% for r in clanek.reseni_set.first.resitele.all %} + {% for r in clanek.reseni_set.first.resitele.all %} {{r}}, {% endfor %} - vyšlo v čísle {{clanek.cislo}}) + (vyšlo v čísle {{clanek.cislo}}) {% endif %} {% endwith %} diff --git a/seminar/templates/seminar/odevzdavatko/tabulka.html b/seminar/templates/seminar/odevzdavatko/tabulka.html index ff396ce4..26a6f922 100644 --- a/seminar/templates/seminar/odevzdavatko/tabulka.html +++ b/seminar/templates/seminar/odevzdavatko/tabulka.html @@ -4,6 +4,14 @@ {% block content %} + +{# Prázdná buňka v levém horním rohu #} diff --git a/seminar/templates/seminar/zadani/AktualniVysledkovka.html b/seminar/templates/seminar/zadani/AktualniVysledkovka.html index 387ad949..ed89c87c 100644 --- a/seminar/templates/seminar/zadani/AktualniVysledkovka.html +++ b/seminar/templates/seminar/zadani/AktualniVysledkovka.html @@ -5,11 +5,11 @@ |