def get_students_table_by_date_response(request, date, dep_id, node_id, type, status):
    date = datetime.strptime(date, '%d.%m.%Y').date()
    request_params = json.loads(request.GET.get('filter', '[]'))
    page = int(request.GET.get('page', '1'))
    filter_fields = get_students_fields(request.curr_dep)
    return JsonResponse(
        get_students_table_by_date(dep_id, date, node_id, type, status, page, filter_fields, request_params))
def open_all_contingent_by_date(request, date):
    date = datetime.strptime(date, '%d.%m.%Y').date()
    dep = request.curr_dep
    view_type = request.GET.get('viewtype', None)
    students_table = get_students_table_by_date(dep.id, date, dep.id, type=0, status=1, page=1)
    return render(request, 'contingent/contingent.html',
                  dict(students_table=students_table, date=date, view_type=view_type,
                       fields=json.dumps(get_students_fields(dep))))
def open_all_contingent(request):
    dep = request.curr_dep
    view_type = request.GET.get('viewtype', None)
    students_table = get_students_table(dep.id, dep.id, 0, 1, 1)
    edu_types = DictEduType.objects.all()
    return render(request, 'contingent/contingent.html',
                  dict(students_table=students_table, view_type=view_type, edu_types=edu_types,
                       fields=json.dumps(get_students_fields(dep))))
def get_students_table(dep_id, node_id, type, status, page=1, filter_fields=None, filter_params=()):
    students = get_students(dep_id, int(node_id), int(type), int(status), filter_fields, filter_params)
    students_pagination = Paginator(students, 30).get_page(page)
    students_dict = []
    fields = [field['json_field'] for field in get_students_fields() if 'json_field' in field]
    for student in students_pagination:
        students_dict.append(serialize_student(student, fields))
    return {'students': json.dumps(students_dict),
            'pagination': render_to_string('contingent/contingent_pagination.html',
                                           dict(pagination=students_pagination))}
def get_request_students(request, dep_id, node_id, type, status, date):
    students = request.GET.getlist('students', [])

    if students and students[0]:
        return Student.objects.filter(id__in=students)

    request_params = json.loads(request.GET.get('filter', '[]'))
    filter_fields = get_students_fields(request.curr_dep)
    if date:
        date = datetime.strptime(date, '%d.%m.%Y').date()
        students = []
        hist_students = get_students_by_date(dep_id, date, int(node_id), int(type), int(status),
                                             filter_fields, request_params)
        for student in hist_students:
            student = get_student_state(student.student, student)  # fixme
            students.append(student)
        return students
    return get_students(dep_id, int(node_id), int(type), int(status), filter_fields, request_params)
def get_students_table_response(request, dep_id, node_id, type, status):
    filter_params = json.loads(request.GET.get('filter', '[]'))
    page = int(request.GET.get('page', '1'))
    filter_fields = get_students_fields(request.curr_dep)
    return JsonResponse(get_students_table(dep_id, node_id, type, status, page, filter_fields, filter_params))