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)
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)
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)
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))
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)
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)
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)
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
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))