Person info Ville Address E-post Telefon type Times Hours Practice 1 09:33 Keikka 0 Talko 2 09:33 Meeting 1 02:00 Practices: Lasta slädan, 01:30, Ovning Årsmöte, 02:00, Mote Talkoo, 04:00, Talko asd, 05:33, Talko ####################################### def practice_count(self): return self.practice_set.filter(type='O').count() def meeting_count(self): return self.practice_set.filter(type='M').count() def keikka_count(self): return self.practice_set.filter(type='K').count() def talko_count(self): return self.practice_set.filter(type='T').count() def practice_duration(self): practis = self.practice_set.filter(type='O') return (practis.aggregate(Sum('duration'))['duration__sum']) def meeting_duration(self): practis = self.practice_set.filter(type='M') return self.format_count(practis.aggregate(Sum('duration'))['duration__sum']) def keikka_duration(self): practis = self.practice_set.filter(type='K') return self.format_count(practis.aggregate(Sum('duration'))['duration__sum']) def talko_duration(self): practis = self.practice_set.filter(type='T') return self.format_count(practis.aggregate(Sum('duration'))['duration__sum']) def format_count(self, minuts): hours = minuts/60 mins = minuts % 60 return str(hours).rjust(2,'0')+":"+str(mins).rjust(2,'0')