コード例 #1
0
 def get_shop(shop_uid):
     try:
         shop = Shop.get(uid=shop_uid)
         data = shop.get_display_data()
     except:
         data = None
     return data
コード例 #2
0
ファイル: views.py プロジェクト: doctor608/shop
def product_create(request, values):
    shop = Shop.get(slug=values.get('slug'))

    if shop is None:
        raise NotFound()

    if request.method == 'GET':
        categories = Category.all()
        return render_template('product-form.html', {
            'categories': categories,
            'shop': shop
        })

    name = request.form.get('name')
    price = request.form.get('price')
    description = request.form.get('description')
    categories = request.form.getlist('category')
    image = request.files.get('image')

    if image and allowed_image(image.filename):
        image_name = secure_filename(image.filename)
        image.save(os.path.join(MEDIA_ROOT, image_name))
    else:
        image_name = ''

    product = Product.create(name=name,
                             price=price,
                             image=image_name,
                             shop_id=shop.id,
                             description=description)

    for category in categories:
        product.add_category(category)

    return redirect(f'/shops/{shop.slug}/products/{product.id}')
コード例 #3
0
 def create(data):
     try:
         id = generate_id()
         owner = Shop.get(Shop.id == data['shop_id'])
         pk = User.insert(id=id,
                          name=data['name'],
                          city=data['city'],
                          shop=shop).execute()
         return id
     except:
         return 'Can\'t create product'
コード例 #4
0
ファイル: views.py プロジェクト: doctor608/shop
def shop_detail(request, values):
    shop = Shop.get(slug=values.get('slug'))

    if shop is None:
        raise NotFound()

    categories = Category.all()

    return render_template('shop.html', {
        'shop': shop,
        'categories': categories
    })
コード例 #5
0
ファイル: views.py プロジェクト: doctor608/shop
def shop_review_create(request, values):
    shop = Shop.get(slug=values.get('slug'))

    if shop is None:
        raise NotFound()

    username = request.form.get('username')
    text = request.form.get('text')

    ShopReview.create(username=username, text=text, shop_id=shop.id)

    return redirect(shop.get_absolute_url())
コード例 #6
0
ファイル: views.py プロジェクト: doctor608/shop
def shop_category(request, values):
    shop = Shop.get(slug=values.get('slug'))

    if shop is None:
        raise NotFound()

    category = Category.get(name=values.get('category'))

    if category is None:
        raise NotFound()

    products = Product.get_by_shop_category(shop.id, category.id)

    return render_template('category.html', {
        'category': category,
        'shop': shop,
        'products': products
    })
コード例 #7
0
ファイル: views.py プロジェクト: doctor608/shop
def product_update(request, values):
    shop = Shop.get(slug=values.get('slug'))
    product = Product.get(pk=values.get('id'))
    product_categories = [category.id for category in product.get_categories()]

    if shop is None or product is None:
        categories = Category.all()
        return render_template(
            'product-form.html', {
                'categories': categories,
                'shop': shop,
                'product': product,
                'product_categories': product_categories,
            })

    name = request.form.get('name')
    price = request.form.get('price')
    description = request.form.get('description')
    categories = request.form.getlist('category')
    image = request.files.get('image')

    if image and image.filename != product.image:
        if allowed_image(image.filename):
            image_name = secure_filename(image.filename)
            image.save(os.path.join(MEDIA_ROOT, image_name))
            if product.image != '':
                os.remove(os.path.join(MEDIA_ROOT, product.image))
        else:
            image_name = ''
    else:
        image_name = ''

    product.update(
        name=name or product.name,
        price=price or product.price,
        description=description or product.description,
        image=image_name or product.image,
    )

    # TODO: update categories

    return redirect(f'/shops/{shop.slug}/products/{product.id}')
コード例 #8
0
 def delete(id):
     try:
         shop = Shop.get(Shop.id == id)
         return shop.delete_instance()
     except:
         return 'Shop not found'