-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbadge_system.py
More file actions
127 lines (106 loc) · 2.86 KB
/
Copy pathbadge_system.py
File metadata and controls
127 lines (106 loc) · 2.86 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from db_interaction import *
def add_badge(uid, bid):
bid = (str)(bid)
session = Session()
if (has_badge(uid, bid)):
session.close()
return
else:
to_change = session.query(Badge).filter(Badge.uid == uid).first().badgeids + ',' + bid
session.query(Badge).filter(Badge.uid == uid).update(
{Badge.badgeids: to_change})
session.commit()
session.close()
def has_badge(uid, bid):
badges = get_badges(uid)
for b in badges:
if b == bid or (int)(b) == (int)(bid):
return True
return False
def get_badges(uid):
badges = []
session = Session()
q = session.query(Badge).filter(Badge.uid == uid)
amt = q.count()
if amt < 1:
b = Badge(uid=uid, badgeids='')
session.add(b)
session.commit()
q = q.first().badgeids
q_split = q.split(',')
for b in q_split:
if b == '':
continue
badges.append((int)(b))
session.commit()
session.close()
return badges
# Main Badge Award System
def award_badges(uid):
badge_0(uid)
badge_1(uid)
badge_2(uid)
badge_3(uid)
badge_4(uid)
# Badge ID - 0
# Awards badge 0 if a user has answered greater than 10 questions correctly
def badge_0(uid):
session = Session()
u = get_user_by_uid(uid)
total_correct = u.totalcorrect
if total_correct >= 10:
add_badge(uid, 0)
session.commit()
session.close()
# Badge ID - 1
# Awards the badge if the user has answered 25 questions correctly
def badge_1(uid):
session = Session()
session = Session()
u = get_user_by_uid(uid)
total_correct = u.totalcorrect
if total_correct >= 25:
add_badge(uid, 1)
session.commit()
session.close()
# Badge ID - 2
# Awards the badge if the user has answered 50 questions correctly
def badge_2(uid):
session = Session()
session = Session()
u = get_user_by_uid(uid)
total_correct = u.totalcorrect
if total_correct >= 50:
add_badge(uid, 2)
session.commit()
session.close()
# Badge ID - 3
# Awards the badge if the user has answered 100 questions correctly
def badge_3(uid):
session = Session()
session = Session()
u = get_user_by_uid(uid)
total_correct = u.totalcorrect
if total_correct >= 100:
add_badge(uid, 3)
session.commit()
session.close()
# Badge ID - 4
# Awards the badge if the user has answered 250 questions correctly
def badge_4(uid):
session = Session()
session = Session()
u = get_user_by_uid(uid)
total_correct = u.totalcorrect
if total_correct >= 250:
add_badge(uid, 4)
session.commit()
session.close()
def get_badge_names():
names = []
f = open(settings.PROJECT_PATH + 'BadgeNames.txt', mode='r')
lines = f.readlines()
for line in lines:
names.append(line.split('\n')[0])
f.close()
return names