Пример #1
0
def get_people_by_name(request,query):
	user_login = get_user_login_object(request)
	author_words = query.split()
	result = []
	for word in author_words:
		if word.lower() not in IGNORE_WORDS:
			users1 = convert_queryset_to_list(User.objects.filter(first_name__icontains=word).exclude(pk=1).exclude(pk=user_login.pk))
			users2 = convert_queryset_to_list(User.objects.filter(last_name__icontains=word).exclude(pk=1).exclude(pk=user_login.pk))
			users = users1 + users2
			result = result + users
	return remove_duplicate_object(result)
Пример #2
0
def get_book_by_title(query):
	title_words = query.split()
	books = Book.objects.filter(title=query)
	if len(books) != 0:
		return convert_queryset_to_list(books)
	else:
		result = []
		for title_word in title_words:
			if title_word.lower() not in IGNORE_WORDS:
				books = convert_queryset_to_list(Book.objects.filter(title__icontains=title_word))
				result = result + books
		return remove_duplicate_object(result)
Пример #3
0
def get_book_by_author(query):
	author_words = query.split()
	books = Book.objects.filter(author=query)
	if len(books) != 0:
		return convert_queryset_to_list(books)
	else:
		result = []
		for author_word in author_words:
			if author_word.lower() not in IGNORE_WORDS:
				print author_word
				books = convert_queryset_to_list(Book.objects.filter(author__icontains=author_word))
				result = result + books
		return remove_duplicate_object(result)
Пример #4
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))
Пример #5
0
def get_book_by_isbn(query):
	if query == None:
		return []
	isbn_str = query.split()[0].replace(" ","")
	books = []
	if len(isbn_str) == 10:
		books = convert_queryset_to_list(Book.objects.filter(isbn10__iexact=isbn_str))
		if len(books) == 0:
			new_book = search_book_online_by_isbn(isbn_str)
			if new_book != None:
				books.append(new_book)
	elif len(isbn_str) == 13:
		books = convert_queryset_to_list(Book.objects.filter(isbn13__iexact=isbn_str))
		if len(books) == 0:
			new_book = search_book_online_by_isbn(isbn_str)
			if new_book != None:
				books.append(new_book)
	return remove_duplicate_object(books)
Пример #6
0
def get_book_by_title_and_author(title_query,author_query):
	title_words = title_query.split()
	author_words = author_query.split()
	result = []
	for title_word in title_words:
		for author_word in author_words:
			if title_word.lower() not in IGNORE_WORDS and author_word.lower() not in IGNORE_WORDS:
				books = convert_queryset_to_list(Book.objects.filter(title__icontains=title_word,author__icontains=author_word))
				result = result + books
	return remove_duplicate_object(result)
Пример #7
0
def get_book_by_course(request,course_number,school_id):
	user_login = get_user_login_object(request)
	courses = Course.objects.filter(course_number__iexact=course_number,institution=Institution.objects.get(id=school_id))
	if len(courses) == 0:
		return []
	else:
		course = courses[0]
		books = convert_queryset_to_list(course.course_book.all())
		result = []
		for book in books:
			b = BookTransaction.objects.filter(seller=user_login,book=book)
			if len(b) == 0:
				result.append(book)
		return remove_duplicate_object(result)
Пример #8
0
def get_partners_data(request):
	user_login = get_user_login_object(request)
	list_buy_book = convert_queryset_to_list(user_login.get_profile().buy_book.all())
	list_transaction_book = BookTransaction.objects.filter(seller=user_login)
	result = []
	#users = User.objects.all()
	partners = user_login.get_profile().partners.all()
	for user in partners:
		#if check_partnership(request,user.username) == 1 and user != user_login:
		book_transactions1 = BookTransaction.objects.filter(seller=user)
		matches = 0
		partner_match = 0

		# Get all the book the user_login want to buy and the partner want to sell/trade
		for book_transaction in book_transactions1:
			for book_buying in list_buy_book:
				if book_transaction.book == book_buying.book: 
					matches += 1

		# Get all the book the user_login want to sell/trade and the partner want to buy
		for book_transaction in list_transaction_book:
			for book_buying in user.get_profile().buy_book.all():
				if book_transaction.book == book_buying.book: 
					matches += 1 

		for user2 in partners:
			if user2 != user:
				partner_match += get_partner_match_number(user2,user)

		# Get the match for partners of the user_login's partners
		# for partner in user.get_profile().partners.all():
		# 	if partner != user_login:
		# 		book_transactions2 = BookTransaction.objects.filter(seller=partner)
		# 		m1 = 0
		# 		for book_transaction in book_transactions2:
		# 			for book_buying in list_buy_book:
		# 				if book_transaction.book == book_buying.book: 
		# 					m1 += 1
		# 		partner_match += m1
		# 		m2 = 0
		# 		for book_transaction in list_transaction_book:
		# 			for book_buying in partner.get_profile().buy_book.all():
		# 				if book_transaction.book == book_buying.book:
		# 					m2 += 1
		# 		partner_match += m2
		result.append([user,len(book_transactions1),matches,partner_match])
	return result
Пример #9
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))