Skip to content

Commit

Permalink
Merge pull request #89 from diggyk/master
Browse files Browse the repository at this point in the history
Refactor quest progress calculations
  • Loading branch information
jathanism committed Nov 6, 2015
2 parents 2645315 + f2337b3 commit a447d6f
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 34 deletions.
4 changes: 2 additions & 2 deletions hermes/handlers/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2079,7 +2079,7 @@ def get(self):
expand=set(expand)
)
if progress_info:
quest_json = quest.calcuate_progress(quest_json)
quest_json = quest.calculate_progress(quest_json)
quests_json.append(quest_json)

json = {
Expand Down Expand Up @@ -2149,7 +2149,7 @@ def get(self, id):
)

if progress_info:
out = quest.calcuate_progress(out)
out = quest.calculate_progress(out)

self.success(out)

Expand Down
60 changes: 29 additions & 31 deletions hermes/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1310,42 +1310,40 @@ def email_quest_updates(cls, quests_updated):
msg
)

def calcuate_progress(self, json):
def calculate_progress(self, json):
"""Calcuate quest progress, add it to the json body and return it"""
total_labor_count = self.session.query(Labor).filter(
labors = self.session.query(Labor).filter(
Labor.quest_id == self.id
).count()
total_complete_count = self.session.query(Labor).filter(
and_(
Labor.quest_id == self.id,
Labor.completion_time != None,
)
).count()
unique_labor_count = self.session.query(Labor).filter(
and_(
Labor.quest_id == self.id,
Labor.starting_labor_id == None
)
).count()
unstarted_labors_count = self.session.query(Labor).filter(
and_(
Labor.quest_id == self.id,
Labor.completion_time == None,
Labor.starting_labor_id == None
)
).count()
inprogress_labors_count = self.session.query(Labor).filter(
and_(
Labor.quest_id == self.id,
Labor.completion_time == None,
Labor.starting_labor_id != None
)
).count()
completed_labors_count = unique_labor_count - unstarted_labors_count - inprogress_labors_count
).all()

total_complete_count = 0
unique_labor_count = 0
unstarted_labors_count = 0
inprogress_labors_count = 0

for labor in labors:
if labor.completion_time:
total_complete_count += 1

if not labor.starting_labor_id:
unique_labor_count += 1
if not labor.completion_time:
unstarted_labors_count += 1

if not labor.completion_time and labor.starting_labor_id:
inprogress_labors_count += 1

completed_labors_count = (
unique_labor_count
- unstarted_labors_count
- inprogress_labors_count
)

percent_complete = round(
(total_complete_count) / total_labor_count * 100,
total_complete_count / len(labors) * 100,
2
)

json['totalLabors'] = unique_labor_count
json['unstartedLabors'] = unstarted_labors_count
json['inprogressLabors'] = inprogress_labors_count
Expand Down
2 changes: 1 addition & 1 deletion hermes/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.5.4"
__version__ = "0.5.5"

0 comments on commit a447d6f

Please sign in to comment.