mirror of
https://github.com/Cian-H/invenio-config-iform.git
synced 2025-12-23 13:31:58 +00:00
Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d4df756ebf | ||
|
|
a10dccba22 | ||
|
|
8b84077e83 | ||
|
|
08d745d367 | ||
|
|
bf62abff3f | ||
|
|
40a47ed36d | ||
|
|
129b331603 | ||
|
|
328abd1306 | ||
|
|
7ce124cdb9 | ||
|
|
75d78cf09a | ||
|
|
2e5fbcb4f9 | ||
|
|
4c4279965a | ||
|
|
0ee0df4ee1 | ||
|
|
8df08c09bf | ||
|
|
3a508ac3f0 | ||
|
|
087cafa3ae | ||
|
|
14e9e0557a | ||
|
|
8669f5dcda | ||
|
|
62256b346f | ||
|
|
4a8b02ec4a | ||
|
|
8a592e3fdf | ||
|
|
42d5e2db05 | ||
|
|
3db870784b | ||
|
|
73bc8b4575 | ||
|
|
7fd5a7df3f | ||
|
|
79fe24511a | ||
|
|
5b7a1718fc | ||
|
|
9192107e99 | ||
|
|
c43c36ece3 | ||
|
|
3acbaf65ef | ||
|
|
408bdc47b1 | ||
|
|
6c6138b682 | ||
|
|
cc2c462057 | ||
|
|
3f2cf9f800 | ||
|
|
db0c7a4e21 |
@@ -15,15 +15,6 @@ insert_final_newline = true
|
|||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
|
|
||||||
# Python files
|
|
||||||
[*.py]
|
|
||||||
indent_size = 4
|
|
||||||
# isort plugin configuration
|
|
||||||
known_first_party = invenio_config_tugraz
|
|
||||||
multi_line_output = 2
|
|
||||||
default_section = THIRDPARTY
|
|
||||||
skip = .eggs
|
|
||||||
|
|
||||||
# RST files (used by sphinx)
|
# RST files (used by sphinx)
|
||||||
[*.rst]
|
[*.rst]
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
|
|||||||
1
.git-blame-ignore-revs
Normal file
1
.git-blame-ignore-revs
Normal file
@@ -0,0 +1 @@
|
|||||||
|
766b2cafae4dc74393b103389e6978eca5a9cfd2
|
||||||
21
.github/workflows/pypi-publish.yml
vendored
21
.github/workflows/pypi-publish.yml
vendored
@@ -5,22 +5,5 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-n-publish:
|
build-n-publish:
|
||||||
runs-on: ubuntu-latest
|
uses: tu-graz-library/.github/.github/workflows/pypi-publish.yml@main
|
||||||
steps:
|
secrets: inherit
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Set up Python 3.7
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 3.7
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip install setuptools wheel
|
|
||||||
- name: Build package
|
|
||||||
run: |
|
|
||||||
python setup.py compile_catalog sdist bdist_wheel
|
|
||||||
- name: pypi-publish
|
|
||||||
uses: pypa/gh-action-pypi-publish@v1.3.1
|
|
||||||
with:
|
|
||||||
user: __token__
|
|
||||||
password: ${{ secrets.pypi_password }}
|
|
||||||
|
|||||||
71
.github/workflows/tests.yml
vendored
71
.github/workflows/tests.yml
vendored
@@ -16,72 +16,5 @@ on:
|
|||||||
default: 'Manual trigger'
|
default: 'Manual trigger'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
Tests:
|
tests:
|
||||||
runs-on: ubuntu-20.04
|
uses: tu-graz-library/.github/.github/workflows/tests.yml@main
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
python-version: [3.6, 3.7, 3.8, 3.9]
|
|
||||||
requirements-level: [min, pypi]
|
|
||||||
db-service: [postgresql12]
|
|
||||||
search-service: [elasticsearch7]
|
|
||||||
exclude:
|
|
||||||
- python-version: 3.6
|
|
||||||
requirements-level: pypi
|
|
||||||
|
|
||||||
- python-version: 3.7
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- python-version: 3.8
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- python-version: 3.9
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- db-service: postgresql12
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
- search-service: elasticsearch7
|
|
||||||
requirements-level: min
|
|
||||||
|
|
||||||
include:
|
|
||||||
|
|
||||||
- db-service: postgresql12
|
|
||||||
DB_EXTRAS: "postgresql"
|
|
||||||
|
|
||||||
|
|
||||||
- search-service: elasticsearch7
|
|
||||||
SEARCH_EXTRAS: "elasticsearch7"
|
|
||||||
|
|
||||||
env:
|
|
||||||
DB: ${{ matrix.db-service }}
|
|
||||||
SEARCH: ${{ matrix.search-service }}
|
|
||||||
EXTRAS: all,${{ matrix.DB_EXTRAS }},${{ matrix.SEARCH_EXTRAS }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
|
|
||||||
- name: Generate dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip setuptools py wheel requirements-builder
|
|
||||||
requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
|
||||||
- name: Cache pip
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: ~/.cache/pip
|
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('.${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt') }}
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
|
||||||
pip install ".[$EXTRAS]"
|
|
||||||
pip freeze
|
|
||||||
docker --version
|
|
||||||
docker-compose --version
|
|
||||||
- name: Run tests
|
|
||||||
run: |
|
|
||||||
./run-tests.sh
|
|
||||||
|
|||||||
62
CHANGES.rst
62
CHANGES.rst
@@ -1,5 +1,5 @@
|
|||||||
..
|
..
|
||||||
Copyright (C) 2020 - 2021 Graz University of Technology.
|
Copyright (C) 2020 - 2022 Graz University of Technology.
|
||||||
|
|
||||||
invenio-config-tugraz is free software; you can redistribute it and/or
|
invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the MIT License; see LICENSE file for more
|
modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -7,6 +7,66 @@
|
|||||||
|
|
||||||
Changes
|
Changes
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
Version v0.12.1 (release 2024-03-08)
|
||||||
|
|
||||||
|
- setup: remove upper limit of rdm-records
|
||||||
|
|
||||||
|
|
||||||
|
Version v0.12.0 (release 2023-11-10)
|
||||||
|
|
||||||
|
- setup: remove python3.8 support
|
||||||
|
- global: make it compatible with v12
|
||||||
|
|
||||||
|
|
||||||
|
Version v0.11.0 (release 2023-04-20)
|
||||||
|
|
||||||
|
- global: make package compatible with v11
|
||||||
|
|
||||||
|
|
||||||
|
Version v0.10.4 (release 2023-02-10)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Version v0.10.2 (release 2023-02-02)
|
||||||
|
|
||||||
|
- change version name
|
||||||
|
- footer: update guid
|
||||||
|
|
||||||
|
|
||||||
|
Version v0.10.1 (release 2022-11-17)
|
||||||
|
|
||||||
|
- global: add function
|
||||||
|
|
||||||
|
Version 0.10.0 (released 2022-10-13)
|
||||||
|
|
||||||
|
- global: migrate to v10 (#101)
|
||||||
|
|
||||||
|
Version 0.9.1 (released 2022-05-30)
|
||||||
|
|
||||||
|
- ci(publish): ping babel version (#99)
|
||||||
|
|
||||||
|
Version 0.9.0 (released 2022-05-30)
|
||||||
|
|
||||||
|
- config: adds new introduced configs v9
|
||||||
|
- dep: compatible to v9 rdm
|
||||||
|
- config: add deposit form quota variable (#91)
|
||||||
|
- migrate setup py to cfg (#94)
|
||||||
|
- fix: update email welcome template with SITE_UI_URL (#93)
|
||||||
|
|
||||||
|
Version 0.8.4 (released 2022-03-11)
|
||||||
|
|
||||||
|
- config: use gettext
|
||||||
|
|
||||||
|
Version 0.8.3 (released 2022-03-10)
|
||||||
|
|
||||||
|
- config: fix comment & import
|
||||||
|
|
||||||
|
Version 0.8.2 (released 2022-03-03)
|
||||||
|
|
||||||
|
- config: new introduced to v8 of invenioRDM
|
||||||
|
|
||||||
Version 0.8.1 (released 2022-02-28)
|
Version 0.8.1 (released 2022-02-28)
|
||||||
|
|
||||||
- config: set samesite cookie to strict
|
- config: set samesite cookie to strict
|
||||||
|
|||||||
@@ -52,3 +52,4 @@ recursive-include invenio_config_tugraz *.csv
|
|||||||
|
|
||||||
# added by check-manifest
|
# added by check-manifest
|
||||||
recursive-include invenio_config_tugraz *.pdf
|
recursive-include invenio_config_tugraz *.pdf
|
||||||
|
include .git-blame-ignore-revs
|
||||||
|
|||||||
@@ -16,10 +16,10 @@
|
|||||||
:target: https://pypi.python.org/pypi/invenio-config-tugraz
|
:target: https://pypi.python.org/pypi/invenio-config-tugraz
|
||||||
|
|
||||||
.. image:: https://img.shields.io/github/tag/tu-graz-library/invenio-config-tugraz.svg
|
.. image:: https://img.shields.io/github/tag/tu-graz-library/invenio-config-tugraz.svg
|
||||||
:target: https://github.com/mb-wali/invenio-config-tugraz/releases
|
:target: https://github.com/tu-graz-library/invenio-config-tugraz/releases
|
||||||
|
|
||||||
.. image:: https://img.shields.io/github/license/tu-graz-library/invenio-config-tugraz.svg
|
.. image:: https://img.shields.io/github/license/tu-graz-library/invenio-config-tugraz.svg
|
||||||
:target: https://github.com/mb-wali/invenio-config-tugraz/blob/master/LICENSE
|
:target: https://github.com/tu-graz-library/invenio-config-tugraz/blob/master/LICENSE
|
||||||
|
|
||||||
.. image:: https://readthedocs.org/projects/invenio-config-tugraz/badge/?version=latest
|
.. image:: https://readthedocs.org/projects/invenio-config-tugraz/badge/?version=latest
|
||||||
:target: https://invenio-config-tugraz.readthedocs.io/en/latest/?badge=latest
|
:target: https://invenio-config-tugraz.readthedocs.io/en/latest/?badge=latest
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ encoding = utf-8
|
|||||||
|
|
||||||
[jinja2: **/templates/**.*]
|
[jinja2: **/templates/**.*]
|
||||||
encoding = utf-8
|
encoding = utf-8
|
||||||
extensions = jinja2.ext.autoescape, jinja2.ext.with_
|
|
||||||
|
|
||||||
# Extraction from JavaScript files
|
# Extraction from JavaScript files
|
||||||
|
|
||||||
|
|||||||
35
docs/conf.py
35
docs/conf.py
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
"""Sphinx configuration."""
|
"""Sphinx configuration."""
|
||||||
|
|
||||||
import os
|
from invenio_config_tugraz import __version__
|
||||||
|
|
||||||
# import sphinx.environment
|
# import sphinx.environment
|
||||||
|
|
||||||
@@ -46,9 +46,9 @@ source_suffix = ".rst"
|
|||||||
master_doc = "index"
|
master_doc = "index"
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u"invenio-config-tugraz"
|
project = "invenio-config-tugraz"
|
||||||
copyright = u"2020, Mojib Wali"
|
copyright = "2022, TU Graz"
|
||||||
author = u"Mojib Wali"
|
author = "TU Graz"
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
@@ -56,26 +56,15 @@ author = u"Mojib Wali"
|
|||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
|
|
||||||
# Get the version string. Cannot be done with import!
|
|
||||||
g = {}
|
|
||||||
with open(
|
|
||||||
os.path.join(
|
|
||||||
os.path.dirname(__file__), "..", "invenio_config_tugraz", "version.py"
|
|
||||||
),
|
|
||||||
"rt",
|
|
||||||
) as fp:
|
|
||||||
exec(fp.read(), g)
|
|
||||||
version = g["__version__"]
|
|
||||||
|
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = version
|
release = __version__
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
#
|
#
|
||||||
# This is also used if you do content translation via gettext catalogs.
|
# This is also used if you do content translation via gettext catalogs.
|
||||||
# Usually you set "language" from the command line for these cases.
|
# Usually you set "language" from the command line for these cases.
|
||||||
language = None
|
language = "en"
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
# non-false value, then it is used:
|
# non-false value, then it is used:
|
||||||
@@ -254,8 +243,8 @@ latex_documents = [
|
|||||||
(
|
(
|
||||||
master_doc,
|
master_doc,
|
||||||
"invenio-config-tugraz.tex",
|
"invenio-config-tugraz.tex",
|
||||||
u"invenio-config-tugraz Documentation",
|
"invenio-config-tugraz Documentation",
|
||||||
u"Mojib Wali",
|
"Mojib Wali",
|
||||||
"manual",
|
"manual",
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
@@ -289,7 +278,7 @@ man_pages = [
|
|||||||
(
|
(
|
||||||
master_doc,
|
master_doc,
|
||||||
"invenio-config-tugraz",
|
"invenio-config-tugraz",
|
||||||
u"invenio-config-tugraz Documentation",
|
"invenio-config-tugraz Documentation",
|
||||||
[author],
|
[author],
|
||||||
1,
|
1,
|
||||||
)
|
)
|
||||||
@@ -308,7 +297,7 @@ texinfo_documents = [
|
|||||||
(
|
(
|
||||||
master_doc,
|
master_doc,
|
||||||
"invenio-config-tugraz",
|
"invenio-config-tugraz",
|
||||||
u"invenio-config-tugraz Documentation",
|
"invenio-config-tugraz Documentation",
|
||||||
author,
|
author,
|
||||||
"invenio-config-tugraz",
|
"invenio-config-tugraz",
|
||||||
"invenio module that adds tugraz configs.",
|
"invenio module that adds tugraz configs.",
|
||||||
@@ -332,8 +321,8 @@ texinfo_documents = [
|
|||||||
# Example configuration for intersphinx: refer to the Python standard library.
|
# Example configuration for intersphinx: refer to the Python standard library.
|
||||||
intersphinx_mapping = {
|
intersphinx_mapping = {
|
||||||
"python": ("https://docs.python.org/", None),
|
"python": ("https://docs.python.org/", None),
|
||||||
'flask': ('https://flask.palletsprojects.com/', None),
|
"flask": ("https://flask.palletsprojects.com/", None),
|
||||||
'werkzeug': ('https://werkzeug.palletsprojects.com/', None),
|
"werkzeug": ("https://werkzeug.palletsprojects.com/", None),
|
||||||
# TODO: Configure external documentation references, eg:
|
# TODO: Configure external documentation references, eg:
|
||||||
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
|
# 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -10,6 +10,13 @@
|
|||||||
|
|
||||||
from .ext import InvenioConfigTugraz
|
from .ext import InvenioConfigTugraz
|
||||||
from .generators import RecordIp
|
from .generators import RecordIp
|
||||||
from .version import __version__
|
from .utils import get_identity_from_user_by_email
|
||||||
|
|
||||||
__all__ = ("__version__", "InvenioConfigTugraz", "RecordIp")
|
__version__ = "0.12.1"
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
"__version__",
|
||||||
|
"InvenioConfigTugraz",
|
||||||
|
"RecordIp",
|
||||||
|
"get_identity_from_user_by_email",
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
# Copyright (C) 2020-2023 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -8,9 +8,7 @@
|
|||||||
|
|
||||||
"""invenio module that adds tugraz configs."""
|
"""invenio module that adds tugraz configs."""
|
||||||
|
|
||||||
from os.path import abspath, dirname, join
|
from invenio_i18n import gettext as _
|
||||||
|
|
||||||
from flask_babelex import gettext as _
|
|
||||||
|
|
||||||
INVENIO_CONFIG_TUGRAZ_SHIBBOLETH = False
|
INVENIO_CONFIG_TUGRAZ_SHIBBOLETH = False
|
||||||
"""Set True if SAML is configured"""
|
"""Set True if SAML is configured"""
|
||||||
@@ -180,6 +178,9 @@ SECURITY_CONFIRMABLE = False
|
|||||||
Instead user will get a welcome email.
|
Instead user will get a welcome email.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
SECURITY_LOGIN_WITHOUT_CONFIRMATION = False
|
||||||
|
"""Require users to confirm email before being able to login."""
|
||||||
|
|
||||||
# Flask-Security
|
# Flask-Security
|
||||||
# =============
|
# =============
|
||||||
# See https://pythonhosted.org/Flask-Security/configuration.html
|
# See https://pythonhosted.org/Flask-Security/configuration.html
|
||||||
@@ -239,6 +240,13 @@ will be generated randomly.
|
|||||||
DATACITE_FORMAT = "{prefix}/{id}"
|
DATACITE_FORMAT = "{prefix}/{id}"
|
||||||
"""Customize the generated DOI string."""
|
"""Customize the generated DOI string."""
|
||||||
|
|
||||||
|
DATACITE_DATACENTER_SYMBOL = ""
|
||||||
|
""""The OAI-PMH server's metadata format oai_datacite
|
||||||
|
that allows you to harvest record from InvenioRDM in DataCite XML needs
|
||||||
|
to be configured with your DataCite data center symbol.
|
||||||
|
This is only required if you want your records to be harvestable in DataCite XML format.
|
||||||
|
"""
|
||||||
|
|
||||||
# Invenio-app-rdm
|
# Invenio-app-rdm
|
||||||
# =========================
|
# =========================
|
||||||
# See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py
|
# See https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/config.py
|
||||||
@@ -253,6 +261,28 @@ If the value is callable, its return value will be used for the field
|
|||||||
(e.g. lambda/function for dynamic calculation of values).
|
(e.g. lambda/function for dynamic calculation of values).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
APP_RDM_DEPOSIT_FORM_AUTOCOMPLETE_NAMES = "off"
|
||||||
|
"""Behavior for autocomplete names search field for creators/contributors.
|
||||||
|
|
||||||
|
Available options:
|
||||||
|
|
||||||
|
- ``search`` (default): Show search field and form always.
|
||||||
|
- ``search_only``: Only show search field. Form displayed after selection or
|
||||||
|
explicit "manual" entry.
|
||||||
|
- ``off``: Only show person form (no search field).
|
||||||
|
"""
|
||||||
|
|
||||||
|
APP_RDM_DEPOSIT_FORM_QUOTA = {
|
||||||
|
"maxFiles": 100,
|
||||||
|
# Easiest way to set this to a certain amount is to start from 1 Gb
|
||||||
|
# and go from there:
|
||||||
|
# 1 Gb: 10 ** 9
|
||||||
|
# 50 Gb: 10 ** 9 * 50
|
||||||
|
# 100 Mb: 10 ** 9 * 0.1
|
||||||
|
"maxStorage": 10**9 * 10,
|
||||||
|
}
|
||||||
|
"""Deposit file upload quota """
|
||||||
|
|
||||||
SQLALCHEMY_ECHO = False
|
SQLALCHEMY_ECHO = False
|
||||||
"""Enable to see all SQL queries."""
|
"""Enable to see all SQL queries."""
|
||||||
|
|
||||||
@@ -324,7 +354,7 @@ RATELIMIT_AUTHENTICATED_USER = "25000 per hour;1000 per minute"
|
|||||||
RATELIMIT_GUEST_USER = "5000 per hour;500 per minute"
|
RATELIMIT_GUEST_USER = "5000 per hour;500 per minute"
|
||||||
"""Increase defaults for guest users."""
|
"""Increase defaults for guest users."""
|
||||||
|
|
||||||
SESSION_COOKIE_SAMESITE = 'Strict'
|
SESSION_COOKIE_SAMESITE = "Strict"
|
||||||
"""Sets cookie with the samesite flag to 'Strict' by default."""
|
"""Sets cookie with the samesite flag to 'Strict' by default."""
|
||||||
|
|
||||||
|
|
||||||
@@ -336,7 +366,7 @@ OAISERVER_ID_PREFIX = "repository.tugraz.at"
|
|||||||
"""The prefix that will be applied to the generated OAI-PMH ids."""
|
"""The prefix that will be applied to the generated OAI-PMH ids."""
|
||||||
|
|
||||||
OAISERVER_ADMIN_EMAILS = [
|
OAISERVER_ADMIN_EMAILS = [
|
||||||
'oai@repository.tugraz.at',
|
"oai@repository.tugraz.at",
|
||||||
]
|
]
|
||||||
"""The e-mail addresses of administrators of the repository.
|
"""The e-mail addresses of administrators of the repository.
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
# details.
|
# details.
|
||||||
|
|
||||||
"""invenio module that adds tugraz configs."""
|
"""invenio module that adds tugraz configs."""
|
||||||
from flask import Blueprint
|
|
||||||
|
|
||||||
from . import config
|
from . import config
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -151,10 +151,10 @@ The succinct encoding of the permissions for your instance gives you
|
|||||||
- great flexibility by defining your own actions, generators and policies
|
- great flexibility by defining your own actions, generators and policies
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from elasticsearch_dsl.query import Q
|
|
||||||
from flask import current_app, request
|
from flask import current_app, request
|
||||||
from invenio_access.permissions import any_user, superuser_access
|
from invenio_access.permissions import any_user
|
||||||
from invenio_records_permissions.generators import Generator
|
from invenio_records_permissions.generators import Generator
|
||||||
|
from invenio_search.engine import dsl
|
||||||
|
|
||||||
|
|
||||||
class RecordIp(Generator):
|
class RecordIp(Generator):
|
||||||
@@ -208,10 +208,10 @@ class RecordIp(Generator):
|
|||||||
|
|
||||||
if not visible:
|
if not visible:
|
||||||
# If user ip is not on the list, and If the record contains 'singleip' will not be seen
|
# If user ip is not on the list, and If the record contains 'singleip' will not be seen
|
||||||
return ~Q("match", **{"access.access_right": "singleip"})
|
return ~dsl.Q("match", **{"access.access_right": "singleip"})
|
||||||
|
|
||||||
# Lists all records
|
# Lists all records
|
||||||
return Q("match_all")
|
return dsl.Q("match_all")
|
||||||
|
|
||||||
def check_permission(self):
|
def check_permission(self):
|
||||||
"""Check for User IP address in config variable."""
|
"""Check for User IP address in config variable."""
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -4,10 +4,10 @@
|
|||||||
|
|
||||||
{{ _('To help you get started, here are some useful links:') }}
|
{{ _('To help you get started, here are some useful links:') }}
|
||||||
|
|
||||||
- {{ _('Guidelines:')}} {{ _('Repository Guide')}} ({{ _('how to upload files')}}) (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.guide') }})
|
- {{ _('Guidelines:')}} {{ _('Repository Guide')}} ({{ _('how to upload files')}}) ({{ config.SITE_UI_URL }}{{ url_for('invenio_config_tugraz.guide') }})
|
||||||
- {{ _('Search Guide')}} (https://{{ config.SITE_HOSTNAME }}{{url_for('invenio_app_rdm.help_search')}})
|
- {{ _('Search Guide')}} ({{ config.SITE_UI_URL }}{{url_for('invenio_app_rdm.help_search')}})
|
||||||
- {{ _('Terms And Conditions') }} (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.terms') }})
|
- {{ _('Terms And Conditions') }} ({{ config.SITE_UI_URL }}{{ url_for('invenio_config_tugraz.terms') }})
|
||||||
- {{ _('Data Protection Rights')}} (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.gdpr') }})
|
- {{ _('Data Protection Rights')}} ({{ config.SITE_UI_URL }}{{ url_for('invenio_config_tugraz.gdpr') }})
|
||||||
{% if security.confirmable %}
|
{% if security.confirmable %}
|
||||||
{{ _('You can confirm your email through the link below:') }}
|
{{ _('You can confirm your email through the link below:') }}
|
||||||
{{ confirmation_link }}">
|
{{ confirmation_link }}">
|
||||||
|
|||||||
32
invenio_config_tugraz/utils.py
Normal file
32
invenio_config_tugraz/utils.py
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2022 Graz University of Technology.
|
||||||
|
#
|
||||||
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
|
# details.
|
||||||
|
|
||||||
|
"""Utils file."""
|
||||||
|
|
||||||
|
from flask_principal import Identity
|
||||||
|
from invenio_access import any_user
|
||||||
|
from invenio_access.utils import get_identity
|
||||||
|
from invenio_accounts import current_accounts
|
||||||
|
|
||||||
|
|
||||||
|
def get_identity_from_user_by_email(email: str = None) -> Identity:
|
||||||
|
"""Get the user specified via email or ID."""
|
||||||
|
if email is None:
|
||||||
|
raise ValueError("the email has to be set to get a identity")
|
||||||
|
|
||||||
|
user = current_accounts.datastore.get_user(email)
|
||||||
|
|
||||||
|
if user is None:
|
||||||
|
raise LookupError(f"user with {email} not found")
|
||||||
|
|
||||||
|
identity = get_identity(user)
|
||||||
|
|
||||||
|
# TODO: this is a temporary solution. this should be done with data from the db
|
||||||
|
identity.provides.add(any_user)
|
||||||
|
|
||||||
|
return identity
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
|
||||||
#
|
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
||||||
# details.
|
|
||||||
|
|
||||||
"""Version information for invenio-config-tugraz.
|
|
||||||
|
|
||||||
This file is imported by ``invenio_config_tugraz.__init__``,
|
|
||||||
and parsed by ``setup.py``.
|
|
||||||
"""
|
|
||||||
|
|
||||||
__version__ = "0.8.1"
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -8,12 +8,8 @@
|
|||||||
|
|
||||||
"""invenio module for TUGRAZ config."""
|
"""invenio module for TUGRAZ config."""
|
||||||
|
|
||||||
from os import environ
|
|
||||||
from typing import Dict
|
|
||||||
|
|
||||||
from elasticsearch_dsl.utils import AttrDict
|
|
||||||
from flask import Blueprint, current_app, redirect, url_for
|
from flask import Blueprint, current_app, redirect, url_for
|
||||||
from flask_babelex import get_locale
|
from invenio_i18n import get_locale
|
||||||
|
|
||||||
|
|
||||||
def ui_blueprint(app):
|
def ui_blueprint(app):
|
||||||
@@ -52,22 +48,34 @@ def ui_blueprint(app):
|
|||||||
def guide():
|
def guide():
|
||||||
"""TUGraz_Repository_Guide."""
|
"""TUGraz_Repository_Guide."""
|
||||||
locale = get_locale()
|
locale = get_locale()
|
||||||
return redirect(url_for('static',
|
return redirect(
|
||||||
filename=f'documents/TUGraz_Repository_Guide_02_{locale}.pdf',
|
url_for(
|
||||||
_external=True))
|
"static",
|
||||||
|
filename=f"documents/TUGraz_Repository_Guide_02.1_{locale}.pdf",
|
||||||
|
_external=True,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def terms():
|
def terms():
|
||||||
"""Terms_And_Conditions."""
|
"""Terms_And_Conditions."""
|
||||||
locale = get_locale()
|
locale = get_locale()
|
||||||
return redirect(url_for('static',
|
return redirect(
|
||||||
filename=f'documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf',
|
url_for(
|
||||||
_external=True))
|
"static",
|
||||||
|
filename=f"documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf",
|
||||||
|
_external=True,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def gdpr():
|
def gdpr():
|
||||||
"""General_Data_Protection_Rights."""
|
"""General_Data_Protection_Rights."""
|
||||||
locale = get_locale()
|
locale = get_locale()
|
||||||
return redirect(url_for('static',
|
return redirect(
|
||||||
filename=f'documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf',
|
url_for(
|
||||||
_external=True))
|
"static",
|
||||||
|
filename=f"documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf",
|
||||||
|
_external=True,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|||||||
3
pyproject.toml
Normal file
3
pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["setuptools", "wheel", "babel>2.8"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
12
pytest.ini
12
pytest.ini
@@ -1,12 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
#
|
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
|
||||||
#
|
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
||||||
# details.
|
|
||||||
|
|
||||||
[pytest]
|
|
||||||
addopts = --isort --pydocstyle --pycodestyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_config_tugraz --cov-report=term-missing tests invenio_config_tugraz
|
|
||||||
testpaths = tests invenio_config_tugraz
|
|
||||||
live_server_scope = module
|
|
||||||
@@ -23,10 +23,9 @@ function cleanup() {
|
|||||||
}
|
}
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
python -m check_manifest
|
||||||
python -m check_manifest --ignore ".*-requirements.txt"
|
|
||||||
python -m sphinx.cmd.build -qnN docs docs/_build/html
|
python -m sphinx.cmd.build -qnN docs docs/_build/html
|
||||||
eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
|
eval "$(docker-services-cli up --search ${SEARCH:-elasticsearch} --env)"
|
||||||
python -m pytest
|
python -m pytest
|
||||||
tests_exit_code=$?
|
tests_exit_code=$?
|
||||||
python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest
|
python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest
|
||||||
|
|||||||
76
setup.cfg
76
setup.cfg
@@ -1,11 +1,62 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2023 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
# details.
|
# details.
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
name = invenio-config-tugraz
|
||||||
|
version = attr: invenio_config_tugraz.__version__
|
||||||
|
description = "Invenio module that adds tugraz configs."
|
||||||
|
long_description = file: README.rst, CHANGES.rst
|
||||||
|
keywords = invenio config TU-Graz
|
||||||
|
license = MIT
|
||||||
|
author = "Graz University of Technology"
|
||||||
|
author_email = info@tugraz.at
|
||||||
|
platforms = any
|
||||||
|
url = https://github.com/tu-graz-library/invenio-config-tugraz
|
||||||
|
classifiers =
|
||||||
|
Environment :: Web Environment
|
||||||
|
Intended Audience :: Developers
|
||||||
|
License :: OSI Approved :: MIT License
|
||||||
|
Operating System :: OS Independent
|
||||||
|
Programming Language :: Python
|
||||||
|
Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Programming Language :: Python :: 3.9
|
||||||
|
Programming Language :: Python :: 3.10
|
||||||
|
Development Status :: 3 - Alpha
|
||||||
|
|
||||||
|
[options]
|
||||||
|
include_package_data = True
|
||||||
|
packages = find:
|
||||||
|
python_requires = >=3.9
|
||||||
|
zip_safe = False
|
||||||
|
install_requires =
|
||||||
|
# keep this dependencies identical to invenio-app-rdm
|
||||||
|
invenio-cache>=1.1.1,<2.0.0
|
||||||
|
invenio-i18n>=2.0.0,<3.0.0
|
||||||
|
invenio-rdm-records>=4.0.0
|
||||||
|
|
||||||
|
[options.extras_require]
|
||||||
|
tests =
|
||||||
|
pytest-black>=0.3.0
|
||||||
|
pytest-invenio>=2.1.0,<3.0.0
|
||||||
|
invenio-search[opensearch2]>=2.1.0,<3.0.0
|
||||||
|
Sphinx>=4.5.0
|
||||||
|
|
||||||
|
[options.entry_points]
|
||||||
|
invenio_base.apps =
|
||||||
|
invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz
|
||||||
|
invenio_base.blueprints =
|
||||||
|
invenio_config_tugraz = invenio_config_tugraz.views:ui_blueprint
|
||||||
|
invenio_i18n.translations =
|
||||||
|
messages = invenio_config_tugraz
|
||||||
|
invenio_config.module =
|
||||||
|
invenio_config_tugraz = invenio_config_tugraz.config
|
||||||
|
|
||||||
[aliases]
|
[aliases]
|
||||||
test = pytest
|
test = pytest
|
||||||
|
|
||||||
@@ -38,19 +89,14 @@ output-dir = invenio_config_tugraz/translations/
|
|||||||
input-file = invenio_config_tugraz/translations/messages.pot
|
input-file = invenio_config_tugraz/translations/messages.pot
|
||||||
output-dir = invenio_config_tugraz/translations/
|
output-dir = invenio_config_tugraz/translations/
|
||||||
|
|
||||||
[flake8]
|
|
||||||
max-line-length = 88
|
|
||||||
extend-ignore = E203
|
|
||||||
select = C,E,F,W,B,B950
|
|
||||||
ignore = E501
|
|
||||||
|
|
||||||
[isort]
|
[isort]
|
||||||
multi_line_output = 3
|
profile=black
|
||||||
include_trailing_comma = True
|
|
||||||
force_grid_wrap = 0
|
|
||||||
use_parentheses = True
|
|
||||||
ensure_newline_before_comments = True
|
|
||||||
line_length = 88
|
|
||||||
|
|
||||||
[pycodestyle]
|
[check-manifest]
|
||||||
ignore = E203,E501
|
ignore =
|
||||||
|
*-requirements.txt
|
||||||
|
|
||||||
|
[tool:pytest]
|
||||||
|
addopts = --black --isort --pydocstyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_config_tugraz --cov-report=term-missing tests invenio_config_tugraz
|
||||||
|
testpaths = tests invenio_config_tugraz
|
||||||
|
live_server_scope = module
|
||||||
|
|||||||
107
setup.py
107
setup.py
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -8,107 +8,6 @@
|
|||||||
|
|
||||||
"""invenio module that adds tugraz configs."""
|
"""invenio module that adds tugraz configs."""
|
||||||
|
|
||||||
import os
|
from setuptools import setup
|
||||||
|
|
||||||
from setuptools import find_packages, setup
|
setup()
|
||||||
|
|
||||||
readme = open("README.rst").read()
|
|
||||||
history = open("CHANGES.rst").read()
|
|
||||||
|
|
||||||
tests_require = [
|
|
||||||
"pytest-invenio>=1.4.1",
|
|
||||||
]
|
|
||||||
|
|
||||||
# Should follow invenio-app-rdm
|
|
||||||
invenio_search_version = ">=1.4.2,<1.5.0"
|
|
||||||
invenio_db_version = ">=1.0.11,<1.1.0"
|
|
||||||
|
|
||||||
extras_require = {
|
|
||||||
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
|
|
||||||
"mysql": [f"invenio-db[mysql,versioning]{invenio_db_version}"],
|
|
||||||
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
|
|
||||||
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
|
|
||||||
"docs": [
|
|
||||||
"Sphinx==4.2.0",
|
|
||||||
],
|
|
||||||
"tests": tests_require,
|
|
||||||
}
|
|
||||||
|
|
||||||
extras_require["all"] = []
|
|
||||||
for name, reqs in extras_require.items():
|
|
||||||
if name[0] == ":" or name in (
|
|
||||||
"elasticsearch7",
|
|
||||||
"mysql",
|
|
||||||
"postgresql",
|
|
||||||
"sqlite",
|
|
||||||
):
|
|
||||||
continue
|
|
||||||
extras_require["all"].extend(reqs)
|
|
||||||
|
|
||||||
setup_requires = [
|
|
||||||
"Babel>=2.8,<3",
|
|
||||||
]
|
|
||||||
|
|
||||||
install_requires = [
|
|
||||||
# keep this in sync with invenioRDM release
|
|
||||||
"invenio-rdm-records>=0.34.5,<0.35.0",
|
|
||||||
"invenio-cache>=1.1.0"
|
|
||||||
]
|
|
||||||
|
|
||||||
packages = find_packages()
|
|
||||||
|
|
||||||
|
|
||||||
# Get the version string. Cannot be done with import!
|
|
||||||
g = {}
|
|
||||||
with open(os.path.join("invenio_config_tugraz", "version.py"), "rt") as fp:
|
|
||||||
exec(fp.read(), g)
|
|
||||||
version = g["__version__"]
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name="invenio-config-tugraz",
|
|
||||||
version=version,
|
|
||||||
description=__doc__,
|
|
||||||
long_description=readme + "\n\n" + history,
|
|
||||||
keywords="invenio, config, Tu Graz",
|
|
||||||
license="MIT",
|
|
||||||
author="Mojib Wali",
|
|
||||||
author_email="mb_wali@hotmail.com",
|
|
||||||
url="https://github.com/tu-graz-library/invenio-config-tugraz",
|
|
||||||
packages=packages,
|
|
||||||
zip_safe=False,
|
|
||||||
include_package_data=True,
|
|
||||||
platforms="any",
|
|
||||||
entry_points={
|
|
||||||
"invenio_base.apps": [
|
|
||||||
"invenio_config_tugraz = invenio_config_tugraz:InvenioConfigTugraz",
|
|
||||||
],
|
|
||||||
"invenio_base.blueprints": [
|
|
||||||
"invenio_config_tugraz = invenio_config_tugraz.views:ui_blueprint",
|
|
||||||
],
|
|
||||||
"invenio_i18n.translations": [
|
|
||||||
"messages = invenio_config_tugraz",
|
|
||||||
],
|
|
||||||
"invenio_config.module": [
|
|
||||||
"invenio_config_tugraz = invenio_config_tugraz.config",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
extras_require=extras_require,
|
|
||||||
install_requires=install_requires,
|
|
||||||
setup_requires=setup_requires,
|
|
||||||
tests_require=tests_require,
|
|
||||||
classifiers=[
|
|
||||||
"Environment :: Web Environment",
|
|
||||||
"Intended Audience :: Developers",
|
|
||||||
"License :: OSI Approved :: MIT License",
|
|
||||||
"Operating System :: OS Independent",
|
|
||||||
"Programming Language :: Python",
|
|
||||||
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
|
|
||||||
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
||||||
"Programming Language :: Python :: 3",
|
|
||||||
"Programming Language :: Python :: 3.6",
|
|
||||||
"Programming Language :: Python :: 3.7",
|
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
|
||||||
"Development Status :: 5 - Production/Stable",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ import tempfile
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
from flask_babelex import Babel
|
|
||||||
from invenio_db import InvenioDB, db
|
from invenio_db import InvenioDB, db
|
||||||
|
from invenio_i18n import InvenioI18N
|
||||||
from sqlalchemy_utils.functions import create_database, database_exists, drop_database
|
from sqlalchemy_utils.functions import create_database, database_exists, drop_database
|
||||||
|
|
||||||
from invenio_config_tugraz import InvenioConfigTugraz
|
from invenio_config_tugraz import InvenioConfigTugraz
|
||||||
@@ -49,7 +49,7 @@ def create_app(request):
|
|||||||
SQLALCHEMY_DATABASE_URI=DB,
|
SQLALCHEMY_DATABASE_URI=DB,
|
||||||
SQLALCHEMY_TRACK_MODIFICATIONS=False,
|
SQLALCHEMY_TRACK_MODIFICATIONS=False,
|
||||||
)
|
)
|
||||||
Babel(app)
|
InvenioI18N(app)
|
||||||
InvenioConfigTugraz(app)
|
InvenioConfigTugraz(app)
|
||||||
InvenioDB(app)
|
InvenioDB(app)
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ def create_app(request):
|
|||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope="function")
|
||||||
def open_record():
|
def open_record():
|
||||||
"""Open record data as dict coming from the external world."""
|
"""Open record data as dict coming from the external world."""
|
||||||
return {
|
return {
|
||||||
@@ -81,44 +81,44 @@ def open_record():
|
|||||||
"metadata": False,
|
"metadata": False,
|
||||||
"files": False,
|
"files": False,
|
||||||
"owned_by": [1],
|
"owned_by": [1],
|
||||||
"access_right": "open"
|
"access_right": "open",
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"publication_date": "2020-06-01",
|
"publication_date": "2020-06-01",
|
||||||
"resource_type": {
|
"resource_type": {"type": "image", "subtype": "image-photo"},
|
||||||
"type": "image",
|
|
||||||
"subtype": "image-photo"
|
|
||||||
},
|
|
||||||
# Technically not required
|
# Technically not required
|
||||||
"creators": [{
|
"creators": [
|
||||||
"name": "Troy Brown",
|
{"name": "Troy Brown", "type": "personal"},
|
||||||
"type": "personal"
|
{
|
||||||
}, {
|
|
||||||
"name": "Phillip Lester",
|
"name": "Phillip Lester",
|
||||||
"type": "personal",
|
"type": "personal",
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"affiliations": [{
|
"affiliations": [
|
||||||
"name": "Carter-Morris",
|
{"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}}
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
],
|
||||||
}]
|
},
|
||||||
}, {
|
{
|
||||||
"name": "Steven Williamson",
|
"name": "Steven Williamson",
|
||||||
"type": "personal",
|
"type": "personal",
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"affiliations": [{
|
"affiliations": [
|
||||||
|
{
|
||||||
"name": "Ritter and Sons",
|
"name": "Ritter and Sons",
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"name": "Montgomery, Bush and Madden",
|
"name": "Montgomery, Bush and Madden",
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}]
|
},
|
||||||
}],
|
],
|
||||||
"title": "A Romans story"
|
},
|
||||||
}
|
],
|
||||||
|
"title": "A Romans story",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope="function")
|
||||||
def singleip_record():
|
def singleip_record():
|
||||||
"""Single Ip record data as dict coming from the external world."""
|
"""Single Ip record data as dict coming from the external world."""
|
||||||
return {
|
return {
|
||||||
@@ -126,38 +126,38 @@ def singleip_record():
|
|||||||
"metadata": False,
|
"metadata": False,
|
||||||
"files": False,
|
"files": False,
|
||||||
"owned_by": [1],
|
"owned_by": [1],
|
||||||
"access_right": "singleip"
|
"access_right": "singleip",
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"publication_date": "2020-06-01",
|
"publication_date": "2020-06-01",
|
||||||
"resource_type": {
|
"resource_type": {"type": "image", "subtype": "image-photo"},
|
||||||
"type": "image",
|
|
||||||
"subtype": "image-photo"
|
|
||||||
},
|
|
||||||
# Technically not required
|
# Technically not required
|
||||||
"creators": [{
|
"creators": [
|
||||||
"name": "Troy Brown",
|
{"name": "Troy Brown", "type": "personal"},
|
||||||
"type": "personal"
|
{
|
||||||
}, {
|
|
||||||
"name": "Phillip Lester",
|
"name": "Phillip Lester",
|
||||||
"type": "personal",
|
"type": "personal",
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"affiliations": [{
|
"affiliations": [
|
||||||
"name": "Carter-Morris",
|
{"name": "Carter-Morris", "identifiers": {"ror": "03yrm5c26"}}
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
],
|
||||||
}]
|
},
|
||||||
}, {
|
{
|
||||||
"name": "Steven Williamson",
|
"name": "Steven Williamson",
|
||||||
"type": "personal",
|
"type": "personal",
|
||||||
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
"identifiers": {"orcid": "0000-0002-1825-0097"},
|
||||||
"affiliations": [{
|
"affiliations": [
|
||||||
|
{
|
||||||
"name": "Ritter and Sons",
|
"name": "Ritter and Sons",
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
"name": "Montgomery, Bush and Madden",
|
"name": "Montgomery, Bush and Madden",
|
||||||
"identifiers": {"ror": "03yrm5c26"}
|
"identifiers": {"ror": "03yrm5c26"},
|
||||||
}]
|
},
|
||||||
}],
|
],
|
||||||
"title": "A Romans story"
|
},
|
||||||
}
|
],
|
||||||
|
"title": "A Romans story",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
@@ -26,4 +26,6 @@ def test_recordip(create_app, open_record, singleip_record):
|
|||||||
assert generator.excludes(record=open_record) == []
|
assert generator.excludes(record=open_record) == []
|
||||||
assert generator.excludes(record=open_record) == []
|
assert generator.excludes(record=open_record) == []
|
||||||
|
|
||||||
assert generator.query_filter().to_dict() == {'bool': {'must_not': [{'match': {'access.access_right': 'singleip'}}]}}
|
assert generator.query_filter().to_dict() == {
|
||||||
|
"bool": {"must_not": [{"match": {"access.access_right": "singleip"}}]}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Mojib Wali.
|
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||||
#
|
#
|
||||||
# invenio-config-tugraz is free software; you can redistribute it and/or
|
# invenio-config-tugraz is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||||
|
|||||||
Reference in New Issue
Block a user