Esempio n. 1
0
def new_product():
    form = NewProductForm()
    if not form.validate_on_submit():
        return render_template('new_product.html', form=form)

    category = form.category.data.strip()
    name = form.name.data.strip()
    price = int(form.price.data)
    product_des = form.product_des.data.strip()

    if Product.query.filter(Product.name == name).count():
        flash(f'Error: {name} already exists')
        return render_template('new_product.html', form=form)

    prod_cat = Category.query.filter(Category.name == category).first()

    if not Category.query.filter(Category.name == category).count():
        flash(f'Error: {name} needs existing category {category}')
        return render_template('new_product.html', form=form)

    product = Product(category=prod_cat, name=name, product_des=product_des, price=price)
    db.session.add(product)
    db.session.commit()
    flash(f'New product {name} created')
    return redirect('/products')
Esempio n. 2
0
def editProduct(product_id):
           
    try:
        form = NewProductForm(request.form)
        product = (session.query(Product).
                        filter(Product.id==product_id).one())
        sections = session.query(BodySection).all()
    except:
        flash("That particular product is not registered ")
        return redirect(url_for('newProduct'))    
    
    if product.user_id == login_session['user_id']:
        if request.method == 'GET':
                return render_template('editProduct.html', 
                                product=product, sections= sections,
                                image=login_session['picture'])
           
        if request.method == 'POST' and form.validate():
            print '/n/n/n/ post/n/n'
            if request.form['btn'] == 'Save':
                form.populate_obj(product)           
                if request.files['picture']:
                    file = request.files['picture']
                    filename = secure_filename(file.filename)
                    product.picture_name = IMAGES_FOLDER + filename
                    file.save(app.config['UPLOAD_FOLDER'] + filename)
                    session.add(product)
                    session.commit()
                return redirect(url_for('product', product_id=product_id)) 
                
            elif request.form['btn'] == 'Cancel':
                return redirect(url_for('product', product_id=product_id))       
    else:
        flash("Only the creator of every product can edit it")
        return redirect(url_for('product', product_id=product_id ))
Esempio n. 3
0
def edit_product(request, id):
    product = get_object_or_404(Product, pk=id)
    if request.method == "POST":
        form = NewProductForm(request.POST, request.FILES, instance=product)
        if form.is_valid():
            product = form.save(commit=False)
            #post.author = request.user
            product.published_date = timezone.now()
            product.save()
            return redirect(product_detail, product.pk)
    else:
        form = NewProductForm(instance=product)

    return render(request, 'newproductform.html', {'form': form})
Esempio n. 4
0
def new_product(request):
    if request.method == "POST":
        form = NewProductForm(request.POST, request.FILES)
        if form.is_valid():
            product = form.save(commit=False)
            product.seller = request.user
            product.published_date = timezone.now()
            product.save()
            return redirect(product_detail, product.pk)

    else:
        form = NewProductForm

    return render(request, 'newproductform.html', {'form': form})
Esempio n. 5
0
def create_product():
    if 'username' not in session:
        return redirect(request.referrer)

    form = NewProductForm()

    all_users = Database.get_name_of_users()

    form.productOwner.choices = all_users  # All the available names are made to be possible choices in the form

    name = session.get('username')

    form.productOwner.default = name  # The name of the user in clicked edit button's row is made default

    form.process()  # Processes the change in the default

    if request.method == 'POST' and form.is_submitted():
        owner = request.form.get("productOwner")

        product_name = request.form.get("productName")

        # Gets the file name from within the file in form of the posted request
        file = request.files['imageFile']
        filename = secure_filename(file.filename)

        # Saves the file to the designated folder
        file.save(os.path.join(app.config["UPLOAD_PATH"], filename))

        price = request.form.get("productPrice")

        product = Product(product_name, price, filename, owner)

        Database.insert_product(product)

        return redirect('/listProduct')

    return render_template('createProduct.html',
                           title='New Product',
                           form=form)
