v2.10.18
Pre-release
Pre-release
What's Changed
Functional changes
- Export fixes by @jbukhari in #1552
- Fixes CSV parsing error
- Fixes non fatal JS error in search.js when exporting
- Fixes unreported bug in XML export where the export would never complete
- Search component factoring by @jbukhari in #1555
- Creates new subcomponent to handle the basket add/remove/locked icon in the search results. This provides some optimization in acquiring the record lock/basket status for each item in the search results. It also aims to improve the code factoring by handling the DOM manipulation with Vue instead of pure JS
- Other small UX tweaks
- exception handling by @jbukhari in #1570
- Tries to catch all errors in jmarc.mjs fetch requests
- Removes use of regex in authority in use check
- API query routes (search/count) abort with 408 on query timeouts instead of throwing Python exception
- Make improvements to MARC import by @aaronhelton in #1515
- Prevent submission when 0 records selected
- Update auth unmatched heading message
- Allow record replacement if record id is present
- Skip auth lookup on presence of xref in $0
- Implement additional feedback for Metadata Import by @aaronhelton in #1583
- Addresses the remaining feedback items from #1426
- Enables the required permission importMarc on the import route.
- Adds a short name field so we can collect 999 $a values like {shortname}{action}{date}.
- Note that to use the permission, we will need to create a new role. In dev, this is "import-admin", which has the same permissions as indexer-admin. The admin role also has access to this permission.
- Additionally note that each user will need to be edited to include a shortname.
- Addresses the remaining feedback items from #1426
- Speech review load handling by @jbukhari in #1576
- Prevents searches with no search term (tries to retrieve all records)
- Restores limit of 1000 records to all API record list requests
- Gathers speech records for speech review page by page in order to reduce load on the server side
Deployment updates (non-user facing)
- Create dependabot.yml by @aaronhelton in #1545
- Remove Pipfile and Pipfile.lock by @aaronhelton in #1554
- Prune requirements by @aaronhelton in #1562
- Move test matrix and update actions versions by @aaronhelton in #1563
Security updates and patches
- Bump dlx to 1.4.16.3 by @aaronhelton in #1553
- Bump flask-restx from 1.1.0 to 1.3.0 by @aaronhelton in #1567
- Bump zipp from 3.19.1 to 3.21.0 by @dependabot in #1569
- Bump flask-wtf from 1.2.1 to 1.2.2 by @dependabot in #1561
- Bump pyparsing from 3.0.7 to 3.2.0 by @dependabot in #1557
- Bump python-ulid from 1.1.0 to 3.0.0 by @dependabot in #1560
- Bump wtforms from 3.0.1 to 3.2.1 by @dependabot in #1578
- Bump sentry-sdk from 2.8.0 to 2.18.0 by @dependabot in #1579
- Bump flask-mongoengine-3 from 1.0.9 to 1.1.0 by @dependabot in #1580
- Bump troposphere from 4.0.1 to 4.8.3 by @dependabot in #1581
- Bump email-validator from 1.1.3 to 2.2.0 by @dependabot in #1582
- Bump sentry-sdk from 2.18.0 to 2.19.0 by @dependabot in #1588
- Bump importlib-metadata from 4.11.3 to 8.5.0 by @dependabot in #1589
- Bump flask-session from 0.4.0 to 0.8.0 by @dependabot in #1590
- Bump itsdangerous from 2.1.2 to 2.2.0 by @dependabot in #1591
- Bump blinker from 1.7.0 to 1.9.0 to support Flask 3x by @aaronhelton in #1593
- Bump flask from 2.3.3 to 3.1.0 by @dependabot in #1592
- Bump flask-cors from 4.0.2 to 5.0.0 by @dependabot in #1595
- Update requirements.txt by @jbukhari in #1571
- Update requirements.txt by @jbukhari in #1596
Full Changelog: v2.10.17...v2.10.18