From e5d2589d14de58d056457dba3766d8e94c04c584 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Fri, 1 Mar 2019 12:37:37 +0100
Subject: [PATCH] Add temp management method to transfer PartnerEvent to
 OrgsEvent

---
 .../commands/transfer_partnerevents_data.py   | 33 +++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 organizations/management/commands/transfer_partnerevents_data.py

diff --git a/organizations/management/commands/transfer_partnerevents_data.py b/organizations/management/commands/transfer_partnerevents_data.py
new file mode 100644
index 000000000..94f953ed6
--- /dev/null
+++ b/organizations/management/commands/transfer_partnerevents_data.py
@@ -0,0 +1,33 @@
+__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
+__license__ = "AGPL v3"
+
+
+from django.core.management.base import BaseCommand
+
+from partners.models import Partner
+
+from organizations.models import OrganizationEvent
+
+
+class Command(BaseCommand):
+    help = ('For Partners, transfer the data of partners.PartnerEvent instances '
+            'to organizations.OrganizationEvent instances. '
+            'This is meant as a temporary, one-off method to be used during '
+            'deprecation of (Prospective)Partners.')
+
+    def handle(self, *args, **kwargs):
+        for partner in Partner.objects.all():
+            for partnerevent in partner.events.all():
+                event_kind = 'comment'
+                if partnerevent.event == 'initial':
+                    event_kind = 'email_sent'
+                elif partnerevent.event == 'status_update':
+                    event_kind = 'status_updated'
+                event = OrganizationEvent(
+                    organization=partner.organization,
+                    event=event_kind,
+                    comments=partnerevent.comments,
+                    noted_on=partnerevent.noted_on,
+                    noted_by=partnerevent.noted_by)
+                event.save()
+                partnerevent.delete()
-- 
GitLab