mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-17 10:13:56 -05:00
Merge branch 'dev' into travis-multiarch-builds
This commit is contained in:
commit
e3478edeeb
@ -45,6 +45,7 @@ RUN apt-get update \
|
|||||||
libqpdf-dev \
|
libqpdf-dev \
|
||||||
libxml2 \
|
libxml2 \
|
||||||
libxslt1-dev \
|
libxslt1-dev \
|
||||||
|
mime-support \
|
||||||
optipng \
|
optipng \
|
||||||
pngquant \
|
pngquant \
|
||||||
qpdf \
|
qpdf \
|
||||||
|
11
README.md
11
README.md
@ -56,6 +56,9 @@ For a complete list of changes from paperless, check out the [changelog](https:/
|
|||||||
|
|
||||||
- Make the front end nice (except mobile).
|
- Make the front end nice (except mobile).
|
||||||
- Fix whatever bugs I and you find.
|
- Fix whatever bugs I and you find.
|
||||||
|
- Start using CI to build the app.
|
||||||
|
- Simplify updates.
|
||||||
|
- Make the documentation nice.
|
||||||
|
|
||||||
## Roadmap for versions beyond 1.0
|
## Roadmap for versions beyond 1.0
|
||||||
|
|
||||||
@ -64,12 +67,10 @@ These are things that I want to add to paperless eventually. They are sorted by
|
|||||||
- **More search.** The search backend is incredibly versatile and customizable. Searching is the most important feature of this project and thus, I want to implement things like:
|
- **More search.** The search backend is incredibly versatile and customizable. Searching is the most important feature of this project and thus, I want to implement things like:
|
||||||
- Group and limit search results by correspondent, show “more from this” links in the results.
|
- Group and limit search results by correspondent, show “more from this” links in the results.
|
||||||
- **Nested tags**. Organize tags in a hierarchical structure. This will combine the benefits of folders and tags in one coherent system.
|
- **Nested tags**. Organize tags in a hierarchical structure. This will combine the benefits of folders and tags in one coherent system.
|
||||||
- **Localization.** I won't translate paperless into any other languages except English and German, however, I'll add the necessary means so that anyone can translate paperless into their favorite language.
|
|
||||||
- **An interactive consumer** that shows its progress for documents it processes on the web page.
|
- **An interactive consumer** that shows its progress for documents it processes on the web page.
|
||||||
- With live updates and websockets. This already works on a dev branch, but requires a lot of new dependencies, which I'm not particularly happy about.
|
- With live updates and websockets. This already works on a dev branch, but requires a lot of new dependencies, which I'm not particularly happy about.
|
||||||
- Notifications when a document was added with buttons to open the new document right away.
|
- Notifications when a document was added with buttons to open the new document right away.
|
||||||
- **Arbitrary tag colors**. Allow the selection of any color with a color picker.
|
- **Arbitrary tag colors**. Allow the selection of any color with a color picker.
|
||||||
- **More file types**. Possibly allow more file types to be processed by paperless, such as office .odt, .doc and .docx documents.
|
|
||||||
|
|
||||||
Apart from that, paperless is pretty much feature complete.
|
Apart from that, paperless is pretty much feature complete.
|
||||||
|
|
||||||
@ -102,6 +103,12 @@ Read the section about [migration](https://paperless-ng.readthedocs.io/en/latest
|
|||||||
|
|
||||||
The documentation for Paperless-ng is available on [ReadTheDocs](https://paperless-ng.readthedocs.io/).
|
The documentation for Paperless-ng is available on [ReadTheDocs](https://paperless-ng.readthedocs.io/).
|
||||||
|
|
||||||
|
# Translation
|
||||||
|
|
||||||
|
Paperless is currently available in English, German, Dutch and French. Translation is coordinated at transifex: https://www.transifex.com/paperless/paperless-ng
|
||||||
|
|
||||||
|
If you want to see paperless in your own language, request that language at transifex and you can start translating after I approve the language.
|
||||||
|
|
||||||
# Suggestions? Questions? Something not working?
|
# Suggestions? Questions? Something not working?
|
||||||
|
|
||||||
Please open an issue and start a discussion about it!
|
Please open an issue and start a discussion about it!
|
||||||
|
@ -5,6 +5,12 @@
|
|||||||
Changelog
|
Changelog
|
||||||
*********
|
*********
|
||||||
|
|
||||||
|
paperless-ng 0.9.13
|
||||||
|
###################
|
||||||
|
|
||||||
|
* Fixed an issue with Paperless not starting due to the new Tika integration when ``USERMAP_UID`` and ``USERMAP_GID`` was used
|
||||||
|
in the ``docker-compose.env`` file.
|
||||||
|
|
||||||
paperless-ng 0.9.12
|
paperless-ng 0.9.12
|
||||||
###################
|
###################
|
||||||
|
|
||||||
|
@ -294,9 +294,6 @@ converting "Office" documents (such as ".doc", ".xlsx" and ".odt"). If you
|
|||||||
wish to use this, you must provide a Tika server and a Gotenberg server,
|
wish to use this, you must provide a Tika server and a Gotenberg server,
|
||||||
configure their endpoints, and enable the feature.
|
configure their endpoints, and enable the feature.
|
||||||
|
|
||||||
If you run paperless on docker, you can add those services to the docker-compose
|
|
||||||
file (see the examples provided).
|
|
||||||
|
|
||||||
PAPERLESS_TIKA_ENABLED=<bool>
|
PAPERLESS_TIKA_ENABLED=<bool>
|
||||||
Enable (or disable) the Tika parser.
|
Enable (or disable) the Tika parser.
|
||||||
|
|
||||||
@ -312,6 +309,40 @@ PAPERLESS_TIKA_GOTENBERG_ENDPOINT=<url>
|
|||||||
|
|
||||||
Defaults to "http://localhost:3000".
|
Defaults to "http://localhost:3000".
|
||||||
|
|
||||||
|
If you run paperless on docker, you can add those services to the docker-compose
|
||||||
|
file (see the provided ``docker-compose.tika.yml`` file for reference). The changes
|
||||||
|
requires are as follows:
|
||||||
|
|
||||||
|
.. code:: yaml
|
||||||
|
|
||||||
|
services:
|
||||||
|
# ...
|
||||||
|
|
||||||
|
webserver:
|
||||||
|
# ...
|
||||||
|
|
||||||
|
environment:
|
||||||
|
# ...
|
||||||
|
|
||||||
|
PAPERLESS_TIKA_ENABLED: 1
|
||||||
|
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
||||||
|
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||||
|
|
||||||
|
# ...
|
||||||
|
|
||||||
|
gotenberg:
|
||||||
|
image: thecodingmachine/gotenberg
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
DISABLE_GOOGLE_CHROME: 1
|
||||||
|
|
||||||
|
tika:
|
||||||
|
image: apache/tika
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
Add the configuration variables to the environment of the webserver (alternatively
|
||||||
|
put the configuration in the ``docker-compose.env`` file) and add the additional
|
||||||
|
services below the webserver service. Watch out for indentation.
|
||||||
|
|
||||||
Software tweaks
|
Software tweaks
|
||||||
###############
|
###############
|
||||||
|
@ -113,7 +113,7 @@
|
|||||||
background-color: rgba(0, 0, 0, 0.15);
|
background-color: rgba(0, 0, 0, 0.15);
|
||||||
padding-left: 1.8rem;
|
padding-left: 1.8rem;
|
||||||
border-color: rgba(255, 255, 255, 0.2);
|
border-color: rgba(255, 255, 255, 0.2);
|
||||||
transition: flex 0.3s ease;
|
transition: all .3s ease, padding-left 0s ease, background-color 0s ease; // Safari requires all
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
min-width: 300px; // 1/2 max
|
min-width: 300px; // 1/2 max
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,7 +1,8 @@
|
|||||||
table {
|
table {
|
||||||
overflow-wrap: anywhere;
|
overflow-wrap: anywhere;
|
||||||
|
table-layout: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
th:first-child {
|
th:first-child {
|
||||||
min-width: 5rem;
|
width: 25%;
|
||||||
}
|
}
|
||||||
|
@ -43,13 +43,13 @@
|
|||||||
<path fill-rule="evenodd" d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5L13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175l-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
|
<path fill-rule="evenodd" d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5L13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175l-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
|
||||||
</svg> <ng-container i18n>Edit</ng-container>
|
</svg> <ng-container i18n>Edit</ng-container>
|
||||||
</a>
|
</a>
|
||||||
<a type="button" class="btn btn-sm btn-outline-secondary" [href]="getPreviewUrl()">
|
<a class="btn btn-sm btn-outline-secondary" [href]="getPreviewUrl()">
|
||||||
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-search" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-search" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path fill-rule="evenodd" d="M10.442 10.442a1 1 0 0 1 1.415 0l3.85 3.85a1 1 0 0 1-1.414 1.415l-3.85-3.85a1 1 0 0 1 0-1.415z"/>
|
<path fill-rule="evenodd" d="M10.442 10.442a1 1 0 0 1 1.415 0l3.85 3.85a1 1 0 0 1-1.414 1.415l-3.85-3.85a1 1 0 0 1 0-1.415z"/>
|
||||||
<path fill-rule="evenodd" d="M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0z"/>
|
<path fill-rule="evenodd" d="M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0z"/>
|
||||||
</svg> <ng-container i18n>View</ng-container>
|
</svg> <ng-container i18n>View</ng-container>
|
||||||
</a>
|
</a>
|
||||||
<a type="button" class="btn btn-sm btn-outline-secondary" [href]="getDownloadUrl()">
|
<a class="btn btn-sm btn-outline-secondary" [href]="getDownloadUrl()">
|
||||||
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-download" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-download" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path fill-rule="evenodd" d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"/>
|
<path fill-rule="evenodd" d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"/>
|
||||||
<path fill-rule="evenodd" d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/>
|
<path fill-rule="evenodd" d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/>
|
||||||
|
@ -2,5 +2,5 @@ export const environment = {
|
|||||||
production: true,
|
production: true,
|
||||||
apiBaseUrl: "/api/",
|
apiBaseUrl: "/api/",
|
||||||
appTitle: "Paperless-ng",
|
appTitle: "Paperless-ng",
|
||||||
version: "0.9.12"
|
version: "0.9.13"
|
||||||
};
|
};
|
||||||
|
@ -297,7 +297,8 @@ $border-color-dark-mode: #47494f;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option:hover {
|
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option:hover,
|
||||||
|
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {
|
||||||
background-color: $bg-light-dark-mode;
|
background-color: $bg-light-dark-mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ def _consume(filepath):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if not is_file_ext_supported(os.path.splitext(filepath)[1]):
|
if not is_file_ext_supported(os.path.splitext(filepath)[1]):
|
||||||
logger.debug(
|
logger.warning(
|
||||||
f"Not consuming file {filepath}: Unknown file extension.")
|
f"Not consuming file {filepath}: Unknown file extension.")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -90,7 +90,6 @@ INSTALLED_APPS = [
|
|||||||
"documents.apps.DocumentsConfig",
|
"documents.apps.DocumentsConfig",
|
||||||
"paperless_tesseract.apps.PaperlessTesseractConfig",
|
"paperless_tesseract.apps.PaperlessTesseractConfig",
|
||||||
"paperless_text.apps.PaperlessTextConfig",
|
"paperless_text.apps.PaperlessTextConfig",
|
||||||
"paperless_tika.apps.PaperlessTikaConfig",
|
|
||||||
"paperless_mail.apps.PaperlessMailConfig",
|
"paperless_mail.apps.PaperlessMailConfig",
|
||||||
|
|
||||||
"django.contrib.admin",
|
"django.contrib.admin",
|
||||||
@ -461,6 +460,9 @@ PAPERLESS_TIKA_GOTENBERG_ENDPOINT = os.getenv(
|
|||||||
"PAPERLESS_TIKA_GOTENBERG_ENDPOINT", "http://localhost:3000"
|
"PAPERLESS_TIKA_GOTENBERG_ENDPOINT", "http://localhost:3000"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if PAPERLESS_TIKA_ENABLED:
|
||||||
|
INSTALLED_APPS.append("paperless_tika.apps.PaperlessTikaConfig")
|
||||||
|
|
||||||
# List dates that should be ignored when trying to parse date from document text
|
# List dates that should be ignored when trying to parse date from document text
|
||||||
IGNORE_DATES = set()
|
IGNORE_DATES = set()
|
||||||
for s in os.getenv("PAPERLESS_IGNORE_DATES", "").split(","):
|
for s in os.getenv("PAPERLESS_IGNORE_DATES", "").split(","):
|
||||||
|
@ -1 +1 @@
|
|||||||
__version__ = (0, 9, 12)
|
__version__ = (0, 9, 13)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user