예제 #1
0
def lookup_student(obj):
	first = namecase(obj['first'])
	last = namecase(obj['last'])
	student = Students.fetch(first=first,family__last=last)
	if not student:
		student = Students.fetch(alt_first=first,family__last=last)
	return student
예제 #2
0
def register(request, **kwargs):
    bad = restricted(request, 5)
    if bad:
        return bad
    new_enrollments = {}
    course = Courses.get(id=str(request.POST['course_id']))
    for x in request.POST:
        role_match = re.match(r'^role_(\d+)$', x)
        role_type_match = re.match(r'^role_type_(\d+)$', x)
        if role_match:
            student_id = role_match.groups()[0]
            if student_id not in new_enrollments:
                new_enrollments[student_id] = {}
            new_enrollments[student_id]['role'] = request.POST[x]
        elif role_type_match:
            student_id = role_type_match.groups()[0]
            if student_id not in new_enrollments:
                new_enrollments[student_id] = {}
            new_enrollments[student_id]['role_type'] = request.POST[x]
    for x in new_enrollments:
        student = Students.fetch(id=int(x))
        Enrollments.create(student=student,
                           course=course,
                           role=new_enrollments[x]['role'],
                           role_type=new_enrollments[x]['role_type'],
                           status=request.POST['status'])
    return redirect('/reports/students/2016/')
예제 #3
0
def audition_process(request, **kwargs):
	me = getme(request)
	course = Courses.fetch(id=kwargs['id'])
	bad = restricted(request,5,course,4)
	if bad:
		return bad
	for key in request.POST:
		if key.isdigit():
			student = Students.fetch(id=int(key))
			enrollment = student.enrollments.filter(course=course)[0]
			if request.POST[key] == u'accept':
				enrollment.accept(me)
			if request.POST[key] == u'reject':
				enrollment.reject(me)
	return redirect('/admin/auditions/')
예제 #4
0
def mass_enroll(request, **kwargs):
    bad = restricted(request, 5)
    if bad:
        return bad
    year = kwargs.setdefault('year', getyear())
    courses = Courses.filter(year=kwargs['year'])
    students = []
    for x in request.POST:
        if x.isdigit():
            students.append(Students.fetch(id=int(x)))
    students.sort(key=lambda student: student.last)
    context = {
        'students': students,
        'courses': courses,
        'status_choices': dict(status_choices).keys(),
    }
    return render(request, 'reports/mass_enroll.html', context)
예제 #5
0
def admin(request, **kwargs):
    bad = restricted(request, 6)
    if bad:
        return bad
    course = Courses.fetch(id=kwargs['id'])
    results = []
    if request.GET.get('enrollment'):
        enrollment = Enrollments.fetch(id=request.GET['enrollment'])
        if request.GET.get('move'):
            new_course = Courses.fetch(id=request.GET['move'])
            enrollment.course = new_course
        if request.GET.get('status'):
            enrollment.status = request.GET['status']
        enrollment.save()
    elif request.GET.get('drop'):
        enrollment = Enrollments.fetch(id=request.GET['drop'])
        enrollment.delete()
    elif request.GET.get('query'):
        results = search_query(request.GET['query'],
                               all_tables=False,
                               student=True)
    elif request.GET.get('add'):
        student = Students.fetch(id=request.GET['add'])
        Enrollments.create(student=student, course=course)
    # if request.GET and not request.GET.get('query'):
    # 	return redirect('/rest/admin/{model}/{id}'.format(**kwargs))
    context = {
        'course':
        course,
        'courses':
        Courses.filter(year=course.year, tradition__e=True,
                       tradition__m=True).order_by('tradition__order'),
        'results':
        results,
        'status_choices':
        Each(status_choices).__getitem__(0),
    }
    return render(request, 'rest/admin.html', context)
예제 #6
0
def courses_enroll(request, **kwargs):
	student_id = kwargs.setdefault('id',0)
	student = Students.fetch(id=student_id)
	course = Courses.fetch(id=request.GET['course_id'])
	course.cart(student)
	return redirect('/{}/classes/{}'.format(kwargs.get('ref'),student_id))