示例#1
0
    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)
示例#2
0
    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)
示例#3
0
文件: main.py 项目: AVB24/LapRecords
	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))
示例#4
0
文件: main.py 项目: AVB24/LapRecords
	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))
示例#5
0
    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))
示例#6
0
文件: main.py 项目: AVB24/LapRecords
	def get_racers(self):
		myRacerQuery = PagedQuery(Racer.all(), 99999)
		return myRacerQuery.fetch_page()
示例#7
0
文件: main.py 项目: AVB24/LapRecords
	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))
示例#8
0
文件: main.py 项目: AVB24/LapRecords
	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('/')
示例#9
0
文件: main.py 项目: AVB24/LapRecords
	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('/')