Beispiel #1
0
def get_records(request, max_records, action_verb='export'):
    ids, excl_ids = get_ids(request)
    sess_query = request.session.get('query')
    filters = [BaseCompany.id.in_(ids)] if ids else where_from_query({'sessquery': sess_query})
    if excl_ids:
        filters.append(BaseCompany.id.notin_(excl_ids))
    if not request.user.is_admin:
        filters.append(BaseCompany.activated == True)

    if 'alchemist_startup' in request.referer:
        filters.append(BaseCompany.is_alchemist == True)
        filters.append(BaseCompany.companytype == 'startup')
    elif 'companies' not in request.referer:
        company_typestr = get_company_typestr(urlparse(request.referer).path[1:])
        filters.append(BaseCompany.companytype == company_typestr)

    if not (ids or (request.session.get('select_all_comp') and sess_query is not None)):
        request.session.flash('We didn\'t find anything to %s' % action_verb, 'error')
        return False
    if len(ids) > max_records:
        request.session.flash('You cannot %s more than %s companies' % (action_verb, max_records), 'error')
        return False

    records = DBSession.query(BaseCompany).filter(*filters).limit(max_records + 1).all()
    if len(records) > max_records:
        request.session.flash('You cannot %s more than %s companies' % (action_verb, max_records), 'error')
        return False
    return records
Beispiel #2
0
def find_company_suggestions(q, limit, request):
    show_type = should_show_types(request)
    where = [BaseCompany.name.ilike('%' + q + '%')]
    if not request.user.is_admin:
        where.append((BaseCompany.activated == True))
    if show_type:
        from alchemist.companies.grid import get_company_typestr
        where.append(BaseCompany.companytype == get_company_typestr(show_type))
    if show_type and 'alchemist' in show_type:
        where.append(BaseCompany.is_alchemist == True)
    query = DBSession.query(BaseCompany.id, BaseCompany.name, BaseCompany.companytype).filter(*where).limit(
        limit)
    return [transform(row, 'companies', True, row[2]) for row in query.all()]