legacy: fix for static file handler

* Addresses issue with empty filename in legacy static file handler.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
docs: jsonalchemy field definition documentation
fixtures: hotfix dataset loading

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
Reviewed-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
legacy: fix missing imports

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
base: better signaling support for cli

* NOTE CFG_FLASK_SERVE_STATIC_FILES is set only for `runserver` command.
  Please add it to your local config if you want to enable it for your
  server.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
legacy: webinterface_handler_local removal

* NOTE removes following warning about direct usage of
  `invenio.webinterface_handler_local:customize_app'. Please, adapt your
  function into package and use configuration option
  EXTENSIONS = ['mypackage.customize_app'] instead.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
jsonalchemy: support for storage create/drop

* Adds registry for storage engines.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
base: database create/drop for storage engines

* Adds option for less verbose output for database commands.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibClassify: processing and output decoupling

* Decouples the output rendering from processing so that
  processing is re-done a second time when asking for a specific output
  format.

Tested-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Guillaume Lastecoueres <PX9e@gmx.fr>
BibClassify: dict output fix

* Improves wrong handling function of dict output.

* Adds better handling of corrupt caches.

Reviewed-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
tags: restful test fix

* Fixes tests where records were created by using dates as strings. Now
  date column values are set with  datetime objects (fix for MySQL 5.6).

* Tests for tags REST API passed.

Signed-off-by: Konstantinos Kostis <konstantinos.kostis@cern.ch>
Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
oauth2server: resource authorization tests

* Adds tests for the different resource authentication methods
  which are possible with Flask-OAuthlib.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
workflows: Holding Pen change

* Adds new BibClassify workflow task for faster execution, taking
  only title and abstract from the document instead the full document.

* Now saves the BibWorkflowObject after removing the action.

Tested-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Guillaume Lastecoueres <PX9e@gmx.fr>
workflows: detailed display update

* Properly sets error messages upon unexpected errors during
  workflow execution.

* Integrates the error messages into the Holding Pen detailed
  view of an object as a panel.

* Changes wells to panels in the record detailed display.

* Adds integration of tasks results into the object model and
  detailed display.

* Tags filtering now keeps the tags when user updates the page by
  using session.

* Updates tags placeholder text.

* Refactors the quick_match_record() function with focus on
  clean code.

* Fixes the bundles to properly import DataTables static files.

* Changes from sqlalchemy._or to db._or.

* PEP8/257 updates.

Reported-by: Jiri Kuncar <jiri.kuncar@cern.ch>
Co-authored-by: Guillaume Lastecoueres <PX9e@gmx.fr>
Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: Holding Pen table speed upgrade

* Reduces the number of ajax requests triggered in Holding Pen
  interface.

* Adds WorkflowBase class that define the basic function
  a workflow needs to render correctly its processed
  objects.

* Upgrades Holding Pen to print correctly the changes.

* Adds the functions needed to the basic workflows.

* Adds task results to workflows management functions
  for updating progress bar in Holding Pen.

* Moves brief formatting to the workflow instead of
  the BibWorkflowObjects to allow everybody to choose
  their way to format them.

* Various fixes to Holding Pen JavaScript.

Tested-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Guillaume Lastecoueres <guillaume.lastecoueres@cern.ch>
workflows: Holding Pen tags and pagination

* Also adds Holding Pen main table pagination on top of the
  table in addition to the bottom one.

* Amends Holding Pen main table to properly show all
  records when all tags are removed.

* Fixes a problem with Holding Pen main table display when
  sessions are cleared.

* Changes the methods get_description, get_title and formatter
  to static and BibWorkflowObject argument names.

* Adds WorkflowBase inheritance in marcxml_workflow
  and sample_workflow.

* PEP8 fixes.

Co-authored-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Georgios Papoutsakis <georgios.papoutsakis@cern.ch>
workflows: actions as templates

* Removes the tight coupling to WTForms when designing UI widgets
  for actions in the Holding Pen. Now jinja2 templating can be
  used to render the action instead.

* Removes the need to dynamically load the actions js files.

* Updates the sample "approval" action to use jinja2 templating
  and simplifies the accompanying js file.

* Removes much unused or unnecessary code including unfinished
  actions and the few defined WTForms fields that are no longer
  in use.

* Updates the Holding Pen page structure to be simpler as a result
  of merging the /actions and /details pages into one page (details).

* Updates bundles and templates to work properly with DataTables
  and actions.

* Adds a delayed option to BibWorkflowObject functions to
  start and continue workflows asynchronously.

Co-authored-by: Guillaume Lastecoueres <PX9e@gmx.fr>
Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: record loading optimization

* Reduces complexity of the code.

* Improves general performance of record loading in Holding Pen.

Signed-off-by: Guillaume Lastecoueres <guillaume.lastecoueres@cern.ch>
workflows: blueprint code update

* Moves some functions away from Holding Pen blueprint to
  utils (pending future separation from workflows into a
  new holding pen module).

* Optimizes some error-prone code to get the workflow
  definitions when trying to fetch formatted data from
  the object.

* Removes lots of unused/old code.

* Performs some PEP8/257 updates.

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

* Implements caching for fast search and sorting in Holding Pen.

* Adds back support for workflows not inheriting from WorkflowsBase
  in Holding Pen.

Signed-off-by: Guillaume Lastecoueres <guillaume.lastecoueres@cern.ch>