def post(self): data = Score.parser.parse_args() score = ScoreModel(**data) try: score.save_to_db() except: return {"message": "An error occurred inserting the score."}, 500 return score.json(), 201
def post(self, type_risk): if ScoreModel.find_by_name(type_risk): return { 'message': "A score with type_risk '{}' \ already exists.".format(type_risk) }, 400 score = ScoreModel(type_risk) try: score.save_to_db() except: return {"message": "An error occurred creating the score."}, 500 return score.json(), 201
def post(cls, user_id): data = cls.parser.parse_args() names = (score.name for score in ScoreModel.find_by_user_id(user_id)) if data['name'] not in names: new_score = ScoreModel(data['name'], user_id, data['score'], public=data['public'], description=data['description']) new_score.save_to_db() return { 'message': 'Successfully added new score.', 'content': new_score.json() } return { 'message': f'Name \"{data["name"]}\" was already used, try different name.', }, 409
def course_scorecard(name): if name == 'new': return redirect(url_for('create_course')) course = CourseModel.find_by_name(name) course_details = course.json() _id = course_details['id'] city = course_details['city'] state = course_details['state'] slope = course_details['slope'] par_list = [] distance_list = [] handicap_list = [] for i in range(1, 19): hole = HoleModel.find_by_course_hole(_id, i) hole_details = hole.json() hole_par = hole_details['par'] hole_distance = hole_details['distance'] hole_handicap = hole_details['handicap'] par_list.append(hole_par) distance_list.append(hole_distance) handicap_list.append(hole_handicap) if request.method == "POST": course = CourseModel.find_by_name(name) course_details = course.json() course_name = name course_id = course_details['id'] round_date = request.form.get('round_date') round_datetime = datetime.strptime(round_date, '%Y-%m-%d') round_datetime = round_datetime.astimezone(pytz.utc) round_string = round_datetime.strftime('%Y%m%d%H%M%S') enter_datetime = datetime.now(tz=pytz.utc) enter_string = enter_datetime.strftime('%Y%m%d%H%M%S') for p in range(1, 5): front_9_count = back_9_count = 0 round_scores = [] golfer_string = "golfer_" + str(p) name = request.form.get(golfer_string) player = GolferModel.find_by_name(name) if player: details = player.json() _id = details['id'] for h in range(1, 19): hole_string = "p" + str(p) + "_hole_" + str(h) + "_score" hole_score = request.form.get(hole_string) round_scores.append(hole_score) score = round_scores[h - 1] if score == '': score = 0 else: score = int(score) if h < 10 and score != 0: front_9_count += 1 elif h >= 10 and score != 0: back_9_count += 1 player_score = ScoreModel(course_id, _id, h, score, p, round_string, enter_string) player_score.save_to_db() return redirect( url_for('round', course_name=course_name, enter_string=enter_string)) golfers_list = [golfer for golfer in GolferModel.find_all()] course_dict = { 'name': name, 'city': city, 'state': state, 'slope': slope, 'distance': { 'hole_distances': distance_list, 'front_9_distance': sum(distance_list[:9]), 'back_9_distance': sum(distance_list[9:]), 'total_distance': sum(distance_list) }, 'handicap': { 'hole_handicaps': handicap_list, 'front_9_handicap': sum(handicap_list[:9]), 'back_9_handicap': sum(handicap_list[9:]), 'total_handicap': sum(handicap_list) }, 'par': { 'hole_pars': par_list, 'front_9_par': sum(par_list[:9]), 'back_9_par': sum(par_list[9:]), 'total_par': sum(par_list) } } return render_template('course_scorecard.jinja2', course_dict=course_dict, golfers_list=golfers_list)
previousQueueItems = filter( lambda x: x.timeRequested < previousWeekStart, userQueueItems[userID]) currentQuantity = 0 unfulfilledQuantity = 0 for queueItem in newQueueItems: currentQuantity += queueItem.request.quantity for queueItem in previousQueueItems: unfulfilledQuantity += queueItem.quantity unfulfilledQuantity += currentQuantity requested[userID] += unfulfilledQuantity score = ScoreModel.find_by_user_and_categoryType( userID, categoryTypeID) if not score: score = ScoreModel(userID, categoryTypeID) score.save_to_db() alpha = categoryType.price * currentQuantity beta = categoryType.price * unfulfilledQuantity * category.urgency u = 0.5 * (0.5 * currentQuantity * categoryType.price + score.regret + alpha + score.temporalRegret + beta) newRegret = max(score.regret + alpha - u, 0) newTemporalRegret = max(score.temporalRegret + beta - u, 0) score.regret = newRegret score.temporalRegret = newTemporalRegret score.save_to_db() utilities[userID] = u userArr = [] requestedQuantitiesArr = [] uArr = [] for userID in utilities.keys():