optionally wifi measurements when the event data is purged

This commit is contained in:
Jenny Danzmayr 2019-11-27 20:39:31 +01:00
parent 6c390d0104
commit 9788c7154c
3 changed files with 29 additions and 3 deletions

View file

@ -11,13 +11,14 @@ class Command(BaseCommand):
help = 'Wipes users, changesets and mapupdates to reset a instance' help = 'Wipes users, changesets and mapupdates to reset a instance'
def add_arguments(self, parser): def add_arguments(self, parser):
parser.add_argument('--yes', action='store_const', const=True, default=False, parser.add_argument('--yes', action='store_true', help='really delete it')
help='really delete it') parser.add_argument('--wifi-measurements', action='store_true', help='delete wifi measurements')
def handle(self, *args, **options): def handle(self, *args, **options):
from c3nav.control.models import UserPermissions from c3nav.control.models import UserPermissions
from c3nav.mapdata.models import MapUpdate from c3nav.mapdata.models import MapUpdate
from c3nav.mapdata.models.access import AccessPermissionToken from c3nav.mapdata.models.access import AccessPermissionToken
from c3nav.mapdata.models.geometry.space import WifiMeasurement
from c3nav.editor.models import ChangeSet from c3nav.editor.models import ChangeSet
from c3nav.site.models import Announcement from c3nav.site.models import Announcement
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
@ -44,6 +45,10 @@ class Command(BaseCommand):
UserPermissions.objects.filter(user__is_superuser=False).delete() UserPermissions.objects.filter(user__is_superuser=False).delete()
logger.info('Deleted all UserPermissions not attached to a super user') logger.info('Deleted all UserPermissions not attached to a super user')
if options['wifi_measurements']:
WifiMeasurement.objects.all().delete()
logger.info('Deleted all WifiMeasurements')
get_user_model().objects.filter(is_superuser=False).delete() get_user_model().objects.filter(is_superuser=False).delete()
logger.info('Deleted all Users who are not a super user') logger.info('Deleted all Users who are not a super user')

View file

@ -0,0 +1,20 @@
# Generated by Django 2.1.3 on 2019-11-27 16:15
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0008_validate_slug'),
]
operations = [
migrations.AlterField(
model_name='wifimeasurement',
name='author',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='wifi_measurements', to=settings.AUTH_USER_MODEL, verbose_name='author'),
),
]

View file

@ -357,7 +357,8 @@ class WifiMeasurement(SpaceGeometryMixin, models.Model):
A Wi-Fi measurement A Wi-Fi measurement
""" """
geometry = GeometryField('point') geometry = GeometryField('point')
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, verbose_name=_('author')) author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True,
verbose_name=_('author'))
comment = models.TextField(null=True, blank=True, verbose_name=_('comment')) comment = models.TextField(null=True, blank=True, verbose_name=_('comment'))
data = JSONField(_('Measurement list')) data = JSONField(_('Measurement list'))