def xem_hd_theo_trang_thai(id): if not current_user.is_authenticated or current_user.ma_loai_nguoi_dung != 1: return redirect(url_for('dang_nhap', next=request.url)) form = Form_lua_chon() query = BaseQuery(Hoa_don, dbSession) trang_thai = 0 if session.get('trang_thai'): trang_thai = session['trang_thai'] if form.validate_on_submit(): trang_thai = int(form.lua_chon.data) session['trang_thai'] = trang_thai id = 1 if trang_thai == 0: tieu_de = 'Chưa thanh toán' elif trang_thai == 1: tieu_de = 'Đã thanh toán' elif trang_thai == 2: tieu_de = 'Huỷ' page_filter = query.filter(Hoa_don.trang_thai == trang_thai).paginate( id, 5, False) return render_template( 'Quan_ly/QL_don_hang/QL_don_hang_theo_trang_thai.html', tieu_de=tieu_de, page_filter=page_filter, form=form)
def ql_don_hang_theo_ngay(page): if not current_user.is_authenticated or current_user.ma_loai_nguoi_dung != 1: return redirect(url_for('dang_nhap', next=request.url)) form = Form_QL_don_hang() tieu_de = 'Đơn hàng ngày hôm nay' today = datetime.now() ngay_tim_kiem = today.date() if session.get('ngay_tim_kiem'): temp_1 = datetime.strptime(session['ngay_tim_kiem'], "%a, %d %b %Y %H:%M:%S %Z") ngay_tim_kiem = temp_1.date() if form.validate_on_submit(): ngay_tim_kiem = form.ngay_tim_kiem.data session['ngay_tim_kiem'] = ngay_tim_kiem page = 1 query = BaseQuery(Hoa_don, dbSession) page_filter = query.filter( Hoa_don.ngay_tao_hoa_don == ngay_tim_kiem).paginate(page, 5, False) if page_filter.total == 0: tieu_de = "Không tìm thấy hóa đơn" else: tieu_de = "Đơn hàng của ngày " + str( ngay_tim_kiem.day) + " tháng " + str( ngay_tim_kiem.month) + " năm " + str(ngay_tim_kiem.year) return render_template('Quan_ly/QL_don_hang/QL_don_hang_theo_ngay.html', page_filter=page_filter, form=form, tieu_de=tieu_de)
def new_view_ddl(*entities): """ replacement of db.session.query Can't use db.session.query, as there is no session on start :param entities: :return: """ return BaseQuery(entities)
class Test(): _dontusethis="This is my internal prop" test_1="test 124" test_2="test 234" test_3="test 345" test_4=None k=2 query = BaseQuery({}) def myMethod(): print("This is my methods")
def ql_don_hang_all(page=1): if not current_user.is_authenticated or current_user.ma_loai_nguoi_dung != 1: return redirect(url_for('dang_nhap', next=request.url)) query = BaseQuery(Hoa_don, dbSession) page_filter = query.order_by(desc(Hoa_don.ngay_tao_hoa_don)).paginate( page, 10, False) tieu_de = 'Tất cả đơn hàng' return render_template('Quan_ly/QL_don_hang/QL_don_hang_all.html', page_filter=page_filter, tieu_de=tieu_de)
def __init__(self, start_ts, end_ts): """Build a query to get a distinct list of instance_id bewteen sart and end ts.""" az_query = db.session.query(Hypervisor).join(AvailabilityZone).\ filter(Hypervisor.availability_zone_id == AvailabilityZone.id).\ filter(AvailabilityZone.name.like("sa%")).\ with_entities(Hypervisor.id).subquery() self.query = BaseQuery([Snapshot, InstanceState], db.session()).\ filter(Snapshot.ts >= start_ts, Snapshot.ts < end_ts).\ filter(InstanceState.snapshot_id == Snapshot.id).\ with_entities(InstanceState.instance_id).\ distinct(InstanceState.instance_id).\ filter(InstanceState.hypervisor_id.in_(az_query))
def _query(self, start_ts, end_ts): """Build a query to get a list of all instance status and hypervisor bewteen sart and end ts.""" # To use BaseQuery.paginate query = BaseQuery([Snapshot, InstanceState, Instance, Hypervisor, Account, Tenant, Flavor], db.session()).\ filter(Snapshot.ts >= start_ts, Snapshot.ts < end_ts).\ filter(InstanceState.snapshot_id == Snapshot.id).\ filter(Instance.id == InstanceState.instance_id).\ filter(InstanceState.hypervisor_id == Hypervisor.id).\ filter(Account.id == Instance.account_id).\ filter(Tenant.id == Instance.tenant_id).\ filter(Flavor.id == Instance.flavor_id).\ with_entities(Snapshot.ts, Instance.openstack_id, InstanceState.name, Hypervisor.name, Account.openstack_id, Tenant.openstack_id, Instance.flavor_id) return query
def ql_so_luong_ton(page): if not current_user.is_authenticated or current_user.ma_loai_nguoi_dung != 2: return redirect(url_for('log_in', next=request.url)) form = Form_tim_kiem() query = BaseQuery(San_pham, dbSession) page_filter = query.paginate(page,5,False) if form.validate_on_submit(): tim_kiem = form.noi_dung.data if tim_kiem.isdigit(): page_filter = query.filter(San_pham.ma_san_pham == int(tim_kiem)).paginate(page,5,False) else: chuoi_truy_van = '%'+tim_kiem.upper()+'%' page_filter = query.filter(San_pham.ten_san_pham.like(chuoi_truy_van)).paginate(page,5,False) if len(page_filter.items) == 0: thong_bao = 'Không tìm thấy sản phẩm!' return render_template('Quan_ly/QL_kho_hang/Ton_kho.html', form=form, page_filter = page_filter)
def paginate_grounds(user_id, page, latitude, longitude, user): """ Get a user by Id, then get hold of their buckets and also paginate the results. There is also an option to search for a bucket name if the query param is set. Generate previous and next pagination urls :param q: Query parameter :param user_id: User Id :param user: Current User :param page: Page number :return: Pagination next url, previous url and the user buckets. """ if latitude and longitude: grounds_distance_query = db.session.query(Ground, Ground.distance_to(latitude, longitude).label('distance')).order_by('distance') pagination = BaseQuery(grounds_distance_query.subquery(), db.session()) \ .paginate(page=page, per_page=app.config['GROUNDS_PER_PAGE'], error_out=False) else: pagination = Ground.query.order_by(Ground.id) \ .paginate(page=page, per_page=app.config['GROUNDS_PER_PAGE'], error_out=False) previous = None if pagination.has_prev: if latitude and longitude: previous = url_for('ground.grounds', latitude=latitude, longitude=longitude, page=page-1, _external=True) else: previous = url_for('ground.grounds', page=page-1, _external=True) nex = None if pagination.has_next: if latitude and longitude: nex = url_for('ground.grounds', latitude=latitude, longitude=longitude, page=page+1, _external=True) else: nex = url_for('ground.grounds', page=page+1, _external=True) items = pagination.items def distance_result_to_ground(result): ground = Ground.get_by_id(result.id) ground.distance = result.distance return ground if latitude and longitude: items = list(map(distance_result_to_ground, items)) return items, nex, pagination, previous
def ql_don_hang_tao_don_moi_detail(ma_hd,page=1): if not current_user.is_authenticated or current_user.ma_loai_nguoi_dung != 2: return redirect(url_for('log_in', next=request.url)) form = Form_tim_kiem_nhap_hang() hoa_don = dbSession.query(Hoa_don).filter(Hoa_don.ma_hoa_don == ma_hd).first() don_hang = dbSession.query(Don_hang).filter(Don_hang.ma_hoa_don == ma_hd).all() query = BaseQuery(San_pham, dbSession) page_filter = query.paginate(page,10,False) thong_bao = '' if form.validate_on_submit() and form.noi_dung.data != '': ten_sp = form.noi_dung.data.strip().lower() if ten_sp.isdigit(): page_filter = query.filter_by(ma_san_pham = int(ten_sp)).paginate(page,10,False) else: page_filter = query.filter_by(ten_san_pham = ten_sp).paginate(page,10,False) if len(page_filter.items) == 0: thong_bao = 'Không tìm thấy sản phẩm!' return render_template('Quan_ly/QL_don_hang/Chi_tiet_don_hang.html',don_hang = don_hang, thong_bao = thong_bao, page_filter = page_filter, form = form, hoa_don = hoa_don)
if self.create_time: return datetime.fromtimestamp(self.create_time) else: return None def set_attrs(self, attrs): """ :param attrs: dict :return: """ for key, value in attrs.items(): if hasattr(self, key) and key not in self._invalid_key: setattr(self, key, value) if __name__ == '__main__': pass from flask_sqlalchemy import BaseQuery class Query(BaseQuery): def filter_by(self, **kwargs): if 'status' not in kwargs: kwargs['status'] = 1 return super().filter_by(**kwargs) b = BaseQuery()