|
@@ -19,7 +19,7 @@ def check_vote(db, vote_name, user_id): # Check if user has already voted on th
|
|
|
)
|
|
|
row = cursor.fetchone()
|
|
|
if row is None:
|
|
|
- current_app.logger.warning(f'\"{vote_name}\" not found in vote table.')
|
|
|
+ current_app.logger.error(f'\"{vote_name}\" not found in vote table.')
|
|
|
return False
|
|
|
if row[0] == user_id:
|
|
|
return True
|
|
@@ -36,7 +36,7 @@ def add_to_vote(db, vote_name, user_id): # Add a count to a vote
|
|
|
)
|
|
|
vote = cursor.fetchone()
|
|
|
if vote is None:
|
|
|
- current_app.logger.warning(f'{vote_name} not found in vote table.')
|
|
|
+ current_app.logger.error(f'{vote_name} not found in vote table.')
|
|
|
return False
|
|
|
else: # If vote exists, add a count
|
|
|
db.execute(
|
|
@@ -80,7 +80,7 @@ def add_to_goal(db, user_id, reward_name, points_contributed): # Add a contribu
|
|
|
)
|
|
|
row = cursor.fetchone()
|
|
|
if row is None:
|
|
|
- current_app.logger.warning(f'\"{reward_name}\" not found in goal table.')
|
|
|
+ current_app.logger.error(f'\"{reward_name}\" not found in goal table.')
|
|
|
return False
|
|
|
progress, target = row
|
|
|
if progress + points_contributed > target:
|
|
@@ -107,7 +107,7 @@ def goal_left(db, reward_name):
|
|
|
)
|
|
|
row = cursor.fetchone()
|
|
|
if row is None:
|
|
|
- current_app.logger.warning(f'{reward_name} not found in Goal table.')
|
|
|
+ current_app.logger.error(f'{reward_name} not found in Goal table.')
|
|
|
else:
|
|
|
progress, target = row
|
|
|
left = target - progress
|
|
@@ -124,7 +124,7 @@ def goal_reached(db, reward_name): # Set a goal as completed
|
|
|
)
|
|
|
row = cursor.fetchone()
|
|
|
if row is None:
|
|
|
- current_app.logger.warning(f'{reward_name} not found in goal table.')
|
|
|
+ current_app.logger.error(f'{reward_name} not found in goal table.')
|
|
|
else:
|
|
|
return row[0]
|
|
|
except Error as grerror:
|
|
@@ -132,6 +132,60 @@ def goal_reached(db, reward_name): # Set a goal as completed
|
|
|
return False
|
|
|
|
|
|
|
|
|
+def was_milestone_reached(db, reward_name): # Check if a milestone was reached
|
|
|
+ try:
|
|
|
+ all_rewards = current_app.config['REWARDS'] # Get milestone numbers from REWARDS
|
|
|
+ milestones_info = all_rewards[reward_name]['milestones']
|
|
|
+
|
|
|
+ if milestones_info['milestone1'][1]:
|
|
|
+ ms1_goal = milestones_info['milestone1'][1]
|
|
|
+ ms1_reward = f'🚩 \"{milestones_info["milestone1"][0]}\"'
|
|
|
+ if milestones_info['milestone2'][1]:
|
|
|
+ ms2_goal = milestones_info['milestone2'][1]
|
|
|
+ ms2_reward = f'🚩🚩 \"{milestones_info["milestone2"][0]}\"'
|
|
|
+ if milestones_info['milestone3'][1]:
|
|
|
+ ms3_goal = milestones_info['milestone3'][1]
|
|
|
+ ms3_reward = f'🚩🚩🚩 \"{milestones_info["milestone3"][0]}\"'
|
|
|
+
|
|
|
+ cursor = db.execute(
|
|
|
+ "SELECT progress, milestones FROM goals WHERE name = ?",
|
|
|
+ (reward_name,)
|
|
|
+ ) # Get progress and milestones info from database
|
|
|
+ row = cursor.fetchone()
|
|
|
+
|
|
|
+ if row is None:
|
|
|
+ current_app.logger.error(f'{reward_name} not found in Goal table.')
|
|
|
+ else:
|
|
|
+ progress = int(row['progress'])
|
|
|
+ milestones = int(row['milestones'])
|
|
|
+
|
|
|
+ if progress >= ms1_goal and progress < ms2_goal:
|
|
|
+ new_milestones = 1
|
|
|
+ ms_reward = ms1_reward
|
|
|
+ elif progress >= ms2_goal and progress < ms3_goal:
|
|
|
+ new_milestones = 2
|
|
|
+ ms_reward = ms2_reward
|
|
|
+ elif progress >= ms3_goal:
|
|
|
+ new_milestones = 3
|
|
|
+ ms_reward = ms3_reward
|
|
|
+ else:
|
|
|
+ new_milestones = 0
|
|
|
+
|
|
|
+ if new_milestones > milestones: # If we're passing a milestone, get the reward
|
|
|
+ cursor = db.execute(
|
|
|
+ "UPDATE goals SET milestones = ? WHERE name = ?",
|
|
|
+ (new_milestones, reward_name)
|
|
|
+ )
|
|
|
+ db.commit()
|
|
|
+ return ms_reward
|
|
|
+ else:
|
|
|
+ return False
|
|
|
+ return False
|
|
|
+ except Error as wmrerror:
|
|
|
+ current_app.logger.error(f'Couldn\'t check if a milestone was reached: {wmrerror.args[0]}')
|
|
|
+ return False
|
|
|
+
|
|
|
+
|
|
|
def was_goal_reached(db, reward_name): # Check if a goal was reached
|
|
|
try:
|
|
|
cursor = db.execute(
|
|
@@ -140,7 +194,7 @@ def was_goal_reached(db, reward_name): # Check if a goal was reached
|
|
|
)
|
|
|
row = cursor.fetchone()
|
|
|
if row is None:
|
|
|
- current_app.logger.warning(f'{reward_name} not found in Goal table.')
|
|
|
+ current_app.logger.error(f'{reward_name} not found in Goal table.')
|
|
|
else:
|
|
|
progress, target = row
|
|
|
if progress == target:
|
|
@@ -204,7 +258,7 @@ def all_active_votes(db): # Get only active votes
|
|
|
def all_goals(db): # Get all the goals
|
|
|
try:
|
|
|
cursor = db.execute(
|
|
|
- """SELECT name, progress, target, info FROM goals"""
|
|
|
+ "SELECT name, progress, target, info FROM goals"
|
|
|
)
|
|
|
return cursor.fetchall()
|
|
|
except Error as agerror:
|