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",)
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)
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)
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))
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())
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)
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/')
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)
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)
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)
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")
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)
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))
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)
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)
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"))