diff --git a/files/classes/hats.py b/files/classes/hats.py index e39ce4902..d1b7bd084 100644 --- a/files/classes/hats.py +++ b/files/classes/hats.py @@ -29,4 +29,6 @@ class Hat(Base): __tablename__ = "hats" user_id = Column(Integer, ForeignKey('users.id'), primary_key=True) - hat_id = Column(Integer, ForeignKey('hat_defs.id'), primary_key=True) \ No newline at end of file + hat_id = Column(Integer, ForeignKey('hat_defs.id'), primary_key=True) + + owners = relationship("User", back_populates="owned_hats") \ No newline at end of file diff --git a/files/classes/user.py b/files/classes/user.py index c0ebdd756..de609deb3 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -154,7 +154,7 @@ class User(Base): referrals = relationship("User") equipped_hat = relationship("HatDef", primaryjoin="User.equipped_hat_id==HatDef.id") designed_hats = relationship("HatDef", primaryjoin="User.id==HatDef.author_id", back_populates="author") - owned_hats = relationship("Hat") + owned_hats = relationship("Hat", back_populates="owners") def __init__(self, **kwargs): diff --git a/files/routes/hats.py b/files/routes/hats.py index 7bafc5e99..81d5addc1 100644 --- a/files/routes/hats.py +++ b/files/routes/hats.py @@ -95,4 +95,26 @@ def unequip_hat(v): v.equipped_hat_id = None g.db.add(v) - return {"message": "Hat unequipped!"} \ No newline at end of file + return {"message": "Hat unequipped!"} + +@app.get("/hat_owners/") +@auth_required +def hat_owners(v, hat_id): + + try: hat_id = int(hat_id) + except: abort(400) + + try: page = int(request.values.get("page", 1)) + except: page = 1 + + users = [x[1] for x in g.db.query(Hat, User).join(Hat.owners).filter(Hat.hat_id == hat_id).offset(25 * (page - 1)).limit(26).all()] + + next_exists = (len(users) > 25) + users = users[:25] + + return render_template("admin/new_users.html", + v=v, + users=users, + next_exists=next_exists, + page=page, + ) \ No newline at end of file diff --git a/files/templates/hats.html b/files/templates/hats.html index 8484d05df..53aa21bd1 100644 --- a/files/templates/hats.html +++ b/files/templates/hats.html @@ -27,10 +27,10 @@ Description {% if SITE == 'rdrama.net' %} Author - Number Sold + Owners Price {% else %} - Number Sold + Owners Price {% endif %} Actions @@ -46,7 +46,7 @@ {% if SITE == 'rdrama.net' %} {{user.username}} {% endif %} - {{hat.number_sold}} + {{hat.number_sold}} {{hat.price}} {% if hat.id not in owned_hat_ids %}