diff --git a/.codecov.yml b/.codecov.yml
index c11db1447..ae8159eb4 100644
--- a/.codecov.yml
+++ b/.codecov.yml
@@ -1,3 +1,17 @@
+codecov:
+ require_ci_to_pass: true
+# https://docs.codecov.com/docs/flags#recommended-automatic-flag-management
+# Require each flag to have 1 upload before notification
+flag_management:
+ default_rules:
+ after_n_builds: 1
+ individual_flags:
+ - name: backend
+ paths:
+ - src/
+ - name: frontend
+ paths:
+ - src-ui/
# https://docs.codecov.com/docs/pull-request-comments
# codecov will only comment if coverage changes
comment:
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 1a652da81..0c9416347 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -20,11 +20,16 @@ NOTE: Please check only one box!
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
-- [ ] Other (please explain)
+- [ ] Other (please explain):
## Checklist:
+
+
- [ ] I have read & agree with the [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/main/CONTRIBUTING.md).
+- [ ] If applicable, I have included testing coverage for new code in this PR, for [backend](https://docs.paperless-ngx.com/development/#testing) and / or [front-end](https://docs.paperless-ngx.com/development/#testing-and-code-style) changes.
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
- [ ] If applicable, I have checked that all tests pass, see [documentation](https://docs.paperless-ngx.com/development/#back-end-development).
- [ ] I have run all `pre-commit` hooks, see [documentation](https://docs.paperless-ngx.com/development/#code-formatting-with-pre-commit-hooks).
diff --git a/Pipfile b/Pipfile
index edb0e46a9..8a4ea03b2 100644
--- a/Pipfile
+++ b/Pipfile
@@ -66,6 +66,7 @@ scipy = "==1.8.1"
reportlab = "==3.6.12"
# Pin this until piwheels is building a newer version (see https://www.piwheels.org/project/cryptography/)
cryptography = "==40.0.1"
+httpx = "*"
[dev-packages]
# Linting
diff --git a/Pipfile.lock b/Pipfile.lock
index 6bf949a7f..e9403c922 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "db3fc8c37931534327f89c6211581495328b6f6bf2c533df848fa23faa5d0cd3"
+ "sha256": "e63cdbb928210fc4dcf0554bde381abd0ff956923ae03ab9f6984025cd5a454d"
},
"pipfile-spec": 6,
"requires": {},
@@ -712,7 +712,7 @@
"sha256:06781eb9ac53cde990577af654bd990a4949de37a28bdb4a230d434f3a30b9bd",
"sha256:5853a43053df830c20f8110c5e69fe44d035d850b2dfe795e196f00fdb774bdd"
],
- "markers": "python_version >= '3.7'",
+ "index": "pypi",
"version": "==0.24.1"
},
"humanfriendly": {
@@ -1746,11 +1746,11 @@
},
"tika-client": {
"hashes": [
- "sha256:29b702d64bbbaa324a75f99062efb3253239762cbf0a3419a47549c2de9379d0",
- "sha256:63a93593068dc0da07108dc47c12cd3ff00f07403cff72c86bea6a89abafbf6d"
+ "sha256:6110bd73eaa133f9c8eb1ef2566e6c0c8123a0e4efbcfb85b86f8c1b26cb4de2",
+ "sha256:e8eaa52771c72426f5531c53dcc8dfc5e3bb6e1f91f89fc93674a81bfca59d6d"
],
"index": "pypi",
- "version": "==0.1.1"
+ "version": "==0.2.0"
},
"tornado": {
"hashes": [
diff --git a/docs/api.md b/docs/api.md
index da27d3e07..df86ef1e5 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -288,10 +288,23 @@ with an optional `set_permissions` parameter which is of the form:
}
```
+!!! note
+
+ Arrays should contain user or group ID numbers.
+
If this parameter is supplied the object's permissions will be overwritten,
assuming the authenticated user has permission to do so (the user must be
the object owner or a superuser).
+### Retrieving full permissions
+
+By default, the API will return a truncated version of object-level
+permissions, returning `user_can_change` indicating whether the current user
+can edit the object (either because they are the object owner or have permissions
+granted). You can pass the parameter `full_perms=true` to API calls to view the
+full permissions of objects in a format that mirrors the `set_permissions`
+parameter above.
+
## API Versioning
The REST API is versioned since Paperless-ngx 1.3.0.
diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf
index 5a45112ec..40063c059 100644
--- a/src-ui/messages.xlf
+++ b/src-ui/messages.xlf
@@ -578,7 +578,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 27
+ 26
@@ -1150,7 +1150,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 77
+ 76
@@ -2269,7 +2269,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 63
+ 62src/app/components/manage/tasks/tasks.component.html
@@ -2585,7 +2585,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 36
+ 35src/app/services/rest/document.service.ts
@@ -2608,7 +2608,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 44
+ 43src/app/services/rest/document.service.ts
@@ -2631,7 +2631,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 52
+ 51
@@ -2978,7 +2978,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 28
+ 27
@@ -2989,7 +2989,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 37
+ 36
@@ -3000,7 +3000,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 45
+ 44
@@ -3011,7 +3011,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 53
+ 52
@@ -3474,7 +3474,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 85
+ 84
@@ -3596,7 +3596,7 @@
src/app/components/document-list/filter-editor/filter-editor.component.html
- 69
+ 68src/app/services/rest/document.service.ts
diff --git a/src-ui/src/app/components/app-frame/app-frame.component.scss b/src-ui/src/app/components/app-frame/app-frame.component.scss
index fb6fa44cb..93468207d 100644
--- a/src-ui/src/app/components/app-frame/app-frame.component.scss
+++ b/src-ui/src/app/components/app-frame/app-frame.component.scss
@@ -137,6 +137,7 @@ main {
.sidebar .nav-link {
font-weight: 500;
+ white-space: nowrap;
&:hover, &.active, &:focus {
color: var(--bs-primary);
diff --git a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html
index 25d581ed1..69e6e3768 100644
--- a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html
+++ b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.html
@@ -1,90 +1,89 @@
-