Exemple #1
0
def ontheflyTicket(request):
	if request.method == 'POST':

		data= {'email': request.POST['Email'],
			   'number_of_trips':request.POST['number_of_trips'],
			   'card_number':request.POST['card_number']}
		form = OnTheFlyTicketForm(data)
		
		if form.is_valid():
			
			generated_str = g.id_generator(10)
			while OnTheFlyTicket.objects.filter(recovery_code = generated_str).count():
				generated_str = g.id_generator(10)
			
			generated_qrc_str = g.id_generator(8)
			generated_qrc = hashlib.sha1('bticketcodeOTFT').hexdigest() + generated_qrc_str
			while OnTheFlyTicket.objects.filter(qr_code__qr_code = generated_qrc).count():
				generated_qrc_str = g.id_generator(8)
				generated_qrc = hashlib.sha1('bticketcodeOTFT').hexdigest() + generated_qrc_str
			
			qrcode_obj = QRCode.objects.create(qr_code = generated_qrc)
			
			ticket = form.save(commit = False)
			ticket.recovery_code = generated_str
			ticket.qr_code =  qrcode_obj
			ticket.save()
			
			mail_subject = 'bTicket|OntheFly Purchase'
			mail_body = 'Ticket information: \n\n \tRecovery Code:\n\t' +  ticket.recovery_code + "\n \tQR Code:\n\t"
			mail_from = DEFAULT_FROM_EMAIL
			mail_to =  [form.cleaned_data['email']]
			
			qrc_image = qrcode.make(generated_qrc)
			qrc_image.save('site_media/'+ generated_qrc + ".png")
			msg = EmailMultiAlternatives(mail_subject, mail_body, mail_from, mail_to)
			msg.attach_file('site_media/'+ generated_qrc + ".png")
			msg.send()
			os.remove('site_media/'+ ticket.qr_code.qr_code + ".png")
			
			successmsg="SUCCESS!"
			sendemail_Form = SentEmailFromRecoveryForm()
			variables = RequestContext(request, {
				'ontheflyticket' : ticket,
				'ticket_purchase_msg':successmsg,
				'sendEmailForm' : sendemail_Form
			})
			return render_to_response(
				'main_page.html',
				variables
			)
