Compare commits

..

66 Commits

Author SHA1 Message Date
Michael Shamoon
a96f79f6a3 Bump version to 1.10.1 2022-12-01 18:54:52 -08:00
Michael Shamoon
d6f1d004a3 Merge branch 'dev' 2022-12-01 18:52:35 -08:00
shamoon
da72d3571b Merge pull request #2050 from paperless-ngx/l10n_dev
New Crowdin updates
2022-12-01 18:52:06 -08:00
Michael Shamoon
8241da0eb3 fix broken npm package-lock 2022-12-01 17:01:22 -08:00
shamoon
51562667bf Merge pull request #2076 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/tslib-2.4.1
Bump tslib from 2.4.0 to 2.4.1 in /src-ui
2022-12-01 16:40:07 -08:00
dependabot[bot]
97eeae65a3 Bump tslib from 2.4.0 to 2.4.1 in /src-ui
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/2.4.0...2.4.1)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-02 00:39:26 +00:00
shamoon
1aee2988f7 Merge pull request #2079 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular-builders/jest-14.1.0
Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui
2022-12-01 16:39:24 -08:00
shamoon
a63a8dd488 Merge pull request #2078 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-preset-angular-12.2.3
Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui
2022-12-01 16:38:38 -08:00
shamoon
06a9df6dbd Merge pull request #2080 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-file-drop-14.0.2
Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui
2022-12-01 16:37:25 -08:00
shamoon
49933bb5a8 Merge pull request #2077 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngneat/dirty-check-forms-3.0.3
Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui
2022-12-01 16:18:07 -08:00
dependabot[bot]
7d7d9630c1 Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui
Bumps [ngx-file-drop](https://github.com/georgipeltekov/ngx-file-drop) from 14.0.1 to 14.0.2.
- [Release notes](https://github.com/georgipeltekov/ngx-file-drop/releases)
- [Changelog](https://github.com/georgipeltekov/ngx-file-drop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/georgipeltekov/ngx-file-drop/compare/v14.0.1...v14.0.2)

---
updated-dependencies:
- dependency-name: ngx-file-drop
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:03:32 +00:00
dependabot[bot]
6f0077efac Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui
Bumps [@angular-builders/jest](https://github.com/just-jeb/angular-builders/tree/HEAD/packages/jest) from 14.0.1 to 14.1.0.
- [Release notes](https://github.com/just-jeb/angular-builders/releases)
- [Changelog](https://github.com/just-jeb/angular-builders/blob/master/packages/jest/CHANGELOG.md)
- [Commits](https://github.com/just-jeb/angular-builders/commits/@angular-builders/jest@14.1.0/packages/jest)

---
updated-dependencies:
- dependency-name: "@angular-builders/jest"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:03:05 +00:00
dependabot[bot]
39be68a1a4 Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui
Bumps [jest-preset-angular](https://github.com/thymikee/jest-preset-angular) from 12.2.2 to 12.2.3.
- [Release notes](https://github.com/thymikee/jest-preset-angular/releases)
- [Changelog](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/thymikee/jest-preset-angular/compare/v12.2.2...v12.2.3)

---
updated-dependencies:
- dependency-name: jest-preset-angular
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:02:39 +00:00
dependabot[bot]
ac69babfce Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui
Bumps [@ngneat/dirty-check-forms](https://github.com/ngneat/dirty-check-forms) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/ngneat/dirty-check-forms/releases)
- [Changelog](https://github.com/ngneat/dirty-check-forms/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ngneat/dirty-check-forms/compare/v3.0.2...v3.0.3)

---
updated-dependencies:
- dependency-name: "@ngneat/dirty-check-forms"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:02:11 +00:00
shamoon
02c782a127 Merge pull request #2073 from paperless-ngx/fix-frontend-tasks-display
Fix: frontend tasks display in 1.10.0
2022-12-01 08:19:59 -08:00
Trenton Holmes
4e90fda80f Expands documentation around the permissions of the custom scripts and the folder 2022-12-01 07:21:25 -08:00
Trenton Holmes
88e3e556a1 Fixes the custom scripts not running as root 2022-12-01 07:21:25 -08:00
shamoon
88cf6ef843 add demo badge 2022-11-30 15:14:21 -08:00
Michael Shamoon
9b602a4bf0 Fix frontend tasks display 2022-11-30 13:55:51 -08:00
Trenton H
a3bc3b78d5 Also display the container logs 2022-11-29 20:11:40 -08:00
Trenton H
fed7d3e993 Use docker compose to start and stop containers which match directly to our command overrides 2022-11-29 20:11:40 -08:00
Trenton H
3a74f24e49 Adds libatomic1 for supporting armv7 better 2022-11-29 13:46:04 -08:00
Trenton H
52afab39cf Organizes the system packages a little bit more 2022-11-29 13:46:04 -08:00
Paperless-ngx Translation Bot [bot]
8659292852 New translations django.po (Norwegian)
[ci skip]
2022-11-29 00:29:45 -08:00
Paperless-ngx Translation Bot [bot]
ce73f159fd New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-28 14:13:54 -08:00
shamoon
71382e9c62 Merge pull request #2062 from paperless-ngx/fix/2053-long-names-too-quiet
Bugfix: Don't silence an exception when trying to handle file naming
2022-11-28 14:05:57 -08:00
Trenton H
a1a802fc92 Don't silence an exception when trying to handle file naming 2022-11-28 13:44:17 -08:00
Paperless-ngx Translation Bot [bot]
4200fc610d New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-28 13:17:22 -08:00
Paperless-ngx Translation Bot [bot]
32d212cd9f New translations messages.xlf (German)
[ci skip]
2022-11-28 11:17:07 -08:00
shamoon
5d3a6e230d Merge pull request #2057 from paperless-ngx/fix/2044-lang-code-diffs
Bugfix: Some tesseract languages aren't detected as installed.
2022-11-28 11:04:44 -08:00
Trenton H
b33fcc117e Transition to a maintained upload release assert 2022-11-28 10:01:43 -08:00
Trenton H
e96d65f945 Allows parsing of WebP format images 2022-11-28 09:35:54 -08:00
Paperless-ngx Translation Bot [bot]
cfeed0ce6e New translations django.po (Polish)
[ci skip]
2022-11-28 08:30:32 -08:00
Paperless-ngx Translation Bot [bot]
b89ecf7d77 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-11-28 05:28:39 -08:00
Paperless-ngx Translation Bot [bot]
5ca25d44ba New translations messages.xlf (Luxembourgish)
[ci skip]
2022-11-28 04:27:31 -08:00
Michael Shamoon
1e11c12d96 Merge branch 'main' into dev 2022-11-27 21:16:50 -08:00
Trenton Holmes
3e22e8e0b9 prepends the latest changelog 2022-11-27 19:24:28 -08:00
Trenton Holmes
dba45f93a4 Fixes the pre-commit command 2022-11-27 19:24:16 -08:00
Paperless-ngx Translation Bot [bot]
18f3f44ae9 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-27 17:58:25 -08:00
Paperless-ngx Translation Bot [bot]
85a6a271dc New translations messages.xlf (French)
[ci skip]
2022-11-27 17:58:23 -08:00
Paperless-ngx Translation Bot [bot]
abb515d4ea New translations messages.xlf (Spanish)
[ci skip]
2022-11-27 17:58:22 -08:00
Paperless-ngx Translation Bot [bot]
309d1f2b67 New translations messages.xlf (Arabic)
[ci skip]
2022-11-27 17:58:21 -08:00
Paperless-ngx Translation Bot [bot]
fa2f09bc4b New translations messages.xlf (Belarusian)
[ci skip]
2022-11-27 17:58:19 -08:00
Paperless-ngx Translation Bot [bot]
c51590cd12 New translations messages.xlf (Czech)
[ci skip]
2022-11-27 17:58:18 -08:00
Paperless-ngx Translation Bot [bot]
8e01406acf New translations messages.xlf (Danish)
[ci skip]
2022-11-27 17:58:17 -08:00
Paperless-ngx Translation Bot [bot]
7cce2f0fe6 New translations messages.xlf (Finnish)
[ci skip]
2022-11-27 17:58:16 -08:00
Paperless-ngx Translation Bot [bot]
95091c2f39 New translations messages.xlf (Hebrew)
[ci skip]
2022-11-27 17:58:14 -08:00
Paperless-ngx Translation Bot [bot]
4a0aa12bd9 New translations messages.xlf (Italian)
[ci skip]
2022-11-27 17:58:13 -08:00
Paperless-ngx Translation Bot [bot]
9a0329746a New translations messages.xlf (Dutch)
[ci skip]
2022-11-27 17:58:11 -08:00
Paperless-ngx Translation Bot [bot]
8392a6fd4a New translations messages.xlf (Romanian)
[ci skip]
2022-11-27 17:58:10 -08:00
Paperless-ngx Translation Bot [bot]
8fa18bb8a6 New translations messages.xlf (Norwegian)
[ci skip]
2022-11-27 17:58:09 -08:00
Paperless-ngx Translation Bot [bot]
0095b593fb New translations messages.xlf (Portuguese)
[ci skip]
2022-11-27 17:58:08 -08:00
Paperless-ngx Translation Bot [bot]
b1e5135e21 New translations messages.xlf (Russian)
[ci skip]
2022-11-27 17:58:05 -08:00
Paperless-ngx Translation Bot [bot]
e88755e7ac New translations messages.xlf (Slovenian)
[ci skip]
2022-11-27 17:58:04 -08:00
Paperless-ngx Translation Bot [bot]
c582947291 New translations messages.xlf (Swedish)
[ci skip]
2022-11-27 17:58:02 -08:00
Paperless-ngx Translation Bot [bot]
98fe3a2cb7 New translations messages.xlf (Turkish)
[ci skip]
2022-11-27 17:58:01 -08:00
Paperless-ngx Translation Bot [bot]
61647606fa New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-11-27 17:57:59 -08:00
Paperless-ngx Translation Bot [bot]
95a1e5c645 New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-11-27 17:57:58 -08:00
Paperless-ngx Translation Bot [bot]
8ead77f128 New translations messages.xlf (Croatian)
[ci skip]
2022-11-27 17:57:57 -08:00
Paperless-ngx Translation Bot [bot]
b9e9e82f33 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-11-27 17:57:55 -08:00
Paperless-ngx Translation Bot [bot]
487fd3a5dd New translations messages.xlf (Polish)
[ci skip]
2022-11-27 17:57:54 -08:00
Paperless-ngx Translation Bot [bot]
657786a2fe New translations messages.xlf (German)
[ci skip]
2022-11-27 17:57:52 -08:00
Trenton Holmes
e74d7dadfb Adds the -dev back to the UI version 2022-11-27 17:43:46 -08:00
Trenton Holmes
a2937cd54d Merge branch 'main' into dev 2022-11-27 17:42:41 -08:00
Trenton Holmes
f0497e7744 Fixes how a language code like chi-sim is treated in the checks 2022-11-27 08:28:22 -08:00
Trenton H
9b01aa9202 Fixes the link for flake8 to the new (?) GitHub repo 2022-11-20 07:42:21 -08:00
48 changed files with 6317 additions and 1905 deletions

View File

@@ -81,15 +81,6 @@ jobs:
matrix:
python-version: ['3.8', '3.9', '3.10']
fail-fast: false
services:
tika:
image: ghcr.io/paperless-ngx/tika:latest
ports:
- "9998:9998/tcp"
gotenberg:
image: docker.io/gotenberg/gotenberg:7.6
ports:
- "3000:3000/tcp"
env:
# Enable Tika end to end testing
TIKA_LIVE: 1
@@ -103,6 +94,11 @@ jobs:
uses: actions/checkout@v3
with:
fetch-depth: 0
-
name: Start containers
run: |
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml pull --quiet
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml up --detach
-
name: Install pipenv
run: |
@@ -154,6 +150,12 @@ jobs:
run: |
cd src/
pipenv run coveralls --service=github
-
name: Stop containers
if: always()
run: |
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml logs
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml down
tests-frontend:
name: "Tests Frontend"
@@ -478,10 +480,9 @@ jobs:
-
name: Upload release archive
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: shogo82148/actions-upload-release-asset@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: ./paperless-ngx.tar.xz
asset_name: paperless-ngx-${{ steps.get_version.outputs.version }}.tar.xz
@@ -523,7 +524,7 @@ jobs:
CURRENT_CHANGELOG=`tail --lines +2 changelog.md`
echo -e "$CURRENT_CHANGELOG" >> changelog-new.md
mv changelog-new.md changelog.md
pipenv run pre-commit --files changelog.md
pipenv run pre-commit run --files changelog.md
git config --global user.name "github-actions"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git commit -am "Changelog ${{ needs.publish-release.outputs.version }} - GHA"

View File

@@ -72,34 +72,37 @@ COPY --from=jbig2enc-builder /usr/src/jbig2enc/src/*.h /usr/local/include/
# Packages need for running
ARG RUNTIME_PACKAGES="\
# Python
python3 \
python3-pip \
python3-setuptools \
# General utils
curl \
file \
# Docker specific
gosu \
# Timezones support
tzdata \
# fonts for text file thumbnail generation
fonts-liberation \
gettext \
ghostscript \
gnupg \
gosu \
icc-profiles-free \
imagemagick \
media-types \
# Image processing
liblept5 \
libpq5 \
libxml2 \
liblcms2-2 \
libtiff5 \
libxslt1.1 \
libfreetype6 \
libwebp6 \
libopenjp2-7 \
libimagequant0 \
libraqm0 \
libgnutls30 \
libjpeg62-turbo \
python3 \
python3-pip \
python3-setuptools \
# PostgreSQL
libpq5 \
postgresql-client \
# MySQL / MariaDB
mariadb-client \
# For Numpy
libatlas3-base \
@@ -110,17 +113,23 @@ ARG RUNTIME_PACKAGES="\
tesseract-ocr-fra \
tesseract-ocr-ita \
tesseract-ocr-spa \
# Suggested for OCRmyPDF
pngquant \
# Suggested for pikepdf
jbig2dec \
tzdata \
unpaper \
pngquant \
# pikepdf / qpdf
jbig2dec \
libxml2 \
libxslt1.1 \
libgnutls30 \
# Mime type detection
file \
libmagic1 \
media-types \
zlib1g \
# Barcode splitter
libzbar0 \
poppler-utils"
poppler-utils \
# RapidFuzz on armv7
libatomic1"
# Install basic runtime packages.
# These change very infrequently

View File

@@ -3,6 +3,7 @@
[![Documentation Status](https://readthedocs.org/projects/paperless-ngx/badge/?version=latest)](https://paperless-ngx.readthedocs.io/en/latest/?badge=latest)
[![Coverage Status](https://coveralls.io/repos/github/paperless-ngx/paperless-ngx/badge.svg?branch=master)](https://coveralls.io/github/paperless-ngx/paperless-ngx?branch=master)
[![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/%23paperlessngx%3Amatrix.org)
![demo](https://cronitor.io/badges/ve7ItY/production/W5E_B9jkelG9ZbDiNHUPQEVH3MY.svg)
<p align="center">
<img src="https://github.com/paperless-ngx/paperless-ngx/raw/main/resources/logo/web/png/Black%20logo%20-%20no%20background.png#gh-light-mode-only" width="50%" />

View File

@@ -0,0 +1,22 @@
# docker-compose file for running paperless testing with actual gotenberg
# and Tika containers for a more end to end test of the Tika related functionality
# Can be used locally or by the CI to start the nessecary containers with the
# correct networking for the tests
version: "3.7"
services:
gotenberg:
image: docker.io/gotenberg/gotenberg:7.6
hostname: gotenberg
container_name: gotenberg
network_mode: host
restart: unless-stopped
command:
- "gotenberg"
- "--chromium-disable-routes=true"
tika:
image: ghcr.io/paperless-ngx/tika:latest
hostname: tika
container_name: tika
network_mode: host
restart: unless-stopped

View File

@@ -77,6 +77,46 @@ nltk_data () {
}
custom_container_init() {
# Mostly borrowed from the LinuxServer.io base image
# https://github.com/linuxserver/docker-baseimage-ubuntu/tree/bionic/root/etc/cont-init.d
local -r custom_script_dir="/custom-cont-init.d"
# Tamper checking.
# Don't run files which are owned by anyone except root
# Don't run files which are writeable by others
if [ -d "${custom_script_dir}" ]; then
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 ! -user root)" ]; then
echo "**** Potential tampering with custom scripts detected ****"
echo "**** The folder '${custom_script_dir}' must be owned by root ****"
return 0
fi
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 -perm -o+w)" ]; then
echo "**** The folder '${custom_script_dir}' or some of contents have write permissions for others, which is a security risk. ****"
echo "**** Please review the permissions and their contents to make sure they are owned by root, and can only be modified by root. ****"
return 0
fi
# Make sure custom init directory has files in it
if [ -n "$(/bin/ls -A "${custom_script_dir}" 2>/dev/null)" ]; then
echo "[custom-init] files found in ${custom_script_dir} executing"
# Loop over files in the directory
for SCRIPT in "${custom_script_dir}"/*; do
NAME="$(basename "${SCRIPT}")"
if [ -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: executing..."
/bin/bash "${SCRIPT}"
echo "[custom-init] ${NAME}: exited $?"
elif [ ! -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: is not a file"
fi
done
else
echo "[custom-init] no custom files found exiting..."
fi
fi
}
initialize() {
# Setup environment from secrets before anything else
@@ -132,6 +172,10 @@ initialize() {
set -e
"${gosu_cmd[@]}" /sbin/docker-prepare.sh
# Leave this last thing
custom_container_init
}
install_languages() {

View File

@@ -89,46 +89,6 @@ superuser() {
fi
}
custom_container_init() {
# Mostly borrowed from the LinuxServer.io base image
# https://github.com/linuxserver/docker-baseimage-ubuntu/tree/bionic/root/etc/cont-init.d
local -r custom_script_dir="/custom-cont-init.d"
# Tamper checking.
# Don't run files which are owned by anyone except root
# Don't run files which are writeable by others
if [ -d "${custom_script_dir}" ]; then
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 ! -user root)" ]; then
echo "**** Potential tampering with custom scripts detected ****"
echo "**** The folder '${custom_script_dir}' must be owned by root ****"
return 0
fi
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 -perm -o+w)" ]; then
echo "**** The folder '${custom_script_dir}' or some of contents have write permissions for others, which is a security risk. ****"
echo "**** Please review the permissions and their contents to make sure they are owned by root, and can only be modified by root. ****"
return 0
fi
# Make sure custom init directory has files in it
if [ -n "$(/bin/ls -A "${custom_script_dir}" 2>/dev/null)" ]; then
echo "[custom-init] files found in ${custom_script_dir} executing"
# Loop over files in the directory
for SCRIPT in "${custom_script_dir}"/*; do
NAME="$(basename "${SCRIPT}")"
if [ -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: executing..."
/bin/bash "${SCRIPT}"
echo "[custom-init] ${NAME}: exited $?"
elif [ ! -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: is not a file"
fi
done
else
echo "[custom-init] no custom files found exiting..."
fi
fi
}
do_work() {
if [[ "${PAPERLESS_DBENGINE}" == "mariadb" ]]; then
wait_for_mariadb
@@ -144,9 +104,6 @@ do_work() {
superuser
# Leave this last thing
custom_container_init
}
do_work

View File

@@ -407,11 +407,14 @@ The Docker image includes the ability to run custom user scripts during startup.
utilized for installing additional tools or Python packages, for example.
To utilize this, mount a folder containing your scripts to the custom initialization directory, `/custom-cont-init.d`
and place scripts you wish to run inside. For security, the folder and its contents must be owned by `root`.
Additionally, scripts must only be writable by `root`.
and place scripts you wish to run inside. For security, the folder must be owned by `root` and should have permissions
of `a=rx`. Additionally, scripts must only be writable by `root`.
Your scripts will be run directly before the webserver completes startup. Scripts will be run by the `root` user.
This is an advanced functionality with which you could break functionality or lose data.
If you would like to switch users, the utility `gosu` is available and preferred over `sudo`.
This is an advanced functionality with which you could break functionality or lose data. If you experience issues,
please disable any custom scripts and try again before reporting an issue.
For example, using Docker Compose:
@@ -425,6 +428,7 @@ For example, using Docker Compose:
volumes:
- /path/to/my/scripts:/custom-cont-init.d:ro
.. _advanced-mysql-caveats:
MySQL Caveats

View File

@@ -1,5 +1,173 @@
# Changelog
## paperless-ngx 1.10.0
### Features
- Feature: Capture stdout \& stderr of the pre/post consume scripts [@stumpylog](https://github.com/stumpylog) ([#1967](https://github.com/paperless-ngx/paperless-ngx/pull/1967))
- Feature: Allow running custom container initialization scripts [@stumpylog](https://github.com/stumpylog) ([#1838](https://github.com/paperless-ngx/paperless-ngx/pull/1838))
- Feature: Add more file name formatting options [@stumpylog](https://github.com/stumpylog) ([#1906](https://github.com/paperless-ngx/paperless-ngx/pull/1906))
- Feature: 1.9.2 UI tweaks [@shamoon](https://github.com/shamoon) ([#1886](https://github.com/paperless-ngx/paperless-ngx/pull/1886))
- Feature: Optional celery monitoring with Flower [@stumpylog](https://github.com/stumpylog) ([#1810](https://github.com/paperless-ngx/paperless-ngx/pull/1810))
- Feature: Save pending tasks for frontend [@stumpylog](https://github.com/stumpylog) ([#1816](https://github.com/paperless-ngx/paperless-ngx/pull/1816))
- Feature: Improved processing for automatic matching [@stumpylog](https://github.com/stumpylog) ([#1609](https://github.com/paperless-ngx/paperless-ngx/pull/1609))
- Feature: Transition to celery for background tasks [@stumpylog](https://github.com/stumpylog) ([#1648](https://github.com/paperless-ngx/paperless-ngx/pull/1648))
- Feature: UI Welcome Tour [@shamoon](https://github.com/shamoon) ([#1644](https://github.com/paperless-ngx/paperless-ngx/pull/1644))
- Feature: slim sidebar [@shamoon](https://github.com/shamoon) ([#1641](https://github.com/paperless-ngx/paperless-ngx/pull/1641))
- change default matching algo to auto and move to constant [@NiFNi](https://github.com/NiFNi) ([#1754](https://github.com/paperless-ngx/paperless-ngx/pull/1754))
- Feature: Enable end to end Tika testing in CI [@stumpylog](https://github.com/stumpylog) ([#1757](https://github.com/paperless-ngx/paperless-ngx/pull/1757))
- Feature: frontend update checking settings [@shamoon](https://github.com/shamoon) ([#1692](https://github.com/paperless-ngx/paperless-ngx/pull/1692))
- Feature: Upgrade to qpdf 11, pikepdf 6 \& ocrmypdf 14 [@stumpylog](https://github.com/stumpylog) ([#1642](https://github.com/paperless-ngx/paperless-ngx/pull/1642))
### Bug Fixes
- Bugfix: Fix created_date being a string [@stumpylog](https://github.com/stumpylog) ([#2023](https://github.com/paperless-ngx/paperless-ngx/pull/2023))
- Bugfix: Fixes an issue with mixed text and images when redoing OCR [@stumpylog](https://github.com/stumpylog) ([#2017](https://github.com/paperless-ngx/paperless-ngx/pull/2017))
- Bugfix: Always re-try barcodes with pdf2image [@stumpylog](https://github.com/stumpylog) ([#1953](https://github.com/paperless-ngx/paperless-ngx/pull/1953))
- Fix: using `CONSUMER_SUBDIRS_AS_TAGS` causes failure with Celery in `dev` [@shamoon](https://github.com/shamoon) ([#1942](https://github.com/paperless-ngx/paperless-ngx/pull/1942))
- Fix mail consumption broken in `dev` after move to celery [@shamoon](https://github.com/shamoon) ([#1934](https://github.com/paperless-ngx/paperless-ngx/pull/1934))
- Bugfix: Prevent file handling from running with stale data [@stumpylog](https://github.com/stumpylog) ([#1905](https://github.com/paperless-ngx/paperless-ngx/pull/1905))
- Chore: Reduce nuisance CI test failures [@stumpylog](https://github.com/stumpylog) ([#1922](https://github.com/paperless-ngx/paperless-ngx/pull/1922))
- Bugfix: Unintentional deletion of feature tagged Docker images [@stumpylog](https://github.com/stumpylog) ([#1896](https://github.com/paperless-ngx/paperless-ngx/pull/1896))
- Fix: independent control of saved views [@shamoon](https://github.com/shamoon) ([#1868](https://github.com/paperless-ngx/paperless-ngx/pull/1868))
- Fix: frontend relative date searches [@shamoon](https://github.com/shamoon) ([#1865](https://github.com/paperless-ngx/paperless-ngx/pull/1865))
- Chore: Fixes pipenv issues [@stumpylog](https://github.com/stumpylog) ([#1873](https://github.com/paperless-ngx/paperless-ngx/pull/1873))
- Bugfix: Handle password protected PDFs during barcode detection [@stumpylog](https://github.com/stumpylog) ([#1858](https://github.com/paperless-ngx/paperless-ngx/pull/1858))
- Fix: Allows configuring barcodes with pdf2image instead of pikepdf [@stumpylog](https://github.com/stumpylog) ([#1857](https://github.com/paperless-ngx/paperless-ngx/pull/1857))
- Bugfix: Reverts the change around skip_noarchive [@stumpylog](https://github.com/stumpylog) ([#1829](https://github.com/paperless-ngx/paperless-ngx/pull/1829))
- Fix: missing loadViewConfig breaks loading saved view [@shamoon](https://github.com/shamoon) ([#1792](https://github.com/paperless-ngx/paperless-ngx/pull/1792))
- Bugfix: Fallback to pdf2image if pikepdf fails [@stumpylog](https://github.com/stumpylog) ([#1745](https://github.com/paperless-ngx/paperless-ngx/pull/1745))
- Fix: creating new storage path on document edit fails to update menu [@shamoon](https://github.com/shamoon) ([#1777](https://github.com/paperless-ngx/paperless-ngx/pull/1777))
- Bugfix: Files containing barcodes uploaded via web are not consumed after splitting [@stumpylog](https://github.com/stumpylog) ([#1762](https://github.com/paperless-ngx/paperless-ngx/pull/1762))
- Bugfix: Fix email labeling for non-Gmail servers [@stumpylog](https://github.com/stumpylog) ([#1755](https://github.com/paperless-ngx/paperless-ngx/pull/1755))
- Fix: allow preview for .csv files [@shamoon](https://github.com/shamoon) ([#1744](https://github.com/paperless-ngx/paperless-ngx/pull/1744))
- Bugfix: csv recognition by consumer [@bin101](https://github.com/bin101) ([#1726](https://github.com/paperless-ngx/paperless-ngx/pull/1726))
- Bugfix: Include document title when a duplicate is detected [@stumpylog](https://github.com/stumpylog) ([#1696](https://github.com/paperless-ngx/paperless-ngx/pull/1696))
- Bugfix: Set MySql charset [@stumpylog](https://github.com/stumpylog) ([#1687](https://github.com/paperless-ngx/paperless-ngx/pull/1687))
- Mariadb compose files should use `PAPERLESS_DBPASS` [@shamoon](https://github.com/shamoon) ([#1683](https://github.com/paperless-ngx/paperless-ngx/pull/1683))
### Documentation
- Documentation: Update MariaDB docs to note some potential issues [@stumpylog](https://github.com/stumpylog) ([#2016](https://github.com/paperless-ngx/paperless-ngx/pull/2016))
- Documentation: Add note re MS exchange servers [@shamoon](https://github.com/shamoon) ([#1780](https://github.com/paperless-ngx/paperless-ngx/pull/1780))
- Chore: Updates Gotenberg versions [@stumpylog](https://github.com/stumpylog) ([#1768](https://github.com/paperless-ngx/paperless-ngx/pull/1768))
- Documentation: Tweak LinuxServer [@stumpylog](https://github.com/stumpylog) ([#1761](https://github.com/paperless-ngx/paperless-ngx/pull/1761))
- Documentation: Adds troubleshooting note about Kubernetes and ports [@stumpylog](https://github.com/stumpylog) ([#1731](https://github.com/paperless-ngx/paperless-ngx/pull/1731))
- Documentation: LinuxServer.io Migration [@stumpylog](https://github.com/stumpylog) ([#1733](https://github.com/paperless-ngx/paperless-ngx/pull/1733))
- [Documentation] Add v1.9.2 changelog [@github-actions](https://github.com/github-actions) ([#1671](https://github.com/paperless-ngx/paperless-ngx/pull/1671))
### Maintenance
- Bump tj-actions/changed-files from 32 to 34 [@dependabot](https://github.com/dependabot) ([#1915](https://github.com/paperless-ngx/paperless-ngx/pull/1915))
- Chore: Fix `dev` trying to build Pillow or lxml [@stumpylog](https://github.com/stumpylog) ([#1909](https://github.com/paperless-ngx/paperless-ngx/pull/1909))
- Chore: Fixes pipenv issues [@stumpylog](https://github.com/stumpylog) ([#1873](https://github.com/paperless-ngx/paperless-ngx/pull/1873))
- Chore: Simplified registry cleanup [@stumpylog](https://github.com/stumpylog) ([#1812](https://github.com/paperless-ngx/paperless-ngx/pull/1812))
- Chore: Fixing deprecated workflow commands [@stumpylog](https://github.com/stumpylog) ([#1786](https://github.com/paperless-ngx/paperless-ngx/pull/1786))
- Chore: Python library update + test fixes [@stumpylog](https://github.com/stumpylog) ([#1773](https://github.com/paperless-ngx/paperless-ngx/pull/1773))
- Chore: Updates Gotenberg versions [@stumpylog](https://github.com/stumpylog) ([#1768](https://github.com/paperless-ngx/paperless-ngx/pull/1768))
- Bump leonsteinhaeuser/project-beta-automations from 1.3.0 to 2.0.1 [@dependabot](https://github.com/dependabot) ([#1703](https://github.com/paperless-ngx/paperless-ngx/pull/1703))
- Bump tj-actions/changed-files from 29.0.2 to 31.0.2 [@dependabot](https://github.com/dependabot) ([#1702](https://github.com/paperless-ngx/paperless-ngx/pull/1702))
- Bump actions/checkout from 2 to 3 [@dependabot](https://github.com/dependabot) ([#1704](https://github.com/paperless-ngx/paperless-ngx/pull/1704))
- Bump actions/setup-python from 3 to 4 [@dependabot](https://github.com/dependabot) ([#1705](https://github.com/paperless-ngx/paperless-ngx/pull/1705))
### Dependencies
<details>
<summary>31 changes</summary>
- Bugfix: Downgrade cryptography for armv7 compatibility [@stumpylog](https://github.com/stumpylog) ([#1954](https://github.com/paperless-ngx/paperless-ngx/pull/1954))
- Chore: Bulk library updates + loosen restrictions [@stumpylog](https://github.com/stumpylog) ([#1949](https://github.com/paperless-ngx/paperless-ngx/pull/1949))
- Bump tj-actions/changed-files from 32 to 34 [@dependabot](https://github.com/dependabot) ([#1915](https://github.com/paperless-ngx/paperless-ngx/pull/1915))
- Bump scikit-learn from 1.1.2 to 1.1.3 [@dependabot](https://github.com/dependabot) ([#1903](https://github.com/paperless-ngx/paperless-ngx/pull/1903))
- Bump angular packages as bundle [@dependabot](https://github.com/dependabot) ([#1910](https://github.com/paperless-ngx/paperless-ngx/pull/1910))
- Bump ngx-ui-tour-ng-bootstrap from 11.0.0 to 11.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1911](https://github.com/paperless-ngx/paperless-ngx/pull/1911))
- Bump jest-environment-jsdom from 29.1.2 to 29.2.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1914](https://github.com/paperless-ngx/paperless-ngx/pull/1914))
- Bump pillow from 9.2.0 to 9.3.0 [@dependabot](https://github.com/dependabot) ([#1904](https://github.com/paperless-ngx/paperless-ngx/pull/1904))
- Bump pytest from 7.1.3 to 7.2.0 [@dependabot](https://github.com/dependabot) ([#1902](https://github.com/paperless-ngx/paperless-ngx/pull/1902))
- Bump tox from 3.26.0 to 3.27.0 [@dependabot](https://github.com/dependabot) ([#1901](https://github.com/paperless-ngx/paperless-ngx/pull/1901))
- Bump zipp from 3.9.0 to 3.10.0 [@dependabot](https://github.com/dependabot) ([#1860](https://github.com/paperless-ngx/paperless-ngx/pull/1860))
- Bump pytest-env from 0.6.2 to 0.8.1 [@dependabot](https://github.com/dependabot) ([#1859](https://github.com/paperless-ngx/paperless-ngx/pull/1859))
- Bump sphinx from 5.2.3 to 5.3.0 [@dependabot](https://github.com/dependabot) ([#1817](https://github.com/paperless-ngx/paperless-ngx/pull/1817))
- Chore: downgrade channels-redis [@stumpylog](https://github.com/stumpylog) ([#1802](https://github.com/paperless-ngx/paperless-ngx/pull/1802))
- Chore: Update to qpdf 11.1.1 and update backend libraries [@stumpylog](https://github.com/stumpylog) ([#1749](https://github.com/paperless-ngx/paperless-ngx/pull/1749))
- Bump myst-parser from 0.18.0 to 0.18.1 [@dependabot](https://github.com/dependabot) ([#1738](https://github.com/paperless-ngx/paperless-ngx/pull/1738))
- Bump leonsteinhaeuser/project-beta-automations from 1.3.0 to 2.0.1 [@dependabot](https://github.com/dependabot) ([#1703](https://github.com/paperless-ngx/paperless-ngx/pull/1703))
- Bump tj-actions/changed-files from 29.0.2 to 31.0.2 [@dependabot](https://github.com/dependabot) ([#1702](https://github.com/paperless-ngx/paperless-ngx/pull/1702))
- Bump actions/checkout from 2 to 3 [@dependabot](https://github.com/dependabot) ([#1704](https://github.com/paperless-ngx/paperless-ngx/pull/1704))
- Bump actions/setup-python from 3 to 4 [@dependabot](https://github.com/dependabot) ([#1705](https://github.com/paperless-ngx/paperless-ngx/pull/1705))
- Bump rxjs from 7.5.6 to 7.5.7 in /src-ui [@dependabot](https://github.com/dependabot) ([#1720](https://github.com/paperless-ngx/paperless-ngx/pull/1720))
- Bump uuid from 8.3.2 to 9.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1716](https://github.com/paperless-ngx/paperless-ngx/pull/1716))
- Bump ng2-pdf-viewer from 9.1.0 to 9.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1717](https://github.com/paperless-ngx/paperless-ngx/pull/1717))
- Bump ngx-color from 8.0.2 to 8.0.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1715](https://github.com/paperless-ngx/paperless-ngx/pull/1715))
- Bump concurrently from 7.3.0 to 7.4.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1719](https://github.com/paperless-ngx/paperless-ngx/pull/1719))
- Bump [@<!---->types/node from 18.7.14 to 18.7.23 in /src-ui @dependabot](https://github.com/<!---->types/node from 18.7.14 to 18.7.23 in /src-ui @dependabot) ([#1718](https://github.com/paperless-ngx/paperless-ngx/pull/1718))
- Bump jest-environment-jsdom from 29.0.1 to 29.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1714](https://github.com/paperless-ngx/paperless-ngx/pull/1714))
- Bump [@<!---->angular/cli @<!---->angular/core @dependabot](https://github.com/<!---->angular/cli @<!---->angular/core @dependabot) ([#1708](https://github.com/paperless-ngx/paperless-ngx/pull/1708))
- Bump cypress from 10.7.0 to 10.9.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1707](https://github.com/paperless-ngx/paperless-ngx/pull/1707))
- Bump bootstrap from 5.2.0 to 5.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1710](https://github.com/paperless-ngx/paperless-ngx/pull/1710))
- Bump typescript from 4.7.4 to 4.8.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1706](https://github.com/paperless-ngx/paperless-ngx/pull/1706))
</details>
### All App Changes
- Add info that re-do OCR doesnt automatically refresh content [@shamoon](https://github.com/shamoon) ([#2025](https://github.com/paperless-ngx/paperless-ngx/pull/2025))
- Bugfix: Fix created_date being a string [@stumpylog](https://github.com/stumpylog) ([#2023](https://github.com/paperless-ngx/paperless-ngx/pull/2023))
- Bugfix: Fixes an issue with mixed text and images when redoing OCR [@stumpylog](https://github.com/stumpylog) ([#2017](https://github.com/paperless-ngx/paperless-ngx/pull/2017))
- Bugfix: Don't allow exceptions during date parsing to fail consume [@stumpylog](https://github.com/stumpylog) ([#1998](https://github.com/paperless-ngx/paperless-ngx/pull/1998))
- Feature: Capture stdout \& stderr of the pre/post consume scripts [@stumpylog](https://github.com/stumpylog) ([#1967](https://github.com/paperless-ngx/paperless-ngx/pull/1967))
- Bugfix: Always re-try barcodes with pdf2image [@stumpylog](https://github.com/stumpylog) ([#1953](https://github.com/paperless-ngx/paperless-ngx/pull/1953))
- Fix: using `CONSUMER_SUBDIRS_AS_TAGS` causes failure with Celery in `dev` [@shamoon](https://github.com/shamoon) ([#1942](https://github.com/paperless-ngx/paperless-ngx/pull/1942))
- Fix mail consumption broken in `dev` after move to celery [@shamoon](https://github.com/shamoon) ([#1934](https://github.com/paperless-ngx/paperless-ngx/pull/1934))
- Bugfix: Prevent file handling from running with stale data [@stumpylog](https://github.com/stumpylog) ([#1905](https://github.com/paperless-ngx/paperless-ngx/pull/1905))
- Chore: Reduce nuisance CI test failures [@stumpylog](https://github.com/stumpylog) ([#1922](https://github.com/paperless-ngx/paperless-ngx/pull/1922))
- Bump scikit-learn from 1.1.2 to 1.1.3 [@dependabot](https://github.com/dependabot) ([#1903](https://github.com/paperless-ngx/paperless-ngx/pull/1903))
- Bump angular packages as bundle [@dependabot](https://github.com/dependabot) ([#1910](https://github.com/paperless-ngx/paperless-ngx/pull/1910))
- Bump ngx-ui-tour-ng-bootstrap from 11.0.0 to 11.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1911](https://github.com/paperless-ngx/paperless-ngx/pull/1911))
- Bump jest-environment-jsdom from 29.1.2 to 29.2.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1914](https://github.com/paperless-ngx/paperless-ngx/pull/1914))
- Feature: Add more file name formatting options [@stumpylog](https://github.com/stumpylog) ([#1906](https://github.com/paperless-ngx/paperless-ngx/pull/1906))
- Bump pillow from 9.2.0 to 9.3.0 [@dependabot](https://github.com/dependabot) ([#1904](https://github.com/paperless-ngx/paperless-ngx/pull/1904))
- Bump pytest from 7.1.3 to 7.2.0 [@dependabot](https://github.com/dependabot) ([#1902](https://github.com/paperless-ngx/paperless-ngx/pull/1902))
- Bump tox from 3.26.0 to 3.27.0 [@dependabot](https://github.com/dependabot) ([#1901](https://github.com/paperless-ngx/paperless-ngx/pull/1901))
- directly use rapidfuzz [@maxbachmann](https://github.com/maxbachmann) ([#1899](https://github.com/paperless-ngx/paperless-ngx/pull/1899))
- Feature: 1.9.2 UI tweaks [@shamoon](https://github.com/shamoon) ([#1886](https://github.com/paperless-ngx/paperless-ngx/pull/1886))
- Bump zipp from 3.9.0 to 3.10.0 [@dependabot](https://github.com/dependabot) ([#1860](https://github.com/paperless-ngx/paperless-ngx/pull/1860))
- Fix: independent control of saved views [@shamoon](https://github.com/shamoon) ([#1868](https://github.com/paperless-ngx/paperless-ngx/pull/1868))
- Fix: frontend relative date searches [@shamoon](https://github.com/shamoon) ([#1865](https://github.com/paperless-ngx/paperless-ngx/pull/1865))
- Django error W003 - MariaDB may not allow unique CharFields to have a max_length > 255. [@Sblop](https://github.com/Sblop) ([#1881](https://github.com/paperless-ngx/paperless-ngx/pull/1881))
- Bump pytest-env from 0.6.2 to 0.8.1 [@dependabot](https://github.com/dependabot) ([#1859](https://github.com/paperless-ngx/paperless-ngx/pull/1859))
- Fix: Allows configuring barcodes with pdf2image instead of pikepdf [@stumpylog](https://github.com/stumpylog) ([#1857](https://github.com/paperless-ngx/paperless-ngx/pull/1857))
- Feature: Save pending tasks for frontend [@stumpylog](https://github.com/stumpylog) ([#1816](https://github.com/paperless-ngx/paperless-ngx/pull/1816))
- Bugfix: Reverts the change around skip_noarchive [@stumpylog](https://github.com/stumpylog) ([#1829](https://github.com/paperless-ngx/paperless-ngx/pull/1829))
- Bump sphinx from 5.2.3 to 5.3.0 [@dependabot](https://github.com/dependabot) ([#1817](https://github.com/paperless-ngx/paperless-ngx/pull/1817))
- Fix: missing loadViewConfig breaks loading saved view [@shamoon](https://github.com/shamoon) ([#1792](https://github.com/paperless-ngx/paperless-ngx/pull/1792))
- Bugfix: Fallback to pdf2image if pikepdf fails [@stumpylog](https://github.com/stumpylog) ([#1745](https://github.com/paperless-ngx/paperless-ngx/pull/1745))
- Fix: creating new storage path on document edit fails to update menu [@shamoon](https://github.com/shamoon) ([#1777](https://github.com/paperless-ngx/paperless-ngx/pull/1777))
- Chore: Python library update + test fixes [@stumpylog](https://github.com/stumpylog) ([#1773](https://github.com/paperless-ngx/paperless-ngx/pull/1773))
- Feature: Improved processing for automatic matching [@stumpylog](https://github.com/stumpylog) ([#1609](https://github.com/paperless-ngx/paperless-ngx/pull/1609))
- Feature: Transition to celery for background tasks [@stumpylog](https://github.com/stumpylog) ([#1648](https://github.com/paperless-ngx/paperless-ngx/pull/1648))
- Feature: UI Welcome Tour [@shamoon](https://github.com/shamoon) ([#1644](https://github.com/paperless-ngx/paperless-ngx/pull/1644))
- Feature: slim sidebar [@shamoon](https://github.com/shamoon) ([#1641](https://github.com/paperless-ngx/paperless-ngx/pull/1641))
- Bugfix: Files containing barcodes uploaded via web are not consumed after splitting [@stumpylog](https://github.com/stumpylog) ([#1762](https://github.com/paperless-ngx/paperless-ngx/pull/1762))
- change default matching algo to auto and move to constant [@NiFNi](https://github.com/NiFNi) ([#1754](https://github.com/paperless-ngx/paperless-ngx/pull/1754))
- Bugfix: Fix email labeling for non-Gmail servers [@stumpylog](https://github.com/stumpylog) ([#1755](https://github.com/paperless-ngx/paperless-ngx/pull/1755))
- Feature: frontend update checking settings [@shamoon](https://github.com/shamoon) ([#1692](https://github.com/paperless-ngx/paperless-ngx/pull/1692))
- Fix: allow preview for .csv files [@shamoon](https://github.com/shamoon) ([#1744](https://github.com/paperless-ngx/paperless-ngx/pull/1744))
- Bump myst-parser from 0.18.0 to 0.18.1 [@dependabot](https://github.com/dependabot) ([#1738](https://github.com/paperless-ngx/paperless-ngx/pull/1738))
- Bugfix: csv recognition by consumer [@bin101](https://github.com/bin101) ([#1726](https://github.com/paperless-ngx/paperless-ngx/pull/1726))
- Bugfix: Include document title when a duplicate is detected [@stumpylog](https://github.com/stumpylog) ([#1696](https://github.com/paperless-ngx/paperless-ngx/pull/1696))
- Bump rxjs from 7.5.6 to 7.5.7 in /src-ui [@dependabot](https://github.com/dependabot) ([#1720](https://github.com/paperless-ngx/paperless-ngx/pull/1720))
- Bump uuid from 8.3.2 to 9.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1716](https://github.com/paperless-ngx/paperless-ngx/pull/1716))
- Bump ng2-pdf-viewer from 9.1.0 to 9.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1717](https://github.com/paperless-ngx/paperless-ngx/pull/1717))
- Bump ngx-color from 8.0.2 to 8.0.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1715](https://github.com/paperless-ngx/paperless-ngx/pull/1715))
- Bump concurrently from 7.3.0 to 7.4.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1719](https://github.com/paperless-ngx/paperless-ngx/pull/1719))
- Bump [@<!---->types/node from 18.7.14 to 18.7.23 in /src-ui @dependabot](https://github.com/<!---->types/node from 18.7.14 to 18.7.23 in /src-ui @dependabot) ([#1718](https://github.com/paperless-ngx/paperless-ngx/pull/1718))
- Bump jest-environment-jsdom from 29.0.1 to 29.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1714](https://github.com/paperless-ngx/paperless-ngx/pull/1714))
- Bump [@<!---->angular/cli @<!---->angular/core @dependabot](https://github.com/<!---->angular/cli @<!---->angular/core @dependabot) ([#1708](https://github.com/paperless-ngx/paperless-ngx/pull/1708))
- Bump cypress from 10.7.0 to 10.9.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1707](https://github.com/paperless-ngx/paperless-ngx/pull/1707))
- Bump bootstrap from 5.2.0 to 5.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1710](https://github.com/paperless-ngx/paperless-ngx/pull/1710))
- Bump typescript from 4.7.4 to 4.8.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1706](https://github.com/paperless-ngx/paperless-ngx/pull/1706))
- Bugfix: Set MySql charset [@stumpylog](https://github.com/stumpylog) ([#1687](https://github.com/paperless-ngx/paperless-ngx/pull/1687))
## paperless-ngx 1.9.2
### Bug Fixes

View File

@@ -44,6 +44,39 @@ describe('tasks', () => {
})
})
it('should correctly switch between task tabs', () => {
cy.get('tbody').find('tr:visible').its('length').should('eq', 10) // double because collapsible result tr
cy.wait(500) // stabilizes the test, for some reason...
cy.get('app-tasks')
.find('a:visible')
.contains('Queued')
.first()
.click()
.wait(2000)
.then(() => {
cy.get('tbody').find('tr:visible').should('not.exist')
})
cy.get('app-tasks')
.find('a:visible')
.contains('Started')
.first()
.click()
.wait(2000)
.then(() => {
cy.get('tbody').find('tr:visible').its('length').should('eq', 2) // double because collapsible result tr
})
cy.get('app-tasks')
.find('a:visible')
.contains('Complete')
.first()
.click()
.wait('@tasks')
.wait(2000)
.then(() => {
cy.get('tbody').find('tr:visible').its('length').should('eq', 12) // double because collapsible result tr
})
})
it('should allow toggling all tasks in list and warn on dismiss', () => {
cy.get('thead').find('input[type="checkbox"]').first().click()
cy.get('body').find('button').contains('Dismiss selected').first().click()

File diff suppressed because one or more lines are too long

2907
src-ui/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -23,22 +23,22 @@
"@angular/router": "~14.2.8",
"@ng-bootstrap/ng-bootstrap": "^13.0.0",
"@ng-select/ng-select": "^9.0.2",
"@ngneat/dirty-check-forms": "^3.0.2",
"@ngneat/dirty-check-forms": "^3.0.3",
"@popperjs/core": "^2.11.6",
"bootstrap": "^5.2.1",
"file-saver": "^2.0.5",
"ng2-pdf-viewer": "^9.1.2",
"ngx-color": "^8.0.3",
"ngx-cookie-service": "^14.0.1",
"ngx-file-drop": "^14.0.1",
"ngx-file-drop": "^14.0.2",
"ngx-ui-tour-ng-bootstrap": "^11.1.0",
"rxjs": "~7.5.7",
"tslib": "^2.3.1",
"tslib": "^2.4.1",
"uuid": "^9.0.0",
"zone.js": "~0.11.8"
},
"devDependencies": {
"@angular-builders/jest": "14.0.1",
"@angular-builders/jest": "14.1.0",
"@angular-devkit/build-angular": "~14.2.7",
"@angular/cli": "~14.2.7",
"@angular/compiler-cli": "~14.2.8",
@@ -48,7 +48,7 @@
"concurrently": "7.4.0",
"jest": "28.1.3",
"jest-environment-jsdom": "^29.2.2",
"jest-preset-angular": "^12.2.2",
"jest-preset-angular": "^12.2.3",
"ts-node": "~10.9.1",
"tslint": "~6.1.3",
"typescript": "~4.8.4",

View File

@@ -56,14 +56,14 @@
<td class="overflow-auto">{{ task.task_file_name }}</td>
<td class="d-none d-lg-table-cell">{{ task.date_created | customDate:'short' }}</td>
<td class="d-none d-lg-table-cell" *ngIf="activeTab != 'started' && activeTab != 'queued'">
<div *ngIf="task.result.length > 50" class="result" (click)="expandTask(task); $event.stopPropagation();"
<div *ngIf="task.result?.length > 50" class="result" (click)="expandTask(task); $event.stopPropagation();"
[ngbPopover]="resultPopover" popoverClass="shadow small mobile" triggers="mouseenter:mouseleave" container="body">
<span class="small d-none d-md-inline-block font-monospace text-muted">{{ task.result | slice:0:50 }}&hellip;</span>
</div>
<span *ngIf="task.result.length <= 50" class="small d-none d-md-inline-block font-monospace text-muted">{{ task.result }}</span>
<span *ngIf="task.result?.length <= 50" class="small d-none d-md-inline-block font-monospace text-muted">{{ task.result }}</span>
<ng-template #resultPopover>
<pre class="small mb-0">{{ task.result | slice:0:300 }}<ng-container *ngIf="task.result.length > 300">&hellip;</ng-container></pre>
<ng-container *ngIf="task.result.length > 300"><br/><em>(<ng-container i18n>click for full output</ng-container>)</em></ng-container>
<ng-container *ngIf="task.result?.length > 300"><br/><em>(<ng-container i18n>click for full output</ng-container>)</em></ng-container>
</ng-template>
</td>
<td class="d-lg-none">

View File

@@ -25,9 +25,9 @@ export interface PaperlessTask extends ObjectWithId {
date_created: Date
done?: Date
date_done?: Date
result: string
result?: string
related_document?: number
}

View File

@@ -5,7 +5,7 @@ export const environment = {
apiBaseUrl: document.baseURI + 'api/',
apiVersion: '2',
appTitle: 'Paperless-ngx',
version: '1.10.0',
version: '1.10.1',
webSocketHost: window.location.host,
webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:',
webSocketBaseUrl: base_url.pathname + 'ws/',

File diff suppressed because it is too large Load Diff

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Працягнуць</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">Паўтор аперацыі OCR пачнецца ў фонавым рэжыме.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Fortfahren</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">Die erneute Texterkennung wird im Hintergrund gestartet.</target>
<target state="translated">OCR-Vorgang wird im Hintergrund neu gestartet. Schließen oder laden Sie dieses Dokument nach Abschluss der Operation neu oder öffnen Sie es erneut, um neue Inhalte anzuzeigen.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Continuar</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">La operación de rehacer OCR comenzará en segundo plano.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Jatka</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">Tee OCR uudelleen -operaatio alkaa taustalla.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Continuer</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">La relance de la ROC commencera en arrière-plan.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Procedi</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">L'operazione di rilettura OCR inizierà in background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -445,7 +445,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">211</context>
</context-group>
<target state="needs-translation">Thank you! 🙏</target>
<target state="translated">Merci! 🙏</target>
</trans-unit>
<trans-unit id="7354947513482088740" datatype="html">
<source>There are &lt;em&gt;tons&lt;/em&gt; more features and info we didn&apos;t cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues.</source>
@@ -682,7 +682,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target state="needs-translation">File Tasks</target>
<target state="translated">Datei Jobs</target>
</trans-unit>
<trans-unit id="5537285341303594392" datatype="html">
<source>File Tasks<x id="START_TAG_SPAN_1" ctype="x-span_1" equiv-text="&lt;span *ngIf=&quot;tasksService.failedFileTasks.length &gt; 0&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;badge bg-danger ms-2&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.failedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>
@@ -1599,7 +1599,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html</context>
<context context-type="linenumber">3</context>
</context-group>
<target state="needs-translation">Paperless-ngx is running!</target>
<target state="translated">Paperless-ngx leeft!</target>
</trans-unit>
<trans-unit id="3326049540711826572" datatype="html">
<source>You&apos;re ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below.</source>
@@ -1631,7 +1631,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html</context>
<context context-type="linenumber">9</context>
</context-group>
<target state="needs-translation">Start the tour</target>
<target state="translated">Tour starten</target>
</trans-unit>
<trans-unit id="7822640317427130239" datatype="html" approved="yes">
<source>Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></source>
@@ -1647,7 +1647,7 @@
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
<target state="translated">Kommentar antippen</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
@@ -1655,7 +1655,7 @@
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
<target state="translated"> Tipp en Kommentar an. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
@@ -1663,7 +1663,7 @@
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation">Add comment</target>
<target state="translated">Kommentar bäifügen</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
@@ -1971,7 +1971,7 @@
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="needs-translation">Original filename</target>
<target state="translated">Original Dateinumm</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html" approved="yes">
<source>Original MD5 checksum</source>
@@ -2051,7 +2051,7 @@
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">154</context>
</context-group>
<target state="needs-translation">Comments</target>
<target state="translated">Kommentaren</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html" approved="yes">
<source>Discard</source>
@@ -2159,15 +2159,15 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
<target state="translated">Weider</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
@@ -3201,7 +3201,7 @@
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<target state="needs-translation">Start tour</target>
<target state="translated">Tour starten</target>
</trans-unit>
<trans-unit id="6439365426343089851" datatype="html">
<source>General</source>
@@ -3313,7 +3313,7 @@
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Sidebar</target>
<target state="translated">Saiteläischt</target>
</trans-unit>
<trans-unit id="4608457133854405683" datatype="html">
<source>Use &apos;slim&apos; sidebar (icons only)</source>
@@ -3321,7 +3321,7 @@
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Use 'slim' sidebar (icons only)</target>
<target state="translated">Schmuel Saiteläischt benotzen (nëmmen Ikonen)</target>
</trans-unit>
<trans-unit id="1356890996281769972" datatype="html" approved="yes">
<source>Dark mode</source>
@@ -3377,7 +3377,7 @@
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">130</context>
</context-group>
<target state="needs-translation">Update checking</target>
<target state="translated">Aktualiséierungs Kontroll</target>
</trans-unit>
<trans-unit id="7890007688616707209" datatype="html">
<source> Update checking works by pinging the the public <x id="START_LINK" ctype="x-a" equiv-text="&lt;a href=&quot;https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;"/>Github API<x id="CLOSE_LINK" ctype="x-a" equiv-text="&lt;/a&gt;"/> for the latest release to determine whether a new version is available.<x id="LINE_BREAK" ctype="lb" equiv-text="&lt;br/&gt;"/> Actual updating of the app must still be performed manually. </source>
@@ -3401,7 +3401,7 @@
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
</context-group>
<target state="needs-translation">Enable update checking</target>
<target state="translated">Aktualiséierungs Kontroll aschalten</target>
</trans-unit>
<trans-unit id="5478370193831195440" datatype="html">
<source>Note that for users of thirdy-party containers e.g. linuxserver.io this notification may be &apos;ahead&apos; of the current third-party release.</source>
@@ -3449,7 +3449,7 @@
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="needs-translation">Enable comments</target>
<target state="translated">Kommentaren erlaben</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html" approved="yes">
<source>Notifications</source>
@@ -3695,7 +3695,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
<context context-type="linenumber">86</context>
</context-group>
<target state="needs-translation">Open Document</target>
<target state="translated">Dokument opmaachen</target>
</trans-unit>
<trans-unit id="6798650225457993016" datatype="html">
<source>Failed <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span *ngIf=&quot;tasksService.failedFileTasks.length &gt; 0&quot; class=&quot;badge bg-danger ms-1&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.failedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>
@@ -3939,7 +3939,7 @@
<context context-type="sourcefile">src/app/guards/dirty-saved-view.guard.ts</context>
<context context-type="linenumber">34</context>
</context-group>
<target state="needs-translation">Save and close</target>
<target state="translated">Späicheren an zoumaachen</target>
</trans-unit>
<trans-unit id="7536524521722799066" datatype="html" approved="yes">
<source>(no title)</source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Fortsett</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Nadaljuj</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">Ponovna izdelava OCR operacije se bo izvedla v ozadju.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -313,7 +313,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html</context>
<context context-type="linenumber">45</context>
</context-group>
<target state="translated">Otvoreni dokument</target>
<target state="translated">Otvori dokument</target>
</trans-unit>
<trans-unit id="8582620835547864448" datatype="html">
<source>Could not add <x id="PH" equiv-text="status.filename"/>: <x id="PH_1" equiv-text="status.message"/></source>
@@ -373,7 +373,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">126</context>
</context-group>
<target state="translated">Kontrolna tabla se može koristiti za prikazivanje sačuvanih pogleda, kao što je 'Inbox'. Ta podešavanja se nalaze pod Podešavanja &gt; Sačuvani pogledi kada budete kreirali neke.</target>
<target state="translated">Kontrolna tabla se može koristiti za prikazivanje sačuvanih pogleda, kao što je 'Inbox'. Kada kreirate neke poglede ta podešavanja će se nalazati pod Podešavanja &gt; Sačuvani pogledi.</target>
</trans-unit>
<trans-unit id="9075755296812854717" datatype="html">
<source>Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms.</source>
@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Nastavi</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">Operacija ponovnog OCR će započeti u pozadini.</target>
<target state="translated">Ponovna OCR operacija će početi u pozadini. Zatvorite i ponovo otvorite ili ponovo učitajte ovaj dokument nakon što se operacija završi da biste videli novi sadržaj.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
@@ -3695,7 +3695,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
<context context-type="linenumber">86</context>
</context-group>
<target state="translated">Otvoreni dokument</target>
<target state="translated">Otvori dokument</target>
</trans-unit>
<trans-unit id="6798650225457993016" datatype="html">
<source>Failed <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span *ngIf=&quot;tasksService.failedFileTasks.length &gt; 0&quot; class=&quot;badge bg-danger ms-1&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.failedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">Devam et</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -2161,13 +2161,13 @@
</context-group>
<target state="translated">继续操作</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<trans-unit id="5729001209753056399" datatype="html">
<source>Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
<target state="needs-translation">Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>

View File

@@ -447,7 +447,8 @@ def update_filename_and_move_files(sender, instance, **kwargs):
archive_filename=instance.archive_filename,
)
except (OSError, DatabaseError, CannotMoveFilesException):
except (OSError, DatabaseError, CannotMoveFilesException) as e:
logger.warn(f"Exception during file handling: {e}")
# This happens when either:
# - moving the files failed due to file system errors
# - saving to the database failed due to database errors
@@ -456,9 +457,11 @@ def update_filename_and_move_files(sender, instance, **kwargs):
# Try to move files to their original location.
try:
if move_original and os.path.isfile(instance.source_path):
logger.info("Restoring previous original path")
os.rename(instance.source_path, old_source_path)
if move_archive and os.path.isfile(instance.archive_path):
logger.info("Restoring previous archive path")
os.rename(instance.archive_path, old_archive_path)
except Exception:
@@ -468,7 +471,7 @@ def update_filename_and_move_files(sender, instance, **kwargs):
# issue that's going to get caught by the santiy checker.
# All files remain in place and will never be overwritten,
# so this is not the end of the world.
# B: if moving the orignal file failed, nothing has changed
# B: if moving the original file failed, nothing has changed
# anyway.
pass

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-09 21:50+0000\n"
"PO-Revision-Date: 2022-11-09 23:11\n"
"PO-Revision-Date: 2022-11-29 08:29\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -184,11 +184,11 @@ msgstr "Gjeldende arkiv filnavn i lagring"
#: documents/models.py:221
msgid "original filename"
msgstr ""
msgstr "opprinnelig filnavn"
#: documents/models.py:227
msgid "The original name of the file when it was uploaded"
msgstr ""
msgstr "Det opprinnelige filnavnet da den ble lastet opp"
#: documents/models.py:231
msgid "archive serial number"
@@ -368,15 +368,15 @@ msgstr "har tags i"
#: documents/models.py:410
msgid "ASN greater than"
msgstr ""
msgstr "ASN større enn"
#: documents/models.py:411
msgid "ASN less than"
msgstr ""
msgstr "ASN mindre enn"
#: documents/models.py:412
msgid "storage path is"
msgstr ""
msgstr "lagringssti er"
#: documents/models.py:422
msgid "rule type"
@@ -396,31 +396,31 @@ msgstr "filtrer regler"
#: documents/models.py:536
msgid "Task ID"
msgstr ""
msgstr "Oppgave ID"
#: documents/models.py:537
msgid "Celery ID for the Task that was run"
msgstr ""
msgstr "Celery ID for oppgaven som ble kjørt"
#: documents/models.py:542
msgid "Acknowledged"
msgstr ""
msgstr "Bekreftet"
#: documents/models.py:543
msgid "If the task is acknowledged via the frontend or API"
msgstr ""
msgstr "Hvis oppgaven bekreftes via frontend eller API"
#: documents/models.py:549 documents/models.py:556
msgid "Task Name"
msgstr ""
msgstr "Oppgavenavn"
#: documents/models.py:550
msgid "Name of the file which the Task was run for"
msgstr ""
msgstr "Navn på filen som oppgaven ble kjørt for"
#: documents/models.py:557
msgid "Name of the Task which was run"
msgstr ""
msgstr "Navn på Oppgaven som ble kjørt"
#: documents/models.py:562
msgid "Task Positional Arguments"

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-09 21:50+0000\n"
"PO-Revision-Date: 2022-11-09 23:11\n"
"PO-Revision-Date: 2022-11-28 16:30\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -184,11 +184,11 @@ msgstr "Aktualna nazwa pliku archiwum w pamięci"
#: documents/models.py:221
msgid "original filename"
msgstr ""
msgstr "oryginalna nazwa pliku"
#: documents/models.py:227
msgid "The original name of the file when it was uploaded"
msgstr ""
msgstr "Oryginalna nazwa pliku, gdy został przesłany"
#: documents/models.py:231
msgid "archive serial number"
@@ -368,15 +368,15 @@ msgstr "ma znaczniki w"
#: documents/models.py:410
msgid "ASN greater than"
msgstr ""
msgstr "ASN większy niż"
#: documents/models.py:411
msgid "ASN less than"
msgstr ""
msgstr "ASN mniejszy niż"
#: documents/models.py:412
msgid "storage path is"
msgstr ""
msgstr "ścieżką przechowywania jest"
#: documents/models.py:422
msgid "rule type"
@@ -396,23 +396,23 @@ msgstr "reguły filtrowania"
#: documents/models.py:536
msgid "Task ID"
msgstr ""
msgstr "ID zadania"
#: documents/models.py:537
msgid "Celery ID for the Task that was run"
msgstr ""
msgstr "ID Celery dla zadania, które zostało uruchomione"
#: documents/models.py:542
msgid "Acknowledged"
msgstr ""
msgstr "Potwierdzono"
#: documents/models.py:543
msgid "If the task is acknowledged via the frontend or API"
msgstr ""
msgstr "Jeśli zadanie jest potwierdzone przez frontend lub API"
#: documents/models.py:549 documents/models.py:556
msgid "Task Name"
msgstr ""
msgstr "Nazwa zadania"
#: documents/models.py:550
msgid "Name of the file which the Task was run for"
@@ -440,7 +440,7 @@ msgstr ""
#: documents/models.py:578
msgid "Task State"
msgstr ""
msgstr "Stan zadania"
#: documents/models.py:579
msgid "Current state of the task being run"
@@ -476,19 +476,19 @@ msgstr ""
#: documents/models.py:604
msgid "The data returned by the task"
msgstr ""
msgstr "Dane zwrócone przez zadanie"
#: documents/models.py:613
msgid "Comment for the document"
msgstr ""
msgstr "Komentarz do dokumentu"
#: documents/models.py:642
msgid "comment"
msgstr ""
msgstr "komentarz"
#: documents/models.py:643
msgid "comments"
msgstr ""
msgstr "komentarze"
#: documents/serialisers.py:72
#, python-format

View File

@@ -1,7 +1,7 @@
from typing import Final
from typing import Tuple
__version__: Final[Tuple[int, int, int]] = (1, 10, 0)
__version__: Final[Tuple[int, int, int]] = (1, 10, 1)
# Version string like X.Y.Z
__full_version_str__: Final[str] = ".".join(map(str, __version__))
# Version string like X.Y

View File

@@ -1,3 +1,4 @@
import shutil
import subprocess
from django.conf import settings
@@ -7,10 +8,16 @@ from django.core.checks import Warning
def get_tesseract_langs():
with subprocess.Popen(["tesseract", "--list-langs"], stdout=subprocess.PIPE) as p:
stdout, stderr = p.communicate()
proc = subprocess.run(
[shutil.which("tesseract"), "--list-langs"],
capture_output=True,
)
return stdout.decode().strip().split("\n")[1:]
# Decode bytes to string, split on newlines, trim out the header
proc_lines = proc.stdout.decode("utf8", errors="ignore").strip().split("\n")[1:]
# Replace _ with - to convert two part languages to the expected code
return [x.replace("_", "-") for x in proc_lines]
@register()

View File

@@ -66,6 +66,7 @@ class RasterisedDocumentParser(DocumentParser):
"image/tiff",
"image/bmp",
"image/gif",
"image/webp",
]
def has_alpha(self, image):

View File

@@ -15,5 +15,6 @@ def tesseract_consumer_declaration(sender, **kwargs):
"image/tiff": ".tif",
"image/gif": ".gif",
"image/bmp": ".bmp",
"image/webp": ".webp",
},
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -597,23 +597,34 @@ class TestParserFileTypes(DirectoriesMixin, TestCase):
parser = RasterisedDocumentParser(None)
parser.parse(os.path.join(self.SAMPLE_FILES, "simple.bmp"), "image/bmp")
self.assertTrue(os.path.isfile(parser.archive_path))
self.assertTrue("this is a test document" in parser.get_text().lower())
self.assertIn("this is a test document", parser.get_text().lower())
def test_jpg(self):
parser = RasterisedDocumentParser(None)
parser.parse(os.path.join(self.SAMPLE_FILES, "simple.jpg"), "image/jpeg")
self.assertTrue(os.path.isfile(parser.archive_path))
self.assertTrue("this is a test document" in parser.get_text().lower())
self.assertIn("this is a test document", parser.get_text().lower())
@override_settings(OCR_IMAGE_DPI=200)
def test_gif(self):
parser = RasterisedDocumentParser(None)
parser.parse(os.path.join(self.SAMPLE_FILES, "simple.gif"), "image/gif")
self.assertTrue(os.path.isfile(parser.archive_path))
self.assertTrue("this is a test document" in parser.get_text().lower())
self.assertIn("this is a test document", parser.get_text().lower())
def test_tiff(self):
parser = RasterisedDocumentParser(None)
parser.parse(os.path.join(self.SAMPLE_FILES, "simple.tif"), "image/tiff")
self.assertTrue(os.path.isfile(parser.archive_path))
self.assertTrue("this is a test document" in parser.get_text().lower())
self.assertIn("this is a test document", parser.get_text().lower())
@override_settings(OCR_IMAGE_DPI=72)
def test_webp(self):
parser = RasterisedDocumentParser(None)
parser.parse(os.path.join(self.SAMPLE_FILES, "document.webp"), "image/webp")
self.assertTrue(os.path.isfile(parser.archive_path))
# OCR consistent mangles this space, oh well
self.assertIn(
"this is awebp document, created 11/14/2022.",
parser.get_text().lower(),
)