Advertisement
Guest User

Untitled

a guest
Feb 4th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.74 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.utils import timezone
  4. from django.shortcuts import render, get_object_or_404, redirect
  5. from .models import Item
  6. from django.contrib.auth import authenticate, login
  7. from django import forms
  8. from django.http import HttpResponse, HttpResponseRedirect
  9. from django.views.generic import DetailView
  10. from carton.cart import Cart
  11. from .forms import Search
  12. from django.core.mail import send_mail
  13. from random import randrange
  14. import time
  15. import datetime
  16.  
  17. def item_list(request):
  18.     items = Item.objects.filter(published_date__lte=timezone.now()).order_by('category')
  19.     categories = []
  20.     for item in items:
  21.         categories.append(item.category)
  22.     categories = set(categories)
  23.     return render(request, 'shop/item_list.html',{'items' : items,'categories' : categories})
  24. def about(request):
  25.     return render(request, 'shop/about.html')
  26. def contact(request):
  27.     return render(request, 'shop/contact.html')
  28. def item_detail(request, pk):
  29.     item = get_object_or_404(Item, pk=pk)
  30.     return render(request, 'shop/item_detail.html',{'item' : item})
  31. def admin_login(request):
  32.     username = request.POST['username']
  33.     password = request.POST['password']
  34.     user = authenticate(request, username=username, password=password)
  35.     if user is not None:
  36.         login(request, user)
  37.         redirect('item_list')
  38.     else:
  39.         pass
  40. def add(request,pk):
  41.     cart = Cart(request.session)
  42.     item = get_object_or_404(Item, pk=pk)
  43.     cart.add(item,price=item.price)
  44.     items =Item.objects.filter(published_date__lte=timezone.now()).order_by('category')
  45.     categories = []
  46.     for item in items:
  47.         categories.append(item.category)
  48.     categories = set(categories)
  49.     return render(request, 'shop/item_list.html',{'items' : items,'categories' : categories})
  50. def show(request):
  51.     cart = Cart(request.session)
  52.     items = Item.objects.filter(published_date__lte=timezone.now()).order_by('category')
  53.     return render(request,'shop/cart.html',{'items': items })
  54. def remove(request):
  55.     cart = Cart(request.session)
  56.     items = Item.objects.filter(published_date__lte=timezone.now()).order_by('category')
  57.     cart.clear()
  58.     return render(request,'shop/cart.html',{'items':items})
  59. def removei(request,pk):
  60.     cart = Cart(request.session)
  61.     item = get_object_or_404(Item,pk=pk)
  62.     items = Item.objects.filter(published_date__lte=timezone.now()).order_by('category')
  63.     cart.remove(item)
  64.     return render(request,'shop/cart.html',{'items':items})
  65. def success(request):
  66.     return render(request,'shop/success.html')
  67. def technology(request):
  68.     items = Item.objects.filter(published_date__lte=timezone.now())
  69.     return render(request,'shop/technology.html',{'items' : items})
  70. def lifestyle(request):
  71.     items = Item.objects.filter(published_date__lte=timezone.now())
  72.     return render(request,'shop/lifestyle.html',{'items' : items})
  73. def search(request):
  74.     if request.method == 'GET':
  75.         query = request.GET['search'].lower()
  76.         items = list(Item.objects.filter(title__icontains=query))
  77.         items.extend(Item.objects.filter(category__icontains=query))
  78.         count = len(items)
  79.     return render(request,'shop/search.html',{'items' : items , 'count' : count})
  80. def grill(request):
  81.     items = list(Item.objects.filter(title__icontains='grill'))
  82.     items.extend(Item.objects.filter(description__icontains='grill'))
  83.     items = set(items)
  84.     return render(request,'shop/grills.html',{'items' : items})
  85. def fire_pits(request):
  86.     items = list(Item.objects.filter(title__icontains='pit'))
  87.     items.extend(Item.objects.filter(description__icontains='pit'))
  88.     items = set(items)
  89.     return render(request,'shop/grills.html',{'items' : items})
  90. def checkout(request):
  91.     cart = Cart(request.session)
  92.     tems = Item.objects.filter(published_date__lte=timezone.now()).order_by('category')
  93.     t = []
  94.     if request.method == 'POST':
  95.         name = request.POST['name']
  96.         email = request.POST['email']
  97.         phone = request.POST['phone']
  98.         address = request.POST['address']
  99.         memo = request.POST['memo']
  100.         for item in cart.items:
  101.             for i in tems:
  102.                 if item.price == i.price:
  103.                     det = "Product: "+ str(i.title)+" \nAmount per piece: "+str(i.price)+"\nTotal Quantity: "+str(item.quantity)+"\n"
  104.                     t.append(det)
  105.         t.append("\nTotal: ")
  106.         t.append(str(cart.total))
  107.         t = "\n".join(t[0:])
  108.         da = str(datetime.datetime.now().strftime("%Y%m%d-%H%M-"))+str(randrange(10000,100000))
  109.         send_mail(
  110.             'i-Shoppa ORDER: '+da,
  111.             'Hello  '+ name+
  112.             '! Your order '+da+' has been confirmed. We have received your order and will get back to you on '+
  113.             'your number, '+phone+', as soon as possible.\nThese are the Items you have requested: '+
  114.             '\n\n Items \n\n'+
  115.             t + "\n\nWe will get back to you and have a great day.\n\ni-Regards,\n\ni-Shoppa Team.",
  116.             'ishoppake@gmail.com',
  117.             [email],
  118.             fail_silently=True,
  119.             )
  120.         send_mail(
  121.             'i-Shoppa ORDER: '+da,
  122.             '\nCustomer name : '+ name+
  123.             '\nCustomer email : '+ email+
  124.             '\nPhone: '+phone+"\nAddress: "+ address + "\nMemo: "+ memo +
  125.             '\nItems \n\n'+
  126.             '\n'+t,
  127.             'ishoppake@gmail.com',
  128.             ['ishoppake@gmail.com'],
  129.             fail_silently=True,
  130.             )
  131.         cart.clear()
  132.         return render(request,'shop/success.html',{'code' : da , 'name' : name, 'email' : email, 'phone' : phone, 'address' : address})
  133.     return render(request,'shop/checkout.html',{'tems': tems })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement