summaryrefslogtreecommitdiffstats
path: root/core/models/troggle.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2022-12-23 23:32:59 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2022-12-23 23:32:59 +0000
commit5bbb363f12c691ead1dce423dc4836cbd7470c84 (patch)
tree7e23593786dbebddf2ab75ecc140afc9f9baecfb /core/models/troggle.py
parent0e29cdd48cb4e2abcae82cf084847e77773257ad (diff)
downloadtroggle-5bbb363f12c691ead1dce423dc4836cbd7470c84.tar.gz
troggle-5bbb363f12c691ead1dce423dc4836cbd7470c84.tar.bz2
troggle-5bbb363f12c691ead1dce423dc4836cbd7470c84.zip
Adding docstrings, deleting unused code
Diffstat (limited to 'core/models/troggle.py')
-rw-r--r--core/models/troggle.py42
1 files changed, 16 insertions, 26 deletions
diff --git a/core/models/troggle.py b/core/models/troggle.py
index f29483d..ca3df80 100644
--- a/core/models/troggle.py
+++ b/core/models/troggle.py
@@ -30,9 +30,9 @@ the django Object Relational Mapping (ORM).
There are more subclasses define in models_caves.py models_survex.py etc.
"""
-
-#This class is for adding fields and methods which all of our models will have.
class TroggleModel(models.Model):
+ """This class is for adding fields and methods which all of our models will have.
+ """
new_since_parsing = models.BooleanField(default=False, editable=False)
non_public = models.BooleanField(default=False)
def object_name(self):
@@ -98,14 +98,20 @@ class Expedition(TroggleModel):
return res
def day_min(self):
+ """First day of expedition
+ """
res = self.expeditionday_set.all()
return res and res[0] or None
def day_max(self):
+ """last day of expedition
+ """
res = self.expeditionday_set.all()
return res and res[len(res) - 1] or None
class ExpeditionDay(TroggleModel):
+ """Exists only so that we can get all logbook trips on this day
+ """
expedition = models.ForeignKey("Expedition",on_delete=models.CASCADE)
date = models.DateField()
@@ -113,6 +119,8 @@ class ExpeditionDay(TroggleModel):
ordering = ('date',)
def GetPersonTrip(self, personexpedition):
+ """returns all logbook trips for this expediton
+ """
personexpeditions = self.persontrip_set.filter(expeditionday=self)
return personexpeditions and personexpeditions[0] or None
@@ -144,6 +152,8 @@ class Person(TroggleModel):
def notability(self):
+ """This is actually recency: all recent cavers, weighted by number of expos
+ """
notability = Decimal(0)
max_expo_val = 0
@@ -156,6 +166,8 @@ class Person(TroggleModel):
return notability
def bisnotable(self):
+ """Boolean: is this person notable?
+ """
return self.notability() > Decimal(1)/Decimal(3)
def surveyedleglength(self):
@@ -174,31 +186,7 @@ class PersonExpedition(TroggleModel):
slugfield = models.SlugField(max_length=50,blank=True, null=True) # 2022 to be used in future
is_guest = models.BooleanField(default=False)
- COMMITTEE_CHOICES = (
- ('leader','Expo leader'),
- ('medical','Expo medical officer'),
- ('treasurer','Expo treasurer'),
- ('sponsorship','Expo sponsorship coordinator'),
- ('research','Expo research coordinator'),
- )
- 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):
- '''To do: excise the 'role' bit of this while retaining personrole
- which is used in some later logic
-
- But apparently never used !?
-
- '''
- res = [ ]
- for personrole in self.personrole_set.order_by('survexblock'):
- res.append({'date':personrole.survexblock.date, 'survexpath':personrole.survexblock.survexpath})
- # if res and res[-1]['survexpath'] == personrole.survexblock.survexpath:
- # res[-1]['roles'] += ", " + str(personrole.role)
- # else:
- # res.append({'date':personrole.survexblock.date, 'survexpath':personrole.survexblock.survexpath, 'roles':str(personrole.role)})
- return res
class Meta:
ordering = ('-expedition',)
@@ -219,6 +207,8 @@ class PersonExpedition(TroggleModel):
return 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):
+ """Survey length for this person on all survex trips on this expedition
+ """
survexblocks = [personrole.survexblock for personrole in self.survexpersonrole_set.all() ]
return sum([survexblock.legslength for survexblock in set(survexblocks)])