mirror of https://github.com/snachodog/mybuddy.git
Include past three methods is Last Feeding Method card (#117)
This commit is contained in:
parent
785b87f66d
commit
cb1712377b
|
@ -4,9 +4,35 @@
|
||||||
{% block header %}{% trans "Last Feeding Method" %}{% endblock %}
|
{% block header %}{% trans "Last Feeding Method" %}{% endblock %}
|
||||||
|
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{% if feeding %}
|
{% if feedings|length > 0 %}
|
||||||
<div class="display-4 text-center">{{ feeding.get_method_display }}</div>
|
<div id="feeding-methods-carousel" class="carousel slide" data-interval="false">
|
||||||
|
<div class="carousel-inner">
|
||||||
|
{% for feeding in feedings %}
|
||||||
|
<div class="carousel-item{% if forloop.counter == feedings|length %} active{% endif %}">
|
||||||
|
<div class="display-4 text-center">{{ feeding.get_method_display }}</div>
|
||||||
|
<div class="text-center small text-muted">
|
||||||
|
{% if forloop.last %}
|
||||||
|
{% trans "most recent" %}
|
||||||
|
{% else %}
|
||||||
|
{% blocktrans trimmed with n=forloop.revcounter0 plural=forloop.revcounter0|pluralize %}
|
||||||
|
{{ n }} feeding{{ plural }} ago
|
||||||
|
{% endblocktrans %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<a class="carousel-control-prev" href="#feeding-methods-carousel" role="button" data-slide="prev">
|
||||||
|
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||||
|
<span class="sr-only">{% trans "Previous" %}</span>
|
||||||
|
</a>
|
||||||
|
<a class="carousel-control-next" href="#feeding-methods-carousel" role="button" data-slide="next">
|
||||||
|
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||||
|
<span class="sr-only">{% trans "Next" %}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% trans "None" %}
|
{% trans "None" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -79,13 +79,14 @@ def card_feeding_last(child):
|
||||||
@register.inclusion_tag('cards/feeding_last_method.html')
|
@register.inclusion_tag('cards/feeding_last_method.html')
|
||||||
def card_feeding_last_method(child):
|
def card_feeding_last_method(child):
|
||||||
"""
|
"""
|
||||||
Information about the most recent feeding method.
|
Information about the three most recent feeding methods.
|
||||||
:param child: an instance of the Child model.
|
:param child: an instance of the Child model.
|
||||||
:returns: a dictionary with the most recent Feeding instance.
|
:returns: a dictionary with the most recent Feeding instances.
|
||||||
"""
|
"""
|
||||||
instance = models.Feeding.objects.filter(child=child) \
|
instances = models.Feeding.objects.filter(child=child) \
|
||||||
.order_by('-end').first()
|
.order_by('-end')[:3]
|
||||||
return {'type': 'feeding', 'feeding': instance}
|
# Results are reversed for carousel forward/back behavior.
|
||||||
|
return {'type': 'feeding', 'feedings': list(reversed(instances))}
|
||||||
|
|
||||||
|
|
||||||
@register.inclusion_tag('cards/sleep_last.html')
|
@register.inclusion_tag('cards/sleep_last.html')
|
||||||
|
|
|
@ -53,11 +53,13 @@ class TemplateTagsTestCase(TestCase):
|
||||||
self.assertEqual(data['feeding'], models.Feeding.objects.first())
|
self.assertEqual(data['feeding'], models.Feeding.objects.first())
|
||||||
|
|
||||||
def test_card_feeding_last_method(self):
|
def test_card_feeding_last_method(self):
|
||||||
data = cards.card_feeding_last(self.child)
|
data = cards.card_feeding_last_method(self.child)
|
||||||
self.assertEqual(data['type'], 'feeding')
|
self.assertEqual(data['type'], 'feeding')
|
||||||
self.assertIsInstance(data['feeding'], models.Feeding)
|
self.assertEqual(len(data['feedings']), 3)
|
||||||
|
for feeding in data['feedings']:
|
||||||
|
self.assertIsInstance(feeding, models.Feeding)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
data['feeding'].method,
|
data['feedings'][2].method,
|
||||||
models.Feeding.objects.first().method)
|
models.Feeding.objects.first().method)
|
||||||
|
|
||||||
def test_card_sleep_last(self):
|
def test_card_sleep_last(self):
|
||||||
|
|
Loading…
Reference in New Issue