celery: test case helper

* Adds testcase class helper for easier testing of Celery tasks. The
  helper will create a new Celery application per test, similar to the
  way InvenioTestCase creates a Flask application per test.

* Adds example test case using the new helper.

* Removes no longer needed test runner hack.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
logging: error reporting refactoring

* Refactors register_exception to use Flask application
  logging, and split functionality into a Python logging
  handler and formatter.

* Adds support for logging exceptions to Sentry.

* Disables email error reporting when in debug mode.

* Deprecates certain error logging function by moving them
  to the module where they are used. This is done to create
  a much simpler API.

* Fixes PEP8 errors.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
workflows: bibholding pen improvement

* Fixes range selection.

* Changes name of tags.

* Fixes tags filtering.

* Adds 'NEW' tag for initial bibworkflow state.

* Fixes the ctrl + a shortcut.

* Fixes full selection.

* Fixes CSS missing for bootstrap input tags.

* Fixes tags appearing in Search field.

* Deletes useless arguments.

* Removes risky try...except.

* Adds a initial state management.

* Adds tag color.

* Fixes the fact that the number of displayed was hardcoded
  to allow everything to work whatever is the number of
  rows.

* Fixes the tags printed in the detailed view.

* Removes some useless and heavy console.log.

Tested-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Guillaume Lastecoueres <guillaume.lastecoueres@cern.ch>
pages: initial release

Signed-off-by: Javier Martin Montull <javier.martin.montull@cern.ch>
Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
pages: new route registration

* Adds pages to excluded packages to allow fast integration.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
base: new signal `before_handle_user_exception`

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
pages: 404 exception handling

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
base: fix admin template

Signed-off-by: Javier Martin Montull <javier.martin.montull@cern.ch>
pages: model improvements

* Adds support for urls without trailing slash.

* Adds validation for template name.

* Adds last_modified and created columns.

* Improves upgrade recipe.

Signed-off-by: Javier Martin Montull <javier.martin.montull@cern.ch>
Co-authored-by: Jiri Kuncar <jiri.kuncar@cern.ch>
docs: INSTALL guide update

* Updates the INSTALL guide to remove suggested command to set
  PACKAGES config manually. This is now managed at the level of
  the demosite sources via setup.py entry_points.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: fix for Celery worker tasks loading

* Loads the Celery worker tasks so that Invenio Celery wrapper
  can discover the tasks.

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

* The marc reader and wrapper modules now catches any errors
  while parsing MARCXML with legacy create_record and returns a
  ReaderException with details.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
records: API test case addition

* In response to 5daee2f, adds a new test-case to make sure
  an exception is raised when Record.create is called with bad
  data.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
deposit: edit button now shown fix

* Fixes Edit button not displayed.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
formatter: improved error reporting

* Improves error reporting for bibformat elements to include
  traceback in template when in debug mode, as well as using
  the Flask application logger to report the error.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
logging: warnings logging

* Refactors warnings reporting to use logging system by
  default.

* Adds best practice error handling documentation.

* Adds StreamHandler to warnings logger in debug mode.

* Unhides DeprecationWarning.

* Adds support for sending warnings to Sentry.

* Removes custom warnings wrapper.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
jsonalchemy: deprecation warning fix

* Fixes a deprecation warning.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
formatter: unicode decoding error fix

* Fixes unicode decoding error in bfe_keyword bibformat element.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
installation: Flask-Admin requirements version fix

* Flask-Admin version in setup.py is 1.0.7 but Invenio requirement
  was set to 1.0.8 causing DistributionNotFound errors.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
base: dead code removal

* Remove legacy unused functions and variables.

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