""" 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 gvacommon.viewmixins import StaffOrSelfLoginRequiredMixin from hostingpackages.models import CustomerHostingPackage class IndexView(TemplateView): """ This is the dashboard view. """ template_name = 'dashboard/index.html' class UserDashboardView(StaffOrSelfLoginRequiredMixin, DetailView): """ This is the user dashboard view. """ model = get_user_model() context_object_name = 'dashboard_user' slug_field = 'username' template_name = 'dashboard/user_dashboard.html' def get_context_data(self, **kwargs): context = super(UserDashboardView, self).get_context_data(**kwargs) context['hosting_packages'] = CustomerHostingPackage.objects.filter( customer=self.object ) return context def get_customer_object(self): """ Returns the customer object. """ return self.get_object()