inveniosoftware / invenio-rdm-records

DataCite-based data model for InvenioRDM flavour.
https://invenio-rdm-records.readthedocs.io
MIT License
15 stars 84 forks source link

template/data model: cannot access landing page #315

Closed ppanero closed 3 years ago

ppanero commented 3 years ago

Package version (if known): 0.25.5

Describe the bug

When accessing the landing page of a demo record, it fails.

Steps to Reproduce

  1. Bootstrap from cookiecutter master
  2. Go to the search page and click on any demo record

Gives:

Traceback (most recent call last):
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/werkzeug/middleware/proxy_fix.py", line 169, in __call__
    return self.app(environ, start_response)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/werkzeug/middleware/dispatcher.py", line 66, in __call__
    return app(environ, start_response)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_records_ui/views.py", line 205, in record_view
    return view_method(pid, record, template=template, **kwargs)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_records_ui/views.py", line 227, in default_view_method
    record=record,
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/templating.py", line 140, in render_template
    ctx.app,
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/flask/templating.py", line 120, in _render
    rv = template.render(context)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/jinja2/environment.py", line 1090, in render
    self.environment.handle_exception()
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_rdm_records/theme/templates/invenio_rdm_records/record_landing_page.html", line 20, in top-level template code
    {%- set metadata = record.metadata %}
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_theme/templates/semantic-ui/invenio_theme/page.html", line 59, in top-level template code
    {%- block body %}
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_theme/templates/semantic-ui/invenio_theme/page.html", line 65, in block "body"
    {%- block body_inner %}
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_theme/templates/semantic-ui/invenio_theme/page.html", line 69, in block "body_inner"
    {%- block page_body %}
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_rdm_records/theme/templates/invenio_rdm_records/record_landing_page.html", line 31, in block "page_body"
    {%- block record_body %}
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/invenio_rdm_records/theme/templates/invenio_rdm_records/record_landing_page.html", line 42, in block "record_body"
    <span class="ui label small access-right {{ record.ui.access_right.icon }}">
  File "/Users/ppanero/.virtualenvs/vocab/lib/python3.7/site-packages/jinja2/environment.py", line 471, in getattr
    return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'access_right'

Solution

Add an access component with https://github.com/inveniosoftware/invenio-records-resources/commit/2a461d4b6b38aa10a2061522641cba46a962b095 in RDM records level.

Context

Via API it can be observed that the access field is not sent back:

{
  "revision_id": 1,
  "created": "2020-12-14 09:06:54.385284",
  "metadata": {
    "publisher": "InvenioRDM",
    "additional_descriptions": [
      {
        "description": "Would find range enough data. Better discussion cell doctor. Off there design behavior effort whether.",
        "type": "methods",
        "lang": "eng"
      },
      {
        "description": "Probably particular where expect those kitchen art. Community build build moment road pressure heart.\nFly very serious situation may meeting while. Third part team as garden say.",
        "type": "methods",
        "lang": "eng"
      }
    ],
    "funding": [
      {
        "funder": {
          "identifier": "1234",
          "scheme": "ror",
          "name": "European Commission"
        },
        "award": {
          "number": "246686",
          "identifier": ".../246686",
          "title": "OpenAIRE",
          "scheme": "openaire"
        }
      }
    ],
    "sizes": [
      "11 pages"
    ],
    "subjects": [
      {
        "subject": "chair",
        "identifier": "subj-1",
        "scheme": "no-scheme"
      },
      {
        "subject": "hot",
        "identifier": "subj-1",
        "scheme": "no-scheme"
      }
    ],
    "version": "v0.0.1",
    "resource_type": {
      "type": "software"
    },
    "locations": [
      {
        "place": "Leioa",
        "identifiers": {
          "geonames": "12345abcde",
          "wikidata": "12345abcde"
        },
        "description": "Random place on land...",
        "geometry": {
          "type": "Point",
          "coordinates": [
            -8.6056795,
            61.123614
          ]
        }
      },
      {
        "place": "Deoli",
        "geometry": {
          "type": "MultiPoint",
          "coordinates": [
            [
              -50.692158,
              4.595244
            ],
            [
              14.779257,
              70.500445
            ]
          ]
        }
      }
    ],
    "formats": [
      "application/pdf"
    ],
    "contributors": [
      {
        "given_name": "Jennifer",
        "type": "personal",
        "name": "Taylor, Jennifer",
        "family_name": "Taylor",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Banks and Sons"
          }
        ],
        "role": "rightsholder"
      },
      {
        "given_name": "Ronald",
        "type": "personal",
        "name": "Brown, Ronald",
        "family_name": "Brown",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Daugherty-Franklin"
          }
        ],
        "role": "rightsholder"
      },
      {
        "given_name": "Katelyn",
        "type": "personal",
        "name": "Adams, Katelyn",
        "family_name": "Adams",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Pitts LLC"
          }
        ],
        "role": "rightsholder"
      }
    ],
    "title": "Forbes, Bird and Nelson's gallery",
    "references": [
      {
        "identifier": "9999.99988",
        "reference": "Reference to something et al.",
        "scheme": "grid"
      }
    ],
    "related_identifiers": [
      {
        "identifier": "10.9999/rdm.9999988",
        "relation_type": "requires",
        "resource_type": {
          "type": "lesson"
        },
        "scheme": "doi"
      }
    ],
    "publication_date": "1980-12",
    "dates": [
      {
        "date": "1977-12-14",
        "type": "other",
        "description": "Random test date"
      }
    ],
    "creators": [
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Erin",
        "type": "personal",
        "name": "Moore, Erin",
        "family_name": "Moore",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Chapman-Perkins"
          }
        ]
      },
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Jason",
        "type": "personal",
        "name": "Johnson, Jason",
        "family_name": "Johnson",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Berger, Leonard and Navarro"
          }
        ]
      },
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Lisa",
        "type": "personal",
        "name": "Sanchez, Lisa",
        "family_name": "Sanchez",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Obrien-Grant"
          }
        ]
      },
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Benjamin",
        "type": "personal",
        "name": "Bolton, Benjamin",
        "family_name": "Bolton",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Wright, Bailey and Jackson"
          }
        ]
      }
    ],
    "description": "Lot crime magazine [...],
    "additional_titles": [
      {
        "type": "subtitle",
        "title": "a research data management platform",
        "lang": "eng"
      },
      {
        "type": "alternativetitle",
        "title": "Navarro LLC's gallery",
        "lang": "eng"
      }
    ],
    "rights": [
      {
        "identifier": "BSD-3",
        "uri": "https://opensource.org/licenses/BSD-3-Clause",
        "rights": "Berkeley Software Distribution 3",
        "scheme": "BSD-3"
      }
    ]
  },
  "id": "ggjy7-y2f02",
  "conceptid": "2pc0g-fb674",
  "updated": "2020-12-14 09:06:54.419497",
  "links": {
    "self_html": "https://127.0.0.1:5000/records/ggjy7-y2f02",
    "files": "https://127.0.0.1:5000/api/records/ggjy7-y2f02/files",
    "self": "https://127.0.0.1:5000/api/records/ggjy7-y2f02"
  }
}

