def recover_password(request): print "RECOVER_PASSWORD" if request.method == "POST": recoverForm = RecoverForm(request.POST) if recoverForm.is_valid(): # TODO send email to recoverFrom.cleaned_data['email'] with link to reset password containing reset_id email = recoverForm.cleaned_data["email"] customer = Customer.objects.filter(email=email).get() lst = [random.choice(string.ascii_letters + string.digits) for n in xrange(30)] customer.reset = "".join(lst) customer.save() subject, from_email = "Medicalquip.com Password Reset", "*****@*****.**" text_content = "This is an important message." html_content = loader.render_to_string("reset_password.html", {"customer": customer}) text_content = html_content msg = EmailMultiAlternatives(subject, text_content, from_email, [email]) msg.attach_alternative(html_content, "text/html") msg.send() return HttpResponseRedirect("/RecoverPassword/PasswordReset/") else: return render( request, "recover_password.html", view_data.get_2_plus_column_base_data(request).items() + {"form": recoverForm}.items(), ) else: recoverForm = RecoverForm() return render( request, "recover_password.html", dict(view_data.get_2_plus_column_base_data(request).items() + {"form": recoverForm}.items()), )
def login(request): # check for redirect cookie and on successful login take them to the value URL # TODO redirect = None try: redirect = request.get_signed_cookie("redirect", salt="dog") request.delete_cookie("redirect") # del request.COOKIES['redirect'] except: pass if "redirect" in request.COOKIES: print "redirect cookie not deleted" form = LoginForm(request.GET) if form.is_valid(): request.session["user"] = form.cleaned_data["email"] if redirect: return HttpResponseRedirect(redirect) return HttpResponseRedirect("/") else: registerForm = RegisterForm() return render( request, "register.html", dict( view_data.get_2_plus_column_base_data(request).items() + {"login": form, "register": registerForm}.items() ), )
def search(request): products = [] if'product_query' in request.GET: product_query = request.GET['product_query'] products = view_data.search(product_query) categories = view_data.get_categories() return render(request,'product_search.html',dict(view_data.get_2_plus_column_base_data(request).items() + {'categories':categories,'products':products}.items()))
def checkout_shipping(request): checkout = None if 'checkout_id' in request.session: try: checkout = Checkout.objects.filter(id=request.session['checkout_id']).get() except: del request.session['checkout_id'] return render(request, 'checkout_shipping.html', dict(view_data.get_2_plus_column_base_data(request).items() + {}.items()))
def register(request): if request.method == "POST": print "SUBMITTED REGISTER FORM" loginForm = LoginForm() registerForm = RegisterForm(request.POST) if registerForm.is_valid(): data = registerForm.cleaned_data customer = Customer( first=data["first_name"], last=data["last_name"], email=data["email"], password=hashlib.sha224(data["password"]).hexdigest(), ) customer.save() request.session["user"] = customer.email print "ABOUT TO REDIRECT TO /THANKS" return HttpResponseRedirect("/Thanks") else: return render( request, "register.html", dict( view_data.get_2_plus_column_base_data(request).items() + {"login": loginForm, "register": registerForm}.items() ), ) else: # user loaded register view without having submitted the form loginForm = LoginForm() registerForm = RegisterForm() return render( request, "register.html", dict( view_data.get_2_plus_column_base_data(request).items() + {"login": loginForm, "register": registerForm}.items() ), )
def category(request, category_id): try: category = Category.objects.filter(id=category_id).get() category_links = view_data.get_category_links(category=category) categories = view_data.get_categories(category_id) if(not categories): categories = view_data.get_categories() products = view_data.get_products_in_category(category,categories=categories) recent_products = view_data.get_recent_products(request) except Category.DoesNotExist: raise Http404 return render(request, 'category.html', dict(view_data.get_2_plus_column_base_data(request).items() + {'category_links':category_links,'categories':categories,'products':products}.items()))
def make_new_password(request): print "MAKE NEW PASSWORD" if request.method == "POST": passwordForm = PasswordForm(request.POST) if passwordForm.is_valid(): # find email from reset_id and change that customer's password password = hashlib.sha224(passwordForm.cleaned_data["password"]).hexdigest() url_reset_param = request.GET.get("reset", "reset get not found") print url_reset_param customer = None try: customer = Customer.objects.filter(reset=url_reset_param).get() except: print "Customer" pass if customer: customer.password = password customer.reset = "" customer.save() print "ABOUT TO REDIRECT" return HttpResponseRedirect("/ChangePassword/PasswordChanged/") else: return render( request, "make_new_password.html", dict(view_data.get_2_plus_column_base_data(request).items() + {"form": passwordForm}.items()), ) else: passwordForm = PasswordForm() return render( request, "make_new_password.html", dict(view_data.get_2_plus_column_base_data(request).items() + {"form": passwordForm}.items()), )
def checkout(request): if not view_data.is_logged_in(request): response = HttpResponseRedirect("/Login/") response.set_signed_cookie("redirect", "/Cart/Checkout/", salt="dog") return response billing_form = None shipping_form = None cc_form = None #print "checkout customer user = "******"shipping_form":shipping_form,"cc_form":cc_form}.items()) #print dictionary return render(request, 'checkout2.html', dictionary)
def product(request, product_sku,attribute_sku=None): try: product = Product.objects.get(sku=product_sku) attribute_sku=product_sku view_data.add_product_to_recent(request,product) # recent_products = view_data.get_recent_products(request) category_links = view_data.get_category_links(product=product) attributes = Attribute.objects.filter(product=product).all() if 'attribute_sku' in request.GET: attribute_sku = request.GET['attribute_sku'] attribute = Attribute.objects.filter(sku=attribute_sku).get() product.price = attribute.price product.description = attribute.description product.short_description = attribute.short_description except Product.DoesNotExist: raise Http404 return render(request, 'product.html', dict(view_data.get_2_plus_column_base_data(request).items() + {'product': product,'attributes':attributes,'attribute_sku':attribute_sku,'category_links':category_links}.items()))
def my_cart(request): cart = None if("cart" in request.session): cart = json.loads(request.session['cart']) shopping_cart = [] if cart: for item in cart: shopping_cart.append(CartItem(item['sku'], item['count'])) subtotal = 0 tax_total = 0 for item in shopping_cart: subtotal+=(item.product.price * item.count) subtotal = decimal.Decimal(subtotal) subtotal = subtotal.quantize(decimal.Decimal('.01'), decimal.ROUND_05UP) tax_total = decimal.Decimal(subtotal * decimal.Decimal(.07)) tax_total = tax_total.quantize(decimal.Decimal('.01'), decimal.ROUND_05UP) grand_total = subtotal + tax_total # make these things suitable for display return render(request, 'myCart.html', dict(view_data.get_2_plus_column_base_data(request).items() + {'cart':shopping_cart,'subtotal':subtotal,'tax_total':tax_total,'grand_total':grand_total}.items()))
def home(request): categories = view_data.get_categories() home_products = view_data.get_home_products() return render(request, 'home.html', dict(view_data.get_2_plus_column_base_data(request).items() + {'categories':categories,'products':home_products}.items()))
def sign_out(request): if "user" in request.session: del request.session["user"] return render(request, "signed_out.html", view_data.get_2_plus_column_base_data(request))
def register_thanks(request): return render(request, "register_thanks.html", view_data.get_2_plus_column_base_data(request))
def password_changed(request): return render(request, "password_changed.html", view_data.get_2_plus_column_base_data(request))
def password_reset(request): print "PASSWORD_RESET" return render(request, "password_reset.html", view_data.get_2_plus_column_base_data(request))