Compare commits

...

49 Commits

Author SHA1 Message Date
Christoph Ladurner
1e9ea81f1c Merge pull request #141 from utnapischtim/feature/override-landing-page
override landing page
2021-01-19 11:28:25 +01:00
Christoph Ladurner
c4356b744b Merge pull request #142 from utnapischtim/feature/override-search-v2
Feature/override search v2
2021-01-18 13:33:34 +01:00
Christoph Ladurner
752b5128bf Merge pull request #143 from utnapischtim/feature/frontpage-fixes
Feature/frontpage fixes
2021-01-18 13:32:41 +01:00
Christoph Ladurner
c6c4a0aa52 bugfix(ci): add invenio-app-rdm and sqlalchemy-continuum to install_requires
those install_requires where missing to use the RECORDS_UI_ENPOINTS from
invenio-app-rdm.config
2021-01-14 11:14:30 +01:00
Mojib Wali
b09c491e9c bugfix: sigup page 2021-01-12 12:58:56 +01:00
Christoph Ladurner
a2c77a8332 bugfix(ui): start page license was not a url 2021-01-11 23:28:40 +01:00
Christoph Ladurner
69aff9f7b0 feature(ui): show the license also in the frontpage 2021-01-11 23:28:40 +01:00
Christoph Ladurner
61a00bfbbc bugfix(ui): creator could have potentially no identifiers
The macro authors should handle the case where there are no identifiers for a
author. Therefore this check had to be added.

NOTE:
further removed the copyright noting Mojib Wali. we stick with TU Graz
further added a newline in the end of the file
2021-01-11 23:28:40 +01:00
Christoph Ladurner
8913ef6301 feature(ui): add license to the accessRight visualisation on the search 2021-01-11 17:01:51 +01:00
Christoph Ladurner
ccfde55f45 bug(ui): colors of the accessRights should be different
there was only one color for the accessRights: the open access color.
now every type has his own color.
2021-01-11 17:01:51 +01:00
Christoph Ladurner
2543ee9cbf bugfix(config): add source of SEARCH_UI_SEARCH_TEMPLATE variable 2021-01-11 17:01:51 +01:00
Christoph Ladurner
1598b04ed6 feature(ui): override the default search react app from invenio-app-rdm
The look of the result entries should now be the same as on the frontpage.

The main difference from the default layout is that the access badge is not more a
badge. It is now in the footer on the right side. The main reason is that the
green color of the badge could lead to the wrong conclusion that if this record
has the access right "Open Acess" it would be a "Green Open Access" record.

