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/")
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")
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) )
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))
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))
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/')
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 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/')
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/')
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) )
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) )
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) )
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) )
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) )
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) )
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) )
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))
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))
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("/")
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) )
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) )
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) )
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))
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))
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) )
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))
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))
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")
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))
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))