From 62892c1d28057bfeb17e396c316bdcd34bb8a5e9 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Wed, 13 Mar 2019 21:26:05 +0100 Subject: webapp.py: make it prettier Thanks to Paul Wise, Guillem Jover and itd@oftc for their feedback. --- webapp.py | 174 ++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 114 insertions(+), 60 deletions(-) (limited to 'webapp.py') diff --git a/webapp.py b/webapp.py index 84e83fb..e32a8af 100644 --- a/webapp.py +++ b/webapp.py @@ -21,68 +21,115 @@ db = flask_sqlalchemy.SQLAlchemy(app) src_template = """ + {{ sourcepackage|e }} - Debian cross build + - {{ sourcepackage|e }} - Debian cross build -

{{ sourcepackage|e }}

-

Cross satisfiability

- - - - - - {%- set okarchs = depresult.pop(None, None) -%} - {%- for reason, archs in depresult.items()|sort -%} - - - - - {%- endfor -%} - {%- if okarchs -%} - - - - - {%- endif -%} -
statearchitectures
{{ reason|e }}{{ archs|arch_format }}
ok{{ okarchs|arch_format }}
-
See also
- - {%- if builds -%} -

Cross builds

+
+

+ + {{- sourcepackage|e -}} + +

+
+
+

Cross build dependency satisfiability

- - - - - - - {%- for build in builds|sort(attribute='starttime', reverse=true) -%} + - - - - + + - {%- endfor -%} + + + {%- set okarchs = depresult.pop(None, None) -%} + {%- for reason, archs in depresult.items()|sort -%} + + + + + {%- endfor -%} + {%- if okarchs -%} + + + + + {%- endif -%} +
startedversionarchitectureresult
- - {{- build.starttime|sqltimestamp|formatts -}} - - {{ build.version|e }}{{ build.architecture|e }} - - {{- "ok" if build.success else "failed" -}} - - xz - statearchitectures
{{ reason|e }}{{ archs|arch_format }}
ok{{ okarchs|arch_format }}
+
See also
+ +
+ {%- if builds -%} +
+

Cross builds

+ + + + + + + + + + + {%- for build in builds|sort(attribute='starttime', reverse=true) -%} + + + + + + + {%- endfor -%} + +
startedversionarchitectureresult log
+ {{- build.starttime|sqltimestamp|formatts -}} + {{ build.version|e }}{{ build.architecture|e }} + + {{- "ok" if build.success else "failed" -}} + + xz +
+
{%- endif -%} @@ -90,13 +137,14 @@ src_template = """ @app.template_filter("sqltimestamp") def sqltimestamp_filter(s): + strptime = datetime.datetime.strptime try: - return datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S.%f") + return strptime(s, "%Y-%m-%d %H:%M:%S.%f").replace(microsecond=0) except ValueError: - return datetime.datetime.strptime(s, "%Y-%m-%d %H:%M:%S") + return strptime(s, "%Y-%m-%d %H:%M:%S") -@app.template_filter("formatts") -def formatts_filter(ts): + +def formatts(ts): assert isinstance(ts, datetime.datetime) dt = datetime.datetime.utcnow() - ts if dt < datetime.timedelta(seconds=1): @@ -109,6 +157,12 @@ def formatts_filter(ts): return "%d h" % (dt.seconds // (60 * 60)) return "%d d" % dt.days + +@app.template_filter("formatts") +def formatts_filter(ts): + return jinja2.Markup('' % + (ts, ts, formatts(ts))) + @app.template_filter('arch_format') @jinja2.contextfilter def arch_format_filter(context, some_archs): -- cgit v1.2.3