def post(request):

    if "protocol" not in request.POST:
        return HttpResponseBadRequest(
            content=simplejson.dumps({"errors": ["protocol"]}),
            content_type="application/json",
            )
    protocol = get_object_or_404(Protocol, name=request.POST["protocol"])

    form = DeviceForm(request.POST)
    if form.is_valid():
        exec "from %s import validate_address" % protocol.validate_address_module
        obj = form.save(commit=False)
        obj.protocol = protocol
        try:
            validate_address(obj.did)
            obj.save()
        except ValueError:
            return HttpResponseBadRequest(
                content=simplejson.dumps({"errors": ["did"]}),
                content_type="application/json",
                )
        except IntegrityError:
            return HttpResponse(
                status=409,
                content=simplejson.dumps({"conflicting": ["did", "protocol"]}),
                content_type="application/json",
                )
        response = redirect(reverse('device_by_id', kwargs={"protocol": obj.protocol, "did": obj.id}))
        response.content_type = "application/json"
        return response
    return HttpResponseBadRequest(
        content=simplejson.dumps({"errors": [x for x in form.errors]}),
        content_type="application/json",)
Example #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)
Example #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)
Example #4
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))
Example #5
0
def newdevice(request):
    if request.POST:
        form = DeviceForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Device added!')
            return HttpResponseRedirect('/devices/')
    else:
        form = DeviceForm()

    return render(request, 'newdevice.html', locals())
Example #6
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)
Example #7
0
File: views.py Project: asmcos/jeap
def add_device(soc_name,id):
    if require_login():
        return redirect(url_for(login))
    form = DeviceForm()
    if request.method == 'GET':
        return {'form':form}
    elif request.method == 'POST':
        flag = form.validate(request.params)
        if flag:
            n = mdevice(**form.data)
            s = mdevice.filter(mdevice.c.device_name == form.data.device_name)\
                       .filter(mdevice.c.soc_name == soc_name)		
            for s1 in s:
                return redirect('/message/添加错误,重名/-1') 
        n.soc_name=soc_name
        n.adminname = request.user
        n.save()
        return redirect('/regs/')
Example #8
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)
Example #9
0
def devices():
    form = DeviceForm()
    form.group.choices = [(str(g.id), g.name) for g in models.Group.query.order_by('id')]
    if form.validate_on_submit():
        device_id = form.id.data
        if device_id:
            device = models.Device.query.get(device_id)
            device.group_id = form.group.data
            device.mac_address = form.mac_address.data
            device.name = form.name.data
        else:
            device = models.Device(name=form.name.data, mac_address=form.mac_address.data.upper(),
                                   group_id=form.group.data)
            db.session.add(device)
        db.session.commit()
        flash('The device was successfully saved.', 'success')
        return redirect(url_for('devices'))
    devices = models.Device.query.all()
    return render_template('devices.html', form=form, devices=devices)
Example #10
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)
Example #11
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")
Example #12
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)
Example #13
0
def editdevice(request, device_id):
    device = get_object_or_404(Device, pk=device_id)
    history = Device.history.filter(id=device_id)
    t = "Edit"

    tickets = Ticket.objects.filter(UniqueID=device_id)

    if request.POST:
        form = DeviceForm(request.POST, instance=device)
        if form.is_valid():
            form.save()

            return HttpResponseRedirect('/device/edit/%s' % device_id)

    else:
        form = DeviceForm(instance=device)

    return render_to_response("editdevice.html", {
        'form': form,
        't': t,
        'device': device,
        'history': history,
        'tickets': tickets,
    }, context_instance=RequestContext(request))
