diff --git a/dashboard/templates/cards/feeding_day.html b/dashboard/templates/cards/feeding_day.html
new file mode 100644
index 00000000..e67b2693
--- /dev/null
+++ b/dashboard/templates/cards/feeding_day.html
@@ -0,0 +1,18 @@
+{% extends 'cards/base.html' %}
+{% load duration i18n %}
+
+{% block header %}{% trans "Today's Feeding" %}{% endblock %}
+
+{% block title %}
+ {% if total %}
+ {{ total }}
+ {% else %}
+ {% trans "None" %}
+ {% endif %}
+{% endblock %}
+
+{% block content %}
+ {% if count > 0 %}
+ {% blocktrans %}{{ count }} feeding entries{% endblocktrans %}
+ {% endif %}
+{% endblock %}
\ No newline at end of file
diff --git a/dashboard/templates/dashboard/child.html b/dashboard/templates/dashboard/child.html
index 604de7b8..7ecfc0ed 100644
--- a/dashboard/templates/dashboard/child.html
+++ b/dashboard/templates/dashboard/child.html
@@ -13,6 +13,7 @@
{% card_feeding_last object %}
{% card_feeding_last_method object %}
+ {% card_feeding_day object %}
{% card_timer_list object %}
{% card_statistics object %}
{% card_sleep_last object %}
diff --git a/dashboard/templatetags/cards.py b/dashboard/templatetags/cards.py
index 78b2382c..9e324f10 100644
--- a/dashboard/templatetags/cards.py
+++ b/dashboard/templatetags/cards.py
@@ -68,6 +68,31 @@ def card_diaperchange_types(child, date=None):
return {'type': 'diaperchange', 'stats': stats, 'total': week_total}
+@register.inclusion_tag('cards/feeding_day.html')
+def card_feeding_day(child, date=None):
+ """
+ Filters Feeding instances to get total amount for a specific date.
+ :param child: an instance of the Child model.
+ :param date: a Date object for the day to filter.
+ :returns: a dict with count and total amount for the Feeding instances.
+ """
+ if not date:
+ date = timezone.localtime().date()
+ instances = models.Feeding.objects.filter(child=child).filter(
+ start__year=date.year,
+ start__month=date.month,
+ start__day=date.day) \
+ | models.Feeding.objects.filter(child=child).filter(
+ end__year=date.year,
+ end__month=date.month,
+ end__day=date.day)
+
+ total = sum([instance.amount for instance in instances if instance.amount])
+ count = len(instances)
+
+ return {'type': 'feeding', 'total': total, 'count': count}
+
+
@register.inclusion_tag('cards/feeding_last.html')
def card_feeding_last(child):
"""
diff --git a/dashboard/tests/tests_templatetags.py b/dashboard/tests/tests_templatetags.py
index dcd9fb74..36934f95 100644
--- a/dashboard/tests/tests_templatetags.py
+++ b/dashboard/tests/tests_templatetags.py
@@ -46,6 +46,12 @@ class TemplateTagsTestCase(TestCase):
}
self.assertEqual(data['stats'], stats)
+ def test_card_feeding_day(self):
+ data = cards.card_feeding_day(self.child, self.date)
+ self.assertEqual(data['type'], 'feeding')
+ self.assertEqual(data['total'], 2.5)
+ self.assertEqual(data['count'], 3)
+
def test_card_feeding_last(self):
data = cards.card_feeding_last(self.child)
self.assertEqual(data['type'], 'feeding')