def _calculate_scores(self, comp): """Calculate the scores for a completed competition.""" all_scores = UserComp.all_scores_submitted(comp) if not all_scores: return False results = [] for photo in Photo.competition_photos(comp): total_score = Scores.photo_score(photo) results.append((total_score, photo)) results.sort(reverse=True) # calculate positions position = 1 prev_score = 1000000 # full_results = [] for i, (score, photo) in enumerate(results, start=1): if score != prev_score: position = i # full_results.append((position, score, photo)) photo.position = position photo.total_score = score photo.put() prev_score = score return True