WebSearch: CERN-specific collection sorting

* Sorts 'CERN Courier Issues/Articles' and 'CERN Bulletin
  Issues/Articles' collections by 773__y field in WebColl.
  (closes #2017)

Signed-off-by: Sebastian Witowski <sebastian.witowski@cern.ch>
Reviewed-by: Tibor Simko <tibor.simko@cern.ch>
Websearch: include 'cc' in RSS <channel>'s <link>

* If the 'cc' collection is defined when producing the RSS feed then
  it's included in the <link> tag under the <channel> tag.
  (closes #2013) (closes #2014)

Signed-off-by: Nikolaos Kasioumis <nikolaos.kasioumis@cern.ch>
Reviewed-by: Tibor Simko <tibor.simko@cern.ch>
utils: removal of duplicate `SmartDict` definition

* Removes duplicate `SmartDict` class definition. (closes #2031)

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@gmail.com>
Acked-by: Jiri Kuncar <jiri.kuncar@cern.ch>
records: fix for document default name generator

* Adds catching exceptions around `os.makedirs`.

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@gmail.com>
Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
base: account settings drop-down menu

* Adds account settings in user menu drop-down.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
Tested-by: Jiri Kuncar <jiri.kuncar@cern.ch>
base: separation of styles to independent files

*  Uses '@import (reference)' to import external less files.

Signed-off-by: Eirini Psallida <eirini.psallida@cern.ch>
Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
formatter: fix RSS generation

Signed-off-by: Yoan Blanc <yoan.blanc@cern.ch>
Reported-by: Jiří Kunčar <jiri.kuncar@cern.ch>
restful: API testcase fixes

* Fixes issue with class variable in API test case.

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

* Adds test cases for restful decorators.

* Adds documentation on issues with decorators being called with
  both bound and unbound methods when used from Flask-Restful
  method_decorators attribute (bound) vs normally applied
  decorator (via @ on class method).

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

* Fixes issue where edited records would be rejected by bibupload's
  revision verifier because the modification date in bibrec (used
  by records module) is not the same as hstRECORD (used by revision
  verifier).

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
oauthclient: github/orcid sign-in/up support

* Adds support for GitHub and ORCID sign-in/up.

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

* Adds registry for OAuth 2.0 scopes.

* Adds support for selecting scopes when creating personal access
  tokens.

* Fixes scopes registration in deposit and webhooks modules according to
  new registry.

* NOTE The scopes registry will be refactored in the future depending on
  the outcome RFC #1773.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
oauth2server: authorization flow bug fixes

* Adds redirect URI field to application form.

* Adds validation and setters of redirect uris on model.

* Fixes issue in auth flow when validating scopes.

* Fixes template and context issues in 'Authorize application' view.

* Disables https redirect uri checking when in debug mode.

* Properly handle errors happening during authorize requests.

* Adds test cases for authorization_code, client_crendentials,
  refresh_token and implicit grant types.

* Adds endpoint documentation in user interface.

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

* Fixes undefined variable when using API keys as authentication.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
formatter: test engine xslt format addition

* Adds test for xslt format engine.  (closes #2048)

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
global: Invenio 1.9999.3.dev

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
mixer: new extension that uses Mixer library

* If the extension is enabled it will connect to database create and
  recreated commands so it can loads all the json files into the
  database.

* NOTE if this extension is enabled fixtures should not be
  used as probably there will be some database inconsistencies.

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@gmail.com>
Co-authored-by: Jiri Kuncar <jiri.kuncar@cern.ch>
fixtures: port to extension with signals usage

* NOTE `inveniomanage demosite create` is obsolete. All actions are
  executed during `{post,pre}_command` signal handlers.

Co-authored-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
access: removal of site specific configuration

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
search: ids removal from format fixtures

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@gmail.com>