diff options
author | Sam Wenham <sam@wenhams.co.uk> | 2019-03-30 13:58:38 +0000 |
---|---|---|
committer | Sam Wenham <sam@wenhams.co.uk> | 2019-03-30 13:58:38 +0000 |
commit | a4532a29da6c2a92553daeafbd3c7eca5b42f861 (patch) | |
tree | 49efb937e79620d1931ba21db86ca17a1fba36c7 /core/management/commands | |
parent | 705dd51f30bb764eda6efc480d97e2121ebab09f (diff) | |
download | troggle-a4532a29da6c2a92553daeafbd3c7eca5b42f861.tar.gz troggle-a4532a29da6c2a92553daeafbd3c7eca5b42f861.tar.bz2 troggle-a4532a29da6c2a92553daeafbd3c7eca5b42f861.zip |
Update new management command for DB reset
Switch to content_type from mimetype
Make DB reset not nuke so much
Tidy logbook parser
Diffstat (limited to 'core/management/commands')
-rw-r--r-- | core/management/commands/reset_db.py | 89 |
1 files changed, 45 insertions, 44 deletions
diff --git a/core/management/commands/reset_db.py b/core/management/commands/reset_db.py index 29f8e81..e95ddd9 100644 --- a/core/management/commands/reset_db.py +++ b/core/management/commands/reset_db.py @@ -2,6 +2,14 @@ from django.core.management.base import BaseCommand, CommandError from optparse import make_option from troggle.core.models import Cave import settings +import os + +from django.db import connection +from django.core import management +from django.contrib.auth.models import User +from django.core.urlresolvers import reverse +from troggle.core.models import Cave, Entrance +import troggle.flatpages.models databasename=settings.DATABASES['default']['NAME'] expouser=settings.EXPOUSER @@ -12,22 +20,13 @@ class Command(BaseCommand): help = 'This is normal usage, clear database and reread everything' option_list = BaseCommand.option_list + ( - make_option('--foo', + make_option('--reset', action='store_true', - dest='foo', + dest='reset', default=False, - help='test'), + help='Reset the entier DB from files'), ) - def add_arguments(self, parser): - - parser.add_argument( - '--foo', - action='store_true', - dest='foo', - help='Help text', - ) - def handle(self, *args, **options): print(args) print(options) @@ -46,8 +45,8 @@ class Command(BaseCommand): self.import_QMs() elif "tunnel" in args: self.import_tunnelfiles() - elif "reset" in args: - self.reset() + elif options['reset']: + self.reset(self) elif "survex" in args: self.import_survex() elif "survexpos" in args: @@ -61,13 +60,15 @@ class Command(BaseCommand): self.dumplogbooks() elif "writeCaves" in args: self.writeCaves() - elif "foo" in args: - self.stdout.write('Tesing....') + elif options['foo']: + self.stdout.write(self.style.WARNING('Tesing....')) else: - self.stdout.write("%s not recognised" % args) - self.usage(options) + #self.stdout.write("%s not recognised" % args) + #self.usage(options) + self.stdout.write("poo") + #print(args) - def reload_db(): + def reload_db(obj): if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3': try: os.remove(databasename) @@ -86,22 +87,22 @@ class Command(BaseCommand): user.is_superuser = True user.save() - def make_dirs(): + def make_dirs(obj): """Make directories that troggle requires""" # should also deal with permissions here. if not os.path.isdir(settings.PHOTOS_ROOT): os.mkdir(settings.PHOTOS_ROOT) - def import_caves(): + def import_caves(obj): import parsers.caves - print("importing caves") + print("Importing Caves") parsers.caves.readcaves() - def import_people(): + def import_people(obj): import parsers.people parsers.people.LoadPersonsExpos() - def import_logbooks(): + 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: @@ -112,57 +113,57 @@ class Command(BaseCommand): import parsers.logbooks parsers.logbooks.LoadLogbooks() - def import_survex(): + def import_survex(obj): import parsers.survex parsers.survex.LoadAllSurvexBlocks() parsers.survex.LoadPos() - def import_QMs(): + def import_QMs(obj): import parsers.QMs - def import_surveys(): + def import_surveys(obj): import parsers.surveys parsers.surveys.parseSurveys(logfile=settings.LOGFILE) - def import_surveyscans(): + def import_surveyscans(obj): import parsers.surveys parsers.surveys.LoadListScans() - def import_tunnelfiles(): + def import_tunnelfiles(obj): import parsers.surveys parsers.surveys.LoadTunnelFiles() - def reset(): + def reset(self, mgmt_obj): """ Wipe the troggle database and import everything from legacy data """ - reload_db() - make_dirs() - pageredirects() - import_caves() - import_people() - import_surveyscans() - import_survex() - import_logbooks() - import_QMs() + 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: - import_tunnelfiles() + self.import_tunnelfiles() except: print("Tunnel files parser broken.") - import_surveys() + self.import_surveys() - def pageredirects(): + def pageredirects(obj): for oldURL, newURL in [("indxal.htm", reverse("caveindex"))]: f = troggle.flatpages.models.Redirect(originalURL=oldURL, newURL=newURL) f.save() - def writeCaves(): + def writeCaves(obj): for cave in Cave.objects.all(): cave.writeDataFile() for entrance in Entrance.objects.all(): entrance.writeDataFile() - def usage(self, parser): + 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 |