diff --git a/.gitignore b/.gitignore index 36b0b565..05e728bd 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,9 @@ TODO # .htpasswd kvůli přihlášení .htpasswd + +# reversion kvůli historii objektů v reversion +**/reversion + +# pro lidi, co programují v nástrojích od JetBrains +.idea \ No newline at end of file diff --git a/flat.json b/data/flat.json similarity index 99% rename from flat.json rename to data/flat.json index 8adde103..f127d671 100644 --- a/flat.json +++ b/data/flat.json @@ -260,7 +260,7 @@ "fields": { "url": "/co-je-MaM/kontakt/", "title": "Kontakt", - "content": "

Sv\u00e1 \u0159e\u0161en\u00ed \u010di p\u0159\u00edpadn\u00e9 dotazy n\u00e1m m\u016f\u017eete pos\u00edlat bu\u010f klasickou, nebo elektronickou po\u0161tou:

\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n
\r\n\t\t\t

Adresa redakce:

\r\n\r\n\t\t\t

M&M, OPMK MFF UK
\r\n\t\t\tKe Karlovu 3
\r\n\t\t\t121 16 Praha 2

\r\n\t\t\t
\r\n\t\t\t

E-mailmam@matfyz.cz

\r\n\r\n\t\t\t

Facebook: Koresponden\u010dn\u00ed semin\u00e1\u0159 M&M

\r\n\r\n\t\t\t

Google Kalend\u00e1\u0159: casopis.mam@gmail.com

\r\n\t\t\t
\r\n\r\n

 

\r\n\r\n

B\u011bhem \u0161koln\u00edho roku je velk\u00e1 \u010d\u00e1st organiz\u00e1tor\u016f k zasti\u017een\u00ed na koleji 17. listopadu \u010di jinde po Praze.

\r\n\r\n

Adresa koleje:

\r\n\r\n

P\u00e1tkova 3
\r\n182 00, Praha 8

", + "content": "

Sv\u00e1 \u0159e\u0161en\u00ed \u010di p\u0159\u00edpadn\u00e9 dotazy n\u00e1m m\u016f\u017eete pos\u00edlat bu\u010f klasickou, nebo elektronickou po\u0161tou:

\r\n\r\n

Adresa redakce:

\r\n\r\n

M&M, OPMK MFF UK
\r\nKe Karlovu 3
\r\n121 16 Praha 2

\r\n\r\n

E-mail: mam@matfyz.cz

\r\n\r\n

 

\r\n\r\n

Facebook: Koresponden\u010dn\u00ed semin\u00e1\u0159 M&M

\r\n\r\n

Google Kalend\u00e1\u0159: casopis.mam@gmail.com

\r\n\r\n

 

\r\n\r\n

B\u011bhem \u0161koln\u00edho roku je velk\u00e1 \u010d\u00e1st organiz\u00e1tor\u016f k zasti\u017een\u00ed na koleji 17. listopadu \u010di jinde po Praze.

\r\n\r\n

Adresa koleje:

\r\n\r\n

P\u00e1tkova 3
\r\n182 00, Praha 8

