Esempio n. 1
0
def orders_overview():
    filters_, order_by, limit, page = utilities.get_filters_order_by_limit_page(
        'orders', {}, {
            'column': 'clickbank_orders.timestamp',
            'direction': 'desc',
        }, 10, 1)
    form = filters.orders(**filters_)
    query = form.apply(g.mysql.query(models.order).join(models.customer))
    pager = classes.pager(query.count(), limit, page)
    return render_template(
        'administrators/views/orders_overview.html',
        form=form,
        order_by=order_by,
        orders=query.order_by('%(column)s %(direction)s' %
                              order_by).all()[pager.prefix:pager.suffix],
        pager=pager,
    )
def visitors_overview():
    filters_, order_by, limit, page = utilities.get_filters_order_by_limit_page(
        'visitors',
        {},
        {
            'column': 'timestamp',
            'direction': 'desc',
        },
        10,
        1
    )
    form = filters.visitors(**filters_)
    query = form.apply(g.mysql.query(models.visitor))
    pager = classes.pager(query.count(), limit, page)
    return render_template(
        'administrators/views/visitors_overview.html',
        form=form,
        order_by=order_by,
        pager=pager,
        visitors=query.order_by('%(column)s %(direction)s' % order_by).all()[pager.prefix:pager.suffix],
    )
Esempio n. 3
0
def get_profiles_and_pager(filter, order_by, limit, page):
    filter['category'] = filter['category'].strip()
    filter['location'] = filter['location'].strip()
    filter['likes_maximum'] = int(
        filter['likes_maximum']) if filter['likes_maximum'] else 0
    filter['likes_minimum'] = int(
        filter['likes_minimum']) if filter['likes_minimum'] else 0
    filter['discussions_maximum'] = float(
        filter['discussions_maximum']
    ) if filter['discussions_maximum'] else 0.00
    filter['discussions_minimum'] = float(
        filter['discussions_minimum']
    ) if filter['discussions_minimum'] else 0.00
    filter['name'] = filter['name'].strip()
    filter['profile_id'] = int(
        filter['profile_id']) if filter['profile_id'] else 0
    query = g.postgresql.query(models.profile)
    if g.plan in ['Free']:
        page = 1
        filter['profile_id'] = 0
    if filter['category']:
        query = query.filter(
            models.profile.categories_primary.ilike(
                '%%%(category)s%%' % {
                    'category': filter['category'],
                }))
    if filter['location']:
        query = query.filter(
            models.profile.location.ilike('%%%(location)s%%' % {
                'location': filter['location'],
            }))
    if filter['likes_maximum']:
        query = query.filter(
            models.profile.numbers_likes <= filter['likes_maximum'], )
    if filter['likes_minimum']:
        query = query.filter(
            models.profile.numbers_likes >= filter['likes_minimum'], )
    if filter['discussions_maximum']:
        query = query.filter(
            models.profile.numbers_discussions_relative <=
            filter['discussions_maximum'], )
    if filter['discussions_minimum']:
        query = query.filter(
            models.profile.numbers_discussions_relative >=
            filter['discussions_minimum'], )
    if filter['name']:
        query = query.filter(
            models.profile.name.ilike('%%%(name)s%%' % {
                'name': filter['name'],
            }))
    profile = g.postgresql.query(models.profile, ).get(
        filter['profile_id']) if filter['profile_id'] else None
    if profile:
        query = query.filter(
            models.profile.id != profile.id,
            models.profile.description.op('~')(profile.get_keywords()),
            models.profile.location == profile.location,
        )
    pager = classes.pager(query.count(), limit, page)
    return query.order_by(
        '%(column)s %(direction)s' % {
            'column':
            order_by['column'] if order_by['column']
            in [column[0] for column in columns] else 'id',
            'direction':
            order_by['direction'] if order_by['direction']
            in [direction[0] for direction in directions] else 'asc'
        })[pager.prefix:pager.suffix], pager
Esempio n. 4
0
def get_profiles_and_pager(filter, order_by, limit, page):
    filter['category'] = filter['category'].strip()
    filter['location'] = filter['location'].strip()
    filter['likes_maximum'] = int(
        filter['likes_maximum']
    ) if filter['likes_maximum'] else 0
    filter['likes_minimum'] = int(
        filter['likes_minimum']
    ) if filter['likes_minimum'] else 0
    filter['discussions_maximum'] = float(
        filter['discussions_maximum']
    ) if filter['discussions_maximum'] else 0.00
    filter['discussions_minimum'] = float(
        filter['discussions_minimum']
    ) if filter['discussions_minimum'] else 0.00
    filter['name'] = filter['name'].strip()
    filter['profile_id'] = int(
        filter['profile_id']
    ) if filter['profile_id'] else 0
    query = g.postgresql.query(models.profile)
    if g.plan in ['Free']:
        page = 1
        filter['profile_id'] = 0
    if filter['category']:
        query = query.filter(models.profile.categories_primary.ilike(
            '%%%(category)s%%' % {
                'category': filter['category'],
            }
        ))
    if filter['location']:
        query = query.filter(
            models.profile.location.ilike('%%%(location)s%%' % {
                'location': filter['location'],
            })
        )
    if filter['likes_maximum']:
        query = query.filter(
            models.profile.numbers_likes <= filter['likes_maximum'],
        )
    if filter['likes_minimum']:
        query = query.filter(
            models.profile.numbers_likes >= filter['likes_minimum'],
        )
    if filter['discussions_maximum']:
        query = query.filter(
            models.profile.numbers_discussions_relative
            <=
            filter['discussions_maximum'],
        )
    if filter['discussions_minimum']:
        query = query.filter(
            models.profile.numbers_discussions_relative
            >=
            filter['discussions_minimum'],
        )
    if filter['name']:
        query = query.filter(models.profile.name.ilike('%%%(name)s%%' % {
            'name': filter['name'],
        }))
    profile = g.postgresql.query(
        models.profile,
    ).get(filter['profile_id']) if filter['profile_id'] else None
    if profile:
        query = query.filter(
            models.profile.id != profile.id,
            models.profile.description.op('~')(profile.get_keywords()),
            models.profile.location == profile.location,
        )
    pager = classes.pager(query.count(), limit, page)
    return query.order_by('%(column)s %(direction)s' % {
        'column':
        order_by['column']
        if order_by['column'] in [column[0] for column in columns]
        else 'id',
        'direction':
        order_by['direction']
        if order_by['direction'] in [direction[0] for direction in directions]
        else 'asc'
    })[pager.prefix:pager.suffix], pager