mirror of
https://github.com/Cian-H/invenio-config-iform.git
synced 2025-12-23 05:21:57 +00:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c43c36ece3 | ||
|
|
3acbaf65ef | ||
|
|
408bdc47b1 | ||
|
|
6c6138b682 | ||
|
|
cc2c462057 | ||
|
|
3f2cf9f800 | ||
|
|
db0c7a4e21 | ||
|
|
91464bbd7c | ||
|
|
d7fe2926c7 | ||
|
|
d5fcf60cf7 | ||
|
|
772b21c93a | ||
|
|
c39221378f | ||
|
|
a42f86fcdf | ||
|
|
0dd0db04e2 | ||
|
|
b02ce8a755 | ||
|
|
41dcb8f437 | ||
|
|
35854691bd | ||
|
|
f2e18b95c3 | ||
|
|
16c10593d6 | ||
|
|
dbd870d106 | ||
|
|
f02e992acd | ||
|
|
a7abb0bc5e | ||
|
|
7ca398efdd | ||
|
|
b33c7e09c3 | ||
|
|
0c775851d8 | ||
|
|
89f6aee814 | ||
|
|
44e5857143 | ||
|
|
460de9fc35 | ||
|
|
b1d7a6558e | ||
|
|
890fded625 | ||
|
|
1304563a3e | ||
|
|
a08201041a |
31
CHANGES.rst
31
CHANGES.rst
@@ -1,5 +1,5 @@
|
|||||||
..
|
..
|
||||||
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
|
||||||
@@ -7,6 +7,35 @@
|
|||||||
|
|
||||||
Changes
|
Changes
|
||||||
=======
|
=======
|
||||||
|
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)
|
||||||
|
|
||||||
|
- config: set samesite cookie to strict
|
||||||
|
- dep: bump in base dependencies
|
||||||
|
|
||||||
|
Version 0.8.0 (released 2022-02-09)
|
||||||
|
|
||||||
|
- dep: bump rdm-records version
|
||||||
|
|
||||||
|
Version 0.7.1 (released 2021-12-07)
|
||||||
|
|
||||||
|
- configs: adds new & changed configs for v7 #76
|
||||||
|
|
||||||
|
Version 0.7.0 (released 2021-12-06)
|
||||||
|
|
||||||
|
- fix: update blueprint reorder #74
|
||||||
|
- dep: upgrade rdm-records version & OAI #72
|
||||||
|
|
||||||
Version 0.1.0 (released TBD)
|
Version 0.1.0 (released TBD)
|
||||||
|
|
||||||
|
|||||||
@@ -49,3 +49,6 @@ recursive-include invenio_config_tugraz *.html
|
|||||||
|
|
||||||
# added by check-manifest
|
# added by check-manifest
|
||||||
recursive-include invenio_config_tugraz *.csv
|
recursive-include invenio_config_tugraz *.csv
|
||||||
|
|
||||||
|
# added by check-manifest
|
||||||
|
recursive-include invenio_config_tugraz *.pdf
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -38,6 +38,8 @@ Override configs from diffrent invenio modules to meet TU Graz requirement:
|
|||||||
* Invenio-Mail
|
* Invenio-Mail
|
||||||
* Invenio-shibboleth
|
* Invenio-shibboleth
|
||||||
* Invenio-accounts
|
* Invenio-accounts
|
||||||
|
* Flask-security
|
||||||
|
* Defined routes for TUG
|
||||||
|
|
||||||
Further documentation is available on
|
Further documentation is available on
|
||||||
https://invenio-config-tugraz.readthedocs.io/
|
https://invenio-config-tugraz.readthedocs.io/
|
||||||
|
|||||||
@@ -332,6 +332,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),
|
||||||
|
'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),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,33 +29,26 @@ INVENIO_CONFIG_TUGRAZ_IP_RANGES =
|
|||||||
[["127.0.0.2", "127.0.0.99"], ["127.0.1.3", "127.0.1.5"]]
|
[["127.0.0.2", "127.0.0.99"], ["127.0.1.3", "127.0.1.5"]]
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_TUGRAZ_ROUTES = {
|
||||||
|
"guide": "/guide",
|
||||||
|
"terms": "/terms",
|
||||||
|
"gdpr": "/gdpr",
|
||||||
|
}
|
||||||
|
"""Defined routes for TUG."""
|
||||||
|
|
||||||
# Invenio-App
|
# Invenio-App
|
||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-app.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-app.readthedocs.io/en/latest/configuration.html
|
||||||
|
|
||||||
APP_ALLOWED_HOSTS = [
|
|
||||||
"0.0.0.0",
|
|
||||||
"localhost",
|
|
||||||
"127.0.0.1",
|
|
||||||
"invenio-dev01.tugraz.at",
|
|
||||||
"invenio-test.tugraz.at",
|
|
||||||
"repository.tugraz.at",
|
|
||||||
]
|
|
||||||
"""Allowed Hosts"""
|
|
||||||
|
|
||||||
APP_DEFAULT_SECURE_HEADERS = {
|
APP_DEFAULT_SECURE_HEADERS = {
|
||||||
"content_security_policy": {
|
"content_security_policy": {
|
||||||
"default-src": [
|
"default-src": [
|
||||||
"'self'",
|
"'self'",
|
||||||
"fonts.googleapis.com",
|
|
||||||
"*.gstatic.com",
|
|
||||||
"data:",
|
"data:",
|
||||||
"'unsafe-inline'",
|
"'unsafe-inline'",
|
||||||
"'unsafe-eval'",
|
|
||||||
"blob:",
|
"blob:",
|
||||||
"ub-support.tugraz.at", # zammad contact form
|
"ub-support.tugraz.at", # zammad contact form
|
||||||
"api.datacite.org/dois", # datacite
|
|
||||||
"api.test.datacite.org/dois", # datacite test
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"content_security_policy_report_only": False,
|
"content_security_policy_report_only": False,
|
||||||
@@ -73,6 +66,15 @@ APP_DEFAULT_SECURE_HEADERS = {
|
|||||||
"strict_transport_security_preload": False,
|
"strict_transport_security_preload": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Invenio-I18N
|
||||||
|
# ============
|
||||||
|
# See https://invenio-i18n.readthedocs.io/en/latest/configuration.html
|
||||||
|
BABEL_DEFAULT_LOCALE = "en"
|
||||||
|
# Default time zone
|
||||||
|
BABEL_DEFAULT_TIMEZONE = "Europe/Vienna"
|
||||||
|
# Other supported languages (do not include BABEL_DEFAULT_LOCALE in list).
|
||||||
|
I18N_LANGUAGES = [("de", _("German"))]
|
||||||
|
|
||||||
# Invenio-Mail
|
# Invenio-Mail
|
||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-mail.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-mail.readthedocs.io/en/latest/configuration.html
|
||||||
@@ -113,19 +115,22 @@ Set this to False when sending actual emails.
|
|||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-userprofiles.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-userprofiles.readthedocs.io/en/latest/configuration.html
|
||||||
|
|
||||||
USERPROFILES_EXTEND_SECURITY_FORMS = False
|
USERPROFILES_EXTEND_SECURITY_FORMS = True
|
||||||
"""Set True in order to register user_profile.
|
"""Set True in order to register user_profile.
|
||||||
|
|
||||||
This also forces user to add username and fullname
|
This also forces user to add username and fullname
|
||||||
when register.
|
when register.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
USERPROFILES_EMAIL_ENABLED = False
|
USERPROFILES_EMAIL_ENABLED = True
|
||||||
"""Exclude the user email in the profile form."""
|
"""Exclude the user email in the profile form."""
|
||||||
|
|
||||||
# Invenio-shibboleth
|
USERPROFILES_READ_ONLY = True
|
||||||
|
"""Allow users to change profile info (name, email, etc...)."""
|
||||||
|
|
||||||
|
# Invenio-saml
|
||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-shibboleth.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-saml.readthedocs.io/en/latest/configuration.html
|
||||||
|
|
||||||
SSO_SAML_IDPS = {}
|
SSO_SAML_IDPS = {}
|
||||||
"""Configuration of IDPS. Actual values can be find in to invenio.cfg file"""
|
"""Configuration of IDPS. Actual values can be find in to invenio.cfg file"""
|
||||||
@@ -153,13 +158,16 @@ SSO_SAML_DEFAULT_SLS_ROUTE = "/sls/<idp>"
|
|||||||
# ===========
|
# ===========
|
||||||
# See https://invenio-accounts.readthedocs.io/en/latest/configuration.html
|
# See https://invenio-accounts.readthedocs.io/en/latest/configuration.html
|
||||||
|
|
||||||
|
ACCOUNTS_LOCAL_LOGIN_ENABLED = True
|
||||||
|
"""Allow local login."""
|
||||||
|
|
||||||
SECURITY_CHANGEABLE = False
|
SECURITY_CHANGEABLE = False
|
||||||
"""Allow password change by users."""
|
"""Allow password change by users."""
|
||||||
|
|
||||||
SECURITY_RECOVERABLE = False
|
SECURITY_RECOVERABLE = False
|
||||||
"""Allow password recovery by users."""
|
"""Allow password recovery by users."""
|
||||||
|
|
||||||
SECURITY_REGISTERABLE = False
|
SECURITY_REGISTERABLE = True
|
||||||
""""Allow users to register.
|
""""Allow users to register.
|
||||||
|
|
||||||
With this variable set to "False" users will not be
|
With this variable set to "False" users will not be
|
||||||
@@ -228,20 +236,22 @@ password from ``users.yaml`` will be used. If that is also absent, a password
|
|||||||
will be generated randomly.
|
will be generated randomly.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Custom Access Right
|
DATACITE_FORMAT = "{prefix}/{id}"
|
||||||
# RDM_RECORDS_CUSTOM_VOCABULARIES = {
|
"""Customize the generated DOI string."""
|
||||||
# 'access_right': {
|
|
||||||
# 'path': join(
|
DATACITE_DATACENTER_SYMBOL = ""
|
||||||
# dirname(abspath(__file__)),
|
""""The OAI-PMH server's metadata format oai_datacite
|
||||||
# 'restrictions', 'access_right', 'access_right_limit.csv'
|
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
|
||||||
APP_RDM_DEPOSIT_FORM_DEFAULTS = {}
|
APP_RDM_DEPOSIT_FORM_DEFAULTS = {
|
||||||
|
"publisher": "Graz University of Technology",
|
||||||
|
}
|
||||||
"""Default values for new records in the deposit UI.
|
"""Default values for new records in the deposit UI.
|
||||||
|
|
||||||
The keys denote the dot-separated path, where in the record's metadata
|
The keys denote the dot-separated path, where in the record's metadata
|
||||||
@@ -250,6 +260,17 @@ 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).
|
||||||
|
"""
|
||||||
|
|
||||||
SQLALCHEMY_ECHO = False
|
SQLALCHEMY_ECHO = False
|
||||||
"""Enable to see all SQL queries."""
|
"""Enable to see all SQL queries."""
|
||||||
|
|
||||||
@@ -311,3 +332,31 @@ reopened regularly.
|
|||||||
|
|
||||||
See https://docs.sqlalchemy.org/en/latest/core/engines.html.
|
See https://docs.sqlalchemy.org/en/latest/core/engines.html.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Redis (cache)
|
||||||
|
# ========
|
||||||
|
# Cache or Redis configurations
|
||||||
|
RATELIMIT_AUTHENTICATED_USER = "25000 per hour;1000 per minute"
|
||||||
|
"""Increase defaults for authenticated users."""
|
||||||
|
|
||||||
|
RATELIMIT_GUEST_USER = "5000 per hour;500 per minute"
|
||||||
|
"""Increase defaults for guest users."""
|
||||||
|
|
||||||
|
SESSION_COOKIE_SAMESITE = 'Strict'
|
||||||
|
"""Sets cookie with the samesite flag to 'Strict' by default."""
|
||||||
|
|
||||||
|
|
||||||
|
# OAI-PMH
|
||||||
|
# =======
|
||||||
|
# See https://github.com/inveniosoftware/invenio-oaiserver/blob/master/invenio_oaiserver/config.py
|
||||||
|
|
||||||
|
OAISERVER_ID_PREFIX = "repository.tugraz.at"
|
||||||
|
"""The prefix that will be applied to the generated OAI-PMH ids."""
|
||||||
|
|
||||||
|
OAISERVER_ADMIN_EMAILS = [
|
||||||
|
'oai@repository.tugraz.at',
|
||||||
|
]
|
||||||
|
"""The e-mail addresses of administrators of the repository.
|
||||||
|
|
||||||
|
It **must** include one or more instances.
|
||||||
|
"""
|
||||||
|
|||||||
@@ -53,34 +53,34 @@ Using Custom Generator for a policy:
|
|||||||
Permissions for Invenio (RDM) Records.
|
Permissions for Invenio (RDM) Records.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from invenio_rdm_records.services import RDMRecordPermissionPolicy
|
# from invenio_rdm_records.services import RDMRecordPermissionPolicy
|
||||||
from invenio_rdm_records.services.config import RDMRecordServiceConfig
|
# from invenio_rdm_records.services.config import RDMRecordServiceConfig
|
||||||
from invenio_rdm_records.services.generators import IfDraft, IfRestricted, RecordOwners
|
# from invenio_rdm_records.services.generators import IfDraft, IfRestricted, RecordOwners
|
||||||
from invenio_records_permissions.generators import (
|
# from invenio_records_permissions.generators import (
|
||||||
Admin,
|
# Admin,
|
||||||
AnyUser,
|
# AnyUser,
|
||||||
AuthenticatedUser,
|
# AuthenticatedUser,
|
||||||
Disable,
|
# Disable,
|
||||||
SuperUser,
|
# SuperUser,
|
||||||
SystemProcess,
|
# SystemProcess,
|
||||||
)
|
# )
|
||||||
|
|
||||||
|
|
||||||
class TUGRAZPermissionPolicy(RDMRecordPermissionPolicy):
|
# class TUGRAZPermissionPolicy(RDMRecordPermissionPolicy):
|
||||||
"""Access control configuration for rdm records.
|
# """Access control configuration for rdm records.
|
||||||
|
|
||||||
This overrides the origin:
|
# This overrides the origin:
|
||||||
https://github.com/inveniosoftware/invenio-rdm-records/blob/master/invenio_rdm_records/services/permissions.py.
|
# https://github.com/inveniosoftware/invenio-rdm-records/blob/master/invenio_rdm_records/services/permissions.py.
|
||||||
Access control configuration for records.
|
# Access control configuration for records.
|
||||||
Note that even if the array is empty, the invenio_access Permission class
|
# Note that even if the array is empty, the invenio_access Permission class
|
||||||
always adds the ``superuser-access``, so admins will always be allowed.
|
# always adds the ``superuser-access``, so admins will always be allowed.
|
||||||
- Create action given to everyone for now.
|
# - Create action given to everyone for now.
|
||||||
- Read access given to everyone if public record and given to owners
|
# - Read access given to everyone if public record and given to owners
|
||||||
always. (inherited)
|
# always. (inherited)
|
||||||
- Update access given to record owners. (inherited)
|
# - Update access given to record owners. (inherited)
|
||||||
- Delete access given to admins only. (inherited)
|
# - Delete access given to admins only. (inherited)
|
||||||
"""
|
# """
|
||||||
|
|
||||||
|
|
||||||
class TUGRAZRDMRecordServiceConfig(RDMRecordServiceConfig):
|
# class TUGRAZRDMRecordServiceConfig(RDMRecordServiceConfig):
|
||||||
"""Overriding BibliographicRecordServiceConfig."""
|
# """Overriding BibliographicRecordServiceConfig."""
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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_theme_tugraz.guide') }})
|
- {{ _('Guidelines:')}} {{ _('Repository Guide')}} ({{ _('how to upload files')}}) (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.guide') }})
|
||||||
- {{ _('Search Guide')}} (https://{{ config.SITE_HOSTNAME }}/help/search
|
- {{ _('Search Guide')}} (https://{{ config.SITE_HOSTNAME }}{{url_for('invenio_app_rdm.help_search')}})
|
||||||
- {{ _('Terms And Conditions') }} (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.terms') }})
|
- {{ _('Terms And Conditions') }} (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_config_tugraz.terms') }})
|
||||||
- {{ _('Data Protection Rights')}} (https://{{ config.SITE_HOSTNAME }}{{ url_for('invenio_theme_tugraz.gdpr') }})
|
- {{ _('Data Protection Rights')}} (https://{{ config.SITE_HOSTNAME }}{{ 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 }}">
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -12,4 +12,4 @@ This file is imported by ``invenio_config_tugraz.__init__``,
|
|||||||
and parsed by ``setup.py``.
|
and parsed by ``setup.py``.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "0.5.6"
|
__version__ = "0.8.4"
|
||||||
|
|||||||
@@ -12,33 +12,62 @@ from os import environ
|
|||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from elasticsearch_dsl.utils import AttrDict
|
from elasticsearch_dsl.utils import AttrDict
|
||||||
from flask import Blueprint, current_app
|
from flask import Blueprint, current_app, redirect, url_for
|
||||||
|
from flask_babelex import get_locale
|
||||||
|
|
||||||
|
|
||||||
def ui_blueprint(app):
|
def ui_blueprint(app):
|
||||||
"""Blueprint for the routes and resources provided by invenio-config-tugraz."""
|
"""Blueprint for the routes and resources provided by invenio-config-tugraz."""
|
||||||
|
routes = app.config.get("CONFIG_TUGRAZ_ROUTES")
|
||||||
|
|
||||||
blueprint = Blueprint(
|
blueprint = Blueprint(
|
||||||
"invenio_config_tugraz",
|
"invenio_config_tugraz",
|
||||||
__name__,
|
__name__,
|
||||||
template_folder="templates",
|
template_folder="templates",
|
||||||
|
static_folder="static",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
blueprint.add_url_rule(routes["guide"], view_func=guide)
|
||||||
|
blueprint.add_url_rule(routes["terms"], view_func=terms)
|
||||||
|
blueprint.add_url_rule(routes["gdpr"], view_func=gdpr)
|
||||||
|
|
||||||
@blueprint.before_app_first_request
|
@blueprint.before_app_first_request
|
||||||
def rank_higher():
|
def rank_higher():
|
||||||
"""Rank this modules blueprint higher than blueprint of security module."""
|
"""Rank this modules blueprint higher than blueprint of security module.
|
||||||
blueprints = current_app._blueprint_order
|
|
||||||
our_index = None
|
|
||||||
security_index = None
|
|
||||||
|
|
||||||
for index, bp in enumerate(blueprints):
|
Needed in order to overwrite email templates.
|
||||||
if bp.name == "security":
|
|
||||||
security_index = index
|
|
||||||
if bp.name == "invenio_config_tugraz":
|
|
||||||
our_index = index
|
|
||||||
|
|
||||||
if (security_index is not None) and (our_index > security_index):
|
Since the blueprints are in a dict and the order of insertion is
|
||||||
temp = blueprints[security_index]
|
retained, popping and reinserting all items (except ours), ensures
|
||||||
blueprints[security_index] = blueprints[our_index]
|
our blueprint will be in front.
|
||||||
blueprints[our_index] = temp
|
"""
|
||||||
|
bps = current_app.blueprints
|
||||||
|
for blueprint_name in list(bps.keys()):
|
||||||
|
if blueprint_name != "invenio_config_tugraz":
|
||||||
|
bps.update({blueprint_name: bps.pop(blueprint_name)})
|
||||||
|
|
||||||
return blueprint
|
return blueprint
|
||||||
|
|
||||||
|
|
||||||
|
def guide():
|
||||||
|
"""TUGraz_Repository_Guide."""
|
||||||
|
locale = get_locale()
|
||||||
|
return redirect(url_for('static',
|
||||||
|
filename=f'documents/TUGraz_Repository_Guide_02_{locale}.pdf',
|
||||||
|
_external=True))
|
||||||
|
|
||||||
|
|
||||||
|
def terms():
|
||||||
|
"""Terms_And_Conditions."""
|
||||||
|
locale = get_locale()
|
||||||
|
return redirect(url_for('static',
|
||||||
|
filename=f'documents/TUGraz_Repository_Terms_And_Conditions_{locale}.pdf',
|
||||||
|
_external=True))
|
||||||
|
|
||||||
|
|
||||||
|
def gdpr():
|
||||||
|
"""General_Data_Protection_Rights."""
|
||||||
|
locale = get_locale()
|
||||||
|
return redirect(url_for('static',
|
||||||
|
filename=f'documents/TUGraz_Repository_General_Data_Protection_Rights_{locale}.pdf',
|
||||||
|
_external=True))
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ trap cleanup EXIT
|
|||||||
|
|
||||||
|
|
||||||
python -m check_manifest --ignore ".*-requirements.txt"
|
python -m check_manifest --ignore ".*-requirements.txt"
|
||||||
python -m sphinx.cmd.build -qnNW 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 --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
|
||||||
python -m pytest
|
python -m pytest
|
||||||
tests_exit_code=$?
|
tests_exit_code=$?
|
||||||
python -m sphinx.cmd.build -qnNW -b doctest docs docs/_build/doctest
|
python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest
|
||||||
exit "$tests_exit_code"
|
exit "$tests_exit_code"
|
||||||
|
|||||||
19
setup.py
19
setup.py
@@ -16,13 +16,12 @@ readme = open("README.rst").read()
|
|||||||
history = open("CHANGES.rst").read()
|
history = open("CHANGES.rst").read()
|
||||||
|
|
||||||
tests_require = [
|
tests_require = [
|
||||||
"pytest-invenio>=1.4.0",
|
"pytest-invenio>=1.4.1",
|
||||||
"invenio-app>=1.3.0,<2.0.0",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Should follow invenio-app-rdm
|
# Should follow invenio-app-rdm
|
||||||
invenio_search_version = ">=1.4.0,<1.5.0"
|
invenio_search_version = ">=1.4.2,<1.5.0"
|
||||||
invenio_db_version = ">=1.0.9,<1.1.0"
|
invenio_db_version = ">=1.0.11,<1.1.0"
|
||||||
|
|
||||||
extras_require = {
|
extras_require = {
|
||||||
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
|
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
|
||||||
@@ -30,7 +29,7 @@ extras_require = {
|
|||||||
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
|
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
|
||||||
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
|
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
|
||||||
"docs": [
|
"docs": [
|
||||||
"Sphinx>=3",
|
"Sphinx==4.2.0",
|
||||||
],
|
],
|
||||||
"tests": tests_require,
|
"tests": tests_require,
|
||||||
}
|
}
|
||||||
@@ -47,14 +46,13 @@ for name, reqs in extras_require.items():
|
|||||||
extras_require["all"].extend(reqs)
|
extras_require["all"].extend(reqs)
|
||||||
|
|
||||||
setup_requires = [
|
setup_requires = [
|
||||||
"Babel>=1.3",
|
"Babel>=2.8,<3",
|
||||||
"pytest-runner>=3.0.0,<5",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
install_requires = [
|
install_requires = [
|
||||||
"Flask-BabelEx>=0.9.4",
|
|
||||||
# keep this in sync with invenioRDM release
|
# keep this in sync with invenioRDM release
|
||||||
"invenio_rdm_records>=0.28.0,<0.29.0",
|
"invenio-rdm-records>=0.34.5,<0.35.0",
|
||||||
|
"invenio-cache>=1.1.0"
|
||||||
]
|
]
|
||||||
|
|
||||||
packages = find_packages()
|
packages = find_packages()
|
||||||
@@ -110,6 +108,7 @@ setup(
|
|||||||
"Programming Language :: Python :: 3.6",
|
"Programming Language :: Python :: 3.6",
|
||||||
"Programming Language :: Python :: 3.7",
|
"Programming Language :: Python :: 3.7",
|
||||||
"Programming Language :: Python :: 3.8",
|
"Programming Language :: Python :: 3.8",
|
||||||
"Development Status :: 3 - Alpha",
|
"Programming Language :: Python :: 3.9",
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user