""" This module defines the views for the gnuviechadmin customer dashboard. """ from django.contrib.auth import get_user_model from django.views.generic import DetailView, TemplateView 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()