Skip to content
Snippets Groups Projects
Commit 72b68cce authored by Bo-Chun Chen's avatar Bo-Chun Chen
Browse files

Added views for admin employees pages

parent 46ff59c4
No related branches found
No related tags found
No related merge requests found
......@@ -2,9 +2,9 @@ from flask import abort, flash, redirect, render_template, url_for
from flask_login import current_user, login_required
from . import admin
from forms import DepartmentForm, RoleForm
from forms import DepartmentForm, EmployeeAssignForm, RoleForm
from .. import db
from ..models import Department, Role
from ..models import Department, Employee, Role
def check_admin():
"""
......@@ -191,3 +191,45 @@ def delete_role(id):
return redirect(url_for('admin.list_roles'))
return render_template(title="Delete Role")
# Employee Views
@admin.route('/employees')
@login_required
def list_employees():
"""
List all employees
"""
check_admin()
employees = Employee.query.all()
return render_template('admin/employees/employees.html',
employees=employees, title='Employees')
@admin.route('/employees/assign/<int:id>', methods=['GET', 'POST'])
@login_required
def assign_employee(id):
"""
Assign a department and a role to an employee
"""
check_admin()
employee = Employee.query.get_or_404(id)
# prevent admin from being assigned a department or role
if employee.is_admin:
abort(403)
form = EmployeeAssignForm(obj=employee)
if form.validate_on_submit():
employee.department = form.department.data
employee.role = form.role.data
db.session.add(employee)
db.session.commit()
flash('You have successfully assigned a department and role.')
# redirect to the roles page
return redirect(url_for('admin.list_employees'))
return render_template('admin/employees/employee.html',
employee=employee, form=form,
title='Assign Employee')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment