Skip to content
Snippets Groups Projects
Commit 8f8b4817 authored by Tanner Prestegard's avatar Tanner Prestegard Committed by GraceDB
Browse files

Adding custom delete method for superevents

Adding an optional "purge" for superevent deletion which removes
GroupObjectPermissions and deletes the data.
parent 3fe1346e
No related branches found
No related tags found
1 merge request!8Superevents
from django.db import models, IntegrityError
from django.urls import reverse
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
from django.conf import settings
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
......@@ -12,14 +13,14 @@ from core.time_utils import posixToGpsTime, gpsToUtc
from core.utils import int_to_letters, letters_to_int
from events.models import Event, SignoffBase, VOEventBase, EMObservationBase, \
EMFootprintBase
from core.utils import int_to_letters
from guardian.models import GroupObjectPermission
import datetime
from cStringIO import StringIO
from hashlib import sha1
import os
import re
import shutil
import logging
# Other setup
......@@ -147,6 +148,21 @@ class Superevent(CleanSaveModel, ModelToDictMixin, AutoIncrementModel):
self.preferred_event not in self.events.all()):
self.events.add(self.preferred_event)
def delete(self, purge=False, *args, **kwargs):
if purge:
# Delete data directory
if os.path.isdir(self.datadir):
shutil.rmtree(self.datadir)
# Delete GroupObjectPermissions
ctype = ContentType.objects.get_for_model(self.__class__)
gops = GroupObjectPermission.objects.filter(object_pk=self.pk,
content_type=ctype)
gops.delete()
# Call base class delete
super(Superevent, self).delete(*args, **kwargs)
def confirm_as_gw(self):
"""
Sets is_gw to True, calculates the gw_date_number in the database, and
......
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