mirror of https://github.com/snachodog/mybuddy.git
Refactor naming pattern of simple "change" graphs
This commit is contained in:
parent
4445faeeac
commit
348e622321
|
@ -1,15 +1,13 @@
|
|||
from .pumping_amounts import pumping_amounts # NOQA
|
||||
from .bmi_change import bmi_change # NOQA
|
||||
from .diaperchange_amounts import diaperchange_amounts # NOQA
|
||||
from .diaperchange_lifetimes import diaperchange_lifetimes # NOQA
|
||||
from .diaperchange_types import diaperchange_types # NOQA
|
||||
from .feeding_amounts import feeding_amounts # NOQA
|
||||
from .feeding_duration import feeding_duration # NOQA
|
||||
from .head_circumference_change import head_circumference_change # NOQA
|
||||
from .height_change import height_change # NOQA
|
||||
from .pumping_amounts import pumping_amounts # NOQA
|
||||
from .sleep_pattern import sleep_pattern # NOQA
|
||||
from .sleep_totals import sleep_totals # NOQA
|
||||
from .tummytime_duration import tummytime_duration # NOQA
|
||||
from .weight_weight import weight_weight # NOQA
|
||||
from .height_height import height_height # NOQA
|
||||
from .head_circumference_head_circumference import (
|
||||
head_circumference_head_circumference,
|
||||
) # NOQA
|
||||
from .bmi_bmi import bmi_bmi # NOQA
|
||||
from .weight_change import weight_change # NOQA
|
||||
|
|
|
@ -7,7 +7,7 @@ import plotly.graph_objs as go
|
|||
from reports import utils
|
||||
|
||||
|
||||
def bmi_bmi(objects):
|
||||
def bmi_change(objects):
|
||||
"""
|
||||
Create a graph showing bmi over time.
|
||||
:param objects: a QuerySet of BMI instances.
|
|
@ -7,7 +7,7 @@ import plotly.graph_objs as go
|
|||
from reports import utils
|
||||
|
||||
|
||||
def head_circumference_head_circumference(objects):
|
||||
def head_circumference_change(objects):
|
||||
"""
|
||||
Create a graph showing head_circumference over time.
|
||||
:param objects: a QuerySet of Head Circumference instances.
|
|
@ -7,7 +7,7 @@ import plotly.graph_objs as go
|
|||
from reports import utils
|
||||
|
||||
|
||||
def height_height(objects):
|
||||
def height_change(objects):
|
||||
"""
|
||||
Create a graph showing height over time.
|
||||
:param objects: a QuerySet of Height instances.
|
|
@ -7,7 +7,7 @@ import plotly.graph_objs as go
|
|||
from reports import utils
|
||||
|
||||
|
||||
def weight_weight(objects):
|
||||
def weight_change(objects):
|
||||
"""
|
||||
Create a graph showing weight over time.
|
||||
:param objects: a QuerySet of Weight instances.
|
|
@ -7,19 +7,19 @@
|
|||
<div class="container-fluid">
|
||||
<h1>Reports</h1>
|
||||
<div class="list-group">
|
||||
<a href="{% url 'reports:report-bmi-bmi-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Body Mass Index (BMI)" %}</a>
|
||||
<a href="{% url 'reports:report-bmi-change-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Body Mass Index (BMI)" %}</a>
|
||||
<a href="{% url 'reports:report-diaperchange-amounts-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Diaper Change Amounts" %}</a>
|
||||
<a href="{% url 'reports:report-diaperchange-types-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Diaper Change Types" %}</a>
|
||||
<a href="{% url 'reports:report-diaperchange-lifetimes-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Diaper Lifetimes" %}</a>
|
||||
<a href="{% url 'reports:report-feeding-amounts-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Feeding Amounts" %}</a>
|
||||
<a href="{% url 'reports:report-feeding-duration-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Feeding Durations (Average)" %}</a>
|
||||
<a href="{% url 'reports:report-head-circumference-head-circumference-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Head Circumference" %}</a>
|
||||
<a href="{% url 'reports:report-height-height-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Height" %}</a>
|
||||
<a href="{% url 'reports:report-head-circumference-change-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Head Circumference" %}</a>
|
||||
<a href="{% url 'reports:report-height-change-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Height" %}</a>
|
||||
<a href="{% url 'reports:report-pumping-amounts-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Pumping Amounts" %}</a>
|
||||
<a href="{% url 'reports:report-sleep-pattern-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Sleep Pattern" %}</a>
|
||||
<a href="{% url 'reports:report-sleep-totals-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Sleep Totals" %}</a>
|
||||
<a href="{% url 'reports:report-tummytime-duration-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Tummy Time Durations (Sum)" %}</a>
|
||||
<a href="{% url 'reports:report-weight-weight-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Weight" %}</a>
|
||||
<a href="{% url 'reports:report-tummy-time-duration-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Tummy Time Durations (Sum)" %}</a>
|
||||
<a href="{% url 'reports:report-weight-change-child' object.slug %}" class="list-group-item list-group-item-action">{% trans "Weight" %}</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -35,7 +35,7 @@ class ViewsTestCase(TestCase):
|
|||
page = self.c.get(base_url)
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/pumping/amounts/".format(base_url))
|
||||
page = self.c.get("{}/bmi/bmi/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/changes/amounts/".format(base_url))
|
||||
|
@ -50,19 +50,22 @@ class ViewsTestCase(TestCase):
|
|||
page = self.c.get("{}/feeding/duration/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/sleep/pattern/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
page = self.c.get("{}/sleep/totals/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/weight/weight/".format(base_url))
|
||||
page = self.c.get("{}/head-circumference/head-circumference/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/height/height/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/head-circumference/head-circumference/".format(base_url))
|
||||
page = self.c.get("{}/pumping/amounts/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/bmi/bmi/".format(base_url))
|
||||
page = self.c.get("{}/sleep/pattern/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
page = self.c.get("{}/sleep/totals/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/tummy-time/duration/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
||||
page = self.c.get("{}/weight/weight/".format(base_url))
|
||||
self.assertEqual(page.status_code, 200)
|
||||
|
|
|
@ -12,9 +12,9 @@ urlpatterns = [
|
|||
name="report-list",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/pumping/amounts/",
|
||||
views.PumpingAmounts.as_view(),
|
||||
name="report-pumping-amounts-child",
|
||||
"children/<str:slug>/reports/bmi/bmi/",
|
||||
views.BMIChangeChildReport.as_view(),
|
||||
name="report-bmi-change-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/changes/amounts/",
|
||||
|
@ -36,11 +36,26 @@ urlpatterns = [
|
|||
views.FeedingAmountsChildReport.as_view(),
|
||||
name="report-feeding-amounts-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/head-circumference/head-circumference/",
|
||||
views.HeadCircumferenceChangeChildReport.as_view(),
|
||||
name="report-head-circumference-change-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/height/height/",
|
||||
views.HeightChangeChildReport.as_view(),
|
||||
name="report-height-change-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/feeding/duration/",
|
||||
views.FeedingDurationChildReport.as_view(),
|
||||
name="report-feeding-duration-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/pumping/amounts/",
|
||||
views.PumpingAmounts.as_view(),
|
||||
name="report-pumping-amounts-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/sleep/pattern/",
|
||||
views.SleepPatternChildReport.as_view(),
|
||||
|
@ -52,28 +67,13 @@ urlpatterns = [
|
|||
name="report-sleep-totals-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/tummytime/duration/",
|
||||
"children/<str:slug>/reports/tummy-time/duration/",
|
||||
views.TummyTimeDurationChildReport.as_view(),
|
||||
name="report-tummytime-duration-child",
|
||||
name="report-tummy-time-duration-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/weight/weight/",
|
||||
views.WeightWeightChildReport.as_view(),
|
||||
name="report-weight-weight-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/height/height/",
|
||||
views.HeightHeightChildReport.as_view(),
|
||||
name="report-height-height-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/head-circumference/head-circumference/",
|
||||
views.HeadCircumferenceHeadCircumferenceChildReport.as_view(),
|
||||
name="report-head-circumference-head-circumference-child",
|
||||
),
|
||||
path(
|
||||
"children/<str:slug>/reports/bmi/bmi/",
|
||||
views.BMIBMIChildReport.as_view(),
|
||||
name="report-bmi-bmi-child",
|
||||
views.WeightChangeChildReport.as_view(),
|
||||
name="report-weight-change-child",
|
||||
),
|
||||
]
|
||||
|
|
162
reports/views.py
162
reports/views.py
|
@ -7,6 +7,24 @@ from core import models
|
|||
from . import graphs
|
||||
|
||||
|
||||
class BMIChangeChildReport(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of BMI change over time.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/bmi_change.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(BMIChangeChildReport, self).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
objects = models.BMI.objects.filter(child=child)
|
||||
if objects:
|
||||
context["html"], context["js"] = graphs.bmi_change(objects)
|
||||
return context
|
||||
|
||||
|
||||
class ChildReportList(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Listing of available reports for a child.
|
||||
|
@ -17,24 +35,6 @@ class ChildReportList(PermissionRequiredMixin, DetailView):
|
|||
template_name = "reports/report_list.html"
|
||||
|
||||
|
||||
class PumpingAmounts(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of pumping milk amounts collected.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/pumping_amounts.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(PumpingAmounts, self).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
changes = models.Pumping.objects.filter(child=child)
|
||||
if changes and changes.count() > 0:
|
||||
context["html"], context["js"] = graphs.pumping_amounts(changes)
|
||||
return context
|
||||
|
||||
|
||||
class DiaperChangeAmounts(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of diaper "amounts" - measurements of urine output.
|
||||
|
@ -137,6 +137,65 @@ class FeedingDurationChildReport(PermissionRequiredMixin, DetailView):
|
|||
return context
|
||||
|
||||
|
||||
class HeadCircumferenceChangeChildReport(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of head circumference change over time.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/head_circumference_change.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(HeadCircumferenceChangeChildReport, self).get_context_data(
|
||||
**kwargs
|
||||
)
|
||||
child = context["object"]
|
||||
objects = models.HeadCircumference.objects.filter(child=child)
|
||||
if objects:
|
||||
(
|
||||
context["html"],
|
||||
context["js"],
|
||||
) = graphs.head_circumference_change(objects)
|
||||
return context
|
||||
|
||||
|
||||
class HeightChangeChildReport(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of height change over time.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/height_change.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(HeightChangeChildReport, self).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
objects = models.Height.objects.filter(child=child)
|
||||
if objects:
|
||||
context["html"], context["js"] = graphs.height_change(objects)
|
||||
return context
|
||||
|
||||
|
||||
class PumpingAmounts(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of pumping milk amounts collected.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/pumping_amounts.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(PumpingAmounts, self).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
changes = models.Pumping.objects.filter(child=child)
|
||||
if changes and changes.count() > 0:
|
||||
context["html"], context["js"] = graphs.pumping_amounts(changes)
|
||||
return context
|
||||
|
||||
|
||||
class SleepPatternChildReport(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of sleep pattern comparing sleep to wake times by day.
|
||||
|
@ -206,7 +265,7 @@ class TummyTimeDurationChildReport(PermissionRequiredMixin, DetailView):
|
|||
return context
|
||||
|
||||
|
||||
class WeightWeightChildReport(PermissionRequiredMixin, DetailView):
|
||||
class WeightChangeChildReport(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of weight change over time.
|
||||
"""
|
||||
|
@ -216,70 +275,9 @@ class WeightWeightChildReport(PermissionRequiredMixin, DetailView):
|
|||
template_name = "reports/weight_change.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(WeightWeightChildReport, self).get_context_data(**kwargs)
|
||||
context = super(WeightChangeChildReport, self).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
objects = models.Weight.objects.filter(child=child)
|
||||
if objects:
|
||||
context["html"], context["js"] = graphs.weight_weight(objects)
|
||||
return context
|
||||
|
||||
|
||||
class HeightHeightChildReport(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of height change over time.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/height_change.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(HeightHeightChildReport, self).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
objects = models.Height.objects.filter(child=child)
|
||||
if objects:
|
||||
context["html"], context["js"] = graphs.height_height(objects)
|
||||
return context
|
||||
|
||||
|
||||
class HeadCircumferenceHeadCircumferenceChildReport(
|
||||
PermissionRequiredMixin, DetailView
|
||||
):
|
||||
"""
|
||||
Graph of head circumference change over time.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/head_circumference_change.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(
|
||||
HeadCircumferenceHeadCircumferenceChildReport, self
|
||||
).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
objects = models.HeadCircumference.objects.filter(child=child)
|
||||
if objects:
|
||||
(
|
||||
context["html"],
|
||||
context["js"],
|
||||
) = graphs.head_circumference_head_circumference(objects)
|
||||
return context
|
||||
|
||||
|
||||
class BMIBMIChildReport(PermissionRequiredMixin, DetailView):
|
||||
"""
|
||||
Graph of BMI change over time.
|
||||
"""
|
||||
|
||||
model = models.Child
|
||||
permission_required = ("core.view_child",)
|
||||
template_name = "reports/bmi_change.html"
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(BMIBMIChildReport, self).get_context_data(**kwargs)
|
||||
child = context["object"]
|
||||
objects = models.BMI.objects.filter(child=child)
|
||||
if objects:
|
||||
context["html"], context["js"] = graphs.bmi_bmi(objects)
|
||||
context["html"], context["js"] = graphs.weight_change(objects)
|
||||
return context
|
||||
|
|
Loading…
Reference in New Issue