Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • devel
  • fo
  • fo-base
  • honza/add-contestant
  • honza/kolo-vs-soutez
  • honza/mr6
  • honza/mr7
  • honza/mra
  • honza/mrd
  • honza/mrf
  • honza/submit-images
  • jh-stress-test-wip
  • jirka/typing
  • jk/issue-196
  • jk/issue-96
  • master
  • mj/submit-images
  • shorten-schools
18 results

Target

Select target project
  • mj/mo-submit
1 result
Select Git revision
  • devel
  • fo
  • fo-base
  • honza/add-contestant
  • honza/kolo-vs-soutez
  • honza/mr6
  • honza/mr7
  • honza/mra
  • honza/mrd
  • honza/mrf
  • honza/submit-images
  • jh-stress-test-wip
  • jirka/typing
  • jk/issue-196
  • jk/issue-96
  • master
  • mj/submit-images
  • shorten-schools
18 results
Show changes
Showing
with 652 additions and 517 deletions
......@@ -13,6 +13,7 @@ import mo.imports
import mo.rights
import mo.util
from mo.web import app
import mo.web.fields as mo_fields
import wtforms.validators as validators
......@@ -80,8 +81,8 @@ class PlaceSchoolEditForm(PlaceEditForm):
def place_breadcrumbs(place: db.Place, action: Optional[str] = None) -> Markup:
elements = []
parents: List[db.Place] = reversed(g.gatekeeper.get_parents(place))
for parent in parents:
ancestors: List[db.Place] = g.gatekeeper.get_ancestors(place)
for parent in ancestors:
elements.append((url_for('org_place', id=parent.place_id), parent.name))
if action:
elements.append(('', action))
......@@ -177,14 +178,14 @@ def org_place_edit(id: int):
class PlaceMoveForm(FlaskForm):
code = wtforms.StringField(validators=[validators.DataRequired()], render_kw={'autofocus': True})
new_parent = mo_fields.Place(validators=[validators.DataRequired()], render_kw={'autofocus': True})
submit = wtforms.SubmitField('Najít místo')
reset = wtforms.HiddenField()
move = wtforms.HiddenField()
class PlaceMoveConfirmForm(FlaskForm):
code = wtforms.HiddenField()
new_parent = mo_fields.Place(widget = wtforms.widgets.HiddenInput())
reset = wtforms.SubmitField('Zrušit')
move = wtforms.SubmitField('Přesunout')
......@@ -206,15 +207,15 @@ def org_place_move(id: int):
form = PlaceMoveForm()
form_confirm = None
if form.validate_on_submit():
if not form.validate_on_submit():
if form.new_parent.place_error:
search_error = form.new_parent.place_error
else:
if form.reset.data:
return redirect(url_for('org_place_move', id=id))
new_parent = db.get_place_by_code(form.code.data)
if not new_parent:
search_error = 'Místo s tímto kódem se nepovedlo nalézt'
else:
new_parents = reversed(g.gatekeeper.get_parents(new_parent))
new_parent = form.new_parent.place
new_parents = g.gatekeeper.get_ancestors(new_parent)
(_, levels) = db.place_type_names_and_levels[place.type]
rr = g.gatekeeper.rights_for(new_parent)
......@@ -241,7 +242,9 @@ def org_place_move(id: int):
else:
# OK but not confirmed yet, display the confirm form
form_confirm = PlaceMoveConfirmForm()
form_confirm.code.data = form.code.data
form_confirm.new_parent.data = form.new_parent.data
# tady se používá hnusný trik, že políčko new_parents z PlaceMoveConfirmForm se
# parsuje jako new_parents z PlaceMoveForm
return render_template(
'org_place_move.html',
......@@ -367,7 +370,7 @@ def org_place_rights(id: int):
if not place:
raise werkzeug.exceptions.NotFound()
parent_ids = [p.place_id for p in g.gatekeeper.get_parents(place)]
parent_ids = [p.place_id for p in g.gatekeeper.get_ancestors(place)]
roles = (sess.query(db.UserRole)
.filter(db.UserRole.place_id.in_(parent_ids))
.options(joinedload(db.UserRole.user))
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -210,7 +210,7 @@ def cell_user_link(user: db.User, text: str) -> CellLink:
def cell_pion_link(user: db.User, contest_id: int, text: str) -> CellLink:
return CellLink(text, url_for('org_contest_user', contest_id=contest_id, user_id=user.user_id))
return CellLink(text, url_for('org_contest_user', ct_id=contest_id, user_id=user.user_id))
def cell_place_link(place: db.Place, text: str) -> CellLink:
......
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Aktivace nového účtu{% endblock %}
{% block body %}
{{ wtf.quick_form(form, form_type='horizontal', button_map={'submit': 'primary'}) }}
{% endblock %}
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Změna e-mailu{% endblock %}
{% block body %}
{{ wtf.quick_form(form, form_type='horizontal', button_map={'submit': 'primary'}) }}
{% endblock %}
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Založení účtu{% endblock %}
{% block body %}
<p>Nejprve vyplňte svou e-mailovou adresu, která také bude sloužit jako přihlašovací jméno.
Na ni vám pošleme ověřovací e-mail.
{{ wtf.quick_form(form, form_type='horizontal', button_map={'submit': 'primary'}) }}
{% endblock %}
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Založení účtu{% endblock %}
{% block body %}
{% if form %}
<p>S údaji o účtu budeme zacházet v souladu se <a href='{{ url_for('doc_gdpr') }}'>zásadami
zpracování osobních údajů</a>.
{{ wtf.quick_form(form, form_type='horizontal', button_map={'submit': 'primary'}) }}
{% else %}
<p>Počkejte prosím, až vám přijde e-mail a klikněte na odkaz v něm uvedený.
{% endif %}
{% endblock %}
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Nastavení nového hesla{% endblock %}
{% block body %}
{{ wtf.quick_form(form, form_type='horizontal', button_map={'submit': 'primary'}) }}
{{ wtf.quick_form(cancel_form, form_type='horizontal') }}
{% endblock %}
......@@ -12,6 +12,8 @@
<p>z <a href='https://www.mff.cuni.cz/'>Matematicko-fyzikální fakulty</a> <a href='https://www.cuni.cz/'>Univerzity Karlovy</a> v Praze.
MFF UK také děkujeme za poskytnutí serveru, kde systém běží.
<h3>Správce systému</h3>
<p>Veškeré připomínky k chodu systému a nápady na další rozvoj
prosím posílejte e-mailem na {{ config.MAIL_CONTACT|mailto }}.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -3,7 +3,7 @@
{% block title %}Editace soutěže {{ round.round_code() }}: {{ contest.place.name }}{% endblock %}
{% block breadcrumbs %}
{{ contest_breadcrumbs(round=round, contest=contest, action="Editace") }}
{{ ctx.breadcrumbs(action="Editace") }}
{% endblock %}
{% block body %}
......
This diff is collapsed.
This diff is collapsed.