Commit 932fde28 authored by Vladimír Štill's avatar Vladimír Štill
Browse files

evalweb: Reflow the templates

parent 985ce4a9
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>{% block title %}O vyhodnocovací službě{% endblock %}</h1> <h1>O vyhodnocovací službě</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<br> <br>
Webový front end nově implementované vyhodnocovací služby pro formální jazyky a automaty vznikl na Webový front end nově implementované vyhodnocovací služby pro formální jazyky a automaty vznikl na
Fakultě informatiky Masarykovy univerzity v rámci Fakultě informatiky Masarykovy univerzity v rámci
<a href="https://is.muni.cz/th/bwci5/">závěrečné práce</a> v roce 2020. <a href="https://is.muni.cz/th/bwci5/">závěrečné práce</a> v roce 2020.
<br> <br>
<br> <br>
Zdrojový kód: <a href="https://gitlab.fi.muni.cz/fja/eval/">GitLab</a> Zdrojový kód: <a href="https://gitlab.fi.muni.cz/fja/eval/">GitLab</a>
<br> <br>
<br> <br>
Kateřina Sloupová, autorka závěrečné práce<br> Kateřina Sloupová, autorka závěrečné práce<br>
Jan Strejček, vedoucí<br> Jan Strejček, vedoucí<br>
Vladimír Štill, konzultant Vladimír Štill, konzultant
{% endblock %} {% endblock %}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<html lang="cs"> <html lang="cs">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>FJA: Porovnávání a převody formalismů regulárních jazyků</title> <title>{% block title %}FJA: Porovnávání a převody formalismů regulárních jazyků{% endblock %}</title>
</head> </head>
<body> <body>
...@@ -16,22 +16,20 @@ ...@@ -16,22 +16,20 @@
</ul> </ul>
</nav> </nav>
<section class="content"> <section class="content">
<br> <br>
<label>Mód: </label> <label>Mód: </label>
<a href="{{ url_for('eval.compare') }}">Porovnání</a> <a href="{{ url_for('eval.compare') }}">Porovnání</a>
<a href="{{ url_for('eval.convert') }}">Převod</a> <a href="{{ url_for('eval.convert') }}">Převod</a>
<header> <header>
{% block header %}{% endblock %} {% block header %}{% endblock %}
</header> </header>
{% for message in get_flashed_messages() %} {% for message in get_flashed_messages() %}
<div class="flash">{{ message }}</div> <div class="flash">{{ message }}</div>
{% endfor %} {% endfor %}
{% block content %}{% endblock %} {% block content %}{% endblock %}
</section> </section>
</body> </body>
</html> </html>
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>{% block title %}Porovnání formalismů{% endblock %}</h1> <h1>Porovnání formalismů</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
<input type="submit" name="example_button" value="Vlož příklady ke zvoleným typům"> <input type="submit" name="example_button" value="Vlož příklady ke zvoleným typům">
<label for="teacher_string">Zadání</label> <label for="teacher_string">Zadání</label>
<div> <div>
<div style="width:400px; float:right;"> <div style="width:400px; float:right;">
<textarea style="width:400px;" name="teacher_string" id="teacher_string">{{ teacher_area }}</textarea></div> <textarea style="width:400px;" name="teacher_string" id="teacher_string">{{ teacher_area }}</textarea></div>
{{ teacher_form.hidden_tag() }} {{ teacher_form.hidden_tag() }}
<div style="float:left;">{{ teacher_form.make(style="list-style:none") }}</div> <div style="float:left;">{{ teacher_form.make(style="list-style:none") }}</div>
</div> </div>
<label for="student_string">Řešení</label><br> <label for="student_string">Řešení</label><br>
<div> <div>
<div style="width:400px; float:right;"> <div style="width:400px; float:right;">
<textarea style="width:400px;" name="student_string" id="student_string">{{ student_area }}</textarea></div> <textarea style="width:400px;" name="student_string" id="student_string">{{ student_area }}</textarea></div>
{{ student_form.hidden_tag() }} {{ student_form.hidden_tag() }}
<div style="float:left;">{{ student_form.make(style="list-style:none") }}</div> <div style="float:left;">{{ student_form.make(style="list-style:none") }}</div>
</div> </div>
<input type="submit" name="submit_button" value="Porovnej"> <input type="submit" name="submit_button" value="Porovnej">
</form> </form>
Tento mód simuluje vyhodnocení odpovědníku v IS MU. Máte-li k dispozici správné řešení úlohy, můžete jej porovnat s vaším výsledkem. Tento mód simuluje vyhodnocení odpovědníku v IS MU. Máte-li k dispozici správné řešení úlohy, můžete jej porovnat s vaším výsledkem.
Nezapomeňte vybrat, jakého typu je zadaný formalismus a jaký typ a vlastnosti se očekávají u vašeho řešení. Nezapomeňte vybrat, jakého typu je zadaný formalismus a jaký typ a vlastnosti se očekávají u vašeho řešení.
{% endblock %} {% endblock %}
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>{% block title %}Převod formalismu{% endblock %}</h1> <h1>Převod formalismu</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
<input type="submit" name="example_button" value="Vlož příklad zvoleného typu"> <input type="submit" name="example_button" value="Vlož příklad zvoleného typu">
<label for="student_string">Můj vstup typu</label><br> <label for="student_string">Můj vstup typu</label><br>
<div> <div>
<div style="width:400px; float:right;"> <div style="width:400px; float:right;">
<textarea style="width:400px;" name="student_string" id="student_string">{{ student_area }}</textarea></div> <textarea style="width:400px;" name="student_string" id="student_string">{{ student_area }}</textarea>
{{ student_form.hidden_tag() }} </div>
<div style="float:left;">{{ student_form.make(style="list-style:none") }}</div> {{ student_form.hidden_tag() }}
</div> <div style="float:left;">{{ student_form.make(style="list-style:none") }}</div>
</div>
<label>Převeď na typ</label><br> <label>Převeď na typ</label><br>
{{ task_form.hidden_tag() }} {{ task_form.hidden_tag() }}
{{ task_form.make(style="list-style:none") }} {{ task_form.make(style="list-style:none") }}
<input type="submit" name="submit_button" value="Převeď"> <input type="submit" name="submit_button" value="Převeď">
</form> </form>
{% endblock %} {% endblock %}
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>{% block title %}Převod formalismu{% endblock %}</h1> <h1>Převod formalismu</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<form method="post"> <form method="post">
<label for="student_type">Můj vstup</label> <label for="student_type">Můj vstup</label>
<input type="radio" id="dfa" name="student_type" value="dfa"> <input type="radio" id="dfa" name="student_type" value="dfa">
<label for="dfa">DFA</label><br> <label for="dfa">DFA</label><br>
<input type="radio" id="nfa" name="student_type" value="nfa"> <input type="radio" id="nfa" name="student_type" value="nfa">
<label for="nfa">NFA</label><br> <label for="nfa">NFA</label><br>
<input type="radio" id="grammar" name="student_type" value="grammar"> <input type="radio" id="grammar" name="student_type" value="grammar">
<label for="grammar">Gramatika</label> <label for="grammar">Gramatika</label>
<input type="radio" id="regex" name="student_type" value="regex"> <input type="radio" id="regex" name="student_type" value="regex">
<label for="regex">Regulární výraz</label> <label for="regex">Regulární výraz</label>
</form> </form>
<form method="post">
<label for="user_input">Můj vstup</label>
<textarea name="user_input" id="user_input">{{ request.form['user_input'] }}</textarea>
<input type="submit" value="Převeď">
</form>
<form method="post">
<label for="user_input">Můj vstup</label>
<textarea name="user_input" id="user_input">{{ request.form['user_input'] }}</textarea>
<input type="submit" value="Převeď">
</form>
{% endblock %} {% endblock %}
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>{% block title %} <h1>Výsledek</h1>
Výsledek
{% endblock %}</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<br>Vstupní formalismus nebyl správně zadán, nastala chyba při parsování.<br><br> <br>Vstupní formalismus nebyl správně zadán, nastala chyba při parsování.<br><br>
{{ error }} {{ error }}
{% endblock %} {% endblock %}
\ No newline at end of file
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>{% block title %} <h1>Výsledek porovnání</h1>
Výsledek porovnání
{% endblock %}</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<br> <br>
<div style="text-align:center"><h2>Celkový výsledek: <div style="text-align:center"><h2>Celkový výsledek:
{% if ok %} správné řešení. {% if ok %} správné řešení.
{% else %} nesprávné řešení. {% else %} nesprávné řešení.
{% endif %} </h2><br> {% endif %} </h2><br>
{% if alphabets != "" %}<b>{{ alphabets }}</b><br><br>{% endif %} {% if alphabets != "" %}<b>{{ alphabets }}</b><br><br>{% endif %}
{% if task_solved == "" %}
Odpověď splňuje požadavky kladené na formalismus.
{% else %}
Odpověď <b>nesplňuje požadavky</b> kladené na formalismus. {{ task_solved }}
{% endif %}<br>
{% if extra_word_ce or missing_word_ce or alphabets != "" %}
Jazyky popisované oběma formalismy <b>nejsou ekvivalentní</b>.
{% else %}
Jazyky popisované oběma formalismy jsou ekvivalentní.
{% endif %}</div><br>
<div>
<div style="float:left;"><label for="teacher_string"><h3 style="text-align:center">
Jazyk zadání</h3></label>
<div style="width:400px;" name="teacher_string" id="teacher_string">
<b>Charakteristika:</b> {{ teacher.sizename }}<br><br>
<b>Příklad slova z jazyka:</b> {{ teacher.example }}<br><br>
<b>Původní popis:</b> <br>
{{ teacher_type_string }}: {{ teacher.string }}<br><br>
<b>Popis pomocí minimálního DFA:</b> <br>
{{ teacher.minimal }}<br>
</div><br>
</div>
<div style="float:right;"><label for="student_string"><h3 style="text-align:center">
Jazyk řešení</h3></label>
<div style="width:400px;" name="student_string" id="student_string">
<b>Charakteristika:</b> {{ student.sizename }}<br><br>
<b>Příklad slova z jazyka:</b> {{ student.example }}<br><br>
<b>Původní popis:</b> <br>
{{ student_type_string }}: {{ student.string }}<br><br>
<b>Popis pomocí minimálního DFA:</b> <br>
{{ student.minimal }}<br>
</div><br>
</div>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><hr>
<p>
<h3>Porovnání jazyků</h3>
{% if img_src %}
<img style="float:left; margin:10px 30px;" src="static/img/{{ img_src }}.png" alt="{{ img_src }}"><br>
{% endif %}
{% if not ok and (extra_word_ce or missing_word_ce) %}
{% if extra_word_ce %}
Příklad slova, které je ve studentově řešení a není v zadaném jazyce: {{ extra_word_ce }}
{% else %}
Studentovo řešení je podmnožinou zadaného jazyka.
{% endif %}<br>
{% if missing_word_ce %} {% if task_solved == "" %}
Příklad slova, které chybí ve studentově řešení a je v zadam jazyce: {{ missing_word_ce }} Odpověď splňuje požadavky klade na formalismus.
{% else %} {% else %}
Studentovo řešení je nadmnožinou zadaho jazyka. Odpověď <b>nesplňuje požadavky</b> klade na formalismus. {{ task_solved }}
{% endif %}<br> {% endif %}<br>
{% if inf %}Rozdíl porovnávaných jazyků je nekonečný. {% if extra_word_ce or missing_word_ce or alphabets != "" %}
{% else %}Rozdíl porovnávaných jazyků je konečný. Jazyky popisované oběma formalismy <b>nejsou ekvivalentní</b>.
{% else %}
Jazyky popisované oběma formalismy jsou ekvivalentní.
{% endif %}</div><br>
<div>
<div style="float:left;">
<label for="teacher_string"><h3 style="text-align:center">Jazyk zadání</h3></label>
<div style="width:400px;" name="teacher_string" id="teacher_string">
<b>Charakteristika:</b> {{ teacher.sizename }}<br><br>
<b>Příklad slova z jazyka:</b> {{ teacher.example }}<br><br>
<b>Původní popis:</b> <br>
{{ teacher_type_string }}: {{ teacher.string }}<br><br>
<b>Popis pomocí minimálního DFA:</b> <br>
{{ teacher.minimal }}<br>
</div><br>
</div>
<div style="float:right;"><label for="student_string"><h3 style="text-align:center">
Jazyk řešení</h3></label>
<div style="width:400px;" name="student_string" id="student_string">
<b>Charakteristika:</b> {{ student.sizename }}<br><br>
<b>Příklad slova z jazyka:</b> {{ student.example }}<br><br>
<b>Původní popis:</b> <br>
{{ student_type_string }}: {{ student.string }}<br><br>
<b>Popis pomocí minimálního DFA:</b> <br>
{{ student.minimal }}<br>
</div><br>
</div>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><hr>
<p>
<h3>Porovnání jazyků</h3>
{% if img_src %}
<img style="float:left; margin:10px 30px;" src="static/img/{{ img_src }}.png" alt="{{ img_src }}"><br>
{% endif %} {% endif %}
{% else %}
{% if ok %} {% if not ok and (extra_word_ce or missing_word_ce) %}
Jazyky jsou ekvivalentní. {% if extra_word_ce %}
Příklad slova, které je ve studentově řešení a není v zadaném jazyce: {{ extra_word_ce }}
{% else %}
Studentovo řešení je podmnožinou zadaného jazyka.
{% endif %}<br>
{% if missing_word_ce %}
Příklad slova, které chybí ve studentově řešení a je v zadaném jazyce: {{ missing_word_ce }}
{% else %}
Studentovo řešení je nadmnožinou zadaného jazyka.
{% endif %}<br>
{% if inf %}Rozdíl porovnávaných jazyků je nekonečný.
{% else %}Rozdíl porovnávaných jazyků je konečný.
{% endif %}
{% else %}
{% if ok %}
Jazyky jsou ekvivalentní.
{% endif %}
{% endif %} {% endif %}
{% endif %} </p>
</p>
<div> <div>
{% if langs[0] %} {% if langs[0] %}
<table> <table>
<tr> <tr>
<th>Jazyk</th><th>Charakteristika</th><th>Slovo z jazyka</th><th>Automat</th></tr> <th>Jazyk</th><th>Charakteristika</th><th>Slovo z jazyka</th><th>Automat</th>
<tr><td>0</td><td>{{ langs[0].sizename }}</td><td>{{ langs[0].example }}</td><td><button onclick="toggleDFA('.dfa_0')">Automat</button> </tr>
<div class="dfa_0" style="display: none;">{{ langs[0].minimal }}</div></td></tr> <tr>
{% if langs[1] %} <td>0</td>
<tr><td>1</td><td>{{ langs[1].sizename }}</td><td>{{ langs[1].example }}</td><td><button onclick="toggleDFA('.dfa_1')">Automat</button> <td>{{ langs[0].sizename }}</td>
<div class="dfa_1" style="display: none;">{{ langs[1].minimal }}</div></td></tr> <td>{{ langs[0].example }}</td>
{% if langs[2] %} <td>
<tr><td>2</td><td>{{ langs[2].sizename }}</td><td>{{ langs[2].example }}</td><td><button onclick="toggleDFA('.dfa_2')">Automat</button> <button onclick="toggleDFA('.dfa_0')">Automat</button>
<div class="dfa_2" style="display: none;">{{ langs[2].minimal }}</div></td></tr> <div class="dfa_0" style="display: none;">{{ langs[0].minimal }}</div>
{% if langs[3] %} </td>
<tr><td>3</td><td>{{ langs[3].sizename }}</td><td>{{ langs[3].example }}</td><td><button onclick="toggleDFA('.dfa_3')">Automat</button> </tr>
<div class="dfa_3" style="display: none;">{{ langs[3].minimal }}</div></td></tr> {% if langs[1] %}
{% endif %} <tr>
{% endif %} <td>1</td>
{% endif %} <td>{{ langs[1].sizename }}</td>
<td>{{ langs[1].example }}</td>
<td>
<button onclick="toggleDFA('.dfa_1')">Automat</button>
<div class="dfa_1" style="display: none;">{{ langs[1].minimal }}</div>
</td>
</tr>
{% if langs[2] %}
<tr>
<td>2</td>
<td>{{ langs[2].sizename }}</td>
<td>{{ langs[2].example }}</td>
<td>
<button onclick="toggleDFA('.dfa_2')">Automat</button>
<div class="dfa_2" style="display: none;">{{ langs[2].minimal }}</div>
</td>
</tr>
{% if langs[3] %}
<tr>
<td>3</td>
<td>{{ langs[3].sizename }}</td>
<td>{{ langs[3].example }}</td>
<td>
<button onclick="toggleDFA('.dfa_3')">Automat</button>
<div class="dfa_3" style="display: none;">{{ langs[3].minimal }}</div>
</td>
</tr>
{% endif %}
{% endif %}
{% endif %}
</table> </table>
{% endif %} {% endif %}
</div> </div>
<script> <script>
function toggleDFA(dfa){ function toggleDFA(dfa){
el = document.querySelector(dfa); el = document.querySelector(dfa);
if(el.style.display == 'none'){ if(el.style.display == 'none'){
el.style.display = 'block' el.style.display = 'block'
}else{ } else {
el.style.display = 'none' el.style.display = 'none'
} }
} }
</script> </script>
...@@ -124,4 +151,4 @@ function toggleDFA(dfa){ ...@@ -124,4 +151,4 @@ function toggleDFA(dfa){
<h3>Vygenerovaný řetězec pro odpovědník</h3> <h3>Vygenerovaný řetězec pro odpovědník</h3>
{{ is_task }} {{ is_task }}
</div> </div>
{% endblock %} {% endblock %}
\ No newline at end of file
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>{% block title %} <h1>Výsledek převodu</h1>
Výsledek převodu
{% endblock %}</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<br>
<br><label for="student_string">Můj vstup</label><br> <label for="student_string">Můj vstup</label>
<br>
<textarea style="width:400px;" name="student_string" id="student_string">{{ student_string }}</textarea> <textarea style="width:400px;" name="student_string" id="student_string">{{ student_string }}</textarea>
{{ student_type }}, převod na {{ task }} {{ student_type }}, převod na {{ task }}
<br><br> <br><br>
<label for="output">Výsledek</label><br> <label for="output">Výsledek</label>
<textarea style="width:400px;" name="output" id="output">{{ output }}</textarea> <br>
<textarea style="width:400px;" name="output" id="output">{{ output }}</textarea>
<br>
<br><br> <br>
<h3>Vygenerovaný řetězec pro odpovědník</h3> <h3>Vygenerovaný řetězec pro odpovědník</h3>
{{ is_task }} {{ is_task }}
{% endblock %} {% endblock %}
\ No newline at end of file
{% extends 'base.html' %} {% extends 'base.html' %}
{% block header %} {% block header %}
<h1>Zadávání formalismů pro popis regulárních jazyků</h1> <h1>Zadávání formalismů pro popis regulárních jazyků</h1>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment