Skip to content

Commit

Permalink
Prepare fwf for internationalization
Browse files Browse the repository at this point in the history
  • Loading branch information
joschobart committed Jul 24, 2024
1 parent d102eca commit 8d4b620
Show file tree
Hide file tree
Showing 16 changed files with 702 additions and 138 deletions.
33 changes: 19 additions & 14 deletions fun_with_flags/auth.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
""" FwF authentication views """

from flask import (Blueprint, flash, g, redirect, render_template, request,
session, url_for)
from flask import (
Blueprint,
flash,
g,
redirect,
render_template,
request,
session,
url_for,
)
from flask_babel import gettext

from . import api, decs, helperf
Expand All @@ -12,16 +20,14 @@
@bp_a.route("/authorize", methods=("GET", "POST"))
def authorize():
""" """

success_message = gettext("Hello Translation!")
print(success_message)

_protocol = request.args.get("protocol")
_url = request.args.get("url")

if request.method == "GET":
if _protocol and _url:
g.authorize_url = api.oauth_get_url(oauth_url=f"{_protocol}//{_url}/auth/callback")
g.authorize_url = api.oauth_get_url(
oauth_url=f"{_protocol}//{_url}/auth/callback"
)
g.oob = False
else:
g.authorize_url = api.oauth_get_url()
Expand All @@ -32,8 +38,7 @@ def authorize():
try:
access_token_key, access_token_secret = api.oauth_get_access_token(g.pin)
except Exception as e:
error = f"{e}: Pin {g.pin} was not accepted."

error = gettext("{e}: Pin {pin} was not accepted.".format(e=e, pin=g.pin))
flash(error)
else:
creds = f"{access_token_key} {access_token_secret}"
Expand All @@ -52,7 +57,7 @@ def callback():
access_token_key, access_token_secret = api.oauth_get_access_token(g.pin)

except Exception as e:
error = f"{e}: Pin {g.pin} was not accepted."
error = gettext("{e}: Pin {pin} was not accepted.".format(e=e, pin=g.pin))

flash(error)

Expand Down Expand Up @@ -81,13 +86,13 @@ def login():
includeFlags="false",
)
except Exception as e:
flash(f"Session initialization failed: {e}")
flash(gettext("Session initialization failed: {e}".format(e=e)))

else:
session["my_team"] = api.ht_get_team(xml_response)
session["username"] = session["my_team"]["user"]["login_name"]

flash("login successful")
flash(gettext("login successful"))

return render_template("auth/login.html")

Expand All @@ -106,10 +111,10 @@ def logout():
try:
session.clear()
except Exception as e:
error = f"Session logout failed: {e}"
error = gettext("Session logout failed: {e}".format(e=e))

else:
flash("logout successful")
flash(gettext("logout successful"))

if error is not None:
flash(error)
Expand Down
22 changes: 16 additions & 6 deletions fun_with_flags/challenge.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,20 @@

from datetime import datetime

from flask import (Blueprint, current_app, flash, g, redirect, render_template,
request, session, url_for)
from flask import (
Blueprint,
current_app,
flash,
g,
redirect,
render_template,
request,
session,
url_for,
)

from . import api, db, decs, helperf, scheduler
from flask_babel import gettext

bp_c = Blueprint("challenge", __name__, url_prefix="/challenge")

Expand Down Expand Up @@ -46,7 +56,7 @@ def overview():
g.scheduler_date = datetime.strptime(g.schedule["date"], "%Y%m%d").date()
g.scheduler_date = g.scheduler_date.strftime("%Y-%m-%d")

flash("You have a scheduled challenge request.")
flash(gettext("You have a scheduled challenge request."))

if len(g.challenges) != 0:
for _challenge in g.challenges:
Expand Down Expand Up @@ -100,7 +110,7 @@ def overview():
message = "Teams are challenged but not agreed yet."

else:
message = "No challenges to show."
message = gettext("No challenges to show.")

flash(message)

Expand Down Expand Up @@ -157,10 +167,10 @@ def challenge():
print(f"Would do challenge here { _challengeable }")

except Exception as e:
flash(f"Var '{e}' is missing.")
flash(gettext("Var '{e}' is missing.".format(e=e)))

else:
flash("Challenges booked!")
flash(gettext("Challenges booked!"))
return redirect(url_for("challenge.overview"))

return render_template("challenge/challenge.html")
31 changes: 19 additions & 12 deletions fun_with_flags/decs.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,22 @@
import functools

from flask import current_app, flash, g, redirect, request, session, url_for

from . import api, db, helperf
from flask_babel import gettext


def choose_team(view):
"""
:param view:
:param view:
"""

@functools.wraps(view)
def wrapped_view(**kwargs):
"""
:param **kwargs:
:param **kwargs:
"""
if "username" in session:
Expand Down Expand Up @@ -49,14 +50,15 @@ def wrapped_view(**kwargs):
def error_check(view):
"""
:param view:
:param view:
"""

@functools.wraps(view)
def wrapped_view(**kwargs):
"""
:param **kwargs:
:param **kwargs:
"""
error = None
Expand All @@ -65,8 +67,10 @@ def wrapped_view(**kwargs):
return view(**kwargs)

