Skip to content

Commit c6a49cf

Browse files
committed
Added quiz update view
1 parent 0591928 commit c6a49cf

12 files changed

+70
-25
lines changed

quiz/static/css/styles.scss

+13-8
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,13 @@ label.control-label[for$="question"], .inline.questions .question-counter {
4949
font-weight: 600;
5050
}
5151

52-
.quiz-list {
53-
li {
54-
margin-bottom: 12px;
55-
}
56-
57-
.edit-button {
58-
padding: 0 6px;
52+
@media only screen and (min-width: 769px) {
53+
.quiz-list {
54+
li {
55+
margin-bottom: 18px;
56+
}
5957
}
6058
}
61-
6259
.quiz-detail-menu {
6360
display: inline;
6461
}
@@ -73,4 +70,12 @@ label.control-label[for$="question"], .inline.questions .question-counter {
7370

7471
.quiz-draft {
7572
color: $lilac_violet;
73+
}
74+
75+
@media only screen and (max-width: 768px) {
76+
.quiz-list {
77+
li {
78+
margin-bottom: 12px;
79+
}
80+
}
7681
}

quiz/templates/base.html

-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@
7878
<div class="dropdown-menu" aria-labelledby="quizNavbarDropdownMenuLink">
7979
<a class="dropdown-item" href="{% url 'quizzes' %}">Public quizzes</a>
8080
<a class="dropdown-item" href="{% url 'personal-quizzes' %}">My quizzes</a>
81-
<a class="dropdown-item" href="{% url 'quiz-drafts' %}">Drafts</a>
8281
<a class="dropdown-item" href="{% url 'quiz-new' %}">New quiz</a>
8382
</div>
8483
</li>

quiz/templates/quiz/edit_questions.html

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33

44
{% block content %}
55
{% with children_formset=question_formset %}
6-
<h1>Add questions and answers to quiz "{{ quiz.title }}"</h1>
6+
<h1>Add questions and answers to quiz "{{ quiz.title }}"
7+
<a href="{% url 'quiz-update' pk=quiz.pk %}" class="edit-button btn-xs">Change general info</a>
8+
</h1>
9+
<div>
10+
<p><b>Categories:</b> {{ quiz.display_category }}</p>
11+
<p><b>Summary:</b> {{ quiz.summary }}</p>
12+
</div>
713
<form action="{% url 'questions-edit' pk=quiz.pk %}" method="POST">
814
{{ children_formset.management_form }}
915
{{ children_formset.non_form_errors }}

quiz/templates/quiz/personal_quizzes.html

+10-6
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,23 @@
44
<h1>Your quizzes</h1>
55

66
{% if quiz_list %}
7-
<ul class="quiz-list">
7+
<ol class="quiz-list">
88
{% for quiz in quiz_list %}
99
<li>
1010
<div style="display: inline;">
1111
<a href="{{ quiz.get_absolute_url }}">"{{ quiz.title }}"</a> Status: <span class="quiz-{{ quiz.access_status }}">{{ quiz.access_status }}</span>, {{ quiz.question_set.count }} questions
12-
<a href="{% url 'quiz-delete' pk=quiz.pk %}" class="remove-button btn-xs">Remove <i class="far fa-trash-alt"></i></a>
13-
<a href="{% url 'questions-edit' pk=quiz.pk %}" class="neutral-button btn-xs">Edit</a>
12+
<div>
13+
<a href="{% url 'quiz-delete' pk=quiz.pk %}" class="remove-button btn-xs">Remove <i class="far fa-trash-alt"></i></a>
14+
<a href="{% url 'questions-edit' pk=quiz.pk %}" class="neutral-button btn-xs">Edit</a>
15+
</div>
1416
</div>
1517
</li>
1618
{% endfor %}
17-
</ul>
18-
<a href="{% url 'quizzes' %}" class="view-button">Published quizzes</a>
19-
<a href="{% url 'quiz-new' %}">New quiz</a>
19+
</ol>
20+
<div style="display:inline-block;">
21+
<a href="{% url 'quiz-drafts' %}" class="view-button">Drafts</a>
22+
<a href="{% url 'quiz-new' %}" class="add-button">New quiz +</a>
23+
</div>
2024
{% else %}
2125
<p>There are no quizzes in the library.</p>
2226
{% endif %}

quiz/templates/quiz/quiz_detail.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ <h1>Title: {{ quiz.title }}
66
<span class="quiz-status">({{ quiz.access_status|capfirst }})</span>
77
<div class="quiz-detail-menu">
88
{% if not quiz.access_status == 'public' %}
9-
<a class="button-link publish-post-link post-menu-link btn save" href="{% url 'quiz_publish' pk=quiz.pk %}">Publish</a>
9+
<a class="button-link publish-post-link post-menu-link btn submit-button" href="{% url 'quiz_publish' pk=quiz.pk %}">Publish</a>
1010
{% else %}
1111
<a class="button-link publish-post-link post-menu-link btn remove-button" href="{% url 'quiz_close' pk=quiz.pk %}">Close</a>
1212
{% endif %}
13-
<a class="button-link publish-post-link post-menu-link btn view-button" href="{% url 'questions-edit' pk=quiz.pk %}">Edit Questions</a>
13+
<a class="button-link publish-post-link post-menu-link btn edit-button" href="{% url 'questions-edit' pk=quiz.pk %}">Edit Questions</a>
1414
</div>
1515
{% endif %}
1616
</h1>

quiz/templates/quiz/quiz_drafts_list.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{% extends "base.html" %}
22

33
{% block content %}
4-
<h1>Quiz Drafts</h1>
4+
<h1>Your draft quizzes</h1>
55

66
{% if quiz_list %}
77
<ul class="quiz-list">
@@ -16,7 +16,7 @@ <h1>Quiz Drafts</h1>
1616
{% endfor %}
1717
</ul>
1818
<a href="{% url 'quizzes' %}" class="view-button">Published quizzes</a>
19-
<a href="{% url 'quiz-new' %}">New quiz</a>
19+
<a href="{% url 'quiz-new' %}" class="add-button">New quiz</a>
2020
{% else %}
2121
<p>There are no quizzes in the library.</p>
2222
{% endif %}

quiz/templates/quiz/quiz_list.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ <h1>Quiz List</h1>
1212
{% endfor %}
1313
</ul>
1414
<a href="{% url 'quiz-drafts' %}" class="view-button">Drafts</a>
15-
<a href="{% url 'quiz-new' %}" class="add-button">New quiz</a>
15+
<a href="{% url 'quiz-new' %}" class="add-button">New quiz +</a>
1616
{% else %}
1717
<p>There are no quizzes in the library.</p>
1818
{% endif %}

quiz/templates/quiz/quiz_score.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ <h1>"{{ quiz.title }}" Results
1313
<span class="quiz-status">({{ quiz.access_status|capfirst }})</span>
1414
<div class="quiz-detail-menu">
1515
{% if not quiz.access_status == 'public' %}
16-
<a class="button-link publish-post-link post-menu-link btn save" href="{% url 'quiz_publish' pk=quiz.pk %}">Publish</a>
16+
<a class="button-link publish-post-link post-menu-link btn submit-button" href="{% url 'quiz_publish' pk=quiz.pk %}">Publish</a>
1717
{% else %}
1818
<a class="button-link publish-post-link post-menu-link btn remove-button" href="{% url 'quiz_close' pk=quiz.pk %}">Close</a>
1919
{% endif %}
20-
<a class="button-link publish-post-link post-menu-link btn view-button" href="{% url 'questions-edit' pk=quiz.pk %}">Edit Questions</a>
20+
<a class="button-link publish-post-link post-menu-link btn edit-button" href="{% url 'questions-edit' pk=quiz.pk %}">Edit Questions</a>
2121
</div>
2222
{% endif %}
2323
</h1>
2424
<p><strong>Author:</strong> <a href="{{ quiz.author.get_absolute_url }}">{{ quiz.author }}</a></p>
2525
<p><strong>Description:</strong> {{ quiz.summary }}</p>
26-
<p><strong>Category:</strong> {% for category in quiz.category.all %} {{ category }}{% if not forloop.last %}, {% endif %}{% endfor %}</p>
26+
<p><strong>Categories:</strong> {% for category in quiz.category.all %} {{ category }}{% if not forloop.last %}, {% endif %}{% endfor %}</p>
2727

2828
<h3>Your result: {{ score.correct_answer_count }}/{{ score.total_questions }}</h3>
2929
<ul class="question-list">
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{% extends "base.html" %}
2+
{% load bootstrap3 %}
3+
4+
{% block content %}
5+
<div class="container">
6+
<h1>Edit quiz "{{ quiz.title }}" general info</h1>
7+
8+
<form method="POST">
9+
{% csrf_token %}
10+
{% bootstrap_form form %}
11+
<input type="submit" value="Save" class="btn save"/>
12+
</form>
13+
</div>
14+
{% endblock %}

quiz/urls.py

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
path('draft-quizzes/', views.QuizDraftsListView.as_view(), name='quiz-drafts'),
99
path('personal-quizzes/', views.PersonalQuizzesView.as_view(), name='personal-quizzes'),
1010
path('quiz/<slug>/', views.QuizDetailView.as_view(), name='quiz-detail'),
11+
path('<pk>/update/', views.QuizUpdateView.as_view(), name='quiz-update'),
1112
path('<pk>/delete/', views.QuizDeleteView.as_view(), name='quiz-delete'),
1213
path('process-quiz/<slug>/', views.process_quiz, name='process-quiz'),
1314
path('quiz/<pk>/publish/', views.QuizPublishView.as_view(), name='quiz_publish'),

quiz/views.py

+11
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
DetailView,
1313
ListView,
1414
CreateView,
15+
UpdateView,
1516
DeleteView
1617
)
1718

@@ -230,6 +231,16 @@ def post(self, request, *args, **kwargs):
230231
return redirect(reverse('questions-edit', kwargs={'pk': self.object.pk}))
231232

232233

234+
class QuizUpdateView(UpdateView):
235+
model = Quiz
236+
form_class = QuizForm
237+
template_name_suffix = '_update_form'
238+
context_object_name = 'quiz'
239+
240+
def get_success_url(self):
241+
return reverse('questions-edit', kwargs={'pk': self.object.pk})
242+
243+
233244
class QuizDeleteView(DeleteView):
234245
model = Quiz
235246

static/css/base.scss

+6-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ main {
123123
font-family: 'Lato', sans-serif;
124124
font-size: 16px;
125125
margin: 4px 4px 8px;
126-
padding: 0 4px;
126+
padding: 2px 4px 3px;
127127
text-decoration: none;
128128
float: right;
129129
border-radius: 6px;
@@ -362,6 +362,11 @@ main {
362362
.poll-panel {
363363
width: 85%;
364364
}
365+
366+
.submit-button, .remove-button, .edit-button, .view-button, .add-button, .neutral-button {
367+
margin: 2px 4px 6px;
368+
padding: 0px 4px;
369+
}
365370
}
366371

367372
@media only screen and (min-width: 769px) and (max-width:1011px) {

0 commit comments

Comments
 (0)