Index: /trunk/exodus/models.py
===================================================================
--- /trunk/exodus/models.py	(revision 6319)
+++ /trunk/exodus/models.py	(revision 6320)
@@ -123,5 +123,5 @@
 
     def __str__(self):
-        return "%s" % (self.shortdesc)
+        return "%s:%s" % (self.iface,self.pk)
 
 class DhcpStatic(models.Model):
Index: /trunk/exodus/templates/delomni.html
===================================================================
--- /trunk/exodus/templates/delomni.html	(revision 6320)
+++ /trunk/exodus/templates/delomni.html	(revision 6320)
@@ -0,0 +1,13 @@
+{% extends "exodus-template.html" %}
+
+{% block content %}
+
+<h1>Delete Public Access Point {{ object.name }}</h1>
+
+<form method="post" action=".">
+<h3>Are you sure you want to <b>DELETE</b> this data <b>PERMANENTLY</b>?</h3>
+<input type="submit" name="cancel" value="NO, cancel">
+<input type="submit" name="proceed" value="OK, proceed">
+</form>
+
+{% endblock %}
Index: /trunk/exodus/templates/exodus-template.html
===================================================================
--- /trunk/exodus/templates/exodus-template.html	(revision 6319)
+++ /trunk/exodus/templates/exodus-template.html	(revision 6320)
@@ -11,4 +11,5 @@
   <TR>
     <td class="menu" valign="top">
+      <div style="min-height:400px">
 	  <A name="top"><img width="130" height="82" alt="logo" src="{% url static path="logo.png" %}" border=0></A><br>
 	  <img width="130" height="97" alt="foto" src="{% url static path="foto.jpg" %}"/><br>
@@ -17,4 +18,5 @@
 	  &nbsp;&nbsp;<A class="menu" href="{% url exodus.views.addLocation %}">Add Location</a><br>
 	  &nbsp;&nbsp;<A class="menu" href="{% url exodus.views.addNode %}">Add Node</a><br>
+	  </div>
 	</td>
 	<td valign="top" class="right">
Index: /trunk/exodus/templates/node-detail.html
===================================================================
--- /trunk/exodus/templates/node-detail.html	(revision 6319)
+++ /trunk/exodus/templates/node-detail.html	(revision 6320)
@@ -5,19 +5,20 @@
 
 <div style="border:1px solid #000000;">
-<h1> {{ object.name }} </h1>
+<h1> {{ node.name }} </h1>
 <h3> Location </h3>
-Description: {{ object.location.description }} <br>
-Longitude: {{ object.location.longitude }} <br>
-Latitude: {{ object.location.latitude }} <br>
+Description: {{ node.location.description }} <br>
+Longitude: {{ node.location.longitude }} <br>
+Latitude: {{ node.location.latitude }} <br>
 
-Master ip: {{ object.masterip }} <br>
-<a href="{% url exodus.views.editNode object %}">EDIT</a>
-<a href="{% url exodus.views.delNode object %}">DELETE</a>
+Master ip: {{ node.masterip }} <br>
+<a href="{% url exodus.views.editNode node %}">EDIT</a>
+<a href="{% url exodus.views.delNode node %}">DELETE</a>
 </div>
 
 <h2>Interfaces</h2>
-<a href="{% url exodus.views.addInterface %}?node={{ object.name }}">Add new interface</a><p />
+<a href="{% url exodus.views.addInterface %}?node={{ node.name }}">Add new interface</a><p />
 
-{% for nic in object.interface_set.all %}
+{% for nic in node.interface_set.all %}
+	<div style="border:1px solid #000000;">
 	<div style="border:1px solid #000000;">
 	<h3>iface: {{ nic.iface }} </h3>
@@ -51,10 +52,11 @@
 		{% endifnotequal %}
 	{% endfor %}
-	
-	<ul>
+	<ol>
 	{% for accessPoint in nic.ap.all %}
 		<div style="border:1px solid #000000;">
 		<p />
 		<li>Public Access Point: {{ accessPoint.ip}}/{{accessPoint.netmask }}
+		<a href="{% url exodus.views.editPublicAP node.name nic.iface accessPoint.pk %}">EDIT</a>
+		<a href="{% url exodus.views.delPublicAP accessPoint %}">DELETE</a>
 		{% for dhcp in accessPoint.dhcpstatic.all %}
 			<ul>
@@ -67,5 +69,7 @@
 		</div>
 	{% endfor %}
-	</ul>
+	</ol>
+	</div>
+	<p />
 {% endfor %}
 
