Skip to content
Snippets Groups Projects
Commit 157f5b41 authored by Martin Mareš's avatar Martin Mareš
Browse files

Odkazy na dokumentaci se zobrazují v závislosti na roli uživatele

Samotná dokumentace je dostupná všem, není v ní nic tajného.
Jen nechceme uživatele mást.
parent 91e3be32
No related branches found
No related tags found
No related merge requests found
# Web: Návody
from flask import render_template
from dataclasses import dataclass
from flask import render_template, g
from typing import List, Optional
import mo.db as db
from mo.rights import Right
from mo.web import app
@dataclass
class Doc:
url: str
link_text: str
suffix: Optional[str] = None
min_role: Optional[db.RoleType] = None
cat: Optional[str] = None
def is_visible(self) -> bool:
if self.min_role is None and self.cat is None:
return True
assert g.gatekeeper is not None
rights = g.gatekeeper.rights_for(cat=self.cat, min_role=self.min_role)
return rights.have_right(Right.view_doc)
@app.route('/doc/')
def doc_index():
return render_template('doc_index.html')
def filter_doc(docs: List[Doc]) -> List[Doc]:
return [d for d in docs if d.is_visible()]
return render_template('doc_index.html', Doc=Doc, filter_doc=filter_doc)
@app.route('/doc/organizatori')
......
......@@ -10,19 +10,57 @@
{% if g.user.is_org or g.user.is_admin %}
{% set docs = filter_doc([
Doc(
min_role=RoleType.garant_okres,
url='https://docs.google.com/document/d/1nHnvxj_XtnMD2loMtTeoMEbVa4Upd4pEVkXoEKklRY8/edit?usp=sharing',
link_text='Podrobnější návod pro okresní garanty',
),
Doc(
min_role=RoleType.garant_okres,
cat='A',
url=url_for('static', filename='doc/zakladani-skolnich-garantu.pdf'),
link_text='Zakládání školních garantů',
suffix=' (návod pro okresní a krajské garanty, PDF)'
),
Doc(
min_role=RoleType.garant_skola,
cat='A',
url='https://docs.google.com/document/d/1ghoLETZyykzk-GjU2SrMhVqpvMugg9ed4g0TQwfeqUM/edit?usp=sharing',
link_text='Podrobnější návod pro školní garanty středních škol',
),
Doc(
min_role=RoleType.garant_skola,
cat='Z',
url='https://docs.google.com/document/d/1OaX8kCcIkk0hK113n0C9SdZV8hMn2Btb2E6J0bshB3c/edit?usp=sharing',
link_text='Podrobnější návod pro školní garanty základních škol',
),
Doc(
url=url_for('doc_import'),
link_text='Importování',
),
Doc(
url=url_for('static', filename='doc/import-navod.pdf'),
link_text='Podrobnější návod k importům',
suffix=' (PDF)'
),
Doc(
min_role=RoleType.garant_okres,
url=url_for('static', filename='doc/import-skolnich-garantu.pdf'),
link_text='Import školních garantů',
suffix=' (PDF)'
),
]) %}
<h3>Pro organizátory</h3>
<ul>
<li><a href='{{ url_for('doc_org') }}'>Obecný popis systému pro organizátory</a>
<li><a href='{{ url_for('static', filename='doc/zakladani-skolnich-garantu.pdf') }}'>Zakládání školních garantů</a> (návod pro okresní a krajské garanty, PDF)
<li><a href='{{ url_for('static', filename='doc/prace-s-protokoly.pdf') }}'>Tisk a skenování protokolů</a> (PDF)
{# <li><a href='{{ url_for('static', filename='doc/skolni-garanti.pdf') }}'>Podrobnější návod pro školní garanty středních škol</a> (PDF) <em>(zastaralý, bude aktualizován)</em> #}
<li><a href='https://docs.google.com/document/d/1ghoLETZyykzk-GjU2SrMhVqpvMugg9ed4g0TQwfeqUM/edit?usp=sharing'>Podrobnější návod pro školní garanty středních škol</a>
<li><a href='https://docs.google.com/document/d/1OaX8kCcIkk0hK113n0C9SdZV8hMn2Btb2E6J0bshB3c/edit?usp=sharing'>Podrobnější návod pro školní garanty základních škol</a>
<li><a href='https://docs.google.com/document/d/1nHnvxj_XtnMD2loMtTeoMEbVa4Upd4pEVkXoEKklRY8/edit?usp=sharing'>Podrobnější návod pro okresní garanty</a>
<li><a href='{{ url_for('doc_import') }}'>Importování</a>
<li><a href='{{ url_for('static', filename='doc/import-navod.pdf') }}'>Podrobnější návod k importům</a> (PDF)
<li><a href='{{ url_for('static', filename='doc/import-skolnich-garantu.pdf') }}'>Import školních garantů</a> (PDF)
{% for d in docs %}
<li><a href='{{ d.url }}'>{{ d.link_text }}</a>{{ d.suffix|none_value("") }}
{% endfor %}
</ul>
<h3>Exporty</h3>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment