def post(self): key = self.request.get('key') email = self.request.get('email').strip() user = User.get(key) user.email = email first_name = self.request.get('first_name').strip() user.first_name = first_name last_name = self.request.get('last_name').strip() user.last_name = last_name position = self.request.get('position') user.position = position first_date = self.request.get('first_date') try: first_date = datetime.datetime.strptime(first_date, '%Y-%m-%d').date() except ValueError: first_date = None user.first_date = first_date dept = self.request.get('dept') dept_ref = Dept.all().filter('name', dept).get() if dept_ref is None: dept_ref = Dept(name=dept) dept_ref.put() user.dept = dept_ref try: manager = Model.get(self.request.get('manager')) except BadKeyError: manager = None user.manager = manager roles = self.request.get('role')[:-1].split(',') user.role = [] for role in roles: role_key = Role.gql("WHERE value = :role", role=role).get().key() user.role.append(role_key) user.put() self.response.out.write('You have successfully updated user info')
def post(self): user = self.request.environ['current_user'] role_key = Role.gql("WHERE value = :hr", hr='hr').get().key() if role_key not in user.role: self.error(403) return start_str = self.request.get('start') finish_str = self.request.get('finish') type = self.request.get('type') event = Event.all().filter('type', type).get() try: first_date = event.first_effective_date except AttributeError: first_date = None employees = self.request.get('employees')[:-1].split(',') try: start = datetime.datetime.strptime(start_str, '%Y-%m-%d').date() finish = datetime.datetime.strptime(finish_str, '%Y-%m-%d').date() except ValueError: self.response.out.write('incorrect date') self.error(403) return description = "PR %s: %s-%s" % (type, start_str, finish_str) period = PerformanceReviewPeriod(type=type, description=description, start_date=start, finish_date=finish) period.put() for employee in employees: if employee != '': user = Model.get(employee) pr = PerformanceReview(employee=user, first_effective_date=first_date, manager=user.manager, period=period, date=start) pr.put() self.response.out.write(period.key())