SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit a66edb21 authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Remove temporary data transfer commands (job well done)

parent 5c577715
No related branches found
No related tags found
No related merge requests found
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
import datetime
from django.contrib.auth.models import Group
from django.core.management.base import BaseCommand
from django.utils import timezone
from guardian.shortcuts import assign_perm
from partners.models import Partner
from organizations.models import Contact, ContactRole
class Command(BaseCommand):
help = ('For Partners, transfer the data of partners.Contact instances '
'to organizations.Contact and ContactRole 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 oldcontact in partner.contact_set.all():
contact = Contact(
user=oldcontact.user,
title=oldcontact.title,
activation_key=oldcontact.activation_key,
key_expires=oldcontact.key_expires
)
contact.save()
# Assign permissions and Group
assign_perm('can_view_org_contacts', oldcontact.user, partner.organization)
orgcontacts = Group.objects.get(name='Organization Contacts')
oldcontact.user.groups.add(orgcontacts)
contactrole = ContactRole(
contact=contact,
organization=partner.organization,
kind=oldcontact.kind,
date_from=timezone.now(),
date_until=timezone.now() + datetime.timedelta(days=3650)
)
contactrole.save()
oldcontact.delete()
__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()
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from django.contrib.auth.models import User
from django.core.management.base import BaseCommand
from partners.models import ProspectivePartner
from organizations.models import OrganizationEvent, ContactPerson
class Command(BaseCommand):
help = ('For ProspectivePartners with a filled-in organization field, '
'transfer the data from ProspectiveContact to ContactPerson, '
'and ProspectivePartnerEvent to OrganizationEvent.')
def handle(self, *args, **kwargs):
for prospartner in ProspectivePartner.objects.filter(
organization__isnull=False):
for proscontact in prospartner.prospective_contacts.all():
contact = ContactPerson(
organization=prospartner.organization,
title=proscontact.title,
first_name=proscontact.first_name,
last_name=proscontact.last_name,
email=proscontact.email,
role=proscontact.role)
contact.save()
proscontact.delete()
oldman = User.objects.get(email='J.S.Caux@uva.nl')
for prosevent in prospartner.prospectivepartnerevent_set.all():
if prosevent.noted_by:
noted_by = prosevent.noted_by.user
else:
noted_by = oldman
event = OrganizationEvent(
organization=prospartner.organization,
event=prosevent.event,
comments=prosevent.comments,
noted_on=prosevent.noted_on,
noted_by=noted_by)
event.save()
prosevent.delete()
prospartner.delete()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment