Skip to content

Commit

Permalink
data model: implement title and variants transformation
Browse files Browse the repository at this point in the history
* Implements title and variants transformation for Marc21.
* Implements title and variants transformation for Marc21 eBook.
* Adapts ES mapping.
* Adapts JSON schemas.
* Adapts detailed document view.

Related to: rero-ils-ui pr200 document: display title in brief and detail view

Co-Authored-by: Gianni Pante <[email protected]>
Co-Authored-by: Peter Weber <[email protected]>
  • Loading branch information
reropag and rerowep committed Mar 31, 2020
1 parent 0524143 commit b5ccf9a
Show file tree
Hide file tree
Showing 21 changed files with 33,395 additions and 1,937 deletions.
26,094 changes: 24,874 additions & 1,220 deletions data/documents_big.json

Large diffs are not rendered by default.

6,343 changes: 6,007 additions & 336 deletions data/documents_small.json

Large diffs are not rendered by default.

488 changes: 449 additions & 39 deletions rero_ils/dojson/utils.py

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions rero_ils/modules/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
from werkzeug.local import LocalProxy

from .api import IlsRecordIndexer
from .documents.dojson.contrib.marc21tojson import marc21tojson
from .documents.dojson.contrib.marc21tojson import marc21
from .items.cli import create_items, reindex_items
from .loans.cli import create_loans
from .patrons.cli import import_users
Expand Down Expand Up @@ -602,7 +602,7 @@ def do_worker(marc21records, results, pid_required, debug):
data_json = data['json']
pid = data_json.get('001', '???')
try:
record = marc21tojson.do(data_json)
record = marc21.do(data_json)
if not record.get("$schema"):
# create dummy schema in data
record["$schema"] = 'dummy'
Expand Down
9 changes: 7 additions & 2 deletions rero_ils/modules/documents/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@

from .models import DocumentIdentifier
from .utils import edition_format_text, publication_statement_text, \
series_format_text
series_format_text, title_format_text, title_format_text_head, \
title_variant_format_text
from ..acq_order_lines.api import AcqOrderLinesSearch
from ..api import IlsRecord, IlsRecordIndexer
from ..fetchers import id_fetcher
Expand Down Expand Up @@ -157,14 +158,18 @@ def dumps(self, **kwargs):
dump = super(Document, self).dumps(**kwargs)
provision_activities = dump.get('provisionActivity', [])
for provision_activity in provision_activities:
provision_activity["_text"] = \
provision_activity['_text'] = \
publication_statement_text(provision_activity)
series = dump.get('series', [])
for series_element in series:
series_element["_text"] = series_format_text(series_element)
editions = dump.get('editionStatement', [])
for edition in editions:
edition['_text'] = edition_format_text(edition)
titles = dump.get('title', [])
bf_titles = list(filter(lambda t: t['type'] == 'bf:Title', titles))
for title in bf_titles:
title['_text'] = title_format_text_head(titles, with_subtitle=True)
return dump

def index_persons(self, bulk=False):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@

"""MARC21 RERO to JSON."""

from .model import marc21tojson
from .model import marc21

__all__ = ('marc21tojson')
__all__ = ('marc21')
Loading

0 comments on commit b5ccf9a

Please sign in to comment.