From f75190ab7979c411bc8d90fab13c931933f4595c Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Wed, 4 Sep 2019 13:24:44 -0700 Subject: finish container coverage page Also re-worked container view sidebar a bit more. --- python/fatcat_web/routes.py | 15 ++++++ python/fatcat_web/search.py | 12 ++++- python/fatcat_web/templates/container_view.html | 38 +++++--------- .../templates/container_view_coverage.html | 61 ++++++++++++++++++++-- python/fatcat_web/templates/entity_macros.html | 13 +++++ 5 files changed, 110 insertions(+), 29 deletions(-) (limited to 'python/fatcat_web') diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py index 3f5af621..d41d6bdf 100644 --- a/python/fatcat_web/routes.py +++ b/python/fatcat_web/routes.py @@ -15,6 +15,7 @@ from fatcat_web.auth import handle_token_login, handle_logout, load_user, handle from fatcat_web.cors import crossdomain from fatcat_web.search import * from fatcat_web.entity_helpers import * +from fatcat_web.graphics import * ### Generic Entity Views #################################################### @@ -737,6 +738,20 @@ def container_ident_ia_coverage_years_json(ident): histogram = [dict(year=h[0], in_ia=h[1], count=h[2]) for h in histogram] return jsonify({'container_id': ident, "histogram": histogram}) +@app.route('/container//ia_coverage_years.svg', methods=['GET', 'OPTIONS']) +@crossdomain(origin='*',headers=['access-control-allow-origin','Content-Type']) +def container_ident_ia_coverage_years_svg(ident): + try: + container = api.get_container(ident) + except ApiException as ae: + abort(ae.status) + try: + histogram = get_elastic_container_histogram(container.ident) + except Exception as ae: + app.log.error(ae) + abort(503) + return ia_coverage_histogram(histogram).render_response() + @app.route('/release/.bib', methods=['GET']) def release_bibtex(ident): try: diff --git a/python/fatcat_web/search.py b/python/fatcat_web/search.py index 523269ce..2ee76517 100644 --- a/python/fatcat_web/search.py +++ b/python/fatcat_web/search.py @@ -213,6 +213,11 @@ def get_elastic_container_stats(ident, issnl=None): preserved """ + # XXX: + ident = "iznnn644szdwva7khyxqzc73bi" + ident = "lx7svdzmc5dl3ay4zncjjrql7i" + ident = "sn27gkxlkbhuzeexoqyapc756a" + query = { "size": 0, "query": { @@ -296,6 +301,11 @@ def get_elastic_container_histogram(ident): (year, in_ia, count) """ + # XXX: + ident = "iznnn644szdwva7khyxqzc73bi" + ident = "lx7svdzmc5dl3ay4zncjjrql7i" + ident = "sn27gkxlkbhuzeexoqyapc756a" + query = { "aggs": { "year_in_ia": { @@ -346,7 +356,7 @@ def get_elastic_container_histogram(ident): resp.raise_for_status() # TODO: abort() resp = resp.json() - print(resp) + #print(resp) vals = [(h['key']['year'], h['key']['in_ia'], h['doc_count']) for h in resp['aggregations']['year_in_ia']['buckets']] vals = sorted(vals) diff --git a/python/fatcat_web/templates/container_view.html b/python/fatcat_web/templates/container_view.html index 87e70f2b..0efc18a0 100644 --- a/python/fatcat_web/templates/container_view.html +++ b/python/fatcat_web/templates/container_view.html @@ -3,18 +3,6 @@ {% import "entity_macros.html" as entity_macros %} {% extends "entity_base.html" %} -{% macro progress_color(frac) -%} -{% if frac >= 1 %} -green -{% elif frac > 0.95 %} -olive -{% elif frac < 0.5 %} -red -{% else %} -yellow -{% endif %} -{%- endmacro %} - {% block entity_main %}
@@ -69,7 +57,7 @@ yellow {% if container._stats %}
-
+
{{ "{:,}".format(container._stats.total) }}
Known Releases
@@ -80,26 +68,26 @@ yellow {% set frac_preserved = container._stats.is_preserved/container._stats.total %} {% set frac_web = container._stats.in_web/container._stats.total %} -
-
-
{{ "{:.1f}".format(frac_kbart*100) }}%
+
+
+
{{ (frac_web*100)|int }}%
- {{ "{:,}".format(container._stats.in_kbart ) }} preserved (dark) + {{ "{:,}".format(container._stats.in_web) }} preserved and available (bright) -
-
-
{{ "{:.1f}".format(frac_preserved*100) }}%
+
+
+
{{ (frac_preserved*100)|int }}%
- {{ "{:,}".format(container._stats.is_preserved) }} preserved or available + {{ "{:,}".format(container._stats.is_preserved) }} preserved at all (bright or dark) -
-
-
{{ "{:.1f}".format(frac_web*100) }}%
+
+
+
{{ (frac_kbart*100)|int }}%
- {{ "{:,}".format(container._stats.in_web) }} fulltext available to read + {{ "{:,}".format(container._stats.in_kbart ) }} preserved by Keeper (dark) {% endif %}
diff --git a/python/fatcat_web/templates/container_view_coverage.html b/python/fatcat_web/templates/container_view_coverage.html index eb9dba8a..db435181 100644 --- a/python/fatcat_web/templates/container_view_coverage.html +++ b/python/fatcat_web/templates/container_view_coverage.html @@ -6,10 +6,65 @@ {% block entity_main %} -

Preservation Coverage By Year

+
+
+
+
+
{{ "{:,}".format(container._stats.total) }}
+
Known Releases
+
+ {% if container._stats.total >= 1 %} - -
Download as JSON + {% set frac_kbart = container._stats.in_kbart/container._stats.total %} + {% set frac_preserved = container._stats.is_preserved/container._stats.total %} + {% set frac_web = container._stats.in_web/container._stats.total %} + +
+
+
{{ (frac_web*100)|int }}%
+
+
+ {{ "{:,}".format(container._stats.in_web) }} preserved and available (bright) +
+
+ +
+
+
+
{{ (frac_preserved*100)|int }}%
+
+
+ {{ "{:,}".format(container._stats.is_preserved) }} preserved at all (bright or dark) +
+
+ +
+
+
+
{{ (frac_kbart*100)|int }}%
+
+
+ {{ "{:,}".format(container._stats.in_kbart ) }} preserved by Keeper (dark) +
+
+ + {% endif %} +
+
+
+ +{% if container._stats.total >= 1 %} +
+

Perpetual Access Coverage by Year

+ +
+ +
+ + +{% endif %} {% endblock %} diff --git a/python/fatcat_web/templates/entity_macros.html b/python/fatcat_web/templates/entity_macros.html index 6124630c..fc199c21 100644 --- a/python/fatcat_web/templates/entity_macros.html +++ b/python/fatcat_web/templates/entity_macros.html @@ -221,3 +221,16 @@ {% endif %}
{% endmacro %} + +{% macro progress_color(frac) -%} +{% if frac >= 1 %} +green +{% elif frac > 0.95 %} +olive +{% elif frac < 0.5 %} +red +{% else %} +yellow +{% endif %} +{%- endmacro %} + -- cgit v1.2.3