mirror of https://github.com/snachodog/mybuddy.git
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.contrib.auth.mixins import (LoginRequiredMixin,
|
|
PermissionRequiredMixin)
|
|
from django.urls import reverse
|
|
from django.views.generic.base import TemplateView, RedirectView
|
|
from django.views.generic.detail import DetailView
|
|
|
|
from core.models import Child
|
|
|
|
|
|
class DashboardRedirect(LoginRequiredMixin, RedirectView):
|
|
# Show the overall dashboard or a child dashboard if one Child instance.
|
|
def get(self, request, *args, **kwargs):
|
|
children = Child.objects.count()
|
|
if children == 0:
|
|
# TODO: Create some sort of welcome page.
|
|
self.url = reverse('child-add')
|
|
elif children == 1:
|
|
child_instance = Child.objects.first()
|
|
self.url = reverse('dashboard-child', args={child_instance.slug})
|
|
else:
|
|
self.url = reverse('dashboard')
|
|
return super(DashboardRedirect, self).get(request, *args, **kwargs)
|
|
|
|
|
|
class Dashboard(LoginRequiredMixin, TemplateView):
|
|
template_name = 'dashboard/dashboard.html'
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super(Dashboard, self).get_context_data(**kwargs)
|
|
context['objects'] = Child.objects.all().order_by('last_name')
|
|
return context
|
|
|
|
|
|
class ChildDashboard(PermissionRequiredMixin, DetailView):
|
|
model = Child
|
|
permission_required = ('core.view_child',)
|
|
template_name = 'dashboard/child.html'
|