예제 #1
0
def fetch_rows_from_model(cls, req, eager=False):
    start_row = int(req['startRow'])
    end_row = int(req['endRow'])
    page_size = end_row - start_row
    table = cls.__table__

    query = get_eager_query(cls) if eager else cls.query

    # query = build_select(table, req)
    query = build_where(query, table, req)
    query = build_limit(query, table, req)
    query = build_order_by(query, table, req)
    query = build_group_by(query, table, req)
    print(query)

    results = query.all()

    results_len = len(results)
    current_last_row = start_row + results_len
    last_row = current_last_row if current_last_row <= end_row else -1
    rows = results[:page_size]

    # filter defendant redacted fields
    private_fields = getattr(cls, 'private_fields', None)
    if private_fields:
        for row in rows:
            for field in private_fields:
                try:
                    del row[field]
                except:
                    pass

    return {'rows': rows, 'last_row': last_row}
예제 #2
0
파일: cc.py 프로젝트: SusanTJG/CaseExplorer
 def get(self, case_number):
     return get_eager_query(CC).filter(
         CC.case_number == case_number).one()
예제 #3
0
 def get(self, case_number):
     return get_eager_query(DSCR).filter(
         DSCR.case_number == case_number).one()
예제 #4
0
 def get(self, case_number):
     return get_eager_query(ODYTRAF).filter(
         ODYTRAF.case_number == case_number).one()