diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:52:15 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:52:15 +0100 |
commit | d25fd97864611c3be326412ae4aa84e8ad01cd66 (patch) | |
tree | 0062d37e453ad21f98411f9a208e3c6b344412c7 /parsers | |
parent | 3b35b6bb76f41f9c086e43d31f45aee25403a507 (diff) | |
download | troggle-d25fd97864611c3be326412ae4aa84e8ad01cd66.tar.gz troggle-d25fd97864611c3be326412ae4aa84e8ad01cd66.tar.bz2 troggle-d25fd97864611c3be326412ae4aa84e8ad01cd66.zip |
[svn] My crusade to make our project more Djangoic.
Got rid of the url tags in template, replaced them with get_absolute_url method calls where possible. Adding get_absolute_url in models enables direct link to the public model views in admin. The use of get_absolute_url, which is the correct Django way of doing things, eliminates any need for the redundant "href" fields we were using. Those fields now need to be deleted from the models and from the parsers.
Made the context processor to pass settings to all templates actually work, although this was a little uglier than expected. I had to put in a new render_response to replace render_to_response. This is because Django uses Context, not RequestContext by default. I wish they would change this, it's annoying. Anyway, I deleted all the manual settings passing in the views.
I also eliminated a couple of unnecessary methods and stuff like that.
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8244 by aaron @ 2/16/2009 8:31 AM
Diffstat (limited to 'parsers')
-rw-r--r-- | parsers/people.py | 2 | ||||
-rw-r--r-- | parsers/surveys.py | 35 |
2 files changed, 15 insertions, 22 deletions
diff --git a/parsers/people.py b/parsers/people.py index 2fda46e..9c7940c 100644 --- a/parsers/people.py +++ b/parsers/people.py @@ -58,7 +58,7 @@ def LoadPersonsExpos(): years = headers[5:] years.append("2008") for year in years: - expedition = models.Expedition(year = year, name = "CUCC expo%s" % year) + expedition = models.Expedition(year = year, name = "CUCC expo %s" % year) expedition.save() diff --git a/parsers/surveys.py b/parsers/surveys.py index 687bbb0..cd9781b 100644 --- a/parsers/surveys.py +++ b/parsers/surveys.py @@ -1,28 +1,24 @@ import sys
import os
-import urllib
import types
-#sys.path.append('C:\\Expo\\expoweb')
+sys.path.append('C:\\Expo\\expoweb')
from troggle import *
-#os.environ['DJANGO_SETTINGS_MODULE']='troggle.settings'
+os.environ['DJANGO_SETTINGS_MODULE']='troggle.settings'
import troggle.settings as settings
import troggle.expo.models as models
-import troggle.expo.fileAbstraction as fileAbstraction
#import settings
#import expo.models as models
import csv
import re
import datetime
-import cStringIO
-surveytab = fileAbstraction.readFile("Surveys.csv")
-dialect=csv.Sniffer().sniff(surveytab)
-surveyreader = csv.reader(cStringIO.StringIO(surveytab),dialect=dialect)
-print surveyreader
+surveytab = open(os.path.join(settings.SURVEYS, "Surveys.csv"))
+dialect=csv.Sniffer().sniff(surveytab.read())
+surveytab.seek(0,0)
+surveyreader = csv.reader(surveytab,dialect=dialect)
headers = surveyreader.next()
header = dict(zip(headers, range(len(headers)))) #set up a dictionary where the indexes are header names and the values are column numbers
-print header
# test if the expeditions have been added yet
if len(models.Expedition.objects.all())==0:
@@ -31,10 +27,9 @@ if len(models.Expedition.objects.all())==0: models.ScannedImage.objects.all().delete()
models.Survey.objects.all().delete()
for survey in surveyreader:
- print type(survey), survey
walletNumberLetter = re.match(r'(?P<number>\d*)(?P<letter>[a-zA-Z]*)',survey[header['Survey Number']]) #I hate this, but some surveys have a letter eg 2000#34a. This line deals with that.
# print walletNumberLetter.groups()
-
+
surveyobj = models.Survey(
expedition = models.Expedition.objects.filter(year=survey[header['Year']])[0],
wallet_number = walletNumberLetter.group('number'),
@@ -48,16 +43,15 @@ for survey in surveyreader: pass
surveyobj.save()
print "added survey " + survey[header['Year']] + "#" + surveyobj.wallet_number
-
+
# add survey scans
def parseSurveyScans(year):
- yearDirList = fileAbstraction.dirsAsList(year.year)
- for surveyFolder in yearDirList:
- print surveyFolder
+ yearPath=os.path.join(settings.SURVEYS, year.year)
+ yearFileList=os.listdir(yearPath)
+ for surveyFolder in yearFileList:
try:
surveyNumber=re.match(r'\d\d\d\d#0*(\d+)',surveyFolder).groups()
- scanList=fileAbstraction.filesAsList(year.year, surveyFolder)
- print "BAR: ", year.year, surveyFolder, scanList
+ scanList=os.listdir(os.path.join(yearPath,surveyFolder))
except AttributeError:
print surveyFolder + " ignored"
continue
@@ -65,7 +59,6 @@ def parseSurveyScans(year): for scan in scanList:
try:
scanChopped=re.match(r'(?i).*(notes|elev|plan|elevation|extend)(\d*)\.(png|jpg|jpeg)',scan).groups()
- print "BAR: ", scanChopped
scanType,scanNumber,scanFormat=scanChopped
except AttributeError:
print "Adding scans: " + scan + " ignored"
@@ -82,14 +75,14 @@ def parseSurveyScans(year): survey=models.Survey.objects.get_or_create(wallet_number=surveyNumber, expedition=year)[0]
except models.Survey.MultipleObjectsReturned:
survey=models.Survey.objects.filter(wallet_number=surveyNumber, expedition=year)[0]
-
+
scanObj = models.ScannedImage(
file=os.path.join(year.year, surveyFolder, scan),
contents=scanType,
number_in_wallet=scanNumber,
survey=survey
)
- print "Added scanned image at " + str(scanObj)
+ #print "Added scanned image at " + str(scanObj)
scanObj.save()
for year in models.Expedition.objects.filter(year__gte=2000): #expos since 2000, because paths and filenames were nonstandard before then
|