From dc1327674c2676db02ccf525725019cd9115b699 Mon Sep 17 00:00:00 2001 From: Wookey Date: Mon, 11 Jul 2011 02:10:22 +0100 Subject: remove all the DOS linefeeds --- databaseReset.py | 434 +++++++++++++++++++++++++++---------------------------- 1 file changed, 217 insertions(+), 217 deletions(-) (limited to 'databaseReset.py') diff --git a/databaseReset.py b/databaseReset.py index 52a646c..4a7aeb4 100644 --- a/databaseReset.py +++ b/databaseReset.py @@ -1,217 +1,217 @@ -import os -import time -import settings -os.environ['PYTHONPATH'] = settings.PYTHON_PATH -os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' -from django.core import management -from django.db import connection -from django.contrib.auth.models import User -from django.http import HttpResponse -from django.core.urlresolvers import reverse -import flatpages.models - - - -def reload_db(): - if settings.DATABASE_ENGINE == 'sqlite3': - try: - os.remove(settings.DATABASE_NAME) - except OSError: - pass - else: - cursor = connection.cursor() - cursor.execute("DROP DATABASE %s" % settings.DATABASE_NAME) - cursor.execute("CREATE DATABASE %s" % settings.DATABASE_NAME) - cursor.execute("ALTER DATABASE %s CHARACTER SET=utf8" % settings.DATABASE_NAME) - cursor.execute("USE %s" % settings.DATABASE_NAME) - management.call_command('syncdb', interactive=False) - user = User.objects.create_user('expo', 'goatchurch@gmail.com', 'gosser') - user.is_staff = True - user.is_superuser = True - user.save() - -def make_dirs(): - """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_cavetab(): - import parsers.cavetab - print "importing cavetab" - parsers.cavetab.LoadCaveTab() - -def import_people(): - import parsers.people - parsers.people.LoadPersonsExpos() - -def import_logbooks(): - # 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(): - import parsers.survex - parsers.survex.LoadAllSurvexBlocks() - parsers.survex.LoadPos() - -def import_QMs(): - import parsers.QMs - -def import_surveys(): - import parsers.surveys - parsers.surveys.parseSurveys(logfile=settings.LOGFILE) - -def import_surveyscans(): - import parsers.surveys - parsers.surveys.LoadListScans() - - -def import_descriptions(): - import parsers.descriptions - parsers.descriptions.getDescriptions() - -def parse_descriptions(): - import parsers.descriptions - parsers.descriptions.parseDescriptions() - parsers.descriptions.parseDescriptionsOnCaveObjects() - -def import_tunnelfiles(): - import parsers.surveys - parsers.surveys.LoadTunnelFiles() - - -def reset(): - """ Wipe the troggle database and import everything from legacy data - """ - reload_db() - make_dirs() - pageredirects() - import_cavetab() - import_people() - import_surveyscans() - import_survex() - import_logbooks() - import_QMs() - import_tunnelfiles() - - import_surveys() - import_descriptions() - parse_descriptions() - -def resetdesc(): - """ Wipe the troggle database and import descriptions - """ - import core.models - for desc in core.models.CaveDescription.objects.all(): - desc.delete() - import_descriptions() - parse_descriptions() - -def export_cavetab(): - from export import tocavetab - outfile=file(os.path.join(settings.EXPOWEB, "noinfo", "CAVETAB2.CSV"),'w') - tocavetab.writeCaveTab(outfile) - outfile.close() - -def import_auto_logbooks(): - import parsers.logbooks - import os - for pt in core.models.PersonTrip.objects.all(): - pt.delete() - for lbe in core.models.LogbookEntry.objects.all(): - lbe.delete() - for expedition in core.models.Expedition.objects.all(): - directory = os.path.join(settings.EXPOWEB, - "years", - expedition.year, - "autologbook") - for root, dirs, filenames in os.walk(directory): - for filename in filenames: - print os.path.join(root, filename) - parsers.logbooks.parseAutoLogBookEntry(os.path.join(root, filename)) - -#Temporary function until definative source of data transfered. -from django.template.defaultfilters import slugify -from django.template import Context, loader -def dumplogbooks(): - def get_name(pe): - if pe.nickname: - return pe.nickname - else: - return pe.person.first_name - for lbe in core.models.LogbookEntry.objects.all(): - dateStr = lbe.date.strftime("%Y-%m-%d") - directory = os.path.join(settings.EXPOWEB, - "years", - lbe.expedition.year, - "autologbook") - if not os.path.isdir(directory): - os.mkdir(directory) - filename = os.path.join(directory, - dateStr + "." + slugify(lbe.title)[:50] + ".html") - if lbe.cave: - print lbe.cave.reference() - trip = {"title": lbe.title, "html":lbe.text, "cave": lbe.cave.reference(), "caveOrLocation": "cave"} - else: - trip = {"title": lbe.title, "html":lbe.text, "location":lbe.place, "caveOrLocation": "location"} - pts = [pt for pt in lbe.persontrip_set.all() if pt.personexpedition] - persons = [{"name": get_name(pt.personexpedition), "TU": pt.time_underground, "author": pt.is_logbook_entry_author} for pt in pts] - f = open(filename, "wb") - template = loader.get_template('dataformat/logbookentry.html') - context = Context({'trip': trip, - 'persons': persons, - 'date': dateStr, - 'expeditionyear': lbe.expedition.year}) - output = template.render(context) - f.write(unicode(output).encode( "utf-8" )) - f.close() - -def pageredirects(): - for oldURL, newURL in [("indxal.htm", reverse("caveindex"))]: - f = flatpages.models.Redirect(originalURL = oldURL, newURL = newURL) - f.save() - -if __name__ == "__main__": - import core.models - import sys - if "desc" in sys.argv: - resetdesc() - elif "scans" in sys.argv: - import_surveyscans() - elif "caves" in sys.argv: - reload_db() - make_dirs() - pageredirects() - import_cavetab() - elif "QMs" in sys.argv: - import_QMs() - elif "tunnel" in sys.argv: - import_tunnelfiles() - elif "reset" in sys.argv: - reset() - elif "survex" in sys.argv: - management.call_command('syncdb', interactive=False) # this sets the path so that import settings works in import_survex - import_survex() - - elif "logbooks" in sys.argv: - management.call_command('syncdb', interactive=False) # this sets the path so that import settings works in import_survex - import_logbooks() - elif "autologbooks" in sys.argv: - import_auto_logbooks() - elif "dumplogbooks" in sys.argv: - dumplogbooks() - else: - print "Do 'python databaseReset.py reset'" - - - - +import os +import time +import settings +os.environ['PYTHONPATH'] = settings.PYTHON_PATH +os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' +from django.core import management +from django.db import connection +from django.contrib.auth.models import User +from django.http import HttpResponse +from django.core.urlresolvers import reverse +import flatpages.models + + + +def reload_db(): + if settings.DATABASE_ENGINE == 'sqlite3': + try: + os.remove(settings.DATABASE_NAME) + except OSError: + pass + else: + cursor = connection.cursor() + cursor.execute("DROP DATABASE %s" % settings.DATABASE_NAME) + cursor.execute("CREATE DATABASE %s" % settings.DATABASE_NAME) + cursor.execute("ALTER DATABASE %s CHARACTER SET=utf8" % settings.DATABASE_NAME) + cursor.execute("USE %s" % settings.DATABASE_NAME) + management.call_command('syncdb', interactive=False) + user = User.objects.create_user('expo', 'goatchurch@gmail.com', 'gosser') + user.is_staff = True + user.is_superuser = True + user.save() + +def make_dirs(): + """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_cavetab(): + import parsers.cavetab + print "importing cavetab" + parsers.cavetab.LoadCaveTab() + +def import_people(): + import parsers.people + parsers.people.LoadPersonsExpos() + +def import_logbooks(): + # 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(): + import parsers.survex + parsers.survex.LoadAllSurvexBlocks() + parsers.survex.LoadPos() + +def import_QMs(): + import parsers.QMs + +def import_surveys(): + import parsers.surveys + parsers.surveys.parseSurveys(logfile=settings.LOGFILE) + +def import_surveyscans(): + import parsers.surveys + parsers.surveys.LoadListScans() + + +def import_descriptions(): + import parsers.descriptions + parsers.descriptions.getDescriptions() + +def parse_descriptions(): + import parsers.descriptions + parsers.descriptions.parseDescriptions() + parsers.descriptions.parseDescriptionsOnCaveObjects() + +def import_tunnelfiles(): + import parsers.surveys + parsers.surveys.LoadTunnelFiles() + + +def reset(): + """ Wipe the troggle database and import everything from legacy data + """ + reload_db() + make_dirs() + pageredirects() + import_cavetab() + import_people() + import_surveyscans() + import_survex() + import_logbooks() + import_QMs() + import_tunnelfiles() + + import_surveys() + import_descriptions() + parse_descriptions() + +def resetdesc(): + """ Wipe the troggle database and import descriptions + """ + import core.models + for desc in core.models.CaveDescription.objects.all(): + desc.delete() + import_descriptions() + parse_descriptions() + +def export_cavetab(): + from export import tocavetab + outfile=file(os.path.join(settings.EXPOWEB, "noinfo", "CAVETAB2.CSV"),'w') + tocavetab.writeCaveTab(outfile) + outfile.close() + +def import_auto_logbooks(): + import parsers.logbooks + import os + for pt in core.models.PersonTrip.objects.all(): + pt.delete() + for lbe in core.models.LogbookEntry.objects.all(): + lbe.delete() + for expedition in core.models.Expedition.objects.all(): + directory = os.path.join(settings.EXPOWEB, + "years", + expedition.year, + "autologbook") + for root, dirs, filenames in os.walk(directory): + for filename in filenames: + print os.path.join(root, filename) + parsers.logbooks.parseAutoLogBookEntry(os.path.join(root, filename)) + +#Temporary function until definative source of data transfered. +from django.template.defaultfilters import slugify +from django.template import Context, loader +def dumplogbooks(): + def get_name(pe): + if pe.nickname: + return pe.nickname + else: + return pe.person.first_name + for lbe in core.models.LogbookEntry.objects.all(): + dateStr = lbe.date.strftime("%Y-%m-%d") + directory = os.path.join(settings.EXPOWEB, + "years", + lbe.expedition.year, + "autologbook") + if not os.path.isdir(directory): + os.mkdir(directory) + filename = os.path.join(directory, + dateStr + "." + slugify(lbe.title)[:50] + ".html") + if lbe.cave: + print lbe.cave.reference() + trip = {"title": lbe.title, "html":lbe.text, "cave": lbe.cave.reference(), "caveOrLocation": "cave"} + else: + trip = {"title": lbe.title, "html":lbe.text, "location":lbe.place, "caveOrLocation": "location"} + pts = [pt for pt in lbe.persontrip_set.all() if pt.personexpedition] + persons = [{"name": get_name(pt.personexpedition), "TU": pt.time_underground, "author": pt.is_logbook_entry_author} for pt in pts] + f = open(filename, "wb") + template = loader.get_template('dataformat/logbookentry.html') + context = Context({'trip': trip, + 'persons': persons, + 'date': dateStr, + 'expeditionyear': lbe.expedition.year}) + output = template.render(context) + f.write(unicode(output).encode( "utf-8" )) + f.close() + +def pageredirects(): + for oldURL, newURL in [("indxal.htm", reverse("caveindex"))]: + f = flatpages.models.Redirect(originalURL = oldURL, newURL = newURL) + f.save() + +if __name__ == "__main__": + import core.models + import sys + if "desc" in sys.argv: + resetdesc() + elif "scans" in sys.argv: + import_surveyscans() + elif "caves" in sys.argv: + reload_db() + make_dirs() + pageredirects() + import_cavetab() + elif "QMs" in sys.argv: + import_QMs() + elif "tunnel" in sys.argv: + import_tunnelfiles() + elif "reset" in sys.argv: + reset() + elif "survex" in sys.argv: + management.call_command('syncdb', interactive=False) # this sets the path so that import settings works in import_survex + import_survex() + + elif "logbooks" in sys.argv: + management.call_command('syncdb', interactive=False) # this sets the path so that import settings works in import_survex + import_logbooks() + elif "autologbooks" in sys.argv: + import_auto_logbooks() + elif "dumplogbooks" in sys.argv: + dumplogbooks() + else: + print "Do 'python databaseReset.py reset'" + + + + -- cgit v1.2.3