Ejemplo n.º 1
0
def json_from_user(user):
    try:
        profile = models.UserProfile.objects.select_related(
            'school', 'myclass').get(user=user)
        data = {
            'user_type': profile.get_usertype(),
            'school_id': profile.school and profile.school.id or 0,
            'school_name': profile.school and profile.school.name or '',
            'name': profile.user.first_name,
            'sex': profile.get_gender(),
            'age': profile.get_age(),
            'tel': profile.telphone,
            'address': profile.address
        }
        if profile.usertype == common_def.USERTYPE_STUDENT:
            data.update({
                'classes': [{
                    'grade_id': profile.myclass.get_grade(),
                    'grade_name': profile.myclass.get_grade_display(),
                    'class_id': profile.myclass.id,
                    'class_name': profile.myclass.name,
                }]
            })
        elif profile.usertype == common_def.USERTYPE_TEACHER:
            data.update({
                'classes':
                json_from_class(db_util.get_teacher_classes(user))
            })
    except models.UserProfile.DoesNotExist:
        data = {}
    return json.dumps(data, ensure_ascii=False)
Ejemplo n.º 2
0
def _add_courseware(request):
    course_id = request.POST['course_id']
    grade = int(request.POST['grade'])
    classes = db_util.get_teacher_classes(request.user, grade, course_id)
    if not classes:
        return _error_page(request, u'对不起,您无权管理该课程的课件')

    form = forms.CoursewareForm(request.POST, request.FILES)
    form.refresh_choices(classes) 
    if form.is_valid():
        path = util.handle_upload(
            form.cleaned_data['file'],
            util.upload_dir(str(request.user.id), course_id))
        courseware = course_ware.create_courseware(
            course_id, grade, request.user, path, form.cleaned_data)
        log.log_addition(request.user, courseware, u'上传课件')
        return HttpResponseRedirect('/coursewares/%d/%d/' % (int(course_id), grade))
    else:
        course_name = request.POST['course_name']
        ctx = RequestContext(request, {
            'courseware': _dummy_courseware(grade, course_id, course_name),
            'form': form,
            'newware': True,
            'upload_id': uuid.uuid1().get_hex(),
            })
        return render_to_response('courseware_detail.html', ctx)
Ejemplo n.º 3
0
def _add_courseware(request, token, uid, back_level):
    course_id = request.POST['course_id']
    grade = int(request.POST['grade'])
    classes = db_util.get_teacher_classes(request.user, grade, course_id)
    if not classes:
        return _error_page(request, u'对不起,您无权管理该课程的课件')

    form = forms.CoursewareForm(request.POST, request.FILES)
    form.refresh_choices(classes)
    if form.is_valid():
        path = util.handle_upload(
            form.cleaned_data['file'],
            util.upload_dir(str(request.user.id), course_id))
        courseware = course_ware.create_courseware(course_id, grade,
                                                   request.user, path,
                                                   form.cleaned_data)
        log.log_addition(request.user, courseware, u'上传课件')
        course_ware.convert_courseware(courseware, False,
                                       request.META['SERVER_PORT'])
        #log.log_change(request.user, courseware, u'格式转换')
        ctx = RequestContext(request, {
            'level': -back_level,
        })
        return render_to_response('history_goto.html', ctx)
    else:
        course_name = request.POST['course_name']
        ctx = RequestContext(
            request, {
                'courseware': _dummy_courseware(grade, course_id, course_name),
                'form': form,
                'newware': True,
                'back_level': back_level,
                'upload_id': uuid.uuid1().get_hex(),
            })
        return render_to_response('courseware_detail.html', ctx)
