def company_data(request): company = Company.objects.all()[0] if request.method == 'POST': try: with transaction.atomic(): company.name = request.POST['c_name'] company.description_en = request.POST['c_description_en'] company.description_es = request.POST['c_description_es'] company.address = request.POST['c_address'] company.email = request.POST['c_email'] company.phone = request.POST['c_phone'] company.facebook = request.POST['c_facebook'] company.twitter = request.POST['c_twitter'] company.instagram = request.POST['c_instagram'] company.youtube = request.POST['c_youtube'] company.save() return ok_json(data={'message': 'Company data updated!'}) except Exception as ex: return bad_json(message=ex.__str__()) return render( request, 'administration/company/view.html', { 'title': 'Sabadiaz Jewelry Admin - HomePage Sliders', 'option': 'admin_website_company_data', 'user': request.user, 'company': company, })
def contact(request): data = {'title': 'Sabadiaz Jewelry - Contact Us'} addUserData(request, data) if request.method == 'POST': try: with transaction.atomic(): contact = Contact(name=request.POST['name'], email=request.POST['email'], phone=request.POST['phone'], subject=request.POST['subject'], message=request.POST['message']) contact.save() if EMAIL_ACTIVE: msg_html = render_to_string('site/includes/email_contact_message.html', {'contact': contact}) send_mail( "New Contact from Website", "", EMAIL_HOST_USER, [data['company'].email], html_message=msg_html ) return ok_json(data={'message': 'Message sent!. Thank you for your contact.'}) except Exception as ex: return bad_json(message=ex.__str__()) data['option'] = 'contact' data['current_page'] = 'Contact' return render(request, 'site/contact.html', data)
def register(request): data = {'title': 'Sabadiaz Jewelry - Register'} addUserData(request, data) data['option'] = 'Register' if request.method == 'POST': try: first_name = request.POST['first_name'] last_name = request.POST['last_name'] email = request.POST['email'] password1 = request.POST['password1'] password2 = request.POST['password2'] if first_name and last_name and email and password1 and password2: # Create User new_user, _ = User.objects.get_or_create(username=email, email=email) new_user.first_name = first_name new_user.last_name = last_name new_user.set_password(password1) new_user.save() # Login login(request, new_user) return ok_json(data={'message': f'Succesfull Registration. Welcome {new_user.first_name}', 'redirect_url': reverse('index')}) return bad_json(message='All fields are required') except Exception as ex: print(ex.__str__()) return bad_json(message='Bad Credentials') return render(request, 'register.html', data)
def view(request): objects = Testimonial.objects.order_by('id') data = { 'title': 'Sabadiaz Jewelry Admin - HomePage Testimonials', 'option': 'admin_website_testimonials', 'user': request.user, 'testimonials': objects, } if request.method == 'POST': try: with transaction.atomic(): # testimonial 1 testimonial1 = objects[0] testimonial1.name = request.POST['testimonialname_1'] testimonial1.testimonial_en = request.POST[ 'testimonialtext_1_en'] testimonial1.testimonial_es = request.POST[ 'testimonialtext_1_es'] testimonial1.save() # testimonial 2 testimonial2 = objects[1] testimonial2.name = request.POST['testimonialname_2'] testimonial2.testimonial_en = request.POST[ 'testimonialtext_2_en'] testimonial2.testimonial_es = request.POST[ 'testimonialtext_2_es'] testimonial2.save() # testimonial 3 testimonial3 = objects[2] testimonial3.name = request.POST['testimonialname_3'] testimonial3.testimonial_en = request.POST[ 'testimonialtext_3_en'] testimonial3.testimonial_es = request.POST[ 'testimonialtext_3_es'] testimonial3.save() # testimonial 4 testimonial4 = objects[3] testimonial4.name = request.POST['testimonialname_4'] testimonial4.testimonial_en = request.POST[ 'testimonialtext_4_en'] testimonial4.testimonial_es = request.POST[ 'testimonialtext_4_es'] testimonial4.save() time.sleep(1) return ok_json(data={'message': 'Testimonials updated!'}) except Exception as ex: return bad_json(message=ex.__str__()) return render(request, 'administration/testimonials/view.html', data)
def company_logo(request): company = Company.objects.first() try: with transaction.atomic(): company.logo = request.FILES['file'] company.save() return ok_json(data={'message': 'Logo updated!'}) except Exception as ex: return bad_json(message=ex.__str__())
def update_image(request, slide_id): try: with transaction.atomic(): slide = Slide.objects.get(id=slide_id) slide.image = request.FILES['file'] slide.save() return ok_json(data={'message': 'Image succesfully updated!'}) except Exception as ex: return bad_json(message=ex.__str__())
def update_avatar(request, testimonial_id): try: with transaction.atomic(): testimonial = Testimonial.objects.get(id=testimonial_id) testimonial.avatar = request.FILES['file'] testimonial.save() return ok_json(data={'message': 'Avatar succesfully updated!'}) except Exception as ex: return bad_json(message=ex.__str__())
def delete(request, item_id): data = {'title': 'Sabadiaz Jewelry - WishList - Delete Item'} addUserData(request, data) try: with transaction.atomic(): wishlist = WishList.objects.get(id=item_id) wishlist.delete() return ok_json(data={'message': 'Product removed from your wishlist'}) except Exception as ex: return bad_json(message=ex.__str__())
def view(request): objects = Slide.objects.order_by('id') data = { 'title': 'Sabadiaz Jewelry Admin - HomePage Slides', 'option': 'admin_website_slides', 'user': request.user, 'slides': objects, } if request.method == 'POST': try: with transaction.atomic(): # slide 1 slide1 = objects[0] slide1.text1_en = request.POST['text1_1_en'] slide1.text2_en = request.POST['text2_1_en'] slide1.description_en = request.POST['desc_1_en'] slide1.text1_es = request.POST['text1_1_es'] slide1.text2_es = request.POST['text2_1_es'] slide1.description_es = request.POST['desc_1_es'] slide1.save() # slide 2 slide2 = objects[1] slide2.text1_en = request.POST['text1_2_en'] slide2.text2_en = request.POST['text2_2_en'] slide2.description_en = request.POST['desc_2_en'] slide2.text1_es = request.POST['text1_2_es'] slide2.text2_es = request.POST['text2_2_es'] slide2.description_es = request.POST['desc_2_es'] slide2.save() # slide 3 slide3 = objects[2] slide3.text1_en = request.POST['text1_3_en'] slide3.text2_en = request.POST['text2_3_en'] slide3.description_en = request.POST['desc_3_en'] slide3.text1_es = request.POST['text1_3_es'] slide3.text2_es = request.POST['text2_3_es'] slide3.description_es = request.POST['desc_3_es'] slide3.save() time.sleep(1) return ok_json(data={'message': 'Homepage Slides updated!'}) except Exception as ex: return bad_json(message=ex.__str__()) return render(request, 'administration/slides/view.html', data)
def create_product(request): data = {'title': 'Sabadiaz Jewelry Admin - Create Product'} addUserData(request, data) if request.method == 'POST': try: with transaction.atomic(): code = request.POST['code'] description = request.POST['description'] category_id = int(request.POST['category_id']) gender_id = int(request.POST['gender_id']) material_id = int(request.POST['material_id']) price = float(request.POST['price']) stock = int(request.POST['stock']) weight = float(request.POST['weight']) # is_new = True if request.POST['is_new'] == 'true' else False # is_featured = True if request.POST['is_featured'] == 'true' else False # is_bestseller = True if request.POST['is_bestseller'] == 'true' else False product = Product(code=code, description=description, category_id=category_id, material_id=material_id, gender_id=gender_id, price=price, weight=weight, stock=stock) product.save() # for index, key in enumerate(request.FILES): # setattr(product, f'image{index+1}', request.FILES[key]) # setattr(product, f'image{index+1}_b', request.FILES[key]) # product.save() time.sleep(1) return ok_json( data={ 'message': 'Product has been succesfully created!', 'redirect_url': reverse('admin_products') }) except Exception as ex: return bad_json(message=ex.__str__()) data['option'] = 'admin_create_product' data['categories'] = Category.objects.all() data['materials'] = Material.objects.all() data['genders'] = Gender.objects.all() data['product'] = None return render(request, 'administration/products/product.html', data)
def add(request, product_id): data = {'title': 'Sabadiaz Jewelry - WishList - Add Item'} addUserData(request, data) try: with transaction.atomic(): wishlist, _ = WishList.objects.get_or_create(user=data['user'], product_id=product_id) wishlist.created_at = datetime.datetime.now() wishlist.save() wishlist_items = WishList.objects.filter(user=data['user']).count() return ok_json(data={'message': 'Product added to your wishlist', 'wishlist_items': wishlist_items}) except Exception as ex: return bad_json(message=ex.__str__())
def login_user(request): data = {'title': 'Sabadiaz Jewelry - Log In'} addUserData(request, data) data['option'] = 'Login' if request.method == 'POST': try: user = authenticate(username=request.POST['email'].lower(), password=request.POST['password']) login(request, user) return ok_json(data={'message': f'Welcome {user.first_name}', 'redirect_url': reverse('index'), }) except Exception as ex: print(ex.__str__()) return bad_json(message='Bad Credentials') return render(request, 'login.html', data)
def reviews(request, product_id): data = {'title': 'Sabadiaz Jewelry - Product Reviews'} addUserData(request, data) try: review_obj, _ = Review.objects.get_or_create( product_id=product_id, user=data['user'], rating=int(request.POST['rating'])) review_obj.review = request.POST['review'] review_obj.save() time.sleep(1) return ok_json(data={'message': 'Review succesfully added!'}) except Exception as ex: return bad_json(message=ex.__str__())
def delete_product_image(request, product_id, image_id): data = { 'title': 'Sabadiaz Jewelry Admin - Delete Product Image', 'option': 'admin_delete_product_image', 'user': request.user, } if request.method == 'POST': try: with transaction.atomic(): product = Product.objects.get(id=product_id) setattr(product, f'image{image_id}', None) product.save() return ok_json(data={'message': 'Image succesfully deleted!'}) except Exception as ex: return bad_json(message=ex.__str__()) return render(request, 'administration/products/product.html', data)
def delete_product(request, product_id): data = { 'title': 'Sabadiaz Jewelry Admin - Delete Product', 'option': 'admin_delete_product', 'user': request.user, } if request.method == 'POST': try: with transaction.atomic(): product = Product.objects.get(id=product_id) product.delete() time.sleep(0.5) return ok_json( data={ 'message': 'Product has been succesfully deleted!', 'redirect_url': reverse('admin_products') }) except Exception as ex: return bad_json(message=ex.__str__()) return render(request, 'administration/products/product.html', data)
def edit_product(request, product_id): data = {'title': 'Sabadiaz Jewelry Admin - Edit Product'} addUserData(request, data) product = Product.objects.get(id=product_id) if request.method == 'POST': try: with transaction.atomic(): product.category_id = int(request.POST['category_id']) product.material_id = int(request.POST['material_id']) product.gender_id = int(request.POST['gender_id']) product.code = request.POST['code'] product.description = request.POST['description'] product.stock = int(request.POST['stock']) product.price = float(request.POST['price']) product.weight = float(request.POST['weight']) # product.is_new = True if request.POST['is_new'] == 'true' else False # product.is_featured = True if request.POST['is_featured'] == 'true' else False # product.is_bestseller = True if request.POST['is_bestseller'] == 'true' else False product.save() time.sleep(0.5) return ok_json( data={ 'message': 'Product has been succesfully edited!', 'redirect_url': reverse('admin_products') }) except Exception as ex: return bad_json(message=ex.__str__()) data['option'] = 'admin_edit_product' data['categories'] = Category.objects.all() data['materials'] = Material.objects.all() data['genders'] = Gender.objects.all() data['product'] = product return render(request, 'administration/products/product.html', data)