def categoryProductView(request): data = {'title': 'Danh mục sản phẩm'} items = Category.objects.all() if items and items.count() > 0: data['categoryItems'] = items return render(request, 'partner/owner/category_product_view.html', processData(request, data))
def loginUser(request): data = { 'title': 'Đăng nhập' } if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') if not (username and password): messages.error(request, 'Hãy nhập đầy đủ thông tin tài khoản!') return redirect('login') user = auth.authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) nextUrl = request.POST.get('next') print(nextUrl) if not nextUrl: nextUrl = 'dashboard' return redirect(nextUrl) messages.error(request, 'Đăng nhập thành công!') return redirect('login') else: # check account type, 3 types normal, rider and restaurent owner data['role'] = getRole(request) return render(request, 'login.html', processData(request, data))
def orderHistory(request): data = {'title': 'Previous orders '} if request.method == "POST": messages.error(request, "cant save. please try again or conact admin") return redirect('order_history') ordersFromDb = Order.objects.filter(user=request.user).order_by('-id') newOrders = [] for order in ordersFromDb: tmp_order = {} tmp_order['id'] = order.id tmp_order['delivered'] = order.delivered tmp_order['rider'] = order.rider # tmp_order['deliveredOn'] = order.deliveredOn tmp_order['total'] = order.total_price tmp_order['items'] = OrderedItem.objects.filter( order=order).order_by('-id') newOrders.append(tmp_order) print(newOrders) data['orders'] = newOrders return render(request, 'partner/owner/order_history.html', processData(request, data))
def getOrder(request): data = {'title': 'Danh Sách Đơn'} ordersFromDb = Order.objects.filter(Q(delivered=False), Q(rider=None) | Q(rider=request.user)) newOrders = [] for order in ordersFromDb: tmp_order = {} tmp_order['id'] = order.id tmp_order['delivered'] = order.delivered tmp_order['rider'] = order.rider tmp_order['table'] = order.user.username print(order.user.username) tmp_order['dateTime'] = order.date tmp_order['total'] = order.total_price tmp_order['items'] = OrderedItem.objects.filter( order=order).order_by('-id') newOrders.append(tmp_order) print(newOrders) data['orders'] = newOrders return render(request, 'partner/rider/get_order.html', processData(request, data))
def ownerHistoryTable(request): data = {'title': 'Thống kê'} table_code = request.GET.get('table_code') print(table_code) try: user = User.objects.get(username=table_code) print(user) ordersFromDb = Order.objects.filter(user=user).order_by('-id') print(ordersFromDb[0].id) except Exception as ex: messages.error(request, table_code + " chưa có dữ liệu Đơn đặt!") newOrders = [] for order in ordersFromDb: tmp_order = {} tmp_order['id'] = order.id tmp_order['delivered'] = order.delivered tmp_order['rider'] = order.rider tmp_order['dateTime'] = order.date tmp_order['total'] = order.total_price tmp_order['items'] = OrderedItem.objects.filter( order=order).order_by('-id') newOrders.append(tmp_order) print(newOrders) data['orders'] = newOrders data['name_table'] = table_code return render(request, 'partner/owner/owner_history_details.html', processData(request, data))
def revenueDateDetails(request): data = {'title': 'Thống kê'} table_code = request.GET.get('table_code') date = request.GET.get('date') user = User.objects.get(username=table_code) try: ordersFromDb = Order.objects.filter( user=user, date__date=str(date)).order_by('-id') except Exception as ex: messages.error(request, "Lỗi! Vui lòng liên hệ Admin!") newOrders = [] for order in ordersFromDb: tmp_order = {} tmp_order['id'] = order.id tmp_order['delivered'] = order.delivered tmp_order['rider'] = order.rider tmp_order['dateTime'] = order.date tmp_order['total'] = order.total_price tmp_order['items'] = OrderedItem.objects.filter( order=order).order_by('-id') newOrders.append(tmp_order) data['orders'] = newOrders data['name_table'] = table_code return render(request, 'partner/owner/revenue_table_details.html', processData(request, data))
def addTable(request): data = {'title': 'Bàn'} # Lấy dữ liệu từ form add table if request.method == "POST": print("Add") table_name = request.POST.get('name') table_code = request.GET.get('table_code') try: table_code_check = Table.objects.filter( table_name=table_name).first() if table_code_check.table_code == table_code: messages.info(request, table_name + " không thay đổi!") else: tableItem = Table.objects.filter(table_code=table_code).first() tableItem.table_code = "Ban_" + table_name.split(" ", 1)[1] tableItem.table_name = table_name tableItem.save() # user = User.objects. messages.info(request, table_name + " đã được cập nhật!") except Exception as ex: messages.info(request, 'updated price for item ') print(ex) return redirect('add_table') return redirect('view_table') # Tải dữ liệu từ form view table table_code = request.GET.get('table_code') if table_code: data['tableItems'] = Table.objects.filter( table_code=table_code).first() return render(request, 'partner/owner/add_table.html', processData(request, data))
def viewTable(request): data = {'title': 'Bàn'} items = Table.objects.all() if items and items.count() > 0: data['tableItems'] = items return render(request, 'partner/owner/view_table.html', processData(request, data))
def index(request): data = { 'title': 'Hệ thống e-menu' } items = Table.objects.all() if items and items.count() > 0: data['tableItems'] = items return render(request, 'user/select.html', processData(request, data))
def addMenu(request): data = {'title': 'Menu sản phẩm'} data['categoryItem'] = Category.objects.all() if request.method == "POST": id = request.POST.get('id') name = request.POST.get('name') price = request.POST.get('price') image = request.FILES.get('image') describe = request.POST.get('describe') category_code = request.POST.get('categoryCode') if not (name and price): messages.error(request, 'Hãy thêm tên và giá cả!') return redirect('add_menu') try: if id: menuItem = MenuItem.objects.filter(user=request.user, id=id).first() menuItem.price = price menuItem.name = name if image: menuItem.image.save(image.name, image) menuItem.describe = describe menuItem.category = category_code menuItem.save() messages.info(request, 'Sản phẩm ' + name + ' đã được cập nhật!') else: menuItem = MenuItem.objects.create(user=request.user, name=name, price=price, image=image, describe=describe, category=category_code) messages.info(request, 'Sản phẩm ' + name + ' đã được thêm mới!') except Exception as e: messages.error(request, 'Xảy ra lỗi!') return redirect('add_menu') return redirect('view_menu') itemId = request.GET.get('id') if itemId: menuItem = MenuItem.objects.filter(id=itemId).first() category_code = menuItem.category category = Category.objects.filter(category_code=category_code).first() data['menuItem'] = menuItem data['category_code'] = category_code data['category_name'] = category.category_name data['categoryItem'] = Category.objects.all() return render(request, 'partner/owner/add_menu.html', processData(request, data))
def revenue(request): data = {'title': 'Thống kê'} ordersFromDb = Order.objects.all() list_date = [] for order in ordersFromDb: str_date = str(order.date).split(" ", 1)[0] if str_date not in list_date: list_date.append(str_date) data = {'list_date': list_date} return render(request, 'partner/owner/revenue.html', processData(request, data))
def signup(request): data = { 'title': 'Tạo tài khoản' } if(request.method == 'POST'): first_name = request.POST.get('first_name') last_name = request.POST.get('last_name') username = request.POST.get('username') email = request.POST.get('email') password1 = request.POST.get('password1') password2 = request.POST.get('password2') if not(first_name and last_name and username and email and password1 and password2): messages.info(request, 'All fields are mandatory') return redirect('signup') if password1 != password2: messages.info(request, 'Passwords not matching') return redirect('signup') else: if User.objects.filter(username=username).exists(): messages.info( request, 'Username already taken. Please select another Username.') return redirect('signup') elif User.objects.filter(email=email).exists(): messages.info( request, 'Email already registered. Please login to continue.') else: user = User.objects.create_user( username=username, email=email, password=password1, first_name=first_name, last_name=last_name) user.profile.role = getRole(request) user.save() print('User created') messages.info( request, 'Account created successfully. Please login to continue.') return redirect('login') else: # check account type, 3 types normal, rider and restaurent owner role = request.GET.get('type', 'normal').lower() if role != 'rider' and role != 'owner': role = 'normal' data['role'] = role return render(request, 'signup.html', processData(request, data))
def restaurantDetails(request): data = {'title': 'My Restaurant Details'} if request.method == "POST": name = request.POST.get('name') address1 = request.POST.get('address1', '') address2 = request.POST.get('address2', '') country = request.POST.get('country', 'Vietnam') state = request.POST.get('state', '') zip = request.POST.get('zip', '') location = request.POST.get('location', '') tag = request.POST.get('tag', '') if not name: messages.error(request, 'cant save restaurant details') return redirect('restaurant_details') rest = Restaurant() try: rest = Restaurant.objects.create(user=request.user, name=name, address1=address1, address2=address2, country=country, state=state, zip=zip, location=location, tag=tag) messages.info(request, 'saved restaurant details') except IntegrityError: rest = Restaurant.objects.get(user=request.user) rest.name = name rest.address1 = address1 rest.address2 = address2 rest.country = country rest.state = state rest.zip = zip rest.location = location rest.tag = tag rest.save() messages.info(request, 'updated restaurant details.') except: messages.info(request, 'cant save restaurant details. try again') return redirect('restaurant_details') data['rest'] = Restaurant.objects.filter( user=request.user).order_by('id').first() data['countries'] = list(countries) return render(request, 'partner/owner/restaurant_details.html', processData(request, data))
def viewDescribe(request): data = {'title': 'Mô tả sản phẩm'} name = request.GET.get('name') id_s = request.GET.get('id') item = MenuItem.objects.filter(name=name) data = { 'info_item_id': item[0].id, 'info_item_name': item[0].name, 'info_item_price': item[0].price, 'info_item_image': item[0].image, 'info_item_describe': item[0].describe, } return render(request, 'partner/owner/describe.html', processData(request, data))
def home(request): data = { 'title': 'Hệ thống e-menu', } data['slideBar'] = Category.objects.all() categoryFromDb = Category.objects.all() newCategory = [] for category in categoryFromDb: tmp_category = {} tmp_category['categoryCode'] = category.category_code tmp_category['categoryName'] = category.category_name tmp_category['categoryItems'] = MenuItem.objects.filter(category=category.category_code) newCategory.append(tmp_category) data['category'] = newCategory return render(request, 'index.html', processData(request, data))
def revenueDate(request): data = {'title': 'Thống kê'} if request.method == "POST": date = request.POST.get('date') data['date'] = date orders = Order.objects.filter(date__date=str(date)) list_table = [] total_venenue = 0 for order in orders: if str(order.user.username) not in list_table: list_table.append(str(order.user.username)) total_venenue += order.total_price data['all_table'] = list_table data['total_venenue'] = total_venenue return render(request, 'partner/owner/revenue_table.html', processData(request, data))
def ownerHistory(request): data = {'title': 'Thống kê'} if request.method == "POST": messages.error(request, "cant save. please try again or conact admin") return redirect('order_history') data['all_table'] = Table.objects.all() # o = OrderedItem.objects.filter(item__user=request.user) # history = () # for i in o: # history.append(i) # print(i.item) # data['history'] = history # print(history) return render(request, 'partner/owner/view_table_order.html', processData(request, data))
def categoryProductCreate(request): data = {'title': 'Danh mục sản phẩm'} if request.method == "POST": category_name = request.POST.get('name') category_code = request.GET.get('category_code') try: category_code_check = Category.objects.filter( category_code=category_code).first() print(category_name) if category_code_check.category_name == category_name: messages.info( request, "Danh mục \"" + category_name + "\" không thay đổi!") else: categoryItem = Category.objects.filter( category_code=category_code).first() category_list = category_name.split() sub_str = '' for item in category_list: if item.isalnum(): lower_item = unidecode(item.lower()) + "-" sub_str += lower_item categoryItem.category_code = sub_str.rsplit('-', 1)[0] categoryItem.category_name = category_name.upper() categoryItem.save() print(category_name.upper()) messages.info( request, "Danh mục \"" + category_name + "\" đã được cập nhật!") except Exception as ex: messages.info(request, 'Xảy ra lỗi! Vui lòng liên hệ admin!') return redirect('category_product_create') return redirect('category_product_view') # Tải dữ liệu từ form view table category_code = request.GET.get('category_code') print(category_code) if category_code: data['categoryItems'] = Category.objects.filter( category_code=category_code).first() return render(request, 'partner/owner/category_product_create.html', processData(request, data))
def deleteMenu(request): data = {'title': 'Menu sản phẩm'} if request.method == 'POST': confirmed = request.POST.get('confirm', 'no') id = request.POST.get('id') if not id: messages.error(request, 'Hãy chọn Sản phẩm cần xóa!') return redirect('view_menu') print(confirmed) if confirmed and unidecode(confirmed.lower()) == 'co': try: itemToDelete = MenuItem.objects.filter(user=request.user, id=id).first() print(itemToDelete.name) itemToDelete.delete() messages.error(request, itemToDelete.name + ' đã được xóa!') return redirect('view_menu') except Exception as e: print(e) messages.error(request, 'Không thể xóa id = ' + str(id) + "!") return redirect('view_menu') else: messages.error(request, 'Hãy chọn "Có" để xác nhận và xóa!') return redirect('view_menu') id = request.GET.get('id') print(id) if not id: messages.error(request, 'Hãy chọn Sản phẩm cần xóa!') return redirect('view_menu') if MenuItem.objects.filter(user=request.user, id=id).count() != 1: messages.error(request, 'Không tìm thấy Sản phẩm cần xóa!') return redirect('view_menu') data['item'] = MenuItem.objects.filter(user=request.user, id=id).first() return render(request, 'partner/owner/confirm_delete_item.html', processData(request, data))
def deliveryHistory(request): data = {'title': 'Nhật Ký Đơn'} ordersFromDb = Order.objects.filter(rider=request.user, delivered=True) newOrders = [] for order in ordersFromDb: tmp_order = {} tmp_order['id'] = order.id tmp_order['delivered'] = order.delivered tmp_order['rider'] = order.rider tmp_order['table'] = order.user.username print(order.user.username) tmp_order['dateTime'] = order.date tmp_order['total'] = order.total_price tmp_order['items'] = OrderedItem.objects.filter( order=order).order_by('-id') newOrders.append(tmp_order) print(newOrders) data['orders'] = newOrders return render(request, 'partner/rider/delivery_history.html', processData(request, data))
def completePay(request): data = { 'title': 'Đơn của bạn đã được nhận' } return render(request, 'complete_pay.html', processData(request, data))
def aboutTeams(request): data = { 'title': 'Thông tin về nhóm!' } return render(request, 'teams.html', processData(request, data))
def pay(request): data = { 'title': 'Thanh toán' } return render(request, 'pay.html', processData(request, data))
def partnerWithUs(request): data = { 'title': 'Partner with us' } return render(request, 'partner/select.html', processData(request, data))
def specials(request): data = { 'title': 'Special deals' } return render(request, 'specials.html', processData(request, data))
def dashboard(request): data = { 'title': 'Trang chủ' } return render(request, 'user/profile.html', processData(request, data))
def profile(request): data = { 'title': 'Thông tin' } return render(request, 'user/profile.html', processData(request, data))
def cart(request): data = { 'title': 'Đơn đặt' } return render(request, 'cart.html', processData(request, data))
def support(request): data = { 'title': 'Customer support page' } return render(request, 'support.html', processData(request, data))
def offers(request): data = { 'title': 'New offers' } return render(request, 'offers.html', processData(request, data))