def get(self): manager = self.request.environ['current_user'] user_departments_keys = [] prs = PerformanceReview.all().filter('manager', manager) for pr in prs: if pr.period.is_open: if not pr.employee.dept.key() in user_departments_keys: user_departments_keys.append(pr.employee.dept.key()) user_departments = map(lambda x: Dept.get(x), user_departments_keys) archived_periods = PerformanceReviewPeriod.gql("WHERE is_open = false ORDER BY start_date DESC").fetch(1000) def manager_has_pr_in_period(period): for pr in period.performance_reviews: if pr.manager.email == manager.email: return True archived_periods = filter(manager_has_pr_in_period, archived_periods) comments = CommentToForm.gql("WHERE manager = :manager", manager = manager).fetch(1000) comments = filter(lambda x: x.pr.period.is_open, comments) template_values = {"departments": user_departments, "archived_periods": archived_periods, "comments": comments } path = 'templates/api.manager.home.html' self.response.out.write(template.render(path, template_values))
def get(self): open_periods = PerformanceReviewPeriod.all().order("-start_date").filter('is_open', True).fetch(1000) closed_periods = PerformanceReviewPeriod.all().order("-start_date").filter('is_open', False).fetch(1000) for period in open_periods: period.register = 'disabled' period.delete = 'inline' period.departments = [] for pr in period.performance_reviews: if pr.period.is_open: if not pr.employee.dept.key() in period.departments: period.departments.append(pr.employee.dept.key()) period.departments = map(lambda x: Dept.get(x), period.departments) for pr in period.performance_reviews: if pr.manager_form or pr.employee_form: period.delete = 'none' for department in period.departments: department.prs = filter(lambda x: x.employee.dept.name == department.name, period.performance_reviews) for pr in department.prs: pr.register = 'disabled' if pr.manager_form: if pr.manager_form.status == 'submitted': department.register = '' pr.register = '' template_values = {'open_periods': open_periods, 'closed_periods': closed_periods} path = 'templates/hr_table.html' self.response.out.write(template.render(path, template_values))