Ejemplo n.º 1
0
    def index(self, page=1, *args, **kwargs):
        '''Assignment detail page'''

        values = []

        if request.user:
            c.table = SubmissionTable(DBSession)

            values = SubmissionTableFiller(DBSession).get_value(
                assignment_id=self.assignment.id,
                user_id=request.user.id,
            )

            teams = set()
            for lesson in self.assignment.sheet.event.lessons:
                teams |= set(lesson.teams)
            teams &= set(request.user.teams)

            teammates = set()
            for team in teams:
                teammates |= set(team.members)
            teammates.discard(request.user)

            for teammate in teammates:
                values.extend(SubmissionTableFiller(DBSession).get_value(
                    assignment_id=self.assignment.id,
                    user_id=teammate.id,
                ))

        lexer_name = self.assignment.allowed_languages[0].lexer_name \
            if len(self.assignment.allowed_languages) == 1 else ''
        c.pygmentize = Pygmentize(lexer_name=lexer_name)

        return dict(page='assignments', event=self.event, assignment=self.assignment, values=values)
Ejemplo n.º 2
0
    def index(self, page=1):
        '''Submission listing page'''

        #TODO: Ugly and stolen from controllers.user

        c.table = SubmissionTable(DBSession)

        teammates = set()
        for team in request.user.teams:
            teammates |= set(team.students)
        teammates.discard(request.user)

        values = SubmissionTableFiller(DBSession).get_value(user_id=request.user.id)

        for teammate in teammates:
            values.extend(SubmissionTableFiller(DBSession).get_value(user_id=teammate.id))

        return dict(page='submissions', view=None, user=request.user, values=values)
Ejemplo n.º 3
0
    def index(self):
        #TODO: Ugly.

        memberships = defaultdict(list)

        if request.user:
            memberships['teams'] = request.user.teams
            memberships['lessons'] = request.user._lessons
            memberships['tutored_lessons'] = request.user.tutored_lessons
            #memberships['events'] = request.user.events

        c.table = SubmissionTable(DBSession)

        #        events = set((event for event in memberships['events']))
        #        events |= set((lesson.event for lesson in memberships['lessons']))
        #        events |= set((team.lesson.event for team in memberships['teams']))
        #
        #        for event in events:
        #            for sheet in event.sheets:
        #                for assignment in sheet.assignments:
        #                    pass

        teammates = set()
        for team in memberships['teams']:
            teammates |= set(team.students)
        teammates.discard(request.user)

        values = SubmissionTableFiller(DBSession).get_value(
            user_id=request.user.id)

        for teammate in teammates:
            values.extend(
                SubmissionTableFiller(DBSession).get_value(
                    user_id=teammate.id))

        return dict(page='user',
                    user=request.user,
                    values=values,
                    memberships=memberships)
Ejemplo n.º 4
0
    def index(self, page=1, *args, **kwargs):
        '''Assignment detail page'''

        values = []

        if request.user:
            c.table = SubmissionTable(DBSession)

            values = SubmissionTableFiller(DBSession).get_value(
                assignment_id=self.assignment.id,
                user_id=request.user.id,
            )

            teams = set()
            for lesson in self.assignment.sheet.event.lessons:
                teams |= set(lesson.teams)
            teams &= set(request.user.teams)

            teammates = set()
            for team in teams:
                teammates |= set(team.members)
            teammates.discard(request.user)

            for teammate in teammates:
                values.extend(
                    SubmissionTableFiller(DBSession).get_value(
                        assignment_id=self.assignment.id,
                        user_id=teammate.id,
                    ))

        lexer_name = self.assignment.allowed_languages[0].lexer_name \
            if len(self.assignment.allowed_languages) == 1 else ''
        c.pygmentize = Pygmentize(lexer_name=lexer_name)

        return dict(page='assignments',
                    event=self.event,
                    assignment=self.assignment,
                    values=values)