xmlDict: initial release

Signed-off-by: Konstantinos Ntemagkos <konstantinos.ntemagkos@cern.ch>
Co-authored-by: Tibor Simko <tibor.simko@cern.ch>
WebDeposit: initial release

* Introduces WebDeposit Article submission demo.

* Adds Sherpa Romeo autocompletion for publisher, journal
  and ISSN fields.

* Adds AJAX field error checking.

* Adds draft saving capabilities.

* Creates form dynamically from class.

* Adds custom field classes.

* Adds autocompletion and error checking for every field.

* Adds support for dynamic form and field loading using pluginbuilder.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: field widgets addition

* Introduces WTForm field widgets like JQuery calendar widget or Plupload
  field widget (html5 version).

* Removes the "scary" code from form configuration files.

* Adds Plupload as a WTForm field widget for file fields.

* Adds new config variable CFG_WEBDEPOSIT_UPLOAD_FOLDER.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: model addition and plupload chunking

* Adds SQLAlchemy model for database drafts table.

* Draft functions are using SQLAlchemy ORM.

* Adds support for Plupload file chunking.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: autocompletion and draft enhancement

* Adds Orcid search for author autocompletion.

* Introduces document type metadata and integrates document type
  in form rendering.

* Adds Sherpa Romeo search testing class.

* Field icons are rendered from `Field.icon_html` variable.

* Replaces draft model's integer id with string uuid.

* Refactors new draft, delete draft in order to function
  with document types.

* JQuery autocomplete functions are rendered if
  the field has an autocomplete attribute.

* Updates tabcreate.sql with WebDeposit Draft CREATE TABLE script.

* Adds pretty_date function to webdeposit_utils in order to prettify
  saved drafts list with user friendly timestamp.

* Enhances draft_field_get_all to work also with list
  of field names.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: subfields support and submit widget addition

* Adds subfield argument to the draft API
  Json structure now can have dictionaries
  in the second level.

* Integrates bootstrap submit button in a widget.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: new workflow class and functions

* Adds functions to be used by workflows.

* Adds workflow table model and updates accordingly tabcreate.

* Changes workflow class to be more like Roman's Workflow.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: sequential form rendering

* Implements a simple Article Workflow that renders
  two forms sequentially (ArticleForm, PhotoForm)

* Alters the WebDeposit tables.

* Adds functions to obtain a workflow `get_latest_or_new_workflow`,
  `get_workflow` and `create_workflow`.

* Adds workflow class functions to synchronize database and
  workflow object.

* When custom fields are imported from `webdeposit_load_fields`
  constructors now are attributes to an object called 'fields'.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: javascript check for required fields

* Adds `required` data member automatically to every field if the
  field is defined with `Required()` validator.

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: dynamic breadcrumbs additions

Co-authored-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: change of database column name

Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebDeposit: fix links and type check addition
WebDeposit: workflow cleanup
WebDeposit: columns type change to db.JSON

* Changes type of columns `WebDepositWorkflow.obj_json` and
  `WebDepositDraft.form_values` to `db.JSON`.

* Adds workflow status variable CFG_WEBDEPOSIT_WORKFLOW_STATUS.

Co-authored-by: Konstantinos Ntemagkos <konstantinos.ntemagkos@cern.ch>
WebDeposit: more depositions and various fixes

* Adds Thesis and Preprint deposition types.

* Fixes SQLAlchemy query update query.

* Prettifies alignment at form labels.

* Adds scrollbar to autocomplete dropdown list
WebDeposit: select deposition page addition
dateutils: new pretty_date() function

Co-authored-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebStyle: new invenio_pretty_date() jinja2 filter

Co-authored-by: Konstantinos Ntemagkos <konstantinos.ntemagkos@cern.ch>
WebDeposit: usage of invenio_pretty_date()

* Replaces `pretty_date()` function with `invenio_pretty_date()` jinja2
  filter in templates.

Co-authored-by: Konstantinos Ntemagkos <konstantinos.ntemagkos@cern.ch>
WebDeposit: dynamic loading of deposition types

* Updates `webdeposit_load_dep_types.py` with plugin_utils
  and creates the metadata dynamically

* Adds to the depositions' metadata more attributes