Obscure timer-child relations for one child use case

This commit is contained in:
Christopher C. Wells 2020-01-28 22:15:55 -08:00 committed by Christopher Charbonneau Wells
parent 6662d1036d
commit e5a5e330b9
3 changed files with 18 additions and 4 deletions

View File

@ -435,8 +435,13 @@ class Timer(models.Model):
@property
def title_with_child(self):
return format_lazy('{title} ({child})', title=str(self),
""" Get Timer title with child name in parenthesis. """
title = str(self)
# Only actually add the name if there is more than one Child instance.
if title and self.child and Child.count() > 1:
title = format_lazy('{title} ({child})', title=title,
child=self.child)
return title
@classmethod
def from_db(cls, db, field_names, values):

View File

@ -27,7 +27,13 @@
{% for timer in object_list %}
<tr>
<th scope="row"><a href="{% url 'core:timer-detail' timer.id %}">{{ timer }}</a></th>
<td><a href="{% url 'core:child' timer.child.slug %}">{{ timer.child }}</a></td>
<td>
{% if timer.child %}
<a href="{% url 'core:child' timer.child.slug %}">{{ timer.child }}</a>
{% else %}
&nbsp;
{% endif %}
</td>
<td>{{ timer.start }}</td>
<td>{{ timer.duration|duration_string }}</td>
<td>{{ timer.end }}</td>

View File

@ -297,6 +297,9 @@ class TimerAddQuick(PermissionRequired403Mixin, RedirectView):
def get(self, request, *args, **kwargs):
instance = models.Timer.objects.create(user=request.user)
# Add child relationship if there is only Child instance.
if models.Child.count() == 1:
instance.child = models.Child.objects.first()
instance.save()
self.url = request.GET.get(
'next', reverse('core:timer-detail', args={instance.id}))