fix top 10 patrons badge

master
Aevann 2023-08-01 10:16:47 +03:00
parent 164de9e966
commit 69ec9dab2f
5 changed files with 16 additions and 17 deletions

View File

@ -158,6 +158,7 @@ class User(Base):
marsify = Column(Integer, default=0) marsify = Column(Integer, default=0)
rainbow = Column(Integer, default=0) rainbow = Column(Integer, default=0)
spider = Column(Integer, default=0) spider = Column(Integer, default=0)
lifetimedonated = Column(Integer, default=0)
blacklisted_by = Column(Integer, ForeignKey("users.id")) blacklisted_by = Column(Integer, ForeignKey("users.id"))
if IS_FISTMAS(): if IS_FISTMAS():
@ -180,8 +181,6 @@ class User(Base):
sub_mods = relationship("Mod", primaryjoin="User.id == Mod.user_id", lazy="raise") sub_mods = relationship("Mod", primaryjoin="User.id == Mod.user_id", lazy="raise")
sub_exiles = relationship("Exile", primaryjoin="User.id == Exile.user_id", lazy="raise") sub_exiles = relationship("Exile", primaryjoin="User.id == Exile.user_id", lazy="raise")
lifetimedonated = deferred(Column(Integer, server_default=FetchedValue()))
def __init__(self, **kwargs): def __init__(self, **kwargs):
if "password" in kwargs: if "password" in kwargs:
@ -253,11 +252,6 @@ class User(Base):
return (succeeded, charged_coins) return (succeeded, charged_coins)
@property
@lazy
def lifetime_donated(self):
return self.lifetimedonated or 0
@property @property
@lazy @lazy
def num_of_bought_awards(self): def num_of_bought_awards(self):

View File

@ -81,25 +81,27 @@ def claim_rewards_all_users():
for x in range(22, badge_id+1): for x in range(22, badge_id+1):
badge_grant(badge_id=x, user=user) badge_grant(badge_id=x, user=user)
if user.lifetime_donated >= 100: user.lifetimedonated = g.db.query(func.sum(Transaction.amount)).filter_by(email=user.email).scalar()
if user.lifetimedonated >= 100:
badge_grant(badge_id=257, user=user) badge_grant(badge_id=257, user=user)
if user.lifetime_donated >= 500: if user.lifetimedonated >= 500:
badge_grant(badge_id=258, user=user) badge_grant(badge_id=258, user=user)
if user.lifetime_donated >= 2500: if user.lifetimedonated >= 2500:
badge_grant(badge_id=259, user=user) badge_grant(badge_id=259, user=user)
if user.lifetime_donated >= 5000: if user.lifetimedonated >= 5000:
badge_grant(badge_id=260, user=user) badge_grant(badge_id=260, user=user)
if user.lifetime_donated >= 10000: if user.lifetimedonated >= 10000:
badge_grant(badge_id=261, user=user) badge_grant(badge_id=261, user=user)
print(f'@{user.username} rewards claimed successfully!', flush=True) print(f'@{user.username} rewards claimed successfully!', flush=True)
# for user in g.db.query(User).options(load_only(User.id)).order_by(User.lifetimedonated.desc()).limit(10).all(): for user in g.db.query(User).options(load_only(User.id)).order_by(User.lifetimedonated.desc()).limit(10).all():
# badge_grant(badge_id=294, user=user) badge_grant(badge_id=294, user=user)
def transfer_currency(v, username, currency_name, apply_tax): def transfer_currency(v, username, currency_name, apply_tax):
MIN_CURRENCY_TRANSFER = 100 MIN_CURRENCY_TRANSFER = 100

View File

@ -20,7 +20,7 @@
<img class="contain" alt="2{{user.patron}}" loading="lazy" width=29.33 height=32 src="{{SITE_FULL_IMAGES}}/i/{{SITE_NAME}}/badges/2{{user.patron}}.webp?b=10" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{user.patron_tooltip}}"> <img class="contain" alt="2{{user.patron}}" loading="lazy" width=29.33 height=32 src="{{SITE_FULL_IMAGES}}/i/{{SITE_NAME}}/badges/2{{user.patron}}.webp?b=10" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{user.patron_tooltip}}">
{% endif %} {% endif %}
</td> </td>
<td data-sort-key="{{user.lifetime_donated}}">${{user.lifetime_donated}}</td> <td data-sort-key="{{user.lifetimedonated}}">${{user.lifetimedonated}}</td>
<td>{{user.truescore}}</td> <td>{{user.truescore}}</td>
</tr> </tr>
{% endfor %} {% endfor %}

View File

@ -234,7 +234,7 @@
<p id="profile--info--spent">Coins spent on hats: {{u.coins_spent_on_hats}}</p> <p id="profile--info--spent">Coins spent on hats: {{u.coins_spent_on_hats}}</p>
{% if v and (v.id == u.id or v.admin_level >= PERMS['VIEW_PATRONS']) %} {% if v and (v.id == u.id or v.admin_level >= PERMS['VIEW_PATRONS']) %}
<p id="profile--info--lifetime-donated">Lifetime donated: ${{u.lifetime_donated}} (shown to you only)</p> <p id="profile--info--lifetime-donated">Lifetime donated: ${{u.lifetimedonated}} (shown to you only)</p>
{% endif %} {% endif %}
<p id="profile--info--discount">Total award discount: {{u.formatted_discount}}</p> <p id="profile--info--discount">Total award discount: {{u.formatted_discount}}</p>
@ -512,7 +512,7 @@
<p id="profile-mobile--info--spent">Coins spent on hats: {{u.coins_spent_on_hats}}</p> <p id="profile-mobile--info--spent">Coins spent on hats: {{u.coins_spent_on_hats}}</p>
{% if v and (v.id == u.id or v.admin_level >= PERMS['VIEW_PATRONS']) %} {% if v and (v.id == u.id or v.admin_level >= PERMS['VIEW_PATRONS']) %}
<p id="profile-mobile--info--lifetime-donated">Lifetime donated: ${{u.lifetime_donated}} (shown to you only)</p> <p id="profile-mobile--info--lifetime-donated">Lifetime donated: ${{u.lifetimedonated}} (shown to you only)</p>
{% endif %} {% endif %}
<p id="profile-mobile--info--discount">Total award discount: {{u.formatted_discount}}</p> <p id="profile-mobile--info--discount">Total award discount: {{u.formatted_discount}}</p>

View File

@ -0,0 +1,3 @@
alter table users add column lifetimedonated int not null default 0;
alter table users alter column lifetimedonated drop default;
update users set lifetimedonated=(select sum(amount) from transactions where transactions.email = users.email) where (select sum(amount) from transactions where transactions.email = users.email)>0;