diff options
-rw-r--r-- | databaseReset.py | 4 | ||||
-rw-r--r-- | expo/models.py | 2 | ||||
-rw-r--r-- | parsers/surveys.py | 24 | ||||
-rw-r--r-- | settings.py | 2 | ||||
-rw-r--r-- | urls.py | 4 |
5 files changed, 26 insertions, 10 deletions
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<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'),
@@ -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/' @@ -19,7 +19,7 @@ urlpatterns = patterns('', #(r'^person/(?P<person_id>\d*)/?$', views_logbooks.person),
url(r'^person/(?P<first_name>[A-Z]*[a-z\-\']*)[^a-zA-Z]*(?P<last_name>[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<first_name>[A-Z]*[a-z]*)[^a-zA-Z]*(?P<last_name>[A-Z]*[a-z]*)/(?P<year>\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<path>.*)$', 'django.views.static.serve',
- {'document_root': settings.PHOTOS, 'show_indexes':True}),
+ {'document_root': settings.PHOTOS_ROOT, 'show_indexes':True}),
)
|