Index: /trunk/exodus/urls.py
===================================================================
--- /trunk/exodus/urls.py	(revision 6319)
+++ /trunk/exodus/urls.py	(revision 6320)
@@ -30,5 +30,5 @@
 	url(r'^$', 'django.views.generic.simple.direct_to_template', {'template': 'index.html'}, "root") ,
 	url(r'^nodelist/$', 'django.views.generic.list_detail.object_list', dict(node_dict, template_name='node-list.html'), "nodelist"),
-	url(r'^view/node/(?P<slug>.+)/$', 'django.views.generic.list_detail.object_detail', dict(node_dict,slug_field='name',template_name='node-detail.html'), "node-detail"),
+	url(r'^view/node/(?P<node>.+)/$', 'exodus.views.node', {}, "node-detail"),
 
 	# config urls
@@ -50,9 +50,10 @@
 	(r'^edit/nic/(?P<objectId>.+)/$', 'exodus.views.editInterface'),
 	(r'^edit/link/(?P<object_id>.+)/$', 'exodus.views.addLink'),
-	(r'^edit/dhcp/(?P<object_id>.+)/$', 'exodus.views.addPublicAP'),
+	(r'^edit/dhcp/(?P<node>.+)/(?P<interface>.+)/(?P<publicAP>.+)/$', 'exodus.views.editPublicAP'),
 
 	# delete/remove urls
 	(r'^delete/node/(?P<objectId>.+)/$', 'exodus.views.delNode'),
 	(r'^delete/nic/(?P<objectId>.+)/$', 'exodus.views.delInterface'),
+	(r'^delete/dhcp/(?P<objectId>.+)/$', 'exodus.views.delPublicAP'),
 )
 
Index: /trunk/exodus/views.py
===================================================================
--- /trunk/exodus/views.py	(revision 6319)
+++ /trunk/exodus/views.py	(revision 6320)
@@ -31,4 +31,8 @@
 		model = Node
 		exclude = ( 'masterip' )
+
+def node(request, node):
+	object = Node.objects.get(name=node)
+	return render_to_response('node-detail.html', {'node': object})
 
 def addNode(request):
@@ -200,5 +204,5 @@
 	return render_to_response('addinterlink.html',{'form': form})
 
-class addPublicAPForm(forms.ModelForm):
+class AddPublicAPForm(forms.ModelForm):
 	class Meta:
 		model = PublicAP
@@ -207,5 +211,5 @@
 def addPublicAP(request):
 	if request.POST:
-		form = addPublicAPForm(request.POST)
+		form = AddPublicAPForm(request.POST)
 		if form.is_valid():
 			instance = form.save(commit=False)
@@ -225,8 +229,38 @@
 			newPublicAP = PublicAP()
 			newPublicAP.iface = Interface.objects.get(iface=interfaceName, node=nodename2id(nodeName))
-			form = addPublicAPForm(instance=newPublicAP)
-		else:
-			form = addPublicAPForm()
+			form = AddPublicAPForm(instance=newPublicAP)
+		else:
+			form = AddPublicAPForm()
 	return render_to_response('addomni.html', {'form': form })
+
+def editPublicAP(request, node, interface, publicAP):
+	nodeID = Node.objects.get(name=node)
+	iface = Interface.objects.get(node=nodeID, iface=interface)
+	publicAP = PublicAP.objects.get(iface=iface, pk=publicAP)
+	if request.POST:
+		form = AddPublicAPForm(request.POST, instance=publicAP)
+		if form.is_valid():
+			form.save()
+			#Properly redirect to view/<Node> needed
+			message = 'Node Updated succesfully'
+			node = publicAP.iface.node
+			return HttpResponseRedirect(reverse('node-detail', args=[node]))
+		else:
+			message = 'Form error, please edit and resubmit'
+	else:
+		message = 'Please edit and submit'
+		form = AddPublicAPForm(instance=publicAP)
+	return render_to_response('addnode.html', {'form': form, 'message' : message })
+
+def delPublicAP(request, objectId):
+	publicAP = PublicAP.objects.get(name=objectId)
+	node = publicAP.iface.node
+	if request.POST.has_key('cancel'):
+		return HttpResponseRedirect(reverse('node-detail', args=[node]))
+	elif request.POST.has_key('proceed'):
+		publicAP.delete()
+		return HttpResponseRedirect(reverse('node-detail', args=[node]))
+	else:
+		return render_to_response('delomni.html', {'object': publicAP })
 
 def nodename2id(node):