Exemple #2
0
def main_page(request):
	if request.method == 'POST':
		
		form = OnTheFlyTicketForm(request.POST)
		recovery_form = RecoveryOnTheFlyTicketForm(request.POST)
		trips_form = CheckNuberOfTripsForm(request.POST)
		ticket_form = BuyTicketForm(request.POST)
		pass_form = BuyPassForm(request.POST)

		if form.is_valid():
			generated_str = g.id_generator(10)
			while OnTheFlyTicket.objects.filter(recovery_code = generated_str).count():
				generated_str = g.id_generator(10)
			
			generated_qrc_str = g.id_generator(8)
			generated_qrc = hashlib.sha1('bticketcodeOTFT').hexdigest() + generated_qrc_str
			while OnTheFlyTicket.objects.filter(qr_code__qr_code = generated_qrc).count():
				generated_qrc_str = g.id_generator(8)
				generated_qrc = hashlib.sha1('bticketcodeOTFT').hexdigest() + generated_qrc_str
			
			qrcode_obj = QRCode.objects.create(qr_code = generated_qrc)
			
			ticket = form.save(commit = False)
			ticket.recovery_code = generated_str
			ticket.qr_code =  qrcode_obj
			ticket.save()
			
			mail_subject = 'bTicket|OntheFly Purchase'
			mail_body = 'Ticket information: \n\n \tRecovery Code:\n\t' +  ticket.recovery_code + "\n \tQR Code:\n\t"
			mail_from = DEFAULT_FROM_EMAIL
			mail_to =  [form.cleaned_data['email']]
			
			qrc_image = qrcode.make(generated_qrc)
			qrc_image.save('site_media/'+ generated_qrc + ".png")
			msg = EmailMultiAlternatives(mail_subject, mail_body, mail_from, mail_to)
			msg.attach_file('site_media/'+ generated_qrc + ".png")
			msg.send()
			os.remove('site_media/'+ ticket.qr_code.qr_code + ".png")
			
			
			variables = RequestContext(request, {
				'ticket' : ticket
			})
			return render_to_response(
				'purchase/onthefly_success.html',
				variables
			)
			
		if recovery_form.is_valid():
			try:
				ticket = OnTheFlyTicket.objects.get(recovery_code = recovery_form.cleaned_data['recovery_code'])
			except OnTheFlyTicket.DoesNotExist:
				form = OnTheFlyTicketForm()
				recovery_form = RecoveryOnTheFlyTicketForm()
				trips_form = CheckNuberOfTripsForm()
				ticket_form = BuyTicketForm()
				pass_form = BuyPassForm()
				error_msg = 'There\'s no ticket associated with that recovery code.'
				variables = RequestContext(request, {
					'form' : form,
					'recovery_form': recovery_form,
					'trips_form' : trips_form,
					'error_msg' : error_msg
				})
				return render_to_response(
					'main_page.html',
					variables
				)
				
			form = SentEmailFromRecoveryForm()
			variables = RequestContext(request, {
				'ontheflyticket' : ticket,
				'form' : form
			})
			return render_to_response(
				'main_page.html',
				variables
			)
			
		if trips_form.is_valid():
			try:
				ticket = OnTheFlyTicket.objects.get(recovery_code = trips_form.cleaned_data['code'])
			except OnTheFlyTicket.DoesNotExist:
				form = OnTheFlyTicketForm()
				recovery_form = RecoveryOnTheFlyTicketForm()
				trips_form = CheckNuberOfTripsForm()
				ticket_form = BuyTicketForm()
				pass_form = BuyPassForm()
				error_msg_trips = 'There\'s no ticket associated with that recovery code.'
				variables = RequestContext(request, {
					'form' : form,
					'recovery_form': recovery_form,
					'trips_form' : trips_form,
					'error_msg_trips' : error_msg_trips
				})
				return render_to_response(
					'main_page.html',
					variables
				)
				
			form = OnTheFlyTicketForm()
			recovery_form = RecoveryOnTheFlyTicketForm()
			trips_form = CheckNuberOfTripsForm()
			ticket_form = BuyTicketForm()
			pass_form = BuyPassForm()
			trips = ticket.number_of_trips
			variables = RequestContext(request, {
				'ticket' : ticket,
				'form' : form,
				'recovery_form': recovery_form,
				'trips_form' : trips_form,
				'trips' : trips
			})
			return render_to_response(
				'main_page.html',
				variables
			)
			
		if ticket_form.is_valid():
			n_trips = ticket_form.cleaned_data['number_of_trips']
			
			generated_qrc_str = g.id_generator(8)
			generated_qrc = hashlib.sha1('bticketcodeTicket').hexdigest() + generated_qrc_str
			while OnTheFlyTicket.objects.filter(qr_code__qr_code = generated_qrc).count():
				generated_qrc_str = g.id_generator(8)
				generated_qrc = hashlib.sha1('bticketcodeTicket').hexdigest() + generated_qrc_str
			
			qrcode_obj = QRCode.objects.create(qr_code = generated_qrc)
			
			Ticket.objects.create(user = UserProfile.objects.get(user = request.user), qr_code = qrcode_obj, emission_date = datetime.datetime.now(), number_of_trips = n_trips)
			
			mail_subject = 'bTicket|Ticket Purchase'
			mail_body = 'Ticket information: \n\n \tUser: '******'\n \tNumber of trips: '+ str(n_trips) +'\n\tQR Code:\n\t'
			mail_from = DEFAULT_FROM_EMAIL
			mail_to =  [UserProfile.objects.get(user = request.user).user.email]
			
			qrc_image = qrcode.make(generated_qrc)
			qrc_image.save('site_media/'+ generated_qrc + ".png")
			msg = EmailMultiAlternatives(mail_subject, mail_body, mail_from, mail_to)
			msg.attach_file('site_media/'+ generated_qrc + ".png")
			msg.send()
			os.remove('site_media/'+ generated_qrc + ".png")
			
			msg = "Ticket succefully bought!"
			form = OnTheFlyTicketForm()
			recovery_form = RecoveryOnTheFlyTicketForm()
			trips_form = CheckNuberOfTripsForm()
			ticket_form = BuyTicketForm()
			pass_form = BuyPassForm()
			variables = RequestContext(request, {
				'form' : form,
				'recovery_form': recovery_form,
				'trips_form' : trips_form,
				'ticket_form' : ticket_form,
				'ticket_purchase_msg' : msg
			})
			return render_to_response(
				'main_page.html',
				variables
			)
			
		if pass_form.is_valid():
			avaiable_purchase = False	
			if( len(UserProfile.objects.get(user = request.user).pass_set.all()) > 0):
				passes = UserProfile.objects.get(user = request.user).pass_set.all()
				for passe in passes:
					if datetime.datetime.now() > passe.expiration_date:
						avaiable_purchase = True
					else:
						avaiable_purchase = False
						break
			else:
				avaiable_purchase = True
			
			print avaiable_purchase
			
			if avaiable_purchase:
				Generated_qrc_str = g.id_generator(8)
				generated_qrc = hashlib.sha1('bticketcodePass').hexdigest() + generated_qrc_str

				while OnTheFlyTicket.objects.filter(qr_code__qr_code = generated_qrc).count():
					generated_qrc_str = g.id_generator(8)
					generated_qrc = hashlib.sha1('bticketcodePass').hexdigest() + generated_qrc_str

				qrcode_obj = QRCode.objects.create(qr_code = generated_qrc)
				now_date = datetime.datetime.now()
				expire_date = now_date + datetime.timedelta(365/12) 
				Pass.objects.create(user = UserProfile.objects.get(user = request.user), qr_code = qrcode_obj, emission_date = now_date.date(), expiration_date = expire_date.date())
				msg = "Pass succefully bought!"
				form = OnTheFlyTicketForm()
				recovery_form = RecoveryOnTheFlyTicketForm()
				trips_form = CheckNuberOfTripsForm()
				ticket_form = BuyTicketForm()
				pass_form = BuyPassForm()
				variables = RequestContext(request, {
					'form' : form,
					'recovery_form': recovery_form,
					'trips_form' : trips_form,
					'ticket_form' : ticket_form,
					'pass_msg' : msg
				})
				return render_to_response(
					'main_page.html',
					variables
				)
			else:
				msg = "User already has a valid pass."
				form = OnTheFlyTicketForm()
				recovery_form = RecoveryOnTheFlyTicketForm()
				trips_form = CheckNuberOfTripsForm()
				ticket_form = BuyTicketForm()
				pass_form = BuyPassForm()
				variables = RequestContext(request, {
					'form' : form,
					'recovery_form': recovery_form,
					'trips_form' : trips_form,
					'ticket_form' : ticket_form,
					'pass_msg' : msg
				})
				return render_to_response(
					'main_page.html',
					variables
				)			
	else:
		form = OnTheFlyTicketForm()
		recovery_form = RecoveryOnTheFlyTicketForm()
		trips_form = CheckNuberOfTripsForm()
		ticket_form = BuyTicketForm()
		pass_form = BuyPassForm()
		variables = RequestContext(request, {
			'form' : form,
			'recoveryForm': recovery_form,
			'trips_form' : trips_form,
			'ticket_form' : ticket_form
		})
		return render_to_response(
			'main_page.html',
			variables
		)
