def post(self): user = self.current_user form = NodeForm(self.request.arguments) if form.validate(): node = form.save(user) return self.redirect(node.url) return self.render("node/create.html", form=form)
def bbs_add_node(): form = NodeForm(request.form) form.section.query_factory = Section.query.all if request.method == 'POST' and form.validate(): section = form.data["section"] print section, type(section) if not section: form.section.errors.append(u"Section不存在!") return render_template("add_node.html", form=form) node = Node(section=section, name=form.data["node_name"].strip(), title=form.data["node_title"], descp=form.data["descp"], item_per_page=form.data["item_per_page"], header=form.data["header"], footer=form.data["footer"], sidebar=form.data["sidebar"], sidebar_ads=form.data["sidebar_ads"], avatar_url=form.data["avatar_url"]) node.created = datetime.now() section.node_count += 1 db.session.add_all([node, section]) db.session.commit() return redirect(url_for(".bbs_node", node_name=urllib.quote(node.name))) return render_template("add_node.html", form=form)
def node(): nodes = network_info() form = NodeForm() if request.method == "POST": if form.validate() == False: return render_template("node.html", form=form, nodes=nodes) else: name = form.name.data humdity = form.humdity.data temperature = form.temperature.data mode = form.mode.data if mode: protocol = "cord" else: protocol = "rott" eid = session['current_experiment'] print("name: " + str(name) + " humdity: " + str(humdity) + " temperature: " + str(temperature) + " mode:" + str(mode)) node = Node(eid=eid, name=name, humdity=humdity, temperature=temperature, protocol=protocol) db.session.add(node) db.session.commit() return redirect(url_for("node")) elif request.method == "GET": return render_template("node.html", form=form, nodes=nodes)
def node_edit(request, id=None): """ Handler for creating and editing nodes """ c = RequestContext(request, processors=[pydra_processor, settings_processor]) if request.method == 'POST': form = NodeForm(request.POST) if form.is_valid(): if id: form.cleaned_data['id'] = id pydra_controller.remote_node_edit(form.cleaned_data) return HttpResponseRedirect('%s/nodes' % settings.SITE_ROOT) # Redirect after POST else: if id: node = pydra_controller.remote_node_detail(id) form = NodeForm(node) else: # An unbound form form = NodeForm() return render_to_response('node_edit.html', { 'form': form, 'id':id, }, context_instance=RequestContext(request, processors=[settings_processor]))
def post(self): if not self.has_permission: return if not self.current_user.is_admin: return self.redirect_next_url() user = self.current_user form = NodeForm(self.request.arguments) if form.validate(): node = form.save(user) return self.redirect(node.url) return self.render("node/create.html", form=form)
def get(self): node_id = int(self.get_argument('node_id', 0)) node = Node.get(id=node_id) if node: selected = [node.name] else: selected = [] form = NodeForm.init(Node.get_node_choices(), selected) return self.render("node/create.html", form=form)
def add(request): #获取来自NodeForm的表单数据 form = NodeForm(request.POST or None) #判断form是否有效 if form.is_valid(): #创建实例,需要做些数据处理,暂不做保存 instance = form.save(commit=False) #将登录用户作为登记人 instance.node_signer = request.user #保存该实例 instance.save() #跳转至列表页面 return redirect('/lists/') #创建context来集中处理需要传递到页面的数据 context = { 'form': form, } #如果没有有效提交,则仍留在原来页面 return render(request, 'add.html', context)
def get(self): if not self.has_permission: return if not self.current_user.is_admin: return self.redirect_next_url() node_id = int(self.get_argument('node_id', 0)) node = Node.get(id=node_id) if node: selected = [node.name] else: selected = [] form = NodeForm.init(Node.get_node_choices(), selected) return self.render("node/create.html", form=form)
def add_node(): form = NodeForm() if request.method == 'POST' and form.validate_on_submit(): ids = form.Id.data is_group = form.IsGroup.data name_en = form.NameEN.data name_ru = form.NameRU.data name_kz = form.NameKZ.data print type(is_group) if is_group == '0': doc_type = form.DocTypeCode.data mail = form.DecMail.data print 'not group' elif is_group == '1': doc_type='' mail='' print 'group' org = Organization() org.initialize(ids,doc_type, name_en, name_ru, name_kz, mail, is_group) update_org_by_id(ids, org) return redirect('/nodes') return render_template('node_add.html', title='Add server', form=form)
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 bbs_add_node(): form = NodeForm(request.form) form.section.query_factory = Section.query.all if request.method == 'POST' and form.validate(): section = form.data["section"] print section, type(section) if not section: form.section.errors.append(u"Section不存在!") return render_template("add_node.html", form=form) node = Node(section=section, name=form.data["node_name"].strip(), title=form.data["node_title"], descp=form.data["descp"], item_per_page=form.data["item_per_page"], header=form.data["header"], footer=form.data["footer"], sidebar=form.data["sidebar"], sidebar_ads=form.data["sidebar_ads"], avatar_url=form.data["avatar_url"] ) node.created = datetime.now() section.node_count += 1 db.session.add_all([node, section]) db.session.commit() return redirect(url_for(".bbs_node", node_name=urllib.quote(node.name))) return render_template("add_node.html", form=form)
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 writenextnode(request, parentid): parentnode = findNode(parentid) form = NodeForm(request.POST) return render_to_response("writinganewnode.html", {'form': form, 'parentnode': parentnode}, context_instance=RequestContext(request))
def addEditNode(node_id): node = None # get choices for node leaders leader_choices = [(0, 'Self')] for x in Node.query.filter_by(leader_id=0): # @UndefinedVariable leader_choices.append((x.id,x.name)) form = NodeForm() form.leader.choices = leader_choices form.leader.default = 0 if node_id is not None: node = Node.query.get(node_id) # @UndefinedVariable if request.method == 'GET': if node is None: form.new.data = True else: form.new.data = False form.id.data = node.id form.name.data = node.name form.rid.data = node.rid form.ip.data = node.ip form.location.lat.data = node.location.lat form.location.lon.data = node.location.lon form.leader.data = node.leader_id jumppoints = [] for jp in node.jumppoints: form.jumppoints.append_entry({"jp_id": jp.id, "lat": jp.location.lat, "lon":jp.location.lon }) goals = [] for goal in node.goals: form.goals.append_entry({"goal_id": goal.id, "lat": goal.location.lat, "lon":goal.location.lon }) elif request.method == 'POST' and form.validate(): # @UndefinedVariable if node is None: #new node has passed validation, add to db location = Location(lat=form.location.lat.data, lon=form.location.lon.data) db.session.add(location) # @UndefinedVariable node = Node(name=form.name.data, leader_id=form.leader.data, location=location, rid=form.rid.data, ip=form.ip.data) db.session.add(node) # @UndefinedVariable db.session.commit() # @UndefinedVariable for index, point in enumerate(form.jumppoints.data): jp = JumpPoint() location = Location(lat=point['lat'], lon=point['lon']) db.session.add(location) # @UndefinedVariable jp.location = location jp.position = int(point['pos']) + 1 db.session.add(jp) node.jumppoints.append(jp) for index, point in enumerate(form.goals.data): goal = Goal() location = Location(lat=point['lat'], lon=point['lon']) db.session.add(location) # @UndefinedVariable goal.location = location goal.position = int(point['pos']) + 1 db.session.add(goal) node.goals.append(goal) db.session.commit() # @UndefinedVariable flash("Node has been created") else: #node has been updated. save updates node.name = form.name.data node.rid = form.rid.data node.ip = form.ip.data location = Location.query.get(node.loc_id) # @UndefinedVariable location.lat = form.location.lat.data location.lon = form.location.lon.data node.location = location node.leader_id = form.leader.data # create a list of all points already included on this path. will be used to determine if # any points were deleted from the list. deleteList = [] for jp in node.jumppoints: deleteList.append(jp.id) for index, jp in enumerate(form.jumppoints.data): if int(jp['jp_id']) == 0: newjp = JumpPoint() location = Location(lat=jp['lat'], lon=jp['lon']) db.session.add(location) # @UndefinedVariable newjp.location = location newjp.position = int(jp['pos']) + 1 db.session.add(newjp) node.jumppoints.append(newjp) else: # found existing point. update and remove from delete list savedjp = JumpPoint.query.get(jp['jp_id']) # @UndefinedVariable savedjp.position = int(jp['pos']) + 1 savedLoc = Location.query.get(savedjp.loc_id) # @UndefinedVariable savedLoc.lat = jp['lat'] savedLoc.lon = jp['lon'] deleteList.remove(int(jp['jp_id'])) for id in deleteList: jp= JumpPoint.query.get(id) # @UndefinedVariable db.session.delete(jp) deleteList = [] for goal in node.goals: deleteList.append(goal.id) for index, goal in enumerate(form.goals.data): if int(goal['goal_id']) == 0: newgoal = Goal() location = Location(lat=goal['lat'], lon=goal['lon']) db.session.add(location) # @UndefinedVariable newgoal.location = location newgoal.position = int(goal['pos']) + 1 db.session.add(newgoal) node.goals.append(newgoal) else: # found existing point. update and remove from delete list savedGoal = Goal.query.get(goal['goal_id']) # @UndefinedVariable savedGoal.position = int(goal['pos']) + 1 savedLoc = Location.query.get(savedGoal.loc_id) # @UndefinedVariable savedLoc.lat = goal['lat'] savedLoc.lon = goal['lon'] deleteList.remove(int(goal['goal_id'])) for id in deleteList: goal= Goal.query.get(id) # @UndefinedVariable db.session.delete(goal) db.session.commit() flash("Node has been updated") # after creating the new state, redirect them back to dce config page return redirect(url_for("nodePage")) return render_template("nodeForm.html", form=form)