NOTES:
It was necessary to import also some React classes into the components.js file
which were not really overriden. This was because it was not possible to import
it from invenio-app-rdm/search/components.js directly. This should be repaired
in some ways.
2021-01-11 17:01:51 +01:00
Christoph Ladurner
90bd39a010 modification(ui): use invenio-app-rdm/landing_page to update landing_page 2021-01-11 15:52:56 +01:00
Mojib Wali
858f02ba19 bugfix: search for published records. (#139)
This closes #126
2021-01-08 13:05:25 +01:00
Mojib Wali
a4a4d13322 refactor: coming_soon url change 2021-01-08 13:05:01 +01:00
Christoph Ladurner
02d171009e Merge pull request #133 from utnapischtim/feature/various-ui-bugfixes
Feature/various UI bugfixes
2021-01-07 21:39:50 +01:00
Mojib Wali
a6681cbe4b feature(ui): refactor submenu
* get rid of Communities link
* adding translation to Uploads

This closes #131
2021-01-05 09:46:25 +01:00
Mojib Wali
4e613637f9 refactor: translations
* bugfix: adding missing (date) var.

* refactor(translations): re-translat of some texts.

* modification(translate): changed the translation text
2020-12-30 10:42:43 +01:00
Christoph Ladurner
4af121bda3 feature(ui): add subjects to frontpage article items 2020-12-29 15:56:08 +01:00
Christoph Ladurner
feba2ff440 bugfix(ui): adapt badges on frontpage to look the same as on search page
resource type color was different. publication date badge and version badge were
moved together into one badge.
2020-12-29 15:56:03 +01:00
Christoph Ladurner
5eb9c40081 bugfix(ui): display access right on frontpage the same way as in search page 2020-12-29 15:55:57 +01:00
Christoph Ladurner
22aed7444a bugfix(ui): center More button
the More button was slightly floated to the left side of the column. This looked
weird. Now it is in the center of the column.
2020-12-29 15:55:51 +01:00
Mojib Wali
0a0ae05331 global(module): refactor tests and ci
modified run-test.sh to newer invenio-pytest commands- which will now also run the tests written /test directory.
* removed docker-service-cli version restriction
* bump Sphinx version
*added missing imports (tests)
2020-12-21 15:28:06 +01:00
Mojib Wali
4ce5bc6043 v1.3.1 2020-12-15 15:23:47 +01:00
Mojib Wali
5e5464969b bugfix: adding flash messages for accounts template. (#124) 2020-12-15 15:23:00 +01:00
Mojib Wali
2e5f27a590 v1.3.0 2020-12-14 10:46:22 +01:00
Mojib Wali
42259b4cb5 feature: adding translation. 2020-12-14 10:45:01 +01:00
Mojib Wali
924dde4fa7 v1.2.0 2020-12-10 12:54:15 +01:00
Mojib Wali
204f7b81c3 test: adding tests
* test: removed no cover
* tests: adding tests for functions.
   * test_make_dict_like
   * test_cast_to_dict
2020-12-10 12:25:52 +01:00
Mojib Wali
10881c5627 refactor/accounts (#120)
* style(ui): adding divider for login with.

* login_user.html
* register_user.html

* style(ui): 'login with' hyperlink same style as button.

style(css): adding semantic ui css class.

* build: restricting the version for docker-services-cli

the new release was not stable.
2020-12-10 11:19:35 +01:00
Mojib Wali
804bd108c5 v1.1.0 2020-12-04 10:21:04 +01:00
Mojib Wali
bbea43d227 Refactor header (#116)
* bugfix(ui): home text & icon collapse in small screen.

* added home text & icon inside span tag.
* inline css with nowrap white-space.

* refactor(ui): adding the text of 'Library & Archives', This closes #110

* bugfix(format): adding new line a the end of the file.

* refactor(ui): changing the text to capital letters, to match the other.

* adding extra css for position/style of the text.

* style(ui): fixed misspelled.

* bugfix(format): adding new line a the end of the file.

* modification(ui): from Logout/SignUp to Sign up

* modification(ui): changing texts to - Log in, Log out and Sign up

removing icons from header.
2020-12-04 10:14:02 +01:00
Mojib Wali
84f963b407 ci(repo): migrate to github actions. (#119)
tests(repo): modified to github actions.
2020-12-03 15:19:45 +01:00
Mojib Wali
e45832be2b v1.0.9
Patch change - October release data model fields updated.
2020-11-13 09:28:32 +01:00
mb
75bb5377c8 migrate(datamodel):changed fields to match the new data model structure.
* Orcid => orcid
* filter contributertype_title deprecated
* records.metadata.title and for additional title there is a new field additional_titles.
* records.metadata.description and for additional description there is a new field additional_descriptions.
This closes #114.
2020-11-12 11:12:55 +01:00
Mojib Wali
e4fc2ff14d v1.0.8 2020-10-21 10:59:42 +02:00
Mojib Wali
b33274a3ea repository transfer
Repository transfer from https://github.com/mb-wali to https://github.com/tu-graz-library.

* updated badges
* readthedocs - URL paths 
* Setup.py repository URL
2020-10-21 10:53:10 +02:00
Mojib Wali
11abd513e9 v1.0.7 2020-10-21 09:48:57 +02:00
Mojib Wali
4e35220e5b Update README.rst
badge for code style black.
2020-10-21 09:43:48 +02:00
mb
9126efbe42 repository logo set to library logo. This closes #109 2020-10-21 09:37:54 +02:00
Mojib Wali
2227e8d204 v1.0.6 2020-10-15 11:43:06 +02:00
Mojib Wali
8cee8ad7ac v1.0.5 2020-10-15 11:37:12 +02:00
Mojib Wali
deb7caad87 migrate:upon the changes to the datamodel.
modified the frontpage to render the latest datamodel schema.
2020-10-15 11:34:55 +02:00
Christoph Ladurner
95f566d48d all python files are now formated with black (#106)
* all python files are now formated with black

NOTE:
some configurations where necessary. flake8 line-length has to be set to 88
which is the default for black. but this was not enough some lines of black
where formated longer then 88 characters. found flake8-bugbear with B950.

with that and in combination with ignore=E501 it is possible to ignore long
lines, but if there are lines to long it will still point it out.

further also for isort some configuration was necessary

REFERENCES:
https://github.com/psf/black/blob/master/docs/compatible_configs.md#isort
https://github.com/psf/black/blob/master/docs/compatible_configs.md#flake8
https://github.com/PyCQA/flake8-bugbear#opinionated-warnings

* removed commented import statments

Co-authored-by: Christoph Ladurner <christoph.ladurner@tugraz.at>
2020-10-14 14:10:05 +02:00
Mojib Wali
f9993369f2 global: extension class to uppercase. (#105)
The extension class name is changed to uppercase.
2020-10-12 09:42:12 +02:00
Mojib Wali
c5edf62a9d translations: marked for translation
* Marked the strings & Url hyperlinks for translation.
* compiled and updated the translation files with the help of Babel commands.
* Added some test translations to check if it works.
2020-10-06 14:40:38 +02:00
Mojib Wali
900baa4b5b release: v1.0.4 2020-10-05 14:30:08 +02:00
Mojib Wali
3462a0c69d ci:use github actions to publish to pypi 2020-10-05 14:25:33 +02:00
Mojib
800ef950fa ci:use github actions to publish to pypi
This closes #94.
2020-10-05 14:15:26 +02:00
49 changed files with 1573 additions and 653 deletions

View File

@@ -32,8 +32,8 @@ indent_size = 4
[*.{css,html,js,json,yml}] [*.{css,html,js,json,yml}]
indent_size = 2 indent_size = 2
# Matches the exact files either package.json or .travis.yml # Matches the exact files either package.json or .github/workflows/*.yml
[{package.json,.travis.yml}] [{package.json, .github/workflows/*.yml}]
indent_size = 2 indent_size = 2
# Dockerfile # Dockerfile

26
.github/workflows/pypi-publish.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
on:
push:
tags:
- v*
jobs:
build-n-publish:
runs-on: ubuntu-latest
steps:
- 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 }}

54
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: CI
on:
push:
branches: master
pull_request:
branches: master
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 3 * * 6'
workflow_dispatch:
inputs:
reason:
description: 'Reason'
required: false
default: 'Manual trigger'
jobs:
Tests:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
requirements-level: [min, pypi]
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 all --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 .[all]
pip freeze
- name: Run tests
run: |
./run-tests.sh

View File

@@ -1,65 +0,0 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 mojib wali.
#
# invenio-theme-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.
notifications:
email: false
sudo: false
language: python
matrix:
fast_finish: true
allow_failures:
# To allow failures, you need to specify the full environment
- env: REQUIREMENTS=devel
cache:
- pip
env:
- REQUIREMENTS=lowest
- REQUIREMENTS=release
- REQUIREMENTS=devel
python:
- "3.6"
- "3.7"
- "3.8"
before_install:
- "nvm install 6; nvm use 6"
- "travis_retry pip install --upgrade pip setuptools py"
- "travis_retry pip install twine wheel coveralls requirements-builder"
- "requirements-builder -e all --level=min setup.py > .travis-lowest-requirements.txt"
- "requirements-builder -e all --level=pypi setup.py > .travis-release-requirements.txt"
- "requirements-builder -e all --level=dev --req requirements-devel.txt setup.py > .travis-devel-requirements.txt"
install:
- "travis_retry pip install -r .travis-${REQUIREMENTS}-requirements.txt"
- "travis_retry pip install -e .[all]"
script:
- "./run-tests.sh"
after_success:
- coveralls
deploy:
skip_cleanup: true
skip_existing: true
provider: pypi
username: __token__
password:
secure: liNULZujbc8nScZRlDiGu5YxnCaiWZ+LJ4IyYJvC5+rZjl5dr/cf1t7STgrN7SckP/7jGO4mJjClroDG3mj/a8y4tA32XSupeRQClDeETuUcOoTvagZnHBPQ8bVOrYUeH0IEpBvGLcBIrt3WEh0ZolP+KOHhrbbkV00hleqlcN78RB1rPEP+zKVOYftzPiaRZJFl338K6Jf4AIoZPaUZNK5HdNBa5cv29VYwJkw+SeOy50duAAaDVQQsXXonIBtzcI9tLqKMbBhiSguHBt+AaKsGeK96n2LwRhBevFtc3iz1bPhJkUxrzsW+6gp1uzHUHgknotM3HPnR1wD+uKU3fc+j7xA4db/tTJpOCBae3Wzmxd13OZx0qLOUaYr5z/Drd+bPRJM9UMmaPtQGTn+kz13ATPvKEGgRzjmWEOrvrnuX9JLVux7zV9sfpfqritxtdfYGzHchw41Kfk8OFLPFTRPO1KE0Nr9CGzV6THSqR6n4AyteZ2VT0sU3w25bQu6obKTvxFq+tdcaHOeZoCCJYJzGwRdkrrWQl+joWJQ8AssOlv3vrmzPWuAWhPjcm2cK9MVTu/LMM1vvUr0vqn58GDylNYyifJFUitZQ7ReWb5GzzgwpcyDYfEK1bOUD00l2kEvrUL1lA64FLCSSjZeBCcnxMq/+odzNfOkXWLk34Ek=
distributions: compile_catalog sdist bdist_wheel
on:
tags: true
python: "3.6"
repo: mb-wali/invenio-theme-tugraz
condition: $DEPLOY = true

View File

@@ -10,7 +10,7 @@ Types of Contributions
Report Bugs Report Bugs
~~~~~~~~~~~ ~~~~~~~~~~~
Report bugs at https://github.com/mb-wali/invenio-theme-tugraz/issues. Report bugs at https://github.com/tu-graz-library/invenio-theme-tugraz/issues.
If you are reporting a bug, please include: If you are reporting a bug, please include:
@@ -41,7 +41,7 @@ Submit Feedback
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
The best way to send feedback is to file an issue at The best way to send feedback is to file an issue at
https://github.com/mb-wali/invenio-theme-tugraz/issues. https://github.com/tu-graz-library/invenio-theme-tugraz/issues.
If you are proposing a feature: If you are proposing a feature:
@@ -55,7 +55,7 @@ Get Started!
Ready to contribute? Here's how to set up `invenio-theme-tugraz` for local development. Ready to contribute? Here's how to set up `invenio-theme-tugraz` for local development.
1. Fork the `https://github.com/mb-wali/invenio-theme-tugraz.git` repo on GitHub. 1. Fork the `https://github.com/tu-graz-library/invenio-theme-tugraz.git` repo on GitHub.
2. Clone your fork locally: 2. Clone your fork locally:
.. code-block:: console .. code-block:: console
@@ -114,5 +114,5 @@ Before you submit a pull request, check that it meets these guidelines:
2. If the pull request adds functionality, the docs should be updated. Put 2. If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring. your new functionality into a function with a docstring.
3. The pull request should work for Python 2.7, 3.5 and 3.6. Check 3. The pull request should work for Python 2.7, 3.5 and 3.6. Check
https://travis-ci.com/github/mb-wali/invenio-theme-tugraz/pull_requests https://github.com/tu-graz-library/invenio-theme-tugraz/actions?query=event%3Apull_request
and make sure that the tests pass for all supported Python versions. and make sure that the tests pass for all supported Python versions.

View File

@@ -36,3 +36,4 @@ recursive-include invenio_theme_tugraz *.ico
recursive-include tests *.py recursive-include tests *.py
recursive-include invenio_theme_tugraz *.jpg recursive-include invenio_theme_tugraz *.jpg
recursive-include invenio_theme_tugraz *.gitkeep recursive-include invenio_theme_tugraz *.gitkeep
recursive-include .github/workflows *.yml

View File

@@ -9,17 +9,17 @@
invenio-theme-tugraz invenio-theme-tugraz
====================== ======================
.. image:: https://travis-ci.com/mb-wali/invenio-theme-tugraz.svg .. image:: https://github.com/tu-graz-library/invenio-theme-tugraz/workflows/CI/badge.svg
:target: https://travis-ci.com/github/mb-wali/invenio-theme-tugraz :target: https://github.com/tu-graz-library/invenio-theme-tugraz/actions
.. image:: https://img.shields.io/pypi/dm/invenio-theme-tugraz.svg .. image:: https://img.shields.io/pypi/dm/invenio-theme-tugraz.svg
:target: https://pypi.python.org/pypi/invenio-theme-tugraz :target: https://pypi.python.org/pypi/invenio-theme-tugraz
.. image:: https://img.shields.io/github/tag/mb-wali/invenio-theme-tugraz.svg .. image:: https://img.shields.io/github/tag/tu-graz-library/invenio-theme-tugraz.svg
:target: https://github.com/mb-wali/invenio-theme-tugraz/releases :target: https://github.com/tu-graz-library/invenio-theme-tugraz/releases
.. image:: https://img.shields.io/github/license/mb-wali/invenio-theme-tugraz.svg .. image:: https://img.shields.io/github/license/tu-graz-library/invenio-theme-tugraz.svg
:target: https://github.com/mb-wali/invenio-theme-tugraz/blob/master/LICENSE :target: https://github.com/tu-graz-library/invenio-theme-tugraz/blob/master/LICENSE
.. image:: https://readthedocs.org/projects/invenio-theme-tugraz/badge/?version=latest .. image:: https://readthedocs.org/projects/invenio-theme-tugraz/badge/?version=latest
:target: https://invenio-theme-tugraz.readthedocs.io/en/latest/?badge=latest :target: https://invenio-theme-tugraz.readthedocs.io/en/latest/?badge=latest
@@ -27,6 +27,8 @@
.. image:: https://img.shields.io/coveralls/mb-wali/invenio-theme-tugraz.svg .. image:: https://img.shields.io/coveralls/mb-wali/invenio-theme-tugraz.svg
:target: https://coveralls.io/r/mb-wali/invenio-theme-tugraz :target: https://coveralls.io/r/mb-wali/invenio-theme-tugraz
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
TU Graz standard theme. TU Graz standard theme.

View File

@@ -10,45 +10,43 @@
import os import os
import sphinx.environment
# -- General configuration ------------------------------------------------ # -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here. # If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0' # needs_sphinx = '1.0'
# Do not warn on external images. # Do not warn on external images.
suppress_warnings = ['image.nonlocal_uri'] suppress_warnings = ["image.nonlocal_uri"]
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones. # ones.
extensions = [ extensions = [
'sphinx.ext.autodoc', "sphinx.ext.autodoc",
'sphinx.ext.coverage', "sphinx.ext.coverage",
'sphinx.ext.doctest', "sphinx.ext.doctest",
'sphinx.ext.intersphinx', "sphinx.ext.intersphinx",
'sphinx.ext.viewcode', "sphinx.ext.viewcode",
] ]
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ["_templates"]
# The suffix(es) of source filenames. # The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string: # You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md'] # source_suffix = ['.rst', '.md']
source_suffix = '.rst' source_suffix = ".rst"
# The encoding of source files. # The encoding of source files.
#source_encoding = 'utf-8-sig' # source_encoding = 'utf-8-sig'
# The master toctree document. # The master toctree document.
master_doc = 'index' master_doc = "index"
# General information about the project. # General information about the project.
project = u'invenio-theme-tugraz' project = u"invenio-theme-tugraz"
copyright = u'2020, mojib wali' copyright = u"2020, mojib wali"
author = u'mojib wali' author = u"mojib wali"
# 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
@@ -58,11 +56,12 @@ author = u'mojib wali'
# Get the version string. Cannot be done with import! # Get the version string. Cannot be done with import!
g = {} g = {}
with open(os.path.join(os.path.dirname(__file__), '..', with open(
'invenio_theme_tugraz', 'version.py'), os.path.join(os.path.dirname(__file__), "..", "invenio_theme_tugraz", "version.py"),
'rt') as fp: "rt",
) as fp:
exec(fp.read(), g) exec(fp.read(), g)
version = g['__version__'] version = g["__version__"]
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = version release = version
@@ -76,9 +75,9 @@ language = None
# 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:
#today = '' # today = ''
# Else, today_fmt is used as the format for a strftime call. # Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y' # today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and # List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files. # directories to ignore when looking for source files.
@@ -86,46 +85,46 @@ exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all # The reST default role (used for this markup: `text`) to use for all
# documents. # documents.
#default_role = None # default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text. # If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True # add_function_parentheses = True
# If true, the current module name will be prepended to all description # If true, the current module name will be prepended to all description
# unit titles (such as .. function::). # unit titles (such as .. function::).
#add_module_names = True # add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the # If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default. # output. They are ignored by default.
#show_authors = False # show_authors = False
# The name of the Pygments (syntax highlighting) style to use. # The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx' pygments_style = "sphinx"
# A list of ignored prefixes for module index sorting. # A list of ignored prefixes for module index sorting.
#modindex_common_prefix = [] # modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents. # If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False # keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing. # If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False todo_include_todos = False
# -- Options for HTML output ---------------------------------------------- # -- Options for HTML output ----------------------------------------------
html_theme = 'alabaster' html_theme = "alabaster"
html_theme_options = { html_theme_options = {
'description': 'invenio module for TUGRAZ theme.', "description": "invenio module for TUGRAZ theme.",
'github_user': 'inveniosoftware', "github_user": "TU Graz",
'github_repo': 'invenio-theme-tugraz', "github_repo": "invenio-theme-tugraz",
'github_button': False, "github_button": False,
'github_banner': True, "github_banner": True,
'show_powered_by': False, "show_powered_by": False,
'extra_nav_links': { "extra_nav_links": {
'invenio-theme-tugraz@GitHub': 'https://github.com/mb-wali/invenio-theme-tugraz', "invenio-theme-tugraz@GitHub": "https://github.com/tu-graz-library/invenio-theme-tugraz",
'invenio-theme-tugraz@PyPI': 'https://pypi.python.org/pypi/invenio-theme-tugraz/', "invenio-theme-tugraz@PyPI": "https://pypi.python.org/pypi/invenio-theme-tugraz/",
} },
} }
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
@@ -134,146 +133,148 @@ html_theme_options = {
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the
# documentation. # documentation.
#html_theme_options = {} # html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = [] # html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to # The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation". # "<project> v<release> documentation".
#html_title = None # html_title = None
# A shorter title for the navigation bar. Default is the same as html_title. # A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None # html_short_title = None
# The name of an image file (relative to this directory) to place at the top # The name of an image file (relative to this directory) to place at the top
# of the sidebar. # of the sidebar.
#html_logo = None # html_logo = None
# The name of an image file (within the static path) to use as favicon of the # The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large. # pixels large.
#html_favicon = None # html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['_static'] # html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or # Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied # .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation. # directly to the root of the documentation.
#html_extra_path = [] # html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y' # html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to # If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities. # typographically correct entities.
#html_use_smartypants = True # html_use_smartypants = True
# Custom sidebar templates, maps document names to template names. # Custom sidebar templates, maps document names to template names.
html_sidebars = { html_sidebars = {
'**': [ "**": [
'about.html', "about.html",
'navigation.html', "navigation.html",
'relations.html', "relations.html",
'searchbox.html', "searchbox.html",
'donate.html', "donate.html",
] ]
} }
# Additional templates that should be rendered to pages, maps page names to # Additional templates that should be rendered to pages, maps page names to
# template names. # template names.
#html_additional_pages = {} # html_additional_pages = {}
# If false, no module index is generated. # If false, no module index is generated.
#html_domain_indices = True # html_domain_indices = True
# If false, no index is generated. # If false, no index is generated.
#html_use_index = True # html_use_index = True
# If true, the index is split into individual pages for each letter. # If true, the index is split into individual pages for each letter.
#html_split_index = False # html_split_index = False
# If true, links to the reST sources are added to the pages. # If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True # html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True # html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True # html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will # If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the # contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served. # base URL from which the finished HTML is served.
#html_use_opensearch = '' # html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml"). # This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None # html_file_suffix = None
# Language to be used for generating the HTML full-text search index. # Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages: # Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
#html_search_language = 'en' # html_search_language = 'en'
# A dictionary with options for the search language support, empty by default. # A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value # Now only 'ja' uses this config value
#html_search_options = {'type': 'default'} # html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that # The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used. # implements a search results scorer. If empty, the default will be used.
#html_search_scorer = 'scorer.js' # html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder. # Output file base name for HTML help builder.
htmlhelp_basename = 'invenio-theme-tugraz_namedoc' htmlhelp_basename = "invenio-theme-tugraz_namedoc"
# -- Options for LaTeX output --------------------------------------------- # -- Options for LaTeX output ---------------------------------------------
latex_elements = { latex_elements = {
# The paper size ('letterpaper' or 'a4paper'). # The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper', # 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
# The font size ('10pt', '11pt' or '12pt'). # 'pointsize': '10pt',
#'pointsize': '10pt', # Additional stuff for the LaTeX preamble.
# 'preamble': '',
# Additional stuff for the LaTeX preamble. # Latex figure (float) alignment
#'preamble': '', # 'figure_align': 'htbp',
# Latex figure (float) alignment
#'figure_align': 'htbp',
} }
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]). # author, documentclass [howto, manual, or own class]).
latex_documents = [ latex_documents = [
(master_doc, 'invenio-theme-tugraz.tex', u'invenio-theme-tugraz Documentation', (
u'mojib wali', 'manual'), master_doc,
"invenio-theme-tugraz.tex",
u"invenio-theme-tugraz Documentation",
u"mojib wali",
"manual",
),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
# the title page. # the title page.
#latex_logo = None # latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts, # For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters. # not chapters.
#latex_use_parts = False # latex_use_parts = False
# If true, show page references after internal links. # If true, show page references after internal links.
#latex_show_pagerefs = False # latex_show_pagerefs = False
# If true, show URL addresses after external links. # If true, show URL addresses after external links.
#latex_show_urls = False # latex_show_urls = False
# Documents to append as an appendix to all manuals. # Documents to append as an appendix to all manuals.
#latex_appendices = [] # latex_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#latex_domain_indices = True # latex_domain_indices = True
# -- Options for manual page output --------------------------------------- # -- Options for manual page output ---------------------------------------
@@ -281,12 +282,17 @@ latex_documents = [
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
(master_doc, 'invenio-theme-tugraz', u'invenio-theme-tugraz Documentation', (
[author], 1) master_doc,
"invenio-theme-tugraz",
u"invenio-theme-tugraz Documentation",
[author],
1,
)
] ]
# If true, show URL addresses after external links. # If true, show URL addresses after external links.
#man_show_urls = False # man_show_urls = False
# -- Options for Texinfo output ------------------------------------------- # -- Options for Texinfo output -------------------------------------------
@@ -295,30 +301,36 @@ man_pages = [
# (source start file, target name, title, author, # (source start file, target name, title, author,
# dir menu entry, description, category) # dir menu entry, description, category)
texinfo_documents = [ texinfo_documents = [
(master_doc, 'invenio-theme-tugraz', u'invenio-theme-tugraz Documentation', (
author, 'invenio-theme-tugraz', 'invenio module for TUGRAZ theme.', master_doc,
'Miscellaneous'), "invenio-theme-tugraz",
u"invenio-theme-tugraz Documentation",
author,
"invenio-theme-tugraz",
"invenio module for TUGRAZ theme.",
"Miscellaneous",
),
] ]
# Documents to append as an appendix to all manuals. # Documents to append as an appendix to all manuals.
#texinfo_appendices = [] # texinfo_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#texinfo_domain_indices = True # texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'. # How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote' # texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu. # If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False # texinfo_no_detailmenu = False
# 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),
# 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),
} }
# Autodoc configuraton. # Autodoc configuraton.
autoclass_content = 'both' autoclass_content = "both"

View File

@@ -8,7 +8,7 @@
"""invenio module for TUGRAZ theme.""" """invenio module for TUGRAZ theme."""
from .ext import inveniothemetugraz from .ext import InvenioThemeTugraz
from .version import __version__ from .version import __version__
__all__ = ('__version__', 'inveniothemetugraz') __all__ = ("__version__", "InvenioThemeTugraz")

View File

@@ -0,0 +1,324 @@
/*
* Copyright (C) 2020 CERN.
* Copyright (C) 2020 Northwestern University.
* Copyright (C) 2020 Graz University of Technology
*
* invenio-theme-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.
*
* origin: invenio_app_rdm/search/components.js
*/
import React, { useState } from "react";
import { Card, Item, Input, Label, Button, Grid, Checkbox, List, } from "semantic-ui-react";
import { BucketAggregation, Toggle } from "react-searchkit";
import _ from "lodash";
import _truncate from "lodash/truncate";
import Overridable from "react-overridable";
import { SearchBar } from "@js/invenio_search_ui/components";
export const RDMRecordResultsListItem = ({ result, index }) => {
const description = _.get(result, "metadata.description", "No description");
const version = _.get(result, "metadata.version", "");
const creators = _.get(result, "metadata.creators", []);
const title = _.get(result, "metadata.title", "No title");
const subjects = _.get(result, "metadata.subjects", null);
const rights = _.get(result, "metadata.rights", null)
const publicationDate = _.get(result, "ui.publication_date_l10n_long", "No publication date found");
const createdDate = _.get(result, "ui.created_date_l10n_long", "No creation date found.");
const resourceType = _.get(result, "ui.resource_type", "No resource type");
const access = _.get(result, "ui.access_right.title", "No access rights");
const accessRightCategory = _.get(result, "ui.access_right.category", "closed");
const accessRightIcon = _.get(result, "ui.access_right.icon", "closed");
const accessRight = {type: access, category: accessRightCategory, icon: accessRightIcon, rights};
const href = `/records/${result.id}`;
return (
<Item key={index}>
<Item.Content>
<div className="badges">
<Label className="record-version">
{publicationDate} {version ? `(${version})` : null}
</Label>
<Label className="teal">
{resourceType}
</Label>
</div>
<Item.Header href={href}>{title}</Item.Header>
<Creators creators={creators}/>
<Item.Description href={href}>
{_truncate(description.replace(/(<([^>]+)>)/ig, ''), { length: 350 })}
</Item.Description>
<Footer subjects={subjects} createdDate={createdDate} accessRight={accessRight}/>
</Item.Content>
</Item>
);
};
const Creators = ({creators}) => {
const creatorTags = creators.map((creator, index) => {
return <Creator key={index} creator={creator}/>;
});
return (
<div className="creators">
{creatorTags}
</div>
);
};
const Identifiers = ({creator}) => {
return (
<div className="identifiers">
{_.isObject(creator.identifiers) && creator.identifiers.hasOwnProperty("orcid") &&
<Orcid creator={creator}/>
}
</div>
);
};
const Orcid = ({creator}) => {
const href = `https://orcid.org/${creator.identifiers.orcid}`
return (
<a href={href} target="_blank">
<img className="inline-orcid" src="/static/extra/orcid.png"/>
</a>
);
};
const Creator = ({creator}) => {
return (
<div className="creator">
<Identifiers creator={creator}/>
<span className="text-muted">{creator.name}</span>
</div>
);
};
const Footer = ({subjects, createdDate, accessRight}) => {
return (
<Item.Extra>
<div className="left floated column">
{subjects && subjects.map((subject, index) => (
<Label key={index} size="tiny">
{subject.subject}
</Label>
))}
{createdDate && (
<div>
<small>
Uploaded on <span>{createdDate}</span>
</small>
</div>
)}
</div>
<div className="right floated column">
<span className={`ui access-right ${accessRight.category}`}>
<i className={`icon ${accessRight.icon}`}></i>
{accessRight.type} {accessRight.rights && accessRight.rights.map((right, index) => (
<a key={index} href={right.uri}>({right.identifier})</a>
))}
</span>
</div>
</Item.Extra>
);
};
/**
* ATTENTION:
* The following classes are only here because it is not easily possible to
* import it from the original module.
* If there is in the future a possibility to import following classes from
* invenio_app_rdm then this should be done!
*/
export const RDMRecordResultsGridItem = ({ result, index }) => {
const description = _.get(result, "metadata.description", "No description");
return (
<Card fluid key={index} href={`/records/${result.pid}`}>
<Card.Content>
<Card.Header>{result.metadata.title}</Card.Header>
<Card.Description>
{_truncate(description, { length: 200 })}
</Card.Description>
</Card.Content>
</Card>
);
};
export const RDMRecordSearchBarContainer = () => {
return (
<Overridable id={"SearchApp.searchbar"}>
<SearchBar />
</Overridable>
);
};
export const RDMRecordSearchBarElement = ({
placeholder: passedPlaceholder,
queryString,
onInputChange,
executeSearch,
}) => {
const placeholder = passedPlaceholder || "Search";
const onBtnSearchClick = () => {
executeSearch();
};
const onKeyPress = (event) => {
if (event.key === "Enter") {
executeSearch();
}
};
return (
<Input
action={{
icon: "search",
onClick: onBtnSearchClick,
className: "search",
}}
placeholder={placeholder}
onChange={(event, { value }) => {
onInputChange(value);
}}
value={queryString}
onKeyPress={onKeyPress}
/>
);
};
export const RDMRecordFacetsValues = ({
bucket,
isSelected,
onFilterClicked,
getChildAggCmps,
}) => {
const childAggCmps = getChildAggCmps(bucket);
const [isActive, setisActive] = useState(false);
const hasChildren = childAggCmps && childAggCmps.props.buckets.length > 0;
return (
<List.Item key={bucket.key}>
<div
className={`title ${hasChildren ? "" : "facet-subtitle"} ${
isActive ? "active" : ""
}`}
>
<List.Content floated="right">
<Label circular>{bucket.doc_count}</Label>
</List.Content>
{hasChildren ? (
<i
className={`angle ${isActive ? "down" : "right"} icon`}
onClick={() => setisActive(!isActive)}
></i>
) : null}
<Checkbox
label={bucket.label}
value={bucket.key}
onClick={() => onFilterClicked(bucket.key)}
checked={isSelected}
/>
</div>
<div className={`content facet-content ${isActive ? "active" : ""}`}>
{childAggCmps}
</div>
</List.Item>
);
};
const SearchHelpLinks = () => {
return (
<Overridable id={"RdmSearch.SearchHelpLinks"}>
<Grid className="padded-small">
<Grid.Row className="no-padded">
<Grid.Column>
<Card className="borderless-facet">
<Card.Content>
<a>Advanced search</a>
</Card.Content>
</Card>
</Grid.Column>
</Grid.Row>
<Grid.Row className="no-padded">
<Grid.Column>
<Card className="borderless-facet">
<Card.Content>
<a>Search guide</a>
</Card.Content>
</Card>
</Grid.Column>
</Grid.Row>
</Grid>
</Overridable>
);
};
export const RDMRecordFacets = ({ aggs, currentResultsState }) => {
return (
<>
<Toggle
title="Versions"
label="View all versions"
filterValue={["all_versions", "true"]}
/>
{aggs.map((agg) => {
return (
<div key={agg.title} className="ui accordion">
<BucketAggregation title={agg.title} agg={agg} />
</div>
);
})}
<SearchHelpLinks />
</>
);
};
export const RDMBucketAggregationElement = ({ title, containerCmp }) => {
return (
<Card className="borderless-facet">
<Card.Content>
<Card.Header>{title}</Card.Header>
</Card.Content>
<Card.Content>{containerCmp}</Card.Content>
</Card>
);
};
export const RDMToggleComponent = ({
updateQueryFilters,
userSelectionFilters,
filterValue,
label,
title,
isChecked,
}) => {
const _isChecked = (userSelectionFilters) => {
const isFilterActive =
userSelectionFilters.filter((filter) => filter[0] === filterValue[0])
.length > 0;
return isFilterActive;
};
const onToggleClicked = () => {
updateQueryFilters(filterValue);
};
var isChecked = _isChecked(userSelectionFilters);
return (
<Card className="borderless-facet">
<Card.Content>
<Card.Header>{title}</Card.Header>
</Card.Content>
<Card.Content>
<Checkbox
toggle
label={label}
onClick={onToggleClicked}
checked={isChecked}
/>
</Card.Content>
</Card>
);
};

View File

@@ -0,0 +1,30 @@
/*
* Copyright (C) 2020 Graz University of Technology
*
* invenio-theme-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.
*/
import { defaultComponents, createSearchAppInit } from "@js/invenio_search_ui";
import {
RDMRecordResultsListItem,
RDMBucketAggregationElement,
RDMRecordFacets,
RDMRecordFacetsValues,
RDMRecordResultsGridItem,
RDMRecordSearchBarContainer,
RDMRecordSearchBarElement,
RDMToggleComponent,
} from "./components";
const initSearchApp = createSearchAppInit({
"ResultsList.item": RDMRecordResultsListItem,
"BucketAggregation.element": RDMBucketAggregationElement,
"BucketAggregationValues.element": RDMRecordFacetsValues,
"ResultsGrid.item": RDMRecordResultsGridItem,
"SearchApp.facets": RDMRecordFacets,
"SearchApp.searchbarContainer": RDMRecordSearchBarContainer,
"SearchBar.element": RDMRecordSearchBarElement,
"SearchFilters.ToggleComponent": RDMToggleComponent,
});

View File

@@ -39,8 +39,9 @@
.affiliation-text { .affiliation-text {
display: table-cell; display: table-cell;
font-size: 17px; font-size: 12px;
vertical-align: middle; line-height: 17px;
letter-spacing: 2px;
white-space: nowrap; white-space: nowrap;
} }
@@ -248,3 +249,7 @@ svg:not(:root) {
.inline-elements{ .inline-elements{
display: flex; display: flex;
} }
span.home-inline{
white-space: nowrap;
}

View File

@@ -9,3 +9,18 @@
color: #e9711c; color: #e9711c;
float: right; float: right;
} }
.title .dropdown {
display: none;
}
.top-bottom-padded {
margin: unset;
}
.label.label-keyword {
font-size: 0.71428571rem;
font-weight: 400;
background-color: #E8E8E8;
border: unset;
}

View File

@@ -0,0 +1,45 @@
/*
* Copyright (C) 2020 Graz University of Technology
*
* invenio-theme-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.
*/
.creators {
margin: 0 0 1em;
}
.creators span {
margin-left: 2px;
}
.creator:not(:last-child):after {
color: #777;
content: ';';
}
.creator {
display: inline-block;
margin-right: 5px;
}
.identifiers {
display: inline;
}
.ui.access-right {
color: #FFFFFF;
&.open {
color: @accessRightOpen;
}
&.restricted {
color: @accessRightRestricted;
}
&.embargoed {
color: @accessRightEmbargoed;
}
&.closed {
color: @accessRightClosed;
}
}

View File

@@ -12,6 +12,7 @@
@import "overrides"; @import "overrides";
@import "frontpage"; @import "frontpage";
@import "record"; @import "record";
@import "search";
@import "macros"; @import "macros";
@import "login"; @import "login";
@import (css) @import (css)

View File

@@ -15,3 +15,8 @@
//@navbar_background_image: unset; //@navbar_background_image: unset;
//@navbar_background_color: #ffffff; //@navbar_background_color: #ffffff;
@accessRightOpen: #e9711c;
@accessRightRestricted: #fbbd08;
@accessRightEmbargoed: #db2828;
@accessRightClosed: #db2828;

View File

@@ -9,15 +9,15 @@
"""invenio module for TUGRAZ theme.""" """invenio module for TUGRAZ theme."""
from flask_babelex import gettext as _ from flask_babelex import gettext as _
from invenio_app_rdm.config import RECORDS_UI_ENDPOINTS
INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = "foobar" INVENIO_THEME_TUGRAZ_DEFAULT_VALUE = _("TU Graz Repository")
"""Default value for the application.""" """Default value for the application."""
INVENIO_THEME_TUGRAZ_BASE_TEMPLATE = "invenio_theme_tugraz/base.html" INVENIO_THEME_TUGRAZ_BASE_TEMPLATE = "invenio_theme_tugraz/base.html"
"""TU Graz Default base template""" """TU Graz Default base template"""
INVENIO_THEME_TUGRAZ_ACCOUNT_BASE = \ INVENIO_THEME_TUGRAZ_ACCOUNT_BASE = "invenio_theme_tugraz/accounts/accounts_base.html"
"invenio_theme_tugraz/accounts/accounts_base.html"
"""TU Graz Default account base template""" """TU Graz Default account base template"""
INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png" INVENIO_THEME_TUGRAZ_ICON = "images/icon_use.png"
@@ -39,14 +39,10 @@ THEME_SEARCHBAR = False
THEME_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html" THEME_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
"""TU Graz header template""" """TU Graz header template"""
# THEME_FRONTPAGE_TEMPLATE = 'invenio_theme_tugraz/frontpage.html'
"""Frontpage template"""
THEME_FRONTPAGE = False THEME_FRONTPAGE = False
"""Use default frontpage.""" """Use default frontpage."""
THEME_HEADER_LOGIN_TEMPLATE = \ THEME_HEADER_LOGIN_TEMPLATE = "invenio_theme_tugraz/accounts/header_login.html"
"invenio_theme_tugraz/accounts/header_login.html"
"""login page header""" """login page header"""
THEME_FOOTER_TEMPLATE = "invenio_theme_tugraz/footer.html" THEME_FOOTER_TEMPLATE = "invenio_theme_tugraz/footer.html"
@@ -65,12 +61,10 @@ THEME_SITENAME = _("Repository")
# COVER_TEMPLATE = 'invenio_theme_tugraz/accounts/accounts_base.html' # COVER_TEMPLATE = 'invenio_theme_tugraz/accounts/accounts_base.html'
"""Cover page template for login and sign up pages.""" """Cover page template for login and sign up pages."""
SECURITY_LOGIN_USER_TEMPLATE = \ SECURITY_LOGIN_USER_TEMPLATE = "invenio_theme_tugraz/accounts/login_user.html"
"invenio_theme_tugraz/accounts/login_user.html"
"""Login template""" """Login template"""
SECURITY_REGISTER_USER_TEMPLATE = \ SECURITY_REGISTER_USER_TEMPLATE = "invenio_theme_tugraz/accounts/register_user.html"
"invenio_theme_tugraz/accounts/register_user.html"
"""Sigup template""" """Sigup template"""
# Invenio-I18N # Invenio-I18N
@@ -97,7 +91,13 @@ DEPOSITS_HEADER_TEMPLATE = "invenio_theme_tugraz/header.html"
# See https://invenio-rdm-records.readthedocs.io/en/latest/configuration.html # See https://invenio-rdm-records.readthedocs.io/en/latest/configuration.html
# Uncomment below to override records landingpage. # Uncomment below to override records landingpage.
# from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS # from invenio_rdm_records.config import RECORDS_UI_ENDPOINTS
# RECORDS_UI_ENDPOINTS["recid"].update( RECORDS_UI_ENDPOINTS["recid"].update(
# template="invenio_theme_tugraz/record_landing_page.html" template="invenio_theme_tugraz/record_landing_page.html"
# ) )
"""override the default record landing page""" """override the default record landing page"""
# Invenio-search-ui
# =============
# See https://invenio-search-ui.readthedocs.io/en/latest/configuration.html
SEARCH_UI_SEARCH_TEMPLATE = "invenio_theme_tugraz/search.html"
"""override the default search page"""

View File

@@ -8,12 +8,10 @@
"""invenio module for TUGRAZ theme.""" """invenio module for TUGRAZ theme."""
from flask_babelex import gettext as _
from . import config from . import config
class inveniothemetugraz(object): class InvenioThemeTugraz(object):
"""invenio-theme-tugraz extension.""" """invenio-theme-tugraz extension."""
def __init__(self, app=None): def __init__(self, app=None):
@@ -24,10 +22,10 @@ class inveniothemetugraz(object):
def init_app(self, app): def init_app(self, app):
"""Flask application initialization.""" """Flask application initialization."""
self.init_config(app) self.init_config(app)
app.extensions['invenio-theme-tugraz'] = self app.extensions["invenio-theme-tugraz"] = self
def init_config(self, app): def init_config(self, app):
"""Initialize configuration.""" """Initialize configuration."""
for k in dir(config): for k in dir(config):
if k.startswith('INVENIO_THEME_TUGRAZ_'): if k.startswith("INVENIO_THEME_TUGRAZ_"):
app.config.setdefault(k, getattr(config, k)) app.config.setdefault(k, getattr(config, k))

View File

@@ -21,10 +21,5 @@ class FrontpageRecordsSearch(RecordsSearch):
class Meta: class Meta:
"""Default index and filter for frontpage search.""" """Default index and filter for frontpage search."""
index = 'records' index = "rdmrecords-records"
default_filter = Q( default_filter = Q("query_string", query=("access.access_right:open"))
'query_string',
query=(
'access_right:open '
)
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -67,6 +67,12 @@
{%- block navbar_header %} {%- block navbar_header %}
{%- include "invenio_theme_tugraz/navbar.html" %} {%- include "invenio_theme_tugraz/navbar.html" %}
<!--Flask messages for accounts-->
{%- block flashmessages %}
{%- from "invenio_theme/macros/messages.html" import flashed_messages with context -%}
{{ flashed_messages() }}
{%- endblock %}
{%- endblock navbar_header %} {%- endblock navbar_header %}
{# {#

View File

@@ -5,14 +5,14 @@
{%- if config.SECURITY_REGISTERABLE %} {%- if config.SECURITY_REGISTERABLE %}
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a href="{{ url_for('security.register') }}"> <a href="{{ url_for('security.register') }}">
<i class="user plus icon circular"></i> Sign Up {{_ ("Sign up")}}
</a> </a>
</div> </div>
{%- endif %} {%- endif %}
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a href="{{url_for_security('login', next=request.path)}}" style="text-decoration:none"> <a href="{{url_for_security('login', next=request.path)}}" style="text-decoration:none">
<i class="sign in icon circular"></i> Login {{_ ("Log in")}}
</a> </a>
</div> </div>
@@ -27,7 +27,7 @@
</div> </div>
<div class="short-menu-right-button"> <div class="short-menu-right-button">
<a class="dropdown-item" href="{{url_for_security('logout')}}"> <a class="dropdown-item" href="{{url_for_security('logout')}}">
<i class="sign out icon circular"></i>{{_('Logout')}} {{_('Sign out')}}
</a> </a>
</div> </div>

View File

@@ -24,15 +24,16 @@
<h3 class="ui login header">{{ _('Log in to Repository') }}</h3> <h3 class="ui login header">{{ _('Log in to Repository') }}</h3>
{%- endblock form_header %} {%- endblock form_header %}
<!--Login with SSO--> <!--Log in with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %} {%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="login-page-button"> <div class="ui divider"></div>
<div class="login-page-button ui fluid large button">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label"> <a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label">
{% trans type='TUGRAZ' %} Login with {{ type }}{% endtrans %} {% trans type='TUGRAZ' %} Log in with {{ type }}{% endtrans %}
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" /> <img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a> </a>
</div> </div>
<div class="ui inverted horizontal divider"><span class="text-color">Or</span></div> <div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %} {%- endif %}
{%- block form_outer %} {%- block form_outer %}
@@ -56,7 +57,7 @@
{%- if security.registerable %} {%- if security.registerable %}
<div class="ui primary segment padded text-muted"> <div class="ui primary segment padded text-muted">
{% trans sitename=config.ACCOUNTS_SITENAME %}New to {{ sitename }}?{% endtrans %} {% trans sitename=config.ACCOUNTS_SITENAME %}New to {{ sitename }}?{% endtrans %}
<a href="{{ url_for_security('register', next=request.args.get('next')) }}">{{ _('Sign Up') }}</a> <a href="{{ url_for_security('register', next=request.args.get('next')) }}">{{ _('Sign up') }}</a>
</div> </div>
{%- endif %} {%- endif %}
{%- endblock registerable %} {%- endblock registerable %}

View File

@@ -17,7 +17,7 @@
<div class="ui container"> <div class="ui container">
<div class="ui two column stackable centered grid switch-grid"> <div class="ui stackable two column grid">
<div class="centered row"> <div class="centered row">
<h1 class="ui header">{{ _('Create an Account') }}</h1> <h1 class="ui header">{{ _('Create an Account') }}</h1>
</div> </div>
@@ -45,13 +45,14 @@
<!--Sigup with SSO--> <!--Sigup with SSO-->
{%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %} {%- if config.INVENIO_CONFIG_TUGRAZ_SHIBBOLETH %}
<div class="login-page-button"> <div class="ui divider"></div>
<div class="login-page-button ui fluid large button">
<a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label"> <a href="{{ url_for('sso_saml.sso', idp='idp') }}" class="inverted tiny image label">
<span style="font-size: 18px;">{{ _('Sign up with TUGRAZ ') }}</span> <span style="font-size: 18px;">{{ _('Sign up with TUGRAZ ') }}</span>
<img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" /> <img src="{{ url_for('static', filename=config.INVENIO_THEME_TUGRAZ_ICON)}}" height="20px" />
</a> </a>
</div> </div>
<div class="ui inverted horizontal divider"><span class="text-color">Or</span></div> <div class="ui inverted horizontal divider"><span class="text-color">{{_ ("Or")}}</span></div>
{%- endif %} {%- endif %}
{%- block form_header %} {%- block form_header %}
@@ -77,7 +78,7 @@
<div class="centered row"> <div class="centered row">
<button type="submit" class="ui fluid large submit button"> <button type="submit" class="ui fluid large submit button">
<i class="ui edit outline icon"></i>{{ _('Sign Up') }} <i class="ui edit outline icon"></i>{{ _('Sign up') }}
</button> </button>
</div> </div>
</form> </form>

View File

@@ -1,6 +1,6 @@
<ul> <ul>
<li><strong>{{_('Safe')}}</strong> &mdash; {{_('your research is stored safely for the future in CERNs Data Centre for as long as CERN exists.')}}</li> <li><strong>{{_('Safe')}}</strong> &mdash; {{_('your research is stored safely for the future in TU Graz library for as long as TU Graz library exists.')}}</li>
<li><strong>{{_('Trusted')}}</strong> &mdash; {{_('built and operated by CERN and OpenAIRE to ensure that everyone can join in Open Science.')}}</li> <li><strong>{{_('Trusted')}}</strong> &mdash; {{_('built and operated by CERN and OpenAIRE to ensure that everyone can join in Open Science.')}}</li>
<li><strong>{{_('Citeable')}}</strong> &mdash; {{_('every upload is assigned a Digital Object Identifier (DOI), to make them citable and trackable.')}}</li> <li><strong>{{_('Citeable')}}</strong> &mdash; {{_('every upload is assigned a Digital Object Identifier (DOI), to make them citable and trackable.')}}</li>
<li><strong>{{_('No waiting time')}}</strong> &mdash; {{_('Uploads are made available online as soon as you hit publish, and your DOI is registered within seconds.')}}</li> <li><strong>{{_('No waiting time')}}</strong> &mdash; {{_('Uploads are made available online as soon as you hit publish, and your DOI is registered within seconds.')}}</li>

View File

@@ -25,11 +25,11 @@
<div id="doi-modal" class="ui modal fade badge-modal" data-modal="{{ id_doi }}"> <div id="doi-modal" class="ui modal fade badge-modal" data-modal="{{ id_doi }}">
<h2 class="header"> <h2 class="header">
RDM DOI Badge {{_ ("RDM DOI Badge")}}
</h2> </h2>
<div class="content"> <div class="content">
<h4><small>DOI</small></h4> <h4><small>{{_ ("DOI")}}</small></h4>
<h4><pre>{{ id_doi }}</pre></h4> <h4><pre>{{ id_doi }}</pre></h4>

View File

@@ -28,18 +28,18 @@
<div class="column"> <div class="column">
<h2>Repository</h2> <h2>{{_ ("Repository")}}</h2>
<p class="bodytext"> <p class="bodytext">
<a href="{{ url_for('invenio_rdm_records.coming_soon') }}"> <a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
Impressum<i class="angle right icon"></i> {{_ ("Impressum")}}<i class="angle right icon"></i>
</a> </a>
<br> <br>
<a href="{{ url_for('invenio_rdm_records.coming_soon') }}"> <a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
Datenschutzerklärung<i class="angle right icon"></i> {{_ ("Data protection")}}<i class="angle right icon"></i>
</a> </a>
<br> <br>
<a href="{{ url_for('invenio_rdm_records.coming_soon') }}"> <a href="{{ url_for('invenio_app_rdm.coming_soon') }}">
Feedback<i class="angle right icon"></i> {{_ ("Feedback")}}<i class="angle right icon"></i>
</a> </a>
</p> </p>
@@ -48,43 +48,43 @@
<div class="column"> <div class="column">
<h2>Features</h2> <h2>{{_ ("Features")}}</h2>
<h4>Scalability</h4> <h4>{{_ ("Scalability")}}</h4>
<h4>Institutional integration</h4> <h4>{{_ ("Institutional integration")}}</h4>
<h4>Next Generation Repository <h4>{{_ ("Next Generation Repository")}}
</h4> </h4>
<h4>Repository Profiles</h4> <h4>{{_ ("Repository Profiles")}}</h4>
<h4>Resilient</h4> <h4>{{_ ("Resilient")}}</h4>
</div> </div>
<div class="column"> <div class="column">
<h2>Connected Services</h2> <h2>{{_ ("Connected Services")}}</h2>
<p class="bodytext"> <p class="bodytext">
<a href="https://pure.tugraz.at" title="PURE"> <a href="https://pure.tugraz.at" title="PURE">
PURE <i class="external alternate icon"></i></a><br> {{_ ("PURE")}} <i class="external alternate icon"></i></a><br>
<a href="http://campusonline.tugraz.at" title="CAMPUS online"> <a href="http://campusonline.tugraz.at" title="CAMPUS online">
CampusOnline <i class="external alternate icon"></i></a><br> {{_ ("CampusOnline")}} <i class="external alternate icon"></i></a><br>
<a href="https://rdm.tugraz.at" title="CAMPUS online"> <a href="https://rdm.tugraz.at" title="CAMPUS online">
Research Data Management <i class="external alternate icon"></i></a><br> {{_ ("Research Data Management")}} <i class="external alternate icon"></i></a><br>
</p> </p>
</div> </div>
<div class="column"> <div class="column">
<h2>Accessibility</h2> <h2>{{_ ("Accessibility")}}</h2>
<p class="bodytext">Tipp:<br> Use Ctrl + and Crtl -<br> to change the font size.</p> <p class="bodytext">{{_ ("Tipp:")}}<br> {{_ ("Use Ctrl + and Crtl -")}}<br> {{_ ("to change the font size.")}}</p>
</div> </div>

View File

@@ -1,25 +0,0 @@
{#
Copyright (C) 2020 TUGRAZ
Copyright (C) 2020 mojib wali.
invenio-theme-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.
#}
{%- extends "semantic-ui/invenio_theme/frontpage.html" %}
{%- block page_header %}
{%- include "invenio_theme_tugraz/header_frontpage.html" %}
{%- endblock page_header %}
{%- block page_body %}
{%- block first_section%}
{%- endblock first_section%}
{%- block second_section%}
{%- endblock second_section%}
{%- endblock page_body%}

View File

@@ -19,8 +19,9 @@
<div class="ui container"> <div class="ui container">
<div class="ui grid stackable container"> <div class="ui grid stackable container">
<div class="three column row centered" style="padding-bottom: 0;"> <div class="three column row centered" style="padding-bottom: 0;">
<div class="two wide column main-menu-entry main-menu-entry-svg"> <div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_theme_tugraz.index')}}" title="Home"> <a href="{{url_for('invenio_theme_tugraz.index')}}" title="Home">
<span class="home-inline">
<svg shape-rendering="geometricPrecision" id="int-menu-q-home-icon" <svg shape-rendering="geometricPrecision" id="int-menu-q-home-icon"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg"
version="1.1" xml:space="preserve" height="36.997" width="35.969" version="1.1" xml:space="preserve" height="36.997" width="35.969"
@@ -31,14 +32,21 @@
transform="translate(-279.72 -403.28)"> transform="translate(-279.72 -403.28)">
</polyline> </polyline>
</svg> </svg>
Home {{_ ("Home")}}
</span>
</a> </a>
</div> </div>
{%- for item in current_menu.submenu('main').children|sort(attribute='order') if item.visible recursive %} <!--TODO: uncomment this once translation is on place-->
<!-- {%- for item in current_menu.submenu('main').children|sort(attribute='order') if item.visible recursive %}
<div class="two wide column main-menu-entry"> <div class="two wide column main-menu-entry">
<a href="{{ item.url }}">{{ item.text|safe }}</a> <a href="{{ item.url }}">{{ item.text|safe }}</a>
</div> </div>
{%- endfor %} {%- endfor %} -->
<!--TODO: remove this once above is uncommented-->
<div class="two wide column main-menu-entry">
<a href="{{url_for('invenio_app_rdm.deposits_user')}}">{{_ ("Uploads")}}</a>
</div>
</div> </div>
<div id="margin-divider" class="ui divider main-menu-underline-line"> <div id="margin-divider" class="ui divider main-menu-underline-line">

View File

@@ -1,53 +0,0 @@
{#
Copyright (C) 2020 TUGRAZ
Copyright (C) 2020 mojib wali.
invenio-theme-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.
#}
{%- extends config.THEME_HEADER_TEMPLATE %}
{#- Remove search field from top bar on frontpage #}
{%- block navbar_search %}{% endblock %}
{%- block navbar %}
{{ super() }}
{%- block frontpage_search %}
<!--
<div id="frontpage-search-bar" class="ui container fluid cover-page">
-->
<div class="ui container two column centered middle aligned grid">
<div class="row middle aligned">
<div class="sixteen wide column frontpage-search">
<!--
{%- block frontpage_title %}
<h1 class="ui center aligned header">
{{ _(config.THEME_FRONTPAGE_TITLE) }}
</h1>
{%- endblock frontpage_title %}
-->
{%- block frontpage_form %}
<form action="/search" class="ui form">
<div class="ui fluid action input">
<input type="text" name="q" class="form-control" placeholder="Type and press enter to search">
<button type="submit" class="ui icon search button"><i class="search icon"></i></button>
</div>
</form>
<div class="ui divider hidden"></div>
{%- endblock frontpage_form %}
</div>
</div>
</div>
<!--
</div>
-->
{%- endblock frontpage_search %}
{% endblock %}

View File

@@ -41,26 +41,21 @@
{%- for r in records %} {%- for r in records %}
{%- set creation_date = r._created|from_isodatetime -%} {%- set creation_date = r._created|from_isodatetime -%}
{%- set record_url = url_for('invenio_records_ui.recid', pid_value=r['recid']) %} {%- set record_url = url_for('invenio_records_ui.recid', pid_value=r['id']) %}
<article> <article>
<!--TODO: <!--TODO:
something with doi something with doi
--> -->
<div class="badges"> <div class="badges">
<!--Publication date badge--> <!--Publication date/Version badge-->
<span class="ui label teal" title="{{_('Publication date')}}"> <span class="ui label record-version" title="{{_('Publication date')}}">
{{ r.publication_date }} {{ r.metadata.publication_date }} {{ '(' ~ r.metadata.version ~ ')' if r.metadata.version }}
</span>
<!--Version badge-->
<span class="ui label record-version" title="{{_('Version')}}">
{{ (' Version ' ~ r.version ~ '') if r.version else 'Version' }}
</span> </span>
<!--Resource type badge--> <!--Resource type badge-->
<span class="ui label grey" title="{{_('Resource type')}}"> <span class="ui label teal" title="{{_('Resource type')}}">
{{r.resource_type | cast_to_dict | vocabulary_title('resource_type') }} {{r.metadata.resource_type | cast_to_dict | vocabulary_title('resource_type') }}
</span> </span>
<span class="label record-version"> <span class="label record-version">
@@ -70,33 +65,43 @@
<h4> <h4>
<a href="{{ record_url }}"> <a href="{{ record_url }}">
{{r.titles[0].title}} {{r.metadata.title}}
</a> </a>
</h4> </h4>
<p> <p>
{{ creators(r.creators) }} {{ creators(r.metadata.creators) }}
</p> </p>
<p class="hidden-xs"> <p class="hidden-xs">
<a href="{{record_url}}"> <a href="{{record_url}}">
{{ r.descriptions[0].description | striptags | truncate(300) }} {{ r.metadata.description | striptags | truncate(300) }}
</a> </a>
</p> </p>
<div class="ui grid"> <div class="ui grid">
<div class="two column row"> <div class="two column row">
<div class="left floated column"> <div class="left floated column">
<small> {%- for s in r.metadata.subjects %}
{% trans user=userprofile, date=creation_date | dateformat('long')%} <div class="ui tiny label">{{s.subject}}</div>
Uploaded on {{date}} {%- endfor %}
{% endtrans %} <div>
</small> <small>
{% trans user=userprofile, date=creation_date | dateformat('long')%}
Uploaded on {{date}}
{% endtrans %}
</small>
</div>
</div> </div>
<div class="right floated column"> <div class="right floated column">
<span class="access-right"> <span class="access-right">
{{ r.access_right | make_dict_like('access_right') | vocabulary_title('access_right') | lower }} <i class="icon lock open"></i>
{{ r.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }}
{%- for right in r.metadata.rights %}
<a target="_blank" href="{{right.url}}">{{ '(' ~ right.identifier ~ ')' }}</a>
{%- endfor %}
</span> </span>
</div> </div>
</div> </div>
@@ -106,7 +111,7 @@
--> -->
{%- endfor %} {%- endfor %}
<div class="ui two column centered grid"> <div class="ui centered grid">
<a class="ui button more" href="{{url_for('invenio_search_ui.search')}}">{{_('More')}}</a> <a class="ui button more" href="{{url_for('invenio_search_ui.search')}}">{{_('More')}}</a>
</div> </div>
</div> </div>
@@ -116,30 +121,31 @@
<div class="six wide column"> <div class="six wide column">
<!--contact us--> <!--contact us-->
<div class="ui segment" style="padding-bottom: 10px;"> <div class="ui segment" style="padding-bottom: 10px;">
<h4>Need help?</h4> <h4>{{_ ("Need help?")}} </h4>
<div style="padding-bottom: 10px;"> <div style="padding-bottom: 10px;">
<a href="{{ url_for('invenio_theme_tugraz.index')}}" class="fluid ui button"> <a href="{{ url_for('invenio_theme_tugraz.index')}}" class="fluid ui button">
Contact us {{_ ("Contact us")}}
</a> </a>
</div> </div>
<p> <p>
{{config.THEME_SITENAME}} prioritizes all requested related to the COVID-19 outbreak. {{config.THEME_SITENAME}} {{_ ("prioritizes all Recent uploads.")}}
</p> </p>
<p> <p>
We can help with: {{_ ("We can help with:")}}
</p> </p>
<ul> <ul>
<li>Uploading your research data, software, preprints, etc.</li> <li>{{_ ("Uploading your research data, software, preprints, etc.")}}</li>
<li>One-on-one with {{config.THEME_SITENAME}} supporters.</li> <li>{{_ ("One-on-one with")}} {{config.THEME_SITENAME}} {{_ ("supporters.")}}</li>
<li>Quota increases beyond our default policy.</li> <li>{{_ ("Quota increases beyond our default policy.")}}</li>
<li>Scripts for automated uploading of larger datasets.</li> <li>{{_ ("Scripts for automated uploading of larger datasets.")}}</li>
</ul> </ul>
</div> </div>
<div class="ui segment" style="padding-bottom: 10px;"> <div class="ui segment" style="padding-bottom: 10px;">
<h4>Why use {{config.THEME_SITENAME}}?</h4> <h4>{{_ ("Why use")}} {{config.THEME_SITENAME}}?</h4>
{% include "invenio_theme_tugraz/benefits.html" %} {% include "invenio_theme_tugraz/benefits.html" %}
</div> </div>

View File

@@ -1,7 +1,6 @@
{# {#
Copyright (C) 2020 Zenodo Copyright (C) 2020 Zenodo
Copyright (C) 2020 TUGRAZ Copyright (C) 2020 TUGRAZ
Copyright (C) 2020 mojib wali.
invenio-theme-tugraz is free software; you can redistribute it and/or invenio-theme-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,8 +11,8 @@
{%- for creators in authors_list %} {%- for creators in authors_list %}
{%- if creators.identifiers.Orcid %} {%- if creators.identifiers and creators.identifiers.orcid %}
<a href="{{creators.identifiers.Orcid|pid_url('orcid')}}" target="_blank" ><img class="inline-orcid" src="{{ url_for('static', filename='extra/orcid.png')}}" /></a> <a href="{{creators.identifiers.orcid|pid_url('orcid')}}" target="_blank" ><img class="inline-orcid" src="{{ url_for('static', filename='extra/orcid.png')}}" /></a>
{%- endif %} {%- endif %}
<span class="text-muted" {% if creators.affiliations %} {% for affiliation in creators.affiliations %} data-toggle="tooltip" title="{{affiliation.name}}" {%- endfor %} {% endif %}>{{creators.name}}</span> <span class="text-muted" {% if creators.affiliations %} {% for affiliation in creators.affiliations %} data-toggle="tooltip" title="{{affiliation.name}}" {%- endfor %} {% endif %}>{{creators.name}}</span>
@@ -25,7 +24,7 @@
<!--TODO: contributers--> <!--TODO: contributers-->
{%- macro contributors(contributors_list) %} {%- macro contributors(contributors_list) %}
{%- for group in contributors_list|groupby('type')%} {%- for group in contributors_list|groupby('type')%}
<h5>{{group.grouper|contributortype_title}}(s)</h5> <h5>{{group.grouper}}(s)</h5>
{{authors(group.list)}} {{authors(group.list)}}
{%- endfor %} {%- endfor %}
{%- endmacro %} {%- endmacro %}

View File

@@ -58,13 +58,15 @@
<div class="left floated left aligned six wide column" id="repo-logo"> <div class="left floated left aligned six wide column" id="repo-logo">
<div class="inline-elements"> <div class="inline-elements">
<div class="repo-img"> <div class="repo-img">
<img height="51.862" src="{{ url_for('static', filename='images/Icon_1_v2.svg')}}"> <img height="51.862" src="{{ url_for('static', filename='images/library_logo.png')}}">
</div> </div>
<div class="affiliation-text"> <div class="affiliation-text">
<a title="RDM" href="{{url_for('invenio_theme_tugraz.index')}}"> <a title="RDM" href="{{url_for('invenio_theme_tugraz.index')}}">
TU Graz TU GRAZ
<br> <br>
{{_ ("Repository")}} {{_ ("REPOSITORY")}}
<br>
{{_ ("LIBRARY & ARCHIVES")}}
</a> </a>
</div> </div>
</div> </div>

View File

@@ -13,89 +13,82 @@
{%- block css %} {%- block css %}
{{ super() }} {{ super() }}
{{ webpack['invenio-rdm-records-theme.css'] }}
{%- endblock css %} {%- endblock css %}
{%- from "invenio_rdm_records/macros/files.html" import file_list_box, preview_file_box %} {%- from "invenio_app_rdm/landing_page/macros/files.html" import file_list_box, preview_file_box %}
{%- from "invenio_app_rdm/landing_page/macros/detail.html" import show_detail %}
{%- set record = record|dereference_record|serialize_ui %}
{%- set metadata = record.metadata %}
{%- block page_body %} {%- block page_body %}
<div class="ui container"> <div class="ui container">
<div class="ui padded relaxed grid"> <div class="ui padded relaxed grid">
<div class="two column row"> <div class="two column row">
<div class="ten wide column"> <div class="ten wide column">
{%- block record_body %} {%- block record_body %}
<div class="left floated left aligned column"> <div class="badges">
<span class="ui label teal" title="Publication date"> <span class="ui label record-version" title="{{_('Publication date')}}">
{{ record.publication_date|to_date|format_date(format='long') }} {{ record.metadata.publication_date }} {{ '(' ~ record.metadata.version ~ ')' if record.metadata.version }}
</span> </span>
<span class="ui label record-version"> <!--Resource type badge-->
Version {{ record.version }} <span class="ui label teal" title="{{_('Resource type')}}">
</span> {{record.ui.resource_type }}
<span class="ui label grey">
{{ record.resource_type | vocabulary_title('resource_type') }}
</span> </span>
</div> </div>
<h1>{{ record.titles[0].title }}</h1> <h1 style="margin-top: -6px">{{ record.metadata.title }}</h1>
<p> <p>{%- include "invenio_app_rdm/landing_page/details/creators.html" %}</p>
{%- include "invenio_rdm_records/details/creators.html" %} <p>{%- include "invenio_app_rdm/landing_page/details/contributors.html" %}</p>
</p>
{%- if record.contributors %} <div class="ui grid" style="margin-bottom: 10px;">
<p>
{%- include "invenio_rdm_records/details/contributors.html" %}
</p>
{%- endif %}
<div class="ui grid">
<div class="two column row"> <div class="two column row">
<div class="left floated column"> <div class="left floated column">
{%- include "invenio_theme_tugraz/details/doi.html" %} {%- for s in record.metadata.subjects %}
<div class="ui tiny label">{{s.subject}}</div>
{%- endfor %}
<div style="margin-top: 5px;">
<b>Created:</b> {{ record.ui.created_date_l10n_long }} | <b>Modified:</b> {{ record.ui.updated_date_l10n_long }}
</div>
</div> </div>
<div class="right floated column"> <div class="right floated column">
{#
{%- include "invenio_rdm_records/details/contact.html" %}
#}
<span class="access-right"> <span class="access-right">
{{ record | vocabulary_title('access_right') | lower_case }} <i class="icon lock open"></i>
{{ record.access.access_right | make_dict_like('access_right') | vocabulary_title('access_right') }}
{%- for right in record.metadata.rights %}
<a target="_blank" href="{{right.url}}">{{ '(' ~ right.identifier ~ ')' }}</a>
{%- endfor %}
</span> </span>
</div> </div>
</div> </div>
</div> </div>
{%- include "invenio_rdm_records/details/citation.html" %} {%- include "invenio_app_rdm/landing_page/details/description.html" %}
{%- include "invenio_rdm_records/details/keywords.html" %}
{%- include "invenio_rdm_records/details/description.html" %}
{%- include "invenio_rdm_records/details/licenses.html" %}
{# files #} {# files #}
{%- if record.files and record | can_list_files %} {%- if record.files and record | can_list_files %}
{%- set files = record.files %} {%- set files = record.files | make_files_preview_compatible %}
{{ preview_file_box(files | select_preview_file, pid) }} {%- set default_preview_file = files | select_preview_file(default_preview=record.files.default_preview) %}
{{ file_list_box(files.dumps(), pid) }} {{ preview_file_box(default_preview_file, pid) }}
{%- else %} {{ file_list_box(files, pid) }}
<br>
<p style="text-align: center;">
No associated files.
</p>
{% endif %} {% endif %}
{# More details #}
{%- endblock record_body %} {%- endblock record_body %}
</div> </div>
<div class="six wide column"> <div class="six wide column">
{% block sidebar %} <div id="recordManagement"
<div class="ui segment rdm-sidebar"> class="ui container"
{%- include "invenio_rdm_records/details/side_bar.html" %} data-recid='{{ record["id"] | tojson }}'>
</div> </div>
{% block sidebar %}
{%- include "invenio_app_rdm/landing_page/details/side_bar.html" %}
{% endblock sidebar %} {% endblock sidebar %}
</div> </div>
</div> </div>
@@ -106,8 +99,9 @@
{%- block javascript %} {%- block javascript %}
{{ super() }} {{ super() }}
{{ webpack['invenio-rdm-records-js.js'] }} {{ webpack['invenio-app-rdm-records.js'] }}
{# Communities management #} {# Communities management #}
{{ webpack['invenio-communities-records.js'] }} {{ webpack['invenio-communities-records.js'] }}
{{webpack['previewer_theme.js']}} {{ webpack['previewer_theme.js'] }}
{{ webpack['invenio-app-rdm-record-management.js'] }}
{%- endblock javascript %} {%- endblock javascript %}

View File

@@ -0,0 +1,82 @@
{#
Copyright (C) 2020 Graz University of Technology
invenio-theme-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.
#}
{%- extends config.BASE_TEMPLATE %}
{%- block javascript %}
{{ super() }}
{{ webpack['invenio-theme-tugraz-search-app.js'] }}
{%- endblock %}
{%- block page_body %}
<div data-invenio-search-config='{
"aggs": [
{
"aggName": "access_right",
"field": "access_right",
"title": "Access Right"
},
{
"aggName": "resource_type",
"field": "resource_type.type",
"title": "Resource Type",
"childAgg": {
"aggName": "subtype",
"field": "resource_type.subtype",
"title": "Resource Type"
}
}
],
"appId": "rdm-search",
"initialQueryState": {
"hiddenParams": null,
"size": 10
},
"layoutOptions": {
"gridView": false,
"listView": true
},
"paginationOptions": {
"defaultValue": 10,
"resultsPerPage": [
{
"text": "10",
"value": 10
},
{
"text": "20",
"value": 20
},
{
"text": "50",
"value": 50
}
]
},
"searchApi": {
"axios": {
"headers": {
"Accept": "application/vnd.inveniordm.v1+json"
},
"url": "/api/records",
"withCredentials": true
}
},
"sortOrderDisabled": true,
"sortOptions": [
{
"sortBy": "bestmatch",
"text": "Best match"
},
{
"sortBy": "newest",
"text": "Newest"
}
]
}'></div>
{%- endblock page_body %}

View File

@@ -6,192 +6,370 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.3\n" "Project-Id-Version: invenio-theme-tugraz 1.0.4\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2020-09-17 11:15+0200\n" "POT-Creation-Date: 2021-01-04 14:18+0100\n"
"PO-Revision-Date: 2020-09-17 11:15+0200\n" "PO-Revision-Date: 2020-10-06 10:27+0200\n"
"Last-Translator: Mojib Wali <mojib.wali@tugraz.at>, 2020\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n" "Language: de\n"
"Language-Team: de <LL@li.org>\n" "Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50
msgid "TU Graz Repository"
msgstr "TU Graz Repository"
#: invenio_theme_tugraz/config.py:53 #: invenio_theme_tugraz/config.py:53
msgid "TU Graz Repository" #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31
msgstr ""
#: invenio_theme_tugraz/config.py:56
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
msgid "Repository" msgid "Repository"
msgstr "" msgstr "Repository"
#: invenio_theme_tugraz/config.py:81 #: invenio_theme_tugraz/config.py:76
msgid "German" msgid "German"
msgstr "" msgstr "Deutsche"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/accounts_base.html:27
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:27 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/base.html:27
msgid "Invenio" msgid "Invenio"
msgstr "" msgstr "Invenio"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3
msgid "Safe" msgid "Safe"
msgstr "" msgstr "Sicher"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3
msgid "" msgid ""
"your research is stored safely for the future in CERNs Data Centre for " "your research is stored safely for the future in TU Graz library for as "
"as long as CERN exists." "long as TU Graz library exists."
msgstr "" msgstr ""
"Ihre Forschung wird für die Zukunft sicher in der Bibliothek der TU Graz "
"gespeichert als solange die Bibliothek TU Graz existiert."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "Trusted" msgid "Trusted"
msgstr "" msgstr "Vertrauenswürdig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
msgid "" msgid ""
"built and operated by CERN and OpenAIRE to ensure that everyone can join " "built and operated by CERN and OpenAIRE to ensure that everyone can join "
"in Open Science." "in Open Science."
msgstr "" msgstr ""
"Gebaut und betrieben von CERN und OpenAIRE; um sicherzugehen, dass jedeR "
"Zugang zu Open Science hat"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid "Citeable" msgid "Citeable"
msgstr "" msgstr "Zitierfähig "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:5
msgid "" msgid ""
"every upload is assigned a Digital Object Identifier (DOI), to make them " "every upload is assigned a Digital Object Identifier (DOI), to make them "
"citable and trackable." "citable and trackable."
msgstr "" msgstr ""
"Jeder Upload erhält eine DOI um sicherzustellen,dass er zitierbar und "
"auffindbar ist"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid "No waiting time" msgid "No waiting time"
msgstr "" msgstr "Keine Wartezeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:6
msgid "" msgid ""
"Uploads are made available online as soon as you hit publish, and your " "Uploads are made available online as soon as you hit publish, and your "
"DOI is registered within seconds." "DOI is registered within seconds."
msgstr "" msgstr ""
"Uploads stehen sofort nach drücken auf “Veröffentlichen” zur Verfügung. "
"Ihre DOI wird innerhalb von Sekunden registriert."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
msgid "Open or closed" msgid "Open or closed"
msgstr "" msgstr "Offen oder geschlossen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:7
msgid "" msgid ""
"Share e.g. anonymized clinical trial data with only medical professionals" "Share e.g. anonymized clinical trial data with only medical professionals"
" via our restricted access mode." " via our restricted access mode."
msgstr "" msgstr ""
"Teilen Sie z.B. anonymisierte klinische Studiendaten nur mit "
"medizinischem Fachpersonalüber unseren eingeschränkten Zugriffsmodus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Versioning" msgid "Versioning"
msgstr "" msgstr "Versionierung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:8
msgid "Easily update your dataset with our versioning feature." msgid "Easily update your dataset with our versioning feature."
msgstr "" msgstr "Einfaches Updaten ihrer Datensätze mit unserere Versionierung."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "Usage statisics" msgid "Usage statisics"
msgstr "" msgstr "Nutzungsstatistiken"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:9
msgid "All uploads display standards compliant usage statistics" msgid "All uploads display standards compliant usage statistics"
msgstr "Alle Uploads entsprechen den Standards der Nutzungsstatistiken."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34
msgid "Impressum"
msgstr "Imprint"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38
msgid "Data protection"
msgstr "Datenschutzerklärung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42
msgid "Feedback"
msgstr "Feedback"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51
msgid "Features"
msgstr "Features"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53
msgid "Scalability"
msgstr "Skalierbarkeit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55
msgid "Institutional integration"
msgstr "Institutionelle Einbindung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57
msgid "Next Generation Repository"
msgstr "Repositorium der nächsten Generation"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:60
msgid "Repository Profiles"
msgstr "Repositorienprofile"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62
msgid "Resilient"
msgstr "Resilient, widerstandsfähig"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69
msgid "Connected Services"
msgstr "Verbundene Services "
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73
msgid "PURE"
msgstr "PURE"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76
msgid "CampusOnline"
msgstr "CampusOnline"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79
msgid "Research Data Management"
msgstr "Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Accessibility"
msgstr "Barrierefreiheit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "Tipp:"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:26 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "Use Ctrl + and Crtl -"
msgstr "Verwenden Sie Strg+ und Strg-"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "to change the font size."
msgstr "Um die Schriftgröße zu ändern."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35
msgid "Home"
msgstr "Startseite"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48
msgid "Uploads"
msgstr "Hochladen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24
msgid "Type and press enter to search" msgid "Type and press enter to search"
msgstr "" msgstr "Suchbegriff eingeben und “Enter” drücken (?)"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:40 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:40
msgid "Recent uploads" msgid "Recent uploads"
msgstr "" msgstr "Kürzlich hochgeladene Dateien"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:47 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52
msgid "View"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:54
msgid "Publication date" msgid "Publication date"
msgstr "" msgstr "Datum der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:58 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57
msgid "Version" msgid "Version"
msgstr "" msgstr "Version"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:62
msgid "Resource type" msgid "Resource type"
msgstr "" msgstr "Art der Veröffentlichung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:67 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91
msgid "Open Access"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:77
#, python-format #, python-format
msgid "" msgid ""
"Uploaded on\n" "\n"
" %(date)s" " Uploaded on %(date)s\n"
msgstr "" " "
msgstr "Hochgeladen am %(date)s\n"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:88 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:110
msgid "More" msgid "More"
msgstr "" msgstr "Mehr"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:77 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119
msgid "Need help?"
msgstr "Brauchen Sie Hilfe?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123
msgid "Contact us"
msgstr "Kontaktiere uns"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127
msgid "prioritizes all Recent uploads."
msgstr "Reiht die neuesten Uploads vor."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:130
msgid "We can help with:"
msgstr "Wir können helfen bei:"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135
msgid "Uploading your research data, software, preprints, etc."
msgstr "Hochladen Ihrer Forschungsdaten, Software, Preprints usw."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "One-on-one with"
msgstr "Eins-zu-eins mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "supporters."
msgstr "Unterstützern"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137
msgid "Quota increases beyond our default policy."
msgstr "Erhöhung Ihres Kontingents über das vertraglich Zugesicherte hinaus."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138
msgid "Scripts for automated uploading of larger datasets."
msgstr "Skripte zum automatisierten Hochladen größerer Datensätze."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:143
msgid "Why use"
msgstr "Warum"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
#, fuzzy
msgid "REPOSITORY"
msgstr "Repository"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69
msgid "LIBRARY & ARCHIVES"
msgstr "Bibliothek und Archiv"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "SCIENCE" msgid "SCIENCE"
msgstr "Wissenschaft" msgstr "Wissenschaft"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "PASSION" msgid "PASSION"
msgstr "Leidenschaft" msgstr "Leidenschaft"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
msgid "TECHNOLOGY" msgid "TECHNOLOGY"
msgstr "Technik" msgstr "Technik"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up"
msgstr "Registrierung"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
msgid "Log in"
msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
msgid "Logout" msgid "Sign out"
msgstr "" msgstr "Ausloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:22 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24
msgid "Log in to account" msgid "Log in to Repository"
msgstr "" msgstr "Anmelden"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:28 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32
#, python-format #, python-format
msgid " Login with %(type)s" msgid " Log in with %(type)s"
msgstr "" msgstr "Einloggen mit"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:43 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:54 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or"
msgstr "Oder"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
msgid "Log In" msgid "Log In"
msgstr "" msgstr "Einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59
#, python-format #, python-format
msgid "New to %(sitename)s?" msgid "New to %(sitename)s?"
msgstr "" msgstr "Neu im %(sitename)s?"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:56 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:45
msgid "Sign Up"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:65
msgid "Forgot password?" msgid "Forgot password?"
msgstr "" msgstr "Passwort vergessen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:23 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:22
#, python-format msgid "Create an Account"
msgid "Sign up for an %(sitename)s account!" msgstr "Einen Account erstellen"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:53 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:27
msgid "Already have an account?" msgid "Citeable. Discoverable."
msgstr "" msgstr "Zitierfähig. Auffindbar."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:29
msgid ""
"Uploads get a Digital Object Identifier (DOI) to make them easily and "
"uniquely citeable."
msgstr ""
"Uploads erhalten eine DOI und werden damit leichtauffindbar und "
"zitierfähig."
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:30
msgid "Communities."
msgstr "Communities"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:32
msgid ""
"Accept or reject uploads to your own community (e.g workshops, EU "
"projects, institutions or entire disciplines)."
msgstr ""
"Annehmen oder Ablehnen von Uploads in Ihrer eigenen Community (z.B. "
"workshop, EU-Projekt, Forschungseinrichtung, Disziplin)"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:34
msgid "Trusted Research Data Management"
msgstr "Vertrauenswürdiges Forschungsdatenmanagement"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:36
msgid ""
"Built on top of TU Graz expertise in managing of the research data from "
"the Graz University of Technology."
msgstr "Gebaut basierend auf Expertise derTU Graz im Bereich Data Management"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
msgid "Sign up with TUGRAZ "
msgstr "Mit Ihrem TUGonline-Account einloggen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:28
msgid "RDM DOI Badge"
msgstr "RDM DOI Abzeichen"
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:32
msgid "DOI"
msgstr "DOI"

View File

@@ -1,33 +1,33 @@
# Translations template for invenio-theme-tugraz. # Translations template for invenio-theme-tugraz.
# Copyright (C) 2020 mojib wali # Copyright (C) 2021 mojib wali
# This file is distributed under the same license as the # This file is distributed under the same license as the
# invenio-theme-tugraz project. # invenio-theme-tugraz project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020. # FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: invenio-theme-tugraz 1.0.3\n" "Project-Id-Version: invenio-theme-tugraz 1.3.1\n"
"Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n" "Report-Msgid-Bugs-To: mojib.wali@tugraz.at\n"
"POT-Creation-Date: 2020-09-17 11:16+0200\n" "POT-Creation-Date: 2021-01-04 14:18+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Mojib Wali <mojib.wali@tugraz.at>, 2020\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n" "Generated-By: Babel 2.9.0\n"
#: invenio_theme_tugraz/config.py:53 #: invenio_theme_tugraz/config.py:13 invenio_theme_tugraz/config.py:50
msgid "TU Graz Repository" msgid "TU Graz Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:56 #: invenio_theme_tugraz/config.py:53
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:31
msgid "Repository" msgid "Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/config.py:81 #: invenio_theme_tugraz/config.py:76
msgid "German" msgid "German"
msgstr "" msgstr ""
@@ -42,8 +42,8 @@ msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:3
msgid "" msgid ""
"your research is stored safely for the future in CERNs Data Centre for " "your research is stored safely for the future in TU Graz library for as "
"as long as CERN exists." "long as TU Graz library exists."
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/benefits.html:4
@@ -102,7 +102,83 @@ msgstr ""
msgid "All uploads display standards compliant usage statistics" msgid "All uploads display standards compliant usage statistics"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:26 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:34
msgid "Impressum"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:38
msgid "Data protection"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:42
msgid "Feedback"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:51
msgid "Features"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:53
msgid "Scalability"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:55
msgid "Institutional integration"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:57
msgid "Next Generation Repository"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:60
msgid "Repository Profiles"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:62
msgid "Resilient"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:69
msgid "Connected Services"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:73
msgid "PURE"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:76
msgid "CampusOnline"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:79
msgid "Research Data Management"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:86
msgid "Accessibility"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "Tipp:"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "Use Ctrl + and Crtl -"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/footer.html:87
msgid "to change the font size."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:35
msgid "Home"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/header.html:48
msgid "Uploads"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:24
msgid "Type and press enter to search" msgid "Type and press enter to search"
msgstr "" msgstr ""
@@ -110,15 +186,11 @@ msgstr ""
msgid "Recent uploads" msgid "Recent uploads"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:47 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:52
msgid "View"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:54
msgid "Publication date" msgid "Publication date"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:58 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:57
msgid "Version" msgid "Version"
msgstr "" msgstr ""
@@ -126,71 +198,162 @@ msgstr ""
msgid "Resource type" msgid "Resource type"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:67 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:91
msgid "Open Access"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:77
#, python-format #, python-format
msgid "" msgid ""
"Uploaded on\n" "\n"
" %(date)s" " Uploaded on %(date)s\n"
" "
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:88 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:110
msgid "More" msgid "More"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:77 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:119
msgid "SCIENCE" msgid "Need help?"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:78 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:123
msgid "PASSION" msgid "Contact us"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:127
msgid "prioritizes all Recent uploads."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:130
msgid "We can help with:"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:135
msgid "Uploading your research data, software, preprints, etc."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "One-on-one with"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:136
msgid "supporters."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:137
msgid "Quota increases beyond our default policy."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:138
msgid "Scripts for automated uploading of larger datasets."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/index.html:143
msgid "Why use"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:67
msgid "REPOSITORY"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:69
msgid "LIBRARY & ARCHIVES"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:79
msgid "SCIENCE"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:80
msgid "PASSION"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/navbar.html:81
msgid "TECHNOLOGY" msgid "TECHNOLOGY"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:8
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:60
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:81
msgid "Sign up"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:15
msgid "Log in"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/header_login.html:30
msgid "Logout" msgid "Sign out"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:22 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:24
msgid "Log in to account" msgid "Log in to Repository"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:28 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:32
#, python-format #, python-format
msgid " Login with %(type)s" msgid " Log in with %(type)s"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:43 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:36
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:54 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:55
msgid "Or"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:47
msgid "Log In" msgid "Log In"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:55 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:59
#, python-format #, python-format
msgid "New to %(sitename)s?" msgid "New to %(sitename)s?"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:56 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:69
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:45
msgid "Sign Up"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/login_user.html:65
msgid "Forgot password?" msgid "Forgot password?"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:23 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:22
#, python-format msgid "Create an Account"
msgid "Sign up for an %(sitename)s account!"
msgstr "" msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:53 #: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:27
msgid "Already have an account?" msgid "Citeable. Discoverable."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:29
msgid ""
"Uploads get a Digital Object Identifier (DOI) to make them easily and "
"uniquely citeable."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:30
msgid "Communities."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:32
msgid ""
"Accept or reject uploads to your own community (e.g workshops, EU "
"projects, institutions or entire disciplines)."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:34
msgid "Trusted Research Data Management"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:36
msgid ""
"Built on top of TU Graz expertise in managing of the research data from "
"the Graz University of Technology."
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/accounts/register_user.html:51
msgid "Sign up with TUGRAZ "
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:28
msgid "RDM DOI Badge"
msgstr ""
#: invenio_theme_tugraz/templates/invenio_theme_tugraz/details/doi.html:32
msgid "DOI"
msgstr "" msgstr ""

View File

@@ -12,4 +12,4 @@ This file is imported by ``invenio_theme_tugraz.__init__``,
and parsed by ``setup.py``. and parsed by ``setup.py``.
""" """
__version__ = '1.0.3d' __version__ = "1.3.1"

View File

@@ -28,8 +28,8 @@ def index():
"""Render frontpage view.""" """Render frontpage view."""
return render_template( return render_template(
"invenio_theme_tugraz/index.html", "invenio_theme_tugraz/index.html",
records=FrontpageRecordsSearch()[:5].sort("-_created").execute(), records=FrontpageRecordsSearch()[:5].sort("-created").execute(),
) # pragma: no cover )
@blueprint.app_template_filter("make_dict_like") @blueprint.app_template_filter("make_dict_like")
@@ -38,10 +38,10 @@ def make_dict_like(value: str, key: str) -> Dict[str, str]:
in the form of a key -> value pair. in the form of a key -> value pair.
""" """
return {key: value} # pragma: no cover return {key: value}
@blueprint.app_template_filter("cast_to_dict") @blueprint.app_template_filter("cast_to_dict")
def cast_to_dict(attr_dict): def cast_to_dict(attr_dict):
"""Return the dict structure of AttrDict variable.""" """Return the dict structure of AttrDict variable."""
return AttrDict.to_dict(attr_dict) # pragma: no cover return AttrDict.to_dict(attr_dict)

View File

@@ -10,17 +10,16 @@ from invenio_assets.webpack import WebpackThemeBundle
theme = WebpackThemeBundle( theme = WebpackThemeBundle(
__name__, __name__,
'assets', "assets",
default='semantic-ui', default="semantic-ui",
themes={ themes={
'semantic-ui': dict( "semantic-ui": dict(
entry={ entry={
'invenio-theme-tugraz-theme': "invenio-theme-tugraz-theme": "./less/invenio_theme_tugraz/theme.less",
'./less/invenio_theme_tugraz/theme.less', "invenio-theme-tugraz-js": "./js/invenio_theme_tugraz/theme.js",
'invenio-theme-tugraz-js': "invenio-theme-tugraz-search-app": "./js/invenio_theme_tugraz/search/index.js",
'./js/invenio_theme_tugraz/theme.js'
}, },
dependencies={} dependencies={},
) )
} },
) )

View File

@@ -7,6 +7,6 @@
# details. # details.
[pytest] [pytest]
addopts = --isort --pydocstyle --pycodestyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_theme_tugraz --cov-report=term-missing addopts = --isort --pydocstyle --pycodestyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_theme_tugraz --cov-report=term-missing tests invenio_theme_tugraz
testpaths = tests invenio_theme_tugraz testpaths = tests invenio_theme_tugraz
live_server_scope = module live_server_scope = module

View File

@@ -1,17 +1,33 @@
#!/usr/bin/env sh #!/usr/bin/env bash
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Copyright (C) 2020 mojib wali. # Copyright (C) 2019-2020 CERN.
# Copyright (C) 2019-2020 Northwestern University.
# Copyright (C) 2020 Graz University of Technology.
# #
# invenio-theme-tugraz is free software; you can redistribute it and/or # invenio-theme-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.
docker-services-cli up postgresql es redis
python -m check_manifest --ignore ".travis-*" && \ # Quit on errors
python -m sphinx.cmd.build -qnNW docs docs/_build/html && \ set -o errexit
docker-services-cli up es postgresql redis
# Quit on unbound symbols
set -o nounset
# Always bring down docker services
function cleanup() {
eval "$(docker-services-cli down --env)"
}
trap cleanup EXIT
python -m check_manifest --ignore ".*-requirements.txt"
python -m sphinx.cmd.build -qnNW docs docs/_build/html
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=$?
docker-services-cli down python -m sphinx.cmd.build -qnNW -b doctest docs docs/_build/doctest
exit "$tests_exit_code" exit "$tests_exit_code"

View File

@@ -37,3 +37,20 @@ output-dir = invenio_theme_tugraz/translations/
[update_catalog] [update_catalog]
input-file = invenio_theme_tugraz/translations/messages.pot input-file = invenio_theme_tugraz/translations/messages.pot
output-dir = invenio_theme_tugraz/translations/ output-dir = invenio_theme_tugraz/translations/
[flake8]
max-line-length = 88
extend-ignore = E203
select = C,E,F,W,B,B950
ignore = E501
[isort]
multi_line_output = 3
include_trailing_comma = True
force_grid_wrap = 0
use_parentheses = True
ensure_newline_before_comments = True
line_length = 88
[pycodestyle]
ignore = E203,E501

113
setup.py
View File

@@ -12,46 +12,49 @@ import os
from setuptools import find_packages, setup from setuptools import find_packages, setup
readme = open('README.rst').read() 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.0",
"invenio-app>=1.3.0,<2.0.0",
"psycopg2-binary>=2.8.6",
] ]
extras_require = { extras_require = {
'docs': [ "docs": [
'Sphinx>=1.5.1', "Sphinx>=3",
], ],
'mysql': [ "mysql": [
'invenio-db[mysql]>=1.0.0', "invenio-db[mysql]>=1.0.0",
], ],
'postgresql': [ "postgresql": [
'invenio-db[postgresql]>=1.0.0', "invenio-db[postgresql]>=1.0.0",
], ],
'sqlite': [ "sqlite": [
'invenio-db>=1.0.0', "invenio-db>=1.0.0",
], ],
'tests': tests_require, "tests": tests_require,
} }
extras_require['all'] = [] extras_require["all"] = []
for reqs in extras_require.values(): for reqs in extras_require.values():
extras_require['all'].extend(reqs) extras_require["all"].extend(reqs)
setup_requires = [ setup_requires = [
'Babel>=1.3', "Babel>=1.3",
'pytest-runner>=3.0.0,<5', "pytest-runner>=3.0.0,<5",
] ]
install_requires = [ install_requires = [
'Flask-BabelEx>=0.9.4', "Flask-BabelEx>=0.9.4",
'Flask-WebpackExt>=1.0.0', "Flask-WebpackExt>=1.0.0",
'invenio-assets>=1.2.0', "invenio-assets>=1.2.0",
'invenio-i18n>=1.2.0', "invenio-i18n>=1.2.0",
'elasticsearch_dsl>=7.2.1', "elasticsearch_dsl>=7.2.1",
'invenio_search>=1.3.1', "invenio_search>=1.3.1",
"invenio_app_rdm>=0.18.8",
"sqlalchemy-continuum>=1.3.11",
] ]
packages = find_packages() packages = find_packages()
@@ -59,39 +62,39 @@ packages = find_packages()
# Get the version string. Cannot be done with import! # Get the version string. Cannot be done with import!
g = {} g = {}
with open(os.path.join('invenio_theme_tugraz', 'version.py'), 'rt') as fp: with open(os.path.join("invenio_theme_tugraz", "version.py"), "rt") as fp:
exec(fp.read(), g) exec(fp.read(), g)
version = g['__version__'] version = g["__version__"]
setup( setup(
name='invenio-theme-tugraz', name="invenio-theme-tugraz",
version=version, version=version,
description=__doc__, description=__doc__,
long_description=readme + '\n\n' + history, long_description=readme + "\n\n" + history,
keywords='invenio, theme, invenioRDM, TU-Graz, Graz University of Technology, statistics', keywords="invenio, theme, invenioRDM, TU-Graz, Graz University of Technology, statistics",
license='MIT', license="MIT",
author='mojib wali', author="mojib wali",
author_email='mojib.wali@tugraz.at', author_email="mojib.wali@tugraz.at",
url='https://github.com/mb-wali/invenio-theme-tugraz', url="https://github.com/tu-graz-library/invenio-theme-tugraz",
packages=packages, packages=packages,
zip_safe=False, zip_safe=False,
include_package_data=True, include_package_data=True,
platforms='any', platforms="any",
entry_points={ entry_points={
'invenio_base.apps': [ "invenio_base.apps": [
'invenio_theme_tugraz = invenio_theme_tugraz:inveniothemetugraz', "invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz",
], ],
'invenio_base.blueprints': [ "invenio_base.blueprints": [
'invenio_theme_tugraz = invenio_theme_tugraz.views:blueprint', "invenio_theme_tugraz = invenio_theme_tugraz.views:blueprint",
], ],
'invenio_i18n.translations': [ "invenio_i18n.translations": [
'messages = invenio_theme_tugraz', "messages = invenio_theme_tugraz",
], ],
'invenio_assets.webpack': [ "invenio_assets.webpack": [
'invenio_theme_tugraz_theme = invenio_theme_tugraz.webpack:theme', "invenio_theme_tugraz_theme = invenio_theme_tugraz.webpack:theme",
], ],
'invenio_config.module': [ "invenio_config.module": [
'invenio_theme_tugraz = invenio_theme_tugraz.config', "invenio_theme_tugraz = invenio_theme_tugraz.config",
], ],
}, },
extras_require=extras_require, extras_require=extras_require,
@@ -99,17 +102,17 @@ setup(
setup_requires=setup_requires, setup_requires=setup_requires,
tests_require=tests_require, tests_require=tests_require,
classifiers=[ classifiers=[
'Environment :: Web Environment', "Environment :: Web Environment",
'Intended Audience :: Developers', "Intended Audience :: Developers",
'License :: OSI Approved :: MIT License', "License :: OSI Approved :: MIT License",
'Operating System :: OS Independent', "Operating System :: OS Independent",
'Programming Language :: Python', "Programming Language :: Python",
'Topic :: Internet :: WWW/HTTP :: Dynamic Content', "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
'Topic :: Software Development :: Libraries :: Python Modules', "Topic :: Software Development :: Libraries :: Python Modules",
'Programming Language :: Python :: 3', "Programming Language :: Python :: 3",
'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', "Development Status :: 3 - Alpha",
], ],
) )

View File

@@ -12,32 +12,22 @@ See https://pytest-invenio.readthedocs.io/ for documentation on which test
fixtures are available. fixtures are available.
""" """
import os
import shutil import shutil
import tempfile import tempfile
import pytest import pytest
from flask import Flask from flask import Flask
from flask_babelex import Babel from flask_babelex import Babel
from invenio_db import InvenioDB, db
from invenio_i18n import InvenioI18N from invenio_i18n import InvenioI18N
from invenio_search import InvenioSearch
from sqlalchemy_utils.functions import create_database, database_exists, drop_database
from invenio_theme_tugraz import inveniothemetugraz from invenio_theme_tugraz import InvenioThemeTugraz
from invenio_theme_tugraz.views import blueprint
@pytest.fixture() @pytest.fixture(scope="module")
def app():
"""Flask app fixture."""
app = Flask('myapp')
app.config.update(
I18N_LANGUAGES=[('en', 'English'), ('de', 'German')],
)
Babel(app)
InvenioI18N(app)
app.register_blueprint(create_blueprint_from_app(app))
return app
@pytest.fixture(scope='module')
def celery_config(): def celery_config():
"""Override pytest-invenio fixture. """Override pytest-invenio fixture.
@@ -46,14 +36,38 @@ def celery_config():
return {} return {}
@pytest.fixture(scope='module') @pytest.fixture()
def create_app(instance_path): def app(request):
"""Application factory fixture.""" """Basic Flask application."""
def factory(**config): instance_path = tempfile.mkdtemp()
app = Flask('testapp', instance_path=instance_path) app = Flask("testapp")
app.config.update(**config) DB = os.getenv("SQLALCHEMY_DATABASE_URI", "sqlite://")
Babel(app) app.config.update(
inveniothemetugraz(app) I18N_LANGUAGES=[("en", "English"), ("de", "German")],
app.register_blueprint(blueprint) SQLALCHEMY_DATABASE_URI=DB,
return app SQLALCHEMY_TRACK_MODIFICATIONS=False,
return factory )
Babel(app)
InvenioDB(app)
InvenioSearch(app)
InvenioThemeTugraz(app)
InvenioI18N(app)
with app.app_context():
db_url = str(db.engine.url)
if db_url != "sqlite://" and not database_exists(db_url):
create_database(db_url)
db.create_all()
def teardown():
with app.app_context():
db_url = str(db.engine.url)
db.session.close()
if db_url != "sqlite://":
drop_database(db_url)
shutil.rmtree(instance_path)
request.addfinalizer(teardown)
app.test_request_context().push()
return app

View File

@@ -10,23 +10,29 @@
from flask import Flask from flask import Flask
from invenio_theme_tugraz import inveniothemetugraz from invenio_theme_tugraz import InvenioThemeTugraz
def test_version(): def test_version():
"""Test version import.""" """Test version import."""
from invenio_theme_tugraz import __version__ from invenio_theme_tugraz import __version__
assert __version__ assert __version__
def test_init(): def test_init():
"""Test extension initialization.""" """Test extension initialization."""
app = Flask('testapp') app = Flask("testapp")
ext = inveniothemetugraz(app) ext = InvenioThemeTugraz(app)
assert 'invenio-theme-tugraz' in app.extensions assert "invenio-theme-tugraz" in app.extensions
app = Flask('testapp') app = Flask("testapp")
ext = inveniothemetugraz() ext = InvenioThemeTugraz()
assert 'invenio-theme-tugraz' not in app.extensions assert "invenio-theme-tugraz" not in app.extensions
ext.init_app(app) ext.init_app(app)
assert 'invenio-theme-tugraz' in app.extensions assert "invenio-theme-tugraz" in app.extensions
def test_app(app):
"""Test extension initialization."""
theme = InvenioThemeTugraz(app)

22
tests/ui/conftest.py Normal file
View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 mojib wali.
#
# invenio-theme-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 configuration.
See https://pytest-invenio.readthedocs.io/ for documentation on which test
fixtures are available.
"""
import pytest
from invenio_app.factory import create_ui
@pytest.fixture(scope='module')
def create_app(instance_path):
"""Application factory fixture."""
return create_ui

33
tests/ui/test_views.py Normal file
View File

@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2020 mojib wali.
#
# invenio-theme-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.
"""Test views."""
from elasticsearch_dsl.utils import AttrDict
from invenio_theme_tugraz.views import cast_to_dict, make_dict_like
def test_make_dict_like():
"""Test make_dict_like."""
access = {
"access_right" : "open"
}
dicts = make_dict_like("open", "access_right")
assert access == dicts
def test_cast_to_dict():
"""Test cast_to_dict."""
resource_type = {
"subtype" : "publication-datamanagementplan",
"type" : "publication"
}
expected = {'subtype': 'publication-datamanagementplan', 'type': 'publication'}
attr = cast_to_dict(AttrDict(resource_type))
assert expected == attr