import os import time import timeit import settings """Two currently unused functions. To be re-engineered to produce a logbook file in canonical post-2010 Parseloghtmltxt() format after importing from one of the older more artisanal formats which will then be retired. For example, 2003 used a unique HTML format and we should regularise this and deprecate the unique parser code Parseloghtml03(). """ os.environ['PYTHONPATH'] = settings.PYTHON_PATH os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') from django.core import management from django.db import connection, close_old_connections from django.contrib.auth.models import User from django.http import HttpResponse from django.urls import reverse from troggle.core.models_caves import Cave, Entrance import troggle.expopages.models # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - def import_auto_logbooks(): import os import troggle.parsers.logbooks for pt in troggle.core.models.PersonTrip.objects.all(): pt.delete() for lbe in troggle.core.models.LogbookEntry.objects.all(): lbe.delete() for expedition in troggle.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 definitive 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 troggle.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(str(output).encode( "utf-8" )) f.close() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -