コード例 #1
0
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)
コード例 #2
0
ファイル: views.py プロジェクト: gmist/3dhero.ru
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 []
コード例 #3
0
ファイル: views.py プロジェクト: minimedj/3dhero.ru
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)
コード例 #4
0
ファイル: forms.py プロジェクト: gmist/3dhero.ru
 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
コード例 #5
0
ファイル: forms.py プロジェクト: minimedj/3dhero.ru
 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
コード例 #6
0
ファイル: views.py プロジェクト: minimedj/3dhero.ru
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
コード例 #7
0
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)
コード例 #8
0
ファイル: views.py プロジェクト: gmist/3dhero.ru
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
    )
コード例 #9
0
ファイル: views.py プロジェクト: gmist/3dhero.ru
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
コード例 #10
0
ファイル: views.py プロジェクト: minimedj/3dhero.ru
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
コード例 #11
0
ファイル: views.py プロジェクト: gmist/3dhero.ru
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
    )
コード例 #12
0
ファイル: views.py プロジェクト: gmist/3dhero.ru
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
コード例 #13
0
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 []
コード例 #14
0
def categories_json():
    categories = [key.id() for key in Category.query().fetch(keys_only=True)]
    return jsonify_success(categories)
コード例 #15
0
def categories_count_json():
    return jsonify_success(Category.query().count())