feat(activities): Add read views for ActivitySeries

This commit is contained in:
James Graham
2020-02-19 13:34:59 +00:00
parent db57d3c08f
commit 0d5d04902e
7 changed files with 142 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
# Generated by Django 2.2.10 on 2020-02-19 13:32
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('activities', '0002_activity_type_medium'),
]
operations = [
migrations.AlterField(
model_name='activity',
name='series',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='activities', to='activities.ActivitySeries'),
),
]

View File

@@ -68,7 +68,8 @@ class Activity(models.Model):
blank=False, null=False)
#: Optional :class:`ActivitySeries` to which this activity belongs
series = models.ForeignKey(ActivitySeries, related_name='instances',
series = models.ForeignKey(ActivitySeries,
related_name='activities',
on_delete=models.PROTECT,
blank=True, null=True)

View File

@@ -0,0 +1,50 @@
{% extends 'base.html' %}
{% block content %}
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'activities:activity-series.list' %}">Activity Series</a>
</li>
<li class="breadcrumb-item active" aria-current="page">{{ object }}</li>
</ol>
</nav>
<hr>
<dl>
<dt>Type</dt>
<dd>{{ activity_series.type }}</dd>
<dt>Medium</dt>
<dd>{{ activity_series.medium }}</dd>
</dl>
<hr>
<table class="table table-borderless">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
{% for activity in activity_series.activities.all %}
<tr>
<td>{{ activity }}</td>
<td>
<a class="btn btn-sm btn-info"
href="{% url 'activities:activity.detail' pk=activity.pk %}">Details</a>
</td>
</tr>
{% empty %}
<tr>
<td>No records</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -0,0 +1,37 @@
{% extends 'base.html' %}
{% block content %}
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item active" aria-current="page">Activity Series</li>
</ol>
</nav>
<hr>
<table class="table table-borderless">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
{% for activity_series in activity_series_list.all %}
<tr>
<td>{{ activity_series }}</td>
<td>
<a class="btn btn-sm btn-info"
href="{% url 'activities:activity-series.detail' pk=activity_series.pk %}">Details</a>
</td>
</tr>
{% empty %}
<tr>
<td>No records</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

View File

@@ -6,6 +6,14 @@ from . import views
app_name = 'activities'
urlpatterns = [
path('activity-series',
views.ActivitySeriesListView.as_view(),
name='activity-series.list'),
path('activity-series/<int:pk>',
views.ActivitySeriesDetailView.as_view(),
name='activity-series.detail'),
path('activities',
views.ActivityListView.as_view(),
name='activity.list'),

View File

@@ -6,6 +6,24 @@ from django.views.generic import DetailView, ListView
from . import models
class ActivitySeriesListView(ListView):
"""
View displaying a list of :class:`ActivitySeries`.
"""
model = models.ActivitySeries
template_name = 'activities/activity_series/list.html'
context_object_name = 'activity_series_list'
class ActivitySeriesDetailView(DetailView):
"""
View displaying details of a single :class:`ActivitySeries`.
"""
model = models.ActivitySeries
template_name = 'activities/activity_series/detail.html'
context_object_name = 'activity_series'
class ActivityListView(ListView):
"""
View displaying a list of :class:`Activity`.