Exemple #3
0
def buy_pass(request):
	avaiable_purchase = False	
	if( len(UserProfile.objects.get(user = request.user).pass_set.all()) > 0):
		passes = UserProfile.objects.get(user = request.user).pass_set.all()
		for passe in passes:
			if datetime.datetime.now().date() > passe.expiration_date:
				avaiable_purchase = True
			else:
				avaiable_purchase = False
				break
	else:
		avaiable_purchase = True
	
	print avaiable_purchase
	
	if avaiable_purchase:
		generated_qrc_str = g.id_generator(8)
		generated_qrc = hashlib.sha1('bticketcodePass').hexdigest() + generated_qrc_str

		while OnTheFlyTicket.objects.filter(qr_code__qr_code = generated_qrc).count():
			generated_qrc_str = g.id_generator(8)
			generated_qrc = hashlib.sha1('bticketcodePass').hexdigest() + generated_qrc_str

		qrcode_obj = QRCode.objects.create(qr_code = generated_qrc)
		now_date = datetime.datetime.now()
		expire_date = now_date + datetime.timedelta(365/12) 
		Pass.objects.create(user = UserProfile.objects.get(user = request.user), qr_code = qrcode_obj, emission_date = now_date.date(), expiration_date = expire_date.date())
		userp = UserProfile.objects.get(user = request.user)
		msg = "Ticket succefully bought!"

		recovery_form = RecoveryOnTheFlyTicketForm()
		
		userp = UserProfile.objects.get(user = request.user)
		ticket_form = BuyTicketForm()
		tickets = userp.ticket_set.all()
		
		number_of_trips = 0
		activetickets=0
		for ticket in tickets:
			if ticket.number_of_trips > 0:
				activetickets=activetickets+1
				number_of_trips += ticket.number_of_trips
		
		passes = userp.pass_set.all()
		for passe in passes:
			if passe.expiration_date < datetime.datetime.now().date():
				passes.remove(passe) 
		image = userp.avatar
		pass_form = BuyPassForm()
		trips_form = CheckNuberOfTripsForm()
		variables = RequestContext(request, {
			'username' : userp.user.username,
			'tickets' : tickets,
			'passes' : passes,
			'image' : image,
			'full_name' : userp.user.get_full_name(),
			'ticket_form' : ticket_form,
			'recovery_form': recovery_form,
			'trips_form' : trips_form,
			'pass_form' : pass_form,
			'ticket_purchase_msg' : msg,
			'number_of_trips' : number_of_trips,
			'activetickets' : activetickets
		})
		return render_to_response(
			'user_page.html',
			variables
		) 
	else:
		userp = UserProfile.objects.get(user = request.user)
		recovery_form = RecoveryOnTheFlyTicketForm()
		ticket_form = BuyTicketForm()
		tickets = userp.ticket_set.all().order_by('-number_of_trips')
		
		number_of_trips = 0
		activetickets=0
		for ticket in tickets:
			if ticket.number_of_trips > 0:
				activetickets=activetickets+1
				number_of_trips += ticket.number_of_trips
		
		passes = userp.pass_set.all()
		for passe in passes:
			if passe.expiration_date < datetime.datetime.now().date():
				passes.remove(passe)
		pass_form = BuyPassForm()
		trips_form = CheckNuberOfTripsForm()
		image = userp.avatar
		variables = RequestContext(request, {
			'username' : userp.user.username,
			'tickets' : tickets,
			'passes' : passes,
			'image' : image,
			'full_name' : userp.user.get_full_name(),
			'ticket_form' : ticket_form,
			'recovery_form': recovery_form,
			'trips_form' : trips_form,
			'pass_form' : pass_form,
			'number_of_trips' : number_of_trips,
			'activetickets' : activetickets
		})
		return render_to_response('user_page.html', variables)