Ejemplo n.º 4
0
def courseware_add(request, token, uid, grade, course_id):
    course = models.Course.objects.get(pk=course_id)
    grade = int(grade)
    back_level = 1
    if 'add' in request.POST:
        back_level = int(request.POST['back_level']) + 1
        return _add_courseware(request, token, uid, back_level)
    classes = db_util.get_teacher_classes(request.user, grade, course_id)
    if not classes:
        return _error_page(request, u'对不起,您无权管理 %s 课程的课件' % course.course_name)
    courseware = _dummy_courseware(grade, course_id, course.course_name)
    form = forms.CoursewareForm(initial={
        'classes': [c[0] for c in classes],
        'share': common_def.SHARE_LEVEL_SCHOOL
    })
    form.refresh_choices(classes)
    next_url = request.META.get('HTTP_REFERER', 'no referer')
    print >> sys.stderr, "courseware_add next: ", next_url
    ctx = RequestContext(
        request, {
            'token': token,
            'uid': uid,
            'courseware': courseware,
            'form': form,
            'newware': True,
            'back_level': back_level,
            'upload_id': uuid.uuid1().get_hex(),
        })
    return render_to_response('courseware_detail.html', ctx)
Ejemplo n.º 5
0
def courseware_detail(request, courseware_id):
    try:
        if request.method == 'GET' and courseware_id == '0':
            grade = int(request.GET['grade'])
            course_id = request.GET['course_id']
            classes = db_util.get_teacher_classes(request.user, grade, course_id)
            course_name = request.GET['course_name']
            if not classes:
                return _error_page(request, u'对不起,您无权管理 %s 课程的课件' % course_name)
            courseware = _dummy_courseware(grade, course_id, course_name)
            form = forms.CoursewareForm(initial={'classes': [c[0] for c in classes], 'share': common_def.SHARE_LEVEL_SCHOOL})
            form.refresh_choices(classes)   
            newware = True
        elif request.POST.has_key('add'):
            return _add_courseware(request)
        else:
            courseware = models.Courseware.objects.select_related('book_provider', 'category', 'course').get(id=courseware_id)
            newware = False
            classes = db_util.get_teacher_classes(request.user, courseware.grade, courseware.course_id)
            if not classes:
                return _error_page(request, u'对不起,您无权管理 %s 课程的课件' % courseware.course_name)
            if request.POST.has_key('edit'):
                form = _edit_courseware(courseware, request, classes)
            elif request.POST.has_key('delete'):
                log.log_deletion(request.user, courseware, u'删除课件')
                course_ware.delete_courseware(courseware)
                return HttpResponseRedirect('/coursewares/%d/%d/' % (courseware.course_id, courseware.grade))
            else:
                data = {
                    'title': courseware.name,
                    #'grade': courseware.grade,
                    'provider': courseware.book_provider_id,
                    'category': courseware.category_id,
                    'description': courseware.description,
                    'share': courseware.share_level,
                    'week': courseware.week,
                    'classes': db_util.get_courseware_classes(courseware),
                }
                form = forms.CoursewareForm(data, {'file': os.path.basename(courseware.path),})
                form.refresh_choices(classes)
            form.files['file'] = os.path.basename(courseware.path)
            if hasattr(courseware.image, 'path'):
                form.files['image'] = os.path.basename(courseware.image.path)
    except palmtao.LicenseException, e:
        return e.response
Ejemplo n.º 6
0
def courseware_edit(request, token, uid, courseware_id):
    back_level = 1
    try:
        courseware = models.Courseware.objects.select_related(
            'book_provider', 'category', 'course').get(id=courseware_id)
        classes = db_util.get_teacher_classes(request.user, courseware.grade,
                                              courseware.course_id)
        if not classes:
            return _error_page(request,
                               u'对不起,您无权管理 %s 课程的课件' % courseware.course_name)
        if 'edit' in request.POST:
            back_level = int(request.POST['back_level']) + 1
            form = _edit_courseware(courseware, request, classes, back_level)
            if form.is_valid():
                ctx = RequestContext(request, {
                    'level': -back_level,
                })
                return render_to_response('history_goto.html', ctx)
        else:
            data = {
                'title': courseware.name,
                #'grade': courseware.grade,
                'provider': courseware.book_provider_id,
                'category': courseware.category_id,
                'description': courseware.description,
                'share': courseware.share_level,
                'week': courseware.week,
                'classes': db_util.get_courseware_classes(courseware),
            }
            form = forms.CoursewareForm(
                data, {'file': os.path.basename(courseware.path)})
            form.refresh_choices(classes)
        form.files['file'] = os.path.basename(courseware.path)
        if hasattr(courseware.image, 'path'):
            form.files['image'] = os.path.basename(courseware.image.path)
    except palmtao.LicenseException, e:
        return e.response