Esempio n. 6
0
def editProduct(product_id):

    try:
        form = NewProductForm(request.form)
        product = (session.query(Product).filter(
            Product.id == product_id).one())
        sections = session.query(BodySection).all()
    except:
        flash("That particular product is not registered ")
        return redirect(url_for('newProduct'))

    if product.user_id == login_session['user_id']:
        if request.method == 'GET':
            return render_template('editProduct.html',
                                   product=product,
                                   sections=sections,
                                   image=login_session['picture'])

        if request.method == 'POST' and form.validate():
            print '/n/n/n/ post/n/n'
            if request.form['btn'] == 'Save':
                form.populate_obj(product)
                if request.files['picture']:
                    file = request.files['picture']
                    filename = secure_filename(file.filename)
                    product.picture_name = IMAGES_FOLDER + filename
                    file.save(app.config['UPLOAD_FOLDER'] + filename)
                    session.add(product)
                    session.commit()
                return redirect(url_for('product', product_id=product_id))

            elif request.form['btn'] == 'Cancel':
                return redirect(url_for('product', product_id=product_id))
    else:
        flash("Only the creator of every product can edit it")
        return redirect(url_for('product', product_id=product_id))
Esempio n. 7
0
def newProduct(section_id):

    sections = session.query(BodySection).all()

    # Check if the request comes from a particular section
    if section_id:
        preselected_section = (session.query(BodySection).filter(
            BodySection.id == section_id).one())
    else:
        preselected_section = section_id

    form = NewProductForm(request.form)
    product = Product()
    if request.method == 'GET':
        return render_template('newProduct.html',
                               sections=sections,
                               ps_section=preselected_section,
                               image=login_session['picture'])

    if request.method == 'POST' and form.validate():
        form.populate_obj(product)
        file = request.files['picture']
        filename = secure_filename(file.filename)
        product.user_id = login_session['user_id']
        product.picture_name = app.config['IMAGES_FOLDER'] + filename
        if allowed_file(filename):
            file.save(app.config['UPLOAD_FOLDER'] + filename)
            session.add(product)
            session.commit()
            flash("New product added! ")
        else:
            flash("Error while saving the photo file!")
        if section_id:
            return redirect(url_for('section', section_id=section_id))

    return redirect(url_for('viewProducts'))
Esempio n. 8
0
def newProduct(section_id):
    
  
    sections = session.query(BodySection).all()
    
    # Check if the request comes from a particular section 
    if section_id:
        preselected_section = (session.query(BodySection).
                                    filter(BodySection.id==section_id).one())
    else:
        preselected_section = section_id
        
    form = NewProductForm(request.form)
    product = Product()
    if request.method == 'GET':
        return render_template('newProduct.html', sections=sections,
                                ps_section=preselected_section,
                                image=login_session['picture'])
        
    if request.method == 'POST' and form.validate():       
        form.populate_obj(product)
        file = request.files['picture']
        filename = secure_filename(file.filename)
        product.user_id = login_session['user_id']
        product.picture_name = app.config['IMAGES_FOLDER'] + filename 
        if allowed_file(filename):
            file.save(app.config['UPLOAD_FOLDER'] + filename)
            session.add(product)
            session.commit()
            flash("New product added! ")
        else:
            flash("Error while saving the photo file!")
        if section_id:
            return redirect(url_for('section', section_id=section_id))
            
    return redirect(url_for('viewProducts'))    
Esempio n. 9
0
def deleteProduct(product_id):

    try:
        product = (session.query(Product).filter(
            Product.id == product_id).one())
        form = NewProductForm(request.form)
    except:
        flash("That particular product is not registered ")
        return redirect(url_for('newProduct'))

    if product.user_id == login_session['user_id']:
        if request.method == 'GET':
            return render_template('deleteProduct.html',
                                   product=product,
                                   image=login_session['picture'])

        if request.method == 'POST':
            if request.form['btn'] == 'Delete':
                session.delete(product)
                session.commit()
            return redirect(url_for('viewProducts'))
    else:
        flash("Only the creator of every product can edit it")
        return redirect(url_for('product', product_id=product_id))