#5 Added more data to stats page and improved CSS

This commit is contained in:
2024-02-09 22:01:25 +00:00
parent 7c27aa31b6
commit 60cb8d7951
6 changed files with 50 additions and 27 deletions

View File

@ -46,7 +46,7 @@ class DatabaseController(ABC):
for attr, value in with_fields.items():
try:
setattr(obj, attr, value)
except KeyError:
except AttributeError:
return of(value)
return obj

View File

@ -1,6 +1,6 @@
from .database import DatabaseController
from models.stats import Stats
from datetime import datetime
from datetime import datetime, timedelta
from utils.general_utils import is_within_x_days
@ -52,7 +52,7 @@ class StatsController(DatabaseController):
return self.get_many(query, params)
def read_days(self, product_id: int, prev_days: int = 7
) -> dict[int, list[Stats]] | None:
) -> dict[datetime, list[Stats]] | None:
""" Returns data from within the given number of days """
data = self.read_product(product_id)
@ -64,16 +64,19 @@ class StatsController(DatabaseController):
data
))
day_views: dict[int, list[Stats]] = dict()
day_views: dict[str, list[Stats]] = dict()
for i in range(0, prev_days):
day_views[i] = list()
key = datetime.today() - timedelta(days=i)
day_views[key.strftime('%b-%d')] = list()
print(list(day_views))
# Organise data into distinct
for view in filtered_data:
diff = datetime.now()-view.viewDate
day_views[diff.days].append(view)
key = datetime.today() - (datetime.today() - view.viewDate)
day_views[key.strftime('%b-%d')].append(view)
print(list(day_views))
return day_views
def read_product_views(self, id: int):