def list(self, kw, start, limit, http_req): sf = SessionFactory.new() subq = sf.query(Archives.id, Archives.name).subquery() q = sf.query(ValidWorkAskForLeave, Archives.name, subq.c.name.label("creator"))\ .join(Archives, ValidWorkAskForLeave.archives_id == Archives.id)\ .outerjoin(subq, ValidWorkAskForLeave.creator == subq.c.id) if kw: q = q.filter(Archives.name.contains(kw)) dataset = q.order_by(ValidWorkAskForLeave.id.desc()).offset(start).limit(limit).all() items = list() for row in dataset: ot = row[0] name = row[1] creator = row[2] item = dict() item["id"] = ot.id item["kind"] = ot.kind item["ask_date"] = Utils.format_date(ot.ask_date) item["start_datetime"] = Utils.format_datetime_short(ot.start_datetime) item["end_datetime"] = Utils.format_datetime_short(ot.end_datetime) item["create_datetime"] = Utils.format_datetime_short(ot.create_datetime) item["name"] = name item["creator"] = creator items.append(item) return items
def list(self, default_search_val, start, limit, http_req): db_cnn = SessionFactory.new() q = db_cnn.query(Account, Archives.name, Archives.email) \ .outerjoin(Archives, Account.archives_id == Archives.id) \ .filter(Account.login_name != "root") if default_search_val: q = q.filter(or_(Account.login_name.like('%' + default_search_val + '%'), Archives.name.like('%' + default_search_val + '%'), Archives.email.like('%' + default_search_val + '%'))) ds = q.order_by(Account.id.desc()).offset(start).limit(limit).all() items = list() for row in ds: item = dict() obj = row[0].dict() item["id"] = obj["id"] item["archives_id"] = obj["archives_id"] item["login_name"] = obj["login_name"] item["enabled"] = obj["enabled"] item["last_logon_time"] = Utils.format_datetime_short(obj["last_logon_time"]) item["create_time"] = Utils.format_datetime_short(obj["create_time"]) item["name"] = row[1] item["email"] = row[2] items.append(item) return items