def index(): available_product = Product.query(Product.is_available == True, Product.id_1c != '').get() available_category = Category.query().get() return render_template('api/v2/index.html', available_product=available_product, available_category=available_category)
def search_categories(query): categories_q = Category.query().fetch(projection=[Category.name]) categories_keys = [ c.key for c in categories_q if query in c.name.lower() ] if categories_keys: return ndb.get_multi(categories_keys) return []
def categories(): categories = Category.query().order(Category.name) form = CategoryForm() if form.validate_on_submit(): new_cat = Category() form.populate_obj(new_cat) new_cat.put() return redirect(url_for('admin.product.categories')) return render_template('product/admin/category/all.html', categories=categories, form=form)
def validate(self, is_edit=False): rv = wtf.Form.validate(self) if not rv: return False name = self.name.data.lower() check_cat = Category.query(Category.name_lowercase == name).count() if check_cat and not is_edit: self.name.errors.append( u'Название категории должно быть уникальным') return False return True
def categories_stat(): categories_obj = list(Category.query().order(Category.name)) categories = [] for c in categories_obj: if c.products_count: categories.append(c) categories_count = len(categories) if categories_count: categories_count = pytils.numeral.get_plural( categories_count, (u'категории', u'категорий', u'категорий')) return categories, categories_count
def get_aside(active='category', key_id=None): sections = [] if active == 'category': sections = Category.query(Category.is_public == True).order( Category.name) sections = [s for s in sections if s.products_count] if key_id: key_id = int(key_id) return render_template('aside.html', active=active, sections=sections, key_id=key_id)
def categories(): categories = Category.query().order(Category.name) form = CategoryForm() if form.validate_on_submit(): new_cat = Category() form.populate_obj(new_cat) new_cat.put() return redirect(url_for('admin.product.categories')) return render_template( 'product/admin/category/all.html', categories=categories, form=form )
def categories_stat(): categories_obj = list(Category.query().order(Category.name)) categories = [] for c in categories_obj: if c.products_count: categories.append(c) categories_count = len(categories) if categories_count: categories_count = pytils.numeral.get_plural( categories_count, (u'категории', u'категорий', u'категорий') ) return categories, categories_count
def sitemap_xml(): products = memcache.get('sitemap_xml') if not products: products = Product.query().fetch(keys_only=True) memcache.add('sitemap_xml', products, SITEMAP_XML_TIMEOUT) categories = memcache.get('sitemap_xml_categories') if not categories: categories = Category.query().fetch(keys_only=True) memcache.add('sitemap_xml_categories', categories, SITEMAP_XML_TIMEOUT) response = flask.make_response( flask.render_template('pages/sitemap.xml', products=products, categories=categories)) response.headers['Content-Type'] = 'text/xml; charset=utf-8' return response
def get_aside(active='category', key_id=None): sections=[] if active == 'category': sections = Category.query( Category.is_public == True ).order(Category.name) sections = [s for s in sections if s.products_count] if key_id: key_id = int(key_id) return render_template( 'aside.html', active=active, sections=sections, key_id=key_id )
def sitemap_xml(): products = memcache.get('sitemap_xml') if not products: products = Product.query().fetch(keys_only=True) memcache.add('sitemap_xml', products, SITEMAP_XML_TIMEOUT) categories = memcache.get('sitemap_xml_categories') if not categories: categories = Category.query().fetch(keys_only=True) memcache.add('sitemap_xml_categories', categories, SITEMAP_XML_TIMEOUT) response = flask.make_response( flask.render_template( 'pages/sitemap.xml', products=products, categories=categories) ) response.headers['Content-Type'] = 'text/xml; charset=utf-8' return response
def search_categories(query): categories_q = Category.query().fetch(projection=[Category.name]) categories_keys = [c.key for c in categories_q if query in c.name.lower()] if categories_keys: return ndb.get_multi(categories_keys) return []
def categories_json(): categories = [key.id() for key in Category.query().fetch(keys_only=True)] return jsonify_success(categories)
def categories_count_json(): return jsonify_success(Category.query().count())