diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-31 17:10:33 -0800 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-02-01 11:41:01 -0800 | 
| commit | a24e3a67987e7a070eca562ce1cf30a59c206e06 (patch) | |
| tree | f5afe17774049de7497f7b2aed69d11d20d8cb01 /python/fatcat_web | |
| parent | 6910220ad899c3ae8c9c37c578aa116c60cd2855 (diff) | |
| download | fatcat-a24e3a67987e7a070eca562ce1cf30a59c206e06.tar.gz fatcat-a24e3a67987e7a070eca562ce1cf30a59c206e06.zip | |
tweaks and fixes for new container extra schema
Diffstat (limited to 'python/fatcat_web')
| -rw-r--r-- | python/fatcat_web/routes.py | 13 | ||||
| -rw-r--r-- | python/fatcat_web/templates/container_view.html | 44 | ||||
| -rw-r--r-- | python/fatcat_web/templates/release_view.html | 42 | 
3 files changed, 56 insertions, 43 deletions
| diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py index 926d5340..21f81eae 100644 --- a/python/fatcat_web/routes.py +++ b/python/fatcat_web/routes.py @@ -8,6 +8,7 @@ from fatcat_web import app, api, auth_api, priv_api  from fatcat_web.auth import handle_token_login, handle_logout, load_user, handle_ia_xauth  from fatcat_client.rest import ApiException  from fatcat_web.search import do_search +from fatcat_tools.transforms import *  ### Views ################################################################### @@ -86,6 +87,7 @@ def container_view(ident):          return redirect('/container/{}'.format(entity.redirect))      if entity.state == "deleted":          return render_template('deleted_entity.html', entity=entity) +    entity.es = container_to_elasticsearch(entity, force_bool=False)      return render_template('container_view.html', container=entity)  @app.route('/creator/<ident>/history', methods=['GET']) @@ -236,17 +238,18 @@ def release_edit_view(ident):  @app.route('/release/<ident>', methods=['GET'])  def release_view(ident):      try: -        entity = api.get_release(ident) -        files = api.get_release_files(ident) -        container = None -        if entity.container_id is not None: -            container = api.get_container(entity.container_id) +        entity = api.get_release(ident, expand="container,files,filesets,webcaptures") +        files = entity.files +        container = entity.container      except ApiException as ae:          abort(ae.status)      if entity.state == "redirect":          return redirect('/release/{}'.format(entity.redirect))      if entity.state == "deleted":          return render_template('deleted_entity.html', entity=entity) +    if entity.container: +        entity.container.es = container_to_elasticsearch(entity.container, force_bool=False) +    entity.es = release_to_elasticsearch(entity, force_bool=False)      authors = [c for c in entity.contribs if c.role in ('author', None)]      authors = sorted(authors, key=lambda c: c.index)      for fe in files: diff --git a/python/fatcat_web/templates/container_view.html b/python/fatcat_web/templates/container_view.html index 4a175a5d..ffe01185 100644 --- a/python/fatcat_web/templates/container_view.html +++ b/python/fatcat_web/templates/container_view.html @@ -15,14 +15,11 @@  <p><b>Publisher:</b>  {% if container.publisher != None %}{{ container.publisher }}{% else %}<i>Unknown</i>{% endif %} -{% if (container.extra != None) and (container.extra['url'] != None) and (container.extra['url']|length > 0) %} -<br><b>Homepage:</b> <a href="{{ container.extra['url'] }}"> <code>{{ container.extra['url'] }}</code></a> -{% endif %} -{% if container.wikidata_qid != None %} -<br><b>Wikidata Entity:</b> <a href="https://www.wikidata.org/wiki/{{ container.wikidata_qid }}"> <code>{{ container.wikidata_qid }}</code></a> +{% if (container.extra != None) and (container.extra['urls'] != None) and (container.extra['urls']|length > 0) %} +<br><b>Homepage:</b> <a href="{{ container.extra['urls'][0] }}"> <code>{{ container.extra['urls'][0] }}</code></a>  {% endif %} -{% if container.extra != None %} +{% if container.extra %}  <h3>Extra Metadata (raw JSON)</h3>  {% for (key, value) in container.extra.items() %}  <code><b>{{ key }}:</b> {{ value }}</code><br> @@ -38,15 +35,16 @@ Raw Object:  <div class="five wide column">  <div class="ui segment top attached"> -{% if container.extra.is_oa == True %} +{% if container.es and container.es.is_oa == True %}  <i class="icon unlock huge orange"></i><b>Open Access Publisher</b> -{% elif container.extra.is_oa == False  %} +{% elif container.es and container.es.is_oa == False  %}  <i class="icon lock huge black"></i><b>Not Open Access</b>  {% else %}  <i class="icon question huge grey"></i><b>Unknown OA Status</b>  {% endif %}  </div><div class="ui segment attached"> +{% if container.issnl != None or container.wikidata_qid != None %}  {% if container.issnl != None %}    <b>ISSN-L<sup><a href="https://en.wikipedia.org/wiki/International_Standard_Serial_Number#Linking_ISSN">?</a></sup></b>      <code>{{ container.issnl }}</code> @@ -56,33 +54,45 @@ Raw Object:    {% if container.extra != None and container.extra.ISSNe != None and (container.extra.ISSNe|length > 0) %}      <br><i class="icon plug"></i>Electronic:  <code>{{ container.extra.ISSNe }}</code>    {% endif %} +{% endif %} +{% if container.wikidata_qid != None %} +  <br><b>Wikidata:</b>  <a href="https://wikidata.org/wiki/{{ container.wikidata_qid }}"><code>{{ container.wikidata_qid }}</code></a> +{% endif %}    </div><div class="ui segment attached">  {% endif %} +{% if (container.es and container.es != None) %}  <b>Directory Listings</b><br> -{% if (container.extra != None) %} -  {% if container.extra.in_doaj == True %} +  {% if container.es.in_doaj == True %}      <i class="icon check green"></i> In <a href="https://doaj.org/toc/{{ container.issnl }}">DOAJ</a><br> -  {% elif container.extra.in_doaj == False %} +  {% elif container.es.in_doaj == False %}      <i class="icon times grey"></i> Not in <a href="https://doaj.org">DOAJ</a><br>    {% endif %} -  {% if container.extra.in_road == True %} + +  {% if container.es.in_road == True %}      <i class="icon check green"></i> In <a href="http://road.issn.org/issn/{{ container.issnl }}">ISSN ROAD</a><br> -  {% elif container.extra.in_road == False %} +  {% elif container.es.in_road == False %}      <i class="icon times grey"></i> Not in <a href="https://road.issn.org">ISSN ROAD</a><br>    {% endif %} -  {% if container.extra.is_kept == True %} + +  {% if container.es.in_kbart == True %}      <i class="icon check green"></i> In <a href="https://thekeepers.org/purl/issn/{{ container.issnl }}">Keepers Registery</a><br> -  {% elif container.extra.is_kept == False %} +  {% elif container.es.in_kbart == False %}      <i class="icon times grey"></i> Not in <a href="https://thekeepers.org/journals?query={{ container.issnl }}">Keepers Registry</a><br>    {% endif %} -{% endif %} + +  {% if container.extra and container.extra.sherpa_romeo and container.extra.sherpa_romeo.color %} +    SHERPA/RoMEO color: <code>{{ container.extra.sherpa_romeo.color }}</code> +  {% endif %}  </div><div class="ui segment attached"> +{% endif %}  <b>Lookup Links</b>  <br><a href="http://www.sherpa.ac.uk/romeo/issn/{{ container.issnl }}/">SHERPA/RoMEO</a> (access policies) -<br><a href="https://www.wikidata.org/w/index.php?search={{ container.name }}">wikidata.org</a> +{% if not container.wikidata_qid %} +  <br><a href="https://www.wikidata.org/w/index.php?search={{ container.name }}">wikidata.org</a> +{% endif %}  </div><div class="ui segment attached">  <b>Fatcat Bits</b> diff --git a/python/fatcat_web/templates/release_view.html b/python/fatcat_web/templates/release_view.html index c81bf478..3716f0cb 100644 --- a/python/fatcat_web/templates/release_view.html +++ b/python/fatcat_web/templates/release_view.html @@ -154,20 +154,20 @@ This release citing other releases.        {% if ref.container_name %}{{ ref.container_name }}.{% endif %}        {% if ref.year %}{{ ref.year }}{% endif %}        {% if ref.locator %}{{ ref.locator }}{% endif %} -    {% elif ref.extra %} +    {% elif ref.extra != None %}        {% if ref.extra.get('author') %}{{ ref.extra['author'] }}.{% endif %}        {% if ref.extra.get('article-title') %}{{ ref.extra['article-title'] }}.{% endif %}        {% if ref.container_name %}{{ ref.container_name }}.{% endif %}        {% if ref.year %}{{ ref.year }}.{% endif %} -    {% elif ref.extra and ref.extra.unstructured %} -      {{ ref.extra.unstructured }} +      {% if ref.extra.unstructured %}{{ ref.extra.unstructured }}{% endif %}      {% else %}        <i>unknown</i>      {% endif %}      {% if ref.target_release_id != None %} -      (<a href="/release/{{ ref.target_release_id }}">fatcat release</a>) -{#    {% elif ref.extra != None and ref.extra.doi != None %} -      (DOI: <a href="/release/lookup?doi={{ ref.exta.get('doi') }}">{{ ref.extra.get('doi') }}</a>) #} +      (<a href="/release/{{ ref.target_release_id }}">fatcat entry</a>) +    {% endif %} +    {% if ref.extra != None and ref.extra.doi %} +      (DOI: <a href="/release/lookup?doi={{ ref.extra.doi }}">{{ ref.extra.doi }}</a>)      {% endif %}    {% endfor %}  </ol> @@ -186,13 +186,13 @@ This release citing other releases.  {% if release.release_type != None %}  <div class="ui segment attached"> -<b>Release Type</b> <code>{{ release.release_type }}</code> +<b>Release Type</b>  <code>{{ release.release_type }}</code>  </div>  {% endif %}  {% if release.doi %}  <div class="ui segment attached"> -<b>DOI </b> <a href="https://doi.org/{{ release.doi }}">{{ release.doi }}</a> +<b>DOI </b>  <a href="https://doi.org/{{ release.doi }}">{{ release.doi }}</a>  </div>  {% endif %}  {% if release.isbn13 != None %} @@ -210,37 +210,37 @@ This release citing other releases.  </div>  {% endif %} -{% if container != None %} +{% if container != None and container.es != None %}  <div class="ui segment attached">  <b>Container Metadata</b><br> -{% if container.extra.is_oa == True %} +{% if container.es.is_oa == True %}  <i class="icon unlock orange"></i>Open Access Publication<br> -{% elif container.extra.is_oa == False  %} +{% elif container.es.is_oa == False  %}  <i class="icon lock black"></i>Not Open Access<br>  {% else %}  <i class="icon question grey"></i>Unknown OA Status<br>  {% endif %} -{% if (container.extra != None) %} -  {% if container.extra.in_doaj == True %} +{% if (container.es != None) %} +  {% if container.es.in_doaj == True %}      <i class="icon check green"></i> In <a href="https://doaj.org/toc/{{ container.issnl }}">DOAJ</a><br> -  {% elif container.extra.in_doaj == False %} +  {% elif container.es.in_doaj == False %}      <i class="icon times grey"></i> Not in <a href="https://doaj.org">DOAJ</a><br>    {% endif %} -  {% if container.extra.in_road == True %} +  {% if container.es.in_road == True %}      <i class="icon check green"></i> In <a href="http://road.issn.org/issn/{{ container.issnl }}">ISSN ROAD</a><br> -  {% elif container.extra.in_road == False %} +  {% elif container.es.in_road == False %}      <i class="icon times grey"></i> Not in <a href="https://road.issn.org">ISSN ROAD</a><br>    {% endif %} -  {% if container.extra.is_kept == True %} +  {% if container.es.in_kbart == True %}      <i class="icon check green"></i> In <a href="https://thekeepers.org/purl/issn/{{ container.issnl }}">Keepers Registery</a><br> -  {% elif container.extra.is_kept == False %} +  {% elif container.es.in_kbart == False %}      <i class="icon times grey"></i> Not in <a href="https://thekeepers.org/journals?query={{ container.issnl }}">Keepers Registry</a><br>    {% endif %}  {% endif %}  {% if container.issnl != None %} -  <i class="icon hashtag"></i>ISSN-L:  <code>{{ container.issnl }}</code><br> +  <i class="icon linkify"></i>ISSN-L:  <code>{{ container.issnl }}</code><br>  {% endif %} -  <i class="icon linkify"></i>Fatcat:  <small><code><a href="/container/{{ container.ident }}">{{ container.ident }}</a></code></small><br> +  <a href="/container/{{ container.ident }}" title="container {{ container.ident }}"><i class="icon share"></i>Fatcat Entry</a>  </div>  {% endif %} @@ -273,7 +273,7 @@ This release citing other releases.  <b>Fatcat Bits</b>  <p>State is "{{ release.state }}". Revision:  <br><small><code>{{ release.revision }}</code></small> -<br><a href="https://api.{{ config.FATCAT_DOMAIN }}/v0/release/{{ release.ident }}?expand=container,files">As JSON object via API</a> +<br><a href="https://api.{{ config.FATCAT_DOMAIN }}/v0/release/{{ release.ident }}?expand=container,files,filesets,webcaptures">As JSON object via API</a>  </div>  <div class="two ui buttons bottom attached"> | 
