From 16673567420fc0bbba8eb0a4cdb19ceea870388a Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Sat, 2 May 2020 18:11:10 +0200 Subject: [PATCH] User can update/create referral name --- .../templates/dashboard/referral.html | 35 +++++++++++++---- app/dashboard/views/referral.py | 39 ++++++++++++------- 2 files changed, 54 insertions(+), 20 deletions(-) diff --git a/app/dashboard/templates/dashboard/referral.html b/app/dashboard/templates/dashboard/referral.html index 77b78f43..c30f8702 100644 --- a/app/dashboard/templates/dashboard/referral.html +++ b/app/dashboard/templates/dashboard/referral.html @@ -19,8 +19,23 @@ {% for referral in referrals %}
-
Referral Code: {{ referral.code }} -
+ +
+ + + + Name +
+
+ +
+
+ +
+
+
+ + {% if referral.nb_user() > 0 %}
@@ -33,8 +48,8 @@
Please use this referral link to invite your friends trying out SimpleLogin:
-
-
+
+
@@ -49,6 +64,11 @@
+
+ You can also use the referral code {{ referral.code }} when sharing any link on SimpleLogin.
+ Just append ?slref={{ referral.code }} to any link on SimpleLogin website. +
+
{% endfor %} @@ -57,9 +77,10 @@ {% endif %}
- + + +
- -
{% endblock %} \ No newline at end of file diff --git a/app/dashboard/views/referral.py b/app/dashboard/views/referral.py index f9aedfa0..05333bef 100644 --- a/app/dashboard/views/referral.py +++ b/app/dashboard/views/referral.py @@ -4,7 +4,7 @@ from flask_login import login_required, current_user from app.dashboard.base import dashboard_bp from app.extensions import db from app.log import LOG -from app.models import Referral +from app.models import Referral, User from app.utils import random_string @@ -12,20 +12,33 @@ from app.utils import random_string @login_required def referral_route(): if request.method == "POST": - # Generate a new unique ref code - code = random_string(15) - for _ in range(100): - if not Referral.get_by(code=code): - # found - break - - LOG.warning("Referral Code %s already used", code) + if request.form.get("form-name") == "create": + # Generate a new unique ref code code = random_string(15) + for _ in range(100): + if not Referral.get_by(code=code): + # found + break - referral = Referral.create(user_id=current_user.id, code=code) - db.session.commit() - flash("A new referral code has been created", "success") - return redirect(url_for("dashboard.referral_route", highlight_id=referral.id)) + LOG.warning("Referral Code %s already used", code) + code = random_string(15) + + name = request.form.get("name") + referral = Referral.create(user_id=current_user.id, code=code, name=name) + db.session.commit() + flash("A new referral code has been created", "success") + return redirect( + url_for("dashboard.referral_route", highlight_id=referral.id) + ) + elif request.form.get("form-name") == "update": + referral_id = request.form.get("referral-id") + referral = Referral.get(referral_id) + if referral and referral.user_id == current_user.id: + referral.name = request.form.get("name") + db.session.commit() + flash("Referral name updated", "success") + return redirect( + url_for("dashboard.referral_route", highlight_id=referral.id) # Highlight a referral highlight_id = request.args.get("highlight_id")