diff --git a/databaseReset.py b/databaseReset.py index 434eb5f..4b3c91c 100644 --- a/databaseReset.py +++ b/databaseReset.py @@ -17,6 +17,10 @@ user.is_staff = True user.is_superuser = True user.save() +#Make directories that troggle requires +if not os.path.isdir(settings.PHOTOS_ROOT): + os.mkdir(settings.PHOTOS_ROOT) + import parsers.cavetab parsers.cavetab.LoadCaveTab() import parsers.people diff --git a/expo/models.py b/expo/models.py index 35d7431..59d0e11 100644 --- a/expo/models.py +++ b/expo/models.py @@ -461,7 +461,7 @@ class QM(TroggleModel): QMnumber=str(self.found_by.cave)+'-'+str(self.found_by.date.year)+"-"+str(self.number)+self.grade return str(QMnumber) -photoFileStorage = FileSystemStorage(location=settings.EXPOWEB+'photos', base_url=settings.PHOTOS_URL) +photoFileStorage = FileSystemStorage(location=settings.PHOTOS_ROOT, base_url=settings.PHOTOS_URL) class Photo(TroggleModel): caption = models.CharField(max_length=1000,blank=True,null=True) contains_person_trip = models.ManyToManyField(PersonTrip,blank=True,null=True) diff --git a/parsers/surveys.py b/parsers/surveys.py index 53632e8..ca2f153 100644 --- a/parsers/surveys.py +++ b/parsers/surveys.py @@ -13,7 +13,11 @@ import csv import re import datetime -surveytab = open(os.path.join(settings.SURVEYS, "Surveys.csv")) +try: + surveytab = open(os.path.join(settings.SURVEYS, "Surveys.csv")) +except IOError: + import cStringIO, urllib + surveytab = cStringIO.StringIO(urllib.urlopen(settings.SURVEYS + "download/Surveys.csv").read()) dialect=csv.Sniffer().sniff(surveytab.read()) surveytab.seek(0,0) surveyreader = csv.reader(surveytab,dialect=dialect) @@ -29,7 +33,7 @@ models.Survey.objects.all().delete() for survey in surveyreader: walletNumberLetter = re.match(r'(?P\d*)(?P[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'), @@ -43,15 +47,23 @@ for survey in surveyreader: pass surveyobj.save() print "added survey " + survey[header['Year']] + "#" + surveyobj.wallet_number + "\r", - + +def listdir(*directories): + try: + return os.listdir(os.path.join(settings.SURVEYS, *directories)) + except: + import urllib + url = settings.SURVEYS + reduce(lambda x, y: x + "/" + y, ["listdir"] + list(directories)) + folders = urllib.urlopen(url.replace("#", "%23")).readlines() + return [folder.rstrip(r"/") for folder in folders] + # add survey scans def parseSurveyScans(year): - yearPath=os.path.join(settings.SURVEYS, year.year) - yearFileList=os.listdir(yearPath) + yearFileList = listdir(year.year) for surveyFolder in yearFileList: try: surveyNumber=re.match(r'\d\d\d\d#0*(\d+)',surveyFolder).groups() - scanList=os.listdir(os.path.join(yearPath,surveyFolder)) + scanList = listdir(year.year, surveyFolder) except AttributeError: print surveyFolder + " ignored", continue diff --git a/settings.py b/settings.py index b3550d7..e5c2101 100644 --- a/settings.py +++ b/settings.py @@ -33,7 +33,7 @@ USE_I18N = True # trailing slash. # Examples: "http://foo.com/media/", "/media/". ADMIN_MEDIA_PREFIX = '/troggle/media-admin/' -PHOTOS = os.path.join(EXPOWEB, 'photos') +PHOTOS_ROOT = os.path.join(EXPOWEB, 'photos') MEDIA_URL = URL_ROOT+'/site_media/' SURVEYS_URL = URL_ROOT+'/survey_scans/' PHOTOS_URL = URL_ROOT+'/photos/' diff --git a/urls.py b/urls.py index 49eb1b3..42e611d 100644 --- a/urls.py +++ b/urls.py @@ -19,7 +19,7 @@ urlpatterns = patterns('', #(r'^person/(?P\d*)/?$', views_logbooks.person), url(r'^person/(?P[A-Z]*[a-z\-\']*)[^a-zA-Z]*(?P[A-Z]*[a-z\-]*)/?', views_logbooks.person, name="person"), #url(r'^person/(\w+_\w+)$', views_logbooks.person, name="person"), - + url(r'^expedition/(\d+)$', views_logbooks.expedition, name="expedition"), url(r'^personexpedition/(?P[A-Z]*[a-z]*)[^a-zA-Z]*(?P[A-Z]*[a-z]*)/(?P\d+)/?$', views_logbooks.personexpedition, name="personexpedition"), url(r'^logbookentry/(.+)$', views_logbooks.logbookentry,name="logbookentry"), @@ -76,5 +76,5 @@ urlpatterns = patterns('', {'document_root': settings.SURVEYS, 'show_indexes':True}), (r'^photos/(?P.*)$', 'django.views.static.serve', - {'document_root': settings.PHOTOS, 'show_indexes':True}), + {'document_root': settings.PHOTOS_ROOT, 'show_indexes':True}), )