-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
104 lines (81 loc) · 2.68 KB
/
Copy pathapp.py
File metadata and controls
104 lines (81 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from flask import Flask, render_template, request, redirect, url_for, flash
from dotenv import load_dotenv
import os
from database.mongo import (
get_all_employees,
get_employee_by_id,
create_employee,
update_employee,
delete_employee
)
# Load environment variables
load_dotenv()
app = Flask(__name__)
app.secret_key = os.getenv("SECRET_KEY")
if not app.secret_key:
raise RuntimeError("SECRET_KEY must be set in the .env file")
@app.route("/")
def index():
"""
Home Page
- Shows list of employees
- Directly queries MongoDB (no caching)
"""
employees = get_all_employees()
return render_template("index.html", employees=employees)
@app.route("/add", methods=["GET", "POST"])
def add_employee():
"""
Add New Employee
"""
if request.method == "POST":
employee_data = {
"full_name": request.form.get("full_name"),
"email": request.form.get("email"),
"department": request.form.get("department"),
"role": request.form.get("role"),
"salary": request.form.get("salary"),
"date_of_joining": request.form.get("date_of_joining"),
"status": request.form.get("status"),
}
create_employee(employee_data)
flash("Employee added successfully!", "success")
return redirect(url_for("index"))
return render_template("add.html")
@app.route("/edit/<employee_id>", methods=["GET", "POST"])
def edit_employee(employee_id):
"""
Edit Employee
"""
employee = get_employee_by_id(employee_id)
if not employee:
flash("Employee not found", "error")
return redirect(url_for("index"))
if request.method == "POST":
updated_data = {
"full_name": request.form.get("full_name"),
"email": request.form.get("email"),
"department": request.form.get("department"),
"role": request.form.get("role"),
"salary": request.form.get("salary"),
"date_of_joining": request.form.get("date_of_joining"),
"status": request.form.get("status"),
}
update_employee(employee_id, updated_data)
flash("Employee updated successfully!", "success")
return redirect(url_for("index"))
return render_template("edit.html", employee=employee)
@app.route("/delete/<employee_id>")
def delete_employee_route(employee_id):
"""
Delete Employee
"""
delete_employee(employee_id)
flash("Employee deleted successfully!", "success")
return redirect(url_for("index"))
if __name__ == "__main__":
app.run(
host="0.0.0.0",
port=5000,
debug=os.getenv("FLASK_DEBUG") == "True"
)