Exemple #4
0
def user_page(request):
	
	#template = get_template('user_page.html')
	if request.method == 'POST':
		ticket_form = BuyTicketForm(request.POST)
		if ticket_form.is_valid():
				n_trips = ticket_form.cleaned_data['number_of_trips']
				
				generated_qrc_str = g.id_generator(8)
				generated_qrc = hashlib.sha1('bticketcodeTicket').hexdigest() + generated_qrc_str
				while OnTheFlyTicket.objects.filter(qr_code__qr_code = generated_qrc).count():
					generated_qrc_str = g.id_generator(8)
					generated_qrc = hashlib.sha1('bticketcodeTicket').hexdigest() + generated_qrc_str
				
				qrcode_obj = QRCode.objects.create(qr_code = generated_qrc)
				
				Ticket.objects.create(user = UserProfile.objects.get(user = request.user), qr_code = qrcode_obj, emission_date = datetime.datetime.now(), number_of_trips = n_trips)
				
				mail_subject = 'bTicket|Ticket Purchase'
				mail_body = 'Ticket information: \n\n \tUser: '******'\n \tNumber of trips: '+ str(n_trips) +'\n\tQR Code:\n\t'
				mail_from = DEFAULT_FROM_EMAIL
				mail_to =  [UserProfile.objects.get(user = request.user).user.email]
				
				qrc_image = qrcode.make(generated_qrc)
				qrc_image.save('site_media/'+ generated_qrc + ".png")
				msg = EmailMultiAlternatives(mail_subject, mail_body, mail_from, mail_to)
				msg.attach_file('site_media/'+ generated_qrc + ".png")
				msg.send()
				os.remove('site_media/'+ generated_qrc + ".png")

				userp = UserProfile.objects.get(user = request.user)
				msg = "Ticket succefully bought!"

				recovery_form = RecoveryOnTheFlyTicketForm()
				
				userp = UserProfile.objects.get(user = request.user)
				ticket_form = BuyTicketForm()
				tickets = userp.ticket_set.all().order_by('number_of_trips')
				
				number_of_trips = 0
				activetickets=0
				for ticket in tickets:
					if ticket.number_of_trips > 0:
						activetickets=activetickets+1
						number_of_trips += ticket.number_of_trips
				
				passes = userp.pass_set.all()
				for passe in passes:
					if passe.expiration_date < datetime.datetime.now().date():
						passes.remove(passe) 
				image = userp.avatar
				pass_form = BuyPassForm()
				trips_form = CheckNuberOfTripsForm()
				variables = RequestContext(request, {
					'username' : userp.user.username,
					'tickets' : tickets,
					'passes' : passes,
					'image' : image,
					'full_name' : userp.user.get_full_name(),
					'ticket_form' : ticket_form,
					'recovery_form': recovery_form,
					'trips_form' : trips_form,
					'pass_form' : pass_form,
					'ticket_purchase_msg' : msg,
					'number_of_trips' : number_of_trips,
					'activetickets' : activetickets
				})
				return render_to_response(
					'user_page.html',
					variables
				) 
	else:
		userp = UserProfile.objects.get(user = request.user)
		recovery_form = RecoveryOnTheFlyTicketForm()
		ticket_form = BuyTicketForm()
		tickets = userp.ticket_set.all().order_by('number_of_trips')
		
		number_of_trips = 0
		activetickets=0
		for ticket in tickets:
			if ticket.number_of_trips > 0:
				activetickets=activetickets+1
				number_of_trips += ticket.number_of_trips
		
		passes = userp.pass_set.all()
		for passe in passes:
			if passe.expiration_date < datetime.datetime.now().date():
				passes.remove(passe)
		pass_form = BuyPassForm()
		trips_form = CheckNuberOfTripsForm()
		image = userp.avatar
		variables = RequestContext(request, {
			'username' : userp.user.username,
			'tickets' : tickets,
			'passes' : passes,
			'image' : image,
			'full_name' : userp.user.get_full_name(),
			'ticket_form' : ticket_form,
			'recovery_form': recovery_form,
			'trips_form' : trips_form,
			'pass_form' : pass_form,
			'number_of_trips' : number_of_trips,
			'activetickets' : activetickets
		})
		return render_to_response('user_page.html', variables)