From 5e6065951f5cadf00baf7dca76033dd5ed95715d Mon Sep 17 00:00:00 2001 From: James Graham Date: Tue, 25 Feb 2020 08:52:11 +0000 Subject: [PATCH] feat(people): Add organisation field to Person See #1 --- .../0011_person_add_organisation.py | 26 +++++++++++++++++++ people/models.py | 13 ++++++++++ 2 files changed, 39 insertions(+) create mode 100644 people/migrations/0011_person_add_organisation.py diff --git a/people/migrations/0011_person_add_organisation.py b/people/migrations/0011_person_add_organisation.py new file mode 100644 index 0000000..1326e9c --- /dev/null +++ b/people/migrations/0011_person_add_organisation.py @@ -0,0 +1,26 @@ +# Generated by Django 2.2.10 on 2020-02-25 08:49 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('people', '0010_add_country_fields'), + ] + + operations = [ + migrations.CreateModel( + name='Organisation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ], + ), + migrations.AddField( + model_name='person', + name='organisation', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='members', to='people.Organisation'), + ), + ] diff --git a/people/models.py b/people/models.py index 7f5e64c..06c01ab 100644 --- a/people/models.py +++ b/people/models.py @@ -17,6 +17,14 @@ class User(AbstractUser): """ +class Organisation(models.Model): + """ + Organisation to which a :class:`Person` belongs. + """ + name = models.CharField(max_length=255, + blank=False, null=False) + + class Person(models.Model): """ A person may be a member of the BRECcIA core team or an external stakeholder. @@ -76,6 +84,11 @@ class Person(models.Model): nationality = CountryField(blank=True, null=True) country_of_residence = CountryField(blank=True, null=True) + + organisation = models.ForeignKey(Organisation, + on_delete=models.PROTECT, + related_name='members', + blank=True, null=True) @property def relationships(self):