From 831e5c9a5a70b4f405f32c7dbd37781d28b07ee3 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Sun, 6 Sep 2020 14:36:59 +0200 Subject: [PATCH] Add college field to Fellowship --- colleges/admin.py | 2 +- .../migrations/0017_fellowship_college.py | 19 ++++++++++++++ .../migrations/0018_fellowship_set_college.py | 25 +++++++++++++++++++ .../migrations/0019_auto_20200906_1436.py | 19 ++++++++++++++ colleges/models/fellowship.py | 14 +++++++++-- 5 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 colleges/migrations/0017_fellowship_college.py create mode 100644 colleges/migrations/0018_fellowship_set_college.py create mode 100644 colleges/migrations/0019_auto_20200906_1436.py diff --git a/colleges/admin.py b/colleges/admin.py index 0e75922d4..f0f5c4466 100644 --- a/colleges/admin.py +++ b/colleges/admin.py @@ -16,7 +16,7 @@ def fellowhip_is_active(fellowship): class FellowshipAdmin(admin.ModelAdmin): search_fields = ['contributor__user__last_name', 'contributor__user__first_name'] - list_display = ('__str__', 'guest', fellowhip_is_active, ) + list_display = ('__str__', 'college', 'guest', fellowhip_is_active, ) list_filter = ('guest',) fellowhip_is_active.boolean = True date_hierarchy = 'created' diff --git a/colleges/migrations/0017_fellowship_college.py b/colleges/migrations/0017_fellowship_college.py new file mode 100644 index 000000000..2f4b763f2 --- /dev/null +++ b/colleges/migrations/0017_fellowship_college.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2.11 on 2020-09-06 12:24 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('colleges', '0016_populate_colleges'), + ] + + operations = [ + migrations.AddField( + model_name='fellowship', + name='college', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='fellowships', to='colleges.College'), + ), + ] diff --git a/colleges/migrations/0018_fellowship_set_college.py b/colleges/migrations/0018_fellowship_set_college.py new file mode 100644 index 000000000..ed506d06a --- /dev/null +++ b/colleges/migrations/0018_fellowship_set_college.py @@ -0,0 +1,25 @@ +# Generated by Django 2.2.11 on 2020-09-06 12:25 + +from django.db import migrations + + +def assign_college(apps, schema_editor): + College = apps.get_model('colleges.College') + Fellowship = apps.get_model('colleges.Fellowship') + + for f in Fellowship.objects.all(): + college = College.objects.get(acad_field__slug=f.contributor.profile.discipline) + f.college = college + f.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('colleges', '0017_fellowship_college'), + ] + + operations = [ + migrations.RunPython(assign_college, + reverse_code=migrations.RunPython.noop), + ] diff --git a/colleges/migrations/0019_auto_20200906_1436.py b/colleges/migrations/0019_auto_20200906_1436.py new file mode 100644 index 000000000..e40bd7ae5 --- /dev/null +++ b/colleges/migrations/0019_auto_20200906_1436.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2.11 on 2020-09-06 12:36 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('colleges', '0018_fellowship_set_college'), + ] + + operations = [ + migrations.AlterField( + model_name='fellowship', + name='college', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='fellowships', to='colleges.College'), + ), + ] diff --git a/colleges/models/fellowship.py b/colleges/models/fellowship.py index 9553161ce..138589125 100644 --- a/colleges/models/fellowship.py +++ b/colleges/models/fellowship.py @@ -23,8 +23,18 @@ class Fellowship(TimeStampedModel): Submission, so it has a direct effect on the submission date. """ - contributor = models.ForeignKey('scipost.Contributor', on_delete=models.CASCADE, - related_name='fellowships') + college = models.ForeignKey( + 'colleges.College', + on_delete=models.PROTECT, + related_name='fellowships' + ) + + contributor = models.ForeignKey( + 'scipost.Contributor', + on_delete=models.CASCADE, + related_name='fellowships' + ) + start_date = models.DateField(null=True, blank=True) until_date = models.DateField(null=True, blank=True) -- GitLab