Beispiel #1
0
def delete_job(company_id):
    """DECLINE JOB REQUEST"""
    if check_user_type(current_user.id) != 'employee':
        abort(401)

    if request.method == 'POST':
        job_delete_url = f"{API_URL}/employees/\
{current_user.id}/companies?company_id={company_id}"

        delete_job = requests.delete(job_delete_url)

    return redirect(url_for('employee.dashboard'))
Beispiel #2
0
def delete_user():
    """Delete user"""
    if check_user_type(current_user.id) != 'company':
        abort(401)

    if request.method == 'POST':
        delete_user = requests.delete(f"{API_URL}/companies/{current_user.id}")
        if delete_user.status_code == 204:
            logout_user()
            flash("Sad to see you go :(", category='flash-error')
            return redirect(url_for('login'))
        return redirect(url_for('company.profile'))
Beispiel #3
0
def delete_employee(employee_id):
    """DELETE EMPLOYEE FROM EMPLOYEE's LIST"""
    if check_user_type(current_user.id) != 'company':
        abort(401)

    if request.method == 'POST':
        employee_delete_url = f"{API_URL}/companies/\
{current_user.id}/employees?employee_id={employee_id}"

        delete_employee = requests.delete(employee_delete_url)

    return redirect(url_for('company.dashboard'))
Beispiel #4
0
def employee_calendars(employee_id):
    """All of employees calendar for company"""
    if check_user_type(current_user.id) != 'company':
        abort(401)

    if employee_id == 'DELETED':
        return redirect(url_for('company.company_calendars'))

    employee_calendars = requests.get(f"{API_URL}/calendars/companies/\
{current_user.id}/employees/{employee_id}")

    calendars = employee_calendars.json()[1]['data']
    employee = requests.get(f"{API_URL}/employees/{employee_id}")

    return render_template('company_calendars.html',
                           calendars=calendars,
                           employee=employee.json())
Beispiel #5
0
def employee_calendars():
    """ALL calendars related to current user"""
    if check_user_type(current_user.id) != 'employee':
        abort(401)
    request_calendars = requests.get(
        f'{API_URL}/calendars/employees/{current_user.id}')
    calendars = request_calendars.json()[1]['data']
    for calendar in calendars:
        request_company = requests.get(calendar['links'][1]['href'])
        if request_company.status_code == 404:
            calendar['company_name'] = 'DELETED'
            calendar['company_id'] = 'DELETED'
        if request_company.status_code == 200:
            calendar['company_name'] = request_company.json()['company_name']
            calendar['company_id'] = request_company.json()['_id']

    return render_template('employee_calendars.html', calendars=calendars)
Beispiel #6
0
def job_offer(company_id, status):
    """DECLINE JOB REQUEST"""
    if check_user_type(current_user.id) != 'employee':
        abort(401)

    if request.method == 'POST':
        job_decline_url = f"{API_URL}/employees/\
{current_user.id}/companies?company_id={company_id}&status=decline"

        job_accept_url = f"{API_URL}/employees/\
{current_user.id}/companies?company_id={company_id}&status=accept"

        if status == 'decline':
            decline_job = requests.put(job_decline_url)
        if status == 'accept':
            accept_job = requests.put(job_accept_url)

    return redirect(url_for('employee.dashboard'))
Beispiel #7
0
def company_calendars():
    """All calendars for company"""
    if check_user_type(current_user.id) != 'company':
        abort(401)

    request_calendars = requests.get(
        f'{API_URL}/calendars/companies/{current_user.id}')
    calendars = request_calendars.json()[1]['data']
    for calendar in calendars:
        request_employee = requests.get(calendar['links'][0]['href'])
        if request_employee.status_code == 404:
            calendar['employee_name'] = 'DELETED'
            calendar['employee_id'] = 'DELETED'
        if request_employee.status_code == 200:
            calendar['employee_name'] = request_employee.json()['first_name']\
                + " " + request_employee.json()['last_name']
            calendar['employee_id'] = request_employee.json()['_id']

    return render_template('company_employee_calendar.html',
                           calendars=calendars)
Beispiel #8
0
def dashboard():
    if check_user_type(current_user.id) != 'employee':
        abort(401)
    """Get current user from API"""
    employee = requests.get(f"{API_URL}/employees/{current_user.id}")
    """Employee job offers"""
    pending_requests = employee.json()['pending_requests']
    company_offers = []
    for company_id in pending_requests:
        company = requests.get(f"{API_URL}/companies/{company_id}")
        company_offers.append(company.json())
    """companies employee work for"""
    companies_work = requests.get(
        f"{API_URL}/employees/{current_user.id}/companies")
    companies = companies_work.json()[1:]

    return render_template('employee_dashboard.html',
                           title='Dashboard',
                           company_offers=company_offers,
                           companies=companies)
