mirror of https://github.com/snachodog/mybuddy.git
Add basic timeline view (WIP)
This commit is contained in:
parent
39393dcc1b
commit
0990678325
|
@ -10,9 +10,8 @@
|
||||||
|
|
||||||
<div class="d-lg-none d-md-none d-flex ml-auto p-0 mr-2">
|
<div class="d-lg-none d-md-none d-flex ml-auto p-0 mr-2">
|
||||||
<div>
|
<div>
|
||||||
<!-- TODO: Actually link to the timeline... but for which child? -->
|
|
||||||
<a class="text-success"
|
<a class="text-success"
|
||||||
href="#"
|
href="{% url 'core:timeline' %}"
|
||||||
aria-expanded="false"><i class="icon icon-2x icon-timeline" aria-hidden="true"></i>
|
aria-expanded="false"><i class="icon icon-2x icon-timeline" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
@ -97,9 +96,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item{% if request.path == '/' %} active{% endif %}">
|
<li class="nav-item{% if request.path == '/timeline' %} active{% endif %}">
|
||||||
<!-- TODO: Actually link to the timeline... but for which child? -->
|
<a class="nav-link" href="{% url 'core:timeline' %}">
|
||||||
<a class="nav-link" href="{% url 'dashboard:dashboard' %}">
|
|
||||||
<i class="icon icon-timeline" aria-hidden="true"></i>
|
<i class="icon icon-timeline" aria-hidden="true"></i>
|
||||||
{% trans "Timeline" %}
|
{% trans "Timeline" %}
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
{% extends 'babybuddy/page.html' %}
|
||||||
|
{% load cards i18n static thumbnail %}
|
||||||
|
|
||||||
|
{% block title %}{% trans "Timeline" %}{% endblock %}
|
||||||
|
|
||||||
|
{% block breadcrumbs %}
|
||||||
|
<li class="breadcrumb-item font-weight-bold">{% trans "Timeline" %}</li>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{# TODO! #}
|
||||||
|
{% endblock %}
|
|
@ -20,6 +20,8 @@ urlpatterns = [
|
||||||
name='child-delete'
|
name='child-delete'
|
||||||
),
|
),
|
||||||
|
|
||||||
|
path('timeline/', views.Timeline.as_view(), name='timeline'),
|
||||||
|
|
||||||
path(
|
path(
|
||||||
'changes/',
|
'changes/',
|
||||||
views.DiaperChangeList.as_view(),
|
views.DiaperChangeList.as_view(),
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.contrib.messages.views import SuccessMessageMixin
|
from django.contrib.messages.views import SuccessMessageMixin
|
||||||
from django.forms import Form
|
from django.forms import Form
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from django.views.generic.base import RedirectView
|
from django.views.generic.base import RedirectView, TemplateView
|
||||||
from django.views.generic.detail import DetailView
|
from django.views.generic.detail import DetailView
|
||||||
from django.views.generic.edit import CreateView, UpdateView, DeleteView, \
|
from django.views.generic.edit import CreateView, UpdateView, DeleteView, \
|
||||||
FormView
|
FormView
|
||||||
|
@ -266,6 +267,28 @@ class TemperatureDelete(CoreDeleteView):
|
||||||
success_url = reverse_lazy('core:temperature-list')
|
success_url = reverse_lazy('core:temperature-list')
|
||||||
|
|
||||||
|
|
||||||
|
class Timeline(LoginRequiredMixin, TemplateView):
|
||||||
|
template_name = 'timeline/timeline.html'
|
||||||
|
|
||||||
|
# Show the overall timeline or a child timeline if one Child instance.
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
children = models.Child.objects.count()
|
||||||
|
if children == 1:
|
||||||
|
return HttpResponseRedirect(
|
||||||
|
reverse(
|
||||||
|
'core:child',
|
||||||
|
args={models.Child.objects.first().slug}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return super(Timeline, self).get(request, *args, **kwargs)
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super(Timeline, self).get_context_data(**kwargs)
|
||||||
|
# TODO: Get relevant data for a given day.
|
||||||
|
context['objects'] = models.Child.objects.all()
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
class TimerList(PermissionRequired403Mixin, BabyBuddyFilterView):
|
class TimerList(PermissionRequired403Mixin, BabyBuddyFilterView):
|
||||||
model = models.Timer
|
model = models.Timer
|
||||||
template_name = 'core/timer_list.html'
|
template_name = 'core/timer_list.html'
|
||||||
|
|
Loading…
Reference in New Issue