예제 #1
0
파일: node.py 프로젝트: ljtyzhr/collipa
 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)
예제 #2
0
 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)
예제 #3
0
파일: views.py 프로젝트: ygxing/flaskbbs
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)
예제 #4
0
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)
예제 #5
0
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]))
예제 #6
0
파일: node.py 프로젝트: KeenTurbo/collipa
 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)
예제 #7
0
 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)
예제 #8
0
파일: node.py 프로젝트: ljtyzhr/collipa
 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)
예제 #9
0
 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)
예제 #10
0
파일: views.py 프로젝트: zhengjue/mytornado
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)
예제 #11
0
파일: views.py 프로젝트: zhengjue/mytornado
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)
예제 #12
0
 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)
예제 #13
0
파일: views.py 프로젝트: samlabs821/app
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)
예제 #14
0
파일: node.py 프로젝트: KeenTurbo/collipa
 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)
예제 #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)
예제 #16
0
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)
예제 #17
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)
예제 #18
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)
예제 #19
0
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))
예제 #20
0
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)