def qualifying_by_raceday_lookup(supported_track, date): ''' Retrieve a list of links and descriptions for the qualifying from the specified day. Example qual_results [ { 'racedetail_id': 23, # For creating a link to the details page. 'racedata_summary': 'Stock Buggy - Round:1 Race:3', # The description for the user. }, ... ''' qual_details = SingleRaceDetails.objects.filter(racedate__range=(date, date + relativedelta(days=+1)), trackkey=supported_track.trackkey, mainevent=None).order_by('racedate') qual_results = [] for qual in qual_details: classname_summary = utils.format_main_event_for_user(qual) + \ " - Round:" + str(qual.roundnumber) + \ " Race:" + str(qual.racenumber) qual_results.append({'racedetail_id':qual.id, 'class':utils.format_main_event_for_user(qual), 'round':qual.roundnumber, 'race':qual.racenumber, 'racedata_summary':classname_summary}) return qual_results
def recentresultshistory_share(request, track_id, race_date): """ Will use the recentresultshistory_data.html template to display all of the MAIN event races at the specified track_id on the given race_date. Qualifying races are only provided a link to the details page. """ supported_track = get_object_or_404(SupportedTrackName, pk=track_id) try: date = datetime.datetime.strptime(race_date, "%Y-%m-%d").date() except ValueError(): raise Http404 # Note - Date Format (year, month, date) details = SingleRaceDetails.objects.filter(racedate__range=(date, date + relativedelta(days=+1)), trackkey=supported_track.trackkey).order_by('racedate') race_details = [] for qual in details: classname_summary = utils.format_main_event_for_user(qual) + \ " - Round:" + str(qual.roundnumber) + \ " Race:" + str(qual.racenumber) race_details.append({'racedetail_id':qual.id, 'racedata_summary':classname_summary}) ctx = Context({'trackname':supported_track.trackkey, 'display_date':_display_Date_User(date), 'race_details':race_details}) return render_to_response('recentresultshistory_share.html', ctx, context_instance=RequestContext(request))
def main_event_by_raceday_lookup(supported_track, date): ''' Retrieve all the main events from the supported_track on the date specified. EXAMPLE results_template_format [ { 'individual_results': '[[1, "yoshi,harley", 28, "00:08:10.761000", "16.528", "None"], [2, "Story, Corby", 27, "00:08:01.661000", "16.725", "None"], [3, "hovarter,kevin", 25, "00:08:16.037000", "17.053", "None"], [4, "Kraus, Charlie", 20, "00:08:05.180000", "20.883", "None"], [5, "Schoening, Bryan", 12, "00:03:57.669000", "17.760", "None"]]', 'roundnumber': 5, 'tagid': 2139, 'racenumber': 1, 'racedate': datetime.datetime(2012, 5, 12, 17, 26, 32), 'racedata': u'Mod Short Course A Main'}, {'individual_results': ' ......... ''' # Note - Date Format (year, month, date) race_details = SingleRaceDetails.objects.filter(racedate__range=(date, date + relativedelta(days=+1)), trackkey=supported_track.trackkey, mainevent__gte=1).order_by('racedate') # Note - the range (date1, date2) works like date1 <= x < date2 results_template_format = [] #print "track", supported_track.trackkey, "date", date + relativedelta(days=+1) , 'race_details', race_details for race_detail in race_details: formated_result = [] race_results = SingleRaceResults.objects.filter(raceid=race_detail.id).select_related('racerid') for individual_result in race_results: formated_result.append([ individual_result.finalpos, # final pos individual_result.racerid.racerpreferredname, # id individual_result.lapcount, # lapcount str(individual_result.racetime), # racetime str(individual_result.fastlap), #fastlap str(individual_result.behind) # behind ]) # EXAMPLE jsdata: # [[1, "yoshi,harley", 28, "00:08:10.761000", "16.528", "None"], [2, "Story, Corby", 27, "00:08:01.661000", "16.725", "None"], [3, "hovarter,kevin", 25, "00:08:16.037000", "17.053", "None"], [4, "Kraus, Charlie", 20, "00:08:05.180000", "20.883", "None"], [5, "Schoening, Bryan", 12, "00:03:57.669000", "17.760", "None"]] jsdata = simplejson.dumps(formated_result) # Going to do extra formating here, to simplify the template. results_template_format.append({'racedetail_id':race_detail.id, 'racedata':utils.format_main_event_for_user(race_detail), 'roundnumber':race_detail.roundnumber, 'racenumber':race_detail.racenumber, 'racedate':race_detail.racedate, 'individual_results':jsdata}) return results_template_format
def singleraceresult(request, race_detail_id): race_detail = get_object_or_404(SingleRaceDetails, pk=race_detail_id) results_template_format = {'race_detail_id': race_detail_id, 'racedata': utils.format_main_event_for_user(race_detail), 'roundnumber': race_detail.roundnumber, 'racenumber': race_detail.racenumber, 'racedate': race_detail.racedate,} formated_result = [] race_results = SingleRaceResults.objects.filter(raceid=race_detail.id) for individual_result in race_results: formated_result.append([ individual_result.finalpos, # final pos individual_result.racerid.racerpreferredname, # id individual_result.lapcount, # lapcount str(individual_result.racetime), # racetime str(individual_result.fastlap), #fastlap str(individual_result.behind) # behind ]) # EXAMPLE jsdata: # [[1, "yoshi,harley", 28, "00:08:10.761000", "16.528", "None"], [2, "Story, Corby", 27, "00:08:01.661000", "16.725", "None"], jsdata = simplejson.dumps(formated_result) results_template_format['individual_results'] = jsdata # EXAMPLE results_template_format # # { # 'individual_results': # '[[1, "yoshi,harley", 28, "00:08:10.761000", "16.528", "None"], # [2, "Story, Corby", 27, "00:08:01.661000", "16.725", "None"], # [3, "hovarter,kevin", 25, "00:08:16.037000", "17.053", "None"], # [4, "Kraus, Charlie", 20, "00:08:05.180000", "20.883", "None"], # [5, "Schoening, Bryan", 12, "00:03:57.669000", "17.760", "None"]]', # 'roundnumber': 5, # 'tagid': 2139, # 'racenumber': 1, # 'racedate': datetime.datetime(2012, 5, 12, 17, 26, 32), # 'racedata': u'Mod Short Course A Main' # }, # # {'individual_results': ' ......... # #print "DEBUG", results_template_format ctx = Context({'result':results_template_format}) return render_to_response('singleraceresult.html', ctx, context_instance=RequestContext(request))
def singleracedetailed(request, race_detail_id): """ This view displays the a deep dive of information on a single race. """ racedetails_obj = get_object_or_404(SingleRaceDetails, pk=race_detail_id) racedetails_formated = {'race_detail_id': race_detail_id, 'racedata': utils.format_main_event_for_user(racedetails_obj), 'roundnumber': racedetails_obj.roundnumber, 'racenumber': racedetails_obj.racenumber, 'racedate': racedetails_obj.racedate,} details_formated_result = [] race_results = SingleRaceResults.objects.filter(raceid=racedetails_obj.id) for individual_result in race_results: details_formated_result.append([ individual_result.finalpos, # final pos individual_result.racerid.racerpreferredname, # id individual_result.lapcount, # lapcount str(individual_result.racetime), # racetime str(individual_result.fastlap), #fastlap str(individual_result.behind) # behind ]) # EXAMPLE jsdata: # [[1, "yoshi,harley", 28, "00:08:10.761000", "16.528", "None"], [2, "Story, Corby", 27, "00:08:01.661000", "16.725", "None"], details_jsdata = simplejson.dumps(details_formated_result) racedetails_formated['individual_results'] = details_jsdata column_names = [] laptime_data = [] laptime_graphdata = {} for individual_result in race_results: column_names.append( individual_result.racerid.racerpreferredname ) laptimes = LapTimes.objects.filter(raceid=racedetails_obj.id, racerid = individual_result.racerid.id).order_by('racelap') indv_laptime_data = [] for lap in laptimes: temp_lap = None if (lap.racelaptime != None): indv_laptime_data.append([lap.racelap, float(lap.racelaptime)]) laptime_graphdata[individual_result.racerid.racerpreferredname] = {'label': individual_result.racerid.racerpreferredname, 'data': indv_laptime_data} # Bug - This can be cleaned up a great deal. lapcount = 0 if (laptime_data == []): for lap in laptimes: temp_lap = None if (lap.racelaptime != None): temp_lap = float(lap.racelaptime) laptime_data.append([lapcount, temp_lap]) lapcount += 1 else: for lap in laptimes: temp_lap = None if (lap.racelaptime != None): temp_lap = float(lap.racelaptime) laptime_data[lapcount].append(temp_lap) lapcount += 1 laptime_graph_jsdata = simplejson.dumps(laptime_graphdata) laptime_jsdata = simplejson.dumps(laptime_data) # ======================================================= # Get the data to display the recent race times graph recent_laptimes_jsdata = lap_time_history_fastest_each_night_flot_data(racedetails_obj) ctx = Context({'race_detail_id':race_detail_id, 'racedetails':racedetails_formated, 'column_names': column_names, 'laptime_jsdata':laptime_jsdata, 'laptime_graph_jsdata':laptime_graph_jsdata, 'recent_laptimes_jsdata':recent_laptimes_jsdata}) return render_to_response('singleracedetailed.html', ctx, context_instance=RequestContext(request))