GithubHelp home page GithubHelp logo

rero / rero-ils Goto Github PK

View Code? Open in Web Editor NEW
72.0 9.0 27.0 76.25 MB

Integrated Library System flavour of Invenio by RERO+.

Home Page: http://ils.test.rero.ch

License: GNU Affero General Public License v3.0

Python 93.22% HTML 3.42% Shell 1.11% CSS 0.01% JavaScript 1.80% Dockerfile 0.07% SCSS 0.38%
ils library-management-system invenio reroplus rero

rero-ils's Introduction

Github actions status image Release Number License Gitter room Translation status Poetry


RERO ILS

RERO ILS

The elegant solution for heritage, public and school libraries or networks.
Live Demo » · User docs » · Developer docs »

Website · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Usage
  3. Getting started
  4. Contributing
  5. License
  6. Contact

About the project


RERO ILS

RERO ILS is a new generation open source integrated library system developed in Switzerland by RERO+ in collaboration with the Catholic University of Louvain (UCLouvain). It allows the management of library networks or independent libraries (document acquisition, circulation, cataloguing, search) and offers a public interface for users.

RERO ILS has been under heavy development since 2017 as a replacement for RERO network's legacy software. Its first major release (v1.0.0) was published at the end of 2020. The first real-life production instance has been live since June 2021. Since then, it is being actively maintained and developed by a committed team from Switzerland and Belgium, in order to improve upon its current features and satisfy its users' needs.

Built with

(back to top)

Usage

Demo

To explore the system, you can try the test instance or take a look at one of the production instances: RERO+ network (live since Summer 2021) and UCLouvain network (live since early 2022).

Features

  • 🌐 Consortial model: built primarily for library networks, large or small, with several levels of configuration included (organization, library).
  • 📚 Cataloguing and serial management: modern cataloguing editor in compliance with current standards (RDA, BibFrame); in-depth management of periodicals, subscriptions, and issue predictions.
  • 💻 Online catalog: public online catalog with simple but powerful search and filtering functions; customizable views by organization and library; seamless integration of resources from external platforms (ebooks, databases, etc.).
  • 📖 Circulation module: perform all the operations required by libraries: check-out, check-in, item requests, interlibrary loans, patron management, in a modern, fast and ergonomic web interface.
  • 🔃 Data interaction and openness: JSON formatted bibliographic data Bibframe model with a powerful API to interact with the database.

Use RERO ILS

RERO ILS is open source and can be can be deployed and hosted by anyone, provided they can afford the required configuration or development effort. It can also be hosted as a service by RERO+ for any interested library or organisation.

The user documentation for RERO ILS is hosted on flask-wiki.

(back to top)

Getting started

Install

The ecosystem

Three GitHub repositories for RERO ILS

The rero-ils GitHub project contains the main project for RERO ILS, basically providing the invenio backend. To work on the frontend of the project, you also need rero-ils-ui, which is based on ng-core.

MEF

The MEF (Multilingual Entity File), provides authorities (or entities) to RERO ILS, in two languages: French and German (for now). This is used to link documents to controlled descriptions of authors and subjects. MEF can aggregate multiple authority files, such as IdRef and GND. These authority files are then aligned through VIAF, thus providing multilingual authorities.

As a result, in order to run RERO ILS, you need to either use our public MEF server, or run your own.

RERO EBOOKS

RERO ILS customers make use of 3rd-party ebook commercial platforms. A dedicated server has been set up for harvesting ebook metadata from those platforms, convert them to RERO ILS's own data model. RERO ILS harvests our ebooks server, importing the metadata into the union catalog, assigning each ebook to the corresponding subscribing libraries.

This server is not publicly accessible but the source code is available on GitHub: rero-ebooks.

You need to prevent your RERO ILS instance to harvest RERO's ebooks server, but you can run your own ebooks server.

(back to top)

Contributing

Any contribution is greatly appreciated!

(back to top)

License

Distributed under the GNU Affero General Public License. See LICENSE for more information.

(back to top)

Contact

  • If you have questions, you can ask the development team on Gitter.
  • In case of a security issue, please contact the e-mail address provided in the security policy.

(back to top)

rero-ils's People

Contributors

aonoookami avatar benerken avatar blankoworld avatar boffire avatar codefzer avatar dependabot[bot] avatar fitojb avatar garfield-fr avatar jma avatar joelledosimont avatar labatnicolas avatar lauren-d avatar manadeweerdt avatar marionrero avatar mmo avatar nicolaslabat avatar pascalrepond avatar pronguen avatar reropag avatar rerowep avatar sbibauw avatar transifex-integration[bot] avatar vgranata avatar vrabe avatar weblate avatar zannkukai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rero-ils's Issues

Column pickup location empty

In the "Pending" tab of the patron account, the column "Pickup location" is empty. The pickup locations corresponding to each request should be displayed.

Item brief view status display is misleading

Items with a "Not for loan" type having an "on_shelf" status are displayed as On shelf with a green bullet in the item brief view. In fact, it is not possible to check out these items.

Wrong call number in the "on loan" tab of the patron profile

When several items of the same document are requested of which one is on loan, the display of the requested items in the patron profile on the "on loan" tab have the call number of the already on loan item displayed in the "pending" tab.

A request should block the renewal

