Update Habit.py
Streak for Daylies was added.
This commit is contained in:
parent
5138e6d25f
commit
bcfb7aaec6
@ -1,6 +1,8 @@
|
||||
import json
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from datetime import date
|
||||
from datetime import timedelta
|
||||
|
||||
from models.HabitTracking import HabitTracking
|
||||
from db.SQLiteClient import (create_habit, get_habit, update_habit, delete_habit, get_next_slot, get_slots, update_slot,
|
||||
@ -23,6 +25,7 @@ class Habit:
|
||||
unit: int
|
||||
slot: int
|
||||
percentage: int = 0
|
||||
streak: int = 0
|
||||
|
||||
def __post_init__(self):
|
||||
self.fill_statistics()
|
||||
@ -96,32 +99,32 @@ class Habit:
|
||||
|
||||
|
||||
def getStreak(self):
|
||||
streak = 0
|
||||
trackings = []
|
||||
|
||||
for rawTracking in get_habitTrackings(self.id):
|
||||
trackings.append(HabitTracking(datetime.strptime(rawTracking[2], "%Y-%m-%d")))
|
||||
trackings.append(datetime.strptime(rawTracking[2], "%Y-%m-%d"))
|
||||
|
||||
trackings.sort(reverse=True)
|
||||
if current_date == tracking[0]:
|
||||
streak += 1
|
||||
for habitdate in trackings[1:]:
|
||||
future_date = habitdate - relativedelta(day=1)
|
||||
if future_date - habitdate == 0-0-1:
|
||||
streak + 1
|
||||
|
||||
|
||||
future_date = habitdate - relativedelta(day=1)
|
||||
|
||||
for habitdate in trackings:
|
||||
current_date = date.today()
|
||||
if current_date == habitdate or current_date == habitdate - relativedelta(day=1):
|
||||
streak += 1
|
||||
yesterdate = date.today() - timedelta(days=1)
|
||||
|
||||
future_date = habitdate - relativedelta(day=1)
|
||||
if not trackings:
|
||||
return self.streak
|
||||
|
||||
return streak
|
||||
# bisherige streak zurückgeben, falls nicht vorhanden bei null starten
|
||||
if self.streak != 0 and (current_date == trackings[0] or yesterdate == trackings[0]):
|
||||
return self.streak
|
||||
else:
|
||||
self.streak = 0
|
||||
return self.streak
|
||||
|
||||
def removeStreak(self):
|
||||
self.streak -= 1
|
||||
return
|
||||
|
||||
def addStreak(self):
|
||||
self.streak += 1
|
||||
return
|
||||
|
||||
# Saves the progress of the Habit in the attribute percentage
|
||||
def fill_statistics(self):
|
||||
@ -152,11 +155,3 @@ class Habit:
|
||||
|
||||
def to_json(self):
|
||||
return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
|
||||
|
||||
def habit_list(self):
|
||||
from models.HabitList import HabitList
|
||||
raw_habitLists = get_habitList(self.list_id)
|
||||
return HabitList(raw_habitLists[0], raw_habitLists[1], raw_habitLists[2],
|
||||
datetime.strptime(raw_habitLists[3], "%Y-%m-%dT%H:%M:%S.%f"),
|
||||
datetime.strptime(raw_habitLists[4], "%Y-%m-%dT%H:%M:%S.%f")) \
|
||||
if raw_habitLists else None
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user