forked from expo/troggle
[svn] switched from dodgy manually writing to logfile to using python's logging module, which seems great
This commit is contained in:
parent
7769a35f07
commit
f6d3a7c84e
@ -1,4 +1,4 @@
|
||||
import urllib, urlparse, string, os, datetime
|
||||
import urllib, urlparse, string, os, datetime, logging
|
||||
import troggle.mptt as mptt
|
||||
from django.forms import ModelForm
|
||||
from django.db import models
|
||||
@ -14,6 +14,10 @@ getcontext().prec=2 #use 2 significant figures for decimal calculations
|
||||
|
||||
from models_survex import *
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG,
|
||||
filename=settings.LOGFILE,
|
||||
filemode='w')
|
||||
|
||||
#This class is for adding fields and methods which all of our models will have.
|
||||
class TroggleModel(models.Model):
|
||||
new_since_parsing = models.BooleanField(default=False, editable=False)
|
||||
|
@ -1,12 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import troggle.expo.models as models
|
||||
from django.conf import settings
|
||||
import csv
|
||||
import time
|
||||
|
||||
import re
|
||||
import os
|
||||
|
||||
import csv, time, re, os, logging
|
||||
from troggle.save_carefully import save_carefully
|
||||
|
||||
##format of CAVETAB2.CSV is
|
||||
@ -136,20 +131,18 @@ def html_to_wiki(text):
|
||||
text2 = ""
|
||||
return out
|
||||
|
||||
def LoadCaveTab(logfile=settings.LOGFILE):
|
||||
def LoadCaveTab():
|
||||
cavetab = open(os.path.join(settings.EXPOWEB, "noinfo", "CAVETAB2.CSV"),'rU')
|
||||
caveReader = csv.reader(cavetab)
|
||||
caveReader.next() # Strip out column headers
|
||||
|
||||
if logfile:
|
||||
logfile.write("Beginning to import caves from "+str(cavetab)+"\n"+"-"*60+"\n")
|
||||
logging.info("Beginning to import caves from "+str(cavetab)+"\n"+"-"*60+"\n")
|
||||
|
||||
for katArea in ['1623', '1626']:
|
||||
if not models.Area.objects.filter(short_name = katArea):
|
||||
newArea = models.Area(short_name = katArea)
|
||||
newArea.save()
|
||||
if logfile:
|
||||
logfile.write("Added area "+str(newArea.short_name)+"\n")
|
||||
logging.info("Added area "+str(newArea.short_name)+"\n")
|
||||
area1626 = models.Area.objects.filter(short_name = '1626')[0]
|
||||
area1623 = models.Area.objects.filter(short_name = '1623')[0]
|
||||
|
||||
@ -190,8 +183,7 @@ def LoadCaveTab(logfile=settings.LOGFILE):
|
||||
addToDefaultArgs(Notes, "notes")
|
||||
|
||||
newCave, created=save_carefully(models.Cave, lookupAttribs=args, nonLookupAttribs=defaultArgs)
|
||||
if logfile:
|
||||
logfile.write("Added cave "+str(newCave)+"\n")
|
||||
logging.info("Added cave "+str(newCave)+"\n")
|
||||
|
||||
#If we created a new cave, add the area to it. This does mean that if a cave's identifying features have not changed, areas will not be updated from csv.
|
||||
if created and line[Area]:
|
||||
@ -209,14 +201,14 @@ def LoadCaveTab(logfile=settings.LOGFILE):
|
||||
newCave.area.add(area1623)
|
||||
|
||||
newCave.save()
|
||||
if logfile:
|
||||
logfile.write("Added area "+line[Area]+" to cave "+str(newCave)+"\n")
|
||||
|
||||
logging.info("Added area "+line[Area]+" to cave "+str(newCave)+"\n")
|
||||
|
||||
if created and line[UnofficialName]:
|
||||
newUnofficialName = models.OtherCaveName(cave = newCave, name = line[UnofficialName])
|
||||
newUnofficialName.save()
|
||||
if logfile:
|
||||
logfile.write("Added unofficial name "+str(newUnofficialName)+" to cave "+str(newCave)+"\n")
|
||||
|
||||
logging.info("Added unofficial name "+str(newUnofficialName)+" to cave "+str(newCave)+"\n")
|
||||
|
||||
if created and line[MultipleEntrances] == '' or \
|
||||
line[MultipleEntrances] == 'entrance' or \
|
||||
@ -277,8 +269,8 @@ def LoadCaveTab(logfile=settings.LOGFILE):
|
||||
addToArgs(Bearings, 'bearings')
|
||||
newEntrance = models.Entrance(**args)
|
||||
newEntrance.save()
|
||||
if logfile:
|
||||
logfile.write("Added entrance "+str(newEntrance)+"\n")
|
||||
|
||||
logging.info("Added entrance "+str(newEntrance)+"\n")
|
||||
|
||||
if line[Entrances]:
|
||||
entrance_letter = line[Entrances]
|
||||
@ -287,8 +279,8 @@ def LoadCaveTab(logfile=settings.LOGFILE):
|
||||
|
||||
newCaveAndEntrance = models.CaveAndEntrance(cave = newCave, entrance = newEntrance, entrance_letter = entrance_letter)
|
||||
newCaveAndEntrance.save()
|
||||
if logfile:
|
||||
logfile.write("Added CaveAndEntrance "+str(newCaveAndEntrance)+"\n")
|
||||
|
||||
logging.info("Added CaveAndEntrance "+str(newCaveAndEntrance)+"\n")
|
||||
|
||||
|
||||
# lookup function modelled on GetPersonExpeditionNameLookup
|
||||
|
@ -1,6 +1,4 @@
|
||||
import sys
|
||||
import os
|
||||
import types
|
||||
import sys, os, types, logging
|
||||
#sys.path.append('C:\\Expo\\expoweb')
|
||||
#from troggle import *
|
||||
#os.environ['DJANGO_SETTINGS_MODULE']='troggle.settings'
|
||||
@ -26,7 +24,7 @@ def get_or_create_placeholder(year):
|
||||
placeholder_logbook_entry, newly_created = save_carefully(LogbookEntry, lookupAttribs, nonLookupAttribs)
|
||||
return placeholder_logbook_entry
|
||||
|
||||
def readSurveysFromCSV(logfile=None):
|
||||
def readSurveysFromCSV():
|
||||
try:
|
||||
surveytab = open(os.path.join(settings.SURVEYS, "Surveys.csv"))
|
||||
except IOError:
|
||||
@ -43,16 +41,16 @@ def readSurveysFromCSV(logfile=None):
|
||||
print "There are no expeditions in the database. Please run the logbook parser."
|
||||
sys.exit()
|
||||
|
||||
if logfile:
|
||||
logfile.write("Deleting all scanned images")
|
||||
|
||||
logging.info("Deleting all scanned images")
|
||||
ScannedImage.objects.all().delete()
|
||||
|
||||
if logfile:
|
||||
logfile.write("Deleting all survey objects")
|
||||
|
||||
logging.info("Deleting all survey objects")
|
||||
Survey.objects.all().delete()
|
||||
|
||||
if logfile:
|
||||
logfile.write("Beginning to import surveys from "+str(os.path.join(settings.SURVEYS, "Surveys.csv"))+"\n"+"-"*60+"\n")
|
||||
|
||||
logging.info("Beginning to import surveys from "+str(os.path.join(settings.SURVEYS, "Surveys.csv"))+"\n"+"-"*60+"\n")
|
||||
|
||||
for survey in surveyreader:
|
||||
#I hate this, but some surveys have a letter eg 2000#34a. The next line deals with that.
|
||||
@ -74,8 +72,8 @@ def readSurveysFromCSV(logfile=None):
|
||||
pass
|
||||
surveyobj.save()
|
||||
|
||||
if logfile:
|
||||
logfile.write("added survey " + survey[header['Year']] + "#" + surveyobj.wallet_number + "\r")
|
||||
|
||||
logging.info("added survey " + survey[header['Year']] + "#" + surveyobj.wallet_number + "\r")
|
||||
|
||||
def listdir(*directories):
|
||||
try:
|
||||
|
@ -1,4 +1,4 @@
|
||||
from settings import LOGFILE
|
||||
import logging
|
||||
|
||||
def save_carefully(objectType, lookupAttribs={}, nonLookupAttribs={}):
|
||||
"""Looks up instance using lookupAttribs and carries out the following:
|
||||
@ -18,14 +18,12 @@ def save_carefully(objectType, lookupAttribs={}, nonLookupAttribs={}):
|
||||
setattr(instance, k, v)
|
||||
instance.save()
|
||||
|
||||
if LOGFILE:
|
||||
if created:
|
||||
LOGFILE.write(unicode(instance)+u' was just added to the database for the first time. \n')
|
||||
logging.info(unicode(instance)+u' was just added to the database for the first time. \n')
|
||||
|
||||
if not created and instance.new_since_parsing:
|
||||
LOGFILE.write(unicode(instance)+" has been modified using Troggle, so the current script left it as is. \n")
|
||||
logging.info(unicode(instance)+" has been modified using Troggle, so the current script left it as is. \n")
|
||||
|
||||
if not created and not instance.new_since_parsing:
|
||||
LOGFILE.write(unicode(instance)+" existed in the database unchanged since last parse. It was overwritten by the current script. \n")
|
||||
LOGFILE.flush()
|
||||
logging.info(unicode(instance)+" existed in the database unchanged since last parse. It was overwritten by the current script. \n")
|
||||
return (instance, created)
|
@ -10,7 +10,7 @@
|
||||
<li>{{ job }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if settings.LOGFILE %}See the logfile at {{settings.LOGFILE.path}} for more information.{% endif %}
|
||||
{% if settings.LOGFILE %}See the logfile at {{settings.LOGFILE}} for more information.{% endif %}
|
||||
<a href="#" class="closeDiv">dismiss this message</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
Loading…
Reference in New Issue
Block a user