Beispiel #9
0
def dashboard():
    """Check is current user is of type company"""
    if check_user_type(current_user.id) != 'company':
        abort(401)

    form = Email()
    """Get current user from API"""
    company = requests.get(f"{API_URL}/companies/{current_user.id}")
    """Employees working for company"""
    employees_work = requests.get(
        f"{API_URL}/companies/{current_user.id}/employees")
    employees = employees_work.json()[1:]

    if request.method == "POST":
        if form.validate_on_submit():
            _employee = requests.get(
                f"{API_URL}/employee?email={form.email.data}")

            if _employee.status_code == 200:
                employee_id = _employee.json()['employee']['id']
                add_employee = requests.put(
                    f"{API_URL}/companies/{current_user.id}/\
employees?employee_id={employee_id}")
                if add_employee.status_code == 400:
                    flash("Employee already in company",
                          category='flash-error')
                    return redirect(url_for('company.dashboard'))
                if add_employee.status_code == 200:
                    flash("Request sent successfully",
                          category='flash-success')
                    return redirect(url_for('company.dashboard'))
            else:
                flash("Employee doesn't exist", category='flash-error')
                return redirect(url_for('company.dashboard'))

    return render_template('company_dashboard.html',
                           employees=employees,
                           form=form)
Beispiel #10
0
def profile():
    """Profile"""
    if check_user_type(current_user.id) != 'company':
        abort(401)
    form = Password()
    """Get current user from API"""
    company = requests.get(f"{API_URL}/companies/{current_user.id}")

    if request.method == 'POST':
        if form.validate_on_submit():
            pwd = requests.put(f"{API_URL}/companies/{current_user.id}",
                               json={'password': form.password.data})
            if pwd.status_code == 200:
                flash("Password Changed successfully",
                      category='flash-success')
            else:
                flash("Something Went Wromg", category='flash-error')
        else:
            flash("Passwords don't validate", category='flash-error')
        return redirect(url_for('company.profile'))

    return render_template('company_profile.html',
                           form=form,
                           company=company.json())
Beispiel #11
0
def company_calendars(company_id):
    """Employee calendars given company_id"""
    if check_user_type(current_user.id) != 'employee':
        abort(401)

    if company_id == 'DELETED':
        return redirect(url_for('employee.employee_calendars'))
    """Current calendar"""
    current_calendar = requests.put(f"{API_URL}/calendars/companies/\
{company_id}/employees/{current_user.id}/current")
    """All of employees calendar for company"""
    company_calendars = requests.get(f"{API_URL}/calendars/companies/\
{company_id}/employees/{current_user.id}")

    form = Calendar()

    current_calendar = company_calendars.json()[1]['data'][-1]

    if request.method == 'POST':
        """Current calendar"""
        print(form.schema())
        if form.validate_on_submit():
            update_current_calendar = requests.put(
                f"{API_URL}/calendars/companies/{company_id}/employees/\
{current_user.id}/current",
                json=form.schema())

        return redirect(
            url_for('employee.company_calendars', company_id=company_id))

    # SUN
    form.SUN_HOUR.default = current_calendar['sunday']['hours']
    form.SUN_LOCAL.default = current_calendar['sunday']['location']
    form.SUN_DESCRIPTION.default = current_calendar['sunday']['description']
    # MON
    form.MON_HOUR.default = current_calendar['monday']['hours']
    form.MON_LOCAL.default = current_calendar['monday']['location']
    form.MON_DESCRIPTION.default = current_calendar['monday']['description']
    # TUE
    form.TUE_HOUR.default = current_calendar['tuesday']['hours']
    form.TUE_LOCAL.default = current_calendar['tuesday']['location']
    form.TUE_DESCRIPTION.default = current_calendar['tuesday']['description']
    # WED
    form.WED_HOUR.default = current_calendar['wednesday']['hours']
    form.WED_LOCAL.default = current_calendar['wednesday']['location']
    form.WED_DESCRIPTION.default = current_calendar['wednesday']['description']
    # THU
    form.THU_HOUR.default = current_calendar['thursday']['hours']
    form.THU_LOCAL.default = current_calendar['thursday']['location']
    form.THU_DESCRIPTION.default = current_calendar['thursday']['description']
    # FRI
    form.FRI_HOUR.default = current_calendar['friday']['hours']
    form.FRI_LOCAL.default = current_calendar['friday']['location']
    form.FRI_DESCRIPTION.default = current_calendar['friday']['description']
    # SAT
    form.SAT_HOUR.default = current_calendar['saturday']['hours']
    form.SAT_LOCAL.default = current_calendar['saturday']['location']
    form.SAT_DESCRIPTION.default = current_calendar['saturday']['description']
    form.process()

    calendars = company_calendars.json()[1]['data'][:-1]
    last_calendar = company_calendars.json()[1]['data'].pop()

    company = requests.get(f'{API_URL}/companies/{company_id}')

    return render_template('employee_company_calendar.html',
                           form=form,
                           calendars=calendars,
                           company_id=company_id,
                           current_calendar=last_calendar,
                           company=company.json())