inveniosoftware-attic / invenio-app-demomarc21 Goto Github PK
View Code? Open in Web Editor NEWDemo of an MARC21 based Invenio flavour.
Home Page: https://invenio-app-demomarc21.readthedocs.io
License: GNU General Public License v2.0
Demo of an MARC21 based Invenio flavour.
Home Page: https://invenio-app-demomarc21.readthedocs.io
License: GNU General Public License v2.0
Way to reproduce, click signup to app-ilis, fill the form up and click the "Sign up" button
Traceback (most recent call last):
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/werkzeug/wsgi.py", line 660, in __call__
return app(environ, start_response)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_security/decorators.py", line 230, in wrapper
return f(*args, **kwargs)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_security/views.py", line 118, in register
user = register_user(**form.to_dict())
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_security/registerable.py", line 41, in register_user
'welcome', user=user, confirmation_link=confirmation_link)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_security/utils.py", line 401, in send_mail
mail.send(msg)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_mail.py", line 492, in send
message.send(connection)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_mail.py", line 427, in send
connection.send(self)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_mail.py", line 194, in send
email_dispatched.send(message, app=current_app._get_current_object())
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/blinker/base.py", line 267, in send
for receiver in self.receivers_for(sender)]
File "/Users/user/.virtualenvs/invenio-first-week/src/invenio-mail/invenio_mail/ext.py", line 47, in print_email
'{0}\n{1}\n'.format(message.as_string(), '-' * 79))
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_mail.py", line 381, in as_string
return self._message().as_string()
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_mail.py", line 330, in _message
msg['From'] = sanitize_address(self.sender, encoding)
File "/Users/user/.virtualenvs/invenio-first-week/lib/python2.7/site-packages/flask_mail.py", line 105, in sanitize_address
nm, addr = addr
ValueError: too many values to unpack
Review all merged PRs from first week of sprint in demo site.
Write integration tests for rate limiting of UI and REST endpoints.
Moved from inveniosoftware/invenio-rest#71
Probably this needs to be switched off from in invenio-db
$ invenio demo init
....
Importing bibliographic records
2017-07-28 12:56:31,969 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1
INFO [sqlalchemy.engine.base.Engine] SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1
2017-07-28 12:56:31,969 INFO sqlalchemy.engine.base.Engine ()
INFO [sqlalchemy.engine.base.Engine] ()
2017-07-28 12:56:31,973 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS VARCHAR(60)) AS anon_1
INFO [sqlalchemy.engine.base.Engine] SELECT CAST('test unicode returns' AS VARCHAR(60)) AS anon_1
2017-07-28 12:56:31,974 INFO sqlalchemy.engine.base.Engine ()
INFO [sqlalchemy.engine.base.Engine] ()
2017-07-28 12:56:31,975 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
INFO [sqlalchemy.engine.base.Engine] BEGIN (implicit)
2017-07-28 12:56:31,975 INFO sqlalchemy.engine.base.Engine BEGIN
INFO [sqlalchemy.engine.base.Engine] BEGIN
2017-07-28 12:56:31,976 INFO sqlalchemy.engine.base.Engine ()
Problem:
The years are displayed at the same time in a "range" widget ("years") and in a checkbox widget. Those two widget send a different query to the backend, either a range query or a multi-choice query. If the backend marked the "years" facet as a range, as it is the case in invenio-app-ils, the search will fail with an error message "Error: Invalid range format".
Temporary solution:
Create a custom temlate which will not show the checkbox widget.
See https://github.com/zenodo/zenodo/blob/master/zenodo/config.py#L528-L535
Probably add this directly to Invenio-Records-UI
I would imagine the best would be to build a JavaScript which just connects to the REST API, however we can create a view which maps directly to the legacy 1.x views like in Zenodo.
$ curl -H "Accept: application/marcxml+xml" http://localhost:5000/api/records/
should reply with MARCXML serialisation
Probably just have to be plugged in Invenio-MARC21
$ invenio demo init
--------------------------------------------------------------------------------
WARNING in ext [/Users/lnielsen/envs/ils/lib/python3.6/site-packages/invenio_jsonschemas/ext.py:239]:
JSONSCHEMAS_HOST is set to localhost
--------------------------------------------------------------------------------
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/flask_celeryext/app.py:33: UserWarning: Celery v4 installed, but detected Celery v3 configuration CELERYBEAT_SCHEDULE (use CELERY_BEAT_SCHEDULE instead).
UserWarning
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/flask_celeryext/app.py:33: UserWarning: Celery v4 installed, but detected Celery v3 configuration BROKER_URL (use CELERY_BROKER_URL instead).
UserWarning
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/flask_menu/__init__.py:341: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() or inspect.getfullargspec()
expected = inspect.getargspec(f).args
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/invenio_config/default.py:52: UserWarning: Set configuration variable SECRET_KEY with random string
UserWarning)
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/dojson/contrib/to_marc21/model.py:21: UserWarning: MARC21 undo feature is experimental
warnings.warn('MARC21 undo feature is experimental')
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/invenio_oaiserver/ext.py:150: UserWarning: Please specify the OAISERVER_ID_PREFIX configuration.default value is: oai:lnielsen-mbp.dyndns.cern.ch:recid/
app.config.get('OAISERVER_ID_PREFIX')))
--------------------------------------------------------------------------------
WARNING in ext [/Users/lnielsen/envs/ils/lib/python3.6/site-packages/invenio_jsonschemas/ext.py:239]:
JSONSCHEMAS_HOST is set to localhost
--------------------------------------------------------------------------------
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/flask_celeryext/app.py:33: UserWarning: Celery v4 installed, but detected Celery v3 configuration CELERYBEAT_SCHEDULE (use CELERY_BEAT_SCHEDULE instead).
UserWarning
/Users/lnielsen/envs/ils/lib/python3.6/site-packages/flask_celeryext/app.py:33: UserWarning: Celery v4 installed, but detected Celery v3 configuration BROKER_URL (use CELERY_BROKER_URL instead).
UserWarning
Documentation should be fixed, so that it's clear that they must run in DEBUG mode to have non-SSL site.
or
Find a way to easily disable force_ssl from flask-talisman
Related to inveniosoftware/invenio#3812 and inveniosoftware/invenio#3811
For integration testing it would be good to have a script that will setup a virtualenv, install all app-ils modules in it, and run the test suite for each module to see if it works together with the other modules.
Add facets to UI:
Add support for Elasticsearch v5 now that main part of the bundles support ES5.
In accounts there are CSP issues, probably are related with inveniosoftware/invenio-admin#57
With a fresh installation of app-ils you get the follwoing
pkg_resources.ContextualVersionConflict: (idna 2.6 (/Users/drjova/.virtualenvs/invenio-first/lib/python2.7/site-packages), Requirement.parse('idna<2.6,>=2.5'), set(['requests']))
Add selenium tests and integration tests to validate that all record pages render properly, that search works etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.