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})
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))