summaryrefslogtreecommitdiffstats
path: root/expo
diff options
context:
space:
mode:
Diffstat (limited to 'expo')
-rw-r--r--expo/admin.py3
-rw-r--r--expo/models.py30
-rw-r--r--expo/randomLogbookSentance.py24
-rw-r--r--expo/views_other.py8
4 files changed, 57 insertions, 8 deletions
diff --git a/expo/admin.py b/expo/admin.py
index 4dc13e1..be517b8 100644
--- a/expo/admin.py
+++ b/expo/admin.py
@@ -8,7 +8,7 @@ class RoleInline(admin.TabularInline):
class SurvexBlockAdmin(admin.ModelAdmin):
inlines = (RoleInline,)
-
+admin.site.register(Photo)
admin.site.register(Cave)
admin.site.register(Area)
admin.site.register(OtherCaveName)
@@ -24,3 +24,4 @@ admin.site.register(Role)
admin.site.register(LogbookEntry)
admin.site.register(PersonTrip)
admin.site.register(QM)
+
diff --git a/expo/models.py b/expo/models.py
index 930028b..69f9549 100644
--- a/expo/models.py
+++ b/expo/models.py
@@ -27,8 +27,9 @@ class Expedition(models.Model):
class Person(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
- is_vfho = models.BooleanField()
+ is_vfho = models.BooleanField(help_text="VFHO is the Vereines für Höhlenkunde in Obersteier, a nearby Austrian caving club.")
mug_shot = models.CharField(max_length=100, blank=True,null=True)
+ blurb = models.TextField(blank=True,null=True)
def __unicode__(self):
return "%s %s" % (self.first_name, self.last_name)
@@ -55,7 +56,6 @@ class PersonExpedition(models.Model):
-
#class LogbookSentanceRating(models.Model):
# rating = models.IntegerField()
@@ -157,10 +157,7 @@ class LogbookEntry(models.Model):
author = models.ForeignKey(PersonExpedition,blank=True,null=True) # the person who writes it up doesn't have to have been on the trip
title = models.CharField(max_length=200)
cave = models.ForeignKey(Cave,blank=True,null=True)
- # this will be a foreign key of the place the logbook is describing - JT
place = models.CharField(max_length=100,blank=True,null=True)
- # adding optional cave reference
-# cave = models.ForeignKey(Cave,blank=True,null=True)
text = models.TextField()
# several PersonTrips point in to this object
@@ -273,4 +270,25 @@ class QM(models.Model):
#dateKilled = models.DateField(blank=True)
def __str__(self):
QMnumber=str(self.found_by.cave)+'-'+str(self.found_by.date.year)+"-"+str(self.number)+self.grade
- return str(QMnumber) \ No newline at end of file
+ return str(QMnumber)
+
+class Photo(models.Model):
+ caption = models.CharField(max_length=1000,blank=True,null=True)
+ contains_person_trip = models.ManyToManyField(PersonTrip,blank=True,null=True)
+ contains_person = models.ManyToManyField(Person,blank=True,null=True)
+ file = models.ImageField(upload_to='photos',)
+ is_mugshot = models.BooleanField(default=False)
+ contains_cave = models.ForeignKey(Cave,blank=True,null=True)
+ contains_entrance = models.ForeignKey(Entrance, related_name="photo_file",blank=True,null=True)
+ nearest_survey_point = models.ForeignKey(SurveyStation,blank=True,null=True)
+ nearest_QM = models.ForeignKey(QM,blank=True,null=True)
+
+
+ lon_utm = models.FloatField(blank=True,null=True)
+ lat_utm = models.FloatField(blank=True,null=True)
+ #content_type = models.ForeignKey(ContentType)
+ #object_id = models.PositiveIntegerField()
+ #location = generic.GenericForeignKey('content_type', 'object_id')
+
+ def __str__(self):
+ return self.caption
diff --git a/expo/randomLogbookSentance.py b/expo/randomLogbookSentance.py
new file mode 100644
index 0000000..d4d3f09
--- /dev/null
+++ b/expo/randomLogbookSentance.py
@@ -0,0 +1,24 @@
+import troggle.settings as settings
+from django import forms
+from expo.models import LogbookEntry
+import random
+import re
+
+def weighted_choice(lst):
+ n = random.uniform(0,1)
+ for item, weight in lst:
+ if n < weight:
+ break
+ n = n - weight
+ return item
+
+def randomLogbookSentence():
+ #Choose a random logbook entry
+ randSent={}
+ randSent['entry']=LogbookEntry.objects.order_by('?')[0]
+
+ #Choose a random sentence from that entry. Store the sentence as randSent['sentence'], and the number of that sentence in the entry as randSent['number']
+ sentenceList=re.findall('[A-Z].*?\.',randSent['entry'].text)
+ randSent['number']=random.randrange(0,len(sentenceList))
+ randSent['sentence']=sentenceList[randSent['number']]
+ return randSent \ No newline at end of file
diff --git a/expo/views_other.py b/expo/views_other.py
index 808238e..88a8559 100644
--- a/expo/views_other.py
+++ b/expo/views_other.py
@@ -3,6 +3,8 @@ from troggle.expo.models import Cave, Expedition, Person, LogbookEntry
import troggle.settings as settings
from django import forms
from django.db.models import Q
+import re
+import randSent
def stats(request):
statsDict={}
@@ -10,4 +12,8 @@ def stats(request):
statsDict['caveCount'] = int(Cave.objects.count())
statsDict['personCount'] = int(Person.objects.count())
statsDict['logbookEntryCount'] = int(LogbookEntry.objects.count())
- return render_to_response('statistics.html', statsDict) \ No newline at end of file
+ return render_to_response('statistics.html', statsDict)
+
+def frontPage(request):
+
+ return render_to_response('index.html', {'randSent':randSent.randomLogbookSentence(),'settings':settings}) \ No newline at end of file