def get(self, period_key): user = self.request.environ['current_user'] period = PerformanceReviewPeriod.get(period_key) if period.is_open: period.is_open = False period.put() else: self.response.out.write('Error. Period is already closed') return self.response.out.write('ok')
def post(self): period_key = self.request.get('period_key') if period_key: period = PerformanceReviewPeriod.get(period_key) delete_pr = 1 for pr in period.performance_reviews: if pr.manager_form or pr.employee_form: delete_pr = 0 if delete_pr: for pr in period.performance_reviews: pr.delete() period.delete()
def get(self, key): period = PerformanceReviewPeriod.get(key) prs = PerformanceReview.all().filter('period', period).fetch(1000) prs = sorted(prs, key=lambda x: x.employee.dept.name) for pr in prs: if get_prev_pr(pr): try: if get_prev_pr(pr).manager_form.get_all_data['salary'].\ value != pr.manager_form.get_all_data['salary'].value: pr.salary_highlight = 'highlight' if get_prev_pr(pr).manager_form.get_all_data['grade'].\ value != pr.manager_form.get_all_data['grade'].value: pr.grade_highlight = 'highlight' except AttributeError: pr.grade_highlight = None path = 'templates/detailed_report.html' self.response.out.write(template.render(path, {'prs': prs}))
def get(self, key): depts = Dept.all() period = PerformanceReviewPeriod.get(key) summary = [] for dept in depts: existed_pr = filter(lambda x: x.self_pr.get(), dept.users) all_dept_prs = filter(lambda x: x.self_pr.filter('period', period).get(), existed_pr) if all_dept_prs: employees = len(all_dept_prs) clean_manager_form = filter(lambda x: not x.self_pr.order('-date').get(). manager_form, existed_pr) clean_employee_form = filter(lambda x: not x.self_pr.order('-date') .get(). employee_form, existed_pr) clean_draft = len(clean_employee_form) + \ len(clean_manager_form) not_clean_manager_form = filter(lambda x: x.self_pr.order('-date').get(). manager_form, existed_pr) not_clean_employee_form = filter(lambda x: x.self_pr.order('-date') .get(). employee_form, existed_pr) man_draft_in_work = filter(lambda x: x.self_pr.order('-date').get(). manager_form.status == 'draft', not_clean_manager_form) emp_draft_in_work = filter(lambda x: x.self_pr.order('-date').get(). employee_form.status == 'draft', not_clean_employee_form) in_work = len(man_draft_in_work) + len(emp_draft_in_work) registered_pr = filter(lambda x: x.self_pr.order('-date').get() .manager_form.status == 'registered', not_clean_manager_form) reg_pr = len(registered_pr) submitted_by_employee = filter(lambda x: x.self_pr.order('-date').get(). employee_form.status == 'submitted', not_clean_employee_form) emp_submit = len(submitted_by_employee) submitted_by_manager = filter(lambda x: x.self_pr.order('-date').get(). manager_form.status == 'submitted', not_clean_manager_form) man_submit = len(submitted_by_manager) approved_pr = filter(lambda x: x.self_pr.order('-date').get() .manager_form .status == 'approved', not_clean_manager_form) approved = len(approved_pr) all_draft = clean_draft + in_work + emp_submit + man_submit percent = (approved * 100) / employees dept_info = {'name': dept.name, 'employees': employees, 'clean': clean_draft, 'in_work': in_work, 'all_draft': all_draft, 'reg': reg_pr, 'percent': percent, 'approved': approved, 'emp_submit': emp_submit, 'man_submit': man_submit} summary.append(dept_info) template_values = {'summary': summary} path = 'templates/summary_report.html' self.response.out.write(template.render(path, template_values))