summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-13 05:58:18 +0100
committersubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-13 05:58:18 +0100
commite8da6b9b8b0d5390d26832af42550c4e651a82dd (patch)
tree3839c6f56e0e502294b3c360d417facfdf33bf3d
parent4b34241a16af5e9cbfff0c3b2ede76394e94a3b5 (diff)
downloadtroggle-e8da6b9b8b0d5390d26832af42550c4e651a82dd.tar.gz
troggle-e8da6b9b8b0d5390d26832af42550c4e651a82dd.tar.bz2
troggle-e8da6b9b8b0d5390d26832af42550c4e651a82dd.zip
[svn] Further attempts to make troggle work on windows using surveys stored on an external server
settings.PHOTOS changed to setting.PHOTO_ROOT Made databaseReset.py get info from external server if appropriate (hope this did not break linus disk based scripts) Still needs more work, to get everything working Auto create photos directory if it does not already exist Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8262 by julian @ 3/2/2009 1:30 AM
-rw-r--r--databaseReset.py4
-rw-r--r--expo/models.py2
-rw-r--r--parsers/surveys.py24
-rw-r--r--settings.py2
-rw-r--r--urls.py4
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/'
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<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}),
)