From bdec6cf4a394700e20a6b67881409d1098ceabc0 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Thu, 19 Apr 2018 19:29:06 -0700 Subject: [PATCH] Add filter to generate /file/ link with appropriate basename. Because inlining the |urlencode every time is easy to forget. --- .../etiquette_flask/etiquette_flask/common.py | 1 + .../etiquette_flask/jinja_filters.py | 9 ++++++++- .../etiquette_flask/templates/photo.html | 19 +++++++++---------- .../etiquette_flask/templates/photo_card.html | 4 ++-- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/frontends/etiquette_flask/etiquette_flask/common.py b/frontends/etiquette_flask/etiquette_flask/common.py index 772056e..d3e5bf3 100644 --- a/frontends/etiquette_flask/etiquette_flask/common.py +++ b/frontends/etiquette_flask/etiquette_flask/common.py @@ -33,6 +33,7 @@ site.jinja_env.add_extension('jinja2.ext.do') site.jinja_env.trim_blocks = True site.jinja_env.lstrip_blocks = True site.jinja_env.filters['bytestring'] = jinja_filters.bytestring +site.jinja_env.filters['file_link'] = jinja_filters.file_link site.debug = True P = etiquette.photodb.PhotoDB() diff --git a/frontends/etiquette_flask/etiquette_flask/jinja_filters.py b/frontends/etiquette_flask/etiquette_flask/jinja_filters.py index 1f93b64..63deaa6 100644 --- a/frontends/etiquette_flask/etiquette_flask/jinja_filters.py +++ b/frontends/etiquette_flask/etiquette_flask/jinja_filters.py @@ -1,9 +1,16 @@ import etiquette +import jinja2.filters import voussoirkit.bytestring def bytestring(x): try: return voussoirkit.bytestring.bytestring(x) - except Exception: + except Exception as e: return '??? b' + +def file_link(photo, short=False): + if short: + return f'/file/{photo.id}{photo.dot_extension}' + basename = jinja2.filters.do_urlencode(photo.basename) + return f'/file/{photo.id}/{basename}' diff --git a/frontends/etiquette_flask/templates/photo.html b/frontends/etiquette_flask/templates/photo.html index 205a908..37f1aed 100644 --- a/frontends/etiquette_flask/templates/photo.html +++ b/frontends/etiquette_flask/templates/photo.html @@ -8,8 +8,6 @@ - {% set filename = photo.id + photo.dot_extension %} - {% set file_link = "/file/" + filename %}