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 }}
+
+ +
+ + + + + + + + + + {% for activity in activity_series.activities.all %} + + + + + + {% empty %} + + + + {% endfor %} + +
Name
{{ activity }} + Details +
No records
+ +{% 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 %} + + +
+ + + + + + + + + + {% for activity_series in activity_series_list.all %} + + + + + + {% empty %} + + + + {% endfor %} + +
Name
{{ activity_series }} + Details +
No records
+ +{% 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 + + + + {% if request.user.is_superuser %}