diff --git a/gnuviechadmin/dashboard/__init__.py b/gnuviechadmin/dashboard/__init__.py new file mode 100644 index 0000000..280cb6c --- /dev/null +++ b/gnuviechadmin/dashboard/__init__.py @@ -0,0 +1,4 @@ +""" +This app contains the customer dashboard implementation for gnuviechadmin. + +""" diff --git a/gnuviechadmin/dashboard/migrations/__init__.py b/gnuviechadmin/dashboard/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gnuviechadmin/dashboard/models.py b/gnuviechadmin/dashboard/models.py new file mode 100644 index 0000000..e69de29 diff --git a/gnuviechadmin/dashboard/urls.py b/gnuviechadmin/dashboard/urls.py new file mode 100644 index 0000000..f7172d8 --- /dev/null +++ b/gnuviechadmin/dashboard/urls.py @@ -0,0 +1,16 @@ +from __future__ import absolute_import, unicode_literals + +from django.conf.urls import patterns, url + +from .views import ( + IndexView, + UserDashboardView, +) + + +urlpatterns = patterns( + '', + url(r'^$', IndexView.as_view(), name='dashboard'), + url(r'^user/(?P[\w0-9@.+-_]+)/$', + UserDashboardView.as_view(), name='customer_dashboard'), +) diff --git a/gnuviechadmin/dashboard/views.py b/gnuviechadmin/dashboard/views.py new file mode 100644 index 0000000..aa1d7f4 --- /dev/null +++ b/gnuviechadmin/dashboard/views.py @@ -0,0 +1,31 @@ +""" +This module defines the views for the gnuviechadmin customer dashboard. + +""" +from __future__ import unicode_literals + +from django.views.generic import ( + DetailView, + TemplateView, +) +from django.contrib.auth import get_user_model + +from braces.views import LoginRequiredMixin + + +class IndexView(TemplateView): + """ + This is the dashboard view. + + """ + template_name = 'dashboard/index.html' + + +class UserDashboardView(DetailView, LoginRequiredMixin): + """ + This is the user dashboard view. + + """ + model = get_user_model() + slug_field = 'username' + template_name = 'dashboard/user_dashboard.html' diff --git a/gnuviechadmin/gnuviechadmin/settings/base.py b/gnuviechadmin/gnuviechadmin/settings/base.py index 9612eea..bd6ab8e 100644 --- a/gnuviechadmin/gnuviechadmin/settings/base.py +++ b/gnuviechadmin/gnuviechadmin/settings/base.py @@ -226,6 +226,7 @@ DJANGO_APPS = ( # Apps specific for this project go here. LOCAL_APPS = ( + 'dashboard', 'taskresults', 'mysqltasks', 'pgsqltasks', diff --git a/gnuviechadmin/gnuviechadmin/urls.py b/gnuviechadmin/gnuviechadmin/urls.py index 1ae3acb..c00f384 100644 --- a/gnuviechadmin/gnuviechadmin/urls.py +++ b/gnuviechadmin/gnuviechadmin/urls.py @@ -1,23 +1,19 @@ -from django.conf.urls import patterns, include, url -from django.conf.urls.static import static -from django.conf import settings -from django.views.generic import TemplateView +from __future__ import absolute_import + +from django.conf.urls import patterns, include, url +from django.conf import settings + +import dashboard.urls + +from django.contrib.auth import urls as auth_urls -# Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() -urlpatterns = patterns('', - url(r'^$', TemplateView.as_view(template_name='base.html')), - - # Examples: - # url(r'^$', 'gnuviechadmin.views.home', name='home'), - # url(r'^gnuviechadmin/', include('gnuviechadmin.foo.urls')), - - # Uncomment the admin/doc line below to enable admin documentation: - # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - - # Uncomment the next line to enable the admin: +urlpatterns = patterns( + '', + url(r'', include(dashboard.urls)), + url(r'^auth/', include(auth_urls)), url(r'^admin/', include(admin.site.urls)), )