Ejemplo n.º 1
0
Archivo: evo.py Proyecto: Yegor-V/flask
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))
Ejemplo n.º 2
0
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'))
Ejemplo n.º 3
0
Archivo: evo.py Proyecto: Yegor-V/flask
    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
Ejemplo n.º 4
0
Archivo: evo.py Proyecto: Yegor-V/flask
 def str_date_opened(self):
     return from_timestamp(self.date_opened)
Ejemplo n.º 5
0
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