You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.5 KiB
84 lines
2.5 KiB
from django.views.generic.edit import DeleteView, CreateView, UpdateView
|
|
from django.views.generic.detail import DetailView
|
|
from django.shortcuts import redirect, render, reverse
|
|
|
|
from course.models import Schedule, StudentCourse
|
|
from course.forms import ScoreForm, RateForm
|
|
|
|
|
|
class ScoreUpdateView(UpdateView):
|
|
model = StudentCourse
|
|
form_class = ScoreForm
|
|
template_name = "course/teacher/score.html"
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
self.object = self.get_object()
|
|
|
|
title = "给分"
|
|
|
|
if request.GET.get("update"):
|
|
title = "修改成绩"
|
|
|
|
info = {}
|
|
|
|
return_url = reverse("course", kwargs={"kind": "teacher"})
|
|
if self.object:
|
|
teacher = self.object.course.teacher
|
|
info = {
|
|
"name": teacher.name,
|
|
"kind": "teacher",
|
|
}
|
|
|
|
return_url = reverse("view_detail", kwargs={"course_id": self.object.course.id})
|
|
|
|
return self.render_to_response(self.get_context_data(
|
|
info=info,
|
|
title=title,
|
|
return_url=return_url
|
|
))
|
|
|
|
def get_success_url(self):
|
|
if self.object:
|
|
return reverse("view_detail", kwargs={"course_id": self.object.course.id})
|
|
else:
|
|
return reverse("course", kwargs={"kind": "teacher"})
|
|
|
|
|
|
class RateUpdateView(UpdateView):
|
|
model = StudentCourse
|
|
form_class = RateForm
|
|
template_name = "course/student/rating.html"
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
self.object = self.get_object()
|
|
|
|
info = {}
|
|
return_url = reverse("view_course", kwargs={"view_kind": "is_end"})
|
|
if self.object:
|
|
student = self.object.student
|
|
info = {
|
|
"name": student.name,
|
|
"kind": "student"
|
|
}
|
|
context = self.get_context_data(info=info, return_url=return_url)
|
|
return self.render_to_response(context)
|
|
|
|
def get_success_url(self):
|
|
return reverse("view_course", kwargs={"view_kind": "is_end"})
|
|
|
|
|
|
class StudentCourseDetailView(DetailView):
|
|
model = StudentCourse
|
|
template_name = "course/student/course.html"
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
self.object = self.get_object()
|
|
context = self.get_context_data(object=self.object)
|
|
if self.object:
|
|
context["info"] = {
|
|
"name": self.object.student.name,
|
|
"kind": "student"
|
|
}
|
|
|
|
return self.render_to_response(context)
|