Skip to content

Commit dbf257f

Browse files
committed
Merge branch 'main' of https://github.com/techx/qstack into sabrina_mentor_notes
2 parents 9d98e37 + a093557 commit dbf257f

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

client/src/routes/admin.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import * as admin from "../api/admin";
1717
interface ticket {
1818
total: number;
1919
averageRating: number;
20+
averageTime: number;
2021
}
2122

2223
interface user {
@@ -53,6 +54,7 @@ export default function AdminPanel() {
5354
const ticketStats: ticket = {
5455
total: parseInt(ticketRes.tags.total),
5556
averageRating: parseFloat(ticketRes.tags.averageRating),
57+
averageTime: parseInt(ticketRes.tags.averageTime)
5658
};
5759
setTicketStats(ticketStats);
5860
setLoading(false);
@@ -95,6 +97,7 @@ export default function AdminPanel() {
9597
Ticket Stats
9698
</Title>
9799
<Text>Total Resolved Tickets: {ticketStats.total}</Text>
100+
<Text>Average Time to Claim Ticket: {ticketStats.averageTime}</Text>
98101
<Text>
99102
Average Mentor Rating:{" "}
100103
{computeNormalizedRating(
@@ -146,7 +149,7 @@ export default function AdminPanel() {
146149
</Table.Tr>
147150
</Table.Thead>
148151
<Table.Tbody>
149-
{users.map((user, index) => (
152+
{users.map((user, _) => (
150153
<>
151154
<Table.Tr>
152155
<Table.Td>{user.name}</Table.Td>

server/controllers/admin.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,31 @@ def getTicketData():
1818
totalTickets = 0
1919
sumAverageMentorRating = 0
2020
totalMentors = 0
21+
avgTime = 0
22+
totalTickets = 0
2123

2224
for mentor in mentors:
2325
totalTickets += len(mentor.ratings)
2426
if len(mentor.ratings) != 0:
2527
sumAverageMentorRating += sum(mentor.ratings) / len(mentor.ratings)
2628
totalMentors += 1
29+
30+
for ticket in Ticket.query.all():
31+
if ticket.claimedAt is not None:
32+
avgTime += (ticket.claimedAt - ticket.createdAt).total_seconds()
33+
totalTickets += 1
2734

2835
if totalMentors != 0:
2936
averageRating = sumAverageMentorRating/totalMentors
3037
else:
3138
averageRating = 0
39+
40+
if totalTickets != 0:
41+
avgTimeToClaim = avgTime/totalTickets
42+
else:
43+
avgTimeToClaim = 0
3244

33-
return {"total": totalTickets, "averageRating": averageRating}
45+
return {"total": totalTickets, "averageRating": averageRating, "averageTime": avgTimeToClaim}
3446

3547

3648
@admin.route("/userdata")

server/controllers/queue.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def claim():
3636
ticket.claimant = user
3737
ticket.active = False
3838
user.claimed = ticket
39+
ticket.claimedAt = db.func.now()
3940

4041
db.session.commit()
4142
return {"message": "Ticket claimed!"}
@@ -59,6 +60,7 @@ def unclaim():
5960
ticket.claimant_id = None
6061
ticket.status = None
6162
user.claimed = None
63+
ticket.claimedAt = None
6264

6365
db.session.commit()
6466
return {"message": "Ticket unclaimed!"}

server/models/ticket.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class Ticket(db.Model):
2323
status = Column(String)
2424

2525
createdAt = Column(DateTime, nullable=False)
26+
claimedAt = Column(DateTime)
2627

2728
def __init__(self, user, data, active):
2829
self.creator = user
@@ -34,6 +35,7 @@ def __init__(self, user, data, active):
3435
self.active = active
3536
self.createdAt = db.func.now()
3637
self.status = "unclaimed"
38+
self.claimedAt = None
3739

3840
def update(self, data):
3941
self.question = data["question"]

0 commit comments

Comments
 (0)