And using the UI MIMEType:

{
  "revision_id": 1,
  "created": "2020-12-14 09:06:54.385284",
  "metadata": {
    "publisher": "InvenioRDM",
    "additional_descriptions": [
      {
        "description": "Would find range enough data. Better discussion cell doctor. Off there design behavior effort whether.",
        "type": "methods",
        "lang": "eng"
      },
      {
        "description": "Probably particular where expect those kitchen art. Community build build moment road pressure heart.\nFly very serious situation may meeting while. Third part team as garden say.",
        "type": "methods",
        "lang": "eng"
      }
    ],
    "funding": [
      {
        "funder": {
          "identifier": "1234",
          "scheme": "ror",
          "name": "European Commission"
        },
        "award": {
          "number": "246686",
          "identifier": ".../246686",
          "title": "OpenAIRE",
          "scheme": "openaire"
        }
      }
    ],
    "sizes": [
      "11 pages"
    ],
    "subjects": [
      {
        "subject": "chair",
        "identifier": "subj-1",
        "scheme": "no-scheme"
      },
      {
        "subject": "hot",
        "identifier": "subj-1",
        "scheme": "no-scheme"
      }
    ],
    "version": "v0.0.1",
    "resource_type": {
      "type": "software"
    },
    "locations": [
      {
        "place": "Leioa",
        "identifiers": {
          "geonames": "12345abcde",
          "wikidata": "12345abcde"
        },
        "description": "Random place on land...",
        "geometry": {
          "type": "Point",
          "coordinates": [
            -8.6056795,
            61.123614
          ]
        }
      },
      {
        "place": "Deoli",
        "geometry": {
          "type": "MultiPoint",
          "coordinates": [
            [
              -50.692158,
              4.595244
            ],
            [
              14.779257,
              70.500445
            ]
          ]
        }
      }
    ],
    "formats": [
      "application/pdf"
    ],
    "contributors": [
      {
        "given_name": "Jennifer",
        "type": "personal",
        "name": "Taylor, Jennifer",
        "family_name": "Taylor",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Banks and Sons"
          }
        ],
        "role": "rightsholder"
      },
      {
        "given_name": "Ronald",
        "type": "personal",
        "name": "Brown, Ronald",
        "family_name": "Brown",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Daugherty-Franklin"
          }
        ],
        "role": "rightsholder"
      },
      {
        "given_name": "Katelyn",
        "type": "personal",
        "name": "Adams, Katelyn",
        "family_name": "Adams",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Pitts LLC"
          }
        ],
        "role": "rightsholder"
      }
    ],
    "title": "Forbes, Bird and Nelson's gallery",
    "references": [
      {
        "identifier": "9999.99988",
        "reference": "Reference to something et al.",
        "scheme": "grid"
      }
    ],
    "related_identifiers": [
      {
        "identifier": "10.9999/rdm.9999988",
        "relation_type": "requires",
        "resource_type": {
          "type": "lesson"
        },
        "scheme": "doi"
      }
    ],
    "publication_date": "1980-12",
    "dates": [
      {
        "date": "1977-12-14",
        "type": "other",
        "description": "Random test date"
      }
    ],
    "creators": [
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Erin",
        "type": "personal",
        "name": "Moore, Erin",
        "family_name": "Moore",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Chapman-Perkins"
          }
        ]
      },
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Jason",
        "type": "personal",
        "name": "Johnson, Jason",
        "family_name": "Johnson",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Berger, Leonard and Navarro"
          }
        ]
      },
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Lisa",
        "type": "personal",
        "name": "Sanchez, Lisa",
        "family_name": "Sanchez",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Obrien-Grant"
          }
        ]
      },
      {
        "identifiers": {
          "orcid": "0000-0002-1825-0097"
        },
        "given_name": "Benjamin",
        "type": "personal",
        "name": "Bolton, Benjamin",
        "family_name": "Bolton",
        "affiliations": [
          {
            "identifiers": {
              "ror": "03yrm5c26"
            },
            "name": "Wright, Bailey and Jackson"
          }
        ]
      }
    ],
    "description": "Lot crime magazine [...]",
    "additional_titles": [
      {
        "type": "subtitle",
        "title": "a research data management platform",
        "lang": "eng"
      },
      {
        "type": "alternativetitle",
        "title": "Navarro LLC's gallery",
        "lang": "eng"
      }
    ],
    "rights": [
      {
        "identifier": "BSD-3",
        "uri": "https://opensource.org/licenses/BSD-3-Clause",
        "rights": "Berkeley Software Distribution 3",
        "scheme": "BSD-3"
      }
    ]
  },
  "id": "ggjy7-y2f02",
  "conceptid": "2pc0g-fb674",
  "updated": "2020-12-14 09:06:54.419497",
  "links": {
    "self_html": "https://127.0.0.1:5000/records/ggjy7-y2f02",
    "files": "https://127.0.0.1:5000/api/records/ggjy7-y2f02/files",
    "self": "https://127.0.0.1:5000/api/records/ggjy7-y2f02"
  },
  "ui": {
    "publication_date_l10n_long": "December 1980",
    "resource_type": "Software",
    "publication_date_l10n_medium": "Dec 1980",
    "contributors": {
      "contributors": [
        {
          "given_name": "Jennifer",
          "type": "personal",
          "name": "Taylor, Jennifer",
          "family_name": "Taylor",
          "affiliations": [
            [
              1,
              "Banks and Sons"
            ]
          ],
          "role": "rightsholder"
        },
        {
          "given_name": "Ronald",
          "type": "personal",
          "name": "Brown, Ronald",
          "family_name": "Brown",
          "affiliations": [
            [
              2,
              "Daugherty-Franklin"
            ]
          ],
          "role": "rightsholder"
        },
        {
          "given_name": "Katelyn",
          "type": "personal",
          "name": "Adams, Katelyn",
          "family_name": "Adams",
          "affiliations": [
            [
              3,
              "Pitts LLC"
            ]
          ],
          "role": "rightsholder"
        }
      ],
      "affiliations": [
        [
          1,
          "Banks and Sons"
        ],
        [
          2,
          "Daugherty-Franklin"
        ],
        [
          3,
          "Pitts LLC"
        ]
      ]
    },
    "creators": {
      "creators": [
        {
          "identifiers": {
            "orcid": "0000-0002-1825-0097"
          },
          "given_name": "Erin",
          "type": "personal",
          "name": "Moore, Erin",
          "family_name": "Moore",
          "affiliations": [
            [
              1,
              "Chapman-Perkins"
            ]
          ]
        },
        {
          "identifiers": {
            "orcid": "0000-0002-1825-0097"
          },
          "given_name": "Jason",
          "type": "personal",
          "name": "Johnson, Jason",
          "family_name": "Johnson",
          "affiliations": [
            [
              2,
              "Berger, Leonard and Navarro"
            ]
          ]
        },
        {
          "identifiers": {
            "orcid": "0000-0002-1825-0097"
          },
          "given_name": "Lisa",
          "type": "personal",
          "name": "Sanchez, Lisa",
          "family_name": "Sanchez",
          "affiliations": [
            [
              3,
              "Obrien-Grant"
            ]
          ]
        },
        {
          "identifiers": {
            "orcid": "0000-0002-1825-0097"
          },
          "given_name": "Benjamin",
          "type": "personal",
          "name": "Bolton, Benjamin",
          "family_name": "Bolton",
          "affiliations": [
            [
              4,
              "Wright, Bailey and Jackson"
            ]
          ]
        }
      ],
      "affiliations": [
        [
          1,
          "Chapman-Perkins"
        ],
        [
          2,
          "Berger, Leonard and Navarro"
        ],
        [
          3,
          "Obrien-Grant"
        ],
        [
          4,
          "Wright, Bailey and Jackson"
        ]
      ]
    },
    "updated_date_l10n_long": "December 14, 2020",
    "created_date_l10n_long": "December 14, 2020"
  }
}
ppanero commented 3 years ago

Fixed