BibWorkflow: initial release

* Adds a new module called BibWorkflow which provides an interface to
  run customizible workflows in Invenio.

  In order to run a workflow, a backend task queue is optional as the
  APO allowsto run workflows directly through the high-level API.

  Currently, there is native support for RedisQueue (RQ) and Celery
  as task queues. These queues, ref. "workers", are bridged in a
  plugin way so that it is possible to write custom plugins to
  support other task queue system.

* Organizes worker logs into folders in var/log.

* Uses PluginUtils to load all workflows.

* Adds integration with WebDeposit authored by
  Konstantinos Ntemagkos and Jiri Kuncar.

Co-authored-by: Dinos Kousidis <konstantinos.kousidis@cern.ch>
Co-authored-by: Daniel Stanculescu <daniel.stanculescu@cern.ch>
Co-authored-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
installation: fix for removed invenio.conf values

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
BibWorkflow: fix for restarting workflow

Conflicts:

	modules/bibworkflow/lib/bibworkflow_client.py
	modules/bibworkflow/lib/bibworkflow_engine.py

	* Merged some changes (Jan Aage Lavik <jan.age.lavik@cern.ch>)

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
pluginutils: optional disabling register_exception

* Adds a new parameter to PluginContainer to allow to disable
  registering an exception when loading plugins. Useful in cases
  where plugins use third-party libraries that are not an required
  dependency.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibWorkflow: exception deactivation during loading

* Sets parameter register_exception=False for worker plugin container.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibWorkflow: task example and celery intergration

* Integrates BibWorkflow with the new Invenio Celery module.

* Adds another way how to save objects during execution in
  BibWorkflow.

* Adds some new example workflow tasks and other changes in
  preparation of the new Holding Pen module.

Co-authored-by: Dinos Kousidis <konstantinos.kousidis@cern.ch>
Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibWorkflow: PEP8 corrections

Conflicts:

    * Merged by Jan Aage Lavik <jan.aage.lavik@cern.ch>

	modules/bibworkflow/etc/tasks/my_tasks.py
	modules/bibworkflow/etc/workflows/record_workflow.py
	modules/bibworkflow/etc/workflows/workflow2.py
	modules/bibworkflow/lib/bibworkflow_admin_blueprint.py
	modules/bibworkflow/lib/bibworkflow_api.py
	modules/bibworkflow/lib/bibworkflow_engine.py
	modules/bibworkflow/lib/bibworkflow_model.py
	modules/bibworkflow/lib/bibworkflow_object.py
	modules/bibworkflow/lib/bibworkflow_worker_engine.py
	modules/bibworkflow/lib/workers/worker_celery.py
	modules/bibworkflow/lib/workers/worker_redis.py

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibWorkflow: additional fixes

* Adds new data-type property to BibWorkflowObject (WfeObject) model.

* Cleans up the example workflows and tasks provided by default.

* Updates the BibWorkflow tests to work correctly and adds one for
  each default workflow.

* Several minor bug fixes and cosmetic changes.

* Changes the function to add status messages - removes save parameter.

* Fixes display of modal window for workflow and objects details.

* Moves JavaScript files into seperate files.

Co-authored-by: Wojciech Ziolek <wojciech.ziolek@cern.ch>
Co-authored-by: Dinos Kousidis <konstantinos.kousidis@cern.ch>
Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibWorkflow: warnings addition in admin pages

* Adds warnings to admin pages that are in state 'work in progress'
  and are not working fully as expected.

* Removes any references to new Holding Pen.

Conflicts:
	modules/bibworkflow/lib/bibworkflow_admin_blueprint.py

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
SherpaRomeoUtils: caching and API enhancement

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
xmlDict: tag attribute fix

* Adds support for xml tags with attributes without children.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
dataciteutils: metadata parser initial commit

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: BibWorkflow integration & enhancements

* Adds form validation after POST submit and renders the errors.
  Co-authored-by: Jiri Kuncar <jiri.kuncar@cern.ch>

* Moves column `user_id` from depDraft to depWorkflow.

* Associates a workflow with a user.

* Appends field icons to input fields.

* Groups all the subfields of a formfield in a gentle block.

* Fixes error rendering for subfields.

* Allows a field to autocomplete other fields
  by returning a dictionary with `field: value` structure
  on validation.

* Moves error checking from blueprint to a new function
  'draft_field_error_check()'

* Typeahead sends an ajax request for every change
  while the previous request is still running. That
  makes older requests override newest resuls.

* Aligns field labels to the right.
  Reported-by: Jerome Caffaro <jerome.caffaro@cern.ch>

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: field autocompletion enhancements

* ISSN field autocompletes Journal and Publisher.

* Journal field autocompletes ISSN and Publisher.

* Publisher field pops up publisher's information.

* Javascript sends additional AJAX request for every
  field that was autocompleted by another one.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: DOI and generic field addition

* Introduces a DOI field using dataciteutils for
  autocompleting other fields.

* Introduces a class that must be inherited from all
  webdeposit fields. A quick way to group all fields
  and apply quickly additional attributes and methods.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: base field and datepicker fixes

* Fixes WebDepositField multiple inheritance problem.

* Adds JQuery imports for datepicker.

* Adds user authentication.

* Fixes workflow name at template.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: plupload widget enhancements

* Uses custom PlUpload.

* Adds Bootstrap style.

* Reloads filelist from database.

* Adds stop upload functionality.

* Adds delete file functionality.

* Adds link to file when upload is complete.

* Blueprint creates user filesystem directories.

Co-authored-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: CKEditor & page form status checking

* `wait_for_submission` handles flow instead of blueprint.

* Adds draft status column.

* Introduces CKEditor field widget.

* The page every x seconds pings the server to check
  form status and if changed the page is refreshed
  to continue the workflow.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
dataciteutils: fix for creator and date getter

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
dateutils: fix for wrong datetime import

* Fixes wrong import and usage of datetime.  (closes #1435)

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