Пример #1
0
def edit_device(request, id=None):
    context = {
        'page_title': u'Dispositivos',
        'edit_name': 'device',
        'has_back': False,
        'features': get_user_features(request)
    }
    t = get_template('edit.html')
    device = None
    form = DeviceForm()
    try:
        if request.method == 'POST':
            form = DeviceForm(request.POST)
            if form.is_valid():
                cd = form.cleaned_data
                device = _save_device(cd)
                messages.success(request, 'Dispositivo salvo com sucesso.')
                form = DeviceForm(initial={})
        elif id:
            device = Device.objects.get(id=id)
            initial = device.__dict__
            initial['category'] = device.category.id
            form = DeviceForm(initial=initial)
    except Exception as e:
        log.error(e)
        messages.error(
            request,
            u'Ocorreu um erro ao processar a requisição, por favor tente novamente.'
        )
    context = _set_device_form_context(device, form, context)
    return render_to_response('edit.html',
                              context,
                              context_instance=RequestContext(request))
Пример #2
0
def edit(id):
    my_devices = devices.show(g.url_rest + "/" + id)
    form = DeviceForm.from_json(my_devices)
    if form.is_submitted():
        devices.edit(g.url_rest + "/" + id, DeviceForm(obj=devices))
        return redirect(url_for("devices.list"))
    return render_template('device_edit.html', devices=my_devices, form=form)
Пример #3
0
def add():
    form = DeviceForm()
    if request.method == 'POST' and form.validate_on_submit():
        devices.add(g.url_rest, form)
        flash('Device added')
        return redirect(url_for('devices.list'))
    return render_template('device_add.html', form=form)
Пример #4
0
def addDevice():
    form = DeviceForm()
    devices = Device.get_by_user(current_user.id)
    if form.validate_on_submit():
        name = form.name.data
        tipodispositivo = form.tipodispositivo.data
        macaddress = form.macaddress.data
        id = current_user.get_id()
        device = Device(user_id=id,
                        name=name,
                        tipodispositivo=tipodispositivo,
                        macaddress=macaddress)
        device.save()
        return redirect(url_for('index'))
    return render_template('addDevice_form.html', form=form, devices=devices)
Пример #5
0
 def post(self, request, **kwargs):
     """
     Creates a new device or updates an existing one to `is_active=True`.
     Expects two non-options POST parameters: `token` and `service`.
     """
     devices = DeviceToken.objects.filter(token=request.POST.get('token'),
                                     service__id=int(request.POST.get('service', 0)))
     if devices.exists():
         device = devices.get()
         device.is_active = True
         device.save()
         return JSONResponse(device)
     form = DeviceForm(request.POST)
     if form.is_valid():
         device = form.save(commit=False)
         device.is_active = True
         device.save()
         return JSONResponse(device, status=201)
     return JSONResponse(form.errors, status=400)
Пример #6
0
def add_device():
    check_admin()
    add_device = True
    form = DeviceForm()
    if form.validate_on_submit():
        device = Device(name=form.name.data,
                        description=form.description.data,
                        ip=form.ip.data)
        try:
            db.session.add(device)
            db.session.commit()
            flash('You have successfully added a new device.')
        except:
            flash('Error: device name already exists.')
        return redirect(url_for('admin.list_devices'))
    return render_template('admin/devices/device.html',
                           action="Add",
                           add_device=add_device,
                           form=form,
                           title="Add Device")
Пример #7
0
def register_device():
    form = DeviceForm()
    if form.validate_on_submit():
        data = {
            "name": form.name.data,
            "role": form.role.data,
            "password": form.password.data,
            "ip": form.ip.data
        }
        url = "{}/{}".format(api_url, "devices")
        r = requests.post(url, json=data)
        result = r.json()["result"]
        if result == "Done":
            flash(result, 'success')
        else:
            flash(result, "danger")
        return redirect(url_for('home'))
    return render_template('device_register.html',
                           title='DeviceRegister',
                           form=form)
Пример #8
0
def edit(request, table, pk):
    if table == 'line':
        #这是Django的一个快捷方法,通过pk去line表中取值,如果有值则返回,如果无值则抛出http404的异常
        #具体信息可参考https://docs.djangoproject.com/en/1.9/topics/http/shortcuts/
        table_ins = get_object_or_404(Line, pk=pk)
        #通过instance来将Form的数据做填充
        form = LineForm(request.POST or None, instance=table_ins)
        sub_title = '修改线路信息'
    if table == 'node':
        table_ins = get_object_or_404(Node, pk=pk)
        form = NodeForm(request.POST or None, instance=table_ins)
        sub_title = '修改机构信息'
    if table == 'device':
        table_ins = get_object_or_404(Device, pk=pk)
        form = DeviceForm(request.POST or None, instance=table_ins)
        sub_title = '修改设备信息'
    #判断form是否有效
    if form.is_valid():
        #创建实例,需要做些数据处理,暂不做保存
        instance = form.save(commit=False)
        #将登录用户作为登记人,在修改时,一定要使用str强制
        if table == 'node':
            instance.node_signer = str(request.user)
        if table == 'line':
            instance.line_signer = str(request.user)
        if table == 'device':
            instance.device_signer = str(request.user)
        #保存该实例
        instance.save()
        #跳转至列表页面,配合table参数,进行URL的反向解析
        return redirect('lists', table=table)

    context = {
        'table': table,
        'form': form,
        'page_title': '基础资料',
        'sub_title': sub_title,
    }
    #与res_add.html用同一个页面,只是edit会在res_add页面做数据填充
    return render(request, 'res_add.html', context)
Пример #9
0
def add(request, table):

    #根据提交的请求不同,获取来自不同Form的表单数据
    if table == 'node':
        form = NodeForm(request.POST or None)
        sub_title = '添加节点'
    if table == 'line':
        form = LineForm(request.POST or None)
        sub_title = '添加线路'
    if table == 'device':
        form = DeviceForm(request.POST or None)
        sub_title = '添加设备'
    #判断form是否有效
    if form.is_valid():
        #创建实例,需要做些数据处理,暂不做保存
        instance = form.save(commit=False)
        #将登录用户作为登记人
        if table == 'node':
            instance.node_signer = request.user
        if table == 'line':
            instance.line_signer = request.user
        if table == 'device':
            instance.device_signer = request.user
        #保存该实例
        instance.save()
        #跳转至列表页面,配合table参数,进行URL的反向解析
        return redirect('lists', table=table)

    #创建context来集中处理需要传递到页面的数据
    context = {
        'form': form,
        'table': table,
        'page_title': '基础资料',
        'sub_title': sub_title,
    }
    #如果没有有效提交,则仍留在原来页面
    return render(request, 'res_add.html', context)