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
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/')
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/')
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)
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)
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))