Ejemplo n.º 1
0
    def get(self):
        # pass map of quarter DB representations (ints) to string representation
        # TODO:
        #    quarters should not be hardcoded
        quarter_map = {1: 'Fall', 2: 'Winter', 3: 'Spring', 4: 'Summer'}
        quarter = self.request.get('quarter')
        year = self.request.get('year')

        # try getting quarter/year from session
        if not quarter or not year:
            temp = get_sess_vals(self.session, 'quarter', 'year')
            if not temp:
                return self.redirect(
                    '/admin?message=Please set a current quarter and year')
            quarter, year = temp

        quarter, year = int(quarter), int(year)
        student = ndb.Key(urlsafe=self.request.get('student')).get()
        assign_range = AssignmentModel.get_assign_range(quarter, year)

        partner_history = PartnershipModel.get_active_partner_history_for_student(
            student, quarter, year, fill_gaps=assign_range)
        all_partner_history = PartnershipModel.get_all_partner_history_for_student(
            student, quarter, year)

        evals = EvalModel.get_eval_history_by_evaluator(
            student, True, quarter, year).fetch()
        evals += EvalModel.get_eval_history_by_evaluator(
            student, False, quarter, year).fetch()
        evals = sorted(evals, key=lambda x: x.assignment_number)

        evals_for = EvalModel.get_eval_history_by_evaluatee(
            student, True, quarter, year).fetch()
        evals_for += EvalModel.get_eval_history_by_evaluatee(
            student, False, quarter, year).fetch()
        evals_for = sorted(evals_for, key=lambda x: x.assignment_number)

        log = LogModel.get_log_by_student(student, quarter, year).get()
        if log:
            log_arr = log.log
        else:
            log_arr = []

        template = JINJA_ENV.get_template('/templates/admin_student_view.html')
        template_values = {
            'student': student,
            'partners': partner_history,
            'all_partners': all_partner_history,
            'assign_range': assign_range,
            'evals': evals,
            'evals_for': evals_for,
            'user': users.get_current_user(),
            'log': log_arr,
            'sign_out': users.create_logout_url('/'),
        }
        return self.response.write(template.render(template_values))
Ejemplo n.º 2
0
    def get(self):
        # pass map of quarter DB representations (ints) to string representation
        # TODO:
        #    quarters should not be hardcoded 
        quarter_map = {1: 'Fall', 2: 'Winter', 3: 'Spring', 4: 'Summer'}
        quarter     = self.request.get('quarter')                        
        year        = self.request.get('year')

        # try getting quarter/year from session
        if not quarter or not year:                                
            temp = get_sess_vals(self.session, 'quarter', 'year')
            if not temp:                                
                return self.redirect('/admin?message=Please set a current quarter and year')
            quarter,year = temp                                                    

        quarter,year = int(quarter), int(year)
        student      = ndb.Key(urlsafe=self.request.get('student')).get()
        assign_range = AssignmentModel.get_assign_range(quarter, year)

        partner_history     = PartnershipModel.get_active_partner_history_for_student(student, quarter, year, fill_gaps=assign_range)
        all_partner_history = PartnershipModel.get_all_partner_history_for_student(student, quarter, year)

        evals  = EvalModel.get_eval_history_by_evaluator(student, True, quarter, year).fetch()
        evals += EvalModel.get_eval_history_by_evaluator(student, False, quarter, year).fetch()
        evals  = sorted(evals, key=lambda x: x.assignment_number)

        evals_for  = EvalModel.get_eval_history_by_evaluatee(student, True, quarter, year).fetch()
        evals_for += EvalModel.get_eval_history_by_evaluatee(student, False, quarter, year).fetch()
        evals_for  = sorted(evals_for, key=lambda x: x.assignment_number)

        template = JINJA_ENV.get_template('/templates/admin_student_view.html')
        template_values = {
            'student':      student,
            'partners':     partner_history,
            'all_partners': all_partner_history,
            'assign_range': assign_range,
            'evals':        evals,
            'evals_for':    evals_for,
            'user':         users.get_current_user(),
            'sign_out':     users.create_logout_url('/'),
        }
        return self.response.write(template.render(template_values))