Пример #1
0
def show_offer_notification(request):
	if request.method == "GET":
		now = datetime.datetime.now()
		transaction_id = request.GET['transaction_id']
		transactions = BookTransaction.objects.filter(transaction_id=transaction_id)
		user_login = get_user_login_object(request)
		message = handle_request_get_message(request)
		if len(transactions) == 0:
			return HttpResponseRedirect("/notification/error/")
		else:
			transaction = transactions[0]
			notifies = []
			if len(transaction.offer.all()) == 0:
				new_notify = get_new_notify(request)
				return render_to_response(
						"app/notify/page/offer_notification_not_found.html",
						{
							"user_login": user_login,
							'new_notify': new_notify,
						},
						context_instance=RequestContext(request)) 
			for offer in transaction.offer.all():
				offer.view_status = "old"
				offer.save()
				notify = Notify.objects.filter(notify_type='make_offer_price',object_id=offer.pk)
				print notify
				if len(notify) != 0:
					elapse_time = now - notify[0].date
					notify[0].elapse_time = get_elapse_time(int(elapse_time.total_seconds())) 
					if notify[0].status == 'new': 
						notify[0].status = 'old'
					notify[0].save()
					notifies.append(notify[0])
			notifies.sort(key=lambda r: r.date)
			new_notify = get_new_notify(request)
			return render_to_response(
				"app/notify/page/offer_notification.html",
				{
					#"autocomplete_data": autocomplete_data,
					'message': message,
					"user_login": user_login,
					"notifies": notifies,
					'new_notify': new_notify,
					'transaction': transaction
				},
				context_instance=RequestContext(request)
		)
	else:
		return HttpResponseRedirect("/notification/")
Пример #2
0
def buy_book_add_item_process(request,book_isbn):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	try: 
		book = None
		if len(book_isbn) == 10:
			books = Book.objects.filter(isbn10=book_isbn)
			if len(books) != 0:
				book = books[0]
		elif len(book_isbn) == 13:
			books = Book.objects.filter(isbn13=book_isbn)
			if len(books) != 0:
				book = books[0]
		else:
			return HttpResponseRedirect("/book/buy/error")
		alert_email = True
		if 'alert_email' in request.session:
			if request.session['alert_email'] == "0":
				alert_email = False
		book_buying_list = BookBuying.objects.filter(book=book)
		book_buying = None
		if len(book_buying_list) == 0:
			book_buying = BookBuying.objects.create(book=book)
		else:
			book_buying = book_buying_list[0]
		book_buying.alert_email = alert_email
		book_buying.save()
		user_login.get_profile().buy_book.add(book_buying)
		user_login.get_profile().save()
		return HttpResponseRedirect("/")
	except Book.DoesNotExist:
		return HttpResponseRedirect("/book/buy/error")
Пример #3
0
def main_view(request):
	message = handle_request_get_message(request)
	#autocomplete_data = get_autocomplete_data(request)
	new_notify = get_new_notify(request)
	#print autocomplete_data
	user_login = get_user_login_object(request)
	book_sell = BookTransaction.objects.filter(seller=user_login,transaction_type='1')
	all_book_sell = BookTransaction.objects.all()
	book_trade_give= BookTransaction.objects.filter(seller=user_login,transaction_type='2')
	#new_offer = Offer.objects.filter(user_receive=user_login,view_status='new')
	#all_offer = Offer.objects.filter(user_receive=user_login)
	#transaction_status = get_transaction_status(request)
	return render_to_response(
			"app/main/page/index.html",
			{
				'message': message,
				#'autocomplete_data': autocomplete_data,
				'new_notify': new_notify,
				'user_login': user_login,
				'book_sell': book_sell,
				'all_book_sell': all_book_sell,
				'book_trade_give': book_trade_give,
				#'new_offer': new_offer,
				#'all_offer': all_offer,
				#'transaction_status': transaction_status
			},
			context_instance=RequestContext(request)
		)