It is currently possible to renew the due date of a requested item. The renew action should check if there is a request, block the action and notify the librarian. The librarian has the option to override the block.

Default sort of demand list

The default sort of the demand list should be by date (newer) (ie. descending). For example here, I must see the newest request at the top of the list.

Uppercase in the facets

In the facets, the values have the first letter of every word in uppercase. Only the first letter of the value should be set uppercase, keeping the original case of the other letters. This applies to every facets in every languages.

Executing "docker-compose run web ./populate.sh" reveals $VIRTUAL_ENV not set

Hi,

I created a docker-compose.yml file as described in file INSTALL.rst and got it "up".

Then executing

docker-compose run web ./populate.sh

lead to error messages indicating that the variable VIRTUAL_ENV in script populate.sh was not set. In consequence the initialization data was searched in /src/.... instead of /home/invenio/reroils/src/....

Maybe a

source /home/invenio/reroils/bin/activate

must be placed in the script.

Going over with

docker-compose exec web bash

and executing

./populate.sh

works perfectly.

Maarten

Updating views at logout

The logout should clean all the current views to avoid the view of inappropriate/confidential information. Currently, the update is only made once the user try to press a button.

Item barcode uniqueness not recognised

When there are several items attached to a document, when editing an item which is not the first one in the list, the existing barcode is said to be already existing even if there are no other items with the same barcode.

Fix Location names facet

The location names are splitted. Correct the mapping to not_analyzed in the location names facet.

Status "Not available" when item is missing

In the document detailed page, the item status is not complete in some cases, for example when an item has a circulation status "missing". The display should be: "Not available (missing)". See this example.

The status display in the document result list is currently correct, that is with only two possible values ("Available"/"Not available").

Wording: details

Error: two words without white space in this sentence: "Vous avez bien réinitialisé votre mot de passe et avez été automatiquementconnecté."
The form used to reset the password would be more understandable with the wording "Nouveau mot de passe" and "Confirmer le nouveau mot de passe" in the two fields.

Record deletion without checking the attached records

When deleting a record to which other records are attached, eg : organisation with members, bib records with items. The attached records are automatically deleted with the main record without any warning message.

Confirmation message after record creation

The record editor messages should be translated. It is currently only in English (for ex: "The record has been saved (Benutzer, pid: 10).".
Example: after creation of an item.

Translations & wording

  • The "Circulation" item in the "Manage" menu should be renamed: Check-in & check-out / Prêt et retour / Ausleihe und Rückgabe / Prestito e ritorno.
  • The "My profile" menu (as a patron) should be renamed: My account / Mon compte / Mein Konto / Il mio conto.
  • The confirmation message after a request (as a patron) should be translated: The item [13017] has been requested. / L'exemplaire [13017] a bien été demandé. / Das Examplar [13017] wurde bestellt. / L'esemplare [13017] è stato richiesto.
  • In the user account, replace "Lieux de retrait" by "Lieu de retrait".

Internal server error when adding a new item

  • Try ils.test.rero.ch (v0.1.0a15).
  • Select a document.
  • Add an item.
  • In stead of the item editor view, get an Internal Server Error.

The error is as follow:

127.0.0.1 - - [27/Jun/2018 16:30:45] "GET /editor/create/item?parent_pid=10684 HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/werkzeug/wsgi.py", line 826, in __call__
    return app(environ, start_response)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask_principal.py", line 199, in _decorated
    rv = f(*args, **kw)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/views.py", line 91, in create
    form_options = translate(form_options, keys=keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 47, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 44, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 47, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 44, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 47, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 44, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 47, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 44, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 47, in translate
    translate(v, keys)
  File "/home/igor/.virtualenvs/reroils-app/src/reroils-record-editor/reroils_record_editor/babel_extractors.py", line 42, in translate
    data[k] = _(v)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask_babelex/__init__.py", line 623, in gettext
    return get_domain().gettext(*args, **kwargs)
  File "/home/igor/.virtualenvs/reroils-app/lib/python3.6/site-packages/flask_babelex/__init__.py", line 534, in gettext
    return t.ugettext(string) % variables
KeyError: 'icon'

Item's location selection

The user doesn't know the location PID. Ideally, the location names should be available in a scrolling list.

No barcode check at patron creation

At the creation of a patron, the system should check if the barcode already exists. The patron barcodes are unique (for now within the system, in the future maybe only within an organisation).

Patron without barcode

When trying to display patron nr. 10 (Broglio, Giulia), we got an internal error server. To reproduce it, try to open https://ils.test.rero.ch/patrons/10.
It seems that this patron does not have any barcode, is this the cause of the problem? How is it possible that she has no barcode?

For information, this problem already appeared at previous deployment with patron Simonetta.

Wrong circulation status after checkin

After checkin of an item with a request, the item has a circulation status "on_shelf". It should be directly "at_desk" (if the pickup member == transaction.member).

renewal counts

The renewal count is incremented each time the action "renew" is selected. Even when the item new due date is not changed.

Page d'aide (FR) : corrections dans le texte

Un compte bibliothécaire (avec le rôle de catalogueur) est disponible, avec les identifiants suiants:
--> suivants

Une fois que vous êtes identifié·e, un menu s'affiche. Il donne accès à l'éditeur qui permet de cataloguer une nouveau document. --> un

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.