Fix: quiz form error

This commit is contained in:
Adil Mohak 2024-10-05 18:59:48 +03:00
parent 7c7376c7ab
commit 103c4a7e4e
9 changed files with 28 additions and 18 deletions

View File

@ -111,10 +111,10 @@ class MCQuestionCreate(CreateView):
form_class = MCQuestionForm form_class = MCQuestionForm
template_name = "quiz/mcquestion_form.html" template_name = "quiz/mcquestion_form.html"
def get_form_kwargs(self): # def get_form_kwargs(self):
kwargs = super().get_form_kwargs() # kwargs = super().get_form_kwargs()
kwargs["quiz"] = get_object_or_404(Quiz, id=self.kwargs["quiz_id"]) # kwargs["quiz"] = get_object_or_404(Quiz, id=self.kwargs["quiz_id"])
return kwargs # return kwargs
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
@ -134,10 +134,20 @@ class MCQuestionCreate(CreateView):
formset = context["formset"] formset = context["formset"]
if formset.is_valid(): if formset.is_valid():
with transaction.atomic(): with transaction.atomic():
form.instance.quiz = get_object_or_404(Quiz, id=self.kwargs["quiz_id"]) # Save the MCQuestion instance without committing to the database yet
self.object = form.save() self.object = form.save(commit=False)
self.object.save()
# Retrieve the Quiz instance
quiz = get_object_or_404(Quiz, id=self.kwargs["quiz_id"])
# set the many-to-many relationship
self.object.quiz.add(quiz)
# Save the formset (choices for the question)
formset.instance = self.object formset.instance = self.object
formset.save() formset.save()
if "another" in self.request.POST: if "another" in self.request.POST:
return redirect( return redirect(
"mc_create", "mc_create",

View File

@ -49,9 +49,9 @@
</button> </button>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a class="dropdown-item" href="{% url 'edit_post' pk=item.id %}"><i <a class="dropdown-item" href="{% url 'edit_post' pk=item.id %}"><i
class="fas fa-pencil-alt"></i>{% trans 'Edit' %}</a> class="unstyled me-2 fas fa-pencil-alt"></i>{% trans 'Edit' %}</a>
<a class="dropdown-item" href="{% url 'delete_post' pk=item.id %}"><i <a class="dropdown-item" href="{% url 'delete_post' pk=item.id %}"><i
class="fas fa-trash-alt"></i>{% trans 'Delete' %}</a> class="unstyled me-2 fas fa-trash-alt"></i>{% trans 'Delete' %}</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}

View File

@ -107,7 +107,7 @@
<span class="text-danger"> <span class="text-danger">
{% trans 'No video Uploaded.' %} {% trans 'No video Uploaded.' %}
{% if request.user.is_superuser or request.user.is_lecturer %} {% if request.user.is_superuser or request.user.is_lecturer %}
<a href="{% url 'upload_video' course.slug %}"> <a href="{% url 'upload_video' course.slug %}" class="text-primary">
<i class="primary" style="font-size: 22px;"> <i class="primary" style="font-size: 22px;">
{% trans 'Upload now.' %} {% trans 'Upload now.' %}
</i> </i>
@ -184,7 +184,7 @@
<span class="text-danger"> <span class="text-danger">
{% trans 'No File Uploaded.' %} {% trans 'No File Uploaded.' %}
{% if request.user.is_superuser or request.user.is_lecturer %} {% if request.user.is_superuser or request.user.is_lecturer %}
<a href="{% url 'upload_file_view' course.slug %}"> <a href="{% url 'upload_file_view' course.slug %}" class="text-primary">
<i class="primary" style="font-size: 22px;"> <i class="primary" style="font-size: 22px;">
{% trans 'Upload now.' %} {% trans 'Upload now.' %}
</i> </i>

View File

@ -95,7 +95,7 @@
<span class="text-danger"> <span class="text-danger">
{% trans 'No course for this progrm.' %} {% trans 'No course for this progrm.' %}
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
<a href="{% url 'course_add' pk=program.pk %}"> <a href="{% url 'course_add' pk=program.pk %}" class="text-primary">
<i class="primary" style="font-size: 22px;"> <i class="primary" style="font-size: 22px;">
{% trans 'Add one now.' %} {% trans 'Add one now.' %}
</i> </i>

View File

@ -52,7 +52,7 @@
<div class="input-group-prepend"> <div class="input-group-prepend">
<span class="input-group-text">{{ fs.correct }} <small class="ms-1">{% trans 'Correct' %}</small></span> <span class="input-group-text">{{ fs.correct }} <small class="ms-1">{% trans 'Correct' %}</small></span>
</div> </div>
{{ fs.choice }} {{ fs.choice_text }}
<div class="input-group-prepend"> <div class="input-group-prepend">
<span class="input-group-text">{{ fs.DELETE }} <small class="ms-1">{% trans 'Delete' %}</small></span> <span class="input-group-text">{{ fs.DELETE }} <small class="ms-1">{% trans 'Delete' %}</small></span>
</div> </div>

View File

@ -95,7 +95,7 @@
</div> </div>
{% endif %} {% endif %}
{% if not cat_scores and not exams %} {% if not cat_scores and not exams %}
<div class="col-12 p-4 text-center"><h3><i class="far fa-frown"></i></h3> {% trans 'No recordes yet. Try to do some quizzes in your course.' %}</div> <div class="col-12 p-4 text-center"><h3><i class="far fa-frown text-secondary"></i></h3> {% trans 'No recordes yet' %}</div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -14,7 +14,7 @@
</ol> </ol>
</nav> </nav>
<div class="row col-12 justify-content-between">{{ sitting.quiz }} <div class="row col-12 justify-content-between">
<div class="header-title-md">{% trans "Quiz title" %}: {{ sitting.quiz.title }}</div> <div class="header-title-md">{% trans "Quiz title" %}: {{ sitting.quiz.title }}</div>
<em class="info-text title-danger">{% trans "Category" %}: {{ sitting.quiz.category }}</em> <em class="info-text title-danger">{% trans "Category" %}: {{ sitting.quiz.category }}</em>
</div> </div>

View File

@ -34,17 +34,17 @@
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="border-bottom"> <div class="border-bottom">
{% trans 'Manage' %}<a class="link" href="{% url 'lecturer_list' %}">{% trans 'Lecturers' %} &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'lecturer_list' %}"> {% trans 'Lecturers' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) lecturers</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) lecturers</p>
</div> </div>
<div class="border-bottom mt-3"> <div class="border-bottom mt-3">
{% trans 'Manage' %}<a class="link" href="{% url 'student_list' %}">{% trans 'Students' %} &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'student_list' %}"> {% trans 'Students' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) {% trans 'students' %}</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) {% trans 'students' %}</p>
</div> </div>
<div class="border-bottom mt-3"> <div class="border-bottom mt-3">
{% trans 'Manage' %}<a class="link" href="{% url 'session_list' %}">{% trans 'Session' %} &raquo;</a> {% trans 'Manage' %}<a class="link" href="{% url 'session_list' %}"> {% trans 'Session' %} &raquo;</a>
<p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) {% trans 'sessions' %}</p> <p class="text-muted">CRUD (Create, Retrieve, Update &amp; Delete) {% trans 'sessions' %}</p>
</div> </div>

View File

@ -108,7 +108,7 @@
</li> </li>
{% endif %} {% endif %}
<br /> <br />
<p class="ml-3">&RightArrow; Others</p> <p class="ms-3 text-secondary">&RightArrow; Others</p>
<li class="{% if request.path == ep %}active{% endif %}"> <li class="{% if request.path == ep %}active{% endif %}">
<a href="{% url 'edit_profile' %}"><i class="fas fa-cogs"></i>{% trans 'Account Setting' %}</a> <a href="{% url 'edit_profile' %}"><i class="fas fa-cogs"></i>{% trans 'Account Setting' %}</a>
</li> </li>