Пример #4
0
def buy_book_search_title_author(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	title,author = "",""
	if 'title' in request.session:
		title = request.session['title']
	if 'author' in request.session:
		author =  request.session['author']
	books =  []
	if len(title) != 0 and len(author) != 0:
		books = get_book_by_title_and_author(title,author)
	else:
		if len(title) != 0:
			books = get_book_by_title(title)
		elif len(author) != 0:
			books = get_book_by_author(author)
	#book_sellings = BookTransaction.objects.filter(transaction_type='1')
	return render_to_response(
			"app/book/page/buy/buy_search.html",
			{
				'user_login': user_login,
				'new_notify': new_notify,
				'books': books,
				#'book_sellings': book_sellings
			}
			,context_instance=RequestContext(request))
Пример #5
0
def buy_book_search_isbn(request,book_isbn):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	books =  get_book_by_isbn(book_isbn)
	if len(books) == 0:
		return HttpResponseRedirect('/book/buy/search/not_found')
	else:
		# print books
		# listed_books = convert_queryset_to_list(BookTransaction.objects.filter(book=books[0]).exclude(seller=user_login))
		# print listed_books
		# return render_to_response(
		# 	"app/book/page/buy/buy_book_listed.html",
		# 	{
		# 		'user_login': user_login,
		# 		'new_notify': new_notify,
		# 		'listed_books': listed_books
		# 	}
		# 	,context_instance=RequestContext(request))
		return render_to_response(
			"app/book/page/buy/buy_search.html",
			{
				'user_login': user_login,
				'new_notify': new_notify,
				'books': books,
				#'book_sellings': book_sellings
			}
			,context_instance=RequestContext(request))
Пример #6
0
def offer_price_form(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	# Clear session
	if "alert_email" in request.session:
		del request.session['alert_email']
	if "title" in request.session:
		del request.session['title']
	if "author" in request.session:
		del request.session['author']
	if "school_id" in request.session:
		del request.session['school_id']
	if "course_number" in request.session:
		del request.session['course_number']
	if "transaction_id" not in request.GET:
		return HttpResponseRedirect("/")
	else:
		try:
 			transaction_id = request.GET['transaction_id']
			transaction = BookTransaction.objects.get(transaction_id=transaction_id)
			return render_to_response(
						"app/offer/page/offer_form_price.html",
						{
							"user_login": user_login,
							"new_notify": new_notify,
							"transaction": transaction,
						}
						,context_instance=RequestContext(request)
					)	
		except:
			return HttpResponseRedirect('/offer/error/')	
Пример #7
0
def buy_book_search_course_listed(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	course_number = None
	school = None
	if "course_number" in request.GET:
		course_number = request.GET['course_number']
	if 'school_id' in request.GET:
		school_id = request.GET['school_id']
	books =  get_book_by_course(request,course_number,school_id)
	if len(books) == 0:
		return HttpResponseRedirect("/book/buy/search/not_found")
	else:
		listed_books = []
		for book in books:
			listed = convert_queryset_to_list(BookTransaction.objects.filter(book=book).exclude(seller=user_login))
			listed_books = listed_books + listed
		return render_to_response(
				"app/book/page/buy/buy_book_listed.html",
				{
					'user_login': user_login,
					'new_notify': new_notify,
					'listed_books': remove_duplicate_object(listed_books)
				}
				,context_instance=RequestContext(request))
Пример #8
0
def offer_time_location_form(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	if "transaction_id" not in request.GET:
		return HttpResponseRedirect("/")
	else:
		try:
 			transaction_id = request.GET['transaction_id']
 			offer_id = request.GET['offer_id']
 			notify_id = request.GET['notify_id']
			transaction = BookTransaction.objects.get(transaction_id=transaction_id)
			offer = Offer.objects.get(pk=offer_id)
			notify = Notify.objects.get(pk=notify_id)
			return render_to_response(
						"app/offer/page/offer_form_time_location.html",
						{
							"user_login": user_login,
							"new_notify": new_notify,
							"transaction": transaction,
							'offer': offer,
							'notify': notify,
						}
						,context_instance=RequestContext(request)
					)	
		except:
			return HttpResponseRedirect('/offer/error/')	
Пример #9
0
def sell_book_confirm(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	if 'isbn' in request.GET:
		try:
			isbn = request.GET['isbn'].replace(" ","")
			book = None
			if len(isbn) == 10: 
				book = Book.objects.get(isbn10=isbn)
			elif len(isbn) == 13:
				book = Book.objects.get(isbn13=isbn)
			else:
				return HttpResponseRedirect('book/sell/error')
			request.session['book_isbn'] = book.isbn10
			course_number = None
			if 'course_number' in request.session:
				course_number = request.session['course_number']
			return render_to_response(
					"app/book/page/sell/sell_confirm.html",
					{
						'user_login': user_login,
						'new_notify': new_notify,
						'book': book,
						'book_price': request.session['book_price'],
						'book_condition': request.session['book_condition'],
						'course_number': course_number
						}
					,context_instance=RequestContext(request))
		except Book.DoesNotExist:
			return HttpResponseRedirect('book/sell/error')
	else:
		return HttpResponseRedirect('/book/sell/')
Пример #10
0
def counter_offer_price_check(request):
	if "max_offer_id" not in request.GET:
		return HttpResponseRedirect("/")
	else:
		user_login = get_user_login_object(request)
		new_notify = get_new_notify(request)
		max_offer_id = request.GET['max_offer_id']
		max_offer = Offer.objects.get(pk=max_offer_id)
		counter_price = request.session['counter_price']
		message = request.session['message']
		transaction_id = request.session['transaction_id'] 
		offer_id = request.session['offer_id'] 
		user_receive = Offer.objects.get(pk=offer_id).user_offer
		return render_to_response(
					"app/offer/page/counter_offer_price_check.html",
					{
						'user_login': user_login,
						'new_notify': new_notify,
						'max_offer': max_offer,
						'offer_id': offer_id,
						'message': message,
						'transaction_id': transaction_id,
						'counter_price': counter_price,
						'user_receive': user_receive
					}
					,context_instance=RequestContext(request)
				)
Пример #11
0
def main_view(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	people = []
	partners_data = get_partners_data(request)
	is_search = False
	if request.method == "GET":
		if "q" in request.GET:
			is_search = True
			query = request.GET['q']
			if len(query) != 0:
				people = get_people_by_name(request,query)
				for person in people:
					person.get_profile().partner_status = check_partnership(request,person.username)
					person.get_profile().save()
	return render_to_response(
			"app/partner/page/main_view.html",
			{
				'user_login': user_login,
				'people': people,
				'new_notify': new_notify,
				'is_search': is_search,
				'partners_data':partners_data
			},
			context_instance=RequestContext(request)
		)
Пример #12
0
def partner_of_partner_match(request,username):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	partner = get_object_or_404(User,username=username)

	partner_match_data = []

	partners = user_login.get_profile().partners.all()
	for user1 in partners:
		for user2 in partners:
			if user1 != user2:
				partner_match_data += get_partner_match_value(user1,user2)

	return render_to_response(
							"app/partner/page/partner_of_partner_match.html",
							{
								'user_login': user_login,
								'new_notify': new_notify,
								'partner': partner,
								'partner_match_data': remove_duplicate_object(partner_match_data)
							}
							,context_instance=RequestContext(request)
						)

	
Пример #13
0
def partner_book_available(request,username):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	partner = get_object_or_404(User,username=username)
	book_sell_trade = BookTransaction.objects.filter(seller=partner)
	if 'sort' in request.GET:
		if request.GET['sort'] == 'condition':
			book_sell_trade = BookTransaction.objects.filter(seller=partner).order_by('condition')
		elif request.GET['sort'] == 'post_time':
			book_sell_trade = BookTransaction.objects.filter(seller=partner).order_by('-post_time')
		elif request.GET['sort'] == 'title':
			list_book_sell_trade = BookTransaction.objects.filter(seller=partner)
			list_title = {}
			for book_sell_trade in list_book_sell_trade:
				list_title[book_sell_trade] = book_sell_trade.book.title
			book_sell_trade = sorted(list_title, key=list_title.get)
		else:
			list_book_sell_trade = BookTransaction.objects.filter(seller=partner)
			list_author = {}
			for book_sell_trade in list_book_sell_trade:
				list_author[book_sell_trade] = book_sell_trade.book.author
			book_sell_trade = sorted(list_author, key=list_author.get)
	return render_to_response(
							"app/partner/page/partner_book_available.html",
							{
								'user_login': user_login,
								'new_notify': new_notify,
								'partner': partner,
								'book_sell_trade': book_sell_trade
							}
							,context_instance=RequestContext(request)
						)
Пример #14
0
def partner_book_match(request,username):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	partner = get_object_or_404(User,username=username)
	user_login_transaction_book = BookTransaction.objects.filter(seller=user_login)
	partner_transaction_book = BookTransaction.objects.filter(seller=partner)

	books_sell_trade = []
	books_buy = []

	# Get all the book the user_login want to buy and the partner want to sell/trade
	for book_transaction in partner_transaction_book:
		for book_buying in user_login.get_profile().buy_book.all():
			if book_transaction.book == book_buying.book: 
				books_sell_trade.append(book_transaction)

	# Get all the book the user_login want to sell/trade and the partner want to buy
	for book_transaction in user_login_transaction_book:
		for book_buying in partner.get_profile().buy_book.all():
			if book_transaction.book == book_buying.book: 
				books_buy.append(book_transaction) 

	return render_to_response(
							"app/partner/page/partner_match.html",
							{
								'user_login': user_login,
								'new_notify': new_notify,
								'partner': partner,
								"books_buy": remove_duplicate_object(books_buy),
								'books_sell_trade': remove_duplicate_object(books_sell_trade)
							}
							,context_instance=RequestContext(request)
						)
Пример #15
0
def main_view(request):
	message = handle_request_get_message(request)
	autocomplete_data = get_autocomplete_data(request)
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	books = []
	people = []
	if request.method == "GET":
		if "q" in request.GET:
			query = request.GET['q']
			if len(query) != 0:
				book_by_isbn = get_book_by_isbn(query)
				book_by_title = get_book_by_title(query)
				book_by_author = get_book_by_author(query)
				books = remove_duplicate_object(book_by_isbn + book_by_title + book_by_author)
				people = get_people_by_name(request,query)
				for person in people:
					person.get_profile().partner_status = check_partnership(request,person.username)
					person.get_profile().save()
	return render_to_response(
			"app/search/page/main_view.html",
			{
				'message': message,
				'autocomplete_data': autocomplete_data,
				'user_login': user_login,
				'books': books,
				'people': people,
				'new_notify': new_notify,
			},
			context_instance=RequestContext(request)
		)
Пример #16
0
def main_view(request,username):
	user_view = get_object_or_404(User,username=username)
	user_login = get_user_login_object(request)
	
	#autocomplete_data = get_autocomplete_data(request)
	new_notify = get_new_notify(request)
	message = handle_request_get_message(request)

	template_name = ""
	if check_user_login_page(request,username):
		template = "app/member/page/view/login_user.html"
		is_partner = None
	else:
		template = "app/member/page/view/normal_user.html"
		is_partner = check_partnership(request,username)

	#book_trade_give = BookTradingGiving.objects.filter(trader1_giver=user_view)

	return render_to_response(
			template,
			{
				#'autocomplete_data': autocomplete_data,
				'message': message,
				'new_notify': new_notify,
				'is_partner': is_partner,
				'user_view': user_view,
				'user_login': user_login,
				#'book_trade_give': book_trade_give,
			},
			context_instance=RequestContext(request)
		)
Пример #17
0
def buy_book_form(request):
	new_notify = get_new_notify(request)
	user_login = get_user_login_object(request)
	return render_to_response(
				"app/book/page/buy/buy_form.html",
				{
					'user_login': user_login,
					'new_notify': new_notify
				}
				,context_instance=RequestContext(request))
Пример #18
0
def buy_book_search_not_found(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	return render_to_response(
			"app/book/page/buy/buy_search_not_found.html",
			{
				'user_login': user_login,
				'new_notify': new_notify,
			}
			,context_instance=RequestContext(request))
Пример #19
0
def buy_book_available_author_process(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	available_book_author = ""
	if "available_book_author" in request.GET:
		available_book_author = request.GET['available_book_author']
	available_book_author = BookAvailableAuthor.objects.create(author=available_book_author)
	available_book_author.save()
	user_login.get_profile().available_book_author.add(available_book_author)
	return HttpResponseRedirect("/")
Пример #20
0
def delete_buy_book_item_error(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	return render_to_response(
							"app/book/page/sell/delete_buy_book_error.html",
							{
								"user_login": user_login,
								"new_notify": new_notify
							}
							,context_instance=RequestContext(request)
						)
Пример #21
0
def trade_give_book_error(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	return render_to_response(
							"app/book/page/trade_give/trade_give_error.html",
							{
								"user_login": user_login,
								"new_notify": new_notify
							}
							,context_instance=RequestContext(request)
						)
Пример #22
0
def offer_time_location_success(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	return render_to_response(
							"app/offer/page/offer_time_location_success.html",
							{
								"user_login": user_login,
								"new_notify": new_notify
							}
							,context_instance=RequestContext(request)
						)
Пример #23
0
def sell_book_form(request):
	new_notify = get_new_notify(request)
	user_login = get_user_login_object(request)
	if request.method == 'POST':
		isbn = request.POST['book_isbn_input']
		request.session['book_isbn'] = isbn
		request.session['book_condition'] = None
		request.session['book_price'] = None
		request.session['course_number'] = None
		request.session['alert_email'] = request.POST['alert_email_input']
		if "book_condition_input" in request.POST:
			request.session['book_condition'] = request.POST['book_condition_input']
		if "book_price_input" in request.POST:
			request.session['book_price'] = request.POST['book_price_input']
		if 'course_number_input' in request.POST:	
			request.session['course_number'] = request.POST['course_number_input']
		# If user search by isbn, find the book and go directly to the confirm screen
		if len(isbn) != 0:
			# Check if the book with that isbn found, go to not found page if not found the book
			books = search_book(request)
			if len(books) != 0:
				# Redirect to confirm screen 
				book = books[0]
				if len(isbn) == 10:
					return HttpResponseRedirect("/book/sell/confirm?isbn=" + book.isbn10)
				elif len(isbn) == 13:
					return HttpResponseRedirect("/book/sell/confirm?isbn=" + book.isbn13)
			return render_to_response(
						"app/book/page/sell/sell_search_not_found.html",
						{
							'user_login': user_login,
							'new_notify': new_notify
						}
						,context_instance=RequestContext(request)) 
		# If not search by isbn, do the search normally
		else:
			books = search_book(request)		
			return render_to_response(
				"app/book/page/sell/sell_search.html",
				{
					'user_login': user_login,
					'new_notify': new_notify,
					'books': books
				}
				,context_instance=RequestContext(request))
	else:
		return render_to_response(
				"app/book/page/sell/sell_form.html",
				{
					'user_login': user_login,
					'new_notify': new_notify
				}
				,context_instance=RequestContext(request))
Пример #24
0
def trade_give_book_action(request,book_isbn):
	book = get_object_or_404(Book,isbn10=book_isbn)
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	return render_to_response(
			"app/book/page/trade_give/trade_give_form.html",
			{
				'user_login': user_login,
				'new_notify': new_notify,
				'book': book,
			}
			,context_instance=RequestContext(request))
Пример #25
0
def partner_book_wanted(request,username):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	partner = get_object_or_404(User,username=username)
	return render_to_response(
							"app/partner/page/partner_book_wanted.html",
							{
								'user_login': user_login,
								'new_notify': new_notify,
								'partner': partner,
							}
							,context_instance=RequestContext(request)
						)
Пример #26
0
def sell_book_action(request,book_isbn):
	book = get_object_or_404(Book,isbn10=book_isbn)
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	return render_to_response(
			"app/book/page/sell/sell_form.html",
			{
				'user_login': user_login,
				'new_notify': new_notify,
				'book': book,
				'price': request.session['book_price'],
				'condition': request.session['book_condition'],
				'course_number': request.session['course_number'],
			}
			,context_instance=RequestContext(request))
Пример #27
0
def buy_book_available_author_confirm(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	available_book_author = ""
	if "available_book_author" in request.session:
		available_book_author = request.session['available_book_author']
	#authors = get_authors(available_book_author)
	lst = [word[0].upper() + word[1:] for word in available_book_author.split()]
	author = " ".join(lst)
	return render_to_response(
	 			"app/book/page/buy/buy_book_available_author_confirm.html",
	 			{
	 				'user_login': user_login,
	 				'new_notify': new_notify,
	 				'author':author
	 			}
	 			,context_instance=RequestContext(request))
Пример #28
0
def edit_buy_book_item(request):
	if "buy_book_id" not in request.GET:
		return HttpResponseRedirect("/")
	else:
		user_login = get_user_login_object(request)
		new_notify = get_new_notify(request)
		try:
			buy_book_id = request.GET['buy_book_id']
			buy_book = BookBuying.objects.get(pk=buy_book_id)
			return render_to_response(
					"app/book/page/buy/buy_book_edit.html",
					{
						'user_login': user_login,
						'new_notify': new_notify,
						'buy_book': buy_book
					}
					,context_instance=RequestContext(request))
		except:
			return HttpResponseRedirect("/book/buy/item/edit/error")
Пример #29
0
def buy_book_course_confirm(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	course_number = None
	school = None
	if "course_number" in request.session:
		course_number = request.session['course_number']
	if 'school_id' in request.session:
		school_id = request.session['school_id']
		school = Institution.objects.get(pk=school_id)
	return render_to_response(
	 			"app/book/page/buy/buy_book_course_confirm.html",
	 			{
	 				'user_login': user_login,
	 				'new_notify': new_notify,
	 				'course_number': course_number.upper(),
	 				'school': school,
	 			}
	 			,context_instance=RequestContext(request))
Пример #30
0
def buy_book_search_isbn_listed(request):
	user_login = get_user_login_object(request)
	new_notify = get_new_notify(request)
	book_isbn = None
	if "book_isbn" in request.GET:
		book_isbn = request.GET['book_isbn']
	books =  get_book_by_isbn(book_isbn)
	if len(books) == 0:
		return HttpResponseRedirect('/book/buy/search/not_found')
	else:
		listed_books = convert_queryset_to_list(BookTransaction.objects.filter(book=books[0]).exclude(seller=user_login))
		return render_to_response(
			"app/book/page/buy/buy_book_listed.html",
			{
				'user_login': user_login,
				'new_notify': new_notify,
				'listed_books': listed_books
			}
			,context_instance=RequestContext(request))