records: display tabs

* Creates a new `record.tabs` menu using Flask-Menu.

* Adds the `visible_when` attribute and the `count` keyword argument.

* Amends the main `record` template.

* Uses Flask-Cache to memoize the function for finding
  the `visible tabs`.

* Upgrades Flask-Breadcrumbs and Flask-Menu to 0.2 version.
  (closes #1646)

Signed-off-by: Eirini Psallida <eirini.psallida@cern.ch>
sqlalchemy: default mysql parameters for db.Table

* Adds default parameters to `db.Table` constructor to force MyISAM
  engine for MySQL backend. db.Table is InnoDB by default on modern
  versions of MySQL. Hence, foreign keys can now be set on
  `db.Model` fields because both are using MyISAM as an engine.
  (closes #2491)

Signed-off-by: Artem Tsikiridis <artem.tsikiridis@cern.ch>
Reviewed-by: Gilles Louppe <gilles.louppe@cern.ch>
access: infinite recursion hotfix

* Temporary fix for the occasional issue causing infinite recursion
  error upon loading the session. (addresses #2509)

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
jasmine: adaptation to requirejs

* Utilises boot.js from jasmine.

* Ensures that there is no jQuery conflict when a js file loads
  jQuery with requirejs with jasmine configuration test.

Signed-off-by: Kamil Neczaj <kamil.neczaj@cern.ch>
installation: disable SSLv3 in Apache config

* Disables SSLv3.0 due to known vulnerability.  (closes #2515)

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
oauth2server: access and refresh tokens encrytion

* Uses encryption field for seamless encryption/decryption of the access
  and refresh tokens. (addresses #2127)

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
oauthclient: access token encryption

* Uses encryption field for seamless encryption/decryption of the access
  tokens. (closes #2127)

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
workflows: actions JS loading

* Makes the JavaScript assets loading for actions separated from
  the general assets loading to allow for easier additions of
  actions on overlays.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: documentation enrichment

* Enriches the documentation of the Workflows module by adding
  more information on actions and the Holding Pen.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: task_counter value check

* Checks if the task_counter parameter is a list when saving
  an BibWorkflowObject. It is required to avoid a problem with the
  underlying workflow engine.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: Holding Pen details fix

* Fixes a problem where the detailed page for Holding Pen
  object caused an exception when information on next/previous
  objects from the table were missing.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
setup: WTForms pin version 1.0.5

* NOTE Invenio installation is currently broken. Flask-Admin does
  not support WTForms>2.0.0. This is a temporary commit until it is
  fixed.

Signed-off-by: Javier Martin Montull <javier.martin.montull@cern.ch>
knowledge: API migration to SQLAlchemy

* Replaces run_sql queries with SQLAchemy query.

* Refactors module in order to move logic from api to model.

* Fixes bibknowledge webinterface kb mapping update.

Signed-off-by: Leonardo Rossi <leonardo.r@cern.ch>
BibSched: post-process data exchange

* Adds the ability for tasks to transfer arbitrary data to BibTasklets
  specified via the `--post-process=` argument via a new task parameter
  `post_process_params`.

Co-authored-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
WebSearch: webcoll post-process data

* Adds sending of added/modified record IDs during webcoll run to
  `post-process` tasklet via a new task parameter `post-process_params`.

Co-authored-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
oaiharvester: authorlist extraction task

* Updates post-process task for authorlist extraction to
  properly fall back to the default XSLT stylesheet.

* Adds a check that the script file is found for the filtering
  script task.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
oaiharvester: updates OAI record filtering

* Improves the logic and documentation of the task to filter
  out already harvested records from the same run.

* Also adds the OAI identifier to the record extra_data.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
deposit: checkbox support addition

* Saves the checkbox values on changed.

* Corrects FileUploadField RequiredIf validation.

Signed-off-by: Pedro Gaudêncio <pedro.gaudencio@cern.ch>
Co-authored-by: Javier Martin Montull <javier.martin.montull@cern.ch>
Reviewed-by: Javier Martin Montull <javier.martin.montull@cern.ch>
deposit: separation of typeahead initialization

* Separates connecting events and initializing typeahead so that
  one can set up a custom typeahead with all the events connected
  with the form.

Co-authored-by: Kamil Neczaj <kamil.neczaj@cern.ch>
Signed-off-by: Javier Martin Montull <javier.martin.montull@cern.ch>
oaiharvester: updates OAI post process

* Improves the logic and documentation of the tasks to
  post-process harvested records to be less error prone.

* Updates some tests with comments and missing logic.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>