diff --git a/activities/migrations/0003_rename_activity_series_fk.py b/activities/migrations/0003_rename_activity_series_fk.py
new file mode 100644
index 0000000..c4e62d2
--- /dev/null
+++ b/activities/migrations/0003_rename_activity_series_fk.py
@@ -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'),
+ ),
+ ]
diff --git a/activities/models.py b/activities/models.py
index 286dc06..a5015eb 100644
--- a/activities/models.py
+++ b/activities/models.py
@@ -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)
diff --git a/activities/templates/activities/activity_series/detail.html b/activities/templates/activities/activity_series/detail.html
new file mode 100644
index 0000000..bc8b63a
--- /dev/null
+++ b/activities/templates/activities/activity_series/detail.html
@@ -0,0 +1,50 @@
+{% extends 'base.html' %}
+
+{% block content %}
+
+
+
+
+
+ - Type
+ - {{ activity_series.type }}
+
+ - Medium
+ - {{ activity_series.medium }}
+
+
+
+
+
+
+
+ | Name |
+
+
+
+
+ {% for activity in activity_series.activities.all %}
+
+ | {{ activity }} |
+
+ Details
+ |
+
+
+ {% empty %}
+
+ | No records |
+
+ {% endfor %}
+
+
+
+{% endblock %}
diff --git a/activities/templates/activities/activity_series/list.html b/activities/templates/activities/activity_series/list.html
new file mode 100644
index 0000000..f31b178
--- /dev/null
+++ b/activities/templates/activities/activity_series/list.html
@@ -0,0 +1,37 @@
+{% extends 'base.html' %}
+
+{% block content %}
+
+
+
+
+
+
+
+ | Name |
+
+
+
+
+ {% for activity_series in activity_series_list.all %}
+
+ | {{ activity_series }} |
+
+ Details
+ |
+
+
+ {% empty %}
+
+ | No records |
+
+ {% endfor %}
+
+
+
+{% endblock %}
diff --git a/activities/urls.py b/activities/urls.py
index 168516a..21039d7 100644
--- a/activities/urls.py
+++ b/activities/urls.py
@@ -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/',
+ views.ActivitySeriesDetailView.as_view(),
+ name='activity-series.detail'),
+
path('activities',
views.ActivityListView.as_view(),
name='activity.list'),
diff --git a/activities/views.py b/activities/views.py
index 8ed1ffb..ae1b1c4 100644
--- a/activities/views.py
+++ b/activities/views.py
@@ -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`.
diff --git a/breccia_mapper/templates/base.html b/breccia_mapper/templates/base.html
index ef0dc14..a456b5b 100644
--- a/breccia_mapper/templates/base.html
+++ b/breccia_mapper/templates/base.html
@@ -64,6 +64,14 @@
People
+
+ Activity Series
+
+
+
+ Activities
+
+
{% if request.user.is_superuser %}
Admin