Example #14
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)
Example #15
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)
Example #16
0
def add_edit_item(request, model_name, add_edit, edit_id):
    """Add/Edit page for the inventory"""
    if add_edit == "add":
        edit_id = None
    if _checkModel(model_name):
        directory = "asset_inventory/add_edit_Pages/"
        # Adding or Editing a Job
        if model_name == "Job":
            templateFile = directory + "Job.html"
            post_data = request.POST or None

            try:
                Job_Instance = Job.objects.get(pk=edit_id)
            except Job.DoesNotExist:
                Job_Instance = None
                if add_edit == "edit":
                    return HttpResponseRedirect(reverse("asset_inventory_add_edit_item", args=["Job", "add", "new"]))

            Job_Form = JobForm(post_data, instance=Job_Instance)

            if Job_Form.is_valid():
                Job_Occurance = Job_Form.save()
                return HttpResponseRedirect(reverse("asset_inventory_list_model", args=["Job"]))
            return render_to_response(templateFile, {"form": Job_Form}, context_instance=RequestContext(request))
        # Adding or Editing a Location
        elif model_name == "Location":
            templateFile = directory + "Location.html"
            post_data = request.POST or None

            try:
                Location_Instance = Location.objects.get(pk=edit_id)
            except Location.DoesNotExist:
                Location_Instance = None
                if add_edit == "edit":
                    return HttpResponseRedirect(
                        reverse("asset_inventory_add_edit_item", args=["Location", "add", "new"])
                    )

            Location_Form = LocationForm(post_data, instance=Location_Instance)

            if Location_Form.is_valid():
                Location_Occurance = Location_Form.save()
                return HttpResponseRedirect(reverse("asset_inventory_list_model", args=["Location"]))

            return render_to_response(templateFile, {"form": Location_Form}, context_instance=RequestContext(request))

        # Adding or Editing a Person
        elif model_name == "Person":
            templateFile = directory + "Person.html"
            post_data = request.POST or None

            try:
                Person_Instance = Person.objects.get(pk=edit_id)
            except Person.DoesNotExist:
                Person_Instance = None
                if add_edit == "edit":
                    return HttpResponseRedirect(reverse("asset_inventory_add_edit_item", args=["Person", "add", "new"]))

            Person_Form = PersonForm(post_data, instance=Person_Instance)

            if Person_Form.is_valid():
                Person_Occurance = Person_Form.save()
                return HttpResponseRedirect(reverse("asset_inventory_list_model", args=["Person"]))

            return render_to_response(templateFile, {"form": Person_Form}, context_instance=RequestContext(request))

        # Adding or Editing a Purchase
        elif model_name == "Purchase":
            templateFile = directory + "Purchase.html"
            post_data = request.POST or None

            try:
                Purchase_Instance = Purchase.objects.get(pk=edit_id)
            except Purchase.DoesNotExist:
                Purchase_Instance = None
                if add_edit == "edit":
                    return HttpResponseRedirect(
                        reverse("asset_inventory_add_edit_item", args=["Purchase", "add", "new"])
                    )

            Purchase_Form = PurchaseForm(post_data, instance=Purchase_Instance)

            if Purchase_Form.is_valid():
                Purchase_Occurance = Purchase_Form.save()
                return HttpResponseRedirect(reverse("asset_inventory_list_model", args=["Purchase"]))

            return render_to_response(templateFile, {"form": Purchase_Form}, context_instance=RequestContext(request))
        # Adding or Editing a Status
        elif model_name == "Status":
            templateFile = directory + "Status.html"
            post_data = request.POST or None

            try:
                Status_Instance = Status.objects.get(pk=edit_id)
            except Status.DoesNotExist:
                Status_Instance = None
                if add_edit == "edit":
                    return HttpResponseRedirect(reverse("asset_inventory_add_edit_item", args=["Status", "add", "new"]))

            Status_Form = StatusForm(post_data, instance=Status_Instance)

            if Status_Form.is_valid():
                Status_Occurance = Status_Form.save()
                return HttpResponseRedirect(reverse("asset_inventory_list_model", args=["Status"]))

            return render_to_response(templateFile, {"form": Status_Form}, context_instance=RequestContext(request))
        # Adding or Editing a Esign
        elif model_name == "Esign":
            templateFile = directory + "Esign.html"
            post_data = request.POST or None

            try:
                Esign_Instance = Esign.objects.get(pk=edit_id)
            except Esign.DoesNotExist:
                Esign_Instance = None
                if add_edit == "edit":
                    return HttpResponseRedirect(reverse("asset_inventory_add_edit_item", args=["Esign", "add", "new"]))

            Esign_Form = EsignForm(post_data, instance=Esign_Instance)

            if Esign_Form.is_valid():
                Esign_Occurance = Esign_Form.save()
                return HttpResponseRedirect(reverse("asset_inventory_list_model", args=["Esign"]))

            return render_to_response(templateFile, {"form": Esign_Form}, context_instance=RequestContext(request))
        # Adding or Editing a Device
        elif model_name == "Device":
            templateFile = directory + "Device.html"
            post_data = request.POST or None

            try:
                Device_Instance = Device.objects.get(pk=edit_id)
            except Device.DoesNotExist:
                Device_Instance = None
                if add_edit == "edit":
                    return HttpResponseRedirect(reverse("asset_inventory_add_edit_item", args=["Device", "add", "new"]))

            Device_Form = DeviceForm(post_data, instance=Device_Instance)

            if Device_Form.is_valid():
                Device_Occurance = Device_Form.save()
                return HttpResponseRedirect(reverse("asset_inventory_list_model", args=["Device"]))

            return render_to_response(templateFile, {"form": Device_Form}, context_instance=RequestContext(request))
    # This is a catch all response, if some unforseen error manages
    # to occur with the calling of add/edit pages
    else:
        render_to_response(reverse("homepage"))