Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions src/courses/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"""

from dataclasses import dataclass
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Any
from uuid import UUID
from django.views import View
from django.http import HttpRequest, HttpResponse, HttpResponseForbidden
Expand All @@ -15,8 +15,10 @@
from django.contrib.auth.decorators import login_required
from django.contrib import messages

from django.forms import BaseFormSet

if TYPE_CHECKING:
from homeworks.forms import HomeworkCreateForm, SectionFormSet
from homeworks.forms import HomeworkCreateForm

from llteacher.permissions.decorators import (
student_required,
Expand Down Expand Up @@ -368,7 +370,7 @@ class HomeworkFormData:
"""Data structure for homework form view."""

form: "HomeworkCreateForm"
section_forms: "SectionFormSet"
section_forms: "BaseFormSet[Any]"
course_name: str
course_id: UUID
action: str # 'create'
Expand Down Expand Up @@ -464,7 +466,7 @@ def _process_form_submission(

# Create a mutable copy of POST data and inject course
post_data = request.POST.copy()
post_data["course"] = course.id
post_data["course"] = str(course.id)

# Create forms from POST data
form = HomeworkCreateForm(post_data)
Expand Down
10 changes: 4 additions & 6 deletions src/homeworks/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from dataclasses import dataclass
from typing import TYPE_CHECKING, Dict, Any, assert_type
from uuid import UUID
from django.forms import formset_factory
from django.forms import BaseFormSet, formset_factory

if TYPE_CHECKING:
from django.forms.utils import ErrorDict, ErrorList
Expand Down Expand Up @@ -262,7 +262,7 @@ class HomeworkFormData:
"""Data structure for the homework form view."""

form: "HomeworkEditForm"
section_forms: "SectionFormSet"
section_forms: "BaseFormSet[Any]"
user_type: str
action: str # 'create' or 'edit'
is_submitted: bool = False
Expand Down Expand Up @@ -370,13 +370,12 @@ def _get_view_data(
initial_section_data.append(section_data)

# Create section formset with initial data
SectionFormset: type[SectionFormSet] = formset_factory(
SectionFormset: type[BaseFormSet[Any]] = formset_factory(
SectionForm, extra=0, formset=SectionFormSet
)
section_formset = SectionFormset(
prefix="sections", initial=initial_section_data
)
assert_type(section_formset, SectionFormSet)

# Return form data
return HomeworkFormData(
Expand All @@ -395,11 +394,10 @@ def _process_form_submission(
form = HomeworkEditForm(request.POST, instance=homework)

# Create formset for sections
SectionFormset: type[SectionFormSet] = formset_factory(
SectionFormset: type[BaseFormSet[Any]] = formset_factory(
SectionForm, extra=0, formset=SectionFormSet
)
section_formset = SectionFormset(request.POST, prefix="sections")
assert_type(section_formset, SectionFormSet)

# Check form validity
if form.is_valid() and section_formset.is_valid():
Expand Down
Loading