Beispiel #1
0
    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')
Beispiel #2
0
    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())