WebSearch: more complete API regression test suite

* Enriches Python API and Web API test suite with more tests related
  to /search and /record URLs with TextMARC and XMLMARC outputs (full,
  filtered fields only, subfield values only).  For example,
  `/record/85?of=tm&ot=100,700`, `/record/85?of=tm&ot=700__a`.

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
WebSearch: field-filtered MARCXML API output

* Implements field-filtered MARCXML output in Python and Web APIs.
  This was working for the TextMARC output, not for MARCXML output.
  This commit fixes the problem.  Usage: `/record/123?of=xm&ot=100,700`
  or `/search?p=ellis&of=xm&ot=100,700`.  (closes #1591)

* Adds new tests for trying to access hidden fields via the
  filtered-field API technique.

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
WebSubmit: optional pdftk regression tests

* Disables WebSubmit stamping related regression tests
  in case pdftk is not available.

Reported-by: Jiri Kuncar <jiri.kuncar@cern.ch>
Signed-off-by: Samuele Kaplun <samuele.kaplun@cern.ch>
Reviewed-by: Tibor Simko <tibor.simko@cern.ch>
Merge branch 'maint-1.1'

* maint-1.1:
  WebSubmit: optional pdftk regression tests
  WebSearch: field-filtered MARCXML API output
  WebSearch: more complete API regression test suite

* NOTE: the merge commit amends API regression tests
  as per new demo records added in the master branch.

Conflicts:
	modules/websearch/lib/websearch_regression_tests.py

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
BibFormat: fix for bfe_fultext function

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
installation: SQLAlchemy version 0.8.2

* NOTE: Updates version of SQLAlchemy. Please run
  `pip install SQLAlchemy==0.8.2 --upgrade`.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebSession: fix for settings data saving

* Addresses issue with Boolean field in settings forms.

* Saves form data instead of POST data from request.

Signed-off-by: Krzysztof Lis <krzysztof.lis@cern.ch>
Co-authored-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebSubmit: fix for fileupload interface

Reported-by: Arthur Alejandro Oviedo Urazmetov <arthur.oviedo@cern.ch>
Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibFormat: template ctx function prefix changed

* Renames template context function prfix from bfn_ to tfn_

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>
kwalitee: compatibility with pylint 1.0.0

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
kwalitee: list comprehensions instead of lambdas

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
Merge branch 'maint-1.1'

* maint-1.1:
  kwalitee: list comprehensions instead of lambdas
  kwalitee: compatibility with pylint 1.0.0
Merge branch 'master' into next

* master:
  kwalitee: list comprehensions instead of lambdas
  kwalitee: compatibility with pylint 1.0.0
  WebSubmit: optional pdftk regression tests
  WebSearch: field-filtered MARCXML API output
  WebSearch: more complete API regression test suite

Conflicts:
	modules/websearch/lib/websearch_regression_tests.py
	modules/websubmit/lib/websubmit_regression_tests.py

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
installation: Flask-Gravatar version 0.4.0

* NOTE: Updates version of Flask-Gravatar. Please run
  `pip install Flask-Gravatar==0.4.0 --upgrade`.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
installation: Jinja2 version 2.7.1

* NOTE: Updates version of Jinja2. Please run
  `pip install Jinja2==2.7.1 --upgrade`.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
mailutils: fix unicode error in templates

* Addresses issue with UTF-8/unicode encoding.  (addresses #1598)

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
Tested-by: Tibor Simko <tibor.simko@cern.ch>
SQLAlchemy: autodiscover modules on demand

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
importutils: ignore exceptions option addition

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebStyle: blueprint loading using importutils

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
BibWorkflow: specific worker loading

* Loads only specific worker using `import_string`.

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