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
Exemplo n.º 2
0
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
Exemplo n.º 4
0
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))
Exemplo n.º 5
0
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))