From d2192ffd21c16ebd1ca5b39ecd489241201ecd20 Mon Sep 17 00:00:00 2001 From: Philip Sargent <philip.sargent@klebos.com> Date: Thu, 28 May 2020 02:09:36 +0100 Subject: [PATCH] delete duplication --- core/management/commands/reset_db.py | 174 ++------------------------- databaseReset.py | 6 + 2 files changed, 16 insertions(+), 164 deletions(-) diff --git a/core/management/commands/reset_db.py b/core/management/commands/reset_db.py index c55a0b1..2aea94a 100644 --- a/core/management/commands/reset_db.py +++ b/core/management/commands/reset_db.py @@ -1,187 +1,33 @@ -from django.core.management.base import BaseCommand, CommandError -from optparse import make_option -from troggle.core.models import Cave -import settings import os +from optparse import make_option from django.db import connection from django.core import management -from django.contrib.auth.models import User from django.core.urlresolvers import reverse +from django.core.management.base import BaseCommand, CommandError +from django.contrib.auth.models import User + from troggle.core.models import Cave, Entrance import troggle.flatpages.models +import settings + """Pretty much all of this is now replaced by databaseRest.py -I don't know why this still exists +I don't know why this still exists. Needs testing to see if +removing it makes django misbehave. """ -databasename=settings.DATABASES['default']['NAME'] -expouser=settings.EXPOUSER -expouserpass=settings.EXPOUSERPASS -expouseremail=settings.EXPOUSER_EMAIL class Command(BaseCommand): - help = 'This is normal usage, clear database and reread everything' + help = 'Removed as redundant - use databaseReset.py' option_list = BaseCommand.option_list + ( make_option('--reset', action='store_true', dest='reset', default=False, - help='Reset the entier DB from files'), + help='Removed as redundant'), ) def handle(self, *args, **options): print(args) print(options) - if "desc" in args: - self.resetdesc() - elif "scans" in args: - self.import_surveyscans() - elif "caves" in args: - self.reload_db() - self.make_dirs() - self.pageredirects() - self.import_caves() - elif "people" in args: - self.import_people() - elif "QMs" in args: - self.import_QMs() - elif "tunnel" in args: - self.import_tunnelfiles() - elif options['reset']: - self.reset(self) - elif "survex" in args: - self.import_survex() - elif "survexpos" in args: - import parsers.survex - parsers.survex.LoadPos() - elif "logbooks" in args: - self.import_logbooks() - elif "autologbooks" in args: - self.import_auto_logbooks() - elif "dumplogbooks" in args: - self.dumplogbooks() - elif "writeCaves" in args: - self.writeCaves() - elif options['foo']: - self.stdout.write(self.style.WARNING('Tesing....')) - else: - #self.stdout.write("%s not recognised" % args) - #self.usage(options) - self.stdout.write("poo") - #print(args) - - def reload_db(obj): - if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3': - try: - os.remove(databasename) - except OSError: - pass - else: - cursor = connection.cursor() - cursor.execute("DROP DATABASE %s" % databasename) - cursor.execute("CREATE DATABASE %s" % databasename) - cursor.execute("ALTER DATABASE %s CHARACTER SET=utf8" % databasename) - cursor.execute("USE %s" % databasename) - management.call_command('migrate', interactive=False) - # management.call_command('syncdb', interactive=False) - user = User.objects.create_user(expouser, expouseremail, expouserpass) - user.is_staff = True - user.is_superuser = True - user.save() - - def make_dirs(obj): - """Make directories that troggle requires""" - pass - # should also deal with permissions here. - #if not os.path.isdir(settings.PHOTOS_ROOT): - #os.mkdir(settings.PHOTOS_ROOT) - - def import_caves(obj): - import parsers.caves - print("Importing Caves") - parsers.caves.readcaves() - - def import_people(obj): - import parsers.people - parsers.people.LoadPersonsExpos() - - def import_logbooks(obj): - # The below line was causing errors I didn't understand (it said LOGFILE was a string), and I couldn't be bothered to figure - # what was going on so I just catch the error with a try. - AC 21 May - try: - settings.LOGFILE.write('\nBegun importing logbooks at ' + time.asctime() + '\n' + '-' * 60) - except: - pass - - import parsers.logbooks - parsers.logbooks.LoadLogbooks() - - def import_survex(obj): - import parsers.survex - parsers.survex.LoadAllSurvexBlocks() - parsers.survex.LoadPos() - - def import_QMs(obj): - import parsers.QMs - - def import_surveys(obj): - import parsers.surveys - parsers.surveys.parseSurveys(logfile=settings.LOGFILE) - - def import_surveyscans(obj): - import parsers.surveys - parsers.surveys.LoadListScans() - - def import_tunnelfiles(obj): - import parsers.surveys - parsers.surveys.LoadTunnelFiles() - - def reset(self, mgmt_obj): - """ Wipe the troggle database and import everything from legacy data - """ - self.reload_db() - self.make_dirs() - self.pageredirects() - self.import_caves() - self.import_people() - self.import_surveyscans() - self.import_survex() - self.import_logbooks() - self.import_QMs() - try: - self.import_tunnelfiles() - except: - print("Tunnel files parser broken.") - - self.import_surveys() - - def pageredirects(obj): - for oldURL, newURL in [("indxal.htm", reverse("caveindex"))]: - f = troggle.flatpages.models.Redirect(originalURL=oldURL, newURL=newURL) - f.save() - - def writeCaves(obj): - for cave in Cave.objects.all(): - cave.writeDataFile() - for entrance in Entrance.objects.all(): - entrance.writeDataFile() - - def troggle_usage(obj): - print("""Usage is 'manage.py reset_db <command>' - where command is: - reset - this is normal usage, clear database and reread everything - desc - caves - read in the caves - logbooks - read in the logbooks - autologbooks - dumplogbooks - people - QMs - read in the QM files - resetend - scans - read in the scanned surveynotes - survex - read in the survex files - survexpos - tunnel - read in the Tunnel files - writeCaves - """) diff --git a/databaseReset.py b/databaseReset.py index e775eb7..24afdaa 100644 --- a/databaseReset.py +++ b/databaseReset.py @@ -123,6 +123,12 @@ def import_tunnelfiles(): #import logbooksdump #def import_auto_logbooks(): #def dumplogbooks(): + +#def writeCaves(): +# for cave in Cave.objects.all(): +# cave.writeDataFile() +# for entrance in Entrance.objects.all(): +# entrance.writeDataFile() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - class JobQueue():