コード例 #1
0
def device_profile(device_id):

    # 如果 devices_id == '0',则是新增客户
    if device_id == '0':
        device = Device()
    else:
        device = Device.query.filter_by(id=device_id).first()

    if device is None:
        device = Device()
    can_id = 1
    if getattr(device, 'garbage_can_obj'):
        can_id = device.garbage_can_obj.id
    form = DeviceProfileForm(request.form, garbage_can=can_id)
    if current_user:
        form.garbage_can.choices = get_garbage_can_choice()

    if request.method == 'POST' and form.validate_on_submit():
        form.save_form(device)
        flash(u'保存成功', category='success')
        return redirect(url_for('devices.devices_list'))

    return render_template('devices/device_profile.html',
                           form=form,
                           device=device)
コード例 #2
0
ファイル: models.py プロジェクト: qitianchan/ash-bin
    def save(self, device_id=None, data=None,  create_time=None):
        """
        Saves an order and return an order object
        :param button:
        :param user:
        :return: Order object
    """
        if device_id:
            self.device_id = device_id
        if data:
            self.data = data
        if create_time:
            self.create_time = create_time

        if not self.create_time:
            self.create_time == datetime.now()

        device = Device.get(device_id)

        res = (0, 0, 0)
        if device and hasattr(device, 'garbage_can_obj'):
            bt_height = device.garbage_can_obj.bottom_height
            tp_height = device.garbage_can_obj.top_height
            res = parse_data(data, bt_height, tp_height)

        self.occupancy = res[0]
        self.temperature = res[1]
        self.electric_level = res[2]

        db.session.add(self)
        try:
            db.session.commit()
        except SQLAlchemyError:
            db.session.rollback()
        return self
コード例 #3
0
def device_profile_data(id):
    search = False
    q = request.args.get('q')
    if q:
        search = True
        try:
            page = int(request.args.get('page', 1))
        except ValueError:
            page = 1
    else:
        page = 1
    device = Device.get(id)
    if device:
        # datas = device.datas.order_by(desc(cls.create_time)).paginate(page, per_page, True).items
        datas = Data.get_gdatas(current_user, device)
        count = len(datas)
        pagination = Pagination(page=page,
                                per_page=15,
                                total=count,
                                css_framework='bootstrap3',
                                search=search,
                                record_name='devices')

        return render_template('devices/device_data.html',
                               datas=datas,
                               device=device,
                               pagination=pagination)
    else:
        abort(404)
コード例 #4
0
ファイル: models.py プロジェクト: qitianchan/ash-bin
    def save(self, device_id=None, data=None, create_time=None):
        """
        Saves an order and return an order object
        :param button:
        :param user:
        :return: Order object
    """
        if device_id:
            self.device_id = device_id
        if data:
            self.data = data
        if create_time:
            self.create_time = create_time

        if not self.create_time:
            self.create_time == datetime.now()

        device = Device.get(device_id)

        res = (0, 0, 0)
        if device and hasattr(device, 'garbage_can_obj'):
            bt_height = device.garbage_can_obj.bottom_height
            tp_height = device.garbage_can_obj.top_height
            res = parse_data(data, bt_height, tp_height)

        self.occupancy = res[0]
        self.temperature = res[1]
        self.electric_level = res[2]

        db.session.add(self)
        try:
            db.session.commit()
        except SQLAlchemyError:
            db.session.rollback()
        return self
コード例 #5
0
def devices_list():
    try:

        search = False
        q = request.args.get('q')
        if q:
            search = True
        try:
            page = int(request.args.get('page', 1))
        except ValueError:
            page = 1

        devices_count = Device.devices_count()
        pagination = Pagination(page=page,
                                per_page=15,
                                total=devices_count,
                                css_framework='bootstrap3',
                                search=search,
                                record_name='devices')

        devices_datas = []

        devices = Device.get_devices(current_user, page, per_page=15)
        for o in devices:
            data = {}
            data['device_id'] = o.id
            data['mac'] = o.mac
            data['eui'] = o.eui
            data['garbage_can'] = o.garbage_can
            d = o.datas.order_by(desc(Data.create_time)).first()
            if d:
                data['occupancy'] = d.occupancy
                data['temperature'] = d.temperature
                data['electric_level'] = d.electric_level
            else:
                data['occupancy'] = 0
                data['temperature'] = 0
                data['electric_level'] = 0
            devices_datas.append(data)

        return render_template('devices/devices_list.html',
                               devices_datas=devices_datas,
                               pagination=pagination)
    except TemplateNotFound:
        abort(404)
コード例 #6
0
ファイル: views.py プロジェクト: qitianchan/ash-bin
def devices_list():
    try:

        search = False
        q = request.args.get('q')
        if q:
            search = True
        try:
            page = int(request.args.get('page', 1))
        except ValueError:
            page = 1

        devices_count = Device.devices_count()
        pagination = Pagination(page=page, per_page=15, total=devices_count, css_framework='bootstrap3',
                                search=search, record_name='devices')

        devices_datas = []

        devices = Device.get_devices(current_user, page, per_page=15)
        for o in devices:
            data = {}
            data['device_id'] = o.id
            data['mac'] = o.mac
            data['eui'] = o.eui
            data['garbage_can'] = o.garbage_can
            d = o.datas.order_by(desc(Data.create_time)).first()
            if d:
                data['occupancy'] = d.occupancy
                data['temperature'] = d.temperature
                data['electric_level'] = d.electric_level
            else:
                data['occupancy'] = 0
                data['temperature'] = 0
                data['electric_level'] = 0
            devices_datas.append(data)

        return render_template('devices/devices_list.html', devices_datas=devices_datas, pagination=pagination)
    except TemplateNotFound:
        abort(404)
コード例 #7
0
ファイル: views.py プロジェクト: qitianchan/ash-bin
def device_data():
    res = []
    device_id = request.args["device_id"]
    device = Device.get(device_id)
    if device:
        datas = device.datas.order_by(desc("create_time")).limit(200).all()
        datas = reversed(datas)
        for d in datas:
            data = dict()
            data["occupancy"] = d.occupancy
            data["temperature"] = d.temperature
            data["electric_level"] = d.electric_level
            data["create_time"] = d.create_time.strftime("%m-%d %H:%M")
            res.append(data)
    return jsonify({"data": res})
コード例 #8
0
def device_data():
    res = []
    device_id = request.args['device_id']
    device = Device.get(device_id)
    if device:
        datas = device.datas.order_by(desc('create_time')).limit(200).all()
        datas = reversed(datas)
        for d in datas:
            data = dict()
            data['occupancy'] = d.occupancy
            data['temperature'] = d.temperature
            data['electric_level'] = d.electric_level
            data['create_time'] = d.create_time.strftime('%m-%d %H:%M')
            res.append(data)
    return jsonify({'data': res})
コード例 #9
0
ファイル: views.py プロジェクト: qitianchan/ash-bin
def device_profile_data(id):
    search = False
    q = request.args.get('q')
    if q:
        search = True
        try:
            page = int(request.args.get('page', 1))
        except ValueError:
            page = 1
    else:
        page = 1
    device = Device.get(id)
    if device:
        # datas = device.datas.order_by(desc(cls.create_time)).paginate(page, per_page, True).items
        datas = Data.get_gdatas(current_user, device)
        count = len(datas)
        pagination = Pagination(page=page, per_page=15, total=count, css_framework='bootstrap3',
                                search=search, record_name='devices')

        return render_template('devices/device_data.html', datas=datas, device=device, pagination=pagination)
    else:
        abort(404)