Changeset 6288


Ignore:
Timestamp:
Sep 18, 2008, 9:16:25 PM (16 years ago)
Author:
RIck van der Zwet
Message:
  • Make sure user does not get confused when editing forms, e.g. return to previous as much as possible
  • Made the node List page default after any edit with none specific target
  • Make sure interface are indentified uniquely to avoid clashing
Location:
exodus
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • exodus/models.py

    r6287 r6288  
    9191        link = models.ForeignKey('self', blank=True, null=True)
    9292       
     93        class Meta:
     94                unique_together = ('node', 'iface')
     95       
    9396        def __str__(self):
    9497                return "%s:%s" % (self.node.name, self.iface)
  • exodus/templates/node-detail.html

    r6287 r6288  
    1515
    1616<h2>Interfaces</h2>
     17<a href="{% url exodus.views.addInterface %}?node={{ object.name }}">Add new interface</a>
    1718
    1819{% for nic in object.interface_set.all %}
  • exodus/urls.py

    r6287 r6288  
    4343        (r'^add/node/$', 'exodus.views.addNode'),
    4444        (r'^add/nic/$', 'exodus.views.addInterface'),
    45         (r'^add/interlink/$', 'exodus.views.addLink'),
    46         (r'^add/omni/$', 'exodus.views.addPublicAP'),
     45        (r'^add/dhcp/$', 'exodus.views.addPublicAP'),
    4746
    4847        # add urls
     
    5150        (r'^edit/nic/(?P<objectId>.+)/$', 'exodus.views.editInterface'),
    5251        (r'^edit/interlink/(?P<object_id>.+)/$', 'exodus.views.addLink'),
    53         (r'^edit/omni/(?P<object_id>.+)/$', 'exodus.views.addPublicAP'),
     52        (r'^edit/dhcp/(?P<object_id>.+)/$', 'exodus.views.addPublicAP'),
    5453
    5554        # delete/remove urls
  • exodus/views.py

    r6287 r6288  
    4040                        instance.masterip = freemasterip()
    4141                        instance.save()
    42                         return HttpResponseRedirect("/exodus/")
     42                        return HttpResponseRedirect(reverse('nodelist'))
    4343        else:
    4444                form = AddNodeForm()
     
    5353                        #Properly redirect to view/<Node> needed
    5454                        message = 'Node Updated succesfully'
    55                         return HttpResponseRedirect("/exodus/")
     55                        return HttpResponseRedirect(reverse('node-detail', args=[objectId]))
    5656                else:
    5757                        message = 'Form error, please edit and resubmit'
     
    7070                        instance.masterip = freemasterip()
    7171                        instance.save()
    72                         return HttpResponseRedirect("/exodus/")
     72                        return HttpResponseRedirect(reverse('nodelist'))
    7373        else:
    7474                form = AddNodeForm()
     
    9797                if form.is_valid():
    9898                        saveInterface(form)
    99                         return HttpResponseRedirect("/exodus/")
     99                        nodeName = Node.objects.get(pk=request.POST['node' ]).name
     100                        return HttpResponseRedirect(reverse('node-detail', args=[nodeName]))
    100101        else:
    101102                #XXX: Link, master interfaces only
    102                 form = addInterfaceForm()
     103                if 'node' in request.GET:
     104                        newInterface = Interface()
     105                        newInterface.node = Node.objects.get(name=request.GET['node'])
     106                        form = addInterfaceForm(instance=newInterface)
     107                else:
     108                        form = addInterfaceForm()
    103109        return render_to_response('addnic.html', {'form': form })
    104110
     
    110116                if form.is_valid():
    111117                        saveInterface(form)
    112                         return HttpResponseRedirect("/exodus/")
     118                        return HttpResponseRedirect(reverse('node-detail', args=[nodeName]))
    113119        else:
    114120                #XXX: Link, master interfaces only
     
    148154                        if compatibleInterfaces and differentNodes:
    149155                                instance.save()
    150                                 return HttpResponseRedirect("/exodus/")
     156                                return HttpResponseRedirect(reverse('nodelist'))
    151157                        else:
    152158                                form = addLinkForm(instance = instance)
     
    181187                        instance.ssid = newSSIDName(instance.iface.node, instance.iface, 'omni')
    182188                        instance.save()
    183                         return HttpResponseRedirect("/exodus/")
     189                        return HttpResponseRedirect(reverse('nodelist'))
    184190        else:
    185191                form = addPublicAPForm()
Note: See TracChangeset for help on using the changeset viewer.