mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-16 09:17:07 +00:00
fixing Sunday display on calendar
This commit is contained in:
@@ -33,6 +33,7 @@ todo='''
|
||||
'''
|
||||
|
||||
class CaveSlug(models.Model):
|
||||
"""Moved here to avoid nasty cyclic import error"""
|
||||
cave = models.ForeignKey('Cave',on_delete=models.CASCADE)
|
||||
slug = models.SlugField(max_length=50, unique = True)
|
||||
primary = models.BooleanField(default=False)
|
||||
@@ -41,7 +42,6 @@ class LogbookEntry(TroggleModel):
|
||||
"""Single parsed entry from Logbook
|
||||
"""
|
||||
date = models.DateField()#MJG wants to turn this into a datetime such that multiple Logbook entries on the same day can be ordered.ld()
|
||||
# expeditionday = models.ForeignKey("ExpeditionDay", null=True,on_delete=models.SET_NULL)#MJG wants to KILL THIS (redundant information)
|
||||
expedition = models.ForeignKey(Expedition,blank=True, null=True,on_delete=models.SET_NULL) # yes this is double-
|
||||
title = models.CharField(max_length=200)
|
||||
cave_slug = models.SlugField(max_length=50, blank=True, null=True)
|
||||
@@ -77,9 +77,16 @@ class LogbookEntry(TroggleModel):
|
||||
def DayIndex(self):
|
||||
"""This is used to set different colours for the different trips on
|
||||
the calendar view of the expedition"""
|
||||
index = list(LogbookEntry.objects.filter(date=self.date)).index(self)
|
||||
if index not in range(0,10):
|
||||
print(f"Unexpected LogbookEntry DayIndex '{index}' {self}")
|
||||
mx = 10
|
||||
todays = list(LogbookEntry.objects.filter(date=self.date))
|
||||
if self in todays:
|
||||
index = todays.index(self)
|
||||
else:
|
||||
print(f"DayIndex: Synchronization error. Restart server. {self}")
|
||||
index = 0
|
||||
|
||||
if index not in range(0, mx):
|
||||
print(f"DayIndex: More than {mx-1} LogbookEntry items on one day '{index}' {self}")
|
||||
index = 0
|
||||
return index
|
||||
|
||||
|
||||
@@ -148,10 +148,11 @@ class SurvexBlock(models.Model):
|
||||
def DayIndex(self):
|
||||
"""This is used to set different colours for the different trips on
|
||||
the calendar view of the expedition"""
|
||||
mx = 10
|
||||
index = list(SurvexBlock.objects.filter(date=self.date)).index(self)
|
||||
if index not in range(0,10):
|
||||
print(f"Unexpected SurvexBlock DayIndex '{index}' {self}")
|
||||
index = 10
|
||||
if index not in range(0, mx):
|
||||
print(f"DayIndex: More than {mx-1} SurvexBlock items on one day '{index}' {self}")
|
||||
index = 0
|
||||
#return list(self.survexblock_set.all()).index(self)
|
||||
return index
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@ class DataIssue(TroggleModel):
|
||||
|
||||
We have replaced all assertions in the code with messages and local fix-ups or skips:
|
||||
https://martinfowler.com/articles/replaceThrowWithNotification.html
|
||||
|
||||
See also the use of stash_data_issue() & store_data_issues() in parsers/survex.py which defer writing to the database until the end of the import.
|
||||
"""
|
||||
date = models.DateTimeField(auto_now_add=True, blank=True)
|
||||
parser = models.CharField(max_length=50, blank=True, null=True)
|
||||
@@ -81,34 +83,9 @@ class Expedition(TroggleModel):
|
||||
def get_absolute_url(self):
|
||||
return 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)
|
||||
# if expeditiondays:
|
||||
# if len(expeditiondays) == 1:
|
||||
# return expeditiondays[0]
|
||||
# else:
|
||||
# message =f'! - More than one expeditionday for the same date: {date} .\n - This should never happen. \n - Restart mysql and run reset to clean database.'
|
||||
# DataIssue.objects.create(parser='expedition', message=message)
|
||||
# return expeditiondays[0]
|
||||
# res = ExpeditionDay(expedition=self, date=date)
|
||||
# res.save()
|
||||
# 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 on Expedition now. Removed from logbookentry, persontrip, survex stuff etc.
|
||||
"""Exists only on Expedition now. Removed links from logbookentry, persontrip, survex stuff etc.
|
||||
"""
|
||||
expedition = models.ForeignKey("Expedition",on_delete=models.CASCADE)
|
||||
date = models.DateField()
|
||||
@@ -116,11 +93,11 @@ class ExpeditionDay(TroggleModel):
|
||||
class Meta:
|
||||
ordering = ('date',)
|
||||
|
||||
def GetPersonTrip(self, personexpedition):
|
||||
"""returns all logbook trips for this expeditonday
|
||||
"""
|
||||
personexpeditions = self.persontrip_set.filter(expeditionday=self)
|
||||
return personexpeditions and personexpeditions[0] or None
|
||||
# def GetPersonTrip(self, personexpedition):
|
||||
# """returns all logbook trips for this expeditonday
|
||||
# """
|
||||
# personexpeditions = self.persontrip_set.filter(expeditionday=self)
|
||||
# return personexpeditions and personexpeditions[0] or None
|
||||
|
||||
class Person(TroggleModel):
|
||||
"""single Person, can go on many years
|
||||
@@ -182,7 +159,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)
|
||||
nickname = models.CharField(max_length=100,blank=True, null=True)
|
||||
nickname = models.CharField(max_length=100,blank=True, null=True) # removbe this
|
||||
|
||||
class Meta:
|
||||
ordering = ('-expedition',)
|
||||
@@ -208,11 +185,4 @@ class PersonExpedition(TroggleModel):
|
||||
survexblocks = [personrole.survexblock for personrole in self.survexpersonrole_set.all() ]
|
||||
return sum([survexblock.legslength 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"))
|
||||
# return res["day_min"]
|
||||
|
||||
# def day_max(self):
|
||||
# res = self.persontrip_set.all().aggregate(day_max=models.Max("expeditionday__date"))
|
||||
# return res["day_max"]
|
||||
|
||||
Reference in New Issue
Block a user