Added employees management functions for Payroll staff
This commit is contained in:
@@ -5923,7 +5923,7 @@ def export_statistics():
|
|||||||
|
|
||||||
# EMPLOYEE MANAGEMENT ROUTES
|
# EMPLOYEE MANAGEMENT ROUTES
|
||||||
@app.route('/employees')
|
@app.route('/employees')
|
||||||
@admin_required
|
@login_required
|
||||||
def employees():
|
def employees():
|
||||||
"""Display employee management page with search and pagination"""
|
"""Display employee management page with search and pagination"""
|
||||||
try:
|
try:
|
||||||
@@ -5985,7 +5985,7 @@ def employees():
|
|||||||
return redirect(url_for('dashboard'))
|
return redirect(url_for('dashboard'))
|
||||||
|
|
||||||
@app.route('/employees/create', methods=['GET', 'POST'])
|
@app.route('/employees/create', methods=['GET', 'POST'])
|
||||||
@admin_required
|
@login_required
|
||||||
@log_database_operations('employee_creation')
|
@log_database_operations('employee_creation')
|
||||||
def create_employee():
|
def create_employee():
|
||||||
"""Create new employee (Admin only)"""
|
"""Create new employee (Admin only)"""
|
||||||
@@ -6047,7 +6047,7 @@ def create_employee():
|
|||||||
return render_template('create_employee.html')
|
return render_template('create_employee.html')
|
||||||
|
|
||||||
@app.route('/employees/<int:employee_index>/edit', methods=['GET', 'POST'])
|
@app.route('/employees/<int:employee_index>/edit', methods=['GET', 'POST'])
|
||||||
@admin_required
|
@login_required
|
||||||
@log_database_operations('employee_update')
|
@log_database_operations('employee_update')
|
||||||
def edit_employee(employee_index):
|
def edit_employee(employee_index):
|
||||||
"""Edit existing employee (Admin only)"""
|
"""Edit existing employee (Admin only)"""
|
||||||
@@ -6118,7 +6118,7 @@ def edit_employee(employee_index):
|
|||||||
return redirect(url_for('employees'))
|
return redirect(url_for('employees'))
|
||||||
|
|
||||||
@app.route('/employees/<int:employee_index>/delete', methods=['POST'])
|
@app.route('/employees/<int:employee_index>/delete', methods=['POST'])
|
||||||
@admin_required
|
@login_required
|
||||||
@log_database_operations('employee_deletion')
|
@log_database_operations('employee_deletion')
|
||||||
def delete_employee(employee_index):
|
def delete_employee(employee_index):
|
||||||
"""Delete employee (Admin only) - Enhanced with better logging"""
|
"""Delete employee (Admin only) - Enhanced with better logging"""
|
||||||
@@ -6205,7 +6205,7 @@ def api_employees_search():
|
|||||||
return jsonify({'error': 'Search failed'}), 500
|
return jsonify({'error': 'Search failed'}), 500
|
||||||
|
|
||||||
@app.route('/employees/<int:employee_index>')
|
@app.route('/employees/<int:employee_index>')
|
||||||
@admin_required
|
@login_required
|
||||||
def employee_detail(employee_index):
|
def employee_detail(employee_index):
|
||||||
"""View employee details with attendance summary"""
|
"""View employee details with attendance summary"""
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -93,6 +93,10 @@
|
|||||||
<span class="menu-text">System Logs</span>
|
<span class="menu-text">System Logs</span>
|
||||||
</a>
|
</a>
|
||||||
{% elif session.role in ['payroll'] %}
|
{% elif session.role in ['payroll'] %}
|
||||||
|
<a href="{{ url_for('employees') }}" class="menu-item">
|
||||||
|
<i class="fas fa-user"></i>
|
||||||
|
<span class="menu-text">Employees</span>
|
||||||
|
</a>
|
||||||
<a href="{{ url_for('attendance_report') }}" class="menu-item">
|
<a href="{{ url_for('attendance_report') }}" class="menu-item">
|
||||||
<i class="fas fa-chart-line"></i>
|
<i class="fas fa-chart-line"></i>
|
||||||
<span class="menu-text">Reports</span>
|
<span class="menu-text">Reports</span>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ extra_head %}
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header-actions">
|
<div class="header-actions">
|
||||||
{% if session.role == 'admin' %}
|
{% if session.role in ['admin', 'payroll'] %}
|
||||||
<a href="{{ url_for('create_employee') }}" class="btn btn-primary">
|
<a href="{{ url_for('create_employee') }}" class="btn btn-primary">
|
||||||
<i class="fas fa-plus"></i>
|
<i class="fas fa-plus"></i>
|
||||||
Add Employee
|
Add Employee
|
||||||
@@ -177,7 +177,7 @@ extra_head %}
|
|||||||
<i class="fas fa-eye"></i>
|
<i class="fas fa-eye"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{% if session.role == 'admin' %}
|
{% if session.role in ['admin', 'payroll'] %}
|
||||||
<a
|
<a
|
||||||
href="{{ url_for('edit_employee', employee_index=employee.index) }}"
|
href="{{ url_for('edit_employee', employee_index=employee.index) }}"
|
||||||
class="btn btn-sm btn-warning"
|
class="btn btn-sm btn-warning"
|
||||||
|
|||||||
Reference in New Issue
Block a user