# Django imports.
from django.conf.urls import patterns, url
from django.contrib.auth.views import login, logout
# Application imports.
from .views import IndexView, EntityView, entity_iptables, project_iptables
from .views import ProjectView, ProjectCreateView, ProjectUpdateView, ProjectDeleteView
from .views import LocationCreateView, LocationUpdateView, LocationDeleteView
urlpatterns = patterns(
'conntrackt.views',
# Homepage/index view.
url(r'^$', IndexView.as_view(), name="index"),
# View for showing information about a project.
url(r'^project/(?P<pk>\d+)/$', ProjectView.as_view(),
name='project'),
# View for creating a new project.
url(r'^project/add/$', ProjectCreateView.as_view(), name="project_create"),
# View for updating an existing project.
url(r'^project/(?P<pk>\d+)/edit/$', ProjectUpdateView.as_view(), name="project_update"),
# View for deleting a project.
url(r'^project/(?P<pk>\d+)/remove/$', ProjectDeleteView.as_view(), name="project_delete"),
# View for creating a new location.
url(r'^location/add/$', LocationCreateView.as_view(), name="location_create"),
# View for updating an existing location.
url(r'^location/(?P<pk>\d+)/edit/$', LocationUpdateView.as_view(), name="location_update"),
# View for deleting a location.
url(r'^location/(?P<pk>\d+)/remove/$', LocationDeleteView.as_view(), name="location_delete"),
# View for showing information about an entity.
url(r'^entity/(?P<pk>\d+)/$', EntityView.as_view(),
name='entity'),
# View for rendering iptables rules for a specific entity.
url(r'^entity/(?P<pk>\d+)/iptables/$', entity_iptables, name="entity_iptables"),
# View for rendering zip file with iptables rules for all entities in a project.
url(r'^project/(?P<project_id>\d+)/iptables/$', project_iptables, name="project_iptables"),
# View for rendering zip file with iptables rules for all entities in a project for a specific location.
url(r'^project/(?P<project_id>\d+)/location/(?P<location_id>\d+)/iptables/$', project_iptables, name="project_location_iptables"),
# Views for logging-in/out the users.
url(r'^login/$', login, {'template_name': 'conntrackt/login.html'}, name="login"),
url(r'^logout/$', logout, name="logout"),
)