diff options
Diffstat (limited to 'parsers/QMs.py')
-rw-r--r-- | parsers/QMs.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/parsers/QMs.py b/parsers/QMs.py new file mode 100644 index 0000000..44c38c7 --- /dev/null +++ b/parsers/QMs.py @@ -0,0 +1,36 @@ +import csv +import settings +from expo.models import QM, LogbookEntry, Cave +from datetime import * +import re + +#sorry that the below code is ugly. I'll fix it sometime, really! - AC + +QM.objects.all().delete() + + + +def parseSteinbrQMs(): + try: + steinBr=Cave.objects.get(official_name="Steinbrückenhöhle") + except Cave.DoesNotExist: + print "Steinbruckenhoehle is not in the database. Please run parsers.cavetab first." + return + + + qmPath = settings.EXPOWEB+r"smkridge/204/qm.csv" + qmReader = csv.reader(open(qmPath,'r'),dialect="excel-tab") + qmReader.next() # Skip header row + for line in qmReader: + year=int(line[0][1:5]) + + #check if placeholder exists for given year, create it if not + placeholder, hadToCreate = LogbookEntry.objects.get_or_create(date__year=year, text="placeholder for QMs in 204", defaults={"date": date(year, 1, 1),"cave":steinBr}) + if hadToCreate: + print "204 placeholder logbook entry for " + str(year) + " added to database" + QMnum=re.match(r".*?-\d*?-X?(?P<numb>\d*)",line[0]).group("numb") + newQM = QM(found_by=placeholder,number=QMnum,grade=line[1],area=line[2],location_description=line[3],nearest_station_description=line[4],completion_description=line[5],comment=line[6]) + newQM.save() + print "QM "+str(newQM) + " added to database" + +parseSteinbrQMs()
\ No newline at end of file |