summaryrefslogtreecommitdiffstats
path: root/core/models.py
diff options
context:
space:
mode:
authorSam Wenham <sam@wenhams.co.uk>2020-02-24 15:04:07 +0000
committerSam Wenham <sam@wenhams.co.uk>2020-02-24 15:04:07 +0000
commit43dfe946b6385037141b94b775112037fe5f032f (patch)
tree72c352e67166f0702ab93d7063c902ff1bd2c621 /core/models.py
parent656ddcfe93061f2f82160ff8cc45b98d27e28bd3 (diff)
downloadtroggle-43dfe946b6385037141b94b775112037fe5f032f.tar.gz
troggle-43dfe946b6385037141b94b775112037fe5f032f.tar.bz2
troggle-43dfe946b6385037141b94b775112037fe5f032f.zip
Just removing dud whitespacedjango-1.10
Diffstat (limited to 'core/models.py')
-rw-r--r--core/models.py120
1 files changed, 60 insertions, 60 deletions
diff --git a/core/models.py b/core/models.py
index af25107..9029fd3 100644
--- a/core/models.py
+++ b/core/models.py
@@ -27,10 +27,10 @@ def get_related_by_wikilinks(wiki_text):
qm=QM.objects.get(found_by__cave_slug__in = cave_slugs,
found_by__date__year = qmdict['year'],
number = qmdict['number'])
- res.append(qm)
+ res.append(qm)
except QM.DoesNotExist:
print('fail on '+str(wikilink))
-
+
return res
try:
@@ -38,7 +38,7 @@ try:
filename=settings.LOGFILE,
filemode='w')
except:
- subprocess.call(settings.FIX_PERMISSIONS)
+ subprocess.call(settings.FIX_PERMISSIONS)
logging.basicConfig(level=logging.DEBUG,
filename=settings.LOGFILE,
filemode='w')
@@ -58,7 +58,7 @@ class TroggleModel(models.Model):
class TroggleImageModel(models.Model):
new_since_parsing = models.BooleanField(default=False, editable=False)
-
+
def object_name(self):
return self._meta.object_name
@@ -69,23 +69,23 @@ class TroggleImageModel(models.Model):
class Meta:
abstract = True
-#
+#
# single Expedition, usually seen by year
#
class Expedition(TroggleModel):
year = models.CharField(max_length=20, unique=True)
name = models.CharField(max_length=100)
-
+
def __unicode__(self):
return self.year
class Meta:
ordering = ('-year',)
get_latest_by = 'year'
-
+
def get_absolute_url(self):
return urlparse.urljoin(settings.URL_ROOT, reverse('expedition', args=[self.year]))
-
+
# construction function. should be moved out
def get_expedition_day(self, date):
expeditiondays = self.expeditionday_set.filter(date=date)
@@ -95,11 +95,11 @@ class Expedition(TroggleModel):
res = ExpeditionDay(expedition=self, date=date)
res.save()
return res
-
+
def day_min(self):
res = self.Expeditionday_set.all()
return res and res[0] or None
-
+
def day_max(self):
res = self.Expeditionday_set.all()
return res and res[len(res) - 1] or None
@@ -129,23 +129,23 @@ class Person(TroggleModel):
is_vfho = models.BooleanField(help_text="VFHO is the Vereines f&uuml;r H&ouml;hlenkunde in Obersteier, a nearby Austrian caving club.", default=False)
mug_shot = models.CharField(max_length=100, blank=True,null=True)
blurb = models.TextField(blank=True,null=True)
-
+
#href = models.CharField(max_length=200)
- orderref = models.CharField(max_length=200) # for alphabetic
+ orderref = models.CharField(max_length=200) # for alphabetic
user = models.OneToOneField(User, null=True, blank=True)
def get_absolute_url(self):
return urlparse.urljoin(settings.URL_ROOT,reverse('person',kwargs={'first_name':self.first_name,'last_name':self.last_name}))
class Meta:
verbose_name_plural = "People"
- ordering = ('orderref',) # "Wookey" makes too complex for: ('last_name', 'first_name')
-
+ ordering = ('orderref',) # "Wookey" makes too complex for: ('last_name', 'first_name')
+
def __unicode__(self):
if self.last_name:
return "%s %s" % (self.first_name, self.last_name)
return self.first_name
-
+
def notability(self):
notability = Decimal(0)
max_expo_val = 0
@@ -161,15 +161,15 @@ class Person(TroggleModel):
def bisnotable(self):
return self.notability() > Decimal(1)/Decimal(3)
-
+
def surveyedleglength(self):
return sum([personexpedition.surveyedleglength() for personexpedition in self.personexpedition_set.all()])
-
+
def first(self):
return self.personexpedition_set.order_by('-expedition')[0]
def last(self):
return self.personexpedition_set.order_by('expedition')[0]
-
+
#def Sethref(self):
#if self.last_name:
#self.href = self.first_name.lower() + "_" + self.last_name.lower()
@@ -178,7 +178,7 @@ class Person(TroggleModel):
# self.href = self.first_name.lower()
#self.orderref = self.first_name
#self.notability = 0.0 # set temporarily
-
+
#
# Person's attenance to one Expo
@@ -187,8 +187,8 @@ class PersonExpedition(TroggleModel):
expedition = models.ForeignKey(Expedition)
person = models.ForeignKey(Person)
slugfield = models.SlugField(max_length=50,blank=True,null=True)
-
- is_guest = models.BooleanField(default=False)
+
+ is_guest = models.BooleanField(default=False)
COMMITTEE_CHOICES = (
('leader','Expo leader'),
('medical','Expo medical officer'),
@@ -198,7 +198,7 @@ class PersonExpedition(TroggleModel):
)
expo_committee_position = models.CharField(blank=True,null=True,choices=COMMITTEE_CHOICES,max_length=200)
nickname = models.CharField(max_length=100,blank=True,null=True)
-
+
def GetPersonroles(self):
res = [ ]
for personrole in self.personrole_set.order_by('survexblock'):
@@ -214,8 +214,8 @@ class PersonExpedition(TroggleModel):
def __unicode__(self):
return "%s: (%s)" % (self.person, self.expedition)
-
-
+
+
#why is the below a function in personexpedition, rather than in person? - AC 14 Feb 09
def name(self):
if self.nickname:
@@ -226,11 +226,11 @@ class PersonExpedition(TroggleModel):
def get_absolute_url(self):
return urlparse.urljoin(settings.URL_ROOT, reverse('personexpedition',kwargs={'first_name':self.person.first_name,'last_name':self.person.last_name,'year':self.expedition.year}))
-
+
def surveyedleglength(self):
survexblocks = [personrole.survexblock for personrole in self.personrole_set.all() ]
return sum([survexblock.totalleglength for survexblock in set(survexblocks)])
-
+
# would prefer to return actual person trips so we could link to first and last ones
def day_min(self):
res = self.persontrip_set.aggregate(day_min=Min("expeditionday__date"))
@@ -242,7 +242,7 @@ class PersonExpedition(TroggleModel):
#
# Single parsed entry from Logbook
-#
+#
class LogbookEntry(TroggleModel):
LOGBOOK_ENTRY_TYPES = (
@@ -265,7 +265,7 @@ class LogbookEntry(TroggleModel):
verbose_name_plural = "Logbook Entries"
# several PersonTrips point in to this object
ordering = ('-date',)
-
+
def __getattribute__(self, item):
if item == "cave": #Allow a logbookentries cave to be directly accessed despite not having a proper foreignkey
return CaveSlug.objects.get(slug = self.cave_slug).cave
@@ -314,18 +314,18 @@ class LogbookEntry(TroggleModel):
#
class PersonTrip(TroggleModel):
personexpedition = models.ForeignKey("PersonExpedition",null=True)
-
+
#expeditionday = models.ForeignKey("ExpeditionDay")#MJG wants to KILL THIS (redundant information)
#date = models.DateField() #MJG wants to KILL THIS (redundant information)
time_underground = models.FloatField(help_text="In decimal hours")
logbook_entry = models.ForeignKey(LogbookEntry)
is_logbook_entry_author = models.BooleanField(default=False)
-
-
+
+
# sequencing by person (difficult to solve locally)
#persontrip_next = models.ForeignKey('PersonTrip', related_name='pnext', blank=True,null=True)#MJG wants to KILL THIS (and use funstion persontrip_next_auto)
#persontrip_prev = models.ForeignKey('PersonTrip', related_name='pprev', blank=True,null=True)#MJG wants to KILL THIS(and use funstion persontrip_prev_auto)
-
+
def persontrip_next(self):
futurePTs = PersonTrip.objects.filter(personexpedition = self.personexpedition, logbook_entry__date__gt = self.logbook_entry.date).order_by('logbook_entry__date').all()
if len(futurePTs) > 0:
@@ -345,7 +345,7 @@ class PersonTrip(TroggleModel):
def __unicode__(self):
return "%s (%s)" % (self.personexpedition, self.logbook_entry.date)
-
+
##########################################
@@ -375,7 +375,7 @@ class CaveAndEntrance(models.Model):
def __unicode__(self):
return unicode(self.cave) + unicode(self.entrance_letter)
-
+
class CaveSlug(models.Model):
cave = models.ForeignKey('Cave')
slug = models.SlugField(max_length=50, unique = True)
@@ -385,7 +385,7 @@ class CaveSlug(models.Model):
return self.slug
class Cave(TroggleModel):
- # too much here perhaps,
+ # too much here perhaps,
official_name = models.CharField(max_length=160)
area = models.ManyToManyField(Area, blank=True)
kataster_code = models.CharField(max_length=20,blank=True,null=True)
@@ -411,13 +411,13 @@ class Cave(TroggleModel):
#class Meta:
# unique_together = (("area", "kataster_number"), ("area", "unofficial_number"))
- # FIXME Kataster Areas and CUCC defined sub areas need seperating
+ # FIXME Kataster Areas and CUCC defined sub areas need seperating
#href = models.CharField(max_length=100)
-
+
class Meta:
- ordering = ('kataster_code', 'unofficial_number')
+ ordering = ('kataster_code', 'unofficial_number')
def hassurvey(self):
if not self.underground_centre_line:
@@ -432,7 +432,7 @@ class Cave(TroggleModel):
if self.survex_file:
return "Yes"
return "Missing"
-
+
def slug(self):
primarySlugs = self.caveslug_set.filter(primary = True)
if primarySlugs:
@@ -450,7 +450,7 @@ class Cave(TroggleModel):
return "%s-%s" % (self.kat_area(), self.kataster_number)
else:
return "%s-%s" % (self.kat_area(), self.unofficial_number)
-
+
def get_absolute_url(self):
if self.kataster_number:
href = self.kataster_number
@@ -479,13 +479,13 @@ class Cave(TroggleModel):
for a in self.area.all():
if a.kat_area():
return a.kat_area()
-
+
def entrances(self):
return CaveAndEntrance.objects.filter(cave=self)
def singleentrance(self):
return len(CaveAndEntrance.objects.filter(cave=self)) == 1
-
+
def entrancelist(self):
rs = []
res = ""
@@ -513,12 +513,12 @@ class Cave(TroggleModel):
else:
res += "&ndash;" + prevR
return res
-
+
def writeDataFile(self):
try:
f = open(os.path.join(settings.CAVEDESCRIPTIONS, self.filename), "w")
except:
- subprocess.call(settings.FIX_PERMISSIONS)
+ subprocess.call(settings.FIX_PERMISSIONS)
f = open(os.path.join(settings.CAVEDESCRIPTIONS, self.filename), "w")
t = loader.get_template('dataformat/cave.xml')
c = Context({'cave': self})
@@ -526,7 +526,7 @@ class Cave(TroggleModel):
u8 = u.encode("utf-8")
f.write(u8)
f.close()
-
+
def getArea(self):
areas = self.area.all()
lowestareas = list(areas)
@@ -543,7 +543,7 @@ def getCaveByReference(reference):
#print(areaname, code)
area = Area.objects.get(short_name = areaname)
#print(area)
- foundCaves = list(Cave.objects.filter(area = area, kataster_number = code).all()) + list(Cave.objects.filter(area = area, unofficial_number = code).all())
+ foundCaves = list(Cave.objects.filter(area = area, kataster_number = code).all()) + list(Cave.objects.filter(area = area, unofficial_number = code).all())
print(list(foundCaves))
if len(foundCaves) == 1:
return foundCaves[0]
@@ -555,7 +555,7 @@ class OtherCaveName(TroggleModel):
cave = models.ForeignKey(Cave)
def __unicode__(self):
return unicode(self.name)
-
+
class EntranceSlug(models.Model):
entrance = models.ForeignKey('Entrance')
slug = models.SlugField(max_length=50, unique = True)
@@ -669,28 +669,28 @@ class Entrance(TroggleModel):
for f in self.FINDABLE_CHOICES:
if f[0] == self.findability:
return f[1]
-
+
def tag(self):
return SurvexStation.objects.lookup(self.tag_station)
-
+
def needs_surface_work(self):
return self.findability != "S" or not self.has_photo or self.marking != "T"
def get_absolute_url(self):
-
+
ancestor_titles='/'.join([subcave.title for subcave in self.get_ancestors()])
if ancestor_titles:
res = '/'.join((self.get_root().cave.get_absolute_url(), ancestor_titles, self.title))
-
+
else:
res = '/'.join((self.get_root().cave.get_absolute_url(), self.title))
-
+
return res
def slug(self):
if not self.cached_primary_slug:
primarySlugs = self.entranceslug_set.filter(primary = True)
- if primarySlugs:
+ if primarySlugs:
self.cached_primary_slug = primarySlugs[0].slug
self.save()
else:
@@ -704,7 +704,7 @@ class Entrance(TroggleModel):
try:
f = open(os.path.join(settings.ENTRANCEDESCRIPTIONS, self.filename), "w")
except:
- subprocess.call(settings.FIX_PERMISSIONS)
+ subprocess.call(settings.FIX_PERMISSIONS)
f = open(os.path.join(settings.ENTRANCEDESCRIPTIONS, self.filename), "w")
t = loader.get_template('dataformat/entrance.xml')
c = Context({'entrance': self})
@@ -726,10 +726,10 @@ class CaveDescription(TroggleModel):
return unicode(self.long_name)
else:
return unicode(self.short_name)
-
+
def get_absolute_url(self):
return urlparse.urljoin(settings.URL_ROOT, reverse('cavedescription', args=(self.short_name,)))
-
+
def save(self):
"""
Overridden save method which stores wikilinks in text as links in database.
@@ -798,7 +798,7 @@ class QM(TroggleModel):
return u"%s%s%s" % ('[[QM:',self.code(),']]')
photoFileStorage = FileSystemStorage(location=settings.PHOTOS_ROOT, base_url=settings.PHOTOS_URL)
-class DPhoto(TroggleImageModel):
+class DPhoto(TroggleImageModel):
caption = models.CharField(max_length=1000,blank=True,null=True)
contains_logbookentry = models.ForeignKey(LogbookEntry,blank=True,null=True)
contains_person = models.ManyToManyField(Person,blank=True)
@@ -810,12 +810,12 @@ class DPhoto(TroggleImageModel):
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)
-
+
class IKOptions:
spec_module = 'core.imagekit_specs'
cache_dir = 'thumbs'
image_field = 'file'
-
+
#content_type = models.ForeignKey(ContentType)
#object_id = models.PositiveIntegerField()
#location = generic.GenericForeignKey('content_type', 'object_id')
@@ -832,7 +832,7 @@ def get_scan_path(instance, filename):
number=str(instance.survey.wallet_letter) + number #two strings formatting because convention is 2009#01 or 2009#X01
return os.path.join('./',year,year+r'#'+number,str(instance.contents)+str(instance.number_in_wallet)+r'.jpg')
-class ScannedImage(TroggleImageModel):
+class ScannedImage(TroggleImageModel):
file = models.ImageField(storage=scansFileStorage, upload_to=get_scan_path)
scanned_by = models.ForeignKey(Person,blank=True, null=True)
scanned_on = models.DateField(null=True)