", "enable_comments": false, "template_name": "", "registration_required": false, diff --git a/data/fotka_header.json b/data/fotka_header.json new file mode 100644 index 00000000..065c378a --- /dev/null +++ b/data/fotka_header.json @@ -0,0 +1,207 @@ +[ +{ + "model": "header_fotky.fotkaheader", + "pk": "baliky.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/baliky.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "beh.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/beh.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "kryptografie.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/kryptografie.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "mam_cernobile.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/mam_cernobile.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "noc.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/noc.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "ohen.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/ohen.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "snih.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/snih.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "spolecna.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/spolecna.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "stiny.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/stiny.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "vikendovka.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/vikendovka.jpg" + } +}, +{ + "model": "header_fotky.fotkaheader", + "pk": "vylet.jpg", + "fields": { + "cas": "2020-09-20T09:18:34.562Z", + "fotka": "header/vylet.jpg" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 1, + "fields": { + "url": "/archiv/", + "fotka": "stiny.jpg", + "denni_doba": "oboji" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 2, + "fields": { + "url": "/clanky/", + "fotka": "kryptografie.jpg", + "denni_doba": "den" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 3, + "fields": { + "url": "/clanky/", + "fotka": "ohen.jpg", + "denni_doba": "noc" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 4, + "fields": { + "url": "/zadani/", + "fotka": "baliky.jpg", + "denni_doba": "den" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 5, + "fields": { + "url": "/zadani/", + "fotka": "stiny.jpg", + "denni_doba": "noc" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 6, + "fields": { + "url": "/co-je-MaM/", + "fotka": "vikendovka.jpg", + "denni_doba": "den" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 7, + "fields": { + "url": "/co-je-MaM/", + "fotka": "noc.jpg", + "denni_doba": "noc" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 8, + "fields": { + "url": "/soustredeni/", + "fotka": "beh.jpg", + "denni_doba": "den" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 9, + "fields": { + "url": "/soustredeni/", + "fotka": "vylet.jpg", + "denni_doba": "noc" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 10, + "fields": { + "url": "/login/", + "fotka": "baliky.jpg", + "denni_doba": "den" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 11, + "fields": { + "url": "/login/", + "fotka": "stiny.jpg", + "denni_doba": "noc" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 12, + "fields": { + "url": "/profil/", + "fotka": "baliky.jpg", + "denni_doba": "den" + } +}, +{ + "model": "header_fotky.fotkaurlvazba", + "pk": 13, + "fields": { + "url": "/profil/", + "fotka": "stiny.jpg", + "denni_doba": "noc" + } +} +] \ No newline at end of file diff --git a/data/sitetree_new.json b/data/sitetree_new.json new file mode 100644 index 00000000..f0eb3a9c --- /dev/null +++ b/data/sitetree_new.json @@ -0,0 +1 @@ +[{"model": "sitetree.tree", "pk": 1, "fields": {"title": "Hlavn\u00ed menu", "alias": "main_menu"}}, {"model": "sitetree.treeitem", "pk": 1, "fields": {"title": "Co je M&M", "hint": "", "url": "/co-je-MaM/uvod/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": null, "sort_order": 1, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 2, "fields": {"title": "Jak \u0159e\u0161it", "hint": "", "url": "/jak-resit/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": null, "sort_order": 2, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 3, "fields": {"title": "Aktu\u00e1ln\u00ed
ro\u010dn\u00edk", "hint": "", "url": "/zadani/aktualni/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": null, "sort_order": 3, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 4, "fields": {"title": "Soust\u0159ed\u011bn\u00ed", "hint": "", "url": "/soustredeni/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": null, "sort_order": 4, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 5, "fields": {"title": "Archiv", "hint": "", "url": "/archiv/rocniky/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": null, "sort_order": 5, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 6, "fields": {"title": "P\u0159ihl\u00e1sit", "hint": "", "url": "/login/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": true, "access_restricted": false, "access_perm_type": 1, "parent": null, "sort_order": 6, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 7, "fields": {"title": "\u00davod", "hint": "", "url": "/co-je-MaM/uvod/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 1, "sort_order": 7, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 8, "fields": {"title": "Organiz\u00e1to\u0159i", "hint": "", "url": "/co-je-MaM/organizatori/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 1, "sort_order": 8, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 9, "fields": {"title": "FAQ", "hint": "", "url": "/co-je-MaM/FAQ/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 1, "sort_order": 9, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 10, "fields": {"title": "Kontakt", "hint": "", "url": "/co-je-MaM/kontakt/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 1, "sort_order": 10, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 11, "fields": {"title": "T\u00e9mata", "hint": "", "url": "/jak-resit/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 2, "sort_order": 11, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 12, "fields": {"title": "Jak ps\u00e1t p\u0159\u00edsp\u011bvek", "hint": "", "url": "/jak-resit/jak-psat-prispevek/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 2, "sort_order": 12, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 13, "fields": {"title": "Odm\u011bny", "hint": "", "url": "/co-je-MaM/odmeny/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 2, "sort_order": 13, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 16, "fields": {"title": "V\u00fdsledkov\u00e1 listina", "hint": "", "url": "zadani/vysledkova-listina/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 3, "sort_order": 33, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 17, "fields": {"title": "\u010cl\u00e1nky", "hint": "", "url": "/clanky/resitel/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 3, "sort_order": 34, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 18, "fields": {"title": "\u00davod", "hint": "", "url": "/soustredeni/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 4, "sort_order": 18, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 19, "fields": {"title": "P\u0159ipravujeme", "hint": "", "url": "/soustredeni/pripravujeme/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 4, "sort_order": 19, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 20, "fields": {"title": "Prob\u011bhlo", "hint": "", "url": "/soustredeni/probehlo/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 4, "sort_order": 20, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 21, "fields": {"title": "Profil", "hint": "", "url": "/profil/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": true, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": null, "sort_order": 21, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 22, "fields": {"title": "Osobn\u00ed \u00fadaje", "hint": "", "url": "/profil/osobni-udaje", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 21, "sort_order": 23, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 23, "fields": {"title": "Poslat \u0159e\u0161en\u00ed", "hint": "", "url": "/odeslat-reseni/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 21, "sort_order": 36, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 24, "fields": {"title": "T\u00e9mata", "hint": "", "url": "/archiv/temata/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 5, "sort_order": 35, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 28, "fields": {"title": "HIDDEN", "hint": "", "url": "/korektury/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": true, "access_perm_type": 1, "parent": null, "sort_order": 28, "access_permissions": [1]}}, {"model": "sitetree.treeitem", "pk": 30, "fields": {"title": "Aktu\u00e1ln\u00ed", "hint": "", "url": "/korektury/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 28, "sort_order": 30, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 31, "fields": {"title": "Zastaral\u00e9", "hint": "", "url": "/korektury/zastarale/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 28, "sort_order": 31, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 32, "fields": {"title": "N\u00e1pov\u011bda", "hint": "", "url": "/korektury/help/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 28, "sort_order": 32, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 33, "fields": {"title": "Aktu\u00e1ln\u00ed \u010d\u00edslo", "hint": "", "url": "/zadani/aktualni/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 3, "sort_order": 15, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 34, "fields": {"title": "T\u00e9mata", "hint": "", "url": "/zadani/temata/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 3, "sort_order": 17, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 35, "fields": {"title": "\u010c\u00edsla", "hint": "", "url": "/archiv/rocniky/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 5, "sort_order": 24, "access_permissions": []}}, {"model": "sitetree.treeitem", "pk": 36, "fields": {"title": "\u00davod", "hint": "", "url": "/profil/", "urlaspattern": false, "tree": 1, "hidden": false, "alias": null, "description": "", "inmenu": true, "inbreadcrumbs": true, "insitetree": true, "access_loggedin": false, "access_guest": false, "access_restricted": false, "access_perm_type": 1, "parent": 21, "sort_order": 22, "access_permissions": []}}] \ No newline at end of file diff --git a/galerie/templates/galerie/Base.html b/galerie/templates/galerie/Base.html deleted file mode 100644 index 61f96eb4..00000000 --- a/galerie/templates/galerie/Base.html +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "base.html" %} - -{# TODO predelat pres context processor #} -{% block header %}soustredeni{% endblock %} -{% block menu_soustredeni %}selected{% endblock %} -{% block submenu %}{% include 'seminar/soustredeni/submenu.html' %}{% endblock %} diff --git a/galerie/templates/galerie/Galerie.html b/galerie/templates/galerie/Galerie.html index c23c6c42..b2dfe994 100644 --- a/galerie/templates/galerie/Galerie.html +++ b/galerie/templates/galerie/Galerie.html @@ -1,4 +1,4 @@ -{% extends "galerie/Base.html" %} +{% extends "base.html" %} {% block nadpis1a %} diff --git a/galerie/templates/galerie/GalerieNahled.html b/galerie/templates/galerie/GalerieNahled.html index 7d9313fc..ec0d5f67 100644 --- a/galerie/templates/galerie/GalerieNahled.html +++ b/galerie/templates/galerie/GalerieNahled.html @@ -1,4 +1,4 @@ -{% extends "galerie/Base.html" %} +{% extends "base.html" %} {% block nadpis1a %} Galerie {{galerie.nazev}} @@ -61,7 +61,7 @@ Galerie {{galerie.nazev}} {{ galerie|truncatechars:max_delka_nazvu }} - {% if user.is_staff and galerie.zobrazit > 0 %} + {% if user.je_org and galerie.zobrazit > 0 %}
({{galerie.poradi}}) + @@ -73,7 +73,7 @@ Galerie {{galerie.nazev}} {% endwith %} {% endif %} {% endif %} - {% if user.is_staff and galerie.zobrazit > 0 %} + {% if user.je_org and galerie.zobrazit > 0 %}
Vytvořit novou podgalerii
diff --git a/galerie/templates/galerie/GalerieNew.html b/galerie/templates/galerie/GalerieNew.html index 38237d86..2da23ece 100644 --- a/galerie/templates/galerie/GalerieNew.html +++ b/galerie/templates/galerie/GalerieNew.html @@ -1,4 +1,4 @@ -{% extends "galerie/Base.html" %} +{% extends "base.html" %} {% block title %}{% block nadpis1a %} Vytvářím novou galerii diff --git a/galerie/urls.py b/galerie/urls.py index 4d1e8f24..d299165f 100644 --- a/galerie/urls.py +++ b/galerie/urls.py @@ -1,13 +1,14 @@ # coding: utf-8 from django.urls import path +from seminar.utils import org_required from . import views urlpatterns = [ path('/', views.nahled), path('//', views.detail), - path('/new/', views.new_galerie), - path('/plus//', views.plus_galerie), - path('/minus//', views.minus_galerie), + path('/new/', org_required(views.new_galerie)), + path('/plus//', org_required(views.plus_galerie)), + path('/minus//', org_required(views.minus_galerie)), ] diff --git a/galerie/views.py b/galerie/views.py index d23e79f1..4570b8fb 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -14,7 +14,7 @@ from galerie.forms import KomentarForm, NewGalerieForm def zobrazit(galerie, request): preview = False if galerie.zobrazit >= 1: - if request.user.is_staff: + if request.user.je_org: preview = True; else: raise Http404 @@ -35,7 +35,7 @@ def nahled(request, pk, soustredeni): galerie = get_object_or_404(Galerie, pk=pk) podgalerie = Galerie.objects.filter(galerie_up = galerie).order_by('poradi') - if not request.user.is_staff: + if not request.user.je_org: podgalerie = podgalerie.filter(zobrazit__lt=1) obrazky = Obrazek.objects.filter(galerie = galerie).order_by('poradi', 'nazev') @@ -44,7 +44,7 @@ def nahled(request, pk, soustredeni): sourozenci = [] if galerie.galerie_up: sourozenci = galerie.galerie_up.galerie_set.all().order_by('poradi') - if not request.user.is_staff: + if not request.user.je_org: sourozenci = sourozenci.filter(zobrazit__lt=1) predchozi = None diff --git a/header_fotky/__init__.py b/header_fotky/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/header_fotky/admin.py b/header_fotky/admin.py new file mode 100644 index 00000000..35d3427b --- /dev/null +++ b/header_fotky/admin.py @@ -0,0 +1,10 @@ +from django.contrib import admin +from django.contrib.admin import ModelAdmin +import header_fotky.models as m + + +class FotkaPozadiAdmin(ModelAdmin): + readonly_fields = ['cas'] + +admin.site.register(m.FotkaHeader, FotkaPozadiAdmin) +admin.site.register(m.FotkaUrlVazba) \ No newline at end of file diff --git a/header_fotky/apps.py b/header_fotky/apps.py new file mode 100644 index 00000000..084aa955 --- /dev/null +++ b/header_fotky/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class HeaderFotkyConfig(AppConfig): + name = 'header_fotky' diff --git a/header_fotky/context_processors.py b/header_fotky/context_processors.py new file mode 100644 index 00000000..be259cbf --- /dev/null +++ b/header_fotky/context_processors.py @@ -0,0 +1,45 @@ + +from datetime import datetime, date +import random + +from django.conf import settings + +from header_fotky.models import FotkaUrlVazba + + +def vzhled(request): + ''' Podle casu prida do templatu, zdali je nebo neni noc ''' + hodin = datetime.now().hour + if (hodin <= 6) or (hodin >= 20): + noc = True + nedoba = 'den' + doba = 'noc' + else: + noc = False + nedoba = 'noc' + doba = 'den' + url = request.path + + fotky = FotkaUrlVazba.objects.exclude(denni_doba=nedoba) + fotka = None + + # TODO rychlejší patternmatch? + while (fotka is None) and (url != ''): + presne = fotky.filter(url__exact=url) + if presne.count() > 0: + presne_doba = presne.filter(denni_doba=doba) + if presne_doba.count() > 0: + fotka = random.choice(presne_doba).url_fotky() + else: + fotka = random.choice(presne).url_fotky() + + url = url[:-1] + index = url.rfind('/') + if index != -1: + url = url[:index+1] + + if fotka is None: + fotka = settings.STATIC_URL + "images/header/vikendovka.jpg" + + return {'noc': noc, 'fotka': fotka} + diff --git a/header_fotky/migrations/0001_initial.py b/header_fotky/migrations/0001_initial.py new file mode 100644 index 00000000..4b90d0c6 --- /dev/null +++ b/header_fotky/migrations/0001_initial.py @@ -0,0 +1,63 @@ +# Generated by Django 2.2.15 on 2020-09-20 09:14 + +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + +from shutil import copytree + + +def zkopiruj_fotky(apps, schema_editor): + try: + copytree("mamweb/static/images/header/", "media/header/") # FIXME: bylo tu dirs_exists_ok=True, nekompatibilní s Py 3.7 + except FileExistsError: + pass + + +class Migration(migrations.Migration): + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='FotkaHeader', + fields=[ + ('cas', models.DateTimeField(default=django.utils.timezone.now, help_text='Čas vložení fotky', + verbose_name='čas vložení fotky')), + ('nazev', + models.CharField(help_text='Název např. archiv_noc', max_length=50, primary_key=True, serialize=False, + unique=True, verbose_name='název fotky')), + ('fotka', models.ImageField(upload_to='header')), + ], + options={ + 'verbose_name': 'fotka do pozadí menu', + 'verbose_name_plural': 'fotky do pozadí menu', + 'db_table': 'fotky_header', + 'ordering': ['-cas'], + }, + ), + migrations.CreateModel( + name='FotkaUrlVazba', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('url', + models.CharField(blank=True, help_text='url prefix stránek např: /archiv/ nebo /', max_length=100, + verbose_name='URL')), + ('denni_doba', models.CharField(choices=[('den', 'Zobrazit jen ve dne'), ('noc', 'Zobrazit jen v noci'), + ('oboji', 'Zobrazovat pořád')], default='oboji', max_length=16, + verbose_name='denní doba')), + ('fotka', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='header_fotky.FotkaHeader', + verbose_name='fotka')), + ], + options={ + 'verbose_name': 'vazba url a fotky do pozadí menu', + 'verbose_name_plural': 'vazby url a fotek do pozadí menu', + 'db_table': 'fotky_url_vazby', + 'ordering': ['url'], + }, + + ), + migrations.RunPython(zkopiruj_fotky, migrations.RunPython.noop), + ] diff --git a/header_fotky/migrations/__init__.py b/header_fotky/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/header_fotky/models.py b/header_fotky/models.py new file mode 100644 index 00000000..481a652c --- /dev/null +++ b/header_fotky/models.py @@ -0,0 +1,65 @@ +from django.core.exceptions import ValidationError +from django.db import models +from django.utils import timezone + + +class FotkaHeader(models.Model): + class Meta: + ordering = ['-cas'] + db_table = 'fotky_header' + verbose_name = u'fotka do pozadí menu' + verbose_name_plural = u'fotky do pozadí menu' + + cas = models.DateTimeField(u'čas vložení fotky', default=timezone.now, help_text='Čas vložení fotky') + + nazev = models.CharField( + u'název fotky', null=False, blank=False, unique=True, primary_key=True, + max_length=50, help_text='Název např. archiv_noc' + ) + + fotka = models.ImageField(upload_to='header', null=False, blank=False) + + def __str__(self): + return self.nazev + + def clean(self): + if not self.fotka: + raise ValidationError("Chybí obrázek") + """ Kontroluje, zda sedí poměr stran """ + if abs(self.fotka.width - (self.fotka.height * 970 / 350)) > 2: + raise ValidationError("Obrázek by měl mít rozměry 970w na 350h, nebo alespoň podobný poměr stran.") + super().clean() + + +class FotkaUrlVazba(models.Model): + class Meta: + ordering = ['url'] + db_table = 'fotky_url_vazby' + verbose_name = u'vazba url a fotky do pozadí menu' + verbose_name_plural = u'vazby url a fotek do pozadí menu' + + url = models.CharField( + u'URL', blank=True, null=False, max_length=100, + help_text='url prefix stránek např: /archiv/ nebo /' + ) + + fotka = models.ForeignKey( + FotkaHeader, blank=False, null=False, verbose_name='fotka', + on_delete=models.CASCADE + ) + + DOBA_DEN = 'den' + DOBA_NOC = 'noc' + DOBA_OBOJI = 'oboji' + DOBA_CHOICES = [ + (DOBA_DEN, 'Zobrazit jen ve dne'), + (DOBA_NOC, 'Zobrazit jen v noci'), + (DOBA_OBOJI, 'Zobrazovat pořád')] + + denni_doba = models.CharField('denní doba', max_length=16, choices=DOBA_CHOICES, blank=False, default=DOBA_OBOJI) + + def __str__(self): + return self.url + + def url_fotky(self): + return self.fotka.fotka.url diff --git a/korektury/models.py b/korektury/models.py index 88c1a5e6..37213172 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -103,7 +103,7 @@ class KorekturovanePDF(models.Model): # Změnil se počet stran, ukládáme super(KorekturovanePDF, self).save() - def save(self): + def save(self, **kwargs): # Pokud se nezmenilo PDF, tak nepregenerovavej nahledy try: original = KorekturovanePDF.objects.get(pk=self.pk) @@ -113,7 +113,7 @@ class KorekturovanePDF(models.Model): except ObjectDoesNotExist: pass # uložíme nahrávané pdf - super(KorekturovanePDF, self).save() + super(KorekturovanePDF, self).save(kwargs) # uložíme png a změněný počet stran self.convert() diff --git a/korektury/templates/korektury/base.html b/korektury/templates/korektury/base.html deleted file mode 100644 index 886a15e1..00000000 --- a/korektury/templates/korektury/base.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends "base.html" %} - -{% block submenu %} - {% include "korektury/submenu.html" %} -{% endblock %} - -{% block content %} -{# blok do kterého se nacita text, v pripade jinyhc templatu obalit vlastnim blokem #} -{% endblock %} - -{% block title %} -{# blok pro titulek stranky #} -{% endblock %} diff --git a/korektury/templates/korektury/help.html b/korektury/templates/korektury/help.html index f2ddafb9..3cce7a4f 100644 --- a/korektury/templates/korektury/help.html +++ b/korektury/templates/korektury/help.html @@ -1,10 +1,4 @@ -{% extends "korektury/base.html" %} - -{% block submenu %} - {% with "help" as selected %} - {% include "korektury/submenu.html" %} - {% endwith %} -{% endblock %} +{% extends "base.html" %} {% load staticfiles %} diff --git a/korektury/templates/korektury/opraf.html b/korektury/templates/korektury/opraf.html index ba8898a6..00c81c2d 100644 --- a/korektury/templates/korektury/opraf.html +++ b/korektury/templates/korektury/opraf.html @@ -36,12 +36,12 @@ id="neni_chyba_checkbox" name="neni_chyba_checkbox" onchange="toggle_corrections('neni_chyba')" checked> -
+
-

Korespondenční seminář M&M organizují převážně studenti MFF UK. Organizaci semináře a vydávání časopisu podporuje Jednota českých matematiků a fyziků. S obsahem webu M&M je možné nakládat dle licence Creative Commons Attribution 3.0.

+

Korespondenční seminář M&M organizují převážně studenti MFF UK. Organizaci semináře a vydávání časopisu podporuje Jednota českých matematiků a fyziků. S obsahem webu M&M je možné nakládat dle licence Creative Commons Attribution 3.0.

+ diff --git a/mamweb/templates/flatpages/default.html b/mamweb/templates/flatpages/default.html index b5d2d24d..0a26ca27 100644 --- a/mamweb/templates/flatpages/default.html +++ b/mamweb/templates/flatpages/default.html @@ -8,106 +8,4 @@
{{ flatpage.content }}
-{% endblock content %} - -{# nahraj spravne submenu #} -{% block submenu %} - {# co-je-MaM #} - {% if "/co-je-MaM/" in flatpage.url %} - {% if "/uvod/" in flatpage.url %} - {% with "uvod" as selected %} - {% include "seminar/cojemam/submenu.html" %} - {% endwith %} - {% elif "jak-resit" in flatpage.url %} - {% with "jak-resit" as selected %} - {% include "seminar/cojemam/submenu.html" %} - {% endwith %} - {% elif "odmeny" in flatpage.url %} - {% with "odmeny" as selected %} - {% include "seminar/cojemam/submenu.html" %} - {% endwith %} - {% elif "FAQ" in flatpage.url %} - {% with "FAQ" as selected %} - {% include "seminar/cojemam/submenu.html" %} - {% endwith %} - {% elif "kontakt" in flatpage.url %} - {% else %} - {% include "seminar/cojemam/submenu.html" %} - {% endif %} - {% endif %} - {# soustredeni #} - {% if "/soustredeni/" in flatpage.url %} - {% if "/pripravujeme/" in flatpage.url %} - {% with "pripravujeme" as selected %} - {% include "seminar/soustredeni/submenu.html" %} - {% endwith %} - {% else %} - {% with "uvod" as selected %} - {% include "seminar/soustredeni/submenu.html" %} - {% endwith %} - {% endif %} - {% endif %} - {# zadani #} - {% if "/zadani/" in flatpage.url %} - {% if "/aktualni-cislo/" in flatpage.url %} - {% with "aktualni-cislo" as selected %} - {% include "seminar/zadani/submenu.html" %} - {% endwith %} - {% elif "/vysledkova-listina/" in flatpage.url %} - {% with "vysledkova-listina" as selected %} - {% include "seminar/zadani/submenu.html" %} - {% endwith %} - {% else %} - {% include "seminar/zadani/submenu.html" %} - {% endif %} - {% endif %} - {# clanky #} - {% if "/clanky/" in flatpage.url %} - {% if "/uvod/" in flatpage.url %} - {% with "uvod" as selected %} - {% include "seminar/clanky/submenu.html" %} - {% endwith %} - {% elif "/org/" in flatpage.url %} - {% with "org" as selected %} - {% include "seminar/clanky/submenu.html" %} - {% endwith %} - {% elif "/resitel/" in flatpage.url %} - {% with "resitel" as selected %} - {% include "seminar/clanky/submenu.html" %} - {% endwith %} - {% elif "/jak-psat-vedecky-clanek/" in flatpage.url %} - {% with "jak-psat-vedecky-clanek" as selected %} - {% include "seminar/clanky/submenu.html" %} - {% endwith %} - {% else %} - {% include "seminar/clanky/submenu.html" %} - {% endif %} - {% endif %} - {# archiv #} - {% if "/archiv/" in flatpage.url %} - {% if "/ulohy/" in flatpage.url %} - {% with "ulohy" as selected %} - {% include "seminar/archiv/submenu.html" %} - {% endwith %} - {% elif "/vysledky/" in flatpage.url %} - {% with "vysledky" as selected %} - {% include "seminar/archiv/submenu.html" %} - {% endwith %} - {% else %} - {% include "seminar/archiv/submenu.html" %} - {% endif %} - {% endif %} -{% endblock %} - -{# zvirazneni menu #} -{% block menu_uvod %}{% if not "/kontakt/" in flatpage.url %}{% if "/co-je-MaM/" in flatpage.url %}selected{% endif %}{% endif %}{% endblock %} -{% block menu_soustredeni %}{% if "/soustredeni/" in flatpage.url %}selected{% endif %}{% endblock %} -{% block menu_zadani %}{% if "/zadani/" in flatpage.url %}selected{% endif %}{% endblock %} -{% block menu_clanky %}{% if "/clanky/" in flatpage.url %}selected{% endif %}{% endblock %} -{% block menu_archiv %}{% if "/archiv/" in flatpage.url %}selected{% endif %}{% endblock %} -{% block menu_odevzdat %}{% if "/kontakt/" in flatpage.url %}selected{% endif %}{% endblock %} - -{# zmena titulniho obrazku #} -{% block header %}{% if "/co-je-MaM/" in flatpage.url %}cojemam{% elif "/soustredeni/" in flatpage.url %}soustredeni{% elif "/zadani/" in flatpage.url %}zadani{% elif "/clanky/" in flatpage.url %}clanky{% elif "/archiv/" in flatpage.url %}archiv{% else %}odeslat{% endif %}{% endblock header %} - -{# TODO zvirazneni submenu #} +{% endblock content %} \ No newline at end of file diff --git a/mamweb/templates/logo.html b/mamweb/templates/logo.html new file mode 100644 index 00000000..c5113d0c --- /dev/null +++ b/mamweb/templates/logo.html @@ -0,0 +1,26 @@ +{% load staticfiles %} + \ No newline at end of file diff --git a/mamweb/templates/menu.html b/mamweb/templates/menu.html index c7c0e8f5..e948785a 100644 --- a/mamweb/templates/menu.html +++ b/mamweb/templates/menu.html @@ -3,7 +3,9 @@ {% autoescape off %}