Skip to content

Commit 788fb60

Browse files
Merge pull request #237 from KraljSamo/supervision
Supervision
2 parents 8257887 + 09a64a9 commit 788fb60

File tree

6 files changed

+395
-3
lines changed

6 files changed

+395
-3
lines changed

web/templates/courses/course_detail.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
<hr>
7272
<a href="{% url 'course_groups' course.pk %}"> Urejanje skupin </a> <br>
7373
<a href="{% url 'statistics_landing_page' course.pk %}"> Napreden pregled </a> <br>
74-
<span class='color2'> &nbsp; &nbsp; * Novo - zgodovina oddaj </span>
74+
<span class='color2'> &nbsp; &nbsp; * Novo - primerjanje rešitev </span>
7575
<hr>
7676
<ul class="tomo-students">
7777
{% for student in students %}
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
{% extends 'base.html' %}
2+
{% load i18n %}
3+
{% load bootstrap3 %}
4+
5+
{% block navigation-left %}
6+
<a class="navbar-brand topnav" href="{% url 'course_detail' course.pk %}">{{ course.title }}</a>
7+
<a class="navbar-brand topnav" href="{% url 'statistics_landing_page' course.pk %}"> Pregled </a>
8+
{% endblock %}
9+
10+
{% block content %}
11+
<div class="content-section-a tomo-top-section">
12+
<div class="container">
13+
<div class='row'>
14+
<h3>Primerjava rešitev</h3>
15+
<form action="{% url 'compare_solutions' course.pk %}" method='post'>
16+
{% csrf_token %}
17+
<div class='form-group'>
18+
<br>
19+
<label class="col-sm-2 col-form-label col-form-label-sm" for="problemSetSelect">Sklop nalog:</label>
20+
<div class="col-sm-10">
21+
<select class="form-control" name="problemSetSelect" id="problemSetSelect">
22+
{% for problemset in course.problem_sets.all %}
23+
{% if problem_set == problemset %}
24+
<option selected value="{{ problemset.pk }}"> {{ problemset.title }} </option>
25+
{% else %}
26+
<option value="{{ problemset.pk }}"> {{ problemset.title }} </option>
27+
{% endif %}
28+
{% endfor %}
29+
</select>
30+
</div>
31+
</div>
32+
<div class='form-group'>
33+
<br>
34+
<label class="col-sm-2 col-form-label col-form-label-sm" for="firstStudentSelect">Prvi učenec:</label>
35+
<div class="col-sm-10">
36+
<select class="form-control" name="firstStudentSelect" id="firstStudentSelect">
37+
{% for student in course.observed_students %}
38+
{% if student == first_student %}
39+
<option selected value="{{ student.pk }}"> {{ student.get_full_name }} </option>
40+
{% else %}
41+
<option value="{{ student.pk }}"> {{ student.get_full_name }} </option>
42+
{% endif %}
43+
{% endfor %}
44+
</select>
45+
</div>
46+
</div>
47+
<div class='form-group'>
48+
<br>
49+
<label class="col-sm-2 col-form-label col-form-label-sm" for="secondStudentSelect">Drugi učenec:</label>
50+
<div class="col-sm-10">
51+
<select class="form-control" name="secondStudentSelect" id="secondStudentSelect">
52+
{% for student in course.observed_students %}
53+
{% if student == second_student %}
54+
<option selected value="{{ student.pk }}"> {{ student.get_full_name }} </option>
55+
{% else %}
56+
<option value="{{ student.pk }}"> {{ student.get_full_name }} </option>
57+
{% endif %}
58+
{% endfor %}
59+
</select>
60+
</div>
61+
</div>
62+
<br> <br>
63+
<div class="form-group">
64+
<div class="col-sm-10">
65+
<div class="form-check col-sm-5">
66+
{% if cmp_type == "timeline" %}
67+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios1" value="timeline" checked>
68+
{% else %}
69+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios1" value="timeline">
70+
{% endif %}
71+
<label class="form-check-label" for="gridRadios1">
72+
Zaporedje oddaj
73+
</label>
74+
</div>
75+
<div class="form-check col-sm-5">
76+
{% if cmp_type == "problems" %}
77+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios2" value="problems" checked>
78+
{% else %}
79+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios2" value="problems">
80+
{% endif %}
81+
<label class="form-check-label" for="gridRadios2">
82+
Primerjava rešitev ena ob drugi
83+
</label>
84+
</div>
85+
</div>
86+
<button type="submit" class="btn btn-primary mb-2 col-sm-2">Preglej</button>
87+
</div>
88+
<br> <br>
89+
</form>
90+
</div>
91+
<div class="container tomo-task-solutions">
92+
<div class="tomo-task">
93+
<span style="text-align:left; font-size:20px;" class="color2">
94+
&nbsp;&nbsp;&nbsp; {{ first_student.get_full_name }}
95+
<span style="float:right;">
96+
{{ second_student.get_full_name }} &nbsp;&nbsp;&nbsp;
97+
</span>
98+
</span>
99+
<div class="row">
100+
<div class="col-md-12">
101+
<ul class="list-group">
102+
{% for problem, parts in problems.items %}
103+
{% for part in parts %}
104+
<li class="list-group-item">
105+
<div class="row">
106+
<br>
107+
<div class="col-xs-12 col-sm-6">
108+
<div class="tomo-solution-user">
109+
<div class="tomo-solution-valid">
110+
{% if part.attempt_student1.valid %}<i class="color5 fa fa-check-circle fa-lg"></i>
111+
{% elif part.attempt_student1 %}<i class="color3 fa fa-question-circle fa-lg"></i>
112+
{% else %}<i class="color1 fa fa-times-circle fa-lg"></i>
113+
{% endif %}
114+
</div>
115+
</div>
116+
<div class="tomo-solution-code-user">
117+
<span class="color1"> {{ problem.title }} {{ forloop.counter }}. {% trans 'part' %} </span> &nbsp;&nbsp;&nbsp; {{ part.attempt_student1.submission_date }}
118+
<div class="tomo-pre">{{ part.attempt_student1.solution }}</div>
119+
</div>
120+
</div>
121+
122+
<div class="col-xs-12 col-sm-6">
123+
<div class="tomo-solution-user">
124+
<div class="tomo-solution-valid">
125+
{% if part.attempt_student2.valid %}<i class="color5 fa fa-check-circle fa-lg"></i>
126+
{% elif part.attempt_student2 %}<i class="color3 fa fa-question-circle fa-lg"></i>
127+
{% else %}<i class="color1 fa fa-times-circle fa-lg"></i>
128+
{% endif %}
129+
</div>
130+
</div>
131+
<div class="tomo-solution-code-user">
132+
<span class="color1"> {{ problem.title }} {{ forloop.counter }}. {% trans 'part' %} </span> &nbsp;&nbsp;&nbsp; {{ part.attempt_student2.submission_date }}
133+
<div class="tomo-pre">{{ part.attempt_student2.solution }}</div>
134+
</div>
135+
</div>
136+
</div><!-- row -->
137+
</li>
138+
{% endfor %}
139+
{% endfor %}
140+
</ul>
141+
</div>
142+
</div>
143+
</div>
144+
</div>
145+
</div>
146+
</div>
147+
{% endblock %}
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
{% extends 'base.html' %}
2+
{% load i18n %}
3+
{% load bootstrap3 %}
4+
5+
{% block navigation-left %}
6+
<a class="navbar-brand topnav" href="{% url 'course_detail' course.pk %}">{{ course.title }}</a>
7+
<a class="navbar-brand topnav" href="{% url 'statistics_landing_page' course.pk %}"> Pregled </a>
8+
{% endblock %}
9+
10+
{% block content %}
11+
<div class="content-section-a tomo-top-section">
12+
<div class="container">
13+
<div class='row'>
14+
<h3>Primerjava rešitev</h3>
15+
<form action="{% url 'compare_solutions' course.pk %}" method='post'>
16+
{% csrf_token %}
17+
<div class='form-group'>
18+
<br>
19+
<label class="col-sm-2 col-form-label col-form-label-sm" for="problemSetSelect">Sklop nalog:</label>
20+
<div class="col-sm-10">
21+
<select class="form-control" name="problemSetSelect" id="problemSetSelect">
22+
{% for problemset in course.problem_sets.all %}
23+
{% if problem_set == problemset %}
24+
<option selected value="{{ problemset.pk }}"> {{ problemset.title }} </option>
25+
{% else %}
26+
<option value="{{ problemset.pk }}"> {{ problemset.title }} </option>
27+
{% endif %}
28+
{% endfor %}
29+
</select>
30+
</div>
31+
</div>
32+
<div class='form-group'>
33+
<br>
34+
<label class="col-sm-2 col-form-label col-form-label-sm" for="firstStudentSelect">Prvi učenec:</label>
35+
<div class="col-sm-10">
36+
<select class="form-control" name="firstStudentSelect" id="firstStudentSelect">
37+
{% for student in course.observed_students %}
38+
{% if student == first_student %}
39+
<option selected value="{{ student.pk }}"> {{ student.get_full_name }} </option>
40+
{% else %}
41+
<option value="{{ student.pk }}"> {{ student.get_full_name }} </option>
42+
{% endif %}
43+
{% endfor %}
44+
</select>
45+
</div>
46+
</div>
47+
<div class='form-group'>
48+
<br>
49+
<label class="col-sm-2 col-form-label col-form-label-sm" for="secondStudentSelect">Drugi učenec:</label>
50+
<div class="col-sm-10">
51+
<select class="form-control" name="secondStudentSelect" id="secondStudentSelect">
52+
{% for student in course.observed_students %}
53+
{% if student == second_student %}
54+
<option selected value="{{ student.pk }}"> {{ student.get_full_name }} </option>
55+
{% else %}
56+
<option value="{{ student.pk }}"> {{ student.get_full_name }} </option>
57+
{% endif %}
58+
{% endfor %}
59+
</select>
60+
</div>
61+
</div>
62+
<br> <br>
63+
<div class="form-group">
64+
<div class="col-sm-10">
65+
<div class="form-check col-sm-5">
66+
{% if cmp_type == "timeline" %}
67+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios1" value="timeline" checked>
68+
{% else %}
69+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios1" value="timeline">
70+
{% endif %}
71+
<label class="form-check-label" for="gridRadios1">
72+
Zaporedje oddaj
73+
</label>
74+
</div>
75+
<div class="form-check col-sm-5">
76+
{% if cmp_type == "problems" %}
77+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios2" value="problems" checked>
78+
{% else %}
79+
<input class="form-check-input" type="radio" name="compare_type" id="gridRadios2" value="problems">
80+
{% endif %}
81+
<label class="form-check-label" for="gridRadios2">
82+
Primerjava rešitev ena ob drugi
83+
</label>
84+
</div>
85+
</div>
86+
<button type="submit" class="btn btn-primary mb-2 col-sm-2">Preglej</button>
87+
</div>
88+
<br> <br>
89+
</form>
90+
</div>
91+
<div class="container tomo-task-solutions">
92+
<div class="tomo-task">
93+
<span style="text-align:left; font-size:20px;" class="color2">
94+
&nbsp;&nbsp;&nbsp; {{ first_student.get_full_name }}
95+
<span style="float:right;">
96+
{{ second_student.get_full_name }} &nbsp;&nbsp;&nbsp;
97+
</span>
98+
</span>
99+
<div class="row">
100+
<div class="col-md-12">
101+
<ul class="list-group">
102+
{% for attempt in attempts %}
103+
{% if attempt.valid %}
104+
<li class="list-group-item" style="background-color:#e6ffe6;">
105+
{% else %}
106+
<li class="list-group-item" style="background-color:#ffffe6;">
107+
{% endif %}
108+
<div class="row">
109+
<br>
110+
<div class="col-xs-12 col-sm-6">
111+
{% if attempt.user == first_student %}
112+
<div class="tomo-solution-user">
113+
<div class="tomo-solution-valid">
114+
{% if attempt.valid %}<i class="color5 fa fa-check-circle fa-lg"></i>
115+
{% elif attempt %}<i class="color3 fa fa-question-circle fa-lg"></i>
116+
{% else %}<i class="color1 fa fa-times-circle fa-lg"></i>
117+
{% endif %}
118+
</div>
119+
</div>
120+
<div class="tomo-solution-code-user">
121+
<span class="color1"> {{ attempt.part.problem.title }} </span> &nbsp;&nbsp;&nbsp; {{ attempt.submission_date }}
122+
<div class="tomo-pre">{{ attempt.solution }}</div>
123+
</div>
124+
{% endif %}
125+
</div>
126+
127+
<div class="col-xs-12 col-sm-6">
128+
{% if attempt.user == second_student %}
129+
<div class="tomo-solution-user">
130+
<div class="tomo-solution-valid">
131+
{% if attempt.valid %}<i class="color5 fa fa-check-circle fa-lg"></i>
132+
{% elif attempt %}<i class="color3 fa fa-question-circle fa-lg"></i>
133+
{% else %}<i class="color1 fa fa-times-circle fa-lg"></i>
134+
{% endif %}
135+
</div>
136+
</div>
137+
<div class="tomo-solution-code-user">
138+
<span class="color1"> {{ attempt.part.problem.title }} </span> &nbsp;&nbsp;&nbsp; {{ attempt.submission_date }}
139+
<div class="tomo-pre">{{ attempt.solution }}</div>
140+
</div>
141+
{% endif %}
142+
</div>
143+
</div><!-- row -->
144+
</li>
145+
{% endfor %}
146+
</ul>
147+
</div>
148+
</div>
149+
</div>
150+
</div>
151+
</div>
152+
</div>
153+
{% endblock %}

web/templates/statistics/contents.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
<div class="col-md-2">
2222
<ul class="nav nav-stacked" id="sidebar">
2323
<h3 class='color5'>Kazalo</h3>
24-
<a href='{% url "statistics_landing_page" course.pk %}'> Začetna stran <br>
24+
<a href='{% url "statistics_landing_page" course.pk %}'> Začetna stran </a> <br>
2525
<a href='{% url "statistics_submission_history" course.pk %}'>Zgodovina oddaj </a> <br>
26+
<a href='{% url "compare_solutions" course.pk %}'> Primerjava rešitev </a> <br>
2627
<br>
2728
<br>
2829
</ul>

web/tomo_statistics/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@
2929
views.user_problem_solution_through_time,
3030
name="user_problem_solution_through_time",
3131
),
32+
path("<int:course_pk>/compare", views.compare_solutions, name="compare_solutions"),
3233
]

0 commit comments

Comments
 (0)