def post(self): try: role = Role(value='manager') role.put() role = Role(value='employee') role.put() role = Role(value='hr') role.put() except: self.response.out.write('error') return
def get(self): user = self.request.environ['current_user'] prs = PerformanceReview.gql("WHERE employee = :user ORDER BY date DESC", user = user) prs = prs.fetch(1000) user_is_manager = 0 for role in user.role: if Role.get(role).value == "manager": user_is_manager = 1 break current_pr = None comments = None if not user_is_manager: comments = CommentToForm.gql("WHERE manager = :manager AND comment = NULL", manager = user).fetch(1000) comments = filter(lambda x: x.pr.period.is_open, comments) if prs: if prs[0].period.is_open: current_pr = prs[0] prs.remove(prs[0]) template_values = {'current_pr': current_pr, 'prs': prs, 'user': user, 'comments': comments } path = 'templates/api.employee.html' self.response.out.write(template.render(path, template_values))
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())
def get(self, key): users = User.all() managers = [] for user in users: for role in user.role: if Model.get(role).value == 'manager': managers.append(user) roles = [] if key: user = User.get(key) for role in user.role: roles.append(Role.get(role).value) else: user = None template_values = {'managers': managers, 'user': user, 'roles': roles} path = 'templates/new_user.html' self.response.out.write(template.render(path, template_values))
def get(self): file_key = ContactXlsFile.all().get().file_key blob_info = blobstore.BlobInfo.get(file_key) file = blob_info.open().read() wb = xlrd.open_workbook(file_contents=file) wb.sheet_names() sh = wb.sheet_by_index(0) cols_dict = {'first_name': 1, 'last_name': 0, 'dept': 2, 'position': 3, 'email': 4, 'manager': 12} manager_dict = {} reg = "^\s+|\n|\r|\s+$" employee_role = Role.all().filter('value', 'employee').get().key() for rownum in range(sh.nrows)[6:]: email = sh.cell_value(rownum, cols_dict['email']).strip() user = User.all().filter('email', email).get() if user is None: user = User(email=email) user.put() if not user.role: user.role.append(employee_role) string_fields = ['first_name', 'last_name', 'position', ] for field in string_fields: value = re.sub(reg, '', sh.cell_value(rownum, cols_dict[field])) setattr(user, field, value) department_str = re.sub(reg, '', sh.cell_value(rownum, cols_dict['dept'])) department = Dept.all().filter('name', department_str).get() if department is None: department = Dept(name=department_str) department.put() user.dept = department user.put() manager_str = re.sub(reg, '', sh.cell_value(rownum, cols_dict['manager'])) manager_dict[user.key()] = manager_str manager_role = Role.all().filter('value', 'manager').get().key() for user_key in manager_dict: manager_str = manager_dict[user_key].replace(' ', ' ') if manager_str: last_name, first_name = manager_str.split(' ')[:2] manager = User.all().filter('last_name', last_name).filter('first_name', first_name).get() else: manager = None if manager is not None: if manager_role not in manager.role: manager.role.append(manager_role) manager.put() user = User.get(user_key) user.manager = manager user.put() self.redirect('/users')