예제 #1
0
def group_students(request):
    curdate = datetime.datetime.now(timezone.get_default_timezone())
    tinterval = datetime.timedelta(0, 10)

    gpcompo = []
    studcompo = []
    # Get groups operations
    if 'groups' in request.GET:
        gpcompo = []
        gps = request.GET['groups'].split(',')
        step = 0
        for gpn in gps:

            try:
                gp = Group.objects.get(pk=gpn[1:])
                step += 1
                gpcompo.append(GroupCompositionGroup(
                    datestart=curdate - tinterval,
                    dateend=curdate + tinterval,
                    group=gp,
                    operation=gpn[0],
                    comporder=step))
            except ObjectDoesNotExist:
                pass
    # Get students operations


    # Get students list, sort operations
    students = group_operations(studcompo, gpcompo, curdate)
    students.sort(key=operator.attrgetter('lastname'))
    for student in students:
        student.groups = get_student_groups(student)
    # Add student groups
    return render(request, "group/group_students.html",
                  {'students':students})
예제 #2
0
def get_all_students(setup):
    studgroups = Group.objects.filter(setupgroup__setup=setup,
                                      setupgroup__gtype='stu')
    compo = [GroupCompositionGroup(operation="U", group=g,
        datestart=datetime.datetime.now() - datetime.timedelta(hours=1),
        dateend=datetime.datetime.now() + datetime.timedelta(hours=1),
        comporder=1) for g in studgroups]
    students = group_operations([], compo)
    return sorted(students, key=lambda s: (s.lastname, s.firstname))