diff --git a/files/classes/badges.py b/files/classes/badges.py index 17e95fd654..1ac53eecca 100644 --- a/files/classes/badges.py +++ b/files/classes/badges.py @@ -71,7 +71,7 @@ class Badge(Base): def text(self): if self.until: text = self.badge.description + " until" - elif self.badge_id in (28, 170): + elif self.badge_id in (28, 170, 179): text = self.badge.description + " permanently" elif self.description: text = self.description diff --git a/files/classes/user.py b/files/classes/user.py index cb522df36a..8874ddefdb 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -141,7 +141,7 @@ class User(Base): owoify = Column(Integer) marsify = Column(Integer, default=0) rainbow = Column(Integer) - spider = Column(Integer) + spider = Column(Integer, default=0) badges = relationship("Badge", order_by="Badge.created_utc", back_populates="user") subscriptions = relationship("Subscription", back_populates="user") diff --git a/files/routes/settings.py b/files/routes/settings.py index e281624882..101bc65719 100644 --- a/files/routes/settings.py +++ b/files/routes/settings.py @@ -108,6 +108,14 @@ def settings_profile_post(v): badge = v.has_badge(170) if badge: g.db.delete(badge) + elif request.values.get("spider", v.spider) != v.spider and v.spider <= 1: + updated = True + v.spider = int(request.values.get("spider") == 'true') + if v.spider: badge_grant(user=v, badge_id=179) + else: + badge = v.has_badge(170) + if badge: g.db.delete(badge) + elif request.values.get("bio") == "": v.bio = None v.bio_html = None diff --git a/files/templates/settings_profile.html b/files/templates/settings_profile.html index 13143737c3..27dbae01d6 100644 --- a/files/templates/settings_profile.html +++ b/files/templates/settings_profile.html @@ -761,6 +761,21 @@ +
+
+ +
+ +
+ +
+ 1 %}disabled{% endif %} onchange="post_toast(this,'/settings/profile?spider='+document.getElementById('spiderswitch').checked)"> + +
+ + Have a spider friend accompany you during your journey in the site. +
+