diff --git a/app/auth/views/login_utils.py b/app/auth/views/login_utils.py index c4426d06..96bd0ab5 100644 --- a/app/auth/views/login_utils.py +++ b/app/auth/views/login_utils.py @@ -53,4 +53,12 @@ def get_referral() -> Optional[Referral]: ref_code = request.cookies.get(_REFERRAL_COOKIE) referral = Referral.get_by(code=ref_code) + if not referral: + if "slref" in session: + ref_code = session["slref"] + referral = Referral.get_by(code=ref_code) + + if referral: + LOG.d("referral found %s", referral) + return referral diff --git a/app/models.py b/app/models.py index d5176faa..5b37c2d0 100644 --- a/app/models.py +++ b/app/models.py @@ -2269,6 +2269,9 @@ class Referral(Base, ModelMixin): def link(self): return f"{LANDING_PAGE_URL}?slref={self.code}" + def __repr__(self): + return f"" + class SentAlert(Base, ModelMixin): """keep track of alerts sent to user. diff --git a/server.py b/server.py index fdb250b6..fc9ea888 100644 --- a/server.py +++ b/server.py @@ -481,6 +481,11 @@ def set_index_page(app): ): g.start_time = time.time() + # to handle the referral url that has ?slref=code part + ref_code = request.args.get("slref") + if ref_code: + session["slref"] = ref_code + @app.after_request def after_request(res): # not logging /static call