From db9859d9afc2bc8c545939da348b6284259087c2 Mon Sep 17 00:00:00 2001 From: James Graham Date: Fri, 14 Feb 2020 09:55:56 +0000 Subject: [PATCH] feat(activities): Add Activity models --- activities/__init__.py | 0 activities/admin.py | 3 +++ activities/apps.py | 5 ++++ activities/migrations/0001_initial.py | 36 +++++++++++++++++++++++++++ activities/migrations/__init__.py | 0 activities/models.py | 32 ++++++++++++++++++++++++ breccia_mapper/settings.py | 1 + 7 files changed, 77 insertions(+) create mode 100644 activities/__init__.py create mode 100644 activities/admin.py create mode 100644 activities/apps.py create mode 100644 activities/migrations/0001_initial.py create mode 100644 activities/migrations/__init__.py create mode 100644 activities/models.py diff --git a/activities/__init__.py b/activities/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/activities/admin.py b/activities/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/activities/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/activities/apps.py b/activities/apps.py new file mode 100644 index 0000000..39325dd --- /dev/null +++ b/activities/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ActivitiesConfig(AppConfig): + name = 'activities' diff --git a/activities/migrations/0001_initial.py b/activities/migrations/0001_initial.py new file mode 100644 index 0000000..b5ee5d1 --- /dev/null +++ b/activities/migrations/0001_initial.py @@ -0,0 +1,36 @@ +# Generated by Django 2.2.9 on 2020-02-14 09:47 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='ActivitySeries', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=1023)), + ], + options={ + 'verbose_name_plural': 'activity series', + }, + ), + migrations.CreateModel( + name='Activity', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=1023)), + ('series', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='instances', to='activities.ActivitySeries')), + ], + options={ + 'verbose_name_plural': 'activities', + }, + ), + ] diff --git a/activities/migrations/__init__.py b/activities/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/activities/models.py b/activities/models.py new file mode 100644 index 0000000..c66ba1a --- /dev/null +++ b/activities/models.py @@ -0,0 +1,32 @@ +from django.db import models + + +class ActivitySeries(models.Model): + """ + A series of related :class:`Activity`s + """ + + class Meta: + verbose_name_plural = 'activity series' + + #: Name of activity series + name = models.CharField(max_length=1023, + blank=False, null=False) + + +class Activity(models.Model): + """ + An instance of an activity - e.g. a workshop + """ + + class Meta: + verbose_name_plural = 'activities' + + #: Name of activity + name = models.CharField(max_length=1023, + blank=False, null=False) + + #: Optional :class:`ActivitySeries` to which this activity belongs + series = models.ForeignKey(ActivitySeries, related_name='instances', + on_delete=models.PROTECT, + blank=True, null=True) diff --git a/breccia_mapper/settings.py b/breccia_mapper/settings.py index a9f652e..ac01a23 100644 --- a/breccia_mapper/settings.py +++ b/breccia_mapper/settings.py @@ -72,6 +72,7 @@ THIRD_PARTY_APPS = [ FIRST_PARTY_APPS = [ 'people', + 'activities', ] INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + FIRST_PARTY_APPS