Example #1
0
    def post(cls, request):
        course_form = CreateCourseForm(request.POST, request.FILES)
        if course_form.is_valid():
            name = course_form.cleaned_data['name']
            image = course_form.cleaned_data['image']

            teacher = Teacher.objects.get(userprofile=request.user)
            course = Course()
            course.name = name
            course.image = image
            course.college_org = teacher.college_org
            course.teacher = teacher
            course.save()

            courses = Course.objects.filter(teacher=teacher)
            lessons = []
            for course in courses:
                lessons.extend(Lesson.objects.filter(course=course))
            return render(request, 'user_lecturer_course.html', {
                'courses': courses,
                'lessons': lessons,
            })
        else:
            return HttpResponse('{"status":"fail"}',
                                content_type='application/json')
Example #2
0
def create_test_course(name, owner, instructors=(), students=()):
    course = Course()
    course.name = name
    course.owner = owner
    course.save()
    course.instructors.add(*instructors)
    course.students.add(*students)
Example #3
0
def open_course(owner, name, short_description=None):
    course = Course()
    course.owner = owner
    course.name = name
    if short_description is not None:
        course.short_description = short_description
    course.save()
    return course
Example #4
0
    def post(self, request):

        ID = request.POST.get("id", "")
        type = request.POST.get("type", "")
        if int(type) > 0:
            #添加课程

            #此处类似于 读者-写者 模型
            #添加行级锁,防止改动课程时用户进入读取错误信息
            with transaction.atomic():
                if ID:
                    lesson = Lesson.objects.select_for_update().get(id=ID)
                else:
                    lesson = Lesson()
                lesson.course_id = request.POST.get("cId", "")
                lesson.name = request.POST.get("name", "")
                lesson.save()
                video = Video()
                video.lesson_id = lesson.id
                video.name = lesson.name
                video.url = request.POST.get("url", "")
                video.save()

        else:
            #进行事务处理,保证课程发布可以通知到每个关注者
            with transaction.atomic():
                if ID:
                    course = Course.objects.select_for_update().get(id=ID)
                else:
                    course = Course()

                teacher = Teacher.objects.get(id=request.user.teacher_id)

                course.name = request.POST.get("name", "")
                course.tag = request.POST.get("tag", "")
                course.desc = request.POST.get("desc", "")
                course.detail = request.POST.get("detail", "")
                course.degree = request.POST.get("degree", "")
                course.learn_times = request.POST.get("learn_times", "")
                course.teacher = teacher
                course.save()
                teacher_id = teacher.id

            users = UserFavorite.objects.filter(fav_id=teacher_id, fav_type=1)
            if ID:
                for user in users:
                    sendMsg(user.user_id,
                            teacher.name + "修改了课程:" + course.name, teacher.id)
            else:
                for user in users:
                    sendMsg(user.user_id,
                            teacher.name + "发布了新课程:" + course.name, teacher.id)

        return render(request, 'usercenter-publish-course.html', {})
    def handle(self, *args, **kwargs):
        count = int(input(f'Courses count(max={len(self.courses_name)}): '))
        course_list = Course.objects.all()
        teacher_list = Teacher.objects.all()

        while count >= 0:
            name = self.courses_name[randint(0, len(self.courses_name) - 1)]

            if (not Course.objects.filter(name=name).exists()):
                self.stdout.write(
                    self.style.SUCCESS(f'Creating \'{name}\' course..'))
                course = Course()
                course.name = name
                course.detail = f'Learning {name} in short period and become a developer'
                # thum = self.get_thumbnail(name)
                # course.tumbnail = ImageFile(open(thum, "rb"))

                course.teacher = teacher_list[randint(0,
                                                      teacher_list.count() -
                                                      1)]

                course.save()
                self.stdout.write(self.style.SUCCESS(f'\'{name}\' created/'))
            count -= 1