except Exception as e:
error = f"Something went wrong on page '{view.__name__}'. \
error = gettext(
f"Something went wrong on page '{view.__name__}'. \
Please try again or report an error to joschobart on hattrick.org. ({e})"
)

flash(error)
return redirect(url_for("index"))
Expand All @@ -77,14 +81,15 @@ def wrapped_view(**kwargs):
def login_required(view):
"""
:param view:
:param view:
"""

@functools.wraps(view)
def wrapped_view(**kwargs):
"""
:param **kwargs:
:param **kwargs:
"""
username = session.get("username")
Expand All @@ -100,14 +105,15 @@ def wrapped_view(**kwargs):
def use_db(view):
"""
:param view:
:param view:
"""

@functools.wraps(view)
def wrapped_view(**kwargs):
"""
:param **kwargs:
:param **kwargs:
"""
if "my_team" in session:
Expand All @@ -122,14 +128,15 @@ def wrapped_view(**kwargs):
def set_unicorn(view):
"""
:param view:
:param view:
"""

@functools.wraps(view)
def wrapped_view(**kwargs):
"""
:param **kwargs:
:param **kwargs:
"""
if "username" in session:
Expand Down
24 changes: 17 additions & 7 deletions fun_with_flags/flags.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
""" FwF app related core views """


from flask import (Blueprint, current_app, flash, g, render_template, request,
session)
from flask import Blueprint, current_app, flash, g, render_template, request, session

from . import api, db, decs, helperf, scheduler

from flask_babel import gettext


bp_f = Blueprint("flags", __name__, url_prefix="/flags")


Expand Down Expand Up @@ -128,7 +130,7 @@ def details():
_my_match = api.ht_get_matchdetails(_xml_data)

except AttributeError:
flash("Match not found.")
flash(gettext("Match not found."))

else:
for home_away in ["home_team_id", "away_team_id"]:
Expand All @@ -147,7 +149,9 @@ def details():
_match_country = _opponent[_opponent_teamid]["team_country_id"]

if _match_country == g.flagid:
flash(f"{_place}-match added.")
flash(
gettext("{_place}-match added.".format(_place=_place))
)
g.db_settings = current_app.config["DB__SETTINGS_DICT"]
g.my_document = db.bootstrap_user_document(
g.user_id, g.couch, g.db_settings
Expand All @@ -164,7 +168,9 @@ def details():

else:
flash(
"Not one of your past friendly-matches for that flag."
gettext(
"Not one of your past friendly-matches for that flag."
)
)
break

Expand Down Expand Up @@ -205,7 +211,11 @@ def details():
}

scheduler.schedule(_object)
flash("Schedule for challenge is booked. You find it under 'Challenges'.")
flash(
gettext(
"Schedule for challenge is booked. You find it under 'Challenges'."
)
)

elif "delete_schedule" in request.form:
_object = {
Expand All @@ -219,6 +229,6 @@ def details():
}

scheduler.schedule(_object)
flash("Schedule for challenge is deleted successfully.")
flash(gettext("Schedule for challenge is deleted successfully."))

return render_template("flags/details.html")
22 changes: 16 additions & 6 deletions fun_with_flags/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@

from . import db, decs

from flask_babel import gettext


bp_s = Blueprint("settings", __name__, url_prefix="/settings")


Expand All @@ -18,23 +21,30 @@
def settings():
""" """
_costs = current_app.config["COSTS"]
g.costs_month_euro = float(_costs["costs_per_month"]) * float(_costs["factor_to_euro"])
g.costs_month_euro = float(_costs["costs_per_month"]) * float(
_costs["factor_to_euro"]
)
g.costs_day_euro = float(g.costs_month_euro) / 30

g.db_settings = current_app.config["DB__SETTINGS_DICT"]
g.my_document = db.bootstrap_user_document(g.user_id, g.couch, g.db_settings)

# Count g.total_payed_euro
# Count g.total_payed_euro
g.total_payed_euro = 0.0

if "sessions" in g.my_document["unicorn"]["stripe"]:
for pay_session in g.my_document["unicorn"]["stripe"]["sessions"]:
if "receipt_timestamp" in g.my_document["unicorn"]["stripe"]["sessions"][pay_session]:
_my_pay_session = g.my_document["unicorn"]["stripe"]["sessions"][pay_session]
if (
"receipt_timestamp"
in g.my_document["unicorn"]["stripe"]["sessions"][pay_session]
):
_my_pay_session = g.my_document["unicorn"]["stripe"]["sessions"][
pay_session
]
_amount = float(_my_pay_session["receipt_amount_received"])
_factor = float(_my_pay_session["receipt_factor"])
g.total_payed_euro += round(_amount * _factor, 2)

# Update settings-object with user changes
if request.method == "POST":
for item in request.form.items():
Expand All @@ -45,7 +55,7 @@ def settings():

g.my_document["settings"]["meta"]["date_updated"] = str(datetime.utcnow())

flash("Settings updated.")
flash(gettext("Settings updated."))

# Write changements on the settings-object to db
g.couch[g.user_id] = g.my_document
Expand Down
Loading

0 comments on commit 8d4b620

Please sign in to comment.