From 6ea3cb23e2dd1d12e9868227d392660042a9e236 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Thu, 27 Jul 2017 10:30:22 +0200 Subject: [PATCH] Add permissions to old unvetted reports --- .../migrations/0061_auto_20170727_1012.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 submissions/migrations/0061_auto_20170727_1012.py diff --git a/submissions/migrations/0061_auto_20170727_1012.py b/submissions/migrations/0061_auto_20170727_1012.py new file mode 100644 index 000000000..af6a59d02 --- /dev/null +++ b/submissions/migrations/0061_auto_20170727_1012.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2017-07-27 08:12 +from __future__ import unicode_literals + +from django.db import migrations + +from guardian.shortcuts import assign_perm + +from ..models import Report + + +def do_nothing(apps, schema_editor): + return + + +def update_eic_permissions(apps, schema_editor): + """ + Grant EIC of submission related to unvetted Reports + permission to vet his submission's Report. + """ + # Report = apps.get_model('submissions', 'Report') -- This doesn't work due to shitty imports + count = 0 + for rep in Report.objects.filter(status='unvetted'): + eic_user = rep.submission.editor_in_charge + assign_perm('submissions.can_vet_submitted_reports', eic_user.user, rep) + count += 1 + print('\nGranted permission to %i Editor(s)-in-charge to vet related Reports.' % count) + + +class Migration(migrations.Migration): + + dependencies = [ + ('submissions', '0060_merge_20170726_0945'), + ] + + operations = [ + migrations.RunPython(update_eic_permissions, do_nothing), + ] -- GitLab