WIP: Started to add more stats to the product stats page.
This commit is contained in:
parent
c55fdde3fc
commit
7c27aa31b6
@ -44,7 +44,10 @@ class DatabaseController(ABC):
|
||||
"""
|
||||
obj = of.__new__(of)
|
||||
for attr, value in with_fields.items():
|
||||
try:
|
||||
setattr(obj, attr, value)
|
||||
except KeyError:
|
||||
return of(value)
|
||||
return obj
|
||||
|
||||
def do(self, query: str, params: list[str]):
|
||||
|
@ -76,6 +76,19 @@ class StatsController(DatabaseController):
|
||||
|
||||
return day_views
|
||||
|
||||
def read_product_views(self, id: int):
|
||||
""" Returns the total number of views for a product """
|
||||
params = [
|
||||
id
|
||||
]
|
||||
|
||||
# Total Views
|
||||
query = """
|
||||
SELECT count(id) FROM Views WHERE productID = ?
|
||||
"""
|
||||
|
||||
return self.get_one(query, params, int)
|
||||
|
||||
def update(self):
|
||||
print("Doing work")
|
||||
|
||||
|
@ -5,6 +5,10 @@ from flask import Blueprint
|
||||
|
||||
from flask import render_template, request
|
||||
from controllers.database.stats import StatsController
|
||||
from controllers.database.product import ProductController
|
||||
|
||||
from datetime import datetime
|
||||
import random
|
||||
|
||||
# Blueprint to append user endpoints to
|
||||
blueprint = Blueprint("stats", __name__, url_prefix='/stats')
|
||||
@ -27,18 +31,49 @@ def view_product_stats(id: int):
|
||||
prev_days: int = request.args.get('prev_days', 7, int)
|
||||
data = db.read_days(id, prev_days)
|
||||
|
||||
product_frequency_data = dict(map(
|
||||
# lambda k, v: (k, random.randint(0, 100)),
|
||||
lambda k, v: (k, len(v)),
|
||||
product_view_frequency_data = dict(map(
|
||||
lambda k, v: (k, random.randint(0, 100)),
|
||||
# lambda k, v: (k, len(v)),
|
||||
data.keys(),
|
||||
data.values()
|
||||
))
|
||||
|
||||
print(db.read_product_views(id))
|
||||
|
||||
db = ProductController()
|
||||
product = db.read_id(id)
|
||||
|
||||
# Ranking in category
|
||||
query = """
|
||||
SELECT id, count(id) FROM stats WHERE id = (
|
||||
SELECT id FROM Products WEHRE id = (
|
||||
SELECT categoryID FROM Products WHERE id = ?
|
||||
)
|
||||
)
|
||||
"""
|
||||
|
||||
# Stock Level
|
||||
product.quantityAvailable
|
||||
|
||||
# Age
|
||||
time_since_posted = datetime.now() - product.postedDate
|
||||
|
||||
data = {
|
||||
"age": time_since_posted,
|
||||
"ranking": 0,
|
||||
"views": {
|
||||
"total": 0,
|
||||
"headings": list(reversed(product_view_frequency_data.keys())),
|
||||
"data": list(reversed(product_view_frequency_data.values()))
|
||||
},
|
||||
"stocklevel": product.quantityAvailable
|
||||
}
|
||||
|
||||
return render_template(
|
||||
"index.html",
|
||||
content="stats.html",
|
||||
headings=list(reversed(product_frequency_data.keys())),
|
||||
data=list(reversed(product_frequency_data.values()))
|
||||
headings=list(reversed(product_view_frequency_data.keys())),
|
||||
data=list(reversed(product_view_frequency_data.values()))
|
||||
)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user