summaryrefslogtreecommitdiff
path: root/talermerchantdemos
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos')
-rw-r--r--talermerchantdemos/blog/blog.py21
-rw-r--r--talermerchantdemos/donations/donations.py24
-rw-r--r--talermerchantdemos/landing/landing.py15
-rw-r--r--talermerchantdemos/survey/survey.py21
-rw-r--r--talermerchantdemos/templates/common-base.html.j234
-rw-r--r--talermerchantdemos/templates/donations-checkout.html.j22
-rw-r--r--talermerchantdemos/templates/donations-index.html.j22
-rw-r--r--talermerchantdemos/templates/footer.html.j210
-rw-r--r--talermerchantdemos/templates/language-switcher.html.j232
-rw-r--r--talermerchantdemos/templates/menu.html.j222
-rw-r--r--talermerchantdemos/templates/survey-index.html.j22
11 files changed, 96 insertions, 89 deletions
diff --git a/talermerchantdemos/blog/blog.py b/talermerchantdemos/blog/blog.py
index e8cce32..d1a2865 100644
--- a/talermerchantdemos/blog/blog.py
+++ b/talermerchantdemos/blog/blog.py
@@ -50,7 +50,7 @@ def err_abort(abort_status_code, **params):
@param abort_status_code status code to return along the response.
@param params _kw_ arguments to passed verbatim to the templating engine.
"""
- t = flask.render_template("blog-error.html.j2", lang=get_locale(), **params)
+ t = flask.render_template("blog-error.html.j2", **params)
flask.abort(flask.make_response(t, abort_status_code))
@@ -119,7 +119,13 @@ def utility_processor():
def env(name, default=None):
return os.environ.get(name, default)
- return dict(env=env)
+ def getactive():
+ return "blog"
+
+ def getlang():
+ return get_locale()
+
+ return dict(env=env, getactive=getactive, getlang=getlang)
##
@@ -134,7 +140,6 @@ def internal_error(e):
"blog-error.html.j2",
message=gettext("Internal error"),
stack=traceback.format_exc(),
- lang=get_locale(),
)
@@ -187,7 +192,6 @@ def start(lang):
translated = {}
return flask.render_template(
"blog-index.html.j2",
- lang=lang,
merchant_currency=CURRENCY,
articles=translated.values(),
)
@@ -214,13 +218,11 @@ def confirm_refund(lang, order_id):
return flask.render_template(
"blog-error.html.j2",
message=gettext("Article is not anymore refundable"),
- lang=get_locale(),
)
return flask.render_template(
"blog-confirm-refund.html.j2",
article_name=article_name,
order_id=order_id,
- lang=get_locale(),
)
@@ -300,7 +302,6 @@ def render_article(article_name, lang, data, order_id, refundable):
article_contents=article_contents,
article_name=article_name,
order_id=order_id,
- lang=lang,
refundable=refundable,
)
@@ -314,7 +315,7 @@ def render_article(article_name, lang, data, order_id, refundable):
def post_order(article_name, lang):
order = dict(
amount=ARTICLE_AMOUNT,
- extra=dict(article_name=article_name, lang=lang),
+ extra=dict(article_name=article_name),
fulfillment_url=flask.request.base_url,
summary="Essay: " + article_name.replace("_", " "),
# FIXME: add support for i18n of summary!
@@ -400,7 +401,6 @@ def article(article_name, lang=None, data=None):
"blog-article-refunded.html.j2",
article_name=article_name,
order_id=order_id,
- lang=lang,
)
response = render_article(
article_name, lang, data, order_id, refundable(pay_status)
@@ -438,7 +438,6 @@ def handler_500(e):
return flask.render_template(
"blog-error.html.j2",
message=gettext("Internal server error"),
- lang=get_locale(),
)
@@ -447,7 +446,6 @@ def handler_404(e):
return flask.render_template(
"blog-error.html.j2",
message=gettext("Page not found"),
- lang=get_locale(),
)
@@ -455,7 +453,6 @@ def handler_404(e):
def handler_backend_exception(e):
t = flask.render_template(
"survey-error.html.j2",
- lang=get_locale(),
message=e.args[0],
json=e.backend_json,
status_code=e.backend_status,
diff --git a/talermerchantdemos/donations/donations.py b/talermerchantdemos/donations/donations.py
index 19f1372..85ab9ec 100644
--- a/talermerchantdemos/donations/donations.py
+++ b/talermerchantdemos/donations/donations.py
@@ -99,7 +99,13 @@ def utility_processor():
def env(name, default=None):
return os.environ.get(name, default)
- return dict(env=env)
+ def getactive():
+ return "donations"
+
+ def getlang():
+ return get_locale()
+
+ return dict(env=env, getlang=getlang, getactive=getactive)
##
@@ -108,7 +114,7 @@ def utility_processor():
# @param abort_status_code status code to return along the response.
# @param params _kw_ arguments to passed verbatim to the templating engine.
def err_abort(abort_status_code, **params):
- t = flask.render_template("donations-error.html.j2", lang=get_locale(), **params)
+ t = flask.render_template("donations-error.html.j2", **params)
flask.abort(flask.make_response(t, abort_status_code))
@@ -160,7 +166,6 @@ def internal_error(e):
return flask.render_template(
"donations-error.html.j2",
message=gettext("Internal error"),
- lang=get_locale(),
stack=traceback.format_exc(),
)
@@ -197,7 +202,7 @@ def index():
@app.route("/<lang>/")
def start(lang):
return flask.render_template(
- "donations-index.html.j2", lang=lang, merchant_currency=CURRENCY
+ "donations-index.html.j2", merchant_currency=CURRENCY
)
@@ -217,7 +222,6 @@ def checkout(lang):
donation_amount=amount,
donation_receiver=donation_receiver,
donation_donor=donation_donor,
- lang=lang,
merchant_currency=CURRENCY,
)
@@ -229,7 +233,7 @@ def checkout(lang):
# @return response object about the mentioned impossibility.
@app.route("/<lang>/provider-not-supported")
def provider_not_supported(lang):
- return flask.render_template("donations-provider-not-supported.html.j2", lang=lang)
+ return flask.render_template("donations-provider-not-supported.html.j2")
##
@@ -246,11 +250,10 @@ def donate(lang):
donation_donor = expect_parameter("donation_donor")
payment_system = expect_parameter("payment_system")
if payment_system != "taler":
- return flask.redirect(flask.url_for("provider_not_supported", lang=lang))
+ return flask.redirect(flask.url_for("provider_not_supported"))
fulfillment_url = flask.url_for(
"fulfillment",
timestamp=str(time.time()),
- lang=lang,
receiver=donation_receiver,
_external=True,
)
@@ -270,7 +273,7 @@ def donate(lang):
order_id = order_resp["order_id"]
return flask.redirect(
flask.url_for(
- "fulfillment", receiver=donation_receiver, lang=lang, order_id=order_id
+ "fulfillment", receiver=donation_receiver, order_id=order_id
)
)
@@ -298,7 +301,6 @@ def fulfillment(lang, receiver):
donation_amount=extra["amount"],
donation_donor=extra["donor"],
order_id=order_id,
- lang=lang,
currency=CURRENCY,
)
return flask.redirect(pay_status["order_status_url"])
@@ -307,5 +309,5 @@ def fulfillment(lang, receiver):
@app.errorhandler(404)
def handler(e):
return flask.render_template(
- "donations-error.html.j2", lang=get_locale(), message=gettext("Page not found")
+ "donations-error.html.j2", message=gettext("Page not found")
)
diff --git a/talermerchantdemos/landing/landing.py b/talermerchantdemos/landing/landing.py
index 270e205..3c1f304 100644
--- a/talermerchantdemos/landing/landing.py
+++ b/talermerchantdemos/landing/landing.py
@@ -82,13 +82,19 @@ def get_locale():
return lang
return "en"
-
##
# Make the environment available into templates.
#
# @return the environment-reading function.
@app.context_processor
def utility_processor():
+
+ def getactive():
+ return "landing"
+
+ def getlang():
+ return get_locale()
+
def env(name, default=None):
return os.environ.get(name, default)
@@ -101,7 +107,7 @@ def utility_processor():
# returns the YYYY-MM-DD date format.
return timestamp.strftime("%Y-%b-%d")
- return dict(env=env, prettydate=prettydate)
+ return dict(env=env, prettydate=prettydate, getactive=getactive, getlang=getlang)
##
@@ -116,7 +122,6 @@ def internal_error(e):
"landing-error.html.j2",
message=gettext("Internal error"),
stack=traceback.format_exc(),
- lang=get_locale(),
)
@@ -175,7 +180,6 @@ def start(lang):
return flask.render_template(
"landing-index.html.j2",
merchant_currency=CURRENCY,
- lang=lang,
bank_url=bank_register_url,
merchant_blog_url=merchant_blog_url,
merchant_donations_url=merchant_donations_url,
@@ -186,7 +190,7 @@ def start(lang):
@app.errorhandler(404)
def handler_404(e):
return flask.render_template(
- "landing-error.html.j2", message=gettext("Page not found"), lang=get_locale()
+ "landing-error.html.j2", message=gettext("Page not found")
)
@@ -195,5 +199,4 @@ def handler_405(e):
return flask.render_template(
"landing-error.html.j2",
message=gettext("HTTP method not allowed for this page"),
- lang=get_locale(),
)
diff --git a/talermerchantdemos/survey/survey.py b/talermerchantdemos/survey/survey.py
index 4813477..1b06218 100644
--- a/talermerchantdemos/survey/survey.py
+++ b/talermerchantdemos/survey/survey.py
@@ -103,7 +103,13 @@ def utility_processor():
# returns the YYYY-MM-DD date format.
return timestamp.strftime("%Y-%b-%d")
- return dict(env=env, prettydate=prettydate)
+ def getactive():
+ return "survey"
+
+ def getlang():
+ return get_locale()
+
+ return dict(env=env, prettydate=prettydate, getactive=getactive, getlang=getlang)
##
@@ -118,7 +124,6 @@ def internal_error(e):
"survey-error.html.j2",
message=gettext("Internal error"),
stack=traceback.format_exc(),
- lang=get_locale(),
)
@@ -151,7 +156,9 @@ def submit_survey(lang):
next_url=os.environ.get("TALER_ENV_URL_INTRO", "https://taler.net/"),
justification="Payment methods survey",
)
- backend_resp = backend_post(INSTANCED_URL, "private/tips", tip_spec, auth_token=APIKEY)
+ backend_resp = backend_post(
+ INSTANCED_URL, "private/tips", tip_spec, auth_token=APIKEY
+ )
return flask.redirect(backend_resp["tip_status_url"])
@@ -173,14 +180,16 @@ def index():
@app.route("/<lang>/", methods=["GET"])
def start(lang):
return flask.render_template(
- "survey-index.html.j2", merchant_currency=CURRENCY, lang=lang
+ "survey-index.html.j2",
+ merchant_currency=CURRENCY,
)
@app.errorhandler(404)
def handler_404(e):
return flask.render_template(
- "survey-error.html.j2", message=gettext("Page not found"), lang=get_locale()
+ "survey-error.html.j2",
+ message=gettext("Page not found"),
)
@@ -189,7 +198,6 @@ def handler_405(e):
return flask.render_template(
"survey-error.html.j2",
message=gettext("HTTP method not allowed for this page"),
- lang=get_locale(),
)
@@ -197,7 +205,6 @@ def handler_405(e):
def handler_backend_exception(e):
t = flask.render_template(
"survey-error.html.j2",
- lang=get_locale(),
message=e.args[0],
json=e.backend_json,
status_code=e.backend_status,
diff --git a/talermerchantdemos/templates/common-base.html.j2 b/talermerchantdemos/templates/common-base.html.j2
index ff8d655..17e27c6 100644
--- a/talermerchantdemos/templates/common-base.html.j2
+++ b/talermerchantdemos/templates/common-base.html.j2
@@ -38,13 +38,43 @@
{% endblock %}
</div>
</header>
- {% from 'menu.html.j2' import menu with context %} {{ menu('landing') }}
+
+
+ <div style="display:flex; flex-direction: column;" class="navcontainer">
+ <nav class="demolist">
+ <a href="{{ env('TALER_ENV_URL_INTRO', '#') + getlang() + '/' }}"
+ {% if getactive() == 'landing' %} class="active" {% endif %}
+ >{{gettext("Introduction")}}</a>
+ <a href="{{ env('TALER_ENV_URL_BANK', '#') + getlang() + '/' }}"
+ {% if getactive() == 'bank' %} class="active" {% endif %}
+ >{{gettext("Bank")}}</a>
+ <a href="{{ env('TALER_ENV_URL_MERCHANT_BLOG', '#') + getlang() + '/' }}"
+ {% if getactive() == 'blog' %} class="active" {% endif %}
+ >{{gettext("Essay Shop")}}</a>
+ <a href="{{ env('TALER_ENV_URL_MERCHANT_DONATIONS', '#') + getlang() + '/' }}"
+ {% if getactive() == 'donations' %} class="active" {% endif %}
+ >{{gettext("Donations")}}</a>
+ <a href="{{ env('TALER_ENV_URL_MERCHANT_SURVEY', '#') + getlang() + '/' }}"
+ {% if getactive() == 'survey' %} class="active" {% endif %}
+ >{{gettext("Tipping/Survey")}}</a>
+ {% include 'language-switcher.html.j2' %}
+ </nav>
+ </div>
<section id="main" class="content">
{% block main %}
This is the main content of the page.
{% endblock %}
- {% include 'footer.html.j2' %}
+ <hr />
+ <div>
+ <p>
+ {{
+ gettext('You can learn more about GNU Taler on our main <a href="{site}">website</a>.').format(site="https://taler.net/" + getlang() + "/")
+ }}
+ </p>
+ <div style="flex-grow:1"></div>
+ <p>Copyright &copy; 2014&mdash;2020 Taler Systems SA</p>
+ </div>
</section>
</body>
</html>
diff --git a/talermerchantdemos/templates/donations-checkout.html.j2 b/talermerchantdemos/templates/donations-checkout.html.j2
index ec63d9f..677df85 100644
--- a/talermerchantdemos/templates/donations-checkout.html.j2
+++ b/talermerchantdemos/templates/donations-checkout.html.j2
@@ -19,7 +19,7 @@
}}
</p>
- <form name="tform" action="{{ url_for('donate',lang=lang) }}" method="get">
+ <form name="tform" action="{{ url_for('donate',lang=getlang()) }}" method="get">
<div id="opt-form" align="left"><br>
<input type="hidden" name="donation_receiver" value="{{ donation_receiver }}">
<input type="hidden" name="donation_amount" value="{{ donation_amount }}">
diff --git a/talermerchantdemos/templates/donations-index.html.j2 b/talermerchantdemos/templates/donations-index.html.j2
index 25a6768..05e958e 100644
--- a/talermerchantdemos/templates/donations-index.html.j2
+++ b/talermerchantdemos/templates/donations-index.html.j2
@@ -17,7 +17,7 @@
}}
</p>
- <form name="tform" action="{{ url_for('checkout',lang=lang) }}" method="GET" class="pure-form">
+ <form name="tform" action="{{ url_for('checkout',lang=getlang()) }}" method="GET" class="pure-form">
<div class="participation" id="fake-shop">
<select name="donation_receiver">
<option value="GNUnet">GNUnet</option>
diff --git a/talermerchantdemos/templates/footer.html.j2 b/talermerchantdemos/templates/footer.html.j2
deleted file mode 100644
index 7c585bc..0000000
--- a/talermerchantdemos/templates/footer.html.j2
+++ /dev/null
@@ -1,10 +0,0 @@
-<hr />
-<div>
- <p>
- {{
- gettext('You can learn more about GNU Taler on our main <a href="{site}">website</a>.').format(site="https://taler.net/" + lang + "/")
- }}
- </p>
- <div style="flex-grow:1"></div>
- <p>Copyright &copy; 2014&mdash;2020 Taler Systems SA</p>
-</div>
diff --git a/talermerchantdemos/templates/language-switcher.html.j2 b/talermerchantdemos/templates/language-switcher.html.j2
index dbf2d31..66c5405 100644
--- a/talermerchantdemos/templates/language-switcher.html.j2
+++ b/talermerchantdemos/templates/language-switcher.html.j2
@@ -1,50 +1,50 @@
<span class="right">
- {{ {"en": "English [en]", "ar": "Arabic [ar]", "zh_Hant": "Chinese [zh]", "fr": "French [fr]", "de": "German [de]", "hi": "Hindi [hi]", "it": "Italian [it]", "ja": "Japanese [ja]", "ko": "Korean [ko]", "pt": "Portuguese [pt]", "pt_BR": "Portuguese (Brazil) [pt_BR]", "ru": "Russian [ru]", "es": "Spanish [es]", "sv": "Swedish [sv]", "tr": "Turkish [tr]"}[lang] | default("en") }}
+ {{ {"en": "English [en]", "ar": "Arabic [ar]", "zh_Hant": "Chinese [zh]", "fr": "French [fr]", "de": "German [de]", "hi": "Hindi [hi]", "it": "Italian [it]", "ja": "Japanese [ja]", "ko": "Korean [ko]", "pt": "Portuguese [pt]", "pt_BR": "Portuguese (Brazil) [pt_BR]", "ru": "Russian [ru]", "es": "Spanish [es]", "sv": "Swedish [sv]", "tr": "Turkish [tr]"}[getlang()] | default("en") }}
<div class="nav">
<br>
- {% if lang != 'en' %}
+ {% if getlang() != 'en' %}
<a href="/en/" class="navbtn">English [en]</a><br>
{% endif %}
- {% if lang != 'ar' %}
+ {% if getlang() != 'ar' %}
<a href="/ar/" class="navbtn">Arabic [ar]</a><br>
{% endif %}
- {% if lang != 'zh_Hant' %}
+ {% if getlang() != 'zh_Hant' %}
<a href="/zh_Hant/" class="navbtn">Chinese [zh]</a><br>
{% endif %}
- {% if lang != 'fr' %}
+ {% if getlang() != 'fr' %}
<a href="/fr/" class="navbtn">Fran&ccedil;ais [fr]</a><br>
{% endif %}
- {% if lang != 'de' %}
+ {% if getlang() != 'de' %}
<a href="/de/" class="navbtn">Deutsch [de]</a><br>
{% endif %}
- {% if lang != 'hi' %}
+ {% if getlang() != 'hi' %}
<a href="/hi/" class="navbtn">Hindi [hi]</a><br>
{% endif %}
- {% if lang != 'it' %}
+ {% if getlang() != 'it' %}
<a href="/it/" class="navbtn">Italiano [it]</a><br>
{% endif %}
- {% if lang != 'ja' %}
+ {% if getlang() != 'ja' %}
<a href="/ja/" class="navbtn">Japanese [ja]</a><br>
{% endif %}
- {% if lang != 'ko' %}
+ {% if getlang() != 'ko' %}
<a href="/ko/" class="navbtn">Korean [ko]</a><br>
{% endif %}
- {% if lang != 'pt' %}
+ {% if getlang() != 'pt' %}
<a href="/pt/" class="navbtn">Português [pt]</a><br>
{% endif %}
- {% if lang != 'pt_BR' %}
+ {% if getlang() != 'pt_BR' %}
<a href="/pt_BR/" class="navbtn">Português (Brazil) [pt_BR]</a><br>
{% endif %}
- {% if lang != 'ru' %}
+ {% if getlang() != 'ru' %}
<a href="/ru/" class="navbtn">Russian [pt]</a><br>
{% endif %}
- {% if lang != 'es' %}
+ {% if getlang() != 'es' %}
<a href="/es/" class="navbtn">Espa&ntilde;ol [es]</a><br>
{% endif %}
- {% if lang != 'sv' %}
+ {% if getlang() != 'sv' %}
<a href="/sv/" class="navbtn">Svenska [sv]</a><br>
{% endif %}
- {% if lang != 'tr' %}
+ {% if getlang() != 'tr' %}
<a href="/tr/" class="navbtn">Turkish [tr]</a><br>
{% endif %}
diff --git a/talermerchantdemos/templates/menu.html.j2 b/talermerchantdemos/templates/menu.html.j2
deleted file mode 100644
index 937030d..0000000
--- a/talermerchantdemos/templates/menu.html.j2
+++ /dev/null
@@ -1,22 +0,0 @@
-{% macro menu(active) -%}
-<div style="display:flex; flex-direction: column;" class="navcontainer">
- <nav class="demolist">
- <a href="{{ env('TALER_ENV_URL_INTRO', '#') + lang + '/' }}"
- {% if active == 'landing' %} class="active" {% endif %}
- >{{gettext("Introduction")}}</a>
- <a href="{{ env('TALER_ENV_URL_BANK', '#') + lang + '/' }}"
- {% if active == 'bank' %} class="active" {% endif %}
- >{{gettext("Bank")}}</a>
- <a href="{{ env('TALER_ENV_URL_MERCHANT_BLOG', '#') + lang + '/' }}"
- {% if active == 'blog' %} class="active" {% endif %}
- >{{gettext("Essay Shop")}}</a>
- <a href="{{ env('TALER_ENV_URL_MERCHANT_DONATIONS', '#') + lang + '/' }}"
- {% if active == 'donations' %} class="active" {% endif %}
- >{{gettext("Donations")}}</a>
- <a href="{{ env('TALER_ENV_URL_MERCHANT_SURVEY', '#') + lang + '/' }}"
- {% if active == 'survey' %} class="active" {% endif %}
- >{{gettext("Tipping/Survey")}}</a>
- {% include 'language-switcher.html.j2' %}
- </nav>
-</div>
-{%- endmacro %}
diff --git a/talermerchantdemos/templates/survey-index.html.j2 b/talermerchantdemos/templates/survey-index.html.j2
index e7d323b..d860573 100644
--- a/talermerchantdemos/templates/survey-index.html.j2
+++ b/talermerchantdemos/templates/survey-index.html.j2
@@ -8,7 +8,7 @@
</p>
</div>
<div>
- <form action="{{ "/" + lang + "/submit-survey" }}" method="post" class="pure-form pure-form-stacked">
+ <form action="{{ "/" + getlang() + "/submit-survey" }}" method="post" class="pure-form pure-form-stacked">
<legend>{{ gettext("Which payment system do you prefer?") }}</legend>
<fieldset>
<label for="option-taler">