Exemplo n.º 1
0
Arquivo: schedule.py Projeto: kuba/SIS
    def group_week(self, group_name, course_name=None):
        """
        Render group's schedule for entire week.

        :param group_name: Full name of the group (including year index)
        :pram course_name: Optional name of the course

        """
        schedule = Schedule.current()
        group = Group.by_full_name(group_name)
        if group is None:
            c.group_name = group_name
            return render('schedule/group/not_found.xml')

        gs = group.schedule(schedule.id)

        # Fetch the course schedule and merge it with group schedule
        if course_name is not None:
            course = Group.by_full_name(group_name[0] + course_name)
            c.course = course
            if course is None:
                c.group_name = group_name[0] + course_name
                return render('schedule/group/not_found.xml')
            else:
                cs = course.schedule(schedule.id)
                if cs is not None:
                    for day_number, day in enumerate(cs):
                        for order, lesson in enumerate(day):
                            while len(gs[day_number]) < order + 1:
                                gs[day_number].append(None)
                            if gs[day_number][order] is None:
                                gs[day_number][order] = lesson
        else:
            c.course = None

        c.courses = None
        if len(group_name) != 2:
            # group is not course
            from sqlalchemy import func
            q = Group.query_active().filter(Group.year_id == group.year_id).\
                        filter(func.length(Group.name) == 1).\
                        order_by(Group.name)
            c.courses = q.all()

        c.group = group
        c.group_name = group_name
        c.year = schedule.year
        c.schedule = gs
        return render('schedule/group/week.xml')
Exemplo n.º 2
0
Arquivo: schedule.py Projeto: kuba/SIS
    def group_week(self, group_name, course_name=None):
        """
        Render group's schedule for entire week.

        :param group_name: Full name of the group (including year index)
        :pram course_name: Optional name of the course

        """
        schedule = Schedule.current()
        group = Group.by_full_name(group_name)
        if group is None:
            c.group_name = group_name
            return render('schedule/group/not_found.xml')

        gs = group.schedule(schedule.id)

        # Fetch the course schedule and merge it with group schedule
        if course_name is not None:
            course = Group.by_full_name(group_name[0]+course_name)
            c.course = course
            if course is None:
                c.group_name = group_name[0]+course_name
                return render('schedule/group/not_found.xml')
            else:
                cs = course.schedule(schedule.id)
                if cs is not None:
                    for day_number, day in enumerate(cs):
                        for order, lesson in enumerate(day):
                            while len(gs[day_number]) < order + 1:
                                gs[day_number].append(None)
                            if gs[day_number][order] is None:
                                gs[day_number][order] = lesson
        else:
            c.course = None

        c.courses = None
        if len(group_name) != 2:
            # group is not course
            from sqlalchemy import func
            q = Group.query_active().filter(Group.year_id == group.year_id).\
                        filter(func.length(Group.name) == 1).\
                        order_by(Group.name)
            c.courses = q.all()

        c.group = group
        c.group_name = group_name
        c.year = schedule.year
        c.schedule = gs
        return render('schedule/group/week.xml')
Exemplo n.º 3
0
Arquivo: schedule.py Projeto: kuba/SIS
    def group(self, group_name, day_name=None, course_name=None):
        """
        Render group's schedule for the given day. Optionally with the course.

        :param group_name: Full name of the group (includeing year index)
        :param day_name: Name of the day
        :param course_name: Optional couse name

        """
        schedule = Schedule.current()
        year = schedule.year

        group = Group.by_full_name(group_name)
        if group is None:
            c.group_name = group_name
            return render('schedule/group/not_found.xml')

        day = self._translate_weekday(day_name)
        if day is None:
            return 'Bad day!'

        gs = group.schedule_for_day(day, schedule.id)

        if course_name is not None:
            course_full_name = group_name[0] + course_name
            course = Group.by_full_name(course_full_name)
            if course is None:
                c.group_name = course_full_name
                return render('schedule/group/not_found.xml')
            else:
                cs = course.schedule_for_day(day, schedule.id)
                for o, lesson in enumerate(cs):
                    while len(gs) < o + 1:
                        gs.append(None)
                    if gs[o] is None:
                        gs[o] = lesson
                    # TODO elif gs[o] is list
            c.course = course
        else:
            c.course = None

        c.group = group
        c.year = year
        c.lessons = gs
        return render('schedule/group.xml')
Exemplo n.º 4
0
Arquivo: schedule.py Projeto: kuba/SIS
    def group(self, group_name, day_name=None, course_name=None):
        """
        Render group's schedule for the given day. Optionally with the course.

        :param group_name: Full name of the group (includeing year index)
        :param day_name: Name of the day
        :param course_name: Optional couse name

        """
        schedule = Schedule.current()
        year = schedule.year

        group = Group.by_full_name(group_name)
        if group is None:
            c.group_name = group_name
            return render('schedule/group/not_found.xml')

        day = self._translate_weekday(day_name)
        if day is None:
            return 'Bad day!'

        gs = group.schedule_for_day(day, schedule.id)

        if course_name is not None:
            course_full_name = group_name[0] + course_name
            course = Group.by_full_name(course_full_name)
            if course is None:
                c.group_name = course_full_name
                return render('schedule/group/not_found.xml')
            else:
                cs = course.schedule_for_day(day, schedule.id)
                for o, lesson in enumerate(cs):
                    while len(gs) < o + 1:
                        gs.append(None)
                    if gs[o] is None:
                        gs[o] = lesson
                    # TODO elif gs[o] is list
            c.course = course
        else:
            c.course = None

        c.group = group
        c.year = year
        c.lessons = gs
        return render('schedule/group.xml')