示例#1
0
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)
示例#2
0
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,
        })
示例#3
0
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 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)
示例#5
0
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__())
示例#6
0
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__())
示例#8
0
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__())
示例#9
0
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)
示例#10
0
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)
示例#11
0
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__())
示例#12
0
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)
示例#13
0
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__())
示例#14
0
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)
示例#15
0
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)
示例#16
0
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)