def employee_view(employee_id): employee = Employee.query.filter_by(id=employee_id).first() return render_template( 'employee.html', employee=employee, employee_birth_date=from_timestamp(employee.birth_date), employee_start_work_date=from_timestamp(employee.start_work_date))
def format_date(raw_date, tz='Etc/UTC'): raw_date = int(raw_date) tz = pytz.timezone(tz) date = from_timestamp(raw_date).astimezone(tz) today = datetime.now(pytz.utc).astimezone(tz) delta = date - today if date.year == today.year: if delta < timedelta(days=7): if (date.day - today.day) < 2: if (date.day - today.day) == 0: format = 'Today' else: format = 'Tomorrow' else: format = '%A' else: format = '%b. %d' else: format = '%b. %d, %Y' formatted_date = date.strftime(format) formatted_time = date.strftime('%I:%M%p') return '%s at %s' % (formatted_date, formatted_time.lstrip('0'))
def patch(): """ Updates employee's personal info. Just gets all updated info from request data and updates table row. :return: success/error json """ employee_id = request.form.get('employee_id') new_name = request.form.get('name') new_surname = request.form.get('surname') new_department_id = request.form.get('department_id') new_position_id = request.form.get('position_id') new_phone = request.form.get('phone') new_email = request.form.get('email') new_birth_date = to_timestamp(request.form.get('birth_date')) new_start_work_date = to_timestamp(request.form.get('start_work_date')) new_is_department_leader = request.form.get('is_department_leader') if not employee_id: return {'error': 'employee_id is required'}, 400 try: employee = Employee.query.filter_by(id=employee_id).first() if not employee: return { 'error': 'employee {} not found'.format(employee_id) }, 400 else: try: employee.name = new_name employee.surname = new_surname employee.department_id = new_department_id employee.position_id = new_position_id employee.phone = new_phone if new_phone else '' employee.email = new_email if new_email else '' employee.birth_date = new_birth_date if new_birth_date else 0 employee.start_work_date = new_start_work_date if new_start_work_date else 0 if new_is_department_leader and new_is_department_leader in ( True, 'true', 'True', 'yes'): make_new_department_leader(new_department_id, employee_id) db.session.add(employee) db.session.commit() return { 'success': 'employee info updated', 'employee': { 'id': employee.id, 'department': { 'id': employee.department.id, 'name': employee.department.name }, 'position': { 'id': employee.position.id, 'name': employee.position.name }, 'name': employee.name, 'surname': employee.surname, 'email': employee.email, 'phone': employee.phone, 'birth_date': from_timestamp(employee.birth_date), 'start_work_date': from_timestamp(employee.start_work_date), 'is_department_leader': employee.is_department_leader } } except Exception as e: return {'error': e} except DataError: return {'error': 'employee_id must be int'}, 400
def str_date_opened(self): return from_timestamp(self.date_opened)
def register(event, contacts, tz=None): # late import to User model can use phone number normalizer from api.users.models import User if not u"id" in event: event[u"id"] = str(event[u"_id"]) registered = list() out_of_numbers = list() has_username = list() for contact in contacts: contact[u"number"] = contact[u"number"] user = User.get({u"number": contact[u"number"]}) if user is None: user = User(number=contact[u"number"], display_name=contact[u"name"]) user.save() # Connectsy users don't get SMS if user[u"username"] is not None: has_username.append(user) continue # make sure this user still has numbers available potential_numbers = [n for n in settings.TWILIO_NUMBERS] for reg in SMSRegister.find({u"contact_number": contact[u"number"]}): if from_timestamp(reg[u"expires"]) > datetime.now(pytz.utc): potential_numbers = [n for n in potential_numbers if n != reg[u"twilio_number"]] if len(potential_numbers) == 0: out_of_numbers.append(contact) continue if tz is None: tz = "America/Toronto" if event[u"when"]: expires = event[u"when"] else: print "created", event[u"created"] expires = timestamp(dt=from_timestamp(event[u"created"]) + timedelta(days=2)) registered.append(user) r = SMSRegister( contact_number=contact[u"number"], twilio_number=potential_numbers[0], event=event[u"id"], expires=expires, user=user[u"id"], tz=tz, ) r.save() # register with the notifications system as well note = { u"user": user[u"id"], u"timestamp": timestamp(), u"client_type": "SMS", u"client_id": r[u"contact_number"], } NotificationRegister(**note).save() return registered, out_of_numbers, has_username