legacy: webinterface import fix

Signed-off-by: Adrian-Tudor Panescu <adrian.tudor.panescu@cern.ch>
record: JavaScript modifications

* Moves JavaScript to static;
* Record page tab switching triggers "tabreload" event";
* Workaround for legacy URL routing.

Signed-off-by: Adrian-Tudor Panescu <adrian.tudor.panescu@cern.ch>
Flask-Menu and Flask-Breadcrumbs usage
Clouds: skyDrive, Google Drive, Dropbox addition

* Adds support for Google Drive, skyDrive and Dropbox. All cloud
  services are implemented using pyfilesystem as a complete filesystem.
fs: cloudconnector initial port
documents: wip
general: pybabel fixes

Signed-off-by: Adrian-Tudor Panescu <adrian.tudor.panescu@cern.ch>
general: Make fixes

Signed-off-by: Adrian-Tudor Panescu <adrian.tudor.panescu@cern.ch>
legacy: websearch interface fix

* Avoids exception on bad string formatting in the warning message
  when trying to access page without collections.
ext: license

Signed-off-by: Adrian-Tudor Panescu <adrian.tudor.panescu@cern.ch>
Merge pull request #125 from jalavik/legacy-websearch-fix

legacy: websearch interface fix
Merge pull request #124 from adrianp/poo

Fixes
Merge pull request #123 from jirikuncar/fs

File system abstraction
Merge pull request #122 from jirikuncar/pu-flask-menu-and-breadcrumbs

Flask-Menu and Flask-Breadcrumbs usage
Merge pull request #118 from PXke/commit-try-A

Commit try a
workflows: several updates

* Adds a new workflow for harvesting workflow with BibSched
  integration.

* Updates several workflow tasks used by the above workflow.

* Several PEP8 and cosmetic fixes.
workflows: improve engine function

* Makes the BibWorkflowEngine function to return the current
  task/function name a bit more robusts and renames it from
  getCurrTaskName to get_current_taskname.

* Some minor PEP8 fixes.
workflows: better exception handling

* Adds a new file errors.py that contains all custom workflows
  exceptions as per the new standard.

* Improves the exception handling in BibWorkflowEngine and
  client.py.
workflows: harvesting workflow improvements

* Several updates in the 'generic_harvesting_workflow'.

* The workflow tasks in marcxml_tasks are now using the OaiHarvest
  models correctly in terms of loading arguments deserialized.

* Removes duplicate code in client.py.

* Updates demosite regression tests.

Co-authored-by: Guillaume Lastecoueres <guillaume.lastecoueres@cern.ch>
records: 404 if record not found

Signed-off-by: Adrian-Tudor Panescu <adrian.tudor.panescu@cern.ch>