mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-20 01:51:18 +00:00
Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9afc8ba43d | ||
|
|
b122a05c71 | ||
|
|
f568a9fdfa | ||
|
|
a350bb3086 | ||
|
|
8ae4b7560b | ||
|
|
96f4924911 | ||
|
|
f3703fc6e3 | ||
|
|
0d5fd229bf | ||
|
|
1519e66550 | ||
|
|
fcae461430 | ||
|
|
039d797dfc | ||
|
|
4f61868b28 | ||
|
|
9efbc55fd6 | ||
|
|
2e4e88114e | ||
|
|
8ee2e8b23d | ||
|
|
37287c3e7e | ||
|
|
814d90745b | ||
|
|
48e8076e34 | ||
|
|
edb9d934b2 | ||
|
|
ed44f0cb04 | ||
|
|
1c2f3cf9af | ||
|
|
13afd25690 | ||
|
|
f9b6374685 | ||
|
|
56c9b578e3 | ||
|
|
e792a00feb | ||
|
|
c35c4eade9 | ||
|
|
5bf725546b | ||
|
|
6b6862705e | ||
|
|
b89b51b121 | ||
|
|
1b31388232 | ||
|
|
8256e73f04 | ||
|
|
fc4e59ec00 | ||
|
|
428e00ba23 | ||
|
|
2ccbb08c3f | ||
|
|
eefc026a17 | ||
|
|
d89022a280 | ||
|
|
93bd24c9d2 | ||
|
|
197aec2945 | ||
|
|
e16d58cff5 | ||
|
|
92667009be | ||
|
|
c93657f40e | ||
|
|
16658f5939 | ||
|
|
ec0af59596 | ||
|
|
9e1f9d6d9d | ||
|
|
e652b927ce | ||
|
|
5a97f3f94b | ||
|
|
dc26c9b7cc |
@@ -36,11 +36,13 @@ RUN apt-get update \
|
|||||||
&& echo "deb http://deb.debian.org/debian bullseye main" > /etc/apt/sources.list.d/bullseye.list \
|
&& echo "deb http://deb.debian.org/debian bullseye main" > /etc/apt/sources.list.d/bullseye.list \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& apt-get -y --no-install-recommends install \
|
&& apt-get -y --no-install-recommends install \
|
||||||
|
# fixes sudo / gosu issues
|
||||||
|
libseccomp2 \
|
||||||
# Mime type detection
|
# Mime type detection
|
||||||
file \
|
file \
|
||||||
libmagic-dev \
|
libmagic-dev \
|
||||||
media-types \
|
media-types \
|
||||||
# OCRmyPDF dependencies
|
# OCRmyPDF dependencies
|
||||||
liblept5 \
|
liblept5 \
|
||||||
qpdf \
|
qpdf \
|
||||||
tesseract-ocr \
|
tesseract-ocr \
|
||||||
|
|||||||
2
Pipfile
2
Pipfile
@@ -40,7 +40,7 @@ whitenoise = "~=5.2.0"
|
|||||||
watchdog = "~=1.0.0"
|
watchdog = "~=1.0.0"
|
||||||
whoosh="~=2.7.4"
|
whoosh="~=2.7.4"
|
||||||
inotifyrecursive = "~=0.3.4"
|
inotifyrecursive = "~=0.3.4"
|
||||||
ocrmypdf = "~=11.6"
|
ocrmypdf = "~=12.0"
|
||||||
tqdm = "*"
|
tqdm = "*"
|
||||||
tika = "*"
|
tika = "*"
|
||||||
# TODO: This will sadly also install daphne+dependencies,
|
# TODO: This will sadly also install daphne+dependencies,
|
||||||
|
|||||||
326
Pipfile.lock
generated
326
Pipfile.lock
generated
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "6dd5af1c2a4025ca82cf6092121f4571fda57df7c47e028b8c25da20ef7e16cd"
|
"sha256": "2da6572956d27205c496da2ef5f584a9ba53b5f6b3c8bf1724211dc48bfac7b7"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {},
|
"requires": {},
|
||||||
@@ -28,11 +28,11 @@
|
|||||||
},
|
},
|
||||||
"arrow": {
|
"arrow": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:3515630f11a15c61dcb4cdd245883270dd334c83f3e639824e65a4b79cc48543",
|
"sha256:8cbe6a629b1c54ae11b52d6d9e70890089241958f63bc59467e277e34b7a5378",
|
||||||
"sha256:399c9c8ae732270e1aa58ead835a79a40d7be8aa109c579898eb41029b5a231d"
|
"sha256:b8fe13abf3517abab315e09350c903902d1447bd311afbc17547ba1cb3ff5bd8"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.6'",
|
"markers": "python_version >= '3.6'",
|
||||||
"version": "==1.0.3"
|
"version": "==1.1.0"
|
||||||
},
|
},
|
||||||
"asgiref": {
|
"asgiref": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -52,11 +52,11 @@
|
|||||||
},
|
},
|
||||||
"attrs": {
|
"attrs": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
|
"sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
|
||||||
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
|
"sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||||
"version": "==20.3.0"
|
"version": "==21.2.0"
|
||||||
},
|
},
|
||||||
"autobahn": {
|
"autobahn": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -225,11 +225,11 @@
|
|||||||
},
|
},
|
||||||
"django": {
|
"django": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0604e84c4fb698a5e53e5857b5aea945b2f19a18f25f10b8748dbdf935788927",
|
"sha256:13ac78dbfd189532cad8f383a27e58e18b3d33f80009ceb476d7fcbfc5dcebd8",
|
||||||
"sha256:21f0f9643722675976004eb683c55d33c05486f94506672df3d6a141546f389d"
|
"sha256:7e0a1393d18c16b503663752a8b6790880c5084412618990ce8a81cc908b4962"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.2"
|
"version": "==3.2.3"
|
||||||
},
|
},
|
||||||
"django-cors-headers": {
|
"django-cors-headers": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -241,11 +241,11 @@
|
|||||||
},
|
},
|
||||||
"django-extensions": {
|
"django-extensions": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:081828e985485662f62a22340c1506e37989d14b927652079a5b7cd84a82368b",
|
"sha256:50de8977794a66a91575dd40f87d5053608f679561731845edbd325ceeb387e3",
|
||||||
"sha256:17f85f4dcdd5eea09b8c4f0bad8f0370bf2db6d03e61b431fa7103fee29888de"
|
"sha256:5f0fea7bf131ca303090352577a9e7f8bfbf5489bd9d9c8aea9401db28db34a0"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.1.2"
|
"version": "==3.1.3"
|
||||||
},
|
},
|
||||||
"django-filter": {
|
"django-filter": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -301,6 +301,7 @@
|
|||||||
"gunicorn": {
|
"gunicorn": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:8d737657cdd62f483d482ee65cf9cc6a64d5b2199674f8b174803be9065e5d60",
|
"sha256:8d737657cdd62f483d482ee65cf9cc6a64d5b2199674f8b174803be9065e5d60",
|
||||||
|
"sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e",
|
||||||
"sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
|
"sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
@@ -364,22 +365,25 @@
|
|||||||
},
|
},
|
||||||
"httptools": {
|
"httptools": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0a4b1b2012b28e68306575ad14ad5e9120b34fccd02a81eb08838d7e3bbb48be",
|
"sha256:07659649fe6b3948b6490825f89abe5eb1cec79ebfaaa0b4bf30f3f33f3c2ba8",
|
||||||
"sha256:3592e854424ec94bd17dc3e0c96a64e459ec4147e6d53c0a42d0ebcef9cb9c5d",
|
"sha256:08b79e09114e6ab5c3dbf560bba2cb2257ea38cdaeaf99b7cb80d8f92622fcd9",
|
||||||
"sha256:41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce",
|
"sha256:1e35aa179b67086cc600a984924a88589b90793c9c1b260152ca4908786e09df",
|
||||||
"sha256:56b6393c6ac7abe632f2294da53f30d279130a92e8ae39d8d14ee2e1b05ad1f2",
|
"sha256:31629e1f1b89959f8c0927bad12184dc07977dcf71e24f4772934aa490aa199b",
|
||||||
"sha256:7f6c82262d3bdde886a29ae0d65d4fae6b3ac6fba763891ddb72e72e1dbe7075",
|
"sha256:7792e70ead1d220142a99dde049fdbeddc66fe822953e085d02cd5155c38cdad",
|
||||||
"sha256:86c6acd66765a934e8730bf0e9dfaac6fdcf2a4334212bd4a0a1c78f16475ca6",
|
"sha256:851026bd63ec0af7e7592890d97d15c92b62d9e17094353f19a52c8e2b33710a",
|
||||||
"sha256:96da81e1992be8ac2fd5597bf0283d832287e20cb3cfde8996d2b00356d4e17f",
|
"sha256:8fcca4b7efe353b13a24017211334c57d055a6e132c7adffed13a10d28efca57",
|
||||||
"sha256:96eb359252aeed57ea5c7b3d79839aaa0382c9d3149f7d24dd7172b1bcecb009",
|
"sha256:9abd788465aa46a0f288bd3a99e53edd184177d6379e2098fd6097bb359ad9d6",
|
||||||
"sha256:a2719e1d7a84bb131c4f1e0cb79705034b48de6ae486eb5297a139d6a3296dce",
|
"sha256:aebdf0bd7bf7c90ae6b3be458692bf6e9e5b610b501f9f74c7979015a51db4c4",
|
||||||
"sha256:ac0aa11e99454b6a66989aa2d44bca41d4e0f968e395a0a8f164b401fefe359a",
|
"sha256:bda99a5723e7eab355ce57435c70853fc137a65aebf2f1cd4d15d96e2956da7b",
|
||||||
"sha256:bc3114b9edbca5a1eb7ae7db698c669eb53eb8afbbebdde116c174925260849c",
|
"sha256:c1c63d860749841024951b0a78e4dec6f543d23751ef061d6ab60064c7b8b524",
|
||||||
"sha256:cb46a65a0ed99c38dfcbf9f5be8be6cf9cb497e527505fefac7cbd38a467f3c6",
|
"sha256:c4111a0a8a00eff1e495d43ea5230aaf64968a48ddba8ea2d5f982efae827404",
|
||||||
"sha256:fa3cd71e31436911a44620473e873a256851e1f53dee56669dae403ba41756a4",
|
"sha256:dce59ee45dd6ee6c434346a5ac527c44014326f560866b4b2f414a692ee1aca8",
|
||||||
"sha256:fea04e126014169384dee76a153d4573d90d0cbd1d12185da089f73c78390437"
|
"sha256:f759717ca1b2ef498c67ba4169c2b33eecf943a89f5329abcff8b89d153eb500",
|
||||||
|
"sha256:f9545ff74bdf8a6e013ed18af3e24c656c06b6ca2441074be2f6cc28e24f48de",
|
||||||
|
"sha256:fb7199b8fb0c50a22e77260bb59017e0c075fa80cb03bb2c8692de76e7bb7fe7",
|
||||||
|
"sha256:fbf7ecd31c39728f251b1c095fd27c84e4d21f60a1d079a0333472ff3ae59d34"
|
||||||
],
|
],
|
||||||
"version": "==0.1.1"
|
"version": "==0.1.2"
|
||||||
},
|
},
|
||||||
"humanfriendly": {
|
"humanfriendly": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -407,18 +411,18 @@
|
|||||||
},
|
},
|
||||||
"imap-tools": {
|
"imap-tools": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:00fa5b5046c0437976ad7dd5e45b1847bfd5d14bb858c9b19a5cf2994bba96d9",
|
"sha256:3b15cea943ee84072ed6f3424df138aa1908dcee7d368ad81843e2166b8283e0",
|
||||||
"sha256:3b4d0a911bc48ea7c0beac6a15b6f65b6fdf2b066a67cd3536253ec98e401e83"
|
"sha256:e4f47bcea98db7502efae4da973c7dded8b632b57bf4acf1d317742701bfb571"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==0.39.0"
|
"version": "==0.41.0"
|
||||||
},
|
},
|
||||||
"img2pdf": {
|
"img2pdf": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:57905015579b1026acf1605aa95859cd79b051fa1c35485573d165526fc9dbb5",
|
"sha256:38a1229ca84b211d7782d1d65ad7251a9781bf24f6f6497c738c755fcfed5552",
|
||||||
"sha256:eaee690ab8403dd1a9cb4db10afee41dd3e6c7ed63bdace02a0121f9feadb0c9"
|
"sha256:e7eb85dc87062e308066f2b0a9dbfb3c5c0bd306dec0cf9130e3836c0547253a"
|
||||||
],
|
],
|
||||||
"version": "==0.4.0"
|
"version": "==0.4.1"
|
||||||
},
|
},
|
||||||
"incremental": {
|
"incremental": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -453,12 +457,12 @@
|
|||||||
},
|
},
|
||||||
"langdetect": {
|
"langdetect": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:363795ea005f1243c958e953245dac5d814fabdc025c9afa91588c5fa6b2fa83",
|
"sha256:7cbc0746252f19e76f77c0b1690aadf01963be835ef0cd4b56dddf2a8f1dfc2a",
|
||||||
"sha256:ae53a024643df713274c297c0795dbfb5a16b329902f8e543e7b2d7d45f699e4",
|
"sha256:87963db181db734abf00b1c463df5cadb3f9edad8efb334d3e52d5ad008d9cc7",
|
||||||
"sha256:f37495e63607865e47deed08d78f7f8e58172658216ff954b2f14671bcd87740"
|
"sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==1.0.8"
|
"version": "==1.0.9"
|
||||||
},
|
},
|
||||||
"lxml": {
|
"lxml": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -466,18 +470,24 @@
|
|||||||
"sha256:0fbcf5565ac01dff87cbfc0ff323515c823081c5777a9fc7703ff58388c258c3",
|
"sha256:0fbcf5565ac01dff87cbfc0ff323515c823081c5777a9fc7703ff58388c258c3",
|
||||||
"sha256:122fba10466c7bd4178b07dba427aa516286b846b2cbd6f6169141917283aae2",
|
"sha256:122fba10466c7bd4178b07dba427aa516286b846b2cbd6f6169141917283aae2",
|
||||||
"sha256:1822d16e5ac9061749955d099ff50c6cbc068f8cbfde28dfbeea845f7fbe6e09",
|
"sha256:1822d16e5ac9061749955d099ff50c6cbc068f8cbfde28dfbeea845f7fbe6e09",
|
||||||
|
"sha256:1b38116b6e628118dea5b2186ee6820ab138dbb1e24a13e478490c7db2f326ae",
|
||||||
"sha256:1b7584d421d254ab86d4f0b13ec662a9014397678a7c4265a02a6d7c2b18a75f",
|
"sha256:1b7584d421d254ab86d4f0b13ec662a9014397678a7c4265a02a6d7c2b18a75f",
|
||||||
"sha256:26e761ab5b07adf5f555ee82fb4bfc35bf93750499c6c7614bd64d12aaa67927",
|
"sha256:26e761ab5b07adf5f555ee82fb4bfc35bf93750499c6c7614bd64d12aaa67927",
|
||||||
"sha256:289e9ca1a9287f08daaf796d96e06cb2bc2958891d7911ac7cae1c5f9e1e0ee3",
|
"sha256:289e9ca1a9287f08daaf796d96e06cb2bc2958891d7911ac7cae1c5f9e1e0ee3",
|
||||||
"sha256:2a9d50e69aac3ebee695424f7dbd7b8c6d6eb7de2a2eb6b0f6c7db6aa41e02b7",
|
"sha256:2a9d50e69aac3ebee695424f7dbd7b8c6d6eb7de2a2eb6b0f6c7db6aa41e02b7",
|
||||||
|
"sha256:3082c518be8e97324390614dacd041bb1358c882d77108ca1957ba47738d9d59",
|
||||||
"sha256:33bb934a044cf32157c12bfcfbb6649807da20aa92c062ef51903415c704704f",
|
"sha256:33bb934a044cf32157c12bfcfbb6649807da20aa92c062ef51903415c704704f",
|
||||||
"sha256:3439c71103ef0e904ea0a1901611863e51f50b5cd5e8654a151740fde5e1cade",
|
"sha256:3439c71103ef0e904ea0a1901611863e51f50b5cd5e8654a151740fde5e1cade",
|
||||||
|
"sha256:36108c73739985979bf302006527cf8a20515ce444ba916281d1c43938b8bb96",
|
||||||
"sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468",
|
"sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468",
|
||||||
"sha256:4289728b5e2000a4ad4ab8da6e1db2e093c63c08bdc0414799ee776a3f78da4b",
|
"sha256:4289728b5e2000a4ad4ab8da6e1db2e093c63c08bdc0414799ee776a3f78da4b",
|
||||||
"sha256:4bff24dfeea62f2e56f5bab929b4428ae6caba2d1eea0c2d6eb618e30a71e6d4",
|
"sha256:4bff24dfeea62f2e56f5bab929b4428ae6caba2d1eea0c2d6eb618e30a71e6d4",
|
||||||
|
"sha256:4c61b3a0db43a1607d6264166b230438f85bfed02e8cff20c22e564d0faff354",
|
||||||
"sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83",
|
"sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83",
|
||||||
"sha256:5a0a14e264069c03e46f926be0d8919f4105c1623d620e7ec0e612a2e9bf1c04",
|
"sha256:5a0a14e264069c03e46f926be0d8919f4105c1623d620e7ec0e612a2e9bf1c04",
|
||||||
|
"sha256:5c8c163396cc0df3fd151b927e74f6e4acd67160d6c33304e805b84293351d16",
|
||||||
"sha256:66e575c62792c3f9ca47cb8b6fab9e35bab91360c783d1606f758761810c9791",
|
"sha256:66e575c62792c3f9ca47cb8b6fab9e35bab91360c783d1606f758761810c9791",
|
||||||
|
"sha256:6f12e1427285008fd32a6025e38e977d44d6382cf28e7201ed10d6c1698d2a9a",
|
||||||
"sha256:74f69060f98a70e3654de3021cd8162859e0f30b9e69aed76ef2b7a2e3b84212",
|
"sha256:74f69060f98a70e3654de3021cd8162859e0f30b9e69aed76ef2b7a2e3b84212",
|
||||||
"sha256:74f7d8d439b18fa4c385f3f5dfd11144bb87c1da034a466c5b5577d23a1d9b51",
|
"sha256:74f7d8d439b18fa4c385f3f5dfd11144bb87c1da034a466c5b5577d23a1d9b51",
|
||||||
"sha256:7610b8c31688f0b1be0ef882889817939490a36d0ee880ea562a4e1399c447a1",
|
"sha256:7610b8c31688f0b1be0ef882889817939490a36d0ee880ea562a4e1399c447a1",
|
||||||
@@ -491,10 +501,14 @@
|
|||||||
"sha256:b007cbb845b28db4fb8b6a5cdcbf65bacb16a8bd328b53cbc0698688a68e1caa",
|
"sha256:b007cbb845b28db4fb8b6a5cdcbf65bacb16a8bd328b53cbc0698688a68e1caa",
|
||||||
"sha256:bc4313cbeb0e7a416a488d72f9680fffffc645f8a838bd2193809881c67dd106",
|
"sha256:bc4313cbeb0e7a416a488d72f9680fffffc645f8a838bd2193809881c67dd106",
|
||||||
"sha256:bccbfc27563652de7dc9bdc595cb25e90b59c5f8e23e806ed0fd623755b6565d",
|
"sha256:bccbfc27563652de7dc9bdc595cb25e90b59c5f8e23e806ed0fd623755b6565d",
|
||||||
|
"sha256:c47ff7e0a36d4efac9fd692cfa33fbd0636674c102e9e8d9b26e1b93a94e7617",
|
||||||
"sha256:c4f05c5a7c49d2fb70223d0d5bcfbe474cf928310ac9fa6a7c6dddc831d0b1d4",
|
"sha256:c4f05c5a7c49d2fb70223d0d5bcfbe474cf928310ac9fa6a7c6dddc831d0b1d4",
|
||||||
|
"sha256:cdaf11d2bd275bf391b5308f86731e5194a21af45fbaaaf1d9e8147b9160ea92",
|
||||||
"sha256:ce256aaa50f6cc9a649c51be3cd4ff142d67295bfc4f490c9134d0f9f6d58ef0",
|
"sha256:ce256aaa50f6cc9a649c51be3cd4ff142d67295bfc4f490c9134d0f9f6d58ef0",
|
||||||
"sha256:d2e35d7bf1c1ac8c538f88d26b396e73dd81440d59c1ef8522e1ea77b345ede4",
|
"sha256:d2e35d7bf1c1ac8c538f88d26b396e73dd81440d59c1ef8522e1ea77b345ede4",
|
||||||
|
"sha256:d916d31fd85b2f78c76400d625076d9124de3e4bda8b016d25a050cc7d603f24",
|
||||||
"sha256:df7c53783a46febb0e70f6b05df2ba104610f2fb0d27023409734a3ecbb78fb2",
|
"sha256:df7c53783a46febb0e70f6b05df2ba104610f2fb0d27023409734a3ecbb78fb2",
|
||||||
|
"sha256:e1cbd3f19a61e27e011e02f9600837b921ac661f0c40560eefb366e4e4fb275e",
|
||||||
"sha256:efac139c3f0bf4f0939f9375af4b02c5ad83a622de52d6dfa8e438e8e01d0eb0",
|
"sha256:efac139c3f0bf4f0939f9375af4b02c5ad83a622de52d6dfa8e438e8e01d0eb0",
|
||||||
"sha256:efd7a09678fd8b53117f6bae4fa3825e0a22b03ef0a932e070c0bdbb3a35e654",
|
"sha256:efd7a09678fd8b53117f6bae4fa3825e0a22b03ef0a932e070c0bdbb3a35e654",
|
||||||
"sha256:f2380a6376dfa090227b663f9678150ef27543483055cc327555fb592c5967e2",
|
"sha256:f2380a6376dfa090227b663f9678150ef27543483055cc327555fb592c5967e2",
|
||||||
@@ -582,11 +596,11 @@
|
|||||||
},
|
},
|
||||||
"ocrmypdf": {
|
"ocrmypdf": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:329b070959731c277f0df91cfe011dd4da0d6534f23a739a3aa77bdab00fbc2f",
|
"sha256:3a757ac8bc4f822052a363c7fdc1e01e01033ae3e3398123990813eb6b3cf031",
|
||||||
"sha256:b63df1b6bf37f29b41cb07f0328240a235d84c3dffc3a32299c71fa94c92d419"
|
"sha256:c18db17e18984f540eaa774245571e3ec63a74f459b6029de561a06a77e78310"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==11.7.3"
|
"version": "==12.0.1"
|
||||||
},
|
},
|
||||||
"pathvalidate": {
|
"pathvalidate": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -606,32 +620,32 @@
|
|||||||
},
|
},
|
||||||
"pikepdf": {
|
"pikepdf": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:14a93f2b61adc975453dfc9edf3335be704732a8750a009ba3d12913ff043abe",
|
"sha256:087dc8e141dcfa0e76e93227a22f6b9cee000b3837b9e048ba96f389d0ee5d41",
|
||||||
"sha256:25ba3bf96eae3a7c897db5bf6a60b26ebde1c161145af73a044950901b754bcb",
|
"sha256:1bcf4e45a831b302a0b6ae6cbd41aa6c81f95964b1d61e8da41186a4a779f701",
|
||||||
"sha256:29742273f80e75c48e700c5438636fe78a856e1706e353ea57715732fb75fcd6",
|
"sha256:22d6615e742e7320a3a77148f65a8ba3591c054133faf6305a525c439b57cf38",
|
||||||
"sha256:3790ed5b9d0db8c8bd28d96cb10b91649179eac04873ed23e6dc474515892cc3",
|
"sha256:24d51dcc2d73e5d123acab4fef5d611f545ff2ce16c837d85833364d4d2cda45",
|
||||||
"sha256:3a76702b12f78abe591a6270756a56225a63a26c5a00aad8bc3ffd8680178ab2",
|
"sha256:26a3af4845db89f364d18757978fad39ea852b6e7cae3137000a07c44d292b42",
|
||||||
"sha256:56ce22cd134c96035abf984aa167a16e7c658c3ccc0cd626a7002f911eba7452",
|
"sha256:36e9d557ef0505a6ec335faf9b2c93d4d062daa339dd1a6cbcda2a6dc886b38e",
|
||||||
"sha256:578e80adcd4703b752c381517853a074633baa219be4bd36d6752fb742a0f8b4",
|
"sha256:417abdc29be8ddedabeb100a728b6525c5e1967ba47a03b9e0a81391efb4feb1",
|
||||||
"sha256:5b286e9862a21bbe9dfb0da827818f710a303d9b78f821710c37e8059839c7da",
|
"sha256:5e71dcefdd889538a289cdaa2bb4559e4477e3f17846ffbdfad54b0e76443cf5",
|
||||||
"sha256:6b12c8835f52d07cb68f30d115e1361cd1143f1aa2c70f49ded6d69d9c4fcdd2",
|
"sha256:62a6f2e2552bfd1bcd17b5e0e024db9ab7e93db39f43bb4246faff9b01154d47",
|
||||||
"sha256:6e6dd17783c6cf038b179dcf662982d1cca891a3e30232aec0221cc69821b7f1",
|
"sha256:7a054701104c601d72b5ab8b3025a44b1b400f334ee7259dbd4bb1a2c24dad03",
|
||||||
"sha256:7e4e7e53781d85a609bdf899d585a39a69e9eedf2b9ac75261685a1aff0072ea",
|
"sha256:7dcf6545c7deb2f6511a3b9220d56297b4165eeedc2eab785acba698cc9d95c0",
|
||||||
"sha256:810488f80a1d93652498222f9d1391d9287b3b842971d7a8878e69a287c2476f",
|
"sha256:82da7b5d5a57e4704f7a81e75324b07b19577a96e06f5c5d8a89b29dec814766",
|
||||||
"sha256:85ab867102d7c2182acf852c61ca60c90790bfbb4a939dc096054d904318ba37",
|
"sha256:8cdafd18013b17f257655e95bfcb4ef14a7fc84a7334a9877b0532db4b55e3ff",
|
||||||
"sha256:8babd800331978d20d82ed1494868d15f5b953266c2b943a7d34e4826016e0b8",
|
"sha256:a0ff0291f74ef45dd2a1e1316b7d6464b996351365debbf611a5293cf2ff2562",
|
||||||
"sha256:94f20e08cdfcba011440204fd9df381af1c423a9888dfd3287b66d9e7e1421bf",
|
"sha256:a2ef88f786aed79da559cd1a6a844f99e258971d64670bfba1efad96ed175fb0",
|
||||||
"sha256:9d4a1cc8da1860d8772e831b03ea05386ae6a805718cd8621de736725d52a901",
|
"sha256:a84bbc7b3f9819c1541913bac2781da40d9506255c1cedb7233f9027ce23db92",
|
||||||
"sha256:9f67e2c57413ac8be4eec5344c2bcaeb1a18c59fe348afd589d9b95bd4dfc077",
|
"sha256:b1e0cfb6f5abe4d4863c55b2c9424340e5b44095789ef1368a0de99f8b4f852e",
|
||||||
"sha256:b4c64ddc8fe9b11dc52f81d38076bd560ce97abf4695151d2eab390ae760fcac",
|
"sha256:ca8efe77f1f44d3c1c0d738407b87816f1445438aa6873d45e58fdd595e96c98",
|
||||||
"sha256:b5d4431e77f32fd1edc10d214db89b33f2c7f8ceb7152a6651192ef90945db17",
|
"sha256:d0f48252f23c128a3ddde16d98fa6567ac7fbce6792209771183b57c744106e1",
|
||||||
"sha256:d3a0cf2dcc10cd7a7b877e955cfac7ddee6050860a39375f46218f7f1c02e903",
|
"sha256:e1d988ddf063d6abf3d71e7c5bc46e5690fdcf0b06d7f00fced5d0b908f92267",
|
||||||
"sha256:dd551d5ff0e4c95537a366fb2281152c7293e60d60bf6ba909faba7d0ee669ad",
|
"sha256:ec9d853c895693dd55b12ae37056808e192e5e2a8d2486cb30d19a5e7d6ff6a9",
|
||||||
"sha256:dea790ae9809ab0ed0f5e32c938d36441f5ab3e74a884692ce84902e8ed1187b",
|
"sha256:fcbb6e37426564ccaf6bb301616700277d426225895b00a64283a95ff648f3b9",
|
||||||
"sha256:fe47949abbf9f67416e545b0c61c8e75546f1ad8f4cfbe5ee608824258cdaa3e"
|
"sha256:ff29a8bd50f47554be7e062b3e1a2b466a7f567e1e49417dc62c3948b28304c7"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==2.11.1"
|
"version": "==2.12.0"
|
||||||
},
|
},
|
||||||
"pillow": {
|
"pillow": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -794,11 +808,11 @@
|
|||||||
},
|
},
|
||||||
"python-dotenv": {
|
"python-dotenv": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:471b782da0af10da1a80341e8438fca5fadeba2881c54360d5fd8d03d03a4f4a",
|
"sha256:00aa34e92d992e9f8383730816359647f358f4a3be1ba45e5a5cefd27ee91544",
|
||||||
"sha256:49782a97c9d641e8a09ae1d9af0856cc587c8d2474919342d5104d85be9890b2"
|
"sha256:b1ae5e9643d5ed987fc57cc2583021e38db531946518130777734f9589b3141f"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==0.17.0"
|
"version": "==0.17.1"
|
||||||
},
|
},
|
||||||
"python-gnupg": {
|
"python-gnupg": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -849,6 +863,7 @@
|
|||||||
"sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183",
|
"sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183",
|
||||||
"sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541",
|
"sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541",
|
||||||
"sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb",
|
"sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb",
|
||||||
|
"sha256:8fc87fd1a1d30991d9198a4317e90dfaf3d2963c013608a019e8311568fa08b2",
|
||||||
"sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185",
|
"sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185",
|
||||||
"sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc",
|
"sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc",
|
||||||
"sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db",
|
"sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db",
|
||||||
@@ -1032,18 +1047,18 @@
|
|||||||
},
|
},
|
||||||
"service-identity": {
|
"service-identity": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:001c0707759cb3de7e49c078a7c0c9cd12594161d3bf06b9c254fdcb1a60dc36",
|
"sha256:6e6c6086ca271dc11b033d17c3a8bea9f24ebff920c587da090afc9519419d34",
|
||||||
"sha256:0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d"
|
"sha256:f0b0caac3d40627c3c04d7a51b6e06721857a0e10a8775f2d1d7e72901b3a7db"
|
||||||
],
|
],
|
||||||
"version": "==18.1.0"
|
"version": "==21.1.0"
|
||||||
},
|
},
|
||||||
"six": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==1.15.0"
|
"version": "==1.16.0"
|
||||||
},
|
},
|
||||||
"sortedcontainers": {
|
"sortedcontainers": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1312,19 +1327,19 @@
|
|||||||
},
|
},
|
||||||
"attrs": {
|
"attrs": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
|
"sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
|
||||||
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
|
"sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||||
"version": "==20.3.0"
|
"version": "==21.2.0"
|
||||||
},
|
},
|
||||||
"babel": {
|
"babel": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5",
|
"sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9",
|
||||||
"sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"
|
"sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==2.9.0"
|
"version": "==2.9.1"
|
||||||
},
|
},
|
||||||
"certifi": {
|
"certifi": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1342,6 +1357,9 @@
|
|||||||
"version": "==4.0.0"
|
"version": "==4.0.0"
|
||||||
},
|
},
|
||||||
"coverage": {
|
"coverage": {
|
||||||
|
"extras": [
|
||||||
|
"toml"
|
||||||
|
],
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c",
|
"sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c",
|
||||||
"sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6",
|
"sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6",
|
||||||
@@ -1447,11 +1465,11 @@
|
|||||||
},
|
},
|
||||||
"faker": {
|
"faker": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:26c7c3df8d46f1db595a34962f8967021dd90bbd38cc6e27461a3fb16cd413ae",
|
"sha256:73562fb99b6046c5d26b8dd98a1437a896f8601c96382d835c656166159f4f59",
|
||||||
"sha256:44eb060fad3015690ff3fec6564d7171be393021e820ad1851d96cb968fbfcd4"
|
"sha256:c6a4a0a1dde71f16d489a3097661a87ae96329dbde4c3ece8a5ccc340441ade1"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.6'",
|
"markers": "python_version >= '3.6'",
|
||||||
"version": "==8.1.0"
|
"version": "==8.1.4"
|
||||||
},
|
},
|
||||||
"filelock": {
|
"filelock": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1488,72 +1506,52 @@
|
|||||||
},
|
},
|
||||||
"jinja2": {
|
"jinja2": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419",
|
"sha256:2f2de5285cf37f33d33ecd4a9080b75c87cd0c1994d5a9c6df17131ea1f049c6",
|
||||||
"sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
|
"sha256:ea8d7dd814ce9df6de6a761ec7f1cac98afe305b8cdc4aaae4e114b8d8ce24c5"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
"markers": "python_version >= '3.6'",
|
||||||
"version": "==2.11.3"
|
"version": "==3.0.0"
|
||||||
},
|
},
|
||||||
"markupsafe": {
|
"markupsafe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
|
"sha256:007dc055dbce5b1104876acee177dbfd18757e19d562cd440182e1f492e96b95",
|
||||||
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
|
"sha256:031bf79a27d1c42f69c276d6221172417b47cb4b31cdc73d362a9bf5a1889b9f",
|
||||||
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
|
"sha256:161d575fa49395860b75da5135162481768b11208490d5a2143ae6785123e77d",
|
||||||
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
|
"sha256:24bbc3507fb6dfff663af7900a631f2aca90d5a445f272db5fc84999fa5718bc",
|
||||||
"sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42",
|
"sha256:2efaeb1baff547063bad2b2893a8f5e9c459c4624e1a96644bbba08910ae34e0",
|
||||||
"sha256:19536834abffb3fa155017053c607cb835b2ecc6a3a2554a88043d991dffb736",
|
"sha256:31d4206caf9be06b8e7a85de4df933d159b4877d4fc308ca8192d97faf56a41e",
|
||||||
"sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f",
|
"sha256:32200f562daaab472921a11cbb63780f1654552ae49518196fc361ed8e12e901",
|
||||||
"sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39",
|
"sha256:3261fae28155e5c8634dd7710635fe540a05b58f160cef7713c7700cb9980e66",
|
||||||
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
|
"sha256:3b54a9c68995ef4164567e2cd1a5e16db5dac30b2a50c39c82db8d4afaf14f63",
|
||||||
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
|
"sha256:3c352ff634e289061711608f5e474ec38dbaa21e3e168820d53d5f4015e5b91b",
|
||||||
"sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014",
|
"sha256:3fb47f97f1d338b943126e90b79cad50d4fcfa0b80637b5a9f468941dbbd9ce5",
|
||||||
"sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f",
|
"sha256:441ce2a8c17683d97e06447fcbccbdb057cbf587c78eb75ae43ea7858042fe2c",
|
||||||
"sha256:3d61f15e39611aacd91b7e71d903787da86d9e80896e683c0103fced9add7834",
|
"sha256:45535241baa0fc0ba2a43961a1ac7562ca3257f46c4c3e9c0de38b722be41bd1",
|
||||||
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
|
"sha256:4aca81a687975b35e3e80bcf9aa93fe10cd57fac37bf18b2314c186095f57e05",
|
||||||
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
|
"sha256:4cc563836f13c57f1473bc02d1e01fc37bab70ad4ee6be297d58c1d66bc819bf",
|
||||||
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
|
"sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527",
|
||||||
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
|
"sha256:58bc9fce3e1557d463ef5cee05391a05745fd95ed660f23c1742c711712c0abb",
|
||||||
"sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b",
|
"sha256:664832fb88b8162268928df233f4b12a144a0c78b01d38b81bdcf0fc96668ecb",
|
||||||
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
|
"sha256:70820a1c96311e02449591cbdf5cd1c6a34d5194d5b55094ab725364375c9eb2",
|
||||||
"sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15",
|
"sha256:79b2ae94fa991be023832e6bcc00f41dbc8e5fe9d997a02db965831402551730",
|
||||||
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
|
"sha256:83cf0228b2f694dcdba1374d5312f2277269d798e65f40344964f642935feac1",
|
||||||
"sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85",
|
"sha256:87de598edfa2230ff274c4de7fcf24c73ffd96208c8e1912d5d0fee459767d75",
|
||||||
"sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1",
|
"sha256:8f806bfd0f218477d7c46a11d3e52dc7f5fdfaa981b18202b7dc84bbc287463b",
|
||||||
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
|
"sha256:90053234a6479738fd40d155268af631c7fca33365f964f2208867da1349294b",
|
||||||
"sha256:7952deddf24b85c88dab48f6ec366ac6e39d2761b5280f2f9594911e03fcd064",
|
"sha256:a00dce2d96587651ef4fa192c17e039e8cfab63087c67e7d263a5533c7dad715",
|
||||||
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
|
"sha256:a08cd07d3c3c17cd33d9e66ea9dee8f8fc1c48e2d11bd88fd2dc515a602c709b",
|
||||||
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
|
"sha256:a19d39b02a24d3082856a5b06490b714a9d4179321225bbf22809ff1e1887cc8",
|
||||||
"sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850",
|
"sha256:d00a669e4a5bec3ee6dbeeeedd82a405ced19f8aeefb109a012ea88a45afff96",
|
||||||
"sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0",
|
"sha256:dab0c685f21f4a6c95bfc2afd1e7eae0033b403dd3d8c1b6d13a652ada75b348",
|
||||||
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
|
"sha256:df561f65049ed3556e5b52541669310e88713fdae2934845ec3606f283337958",
|
||||||
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
|
"sha256:e4570d16f88c7f3032ed909dc9e905a17da14a1c4cfd92608e3fda4cb1208bbd",
|
||||||
"sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb",
|
"sha256:e77e4b983e2441aff0c0d07ee711110c106b625f440292dfe02a2f60c8218bd6",
|
||||||
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
|
"sha256:e79212d09fc0e224d20b43ad44bb0a0a3416d1e04cf6b45fed265114a5d43d20",
|
||||||
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
|
"sha256:f58b5ba13a5689ca8317b98439fccfbcc673acaaf8241c1869ceea40f5d585bf",
|
||||||
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
|
"sha256:fef86115fdad7ae774720d7103aa776144cf9b66673b4afa9bcaa7af990ed07b"
|
||||||
"sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1",
|
|
||||||
"sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2",
|
|
||||||
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
|
|
||||||
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
|
|
||||||
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
|
|
||||||
"sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7",
|
|
||||||
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
|
|
||||||
"sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8",
|
|
||||||
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
|
|
||||||
"sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193",
|
|
||||||
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
|
|
||||||
"sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b",
|
|
||||||
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
|
|
||||||
"sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2",
|
|
||||||
"sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5",
|
|
||||||
"sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c",
|
|
||||||
"sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032",
|
|
||||||
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7",
|
|
||||||
"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be",
|
|
||||||
"sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"
|
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '3.6'",
|
||||||
"version": "==1.1.1"
|
"version": "==2.0.0"
|
||||||
},
|
},
|
||||||
"packaging": {
|
"packaging": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1589,11 +1587,11 @@
|
|||||||
},
|
},
|
||||||
"pygments": {
|
"pygments": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94",
|
"sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f",
|
||||||
"sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"
|
"sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '3.5'",
|
"markers": "python_version >= '3.5'",
|
||||||
"version": "==2.8.1"
|
"version": "==2.9.0"
|
||||||
},
|
},
|
||||||
"pyparsing": {
|
"pyparsing": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1605,19 +1603,19 @@
|
|||||||
},
|
},
|
||||||
"pytest": {
|
"pytest": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634",
|
"sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b",
|
||||||
"sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"
|
"sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==6.2.3"
|
"version": "==6.2.4"
|
||||||
},
|
},
|
||||||
"pytest-cov": {
|
"pytest-cov": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:359952d9d39b9f822d9d29324483e7ba04a3a17dd7d05aa6beb7ea01e359e5f7",
|
"sha256:8535764137fecce504a49c2b742288e3d34bc09eed298ad65963616cc98fd45e",
|
||||||
"sha256:bdb9fdb0b85a7cc825269a4c56b48ccaa5c7e365054b6038772c32ddcdc969da"
|
"sha256:95d4933dcbbacfa377bb60b29801daa30d90c33981ab2a79e9ab4452c165066e"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==2.11.1"
|
"version": "==2.12.0"
|
||||||
},
|
},
|
||||||
"pytest-django": {
|
"pytest-django": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1685,11 +1683,11 @@
|
|||||||
},
|
},
|
||||||
"six": {
|
"six": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==1.15.0"
|
"version": "==1.16.0"
|
||||||
},
|
},
|
||||||
"snowballstemmer": {
|
"snowballstemmer": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1786,11 +1784,11 @@
|
|||||||
},
|
},
|
||||||
"tox": {
|
"tox": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:05a4dbd5e4d3d8269b72b55600f0b0303e2eb47ad5c6fe76d3576f4c58d93661",
|
"sha256:307a81ddb82bd463971a273f33e9533a24ed22185f27db8ce3386bff27d324e3",
|
||||||
"sha256:e007673f3595cede9b17a7c4962389e4305d4a3682a6c5a4159a1453b4f326aa"
|
"sha256:b0b5818049a1c1997599d42012a637a33f24c62ab8187223fdd318fa8522637b"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.23.0"
|
"version": "==3.23.1"
|
||||||
},
|
},
|
||||||
"urllib3": {
|
"urllib3": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -1802,11 +1800,11 @@
|
|||||||
},
|
},
|
||||||
"virtualenv": {
|
"virtualenv": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:49ec4eb4c224c6f7dd81bb6d0a28a09ecae5894f4e593c89b0db0885f565a107",
|
"sha256:307a555cf21e1550885c82120eccaf5acedf42978fd362d32ba8410f9593f543",
|
||||||
"sha256:83f95875d382c7abafe06bd2a4cdd1b363e1bb77e02f155ebe8ac082a916b37c"
|
"sha256:72cf267afc04bf9c86ec932329b7e94db6a0331ae9847576daaa7ca3c86b29a4"
|
||||||
],
|
],
|
||||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||||
"version": "==20.4.3"
|
"version": "==20.4.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,23 @@
|
|||||||
Changelog
|
Changelog
|
||||||
*********
|
*********
|
||||||
|
|
||||||
|
paperless-ng 1.4.3
|
||||||
|
##################
|
||||||
|
|
||||||
|
* Additions and changes
|
||||||
|
|
||||||
|
* Added Swedish locale.
|
||||||
|
* `Stéphane Brunner`_ added an option to disable the progress bars of all management commands.
|
||||||
|
* `Jo Vandeginste`_ added support for RTF documents to the Apache TIKA parser.
|
||||||
|
* `Michael Shamoon`_ added dark mode for the login and logout pages.
|
||||||
|
* `Alexander Menk`_ added additional stylesheets for printing. You can now print any page of paperless and the print result will hide the page header, sidebar, and action buttons.
|
||||||
|
* Added support for sorting when using full text search.
|
||||||
|
|
||||||
|
* Fixes
|
||||||
|
|
||||||
|
* `puuu`_ fixed ``PAPERLESS_FORCE_SCRIPT_NAME``. You can now host paperless on sub paths such as ``https://localhost:8000/paperless/``.
|
||||||
|
* Fixed an issue with the document consumer crashing on certain documents due to issues with pdfminer.six. This library is used for PDF text extraction.
|
||||||
|
|
||||||
paperless-ng 1.4.2
|
paperless-ng 1.4.2
|
||||||
##################
|
##################
|
||||||
|
|
||||||
@@ -1366,6 +1383,8 @@ bulk of the work on this big change.
|
|||||||
|
|
||||||
* Initial release
|
* Initial release
|
||||||
|
|
||||||
|
.. _Alexander Menk: https://github.com/amenk
|
||||||
|
.. _puuu: https://github.com/puuu
|
||||||
.. _WhiteHatTux: https://github.com/WhiteHatTux
|
.. _WhiteHatTux: https://github.com/WhiteHatTux
|
||||||
.. _Chris Nagy: https://github.com/what-name
|
.. _Chris Nagy: https://github.com/what-name
|
||||||
.. _sbrl: https://github.com/sbrl
|
.. _sbrl: https://github.com/sbrl
|
||||||
|
|||||||
@@ -154,10 +154,6 @@ PAPERLESS_FORCE_SCRIPT_NAME=<path>
|
|||||||
To host paperless under a subpath url like example.com/paperless you set
|
To host paperless under a subpath url like example.com/paperless you set
|
||||||
this value to /paperless. No trailing slash!
|
this value to /paperless. No trailing slash!
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
I don't know if this works in paperless-ng. Probably not.
|
|
||||||
|
|
||||||
Defaults to none, which hosts paperless at "/".
|
Defaults to none, which hosts paperless at "/".
|
||||||
|
|
||||||
PAPERLESS_STATIC_URL=<path>
|
PAPERLESS_STATIC_URL=<path>
|
||||||
|
|||||||
@@ -460,6 +460,7 @@ Install Paperless using ansible
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
This role currently only supports Debian 10 Buster and Ubuntu 20.04 Focal or later as target hosts.
|
This role currently only supports Debian 10 Buster and Ubuntu 20.04 Focal or later as target hosts.
|
||||||
|
Additionally, only i386 or amd64 based hosts are supported right now, i.e. installation on arm hosts will fail.
|
||||||
|
|
||||||
1. Install ansible 2.7+ on the management node.
|
1. Install ansible 2.7+ on the management node.
|
||||||
This may be the target host paperless-ng is being installed on or any remote host which can access the target host.
|
This may be the target host paperless-ng is being installed on or any remote host which can access the target host.
|
||||||
@@ -485,29 +486,22 @@ Install Paperless using ansible
|
|||||||
|
|
||||||
ansible -m ping YourAnsibleTargetHostGoesHere
|
ansible -m ping YourAnsibleTargetHostGoesHere
|
||||||
|
|
||||||
2. Clone the repository of paperless-ng:
|
2. Install the latest tag of the ansible role using ansible-galaxy
|
||||||
|
|
||||||
.. code:: sh
|
.. code:: sh
|
||||||
|
|
||||||
git clone https://github.com/jonaswinkler/paperless-ng
|
ansible-galaxy install git+https://github.com/jonaswinkler/paperless-ng.git,ng-1.4.2
|
||||||
|
|
||||||
Checkout the latest release tag:
|
3. Create an ansible ``playbook.yml`` in a directory of your choice:
|
||||||
|
|
||||||
.. code:: sh
|
|
||||||
|
|
||||||
cd paperless-ng
|
|
||||||
git checkout ng-1.0.0
|
|
||||||
|
|
||||||
3. Create an ansible ``playbook.yml`` in the paperless-ng root directory:
|
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
- hosts: YourAnsibleTargetHostGoesHere
|
- hosts: YourAnsibleTargetHostGoesHere
|
||||||
become: yes
|
become: yes
|
||||||
vars_files:
|
vars_files:
|
||||||
- ansible/vars.yml
|
- vars/paperless-ng.yml
|
||||||
roles:
|
roles:
|
||||||
- ansible
|
- paperless-ng
|
||||||
|
|
||||||
Optional: If you also want to use PostgreSQL on the target system, install and add (for example) the `geerlingguy.postgresql <https://github.com/geerlingguy/ansible-role-postgresql>`_ role:
|
Optional: If you also want to use PostgreSQL on the target system, install and add (for example) the `geerlingguy.postgresql <https://github.com/geerlingguy/ansible-role-postgresql>`_ role:
|
||||||
|
|
||||||
@@ -520,10 +514,10 @@ Install Paperless using ansible
|
|||||||
- hosts: YourAnsibleTargetHostGoesHere
|
- hosts: YourAnsibleTargetHostGoesHere
|
||||||
become: yes
|
become: yes
|
||||||
vars_files:
|
vars_files:
|
||||||
- ansible/vars.yml
|
- vars/paperless-ng.yml
|
||||||
roles:
|
roles:
|
||||||
- geerlingguy.postgresql
|
- geerlingguy.postgresql
|
||||||
- ansible
|
- paperless-ng
|
||||||
|
|
||||||
Optional: If you also want to use a reverse proxy on the target system, install and add (for example) the `geerlingguy.nginx <https://github.com/geerlingguy/ansible-role-nginx>`_ role:
|
Optional: If you also want to use a reverse proxy on the target system, install and add (for example) the `geerlingguy.nginx <https://github.com/geerlingguy/ansible-role-nginx>`_ role:
|
||||||
|
|
||||||
@@ -536,13 +530,13 @@ Install Paperless using ansible
|
|||||||
- hosts: YourAnsibleTargetHostGoesHere
|
- hosts: YourAnsibleTargetHostGoesHere
|
||||||
become: yes
|
become: yes
|
||||||
vars_files:
|
vars_files:
|
||||||
- ansible/vars.yml
|
- vars/paperless-ng.yml
|
||||||
roles:
|
roles:
|
||||||
- geerlingguy.postgresql
|
- geerlingguy.postgresql
|
||||||
- ansible
|
- paperless-ng
|
||||||
- geerlingguy.nginx
|
- geerlingguy.nginx
|
||||||
|
|
||||||
4. Create ``ansible/vars.yml`` to configure your ansible deployment:
|
4. Create ``vars/paperless-ng.yml`` to configure your ansible deployment:
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import os
|
|||||||
|
|
||||||
bind = '0.0.0.0:8000'
|
bind = '0.0.0.0:8000'
|
||||||
workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 2))
|
workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 2))
|
||||||
worker_class = 'uvicorn.workers.UvicornWorker'
|
worker_class = 'paperless.workers.ConfigurableWorker'
|
||||||
timeout = 120
|
timeout = 120
|
||||||
|
|
||||||
def pre_fork(server, worker):
|
def pre_fork(server, worker):
|
||||||
|
|||||||
@@ -8,10 +8,10 @@
|
|||||||
-i https://pypi.python.org/simple
|
-i https://pypi.python.org/simple
|
||||||
--extra-index-url https://www.piwheels.org/simple
|
--extra-index-url https://www.piwheels.org/simple
|
||||||
aioredis==1.3.1
|
aioredis==1.3.1
|
||||||
arrow==1.0.3; python_version >= '3.6'
|
arrow==1.1.0; python_version >= '3.6'
|
||||||
asgiref==3.3.4; python_version >= '3.6'
|
asgiref==3.3.4; python_version >= '3.6'
|
||||||
async-timeout==3.0.1; python_full_version >= '3.5.3'
|
async-timeout==3.0.1; python_full_version >= '3.5.3'
|
||||||
attrs==20.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
attrs==21.2.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||||
autobahn==21.3.1; python_version >= '3.7'
|
autobahn==21.3.1; python_version >= '3.7'
|
||||||
automat==20.2.0
|
automat==20.2.0
|
||||||
blessed==1.18.0
|
blessed==1.18.0
|
||||||
@@ -28,35 +28,35 @@ cryptography==3.4.7
|
|||||||
daphne==3.0.2; python_version >= '3.6'
|
daphne==3.0.2; python_version >= '3.6'
|
||||||
dateparser==1.0.0
|
dateparser==1.0.0
|
||||||
django-cors-headers==3.7.0
|
django-cors-headers==3.7.0
|
||||||
django-extensions==3.1.2
|
django-extensions==3.1.3
|
||||||
django-filter==2.4.0
|
django-filter==2.4.0
|
||||||
django-picklefield==3.0.1; python_version >= '3'
|
django-picklefield==3.0.1; python_version >= '3'
|
||||||
django-q==1.3.4
|
django-q==1.3.4
|
||||||
django==3.2
|
django==3.2.3
|
||||||
djangorestframework==3.12.4
|
djangorestframework==3.12.4
|
||||||
filelock==3.0.12
|
filelock==3.0.12
|
||||||
fuzzywuzzy[speedup]==0.18.0
|
fuzzywuzzy[speedup]==0.18.0
|
||||||
gunicorn==20.1.0
|
gunicorn==20.1.0
|
||||||
h11==0.12.0; python_version >= '3.6'
|
h11==0.12.0; python_version >= '3.6'
|
||||||
hiredis==2.0.0; python_version >= '3.6'
|
hiredis==2.0.0; python_version >= '3.6'
|
||||||
httptools==0.1.1
|
httptools==0.1.2
|
||||||
humanfriendly==9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
humanfriendly==9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||||
hyperlink==21.0.0
|
hyperlink==21.0.0
|
||||||
idna==2.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
idna==2.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||||
imap-tools==0.39.0
|
imap-tools==0.41.0
|
||||||
img2pdf==0.4.0
|
img2pdf==0.4.1
|
||||||
incremental==21.3.0
|
incremental==21.3.0
|
||||||
inotify-simple==1.3.5; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
inotify-simple==1.3.5; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||||
inotifyrecursive==0.3.5
|
inotifyrecursive==0.3.5
|
||||||
joblib==1.0.1; python_version >= '3.6'
|
joblib==1.0.1; python_version >= '3.6'
|
||||||
langdetect==1.0.8
|
langdetect==1.0.9
|
||||||
lxml==4.6.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
lxml==4.6.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||||
msgpack==1.0.2
|
msgpack==1.0.2
|
||||||
numpy==1.19.5
|
numpy==1.19.5
|
||||||
ocrmypdf==11.7.3
|
ocrmypdf==12.0.1
|
||||||
pathvalidate==2.4.1
|
pathvalidate==2.4.1
|
||||||
pdfminer.six==20201018
|
pdfminer.six==20201018
|
||||||
pikepdf==2.11.1
|
pikepdf==2.12.0
|
||||||
pillow==8.2.0
|
pillow==8.2.0
|
||||||
pluggy==0.13.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
pluggy==0.13.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||||
portalocker==2.3.0; python_version >= '3'
|
portalocker==2.3.0; python_version >= '3'
|
||||||
@@ -66,7 +66,7 @@ pyasn1==0.4.8
|
|||||||
pycparser==2.20; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
pycparser==2.20; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||||
pyopenssl==20.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
pyopenssl==20.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||||
python-dateutil==2.8.1
|
python-dateutil==2.8.1
|
||||||
python-dotenv==0.17.0
|
python-dotenv==0.17.1
|
||||||
python-gnupg==0.4.7
|
python-gnupg==0.4.7
|
||||||
python-levenshtein==0.12.2
|
python-levenshtein==0.12.2
|
||||||
python-magic==0.4.22
|
python-magic==0.4.22
|
||||||
@@ -78,8 +78,8 @@ reportlab==3.5.67; python_version >= '2.7' and python_version < '4'
|
|||||||
requests==2.25.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
requests==2.25.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||||
scikit-learn==0.24.0
|
scikit-learn==0.24.0
|
||||||
scipy==1.5.4
|
scipy==1.5.4
|
||||||
service-identity==18.1.0
|
service-identity==21.1.0
|
||||||
six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||||
sortedcontainers==2.3.0
|
sortedcontainers==2.3.0
|
||||||
sqlparse==0.4.1; python_version >= '3.5'
|
sqlparse==0.4.1; python_version >= '3.5'
|
||||||
threadpoolctl==2.1.0; python_version >= '3.5'
|
threadpoolctl==2.1.0; python_version >= '3.5'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Paperless consumer
|
Description=Paperless scheduler
|
||||||
Requires=redis.service
|
Requires=redis.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
|||||||
@@ -26,7 +26,8 @@
|
|||||||
"ro-RO": "src/locale/messages.ro_RO.xlf",
|
"ro-RO": "src/locale/messages.ro_RO.xlf",
|
||||||
"ru-RU": "src/locale/messages.ru_RU.xlf",
|
"ru-RU": "src/locale/messages.ru_RU.xlf",
|
||||||
"es-ES": "src/locale/messages.es_ES.xlf",
|
"es-ES": "src/locale/messages.es_ES.xlf",
|
||||||
"pl-PL": "src/locale/messages.pl_PL.xlf"
|
"pl-PL": "src/locale/messages.pl_PL.xlf",
|
||||||
|
"sv-SE": "src/locale/messages.sv_SE.xlf"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"architect": {
|
"architect": {
|
||||||
|
|||||||
@@ -1407,11 +1407,19 @@
|
|||||||
<context context-type="linenumber">68</context>
|
<context context-type="linenumber">68</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
|
||||||
|
<source>Add item</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
|
||||||
|
<context context-type="linenumber">11</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">Used for both types and correspondents</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
|
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
|
||||||
<source>Suggestions:</source>
|
<source>Suggestions:</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
|
||||||
<context context-type="linenumber">29</context>
|
<context context-type="linenumber">31</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="27d158b47717ff9305d19866960418c603f19d55" datatype="html">
|
<trans-unit id="27d158b47717ff9305d19866960418c603f19d55" datatype="html">
|
||||||
@@ -1421,6 +1429,13 @@
|
|||||||
<context context-type="linenumber">3</context>
|
<context context-type="linenumber">3</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
|
||||||
|
<source>Add tag</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
|
||||||
|
<context context-type="linenumber">11</context>
|
||||||
|
</context-group>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
|
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
|
||||||
<source>Show all</source>
|
<source>Show all</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@@ -1731,11 +1746,18 @@
|
|||||||
<context context-type="linenumber">101</context>
|
<context context-type="linenumber">101</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2119857572761283468" datatype="html">
|
<trans-unit id="2119857572761283468" datatype="html">
|
||||||
@@ -1882,6 +1904,14 @@
|
|||||||
<context context-type="linenumber">23</context>
|
<context context-type="linenumber">23</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="4460262093225954455" datatype="html">
|
||||||
|
<source>Search score</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
|
||||||
|
<context context-type="linenumber">28</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4561076822163447092" datatype="html">
|
<trans-unit id="4561076822163447092" datatype="html">
|
||||||
<source>Create new item</source>
|
<source>Create new item</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
constructor (private settings: SettingsService, private consumerStatusService: ConsumerStatusService, private toastService: ToastService, private router: Router) {
|
constructor (private settings: SettingsService, private consumerStatusService: ConsumerStatusService, private toastService: ToastService, private router: Router) {
|
||||||
let anyWindow = (window as any)
|
let anyWindow = (window as any)
|
||||||
anyWindow.pdfWorkerSrc = '/assets/js/pdf.worker.min.js';
|
anyWindow.pdfWorkerSrc = 'assets/js/pdf.worker.min.js';
|
||||||
this.settings.updateDarkModeSettings()
|
this.settings.updateDarkModeSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ import localeRo from '@angular/common/locales/ro';
|
|||||||
import localeRu from '@angular/common/locales/ru';
|
import localeRu from '@angular/common/locales/ru';
|
||||||
import localeEs from '@angular/common/locales/es';
|
import localeEs from '@angular/common/locales/es';
|
||||||
import localePl from '@angular/common/locales/pl';
|
import localePl from '@angular/common/locales/pl';
|
||||||
|
import localeSv from '@angular/common/locales/sv';
|
||||||
|
|
||||||
|
|
||||||
registerLocaleData(localeFr)
|
registerLocaleData(localeFr)
|
||||||
@@ -88,6 +89,7 @@ registerLocaleData(localeRo)
|
|||||||
registerLocaleData(localeRu)
|
registerLocaleData(localeRu)
|
||||||
registerLocaleData(localeEs)
|
registerLocaleData(localeEs)
|
||||||
registerLocaleData(localePl)
|
registerLocaleData(localePl)
|
||||||
|
registerLocaleData(localeSv)
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
[clearable]="allowNull"
|
[clearable]="allowNull"
|
||||||
[items]="items"
|
[items]="items"
|
||||||
[addTag]="allowCreateNew && addItemRef"
|
[addTag]="allowCreateNew && addItemRef"
|
||||||
|
addTagText="Add item"
|
||||||
|
i18n-addTagText="Used for both types and correspondents"
|
||||||
bindLabel="name"
|
bindLabel="name"
|
||||||
bindValue="id"
|
bindValue="id"
|
||||||
(change)="onChange(value)"
|
(change)="onChange(value)"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
[hideSelected]="true"
|
[hideSelected]="true"
|
||||||
[addTag]="createTagRef"
|
[addTag]="createTagRef"
|
||||||
addTagText="Add tag"
|
addTagText="Add tag"
|
||||||
|
i18n-addTagText
|
||||||
(change)="onChange(value)"
|
(change)="onChange(value)"
|
||||||
(search)="onSearch($event)"
|
(search)="onSearch($event)"
|
||||||
(focus)="clearLastSearchTerm()"
|
(focus)="clearLastSearchTerm()"
|
||||||
|
|||||||
@@ -139,7 +139,7 @@
|
|||||||
<pdf-viewer [src]="previewUrl" [original-size]="false" [show-borders]="true" [show-all]="true" [(page)]="previewCurrentPage" [render-text-mode]="2" (after-load-complete)="pdfPreviewLoaded($event)"></pdf-viewer>
|
<pdf-viewer [src]="previewUrl" [original-size]="false" [show-borders]="true" [show-all]="true" [(page)]="previewCurrentPage" [render-text-mode]="2" (after-load-complete)="pdfPreviewLoaded($event)"></pdf-viewer>
|
||||||
</div>
|
</div>
|
||||||
<ng-template #nativePdfViewer>
|
<ng-template #nativePdfViewer>
|
||||||
<object [data]="previewUrl | safe" type="application/pdf" class="preview-sticky" width="100%"></object>
|
<object [data]="previewUrl | safe" class="preview-sticky" width="100%"></object>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="getContentType() == 'text/plain'">
|
<ng-container *ngIf="getContentType() == 'text/plain'">
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
<small>{{document.created | customDate:'mediumDate'}}</small>
|
<small>{{document.created | customDate:'mediumDate'}}</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="document.__search_hit__" class="list-group-item bg-light text-dark border-0 d-flex p-0 pl-4 search-score">
|
<div *ngIf="document.__search_hit__?.score" class="list-group-item bg-light text-dark border-0 d-flex p-0 pl-4 search-score">
|
||||||
<small class="text-muted" i18n>Score:</small>
|
<small class="text-muted" i18n>Score:</small>
|
||||||
<ngb-progressbar [type]="searchScoreClass" [value]="document.__search_hit__.score" class="search-score-bar mx-2 mt-1" [max]="1"></ngb-progressbar>
|
<ngb-progressbar [type]="searchScoreClass" [value]="document.__search_hit__.score" class="search-score-bar mx-2 mt-1" [max]="1"></ngb-progressbar>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,14 +2,14 @@ import { Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from
|
|||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
||||||
import { Subscription } from 'rxjs';
|
import { Subscription } from 'rxjs';
|
||||||
import { FilterRule } from 'src/app/data/filter-rule';
|
import { FilterRule, isFullTextFilterRule } from 'src/app/data/filter-rule';
|
||||||
import { FILTER_FULLTEXT_MORELIKE } from 'src/app/data/filter-rule-type';
|
import { FILTER_FULLTEXT_MORELIKE } from 'src/app/data/filter-rule-type';
|
||||||
import { PaperlessDocument } from 'src/app/data/paperless-document';
|
import { PaperlessDocument } from 'src/app/data/paperless-document';
|
||||||
import { PaperlessSavedView } from 'src/app/data/paperless-saved-view';
|
import { PaperlessSavedView } from 'src/app/data/paperless-saved-view';
|
||||||
import { SortableDirective, SortEvent } from 'src/app/directives/sortable.directive';
|
import { SortableDirective, SortEvent } from 'src/app/directives/sortable.directive';
|
||||||
import { ConsumerStatusService } from 'src/app/services/consumer-status.service';
|
import { ConsumerStatusService } from 'src/app/services/consumer-status.service';
|
||||||
import { DocumentListViewService } from 'src/app/services/document-list-view.service';
|
import { DocumentListViewService } from 'src/app/services/document-list-view.service';
|
||||||
import { DOCUMENT_SORT_FIELDS } from 'src/app/services/rest/document.service';
|
import { DOCUMENT_SORT_FIELDS, DOCUMENT_SORT_FIELDS_FULLTEXT } from 'src/app/services/rest/document.service';
|
||||||
import { SavedViewService } from 'src/app/services/rest/saved-view.service';
|
import { SavedViewService } from 'src/app/services/rest/saved-view.service';
|
||||||
import { ToastService } from 'src/app/services/toast.service';
|
import { ToastService } from 'src/app/services/toast.service';
|
||||||
import { FilterEditorComponent } from './filter-editor/filter-editor.component';
|
import { FilterEditorComponent } from './filter-editor/filter-editor.component';
|
||||||
@@ -52,7 +52,7 @@ export class DocumentListComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getSortFields() {
|
getSortFields() {
|
||||||
return DOCUMENT_SORT_FIELDS
|
return isFullTextFilterRule(this.list.filterRules) ? DOCUMENT_SORT_FIELDS_FULLTEXT : DOCUMENT_SORT_FIELDS
|
||||||
}
|
}
|
||||||
|
|
||||||
onSort(event: SortEvent) {
|
onSort(event: SortEvent) {
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { FILTER_FULLTEXT_MORELIKE, FILTER_FULLTEXT_QUERY } from "./filter-rule-type"
|
||||||
|
|
||||||
export function cloneFilterRules(filterRules: FilterRule[]): FilterRule[] {
|
export function cloneFilterRules(filterRules: FilterRule[]): FilterRule[] {
|
||||||
if (filterRules) {
|
if (filterRules) {
|
||||||
let newRules: FilterRule[] = []
|
let newRules: FilterRule[] = []
|
||||||
@@ -10,6 +12,10 @@ export function cloneFilterRules(filterRules: FilterRule[]): FilterRule[] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isFullTextFilterRule(filterRules: FilterRule[]): boolean {
|
||||||
|
return filterRules.find(r => r.rule_type == FILTER_FULLTEXT_QUERY || r.rule_type == FILTER_FULLTEXT_MORELIKE) != null
|
||||||
|
}
|
||||||
|
|
||||||
export interface FilterRule {
|
export interface FilterRule {
|
||||||
rule_type: number
|
rule_type: number
|
||||||
value: string
|
value: string
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ export class ConsumerStatusService {
|
|||||||
connect() {
|
connect() {
|
||||||
this.disconnect()
|
this.disconnect()
|
||||||
|
|
||||||
this.statusWebSocket = new WebSocket(`${environment.webSocketProtocol}//${environment.webSocketHost}/ws/status/`);
|
this.statusWebSocket = new WebSocket(`${environment.webSocketProtocol}//${environment.webSocketHost}${environment.webSocketBaseUrl}status/`);
|
||||||
this.statusWebSocket.onmessage = (ev) => {
|
this.statusWebSocket.onmessage = (ev) => {
|
||||||
let statusMessage: WebsocketConsumerStatusMessage = JSON.parse(ev['data'])
|
let statusMessage: WebsocketConsumerStatusMessage = JSON.parse(ev['data'])
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +1,53 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { cloneFilterRules, FilterRule } from '../data/filter-rule';
|
import { cloneFilterRules, FilterRule, isFullTextFilterRule } from '../data/filter-rule';
|
||||||
import { FILTER_FULLTEXT_MORELIKE, FILTER_FULLTEXT_QUERY } from '../data/filter-rule-type';
|
|
||||||
import { PaperlessDocument } from '../data/paperless-document';
|
import { PaperlessDocument } from '../data/paperless-document';
|
||||||
import { PaperlessSavedView } from '../data/paperless-saved-view';
|
import { PaperlessSavedView } from '../data/paperless-saved-view';
|
||||||
import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys';
|
import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys';
|
||||||
import { DocumentService } from './rest/document.service';
|
import { DocumentService } from './rest/document.service';
|
||||||
import { SettingsService, SETTINGS_KEYS } from './settings.service';
|
import { SettingsService, SETTINGS_KEYS } from './settings.service';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Captures the current state of the list view.
|
||||||
|
*/
|
||||||
interface ListViewState {
|
interface ListViewState {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Title of the document list view. Either "Documents" (localized) or the name of a saved view.
|
||||||
|
*/
|
||||||
title?: string
|
title?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current paginated list of documents displayed.
|
||||||
|
*/
|
||||||
documents?: PaperlessDocument[]
|
documents?: PaperlessDocument[]
|
||||||
|
|
||||||
currentPage: number
|
currentPage: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Total amount of documents with the current filter rules. Used to calculate the number of pages.
|
||||||
|
*/
|
||||||
collectionSize: number
|
collectionSize: number
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Currently selected sort field.
|
||||||
|
*/
|
||||||
sortField: string
|
sortField: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if the list is sorted in reverse.
|
||||||
|
*/
|
||||||
sortReverse: boolean
|
sortReverse: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter rules for the current list view.
|
||||||
|
*/
|
||||||
filterRules: FilterRule[]
|
filterRules: FilterRule[]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains the IDs of all selected documents.
|
||||||
|
*/
|
||||||
selected?: Set<number>
|
selected?: Set<number>
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -134,10 +159,10 @@ export class DocumentListViewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set filterRules(filterRules: FilterRule[]) {
|
set filterRules(filterRules: FilterRule[]) {
|
||||||
this.activeListViewState.filterRules = filterRules
|
if (!isFullTextFilterRule(filterRules) && this.activeListViewState.sortField == "score") {
|
||||||
if (filterRules.find(r => (r.rule_type == FILTER_FULLTEXT_QUERY || r.rule_type == FILTER_FULLTEXT_MORELIKE))) {
|
this.activeListViewState.sortField = "created"
|
||||||
this.activeListViewState.currentPage = 1
|
|
||||||
}
|
}
|
||||||
|
this.activeListViewState.filterRules = filterRules
|
||||||
this.reload()
|
this.reload()
|
||||||
this.reduceSelectionToFilter()
|
this.reduceSelectionToFilter()
|
||||||
this.saveDocumentListView()
|
this.saveDocumentListView()
|
||||||
@@ -213,6 +238,10 @@ export class DocumentListViewService {
|
|||||||
this._activeSavedViewId = null
|
this._activeSavedViewId = null
|
||||||
this.activeListViewState.filterRules = filterRules
|
this.activeListViewState.filterRules = filterRules
|
||||||
this.activeListViewState.currentPage = 1
|
this.activeListViewState.currentPage = 1
|
||||||
|
if (isFullTextFilterRule(filterRules)) {
|
||||||
|
this.activeListViewState.sortField = "score"
|
||||||
|
this.activeListViewState.sortReverse = false
|
||||||
|
}
|
||||||
this.reduceSelectionToFilter()
|
this.reduceSelectionToFilter()
|
||||||
this.saveDocumentListView()
|
this.saveDocumentListView()
|
||||||
if (this.router.url == "/documents") {
|
if (this.router.url == "/documents") {
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ export const DOCUMENT_SORT_FIELDS = [
|
|||||||
{ field: 'modified', name: $localize`Modified` }
|
{ field: 'modified', name: $localize`Modified` }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
export const DOCUMENT_SORT_FIELDS_FULLTEXT = [
|
||||||
|
...DOCUMENT_SORT_FIELDS,
|
||||||
|
{ field: 'score', name: $localize`:Score is a value returned by the full text search engine and specifies how well a result matches the given query:Search score` }
|
||||||
|
]
|
||||||
|
|
||||||
export interface SelectionDataItem {
|
export interface SelectionDataItem {
|
||||||
id: number
|
id: number
|
||||||
document_count: number
|
document_count: number
|
||||||
|
|||||||
@@ -98,7 +98,8 @@ export class SettingsService {
|
|||||||
{code: "ro-ro", name: $localize`Romanian`, englishName: "Romanian", dateInputFormat: "dd.mm.yyyy"},
|
{code: "ro-ro", name: $localize`Romanian`, englishName: "Romanian", dateInputFormat: "dd.mm.yyyy"},
|
||||||
{code: "ru-ru", name: $localize`Russian`, englishName: "Russian", dateInputFormat: "dd.mm.yyyy"},
|
{code: "ru-ru", name: $localize`Russian`, englishName: "Russian", dateInputFormat: "dd.mm.yyyy"},
|
||||||
{code: "es-es", name: $localize`Spanish`, englishName: "Spanish", dateInputFormat: "dd/mm/yyyy"},
|
{code: "es-es", name: $localize`Spanish`, englishName: "Spanish", dateInputFormat: "dd/mm/yyyy"},
|
||||||
{code: "pl-pl", name: $localize`Polish`, englishName: "Polish", dateInputFormat: "dd.mm.yyyy"}
|
{code: "pl-pl", name: $localize`Polish`, englishName: "Polish", dateInputFormat: "dd.mm.yyyy"},
|
||||||
|
{code: "sv-se", name: $localize`Swedish`, englishName: "Swedish", dateInputFormat: "yyyy-mm-dd"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
const base_url = new URL(document.baseURI)
|
||||||
|
|
||||||
export const environment = {
|
export const environment = {
|
||||||
production: true,
|
production: true,
|
||||||
apiBaseUrl: "/api/",
|
apiBaseUrl: document.baseURI + "api/",
|
||||||
apiVersion: "2",
|
apiVersion: "2",
|
||||||
appTitle: "Paperless-ng",
|
appTitle: "Paperless-ng",
|
||||||
version: "1.4.2",
|
version: "1.4.3",
|
||||||
webSocketHost: window.location.host,
|
webSocketHost: window.location.host,
|
||||||
webSocketProtocol: (window.location.protocol == "https:" ? "wss:" : "ws:")
|
webSocketProtocol: (window.location.protocol == "https:" ? "wss:" : "ws:"),
|
||||||
|
webSocketBaseUrl: base_url.pathname + "ws/",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ export const environment = {
|
|||||||
appTitle: "Paperless-ng",
|
appTitle: "Paperless-ng",
|
||||||
version: "DEVELOPMENT",
|
version: "DEVELOPMENT",
|
||||||
webSocketHost: "localhost:8000",
|
webSocketHost: "localhost:8000",
|
||||||
webSocketProtocol: "ws:"
|
webSocketProtocol: "ws:",
|
||||||
|
webSocketBaseUrl: "/ws/",
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="needs-translation">Polish</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Swedish</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">ISO 8601</target>
|
<target state="needs-translation">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Polnisch</target>
|
<target state="translated">Polnisch</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Schwedisch</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1233,7 +1233,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">91</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Advanced search</target>
|
<target state="translated">Advanced search</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2649431021108393503" datatype="html">
|
<trans-unit id="2649431021108393503" datatype="html">
|
||||||
<source>More like</source>
|
<source>More like</source>
|
||||||
@@ -1241,7 +1241,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||||
<context context-type="linenumber">94</context>
|
<context context-type="linenumber">94</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">More like</target>
|
<target state="translated">More like</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">
|
<trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">
|
||||||
<source>Filter tags</source>
|
<source>Filter tags</source>
|
||||||
@@ -1386,7 +1386,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
||||||
<context context-type="linenumber">43</context>
|
<context context-type="linenumber">43</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
|
<target state="translated">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="0f5d856cb63c69fde44fbfc653ec0655f9040865" datatype="html">
|
<trans-unit id="0f5d856cb63c69fde44fbfc653ec0655f9040865" datatype="html">
|
||||||
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></source>
|
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></source>
|
||||||
@@ -1394,7 +1394,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
||||||
<context context-type="linenumber">44</context>
|
<context context-type="linenumber">44</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
|
<target state="translated">Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="a205126adef6251fc63305f1a6228d07bc2795a8" datatype="html">
|
<trans-unit id="a205126adef6251fc63305f1a6228d07bc2795a8" datatype="html">
|
||||||
<source>Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></source>
|
<source>Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></source>
|
||||||
@@ -1402,7 +1402,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
||||||
<context context-type="linenumber">45</context>
|
<context context-type="linenumber">45</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
|
<target state="translated">Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7985804062689412812" datatype="html">
|
<trans-unit id="7985804062689412812" datatype="html">
|
||||||
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(error.error)"/></source>
|
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(error.error)"/></source>
|
||||||
@@ -1855,7 +1855,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context>
|
||||||
<context context-type="linenumber">1</context>
|
<context context-type="linenumber">1</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
|
<target state="translated">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2807800733729323332" datatype="html">
|
<trans-unit id="2807800733729323332" datatype="html">
|
||||||
<source>Yes</source>
|
<source>Yes</source>
|
||||||
@@ -1975,13 +1975,21 @@
|
|||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">101</context>
|
<context context-type="linenumber">101</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="translated">Polish</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Swedish</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="needs-translation">Polish</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Swedish</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Polonais</target>
|
<target state="translated">Polonais</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Suédois</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="needs-translation">Polish</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Swedish</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">ISO 8601</target>
|
<target state="needs-translation">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Polacco</target>
|
<target state="translated">Polacco</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Svedese</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Pools</target>
|
<target state="translated">Pools</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Zweeds</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Polski</target>
|
<target state="translated">Polski</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Swedish</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="needs-translation">Polish</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Swedish</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Polaco</target>
|
<target state="translated">Polaco</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Sueco</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1233,7 +1233,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">91</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Advanced search</target>
|
<target state="translated">Căutare avansată</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2649431021108393503" datatype="html">
|
<trans-unit id="2649431021108393503" datatype="html">
|
||||||
<source>More like</source>
|
<source>More like</source>
|
||||||
@@ -1241,7 +1241,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||||
<context context-type="linenumber">94</context>
|
<context context-type="linenumber">94</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">More like</target>
|
<target state="translated">Asemănătoare</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">
|
<trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">
|
||||||
<source>Filter tags</source>
|
<source>Filter tags</source>
|
||||||
@@ -1386,7 +1386,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
||||||
<context context-type="linenumber">43</context>
|
<context context-type="linenumber">43</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
|
<target state="translated">S-a creat: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="0f5d856cb63c69fde44fbfc653ec0655f9040865" datatype="html">
|
<trans-unit id="0f5d856cb63c69fde44fbfc653ec0655f9040865" datatype="html">
|
||||||
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></source>
|
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></source>
|
||||||
@@ -1394,7 +1394,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
||||||
<context context-type="linenumber">44</context>
|
<context context-type="linenumber">44</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
|
<target state="translated">S-a adăugat: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="a205126adef6251fc63305f1a6228d07bc2795a8" datatype="html">
|
<trans-unit id="a205126adef6251fc63305f1a6228d07bc2795a8" datatype="html">
|
||||||
<source>Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></source>
|
<source>Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></source>
|
||||||
@@ -1402,7 +1402,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
||||||
<context context-type="linenumber">45</context>
|
<context context-type="linenumber">45</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
|
<target state="translated">S-a modificat: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7985804062689412812" datatype="html">
|
<trans-unit id="7985804062689412812" datatype="html">
|
||||||
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(error.error)"/></source>
|
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(error.error)"/></source>
|
||||||
@@ -1855,7 +1855,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context>
|
||||||
<context context-type="linenumber">1</context>
|
<context context-type="linenumber">1</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
|
<target state="translated">Se caută documentul cu asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2807800733729323332" datatype="html">
|
<trans-unit id="2807800733729323332" datatype="html">
|
||||||
<source>Yes</source>
|
<source>Yes</source>
|
||||||
@@ -1975,13 +1975,21 @@
|
|||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">101</context>
|
<context context-type="linenumber">101</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="translated">Poloneză</target>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Suedeză</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="needs-translation">Polish</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Swedish</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ISO 8601</target>
|
<target state="translated">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
2314
src-ui/src/locale/messages.sv_SE.xlf
Normal file
2314
src-ui/src/locale/messages.sv_SE.xlf
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target>crwdns3442:0crwdne3442:0</target>
|
<target>crwdns3442:0crwdne3442:0</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target>crwdns3446:0crwdne3446:0</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target>crwdns3322:0crwdne3322:0</target>
|
<target>crwdns3322:0crwdne3322:0</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
@@ -1977,11 +1977,19 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Polish</target>
|
<target state="needs-translation">Polish</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="499386805970351976" datatype="html">
|
||||||
|
<source>Swedish</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
|
<context context-type="linenumber">102</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Swedish</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4912706592792948707" datatype="html">
|
<trans-unit id="4912706592792948707" datatype="html">
|
||||||
<source>ISO 8601</source>
|
<source>ISO 8601</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
|
||||||
<context context-type="linenumber">106</context>
|
<context context-type="linenumber">107</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">ISO 8601</target>
|
<target state="needs-translation">ISO 8601</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
|||||||
30
src-ui/src/print.scss
Normal file
30
src-ui/src/print.scss
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
@media print {
|
||||||
|
#sidebarMenu, .btn-toolbar {
|
||||||
|
display: none !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.sticky-top {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
main, main.ml-sm-auto, main.mx-sm-auto {
|
||||||
|
margin-left: 0 !important;
|
||||||
|
margin-right: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
main.col-lg-10 {
|
||||||
|
max-width: 100%;
|
||||||
|
flex-basis: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.d-none.d-lg-table-cell { // always display ASN on print
|
||||||
|
display: table-cell !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
app-document-list table {
|
||||||
|
thead th:first-child, tbody td:first-child { // hide checkboxes
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
@import "theme";
|
@import "theme";
|
||||||
@import "theme_dark";
|
@import "theme_dark";
|
||||||
|
@import "print";
|
||||||
@import "node_modules/bootstrap/scss/bootstrap";
|
@import "node_modules/bootstrap/scss/bootstrap";
|
||||||
@import "~@ng-select/ng-select/themes/default.theme.css";
|
@import "~@ng-select/ng-select/themes/default.theme.css";
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from dateutil.parser import isoparse
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from whoosh import highlight, classify, query
|
from whoosh import highlight, classify, query
|
||||||
from whoosh.fields import Schema, TEXT, NUMERIC, KEYWORD, DATETIME, BOOLEAN
|
from whoosh.fields import Schema, TEXT, NUMERIC, KEYWORD, DATETIME, BOOLEAN
|
||||||
from whoosh.highlight import Formatter, get_text, HtmlFormatter
|
from whoosh.highlight import HtmlFormatter
|
||||||
from whoosh.index import create_in, exists_in, open_dir
|
from whoosh.index import create_in, exists_in, open_dir
|
||||||
from whoosh.qparser import MultifieldParser
|
from whoosh.qparser import MultifieldParser
|
||||||
from whoosh.qparser.dateparse import DateParserPlugin
|
from whoosh.qparser.dateparse import DateParserPlugin
|
||||||
@@ -147,12 +147,10 @@ def remove_document_from_index(document):
|
|||||||
|
|
||||||
class DelayedQuery:
|
class DelayedQuery:
|
||||||
|
|
||||||
@property
|
def _get_query(self):
|
||||||
def _query(self):
|
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
@property
|
def _get_query_filter(self):
|
||||||
def _query_filter(self):
|
|
||||||
criterias = []
|
criterias = []
|
||||||
for k, v in self.query_params.items():
|
for k, v in self.query_params.items():
|
||||||
if k == 'correspondent__id':
|
if k == 'correspondent__id':
|
||||||
@@ -185,16 +183,32 @@ class DelayedQuery:
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@property
|
def _get_query_sortedby(self):
|
||||||
def _query_sortedby(self):
|
if 'ordering' not in self.query_params:
|
||||||
# if not 'ordering' in self.query_params:
|
return None, False
|
||||||
return None, False
|
|
||||||
|
|
||||||
# o: str = self.query_params['ordering']
|
field: str = self.query_params['ordering']
|
||||||
# if o.startswith('-'):
|
|
||||||
# return o[1:], True
|
sort_fields_map = {
|
||||||
# else:
|
"created": "created",
|
||||||
# return o, False
|
"modified": "modified",
|
||||||
|
"added": "added",
|
||||||
|
"title": "title",
|
||||||
|
"correspondent__name": "correspondent",
|
||||||
|
"document_type__name": "type",
|
||||||
|
"archive_serial_number": "asn"
|
||||||
|
}
|
||||||
|
|
||||||
|
if field.startswith('-'):
|
||||||
|
field = field[1:]
|
||||||
|
reverse = True
|
||||||
|
else:
|
||||||
|
reverse = False
|
||||||
|
|
||||||
|
if field not in sort_fields_map:
|
||||||
|
return None, False
|
||||||
|
else:
|
||||||
|
return sort_fields_map[field], reverse
|
||||||
|
|
||||||
def __init__(self, searcher: Searcher, query_params, page_size):
|
def __init__(self, searcher: Searcher, query_params, page_size):
|
||||||
self.searcher = searcher
|
self.searcher = searcher
|
||||||
@@ -211,13 +225,13 @@ class DelayedQuery:
|
|||||||
if item.start in self.saved_results:
|
if item.start in self.saved_results:
|
||||||
return self.saved_results[item.start]
|
return self.saved_results[item.start]
|
||||||
|
|
||||||
q, mask = self._query
|
q, mask = self._get_query()
|
||||||
sortedby, reverse = self._query_sortedby
|
sortedby, reverse = self._get_query_sortedby()
|
||||||
|
|
||||||
page: ResultsPage = self.searcher.search_page(
|
page: ResultsPage = self.searcher.search_page(
|
||||||
q,
|
q,
|
||||||
mask=mask,
|
mask=mask,
|
||||||
filter=self._query_filter,
|
filter=self._get_query_filter(),
|
||||||
pagenum=math.floor(item.start / self.page_size) + 1,
|
pagenum=math.floor(item.start / self.page_size) + 1,
|
||||||
pagelen=self.page_size,
|
pagelen=self.page_size,
|
||||||
sortedby=sortedby,
|
sortedby=sortedby,
|
||||||
@@ -227,14 +241,18 @@ class DelayedQuery:
|
|||||||
surround=50)
|
surround=50)
|
||||||
page.results.formatter = HtmlFormatter(tagname="span", between=" ... ")
|
page.results.formatter = HtmlFormatter(tagname="span", between=" ... ")
|
||||||
|
|
||||||
if not self.first_score and len(page.results) > 0:
|
if (not self.first_score and
|
||||||
|
len(page.results) > 0 and
|
||||||
|
sortedby is None):
|
||||||
self.first_score = page.results[0].score
|
self.first_score = page.results[0].score
|
||||||
|
|
||||||
if self.first_score:
|
page.results.top_n = list(map(
|
||||||
page.results.top_n = list(map(
|
lambda hit: (
|
||||||
lambda hit: (hit[0] / self.first_score, hit[1]),
|
(hit[0] / self.first_score) if self.first_score else None,
|
||||||
page.results.top_n
|
hit[1]
|
||||||
))
|
),
|
||||||
|
page.results.top_n
|
||||||
|
))
|
||||||
|
|
||||||
self.saved_results[item.start] = page
|
self.saved_results[item.start] = page
|
||||||
|
|
||||||
@@ -243,8 +261,7 @@ class DelayedQuery:
|
|||||||
|
|
||||||
class DelayedFullTextQuery(DelayedQuery):
|
class DelayedFullTextQuery(DelayedQuery):
|
||||||
|
|
||||||
@property
|
def _get_query(self):
|
||||||
def _query(self):
|
|
||||||
q_str = self.query_params['query']
|
q_str = self.query_params['query']
|
||||||
qp = MultifieldParser(
|
qp = MultifieldParser(
|
||||||
["content", "title", "correspondent", "tag", "type"],
|
["content", "title", "correspondent", "tag", "type"],
|
||||||
@@ -261,8 +278,7 @@ class DelayedFullTextQuery(DelayedQuery):
|
|||||||
|
|
||||||
class DelayedMoreLikeThisQuery(DelayedQuery):
|
class DelayedMoreLikeThisQuery(DelayedQuery):
|
||||||
|
|
||||||
@property
|
def _get_query(self):
|
||||||
def _query(self):
|
|
||||||
more_like_doc_id = int(self.query_params['more_like_id'])
|
more_like_doc_id = int(self.query_params['more_like_id'])
|
||||||
content = Document.objects.get(id=more_like_doc_id).content
|
content = Document.objects.get(id=more_like_doc_id).content
|
||||||
|
|
||||||
|
|||||||
@@ -106,6 +106,12 @@ class Command(BaseCommand):
|
|||||||
help="Specify the ID of a document, and this command will only "
|
help="Specify the ID of a document, and this command will only "
|
||||||
"run on this specific document."
|
"run on this specific document."
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
|
||||||
@@ -140,7 +146,8 @@ class Command(BaseCommand):
|
|||||||
handle_document,
|
handle_document,
|
||||||
document_ids
|
document_ids
|
||||||
),
|
),
|
||||||
total=len(document_ids)
|
total=len(document_ids),
|
||||||
|
disable=options['no_progress_bar']
|
||||||
))
|
))
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("Aborting...")
|
print("Aborting...")
|
||||||
|
|||||||
@@ -57,6 +57,12 @@ class Command(BaseCommand):
|
|||||||
"do not belong to the current export, such as files from "
|
"do not belong to the current export, such as files from "
|
||||||
"deleted documents."
|
"deleted documents."
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
BaseCommand.__init__(self, *args, **kwargs)
|
BaseCommand.__init__(self, *args, **kwargs)
|
||||||
@@ -81,9 +87,9 @@ class Command(BaseCommand):
|
|||||||
raise CommandError("That path doesn't appear to be writable")
|
raise CommandError("That path doesn't appear to be writable")
|
||||||
|
|
||||||
with FileLock(settings.MEDIA_LOCK):
|
with FileLock(settings.MEDIA_LOCK):
|
||||||
self.dump()
|
self.dump(options['no_progress_bar'])
|
||||||
|
|
||||||
def dump(self):
|
def dump(self, progress_bar_disable=False):
|
||||||
# 1. Take a snapshot of what files exist in the current export folder
|
# 1. Take a snapshot of what files exist in the current export folder
|
||||||
for root, dirs, files in os.walk(self.target):
|
for root, dirs, files in os.walk(self.target):
|
||||||
self.files_in_export_dir.extend(
|
self.files_in_export_dir.extend(
|
||||||
@@ -124,8 +130,11 @@ class Command(BaseCommand):
|
|||||||
"json", User.objects.all()))
|
"json", User.objects.all()))
|
||||||
|
|
||||||
# 3. Export files from each document
|
# 3. Export files from each document
|
||||||
for index, document_dict in tqdm.tqdm(enumerate(document_manifest),
|
for index, document_dict in tqdm.tqdm(
|
||||||
total=len(document_manifest)):
|
enumerate(document_manifest),
|
||||||
|
total=len(document_manifest),
|
||||||
|
disable=progress_bar_disable
|
||||||
|
):
|
||||||
# 3.1. store files unencrypted
|
# 3.1. store files unencrypted
|
||||||
document_dict["fields"]["storage_type"] = Document.STORAGE_TYPE_UNENCRYPTED # NOQA: E501
|
document_dict["fields"]["storage_type"] = Document.STORAGE_TYPE_UNENCRYPTED # NOQA: E501
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ class Command(BaseCommand):
|
|||||||
|
|
||||||
def add_arguments(self, parser):
|
def add_arguments(self, parser):
|
||||||
parser.add_argument("source")
|
parser.add_argument("source")
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
BaseCommand.__init__(self, *args, **kwargs)
|
BaseCommand.__init__(self, *args, **kwargs)
|
||||||
@@ -70,7 +76,7 @@ class Command(BaseCommand):
|
|||||||
# Fill up the database with whatever is in the manifest
|
# Fill up the database with whatever is in the manifest
|
||||||
call_command("loaddata", manifest_path)
|
call_command("loaddata", manifest_path)
|
||||||
|
|
||||||
self._import_files_from_manifest()
|
self._import_files_from_manifest(options['no_progress_bar'])
|
||||||
|
|
||||||
print("Updating search index...")
|
print("Updating search index...")
|
||||||
call_command('document_index', 'reindex')
|
call_command('document_index', 'reindex')
|
||||||
@@ -111,7 +117,7 @@ class Command(BaseCommand):
|
|||||||
f"does not appear to be in the source directory."
|
f"does not appear to be in the source directory."
|
||||||
)
|
)
|
||||||
|
|
||||||
def _import_files_from_manifest(self):
|
def _import_files_from_manifest(self, progress_bar_disable):
|
||||||
|
|
||||||
os.makedirs(settings.ORIGINALS_DIR, exist_ok=True)
|
os.makedirs(settings.ORIGINALS_DIR, exist_ok=True)
|
||||||
os.makedirs(settings.THUMBNAIL_DIR, exist_ok=True)
|
os.makedirs(settings.THUMBNAIL_DIR, exist_ok=True)
|
||||||
@@ -123,7 +129,10 @@ class Command(BaseCommand):
|
|||||||
lambda r: r["model"] == "documents.document",
|
lambda r: r["model"] == "documents.document",
|
||||||
self.manifest))
|
self.manifest))
|
||||||
|
|
||||||
for record in tqdm.tqdm(manifest_documents):
|
for record in tqdm.tqdm(
|
||||||
|
manifest_documents,
|
||||||
|
disable=progress_bar_disable
|
||||||
|
):
|
||||||
|
|
||||||
document = Document.objects.get(pk=record["pk"])
|
document = Document.objects.get(pk=record["pk"])
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,16 @@ class Command(BaseCommand):
|
|||||||
|
|
||||||
def add_arguments(self, parser):
|
def add_arguments(self, parser):
|
||||||
parser.add_argument("command", choices=['reindex', 'optimize'])
|
parser.add_argument("command", choices=['reindex', 'optimize'])
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
if options['command'] == 'reindex':
|
if options['command'] == 'reindex':
|
||||||
index_reindex()
|
index_reindex(progress_bar_disable=options['no_progress_bar'])
|
||||||
elif options['command'] == 'optimize':
|
elif options['command'] == 'optimize':
|
||||||
index_optimize()
|
index_optimize()
|
||||||
|
|||||||
@@ -13,9 +13,20 @@ class Command(BaseCommand):
|
|||||||
This will rename all documents to match the latest filename format.
|
This will rename all documents to match the latest filename format.
|
||||||
""".replace(" ", "")
|
""".replace(" ", "")
|
||||||
|
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
|
||||||
logging.getLogger().handlers[0].level = logging.ERROR
|
logging.getLogger().handlers[0].level = logging.ERROR
|
||||||
|
|
||||||
for document in tqdm.tqdm(Document.objects.all()):
|
for document in tqdm.tqdm(
|
||||||
|
Document.objects.all(),
|
||||||
|
disable=options['no_progress_bar']
|
||||||
|
):
|
||||||
post_save.send(Document, instance=document)
|
post_save.send(Document, instance=document)
|
||||||
|
|||||||
@@ -57,6 +57,12 @@ class Command(BaseCommand):
|
|||||||
"set correspondent, document and remove correspondents, types"
|
"set correspondent, document and remove correspondents, types"
|
||||||
"and tags that do not match anymore due to changed rules."
|
"and tags that do not match anymore due to changed rules."
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
|
||||||
@@ -68,7 +74,10 @@ class Command(BaseCommand):
|
|||||||
|
|
||||||
classifier = load_classifier()
|
classifier = load_classifier()
|
||||||
|
|
||||||
for document in tqdm.tqdm(documents):
|
for document in tqdm.tqdm(
|
||||||
|
documents,
|
||||||
|
disable=options['no_progress_bar']
|
||||||
|
):
|
||||||
|
|
||||||
if options['correspondent']:
|
if options['correspondent']:
|
||||||
set_correspondent(
|
set_correspondent(
|
||||||
|
|||||||
@@ -8,8 +8,16 @@ class Command(BaseCommand):
|
|||||||
This command checks your document archive for issues.
|
This command checks your document archive for issues.
|
||||||
""".replace(" ", "")
|
""".replace(" ", "")
|
||||||
|
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
|
||||||
messages = check_sanity(progress=True)
|
messages = check_sanity(progress=not options['no_progress_bar'])
|
||||||
|
|
||||||
messages.log_messages()
|
messages.log_messages()
|
||||||
|
|||||||
@@ -47,6 +47,12 @@ class Command(BaseCommand):
|
|||||||
help="Specify the ID of a document, and this command will only "
|
help="Specify the ID of a document, and this command will only "
|
||||||
"run on this specific document."
|
"run on this specific document."
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--no-progress-bar",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="If set, the progress bar will not be shown"
|
||||||
|
)
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
logging.getLogger().handlers[0].level = logging.ERROR
|
logging.getLogger().handlers[0].level = logging.ERROR
|
||||||
@@ -65,5 +71,7 @@ class Command(BaseCommand):
|
|||||||
|
|
||||||
with multiprocessing.Pool() as pool:
|
with multiprocessing.Pool() as pool:
|
||||||
list(tqdm.tqdm(
|
list(tqdm.tqdm(
|
||||||
pool.imap_unordered(_process_document, ids), total=len(ids)
|
pool.imap_unordered(_process_document, ids),
|
||||||
|
total=len(ids),
|
||||||
|
disable=options['no_progress_bar']
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -60,12 +60,7 @@ def check_sanity(progress=False):
|
|||||||
if lockfile in present_files:
|
if lockfile in present_files:
|
||||||
present_files.remove(lockfile)
|
present_files.remove(lockfile)
|
||||||
|
|
||||||
if progress:
|
for doc in tqdm(Document.objects.all(), disable=not progress):
|
||||||
docs = tqdm(Document.objects.all())
|
|
||||||
else:
|
|
||||||
docs = Document.objects.all()
|
|
||||||
|
|
||||||
for doc in docs:
|
|
||||||
# Check sanity of the thumbnail
|
# Check sanity of the thumbnail
|
||||||
if not os.path.isfile(doc.thumbnail_path):
|
if not os.path.isfile(doc.thumbnail_path):
|
||||||
messages.error(f"Thumbnail of document {doc.pk} does not exist.")
|
messages.error(f"Thumbnail of document {doc.pk} does not exist.")
|
||||||
|
|||||||
@@ -42,3 +42,58 @@ body {
|
|||||||
border-top-left-radius: 0;
|
border-top-left-radius: 0;
|
||||||
border-top-right-radius: 0;
|
border-top-right-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
/*
|
||||||
|
From theme_dark.scss
|
||||||
|
$primary-dark-mode: #45973a;
|
||||||
|
$danger-dark-mode: #b71631;
|
||||||
|
$bg-dark-mode: #161618;
|
||||||
|
$bg-dark-mode-accent: #21262d;
|
||||||
|
$bg-light-dark-mode: #1c1c1f;
|
||||||
|
$text-color-dark-mode: #abb2bf;
|
||||||
|
$border-color-dark-mode: #47494f;
|
||||||
|
*/
|
||||||
|
body {
|
||||||
|
background-color: #161618 !important;
|
||||||
|
color: #abb2bf;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg.logo .text {
|
||||||
|
fill: #abb2bf!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control:not(.is-invalid):not(.btn) {
|
||||||
|
border-color: #47494f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control:not(.btn) {
|
||||||
|
background-color: #161618;
|
||||||
|
color: #abb2bf;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control:not(.btn)::placeholder {
|
||||||
|
color: #abb2bf;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control:not(.btn):focus {
|
||||||
|
background-color: #1c1c1f !important;
|
||||||
|
color: #8e97a9 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #17541f;
|
||||||
|
border-color: #17541f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary:hover, .btn-primary:focus {
|
||||||
|
background-color: #0f3614;
|
||||||
|
border-color: #0c2c10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary:not(:disabled):not(.disabled):active {
|
||||||
|
background-color: #0c2c10;
|
||||||
|
border-color: #09220d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -20,13 +20,13 @@ def index_optimize():
|
|||||||
writer.commit(optimize=True)
|
writer.commit(optimize=True)
|
||||||
|
|
||||||
|
|
||||||
def index_reindex():
|
def index_reindex(progress_bar_disable=False):
|
||||||
documents = Document.objects.all()
|
documents = Document.objects.all()
|
||||||
|
|
||||||
ix = index.open_index(recreate=True)
|
ix = index.open_index(recreate=True)
|
||||||
|
|
||||||
with AsyncWriter(ix) as writer:
|
with AsyncWriter(ix) as writer:
|
||||||
for document in tqdm.tqdm(documents):
|
for document in tqdm.tqdm(documents, disable=progress_bar_disable):
|
||||||
index.update_document(writer, document)
|
index.update_document(writer, document)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>Paperless-ng</title>
|
<title>Paperless-ng</title>
|
||||||
<base href="/">
|
<base href="{% url 'base' %}">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="username" content="{{username}}">
|
<meta name="username" content="{{username}}">
|
||||||
<meta name="full_name" content="{{full_name}}">
|
<meta name="full_name" content="{{full_name}}">
|
||||||
<meta name="cookie_prefix" content="{{cookie_prefix}}">
|
<meta name="cookie_prefix" content="{{cookie_prefix}}">
|
||||||
|
<meta name="robots" content="noindex,nofollow">
|
||||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||||
<link rel="manifest" href="{% static webmanifest %}">
|
<link rel="manifest" href="{% static webmanifest %}">
|
||||||
<link rel="stylesheet" href="{% static styles_css %}">
|
<link rel="stylesheet" href="{% static styles_css %}">
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -471,6 +471,31 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
|
|||||||
self.assertNotIn(d5.id, search_query("&added__date__lt=" + datetime.datetime(2020, 1, 2).strftime("%Y-%m-%d")))
|
self.assertNotIn(d5.id, search_query("&added__date__lt=" + datetime.datetime(2020, 1, 2).strftime("%Y-%m-%d")))
|
||||||
self.assertIn(d5.id, search_query("&added__date__gt=" + datetime.datetime(2020, 1, 2).strftime("%Y-%m-%d")))
|
self.assertIn(d5.id, search_query("&added__date__gt=" + datetime.datetime(2020, 1, 2).strftime("%Y-%m-%d")))
|
||||||
|
|
||||||
|
def test_search_sorting(self):
|
||||||
|
c1 = Correspondent.objects.create(name="corres Ax")
|
||||||
|
c2 = Correspondent.objects.create(name="corres Cx")
|
||||||
|
c3 = Correspondent.objects.create(name="corres Bx")
|
||||||
|
d1 = Document.objects.create(checksum="1", correspondent=c1, content="test", archive_serial_number=2, title="3")
|
||||||
|
d2 = Document.objects.create(checksum="2", correspondent=c2, content="test", archive_serial_number=3, title="2")
|
||||||
|
d3 = Document.objects.create(checksum="3", correspondent=c3, content="test", archive_serial_number=1, title="1")
|
||||||
|
|
||||||
|
with AsyncWriter(index.open_index()) as writer:
|
||||||
|
for doc in Document.objects.all():
|
||||||
|
index.update_document(writer, doc)
|
||||||
|
|
||||||
|
def search_query(q):
|
||||||
|
r = self.client.get("/api/documents/?query=test" + q)
|
||||||
|
self.assertEqual(r.status_code, 200)
|
||||||
|
return [hit['id'] for hit in r.data['results']]
|
||||||
|
|
||||||
|
self.assertListEqual(search_query("&ordering=archive_serial_number"), [d3.id, d1.id, d2.id])
|
||||||
|
self.assertListEqual(search_query("&ordering=-archive_serial_number"), [d2.id, d1.id, d3.id])
|
||||||
|
self.assertListEqual(search_query("&ordering=title"), [d3.id, d2.id, d1.id])
|
||||||
|
self.assertListEqual(search_query("&ordering=-title"), [d1.id, d2.id, d3.id])
|
||||||
|
self.assertListEqual(search_query("&ordering=correspondent__name"), [d1.id, d3.id, d2.id])
|
||||||
|
self.assertListEqual(search_query("&ordering=-correspondent__name"), [d2.id, d3.id, d1.id])
|
||||||
|
|
||||||
|
|
||||||
def test_statistics(self):
|
def test_statistics(self):
|
||||||
|
|
||||||
doc1 = Document.objects.create(title="none1", checksum="A")
|
doc1 = Document.objects.create(title="none1", checksum="A")
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:47\n"
|
"PO-Revision-Date: 2021-05-04 21:52\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Czech\n"
|
"Language-Team: Czech\n"
|
||||||
"Language: cs_CZ\n"
|
"Language: cs_CZ\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Heslo"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Přihlásit se"
|
msgstr "Přihlásit se"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Němčina"
|
msgstr "Němčina"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Holandština"
|
msgstr "Holandština"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francouzština"
|
msgstr "Francouzština"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Správa Paperless-ng"
|
msgstr "Správa Paperless-ng"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 19:51\n"
|
"PO-Revision-Date: 2021-05-04 23:04\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"Language: de_DE\n"
|
"Language: de_DE\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Kennwort"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Englisch (US)"
|
msgstr "Englisch (US)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Englisch (UK)"
|
msgstr "Englisch (UK)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Deutsch"
|
msgstr "Deutsch"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Niederländisch"
|
msgstr "Niederländisch"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Französisch"
|
msgstr "Französisch"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portugiesisch (Brasilien)"
|
msgstr "Portugiesisch (Brasilien)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Portugiesisch"
|
msgstr "Portugiesisch"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italienisch"
|
msgstr "Italienisch"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Rumänisch"
|
msgstr "Rumänisch"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russisch"
|
msgstr "Russisch"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Spanisch"
|
msgstr "Spanisch"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Polnisch"
|
msgstr "Polnisch"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Schwedisch"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Paperless-ng Administration"
|
msgstr "Paperless-ng Administration"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:47\n"
|
"PO-Revision-Date: 2021-05-05 21:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: English, United Kingdom\n"
|
"Language-Team: English, United Kingdom\n"
|
||||||
"Language: en_GB\n"
|
"Language: en_GB\n"
|
||||||
@@ -336,11 +336,11 @@ msgstr "title or content contains"
|
|||||||
|
|
||||||
#: documents/models.py:393
|
#: documents/models.py:393
|
||||||
msgid "fulltext query"
|
msgid "fulltext query"
|
||||||
msgstr ""
|
msgstr "fulltext query"
|
||||||
|
|
||||||
#: documents/models.py:394
|
#: documents/models.py:394
|
||||||
msgid "more like this"
|
msgid "more like this"
|
||||||
msgstr ""
|
msgstr "more like this"
|
||||||
|
|
||||||
#: documents/models.py:405
|
#: documents/models.py:405
|
||||||
msgid "rule type"
|
msgid "rule type"
|
||||||
@@ -412,53 +412,57 @@ msgstr "Password"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Sign in"
|
msgstr "Sign in"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "English (US)"
|
msgstr "English (US)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "English (GB)"
|
msgstr "English (GB)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "German"
|
msgstr "German"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Dutch"
|
msgstr "Dutch"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "French"
|
msgstr "French"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portuguese (Brazil)"
|
msgstr "Portuguese (Brazil)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Portuguese"
|
msgstr "Portuguese"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italian"
|
msgstr "Italian"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Romanian"
|
msgstr "Romanian"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russian"
|
msgstr "Russian"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Spanish"
|
msgstr "Spanish"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr "Polish"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Swedish"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -416,54 +416,58 @@ msgstr ""
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:47\n"
|
"PO-Revision-Date: 2021-05-04 21:52\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
"Language: es_ES\n"
|
"Language: es_ES\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Contraseña"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Inglés (US)"
|
msgstr "Inglés (US)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Inglés (Gran Bretaña)"
|
msgstr "Inglés (Gran Bretaña)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Alemán"
|
msgstr "Alemán"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Alemán"
|
msgstr "Alemán"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francés"
|
msgstr "Francés"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portugués (Brasil)"
|
msgstr "Portugués (Brasil)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italiano"
|
msgstr "Italiano"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Rumano"
|
msgstr "Rumano"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Ruso"
|
msgstr "Ruso"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Español"
|
msgstr "Español"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Paperless-ng Administración"
|
msgstr "Paperless-ng Administración"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 13:47\n"
|
"PO-Revision-Date: 2021-05-05 15:10\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Language: fr_FR\n"
|
"Language: fr_FR\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Mot de passe"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "S'identifier"
|
msgstr "S'identifier"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Anglais (US)"
|
msgstr "Anglais (US)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Anglais (GB)"
|
msgstr "Anglais (GB)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Allemand"
|
msgstr "Allemand"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Néerlandais"
|
msgstr "Néerlandais"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portugais (Brésil)"
|
msgstr "Portugais (Brésil)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Portugais"
|
msgstr "Portugais"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italien"
|
msgstr "Italien"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Roumain"
|
msgstr "Roumain"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russe"
|
msgstr "Russe"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Espagnol"
|
msgstr "Espagnol"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Polonais"
|
msgstr "Polonais"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Suédois"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Administration de Paperless-ng"
|
msgstr "Administration de Paperless-ng"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:47\n"
|
"PO-Revision-Date: 2021-05-04 21:52\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Hungarian\n"
|
"Language-Team: Hungarian\n"
|
||||||
"Language: hu_HU\n"
|
"Language: hu_HU\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr ""
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Angol (US)"
|
msgstr "Angol (US)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Német"
|
msgstr "Német"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 18:50\n"
|
"PO-Revision-Date: 2021-05-05 08:19\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
"Language: it_IT\n"
|
"Language: it_IT\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Password"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Accedi"
|
msgstr "Accedi"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Inglese (US)"
|
msgstr "Inglese (US)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Inglese (GB)"
|
msgstr "Inglese (GB)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Tedesco"
|
msgstr "Tedesco"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Olandese"
|
msgstr "Olandese"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francese"
|
msgstr "Francese"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portoghese (Brasile)"
|
msgstr "Portoghese (Brasile)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Portoghese"
|
msgstr "Portoghese"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italiano"
|
msgstr "Italiano"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Rumeno"
|
msgstr "Rumeno"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russo"
|
msgstr "Russo"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Spagnolo"
|
msgstr "Spagnolo"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Polacco"
|
msgstr "Polacco"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Svedese"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Amministrazione di Paperless-ng"
|
msgstr "Amministrazione di Paperless-ng"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-18 13:19\n"
|
"PO-Revision-Date: 2021-05-06 00:07\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Dutch\n"
|
"Language-Team: Dutch\n"
|
||||||
"Language: nl_NL\n"
|
"Language: nl_NL\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Wachtwoord"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Aanmelden"
|
msgstr "Aanmelden"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Engels (US)"
|
msgstr "Engels (US)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Engels (Brits)"
|
msgstr "Engels (Brits)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Duits"
|
msgstr "Duits"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Nederlands"
|
msgstr "Nederlands"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Frans"
|
msgstr "Frans"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portugees (Brazilië)"
|
msgstr "Portugees (Brazilië)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Portugees"
|
msgstr "Portugees"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italiaans"
|
msgstr "Italiaans"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Roemeens"
|
msgstr "Roemeens"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russisch"
|
msgstr "Russisch"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Spaans"
|
msgstr "Spaans"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Pools"
|
msgstr "Pools"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Zweeds"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Paperless-ng administratie"
|
msgstr "Paperless-ng administratie"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 14:46\n"
|
"PO-Revision-Date: 2021-05-04 21:51\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Polish\n"
|
"Language-Team: Polish\n"
|
||||||
"Language: pl_PL\n"
|
"Language: pl_PL\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Hasło"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Zaloguj się"
|
msgstr "Zaloguj się"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Angielski (USA)"
|
msgstr "Angielski (USA)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Angielski (Wielka Brytania)"
|
msgstr "Angielski (Wielka Brytania)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Niemiecki"
|
msgstr "Niemiecki"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Holenderski"
|
msgstr "Holenderski"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francuski"
|
msgstr "Francuski"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portugalski (Brazylia)"
|
msgstr "Portugalski (Brazylia)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Portugalski"
|
msgstr "Portugalski"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Włoski"
|
msgstr "Włoski"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Rumuński"
|
msgstr "Rumuński"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Rosyjski"
|
msgstr "Rosyjski"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Hiszpański"
|
msgstr "Hiszpański"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Polski"
|
msgstr "Polski"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Administracja Paperless-ng"
|
msgstr "Administracja Paperless-ng"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:47\n"
|
"PO-Revision-Date: 2021-05-04 21:51\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Portuguese, Brazilian\n"
|
"Language-Team: Portuguese, Brazilian\n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Senha"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Entrar"
|
msgstr "Entrar"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Inglês (EUA)"
|
msgstr "Inglês (EUA)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Inglês (GB)"
|
msgstr "Inglês (GB)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Alemão"
|
msgstr "Alemão"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Holandês"
|
msgstr "Holandês"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francês"
|
msgstr "Francês"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Português (Brasil)"
|
msgstr "Português (Brasil)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italiano"
|
msgstr "Italiano"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Romeno"
|
msgstr "Romeno"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Administração do Paperless-ng"
|
msgstr "Administração do Paperless-ng"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 21:56\n"
|
"PO-Revision-Date: 2021-05-05 18:07\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Portuguese\n"
|
"Language-Team: Portuguese\n"
|
||||||
"Language: pt_PT\n"
|
"Language: pt_PT\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Palavra-passe"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Iniciar sessão"
|
msgstr "Iniciar sessão"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Inglês (EUA)"
|
msgstr "Inglês (EUA)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "English (GB)"
|
msgstr "English (GB)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Deutsch"
|
msgstr "Deutsch"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Nederlandse"
|
msgstr "Nederlandse"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Português (Brasil)"
|
msgstr "Português (Brasil)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Português"
|
msgstr "Português"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italiano"
|
msgstr "Italiano"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Romeno"
|
msgstr "Romeno"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russo"
|
msgstr "Russo"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Espanhol"
|
msgstr "Espanhol"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Polaco"
|
msgstr "Polaco"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Sueco"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Administração do Paperless-ng"
|
msgstr "Administração do Paperless-ng"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:46\n"
|
"PO-Revision-Date: 2021-05-04 23:04\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Romanian\n"
|
"Language-Team: Romanian\n"
|
||||||
"Language: ro_RO\n"
|
"Language: ro_RO\n"
|
||||||
@@ -336,11 +336,11 @@ msgstr "titlul sau conținutul conține"
|
|||||||
|
|
||||||
#: documents/models.py:393
|
#: documents/models.py:393
|
||||||
msgid "fulltext query"
|
msgid "fulltext query"
|
||||||
msgstr ""
|
msgstr "query fulltext"
|
||||||
|
|
||||||
#: documents/models.py:394
|
#: documents/models.py:394
|
||||||
msgid "more like this"
|
msgid "more like this"
|
||||||
msgstr ""
|
msgstr "mai multe ca aceasta"
|
||||||
|
|
||||||
#: documents/models.py:405
|
#: documents/models.py:405
|
||||||
msgid "rule type"
|
msgid "rule type"
|
||||||
@@ -412,53 +412,57 @@ msgstr "Parolă"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Conectare"
|
msgstr "Conectare"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Engleză (Americană)"
|
msgstr "Engleză (Americană)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Engleză (Britanică)"
|
msgstr "Engleză (Britanică)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Germană"
|
msgstr "Germană"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Olandeză"
|
msgstr "Olandeză"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Franceză"
|
msgstr "Franceză"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portugheză (Brazilia)"
|
msgstr "Portugheză (Brazilia)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Portugheză"
|
msgstr "Portugheză"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italiană"
|
msgstr "Italiană"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Română"
|
msgstr "Română"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Rusă"
|
msgstr "Rusă"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Spaniolă"
|
msgstr "Spaniolă"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr "Poloneză"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Suedeză"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:47\n"
|
"PO-Revision-Date: 2021-05-04 21:51\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
"Language: ru_RU\n"
|
"Language: ru_RU\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "Пароль"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Вход"
|
msgstr "Вход"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "Английский (США)"
|
msgstr "Английский (США)"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "Английский (Великобритании)"
|
msgstr "Английский (Великобритании)"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Немецкий"
|
msgstr "Немецкий"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Датский"
|
msgstr "Датский"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Французский"
|
msgstr "Французский"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "Portuguese (Brazil)"
|
msgstr "Portuguese (Brazil)"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "Португальский"
|
msgstr "Португальский"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italian"
|
msgstr "Italian"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Romanian"
|
msgstr "Romanian"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Русский"
|
msgstr "Русский"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "Испанский"
|
msgstr "Испанский"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "Администрирование Paperless-ng"
|
msgstr "Администрирование Paperless-ng"
|
||||||
|
|||||||
678
src/locale/sv_SE/LC_MESSAGES/django.po
Normal file
678
src/locale/sv_SE/LC_MESSAGES/django.po
Normal file
@@ -0,0 +1,678 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: paperless-ng\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
|
"PO-Revision-Date: 2021-05-10 13:35\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Swedish\n"
|
||||||
|
"Language: sv_SE\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Crowdin-Project: paperless-ng\n"
|
||||||
|
"X-Crowdin-Project-ID: 434940\n"
|
||||||
|
"X-Crowdin-Language: sv-SE\n"
|
||||||
|
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
|
||||||
|
"X-Crowdin-File-ID: 54\n"
|
||||||
|
|
||||||
|
#: documents/apps.py:10
|
||||||
|
msgid "Documents"
|
||||||
|
msgstr "Dokument"
|
||||||
|
|
||||||
|
#: documents/models.py:32
|
||||||
|
msgid "Any word"
|
||||||
|
msgstr "Valfritt ord"
|
||||||
|
|
||||||
|
#: documents/models.py:33
|
||||||
|
msgid "All words"
|
||||||
|
msgstr "Alla ord"
|
||||||
|
|
||||||
|
#: documents/models.py:34
|
||||||
|
msgid "Exact match"
|
||||||
|
msgstr "Exakt matchning"
|
||||||
|
|
||||||
|
#: documents/models.py:35
|
||||||
|
msgid "Regular expression"
|
||||||
|
msgstr "Reguljära uttryck"
|
||||||
|
|
||||||
|
#: documents/models.py:36
|
||||||
|
msgid "Fuzzy word"
|
||||||
|
msgstr "Fuzzy word"
|
||||||
|
|
||||||
|
#: documents/models.py:37
|
||||||
|
msgid "Automatic"
|
||||||
|
msgstr "Automatisk"
|
||||||
|
|
||||||
|
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
|
||||||
|
#: paperless_mail/models.py:109
|
||||||
|
msgid "name"
|
||||||
|
msgstr "namn"
|
||||||
|
|
||||||
|
#: documents/models.py:45
|
||||||
|
msgid "match"
|
||||||
|
msgstr "träff"
|
||||||
|
|
||||||
|
#: documents/models.py:49
|
||||||
|
msgid "matching algorithm"
|
||||||
|
msgstr "matchande algoritm"
|
||||||
|
|
||||||
|
#: documents/models.py:55
|
||||||
|
msgid "is insensitive"
|
||||||
|
msgstr "är ej skiftlägeskänsligt"
|
||||||
|
|
||||||
|
#: documents/models.py:74 documents/models.py:120
|
||||||
|
msgid "correspondent"
|
||||||
|
msgstr "korrespondent"
|
||||||
|
|
||||||
|
#: documents/models.py:75
|
||||||
|
msgid "correspondents"
|
||||||
|
msgstr "korrespondenter"
|
||||||
|
|
||||||
|
#: documents/models.py:81
|
||||||
|
msgid "color"
|
||||||
|
msgstr "färg"
|
||||||
|
|
||||||
|
#: documents/models.py:87
|
||||||
|
msgid "is inbox tag"
|
||||||
|
msgstr "är inkorgstagg"
|
||||||
|
|
||||||
|
#: documents/models.py:89
|
||||||
|
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
|
||||||
|
msgstr "Markerar denna tagg som en inkorgstagg: Alla nyligen konsumerade dokument kommer att taggas med inkorgstaggar."
|
||||||
|
|
||||||
|
#: documents/models.py:94
|
||||||
|
msgid "tag"
|
||||||
|
msgstr "tagg"
|
||||||
|
|
||||||
|
#: documents/models.py:95 documents/models.py:151
|
||||||
|
msgid "tags"
|
||||||
|
msgstr "taggar"
|
||||||
|
|
||||||
|
#: documents/models.py:101 documents/models.py:133
|
||||||
|
msgid "document type"
|
||||||
|
msgstr "dokumenttyp"
|
||||||
|
|
||||||
|
#: documents/models.py:102
|
||||||
|
msgid "document types"
|
||||||
|
msgstr "dokumenttyper"
|
||||||
|
|
||||||
|
#: documents/models.py:110
|
||||||
|
msgid "Unencrypted"
|
||||||
|
msgstr "Okrypterad"
|
||||||
|
|
||||||
|
#: documents/models.py:111
|
||||||
|
msgid "Encrypted with GNU Privacy Guard"
|
||||||
|
msgstr "Krypterad med GNU Privacy Guard"
|
||||||
|
|
||||||
|
#: documents/models.py:124
|
||||||
|
msgid "title"
|
||||||
|
msgstr "titel"
|
||||||
|
|
||||||
|
#: documents/models.py:137
|
||||||
|
msgid "content"
|
||||||
|
msgstr "innehåll"
|
||||||
|
|
||||||
|
#: documents/models.py:139
|
||||||
|
msgid "The raw, text-only data of the document. This field is primarily used for searching."
|
||||||
|
msgstr "Dokumentets råa, enbart text data. Detta fält används främst för sökning."
|
||||||
|
|
||||||
|
#: documents/models.py:144
|
||||||
|
msgid "mime type"
|
||||||
|
msgstr "MIME-typ"
|
||||||
|
|
||||||
|
#: documents/models.py:155
|
||||||
|
msgid "checksum"
|
||||||
|
msgstr "kontrollsumma"
|
||||||
|
|
||||||
|
#: documents/models.py:159
|
||||||
|
msgid "The checksum of the original document."
|
||||||
|
msgstr "Kontrollsumman för originaldokumentet."
|
||||||
|
|
||||||
|
#: documents/models.py:163
|
||||||
|
msgid "archive checksum"
|
||||||
|
msgstr "arkivera kontrollsumma"
|
||||||
|
|
||||||
|
#: documents/models.py:168
|
||||||
|
msgid "The checksum of the archived document."
|
||||||
|
msgstr "Kontrollsumman för arkiverat dokument."
|
||||||
|
|
||||||
|
#: documents/models.py:172 documents/models.py:328
|
||||||
|
msgid "created"
|
||||||
|
msgstr "skapad"
|
||||||
|
|
||||||
|
#: documents/models.py:176
|
||||||
|
msgid "modified"
|
||||||
|
msgstr "ändrad"
|
||||||
|
|
||||||
|
#: documents/models.py:180
|
||||||
|
msgid "storage type"
|
||||||
|
msgstr "Lagringstyp"
|
||||||
|
|
||||||
|
#: documents/models.py:188
|
||||||
|
msgid "added"
|
||||||
|
msgstr "tillagd"
|
||||||
|
|
||||||
|
#: documents/models.py:192
|
||||||
|
msgid "filename"
|
||||||
|
msgstr "filnamn"
|
||||||
|
|
||||||
|
#: documents/models.py:198
|
||||||
|
msgid "Current filename in storage"
|
||||||
|
msgstr "Nuvarande filnamn i lagring"
|
||||||
|
|
||||||
|
#: documents/models.py:202
|
||||||
|
msgid "archive filename"
|
||||||
|
msgstr "arkivfilnamn"
|
||||||
|
|
||||||
|
#: documents/models.py:208
|
||||||
|
msgid "Current archive filename in storage"
|
||||||
|
msgstr "Nuvarande arkivfilnamn i lagring"
|
||||||
|
|
||||||
|
#: documents/models.py:212
|
||||||
|
msgid "archive serial number"
|
||||||
|
msgstr "arkivets serienummer"
|
||||||
|
|
||||||
|
#: documents/models.py:217
|
||||||
|
msgid "The position of this document in your physical document archive."
|
||||||
|
msgstr "Placeringen av detta dokument i ditt fysiska dokumentarkiv."
|
||||||
|
|
||||||
|
#: documents/models.py:223
|
||||||
|
msgid "document"
|
||||||
|
msgstr "dokument"
|
||||||
|
|
||||||
|
#: documents/models.py:224
|
||||||
|
msgid "documents"
|
||||||
|
msgstr "dokument"
|
||||||
|
|
||||||
|
#: documents/models.py:311
|
||||||
|
msgid "debug"
|
||||||
|
msgstr "felsök"
|
||||||
|
|
||||||
|
#: documents/models.py:312
|
||||||
|
msgid "information"
|
||||||
|
msgstr "information"
|
||||||
|
|
||||||
|
#: documents/models.py:313
|
||||||
|
msgid "warning"
|
||||||
|
msgstr "varning"
|
||||||
|
|
||||||
|
#: documents/models.py:314
|
||||||
|
msgid "error"
|
||||||
|
msgstr "fel"
|
||||||
|
|
||||||
|
#: documents/models.py:315
|
||||||
|
msgid "critical"
|
||||||
|
msgstr "kritisk"
|
||||||
|
|
||||||
|
#: documents/models.py:319
|
||||||
|
msgid "group"
|
||||||
|
msgstr "grupp"
|
||||||
|
|
||||||
|
#: documents/models.py:322
|
||||||
|
msgid "message"
|
||||||
|
msgstr "meddelande"
|
||||||
|
|
||||||
|
#: documents/models.py:325
|
||||||
|
msgid "level"
|
||||||
|
msgstr "nivå"
|
||||||
|
|
||||||
|
#: documents/models.py:332
|
||||||
|
msgid "log"
|
||||||
|
msgstr "logg"
|
||||||
|
|
||||||
|
#: documents/models.py:333
|
||||||
|
msgid "logs"
|
||||||
|
msgstr "loggar"
|
||||||
|
|
||||||
|
#: documents/models.py:344 documents/models.py:401
|
||||||
|
msgid "saved view"
|
||||||
|
msgstr "sparad vy"
|
||||||
|
|
||||||
|
#: documents/models.py:345
|
||||||
|
msgid "saved views"
|
||||||
|
msgstr "sparade vyer"
|
||||||
|
|
||||||
|
#: documents/models.py:348
|
||||||
|
msgid "user"
|
||||||
|
msgstr "användare"
|
||||||
|
|
||||||
|
#: documents/models.py:354
|
||||||
|
msgid "show on dashboard"
|
||||||
|
msgstr "visa på instrumentpanelen"
|
||||||
|
|
||||||
|
#: documents/models.py:357
|
||||||
|
msgid "show in sidebar"
|
||||||
|
msgstr "visa i sidofältet"
|
||||||
|
|
||||||
|
#: documents/models.py:361
|
||||||
|
msgid "sort field"
|
||||||
|
msgstr "sortera fält"
|
||||||
|
|
||||||
|
#: documents/models.py:367
|
||||||
|
msgid "sort reverse"
|
||||||
|
msgstr "sortera omvänd"
|
||||||
|
|
||||||
|
#: documents/models.py:373
|
||||||
|
msgid "title contains"
|
||||||
|
msgstr "titel innehåller"
|
||||||
|
|
||||||
|
#: documents/models.py:374
|
||||||
|
msgid "content contains"
|
||||||
|
msgstr "innehåll innehåller"
|
||||||
|
|
||||||
|
#: documents/models.py:375
|
||||||
|
msgid "ASN is"
|
||||||
|
msgstr "ASN är"
|
||||||
|
|
||||||
|
#: documents/models.py:376
|
||||||
|
msgid "correspondent is"
|
||||||
|
msgstr "korrespondent är"
|
||||||
|
|
||||||
|
#: documents/models.py:377
|
||||||
|
msgid "document type is"
|
||||||
|
msgstr "dokumenttyp är"
|
||||||
|
|
||||||
|
#: documents/models.py:378
|
||||||
|
msgid "is in inbox"
|
||||||
|
msgstr "är i inkorgen"
|
||||||
|
|
||||||
|
#: documents/models.py:379
|
||||||
|
msgid "has tag"
|
||||||
|
msgstr "har tagg"
|
||||||
|
|
||||||
|
#: documents/models.py:380
|
||||||
|
msgid "has any tag"
|
||||||
|
msgstr "har någon tagg"
|
||||||
|
|
||||||
|
#: documents/models.py:381
|
||||||
|
msgid "created before"
|
||||||
|
msgstr "skapad före"
|
||||||
|
|
||||||
|
#: documents/models.py:382
|
||||||
|
msgid "created after"
|
||||||
|
msgstr "skapad efter"
|
||||||
|
|
||||||
|
#: documents/models.py:383
|
||||||
|
msgid "created year is"
|
||||||
|
msgstr "skapat år är"
|
||||||
|
|
||||||
|
#: documents/models.py:384
|
||||||
|
msgid "created month is"
|
||||||
|
msgstr "skapad månad är"
|
||||||
|
|
||||||
|
#: documents/models.py:385
|
||||||
|
msgid "created day is"
|
||||||
|
msgstr "skapad dag är"
|
||||||
|
|
||||||
|
#: documents/models.py:386
|
||||||
|
msgid "added before"
|
||||||
|
msgstr "tillagd före"
|
||||||
|
|
||||||
|
#: documents/models.py:387
|
||||||
|
msgid "added after"
|
||||||
|
msgstr "tillagd efter"
|
||||||
|
|
||||||
|
#: documents/models.py:388
|
||||||
|
msgid "modified before"
|
||||||
|
msgstr "ändrad före"
|
||||||
|
|
||||||
|
#: documents/models.py:389
|
||||||
|
msgid "modified after"
|
||||||
|
msgstr "ändrad efter"
|
||||||
|
|
||||||
|
#: documents/models.py:390
|
||||||
|
msgid "does not have tag"
|
||||||
|
msgstr "har inte tagg"
|
||||||
|
|
||||||
|
#: documents/models.py:391
|
||||||
|
msgid "does not have ASN"
|
||||||
|
msgstr "har inte ASN"
|
||||||
|
|
||||||
|
#: documents/models.py:392
|
||||||
|
msgid "title or content contains"
|
||||||
|
msgstr "titeln eller innehållet innehåller"
|
||||||
|
|
||||||
|
#: documents/models.py:393
|
||||||
|
msgid "fulltext query"
|
||||||
|
msgstr "fulltextfråga"
|
||||||
|
|
||||||
|
#: documents/models.py:394
|
||||||
|
msgid "more like this"
|
||||||
|
msgstr "mer som detta"
|
||||||
|
|
||||||
|
#: documents/models.py:405
|
||||||
|
msgid "rule type"
|
||||||
|
msgstr "regeltyp"
|
||||||
|
|
||||||
|
#: documents/models.py:409
|
||||||
|
msgid "value"
|
||||||
|
msgstr "värde"
|
||||||
|
|
||||||
|
#: documents/models.py:415
|
||||||
|
msgid "filter rule"
|
||||||
|
msgstr "filtrera regel"
|
||||||
|
|
||||||
|
#: documents/models.py:416
|
||||||
|
msgid "filter rules"
|
||||||
|
msgstr "filtrera regler"
|
||||||
|
|
||||||
|
#: documents/serialisers.py:53
|
||||||
|
#, python-format
|
||||||
|
msgid "Invalid regular expression: %(error)s"
|
||||||
|
msgstr "Ogiltigt reguljärt uttryck: %(error)s"
|
||||||
|
|
||||||
|
#: documents/serialisers.py:177
|
||||||
|
msgid "Invalid color."
|
||||||
|
msgstr "Ogiltig färg."
|
||||||
|
|
||||||
|
#: documents/serialisers.py:451
|
||||||
|
#, python-format
|
||||||
|
msgid "File type %(type)s not supported"
|
||||||
|
msgstr "Filtypen %(type)s stöds inte"
|
||||||
|
|
||||||
|
#: documents/templates/index.html:21
|
||||||
|
msgid "Paperless-ng is loading..."
|
||||||
|
msgstr "Paperless-ng laddas..."
|
||||||
|
|
||||||
|
#: documents/templates/registration/logged_out.html:13
|
||||||
|
msgid "Paperless-ng signed out"
|
||||||
|
msgstr "Paperless-ng utloggad"
|
||||||
|
|
||||||
|
#: documents/templates/registration/logged_out.html:41
|
||||||
|
msgid "You have been successfully logged out. Bye!"
|
||||||
|
msgstr "Du är nu utloggad!"
|
||||||
|
|
||||||
|
#: documents/templates/registration/logged_out.html:42
|
||||||
|
msgid "Sign in again"
|
||||||
|
msgstr "Logga in igen"
|
||||||
|
|
||||||
|
#: documents/templates/registration/login.html:13
|
||||||
|
msgid "Paperless-ng sign in"
|
||||||
|
msgstr "Paperless-ng inloggning"
|
||||||
|
|
||||||
|
#: documents/templates/registration/login.html:42
|
||||||
|
msgid "Please sign in."
|
||||||
|
msgstr "Vänligen logga in."
|
||||||
|
|
||||||
|
#: documents/templates/registration/login.html:45
|
||||||
|
msgid "Your username and password didn't match. Please try again."
|
||||||
|
msgstr "Ditt användarnamn och lösenord stämde inte. Försök igen."
|
||||||
|
|
||||||
|
#: documents/templates/registration/login.html:48
|
||||||
|
msgid "Username"
|
||||||
|
msgstr "Användarnamn"
|
||||||
|
|
||||||
|
#: documents/templates/registration/login.html:49
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Lösenord"
|
||||||
|
|
||||||
|
#: documents/templates/registration/login.html:54
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Logga in"
|
||||||
|
|
||||||
|
#: paperless/settings.py:300
|
||||||
|
msgid "English (US)"
|
||||||
|
msgstr "Engelska (USA)"
|
||||||
|
|
||||||
|
#: paperless/settings.py:301
|
||||||
|
msgid "English (GB)"
|
||||||
|
msgstr "Engelska (GB)"
|
||||||
|
|
||||||
|
#: paperless/settings.py:302
|
||||||
|
msgid "German"
|
||||||
|
msgstr "Tyska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:303
|
||||||
|
msgid "Dutch"
|
||||||
|
msgstr "Holländska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:304
|
||||||
|
msgid "French"
|
||||||
|
msgstr "Franska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:305
|
||||||
|
msgid "Portuguese (Brazil)"
|
||||||
|
msgstr "Portugisiska (Brasilien)"
|
||||||
|
|
||||||
|
#: paperless/settings.py:306
|
||||||
|
msgid "Portuguese"
|
||||||
|
msgstr "Portugisiska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:307
|
||||||
|
msgid "Italian"
|
||||||
|
msgstr "Italienska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:308
|
||||||
|
msgid "Romanian"
|
||||||
|
msgstr "Rumänska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:309
|
||||||
|
msgid "Russian"
|
||||||
|
msgstr "Ryska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:310
|
||||||
|
msgid "Spanish"
|
||||||
|
msgstr "Spanska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:311
|
||||||
|
msgid "Polish"
|
||||||
|
msgstr "Polska"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "Svenska"
|
||||||
|
|
||||||
|
#: paperless/urls.py:113
|
||||||
|
msgid "Paperless-ng administration"
|
||||||
|
msgstr "Paperless-ng administration"
|
||||||
|
|
||||||
|
#: paperless_mail/admin.py:25
|
||||||
|
msgid "Filter"
|
||||||
|
msgstr "Filter"
|
||||||
|
|
||||||
|
#: paperless_mail/admin.py:27
|
||||||
|
msgid "Paperless will only process mails that match ALL of the filters given below."
|
||||||
|
msgstr "Paperless kommer endast att behandla e-postmeddelanden som matchar ALLA filter som anges nedan."
|
||||||
|
|
||||||
|
#: paperless_mail/admin.py:37
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Åtgärder"
|
||||||
|
|
||||||
|
#: paperless_mail/admin.py:39
|
||||||
|
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
|
||||||
|
msgstr "Åtgärden tillämpas på e-postmeddelandet. Denna åtgärd utförs endast när dokument konsumerades från e-postmeddelandet. E-post utan bilagor kommer att förbli helt orörda."
|
||||||
|
|
||||||
|
#: paperless_mail/admin.py:46
|
||||||
|
msgid "Metadata"
|
||||||
|
msgstr "Metadata"
|
||||||
|
|
||||||
|
#: paperless_mail/admin.py:48
|
||||||
|
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
|
||||||
|
msgstr "Tilldela metadata till dokument som konsumeras från denna regel automatiskt. Om du inte tilldelar taggar, typer eller korrespondenter här kommer paperless fortfarande att behandla alla matchande regler som du har definierat."
|
||||||
|
|
||||||
|
#: paperless_mail/apps.py:9
|
||||||
|
msgid "Paperless mail"
|
||||||
|
msgstr "Paperless e-post"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:11
|
||||||
|
msgid "mail account"
|
||||||
|
msgstr "e-postkonto"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:12
|
||||||
|
msgid "mail accounts"
|
||||||
|
msgstr "e-postkonton"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:19
|
||||||
|
msgid "No encryption"
|
||||||
|
msgstr "Ingen kryptering"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:20
|
||||||
|
msgid "Use SSL"
|
||||||
|
msgstr "Använd SSL"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:21
|
||||||
|
msgid "Use STARTTLS"
|
||||||
|
msgstr "Använd STARTTLS"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:29
|
||||||
|
msgid "IMAP server"
|
||||||
|
msgstr "IMAP-server"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:33
|
||||||
|
msgid "IMAP port"
|
||||||
|
msgstr "IMAP port"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:36
|
||||||
|
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
|
||||||
|
msgstr "Detta är vanligtvis 143 för okrypterade och STARTTLS-anslutningar, och 993 för SSL-anslutningar."
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:40
|
||||||
|
msgid "IMAP security"
|
||||||
|
msgstr "IMAP säkerhet"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:46
|
||||||
|
msgid "username"
|
||||||
|
msgstr "användarnamn"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:50
|
||||||
|
msgid "password"
|
||||||
|
msgstr "lösenord"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:60
|
||||||
|
msgid "mail rule"
|
||||||
|
msgstr "e-postregel"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:61
|
||||||
|
msgid "mail rules"
|
||||||
|
msgstr "e-postregler"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:67
|
||||||
|
msgid "Only process attachments."
|
||||||
|
msgstr "Behandla endast bilagor."
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:68
|
||||||
|
msgid "Process all files, including 'inline' attachments."
|
||||||
|
msgstr "Behandla alla filer, inklusive \"inline\" bilagor."
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:78
|
||||||
|
msgid "Mark as read, don't process read mails"
|
||||||
|
msgstr "Markera som läst, bearbeta inte lästa meddelanden"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:79
|
||||||
|
msgid "Flag the mail, don't process flagged mails"
|
||||||
|
msgstr "Flagga mailet, bearbeta inte flaggade mail"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:80
|
||||||
|
msgid "Move to specified folder"
|
||||||
|
msgstr "Flytta till angiven mapp"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:81
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Radera"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:88
|
||||||
|
msgid "Use subject as title"
|
||||||
|
msgstr "Använd ämne som titel"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:89
|
||||||
|
msgid "Use attachment filename as title"
|
||||||
|
msgstr "Använd bilagans filnamn som titel"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:99
|
||||||
|
msgid "Do not assign a correspondent"
|
||||||
|
msgstr "Tilldela inte en korrespondent"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:101
|
||||||
|
msgid "Use mail address"
|
||||||
|
msgstr "Använd e-postadress"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:103
|
||||||
|
msgid "Use name (or mail address if not available)"
|
||||||
|
msgstr "Använd namn (eller e-postadress om inte tillgängligt)"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:105
|
||||||
|
msgid "Use correspondent selected below"
|
||||||
|
msgstr "Använd korrespondent som valts nedan"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:113
|
||||||
|
msgid "order"
|
||||||
|
msgstr "ordning"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:120
|
||||||
|
msgid "account"
|
||||||
|
msgstr "konto"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:124
|
||||||
|
msgid "folder"
|
||||||
|
msgstr "mapp"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:128
|
||||||
|
msgid "filter from"
|
||||||
|
msgstr "filtrera från"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:131
|
||||||
|
msgid "filter subject"
|
||||||
|
msgstr "filtrera ämne"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:134
|
||||||
|
msgid "filter body"
|
||||||
|
msgstr "filtrera kropp"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:138
|
||||||
|
msgid "filter attachment filename"
|
||||||
|
msgstr "filtrera filnamn för bilaga"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:140
|
||||||
|
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
|
||||||
|
msgstr "Konsumera endast dokument som helt och hållet matchar detta filnamn om det anges. Wildcards som *.pdf eller *faktura* är tillåtna. Ej skiftlägeskänsliga."
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:146
|
||||||
|
msgid "maximum age"
|
||||||
|
msgstr "maximal ålder"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:148
|
||||||
|
msgid "Specified in days."
|
||||||
|
msgstr "Anges i dagar."
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:151
|
||||||
|
msgid "attachment type"
|
||||||
|
msgstr "typ av bilaga"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:154
|
||||||
|
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
|
||||||
|
msgstr "Bifogade bilagor inkluderar inbäddade bilder, så det är bäst att kombinera detta alternativ med ett filnamnsfilter."
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:159
|
||||||
|
msgid "action"
|
||||||
|
msgstr "åtgärd"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:165
|
||||||
|
msgid "action parameter"
|
||||||
|
msgstr "åtgärdsparameter"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:167
|
||||||
|
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
|
||||||
|
msgstr "Ytterligare parameter för åtgärden som valts ovan, dvs målmappen för flytta till mapp-åtgärden."
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:173
|
||||||
|
msgid "assign title from"
|
||||||
|
msgstr "tilldela titel från"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:183
|
||||||
|
msgid "assign this tag"
|
||||||
|
msgstr "tilldela denna tagg"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:191
|
||||||
|
msgid "assign this document type"
|
||||||
|
msgstr "tilldela den här dokumenttypen"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:195
|
||||||
|
msgid "assign correspondent from"
|
||||||
|
msgstr "tilldela korrespondent från"
|
||||||
|
|
||||||
|
#: paperless_mail/models.py:205
|
||||||
|
msgid "assign this correspondent"
|
||||||
|
msgstr "tilldela denna korrespondent"
|
||||||
|
|
||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:46\n"
|
"PO-Revision-Date: 2021-05-04 21:51\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Xhosa\n"
|
"Language-Team: Xhosa\n"
|
||||||
"Language: xh_ZA\n"
|
"Language: xh_ZA\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr "crwdns2712:0crwdne2712:0"
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "crwdns2714:0crwdne2714:0"
|
msgstr "crwdns2714:0crwdne2714:0"
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr "crwdns2716:0crwdne2716:0"
|
msgstr "crwdns2716:0crwdne2716:0"
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr "crwdns2718:0crwdne2718:0"
|
msgstr "crwdns2718:0crwdne2718:0"
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "crwdns2720:0crwdne2720:0"
|
msgstr "crwdns2720:0crwdne2720:0"
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "crwdns2722:0crwdne2722:0"
|
msgstr "crwdns2722:0crwdne2722:0"
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "crwdns2724:0crwdne2724:0"
|
msgstr "crwdns2724:0crwdne2724:0"
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr "crwdns2726:0crwdne2726:0"
|
msgstr "crwdns2726:0crwdne2726:0"
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr "crwdns3424:0crwdne3424:0"
|
msgstr "crwdns3424:0crwdne3424:0"
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "crwdns2728:0crwdne2728:0"
|
msgstr "crwdns2728:0crwdne2728:0"
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "crwdns2730:0crwdne2730:0"
|
msgstr "crwdns2730:0crwdne2730:0"
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "crwdns3414:0crwdne3414:0"
|
msgstr "crwdns3414:0crwdne3414:0"
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr "crwdns3420:0crwdne3420:0"
|
msgstr "crwdns3420:0crwdne3420:0"
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "crwdns3444:0crwdne3444:0"
|
msgstr "crwdns3444:0crwdne3444:0"
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr "crwdns3448:0crwdne3448:0"
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr "crwdns2732:0crwdne2732:0"
|
msgstr "crwdns2732:0crwdne2732:0"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ng\n"
|
"Project-Id-Version: paperless-ng\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
|
"POT-Creation-Date: 2021-05-04 15:00+0000\n"
|
||||||
"PO-Revision-Date: 2021-04-17 11:47\n"
|
"PO-Revision-Date: 2021-05-04 21:51\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Chinese Simplified\n"
|
"Language-Team: Chinese Simplified\n"
|
||||||
"Language: zh_CN\n"
|
"Language: zh_CN\n"
|
||||||
@@ -412,54 +412,58 @@ msgstr ""
|
|||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:298
|
#: paperless/settings.py:300
|
||||||
msgid "English (US)"
|
msgid "English (US)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:299
|
#: paperless/settings.py:301
|
||||||
msgid "English (GB)"
|
msgid "English (GB)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:300
|
#: paperless/settings.py:302
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:301
|
#: paperless/settings.py:303
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:302
|
#: paperless/settings.py:304
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:303
|
#: paperless/settings.py:305
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:304
|
#: paperless/settings.py:306
|
||||||
msgid "Portuguese"
|
msgid "Portuguese"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:305
|
#: paperless/settings.py:307
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:306
|
#: paperless/settings.py:308
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:307
|
#: paperless/settings.py:309
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:308
|
#: paperless/settings.py:310
|
||||||
msgid "Spanish"
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/settings.py:309
|
#: paperless/settings.py:311
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: paperless/settings.py:312
|
||||||
|
msgid "Swedish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: paperless/urls.py:113
|
#: paperless/urls.py:113
|
||||||
msgid "Paperless-ng administration"
|
msgid "Paperless-ng administration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -142,11 +142,14 @@ MIDDLEWARE = [
|
|||||||
ROOT_URLCONF = 'paperless.urls'
|
ROOT_URLCONF = 'paperless.urls'
|
||||||
|
|
||||||
FORCE_SCRIPT_NAME = os.getenv("PAPERLESS_FORCE_SCRIPT_NAME")
|
FORCE_SCRIPT_NAME = os.getenv("PAPERLESS_FORCE_SCRIPT_NAME")
|
||||||
|
BASE_URL = (FORCE_SCRIPT_NAME or "") + "/"
|
||||||
|
LOGIN_URL = BASE_URL + "accounts/login/"
|
||||||
|
|
||||||
WSGI_APPLICATION = 'paperless.wsgi.application'
|
WSGI_APPLICATION = 'paperless.wsgi.application'
|
||||||
ASGI_APPLICATION = "paperless.asgi.application"
|
ASGI_APPLICATION = "paperless.asgi.application"
|
||||||
|
|
||||||
STATIC_URL = os.getenv("PAPERLESS_STATIC_URL", "/static/")
|
STATIC_URL = os.getenv("PAPERLESS_STATIC_URL", BASE_URL + "static/")
|
||||||
|
WHITENOISE_STATIC_PREFIX = "/static/"
|
||||||
|
|
||||||
# TODO: what is this used for?
|
# TODO: what is this used for?
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
@@ -308,7 +311,8 @@ LANGUAGES = [
|
|||||||
("ro-ro", _("Romanian")),
|
("ro-ro", _("Romanian")),
|
||||||
("ru-ru", _("Russian")),
|
("ru-ru", _("Russian")),
|
||||||
("es-es", _("Spanish")),
|
("es-es", _("Spanish")),
|
||||||
("pl-pl", _("Polish"))
|
("pl-pl", _("Polish")),
|
||||||
|
("sv-se", _("Swedish")),
|
||||||
]
|
]
|
||||||
|
|
||||||
LOCALE_PATHS = [
|
LOCALE_PATHS = [
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ from rest_framework.routers import DefaultRouter
|
|||||||
|
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
from paperless.consumers import StatusConsumer
|
from paperless.consumers import StatusConsumer
|
||||||
from documents.views import (
|
from documents.views import (
|
||||||
CorrespondentViewSet,
|
CorrespondentViewSet,
|
||||||
@@ -73,31 +75,36 @@ urlpatterns = [
|
|||||||
re_path(r"^fetch/", include([
|
re_path(r"^fetch/", include([
|
||||||
re_path(
|
re_path(
|
||||||
r"^doc/(?P<pk>\d+)$",
|
r"^doc/(?P<pk>\d+)$",
|
||||||
RedirectView.as_view(url='/api/documents/%(pk)s/download/'),
|
RedirectView.as_view(url=settings.BASE_URL +
|
||||||
|
'api/documents/%(pk)s/download/'),
|
||||||
),
|
),
|
||||||
re_path(
|
re_path(
|
||||||
r"^thumb/(?P<pk>\d+)$",
|
r"^thumb/(?P<pk>\d+)$",
|
||||||
RedirectView.as_view(url='/api/documents/%(pk)s/thumb/'),
|
RedirectView.as_view(url=settings.BASE_URL +
|
||||||
|
'api/documents/%(pk)s/thumb/'),
|
||||||
),
|
),
|
||||||
re_path(
|
re_path(
|
||||||
r"^preview/(?P<pk>\d+)$",
|
r"^preview/(?P<pk>\d+)$",
|
||||||
RedirectView.as_view(url='/api/documents/%(pk)s/preview/'),
|
RedirectView.as_view(url=settings.BASE_URL +
|
||||||
|
'api/documents/%(pk)s/preview/'),
|
||||||
),
|
),
|
||||||
])),
|
])),
|
||||||
|
|
||||||
re_path(r"^push$", csrf_exempt(
|
re_path(r"^push$", csrf_exempt(
|
||||||
RedirectView.as_view(url='/api/documents/post_document/'))),
|
RedirectView.as_view(url=settings.BASE_URL +
|
||||||
|
'api/documents/post_document/'))),
|
||||||
|
|
||||||
# Frontend assets TODO: this is pretty bad, but it works.
|
# Frontend assets TODO: this is pretty bad, but it works.
|
||||||
path('assets/<path:path>',
|
path('assets/<path:path>',
|
||||||
RedirectView.as_view(url='/static/frontend/en-US/assets/%(path)s')),
|
RedirectView.as_view(url=settings.STATIC_URL +
|
||||||
|
'frontend/en-US/assets/%(path)s')),
|
||||||
# TODO: with localization, this is even worse! :/
|
# TODO: with localization, this is even worse! :/
|
||||||
|
|
||||||
# login, logout
|
# login, logout
|
||||||
path('accounts/', include('django.contrib.auth.urls')),
|
path('accounts/', include('django.contrib.auth.urls')),
|
||||||
|
|
||||||
# Root of the Frontent
|
# Root of the Frontent
|
||||||
re_path(r".*", login_required(IndexView.as_view())),
|
re_path(r".*", login_required(IndexView.as_view()), name='base'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
__version__ = (1, 4, 2)
|
__version__ = (1, 4, 3)
|
||||||
|
|||||||
11
src/paperless/workers.py
Normal file
11
src/paperless/workers.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import os
|
||||||
|
from uvicorn.workers import UvicornWorker
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "paperless.settings")
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigurableWorker(UvicornWorker):
|
||||||
|
CONFIG_KWARGS = {
|
||||||
|
"root_path": settings.FORCE_SCRIPT_NAME or "",
|
||||||
|
}
|
||||||
@@ -121,7 +121,12 @@ class RasterisedDocumentParser(DocumentParser):
|
|||||||
|
|
||||||
self.log("debug", f"Extracted text from PDF file {pdf_file}")
|
self.log("debug", f"Extracted text from PDF file {pdf_file}")
|
||||||
return stripped
|
return stripped
|
||||||
except PDFException:
|
except Exception:
|
||||||
|
# TODO catch all for various issues with PDFminer.six.
|
||||||
|
# If PDFminer fails, fall back to OCR.
|
||||||
|
self.log("warn",
|
||||||
|
"Error while getting text from PDF document with "
|
||||||
|
"pdfminer.six", exc_info=True)
|
||||||
# probably not a PDF file.
|
# probably not a PDF file.
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
def get_parser(*args, **kwargs):
|
def get_parser(*args, **kwargs):
|
||||||
from .parsers import TikaDocumentParser
|
from .parsers import TikaDocumentParser
|
||||||
|
|
||||||
@@ -20,5 +19,6 @@ def tika_consumer_declaration(sender, **kwargs):
|
|||||||
"application/vnd.oasis.opendocument.presentation": ".odp",
|
"application/vnd.oasis.opendocument.presentation": ".odp",
|
||||||
"application/vnd.oasis.opendocument.spreadsheet": ".ods",
|
"application/vnd.oasis.opendocument.spreadsheet": ".ods",
|
||||||
"application/vnd.oasis.opendocument.text": ".odt",
|
"application/vnd.oasis.opendocument.text": ".odt",
|
||||||
|
"text/rtf": ".rtf",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
40
test.py
Normal file
40
test.py
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import ocrmypdf
|
||||||
|
from ocrmypdf import ocr, hookimpl
|
||||||
|
from ocrmypdf._concurrent import NullProgressBar
|
||||||
|
|
||||||
|
|
||||||
|
def get_unified_progress(self, desc, current, total):
|
||||||
|
steps = ["Scanning contents", "OCR", "PDF/A conversion"]
|
||||||
|
if desc in steps:
|
||||||
|
index = steps.index(desc)
|
||||||
|
return (index / len(steps)) + (current / total) / len(steps)
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
class MyProgressBar:
|
||||||
|
|
||||||
|
# __enter__, __exit__ and others removed for simplicity
|
||||||
|
|
||||||
|
def update(self, *args, **kwargs):
|
||||||
|
pass
|
||||||
|
# i'd need to call MyOcrClass.progress() here.
|
||||||
|
|
||||||
|
|
||||||
|
@hookimpl
|
||||||
|
def get_progressbar_class(*args, **kwargs):
|
||||||
|
return MyProgressBar
|
||||||
|
|
||||||
|
|
||||||
|
class MyOcrClass:
|
||||||
|
|
||||||
|
def progress(self, current_p, max_p):
|
||||||
|
# send progress over web sockets, *requires* self reference
|
||||||
|
pass
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
ocrmypdf.ocr("test.pdf", "test_out.pdf", skip_text=True, jobs=1, plugins="test")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
MyOcrClass().run()
|
||||||
Reference in New Issue
Block a user