def get_shop(shop_uid): try: shop = Shop.get(uid=shop_uid) data = shop.get_display_data() except: data = None return data
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}')
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'
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 })
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())
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 })
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}')
def delete(id): try: shop = Shop.get(Shop.id == id) return shop.delete_instance() except: return 'Shop not found'