def on_new_button__clicked(self, button): self._is_new = True racer = Racer() racer.category = self.category.get_selected() racer.race = self.race self.edit_racer(racer)
def get(self, driver): racer = Racer.all().filter('name =', driver).fetch(1,0)[0] print racer.name nickname = racer.driver.nickname() bl = BestLap.all().filter('driver =', racer).fetch(100,0) template_values = { 'racer': racer, 'nickname': nickname, 'bestlaps': bl, 'bestlaps_count': len(bl) + 1 } template = JINJA_ENVIRONMENT.get_template('templates/driver.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() greeting = ui_services.get_greeting(user) menu = ui_services.get_menu("importer") if not users.is_current_user_admin(): self.redirect('/') drivers = Racer.all() upload_url = blobstore.create_upload_url('/upload') template_values = { 'drivers': drivers, 'user': user, 'upload_url': upload_url, 'menu': menu, 'greeting': greeting } template = JINJA_ENVIRONMENT.get_template('templates/importer.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() if user: greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" % (user.nickname(), users.create_logout_url("/"))) else: greeting = ("<a href=\"%s\">Sign in or register</a>." % users.create_login_url("/")) if not users.is_current_user_admin(): self.redirect('/') drivers = Racer.all() upload_url = blobstore.create_upload_url('/upload') template_values = { 'drivers': drivers, 'user': user, 'upload_url': upload_url, 'greeting': greeting } template = JINJA_ENVIRONMENT.get_template('templates/importer.html') self.response.write(template.render(template_values))
def get_racers(self): myRacerQuery = PagedQuery(Racer.all(), 99999) return myRacerQuery.fetch_page()
def post(self): user = users.get_current_user() function = self.request.get('function') greeting = ui_services.get_greeting(user) menu = ui_services.get_menu("search") racer = self.request.get('racer') race_class = self.request.get('race_class') track = self.request.get('track') isBest = self.request.get('isBest') searchRacers = data_services.get_racers() searchClasses = data_services.get_race_classes() searchTracks = data_services.get_tracks() myQuery = data_services.get_all_laps() myQuery.order('-date') if racer and racer != "None": driver = Racer.all().filter('name =', racer).fetch(1,0)[0] myQuery.filter('driver', driver) racer = driver.name else: racer = None if race_class and race_class != "None": race_class = RaceClass.all().filter('name =', race_class).fetch(1,0)[0] myQuery.filter('raceclass', race_class) race_class = race_class.name else: race_class = None if track and track != "None": myQuery.filter('track', track) else: track = None if isBest == "True": myQuery.filter('isBest', True) else: isBest = "False" if function == "search": page_num = 1 page_size = data_services.get_page_size() myPagedQuery = PagedQuery(myQuery, page_size) page_count = myPagedQuery.page_count() myResults = myPagedQuery.fetch_page() elif function == "changePage": page_num = int(self.request.get('page_num')) page_size = int(self.request.get('page_size')) myPagedQuery = PagedQuery(myQuery, page_size) page_count = myPagedQuery.page_count() myResults = myPagedQuery.fetch_page(page_num) template_values = { 'user': user, 'laps': myResults, 'page_size': page_size, 'page_count': page_count, 'page_num': page_num, 'greeting': greeting, 'menu': menu, 'racer': racer, 'race_class': race_class, 'track': track, 'isBest': isBest, 'searchRacers': searchRacers, 'searchClasses': searchClasses, 'searchTracks': searchTracks } template = JINJA_ENVIRONMENT.get_template('templates/search.html') self.response.write(template.render(template_values))
def post(self): track = self.request.get('track') bestlaps = {} for bl in BestLap.all().filter('track =', track): if bl.isBest is True: bestlaps[bl.raceclass.name] = bl upload_files = self.get_uploads('file')[0] blob_key = upload_files.key() blob_info = upload_files record = Record(csv=str(blob_info)).put() blob_reader = blobstore.BlobReader(blob_key) reader = csv.DictReader(blob_reader) lapsToUpload = [] for row in reader: #row = row.replace('"','').replace(', ', ' ').strip() if 'Best Tm' in row: time = row['Best Tm'] else: time = row['Overall BestTm'] if 'Laps' in row: laps = row['Laps'] else: laps = row['Appeared'] position = row['Pos'] point_in_class = row['PIC'] carnum = row['No.'] racer_name = normalize_string(row['Name']) racer_class = normalize_string(row['Class']) diff = row['Diff'] gap = row['Gap'] points = row['Points'] car_make = normalize_string(row['Make']) car_model = normalize_string(row['Model']) car_year = row['Year'] car_color = row['Color'] city = row['City'] state = row['State'] sponsor = normalize_string(row['Sponsor']) email = row['Email'] if time.count(':') == 0 and time: time = '0:' + time if validLap(racer_class, point_in_class): pt = process_time(time) t = track #Track.get_or_insert(key_name=self.request.get('track'), name=self.request.get('track'), lap_distance=1.02) g = self.request.get('group') sd = self.request.get('date') dt = datetime.strptime(sd, '%Y-%m-%d') tr = Track.get_or_insert(key_name=t, name=t) e = Event.get_or_insert(key_name=g+t+sd, name=g+t, track=tr, date=dt) c = Car.get_or_insert(key_name=carnum+car_make+car_model+car_color+car_year, make=car_make, model=car_model,year=car_year,color=car_color,number=carnum) cl = RaceClass.get_or_insert(key_name=racer_class, name=racer_class) if email: email else: email = racer_name.split()[0].lower() + racer_name.split()[1].lower()+'@gmail.com' r = Racer.get_or_insert(key_name=racer_name.split()[0][0:1].lower() + racer_name.split()[1].lower(), email=email,name=racer_name, driver=users.User(email), points=int(points), car=c, raceclass=cl) if sponsor: r.sponsor=Sponsor.get_or_insert(key_name=sponsor, name=sponsor) r.put() best = BestLap.get_or_insert(key_name=sd+t+g+cl.name+racer_name.replace(' ','.'), driver=r, raceclass=cl, track=t, time=pt, event=e, isBest=False, date=dt) if cl.name in bestlaps: if pt < bestlaps[cl.name].time and pt != 0.0: print str(pt) + ' is better than ' + bestlaps[cl.name].driver.name + 's time of ' + str(bestlaps[cl.name].time) best.isBest = True #Mark current record as best bestlaps[cl.name].isBest = False #Mark old record as not best bestlaps[cl.name].put() #Commit old record to db bestlaps[cl.name] = best #Replace record in local dictionary with new best record for class elif pt != 0.0: best.isBest = True bestlaps[cl.name] = best lapsToUpload.append(best) db.put(lapsToUpload) self.redirect('/')
def post(self): driver_key = db.Key(self.request.get('driver')) racer = Racer.get(driver_key) racer.picture = db.Blob(self.request.get('img')) racer.put() self.redirect('/')