mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-31 10:37:12 -04:00 
			
		
		
		
	Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		
						commit
						b12fcca20d
					
				
							
								
								
									
										2
									
								
								Pipfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Pipfile
									
									
									
									
									
								
							| @ -40,7 +40,7 @@ whitenoise = "~=5.2.0" | ||||
| watchdog = "~=1.0.0" | ||||
| whoosh="~=2.7.4" | ||||
| inotifyrecursive = "~=0.3.4" | ||||
| ocrmypdf = "~=11.6" | ||||
| ocrmypdf = "~=12.0" | ||||
| tqdm = "*" | ||||
| tika = "*" | ||||
| # TODO: This will sadly also install daphne+dependencies, | ||||
|  | ||||
							
								
								
									
										326
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										326
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| { | ||||
|     "_meta": { | ||||
|         "hash": { | ||||
|             "sha256": "6dd5af1c2a4025ca82cf6092121f4571fda57df7c47e028b8c25da20ef7e16cd" | ||||
|             "sha256": "2da6572956d27205c496da2ef5f584a9ba53b5f6b3c8bf1724211dc48bfac7b7" | ||||
|         }, | ||||
|         "pipfile-spec": 6, | ||||
|         "requires": {}, | ||||
| @ -28,11 +28,11 @@ | ||||
|         }, | ||||
|         "arrow": { | ||||
|             "hashes": [ | ||||
|                 "sha256:3515630f11a15c61dcb4cdd245883270dd334c83f3e639824e65a4b79cc48543", | ||||
|                 "sha256:399c9c8ae732270e1aa58ead835a79a40d7be8aa109c579898eb41029b5a231d" | ||||
|                 "sha256:8cbe6a629b1c54ae11b52d6d9e70890089241958f63bc59467e277e34b7a5378", | ||||
|                 "sha256:b8fe13abf3517abab315e09350c903902d1447bd311afbc17547ba1cb3ff5bd8" | ||||
|             ], | ||||
|             "markers": "python_version >= '3.6'", | ||||
|             "version": "==1.0.3" | ||||
|             "version": "==1.1.0" | ||||
|         }, | ||||
|         "asgiref": { | ||||
|             "hashes": [ | ||||
| @ -52,11 +52,11 @@ | ||||
|         }, | ||||
|         "attrs": { | ||||
|             "hashes": [ | ||||
|                 "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6", | ||||
|                 "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700" | ||||
|                 "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1", | ||||
|                 "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb" | ||||
|             ], | ||||
|             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", | ||||
|             "version": "==20.3.0" | ||||
|             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", | ||||
|             "version": "==21.2.0" | ||||
|         }, | ||||
|         "autobahn": { | ||||
|             "hashes": [ | ||||
| @ -225,11 +225,11 @@ | ||||
|         }, | ||||
|         "django": { | ||||
|             "hashes": [ | ||||
|                 "sha256:0604e84c4fb698a5e53e5857b5aea945b2f19a18f25f10b8748dbdf935788927", | ||||
|                 "sha256:21f0f9643722675976004eb683c55d33c05486f94506672df3d6a141546f389d" | ||||
|                 "sha256:13ac78dbfd189532cad8f383a27e58e18b3d33f80009ceb476d7fcbfc5dcebd8", | ||||
|                 "sha256:7e0a1393d18c16b503663752a8b6790880c5084412618990ce8a81cc908b4962" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==3.2" | ||||
|             "version": "==3.2.3" | ||||
|         }, | ||||
|         "django-cors-headers": { | ||||
|             "hashes": [ | ||||
| @ -241,11 +241,11 @@ | ||||
|         }, | ||||
|         "django-extensions": { | ||||
|             "hashes": [ | ||||
|                 "sha256:081828e985485662f62a22340c1506e37989d14b927652079a5b7cd84a82368b", | ||||
|                 "sha256:17f85f4dcdd5eea09b8c4f0bad8f0370bf2db6d03e61b431fa7103fee29888de" | ||||
|                 "sha256:50de8977794a66a91575dd40f87d5053608f679561731845edbd325ceeb387e3", | ||||
|                 "sha256:5f0fea7bf131ca303090352577a9e7f8bfbf5489bd9d9c8aea9401db28db34a0" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==3.1.2" | ||||
|             "version": "==3.1.3" | ||||
|         }, | ||||
|         "django-filter": { | ||||
|             "hashes": [ | ||||
| @ -301,6 +301,7 @@ | ||||
|         "gunicorn": { | ||||
|             "hashes": [ | ||||
|                 "sha256:8d737657cdd62f483d482ee65cf9cc6a64d5b2199674f8b174803be9065e5d60", | ||||
|                 "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e", | ||||
|                 "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
| @ -364,22 +365,25 @@ | ||||
|         }, | ||||
|         "httptools": { | ||||
|             "hashes": [ | ||||
|                 "sha256:0a4b1b2012b28e68306575ad14ad5e9120b34fccd02a81eb08838d7e3bbb48be", | ||||
|                 "sha256:3592e854424ec94bd17dc3e0c96a64e459ec4147e6d53c0a42d0ebcef9cb9c5d", | ||||
|                 "sha256:41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce", | ||||
|                 "sha256:56b6393c6ac7abe632f2294da53f30d279130a92e8ae39d8d14ee2e1b05ad1f2", | ||||
|                 "sha256:7f6c82262d3bdde886a29ae0d65d4fae6b3ac6fba763891ddb72e72e1dbe7075", | ||||
|                 "sha256:86c6acd66765a934e8730bf0e9dfaac6fdcf2a4334212bd4a0a1c78f16475ca6", | ||||
|                 "sha256:96da81e1992be8ac2fd5597bf0283d832287e20cb3cfde8996d2b00356d4e17f", | ||||
|                 "sha256:96eb359252aeed57ea5c7b3d79839aaa0382c9d3149f7d24dd7172b1bcecb009", | ||||
|                 "sha256:a2719e1d7a84bb131c4f1e0cb79705034b48de6ae486eb5297a139d6a3296dce", | ||||
|                 "sha256:ac0aa11e99454b6a66989aa2d44bca41d4e0f968e395a0a8f164b401fefe359a", | ||||
|                 "sha256:bc3114b9edbca5a1eb7ae7db698c669eb53eb8afbbebdde116c174925260849c", | ||||
|                 "sha256:cb46a65a0ed99c38dfcbf9f5be8be6cf9cb497e527505fefac7cbd38a467f3c6", | ||||
|                 "sha256:fa3cd71e31436911a44620473e873a256851e1f53dee56669dae403ba41756a4", | ||||
|                 "sha256:fea04e126014169384dee76a153d4573d90d0cbd1d12185da089f73c78390437" | ||||
|                 "sha256:07659649fe6b3948b6490825f89abe5eb1cec79ebfaaa0b4bf30f3f33f3c2ba8", | ||||
|                 "sha256:08b79e09114e6ab5c3dbf560bba2cb2257ea38cdaeaf99b7cb80d8f92622fcd9", | ||||
|                 "sha256:1e35aa179b67086cc600a984924a88589b90793c9c1b260152ca4908786e09df", | ||||
|                 "sha256:31629e1f1b89959f8c0927bad12184dc07977dcf71e24f4772934aa490aa199b", | ||||
|                 "sha256:7792e70ead1d220142a99dde049fdbeddc66fe822953e085d02cd5155c38cdad", | ||||
|                 "sha256:851026bd63ec0af7e7592890d97d15c92b62d9e17094353f19a52c8e2b33710a", | ||||
|                 "sha256:8fcca4b7efe353b13a24017211334c57d055a6e132c7adffed13a10d28efca57", | ||||
|                 "sha256:9abd788465aa46a0f288bd3a99e53edd184177d6379e2098fd6097bb359ad9d6", | ||||
|                 "sha256:aebdf0bd7bf7c90ae6b3be458692bf6e9e5b610b501f9f74c7979015a51db4c4", | ||||
|                 "sha256:bda99a5723e7eab355ce57435c70853fc137a65aebf2f1cd4d15d96e2956da7b", | ||||
|                 "sha256:c1c63d860749841024951b0a78e4dec6f543d23751ef061d6ab60064c7b8b524", | ||||
|                 "sha256:c4111a0a8a00eff1e495d43ea5230aaf64968a48ddba8ea2d5f982efae827404", | ||||
|                 "sha256:dce59ee45dd6ee6c434346a5ac527c44014326f560866b4b2f414a692ee1aca8", | ||||
|                 "sha256:f759717ca1b2ef498c67ba4169c2b33eecf943a89f5329abcff8b89d153eb500", | ||||
|                 "sha256:f9545ff74bdf8a6e013ed18af3e24c656c06b6ca2441074be2f6cc28e24f48de", | ||||
|                 "sha256:fb7199b8fb0c50a22e77260bb59017e0c075fa80cb03bb2c8692de76e7bb7fe7", | ||||
|                 "sha256:fbf7ecd31c39728f251b1c095fd27c84e4d21f60a1d079a0333472ff3ae59d34" | ||||
|             ], | ||||
|             "version": "==0.1.1" | ||||
|             "version": "==0.1.2" | ||||
|         }, | ||||
|         "humanfriendly": { | ||||
|             "hashes": [ | ||||
| @ -407,18 +411,18 @@ | ||||
|         }, | ||||
|         "imap-tools": { | ||||
|             "hashes": [ | ||||
|                 "sha256:00fa5b5046c0437976ad7dd5e45b1847bfd5d14bb858c9b19a5cf2994bba96d9", | ||||
|                 "sha256:3b4d0a911bc48ea7c0beac6a15b6f65b6fdf2b066a67cd3536253ec98e401e83" | ||||
|                 "sha256:3b15cea943ee84072ed6f3424df138aa1908dcee7d368ad81843e2166b8283e0", | ||||
|                 "sha256:e4f47bcea98db7502efae4da973c7dded8b632b57bf4acf1d317742701bfb571" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==0.39.0" | ||||
|             "version": "==0.41.0" | ||||
|         }, | ||||
|         "img2pdf": { | ||||
|             "hashes": [ | ||||
|                 "sha256:57905015579b1026acf1605aa95859cd79b051fa1c35485573d165526fc9dbb5", | ||||
|                 "sha256:eaee690ab8403dd1a9cb4db10afee41dd3e6c7ed63bdace02a0121f9feadb0c9" | ||||
|                 "sha256:38a1229ca84b211d7782d1d65ad7251a9781bf24f6f6497c738c755fcfed5552", | ||||
|                 "sha256:e7eb85dc87062e308066f2b0a9dbfb3c5c0bd306dec0cf9130e3836c0547253a" | ||||
|             ], | ||||
|             "version": "==0.4.0" | ||||
|             "version": "==0.4.1" | ||||
|         }, | ||||
|         "incremental": { | ||||
|             "hashes": [ | ||||
| @ -453,12 +457,12 @@ | ||||
|         }, | ||||
|         "langdetect": { | ||||
|             "hashes": [ | ||||
|                 "sha256:363795ea005f1243c958e953245dac5d814fabdc025c9afa91588c5fa6b2fa83", | ||||
|                 "sha256:ae53a024643df713274c297c0795dbfb5a16b329902f8e543e7b2d7d45f699e4", | ||||
|                 "sha256:f37495e63607865e47deed08d78f7f8e58172658216ff954b2f14671bcd87740" | ||||
|                 "sha256:7cbc0746252f19e76f77c0b1690aadf01963be835ef0cd4b56dddf2a8f1dfc2a", | ||||
|                 "sha256:87963db181db734abf00b1c463df5cadb3f9edad8efb334d3e52d5ad008d9cc7", | ||||
|                 "sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==1.0.8" | ||||
|             "version": "==1.0.9" | ||||
|         }, | ||||
|         "lxml": { | ||||
|             "hashes": [ | ||||
| @ -466,18 +470,24 @@ | ||||
|                 "sha256:0fbcf5565ac01dff87cbfc0ff323515c823081c5777a9fc7703ff58388c258c3", | ||||
|                 "sha256:122fba10466c7bd4178b07dba427aa516286b846b2cbd6f6169141917283aae2", | ||||
|                 "sha256:1822d16e5ac9061749955d099ff50c6cbc068f8cbfde28dfbeea845f7fbe6e09", | ||||
|                 "sha256:1b38116b6e628118dea5b2186ee6820ab138dbb1e24a13e478490c7db2f326ae", | ||||
|                 "sha256:1b7584d421d254ab86d4f0b13ec662a9014397678a7c4265a02a6d7c2b18a75f", | ||||
|                 "sha256:26e761ab5b07adf5f555ee82fb4bfc35bf93750499c6c7614bd64d12aaa67927", | ||||
|                 "sha256:289e9ca1a9287f08daaf796d96e06cb2bc2958891d7911ac7cae1c5f9e1e0ee3", | ||||
|                 "sha256:2a9d50e69aac3ebee695424f7dbd7b8c6d6eb7de2a2eb6b0f6c7db6aa41e02b7", | ||||
|                 "sha256:3082c518be8e97324390614dacd041bb1358c882d77108ca1957ba47738d9d59", | ||||
|                 "sha256:33bb934a044cf32157c12bfcfbb6649807da20aa92c062ef51903415c704704f", | ||||
|                 "sha256:3439c71103ef0e904ea0a1901611863e51f50b5cd5e8654a151740fde5e1cade", | ||||
|                 "sha256:36108c73739985979bf302006527cf8a20515ce444ba916281d1c43938b8bb96", | ||||
|                 "sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468", | ||||
|                 "sha256:4289728b5e2000a4ad4ab8da6e1db2e093c63c08bdc0414799ee776a3f78da4b", | ||||
|                 "sha256:4bff24dfeea62f2e56f5bab929b4428ae6caba2d1eea0c2d6eb618e30a71e6d4", | ||||
|                 "sha256:4c61b3a0db43a1607d6264166b230438f85bfed02e8cff20c22e564d0faff354", | ||||
|                 "sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83", | ||||
|                 "sha256:5a0a14e264069c03e46f926be0d8919f4105c1623d620e7ec0e612a2e9bf1c04", | ||||
|                 "sha256:5c8c163396cc0df3fd151b927e74f6e4acd67160d6c33304e805b84293351d16", | ||||
|                 "sha256:66e575c62792c3f9ca47cb8b6fab9e35bab91360c783d1606f758761810c9791", | ||||
|                 "sha256:6f12e1427285008fd32a6025e38e977d44d6382cf28e7201ed10d6c1698d2a9a", | ||||
|                 "sha256:74f69060f98a70e3654de3021cd8162859e0f30b9e69aed76ef2b7a2e3b84212", | ||||
|                 "sha256:74f7d8d439b18fa4c385f3f5dfd11144bb87c1da034a466c5b5577d23a1d9b51", | ||||
|                 "sha256:7610b8c31688f0b1be0ef882889817939490a36d0ee880ea562a4e1399c447a1", | ||||
| @ -491,10 +501,14 @@ | ||||
|                 "sha256:b007cbb845b28db4fb8b6a5cdcbf65bacb16a8bd328b53cbc0698688a68e1caa", | ||||
|                 "sha256:bc4313cbeb0e7a416a488d72f9680fffffc645f8a838bd2193809881c67dd106", | ||||
|                 "sha256:bccbfc27563652de7dc9bdc595cb25e90b59c5f8e23e806ed0fd623755b6565d", | ||||
|                 "sha256:c47ff7e0a36d4efac9fd692cfa33fbd0636674c102e9e8d9b26e1b93a94e7617", | ||||
|                 "sha256:c4f05c5a7c49d2fb70223d0d5bcfbe474cf928310ac9fa6a7c6dddc831d0b1d4", | ||||
|                 "sha256:cdaf11d2bd275bf391b5308f86731e5194a21af45fbaaaf1d9e8147b9160ea92", | ||||
|                 "sha256:ce256aaa50f6cc9a649c51be3cd4ff142d67295bfc4f490c9134d0f9f6d58ef0", | ||||
|                 "sha256:d2e35d7bf1c1ac8c538f88d26b396e73dd81440d59c1ef8522e1ea77b345ede4", | ||||
|                 "sha256:d916d31fd85b2f78c76400d625076d9124de3e4bda8b016d25a050cc7d603f24", | ||||
|                 "sha256:df7c53783a46febb0e70f6b05df2ba104610f2fb0d27023409734a3ecbb78fb2", | ||||
|                 "sha256:e1cbd3f19a61e27e011e02f9600837b921ac661f0c40560eefb366e4e4fb275e", | ||||
|                 "sha256:efac139c3f0bf4f0939f9375af4b02c5ad83a622de52d6dfa8e438e8e01d0eb0", | ||||
|                 "sha256:efd7a09678fd8b53117f6bae4fa3825e0a22b03ef0a932e070c0bdbb3a35e654", | ||||
|                 "sha256:f2380a6376dfa090227b663f9678150ef27543483055cc327555fb592c5967e2", | ||||
| @ -582,11 +596,11 @@ | ||||
|         }, | ||||
|         "ocrmypdf": { | ||||
|             "hashes": [ | ||||
|                 "sha256:329b070959731c277f0df91cfe011dd4da0d6534f23a739a3aa77bdab00fbc2f", | ||||
|                 "sha256:b63df1b6bf37f29b41cb07f0328240a235d84c3dffc3a32299c71fa94c92d419" | ||||
|                 "sha256:3a757ac8bc4f822052a363c7fdc1e01e01033ae3e3398123990813eb6b3cf031", | ||||
|                 "sha256:c18db17e18984f540eaa774245571e3ec63a74f459b6029de561a06a77e78310" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==11.7.3" | ||||
|             "version": "==12.0.1" | ||||
|         }, | ||||
|         "pathvalidate": { | ||||
|             "hashes": [ | ||||
| @ -606,32 +620,32 @@ | ||||
|         }, | ||||
|         "pikepdf": { | ||||
|             "hashes": [ | ||||
|                 "sha256:14a93f2b61adc975453dfc9edf3335be704732a8750a009ba3d12913ff043abe", | ||||
|                 "sha256:25ba3bf96eae3a7c897db5bf6a60b26ebde1c161145af73a044950901b754bcb", | ||||
|                 "sha256:29742273f80e75c48e700c5438636fe78a856e1706e353ea57715732fb75fcd6", | ||||
|                 "sha256:3790ed5b9d0db8c8bd28d96cb10b91649179eac04873ed23e6dc474515892cc3", | ||||
|                 "sha256:3a76702b12f78abe591a6270756a56225a63a26c5a00aad8bc3ffd8680178ab2", | ||||
|                 "sha256:56ce22cd134c96035abf984aa167a16e7c658c3ccc0cd626a7002f911eba7452", | ||||
|                 "sha256:578e80adcd4703b752c381517853a074633baa219be4bd36d6752fb742a0f8b4", | ||||
|                 "sha256:5b286e9862a21bbe9dfb0da827818f710a303d9b78f821710c37e8059839c7da", | ||||
|                 "sha256:6b12c8835f52d07cb68f30d115e1361cd1143f1aa2c70f49ded6d69d9c4fcdd2", | ||||
|                 "sha256:6e6dd17783c6cf038b179dcf662982d1cca891a3e30232aec0221cc69821b7f1", | ||||
|                 "sha256:7e4e7e53781d85a609bdf899d585a39a69e9eedf2b9ac75261685a1aff0072ea", | ||||
|                 "sha256:810488f80a1d93652498222f9d1391d9287b3b842971d7a8878e69a287c2476f", | ||||
|                 "sha256:85ab867102d7c2182acf852c61ca60c90790bfbb4a939dc096054d904318ba37", | ||||
|                 "sha256:8babd800331978d20d82ed1494868d15f5b953266c2b943a7d34e4826016e0b8", | ||||
|                 "sha256:94f20e08cdfcba011440204fd9df381af1c423a9888dfd3287b66d9e7e1421bf", | ||||
|                 "sha256:9d4a1cc8da1860d8772e831b03ea05386ae6a805718cd8621de736725d52a901", | ||||
|                 "sha256:9f67e2c57413ac8be4eec5344c2bcaeb1a18c59fe348afd589d9b95bd4dfc077", | ||||
|                 "sha256:b4c64ddc8fe9b11dc52f81d38076bd560ce97abf4695151d2eab390ae760fcac", | ||||
|                 "sha256:b5d4431e77f32fd1edc10d214db89b33f2c7f8ceb7152a6651192ef90945db17", | ||||
|                 "sha256:d3a0cf2dcc10cd7a7b877e955cfac7ddee6050860a39375f46218f7f1c02e903", | ||||
|                 "sha256:dd551d5ff0e4c95537a366fb2281152c7293e60d60bf6ba909faba7d0ee669ad", | ||||
|                 "sha256:dea790ae9809ab0ed0f5e32c938d36441f5ab3e74a884692ce84902e8ed1187b", | ||||
|                 "sha256:fe47949abbf9f67416e545b0c61c8e75546f1ad8f4cfbe5ee608824258cdaa3e" | ||||
|                 "sha256:087dc8e141dcfa0e76e93227a22f6b9cee000b3837b9e048ba96f389d0ee5d41", | ||||
|                 "sha256:1bcf4e45a831b302a0b6ae6cbd41aa6c81f95964b1d61e8da41186a4a779f701", | ||||
|                 "sha256:22d6615e742e7320a3a77148f65a8ba3591c054133faf6305a525c439b57cf38", | ||||
|                 "sha256:24d51dcc2d73e5d123acab4fef5d611f545ff2ce16c837d85833364d4d2cda45", | ||||
|                 "sha256:26a3af4845db89f364d18757978fad39ea852b6e7cae3137000a07c44d292b42", | ||||
|                 "sha256:36e9d557ef0505a6ec335faf9b2c93d4d062daa339dd1a6cbcda2a6dc886b38e", | ||||
|                 "sha256:417abdc29be8ddedabeb100a728b6525c5e1967ba47a03b9e0a81391efb4feb1", | ||||
|                 "sha256:5e71dcefdd889538a289cdaa2bb4559e4477e3f17846ffbdfad54b0e76443cf5", | ||||
|                 "sha256:62a6f2e2552bfd1bcd17b5e0e024db9ab7e93db39f43bb4246faff9b01154d47", | ||||
|                 "sha256:7a054701104c601d72b5ab8b3025a44b1b400f334ee7259dbd4bb1a2c24dad03", | ||||
|                 "sha256:7dcf6545c7deb2f6511a3b9220d56297b4165eeedc2eab785acba698cc9d95c0", | ||||
|                 "sha256:82da7b5d5a57e4704f7a81e75324b07b19577a96e06f5c5d8a89b29dec814766", | ||||
|                 "sha256:8cdafd18013b17f257655e95bfcb4ef14a7fc84a7334a9877b0532db4b55e3ff", | ||||
|                 "sha256:a0ff0291f74ef45dd2a1e1316b7d6464b996351365debbf611a5293cf2ff2562", | ||||
|                 "sha256:a2ef88f786aed79da559cd1a6a844f99e258971d64670bfba1efad96ed175fb0", | ||||
|                 "sha256:a84bbc7b3f9819c1541913bac2781da40d9506255c1cedb7233f9027ce23db92", | ||||
|                 "sha256:b1e0cfb6f5abe4d4863c55b2c9424340e5b44095789ef1368a0de99f8b4f852e", | ||||
|                 "sha256:ca8efe77f1f44d3c1c0d738407b87816f1445438aa6873d45e58fdd595e96c98", | ||||
|                 "sha256:d0f48252f23c128a3ddde16d98fa6567ac7fbce6792209771183b57c744106e1", | ||||
|                 "sha256:e1d988ddf063d6abf3d71e7c5bc46e5690fdcf0b06d7f00fced5d0b908f92267", | ||||
|                 "sha256:ec9d853c895693dd55b12ae37056808e192e5e2a8d2486cb30d19a5e7d6ff6a9", | ||||
|                 "sha256:fcbb6e37426564ccaf6bb301616700277d426225895b00a64283a95ff648f3b9", | ||||
|                 "sha256:ff29a8bd50f47554be7e062b3e1a2b466a7f567e1e49417dc62c3948b28304c7" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==2.11.1" | ||||
|             "version": "==2.12.0" | ||||
|         }, | ||||
|         "pillow": { | ||||
|             "hashes": [ | ||||
| @ -794,11 +808,11 @@ | ||||
|         }, | ||||
|         "python-dotenv": { | ||||
|             "hashes": [ | ||||
|                 "sha256:471b782da0af10da1a80341e8438fca5fadeba2881c54360d5fd8d03d03a4f4a", | ||||
|                 "sha256:49782a97c9d641e8a09ae1d9af0856cc587c8d2474919342d5104d85be9890b2" | ||||
|                 "sha256:00aa34e92d992e9f8383730816359647f358f4a3be1ba45e5a5cefd27ee91544", | ||||
|                 "sha256:b1ae5e9643d5ed987fc57cc2583021e38db531946518130777734f9589b3141f" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==0.17.0" | ||||
|             "version": "==0.17.1" | ||||
|         }, | ||||
|         "python-gnupg": { | ||||
|             "hashes": [ | ||||
| @ -849,6 +863,7 @@ | ||||
|                 "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", | ||||
|                 "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", | ||||
|                 "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", | ||||
|                 "sha256:8fc87fd1a1d30991d9198a4317e90dfaf3d2963c013608a019e8311568fa08b2", | ||||
|                 "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", | ||||
|                 "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", | ||||
|                 "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", | ||||
| @ -1032,18 +1047,18 @@ | ||||
|         }, | ||||
|         "service-identity": { | ||||
|             "hashes": [ | ||||
|                 "sha256:001c0707759cb3de7e49c078a7c0c9cd12594161d3bf06b9c254fdcb1a60dc36", | ||||
|                 "sha256:0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d" | ||||
|                 "sha256:6e6c6086ca271dc11b033d17c3a8bea9f24ebff920c587da090afc9519419d34", | ||||
|                 "sha256:f0b0caac3d40627c3c04d7a51b6e06721857a0e10a8775f2d1d7e72901b3a7db" | ||||
|             ], | ||||
|             "version": "==18.1.0" | ||||
|             "version": "==21.1.0" | ||||
|         }, | ||||
|         "six": { | ||||
|             "hashes": [ | ||||
|                 "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", | ||||
|                 "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" | ||||
|                 "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", | ||||
|                 "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" | ||||
|             ], | ||||
|             "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": { | ||||
|             "hashes": [ | ||||
| @ -1312,19 +1327,19 @@ | ||||
|         }, | ||||
|         "attrs": { | ||||
|             "hashes": [ | ||||
|                 "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6", | ||||
|                 "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700" | ||||
|                 "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1", | ||||
|                 "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb" | ||||
|             ], | ||||
|             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", | ||||
|             "version": "==20.3.0" | ||||
|             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", | ||||
|             "version": "==21.2.0" | ||||
|         }, | ||||
|         "babel": { | ||||
|             "hashes": [ | ||||
|                 "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5", | ||||
|                 "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05" | ||||
|                 "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9", | ||||
|                 "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0" | ||||
|             ], | ||||
|             "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": { | ||||
|             "hashes": [ | ||||
| @ -1342,6 +1357,9 @@ | ||||
|             "version": "==4.0.0" | ||||
|         }, | ||||
|         "coverage": { | ||||
|             "extras": [ | ||||
|                 "toml" | ||||
|             ], | ||||
|             "hashes": [ | ||||
|                 "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c", | ||||
|                 "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6", | ||||
| @ -1447,11 +1465,11 @@ | ||||
|         }, | ||||
|         "faker": { | ||||
|             "hashes": [ | ||||
|                 "sha256:26c7c3df8d46f1db595a34962f8967021dd90bbd38cc6e27461a3fb16cd413ae", | ||||
|                 "sha256:44eb060fad3015690ff3fec6564d7171be393021e820ad1851d96cb968fbfcd4" | ||||
|                 "sha256:73562fb99b6046c5d26b8dd98a1437a896f8601c96382d835c656166159f4f59", | ||||
|                 "sha256:c6a4a0a1dde71f16d489a3097661a87ae96329dbde4c3ece8a5ccc340441ade1" | ||||
|             ], | ||||
|             "markers": "python_version >= '3.6'", | ||||
|             "version": "==8.1.0" | ||||
|             "version": "==8.1.4" | ||||
|         }, | ||||
|         "filelock": { | ||||
|             "hashes": [ | ||||
| @ -1488,72 +1506,52 @@ | ||||
|         }, | ||||
|         "jinja2": { | ||||
|             "hashes": [ | ||||
|                 "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419", | ||||
|                 "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6" | ||||
|                 "sha256:2f2de5285cf37f33d33ecd4a9080b75c87cd0c1994d5a9c6df17131ea1f049c6", | ||||
|                 "sha256:ea8d7dd814ce9df6de6a761ec7f1cac98afe305b8cdc4aaae4e114b8d8ce24c5" | ||||
|             ], | ||||
|             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", | ||||
|             "version": "==2.11.3" | ||||
|             "markers": "python_version >= '3.6'", | ||||
|             "version": "==3.0.0" | ||||
|         }, | ||||
|         "markupsafe": { | ||||
|             "hashes": [ | ||||
|                 "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", | ||||
|                 "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", | ||||
|                 "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", | ||||
|                 "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", | ||||
|                 "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", | ||||
|                 "sha256:19536834abffb3fa155017053c607cb835b2ecc6a3a2554a88043d991dffb736", | ||||
|                 "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f", | ||||
|                 "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39", | ||||
|                 "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", | ||||
|                 "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", | ||||
|                 "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014", | ||||
|                 "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f", | ||||
|                 "sha256:3d61f15e39611aacd91b7e71d903787da86d9e80896e683c0103fced9add7834", | ||||
|                 "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", | ||||
|                 "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", | ||||
|                 "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", | ||||
|                 "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", | ||||
|                 "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", | ||||
|                 "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", | ||||
|                 "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", | ||||
|                 "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", | ||||
|                 "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85", | ||||
|                 "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1", | ||||
|                 "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", | ||||
|                 "sha256:7952deddf24b85c88dab48f6ec366ac6e39d2761b5280f2f9594911e03fcd064", | ||||
|                 "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", | ||||
|                 "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", | ||||
|                 "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850", | ||||
|                 "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0", | ||||
|                 "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", | ||||
|                 "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", | ||||
|                 "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb", | ||||
|                 "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", | ||||
|                 "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", | ||||
|                 "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", | ||||
|                 "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" | ||||
|                 "sha256:007dc055dbce5b1104876acee177dbfd18757e19d562cd440182e1f492e96b95", | ||||
|                 "sha256:031bf79a27d1c42f69c276d6221172417b47cb4b31cdc73d362a9bf5a1889b9f", | ||||
|                 "sha256:161d575fa49395860b75da5135162481768b11208490d5a2143ae6785123e77d", | ||||
|                 "sha256:24bbc3507fb6dfff663af7900a631f2aca90d5a445f272db5fc84999fa5718bc", | ||||
|                 "sha256:2efaeb1baff547063bad2b2893a8f5e9c459c4624e1a96644bbba08910ae34e0", | ||||
|                 "sha256:31d4206caf9be06b8e7a85de4df933d159b4877d4fc308ca8192d97faf56a41e", | ||||
|                 "sha256:32200f562daaab472921a11cbb63780f1654552ae49518196fc361ed8e12e901", | ||||
|                 "sha256:3261fae28155e5c8634dd7710635fe540a05b58f160cef7713c7700cb9980e66", | ||||
|                 "sha256:3b54a9c68995ef4164567e2cd1a5e16db5dac30b2a50c39c82db8d4afaf14f63", | ||||
|                 "sha256:3c352ff634e289061711608f5e474ec38dbaa21e3e168820d53d5f4015e5b91b", | ||||
|                 "sha256:3fb47f97f1d338b943126e90b79cad50d4fcfa0b80637b5a9f468941dbbd9ce5", | ||||
|                 "sha256:441ce2a8c17683d97e06447fcbccbdb057cbf587c78eb75ae43ea7858042fe2c", | ||||
|                 "sha256:45535241baa0fc0ba2a43961a1ac7562ca3257f46c4c3e9c0de38b722be41bd1", | ||||
|                 "sha256:4aca81a687975b35e3e80bcf9aa93fe10cd57fac37bf18b2314c186095f57e05", | ||||
|                 "sha256:4cc563836f13c57f1473bc02d1e01fc37bab70ad4ee6be297d58c1d66bc819bf", | ||||
|                 "sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527", | ||||
|                 "sha256:58bc9fce3e1557d463ef5cee05391a05745fd95ed660f23c1742c711712c0abb", | ||||
|                 "sha256:664832fb88b8162268928df233f4b12a144a0c78b01d38b81bdcf0fc96668ecb", | ||||
|                 "sha256:70820a1c96311e02449591cbdf5cd1c6a34d5194d5b55094ab725364375c9eb2", | ||||
|                 "sha256:79b2ae94fa991be023832e6bcc00f41dbc8e5fe9d997a02db965831402551730", | ||||
|                 "sha256:83cf0228b2f694dcdba1374d5312f2277269d798e65f40344964f642935feac1", | ||||
|                 "sha256:87de598edfa2230ff274c4de7fcf24c73ffd96208c8e1912d5d0fee459767d75", | ||||
|                 "sha256:8f806bfd0f218477d7c46a11d3e52dc7f5fdfaa981b18202b7dc84bbc287463b", | ||||
|                 "sha256:90053234a6479738fd40d155268af631c7fca33365f964f2208867da1349294b", | ||||
|                 "sha256:a00dce2d96587651ef4fa192c17e039e8cfab63087c67e7d263a5533c7dad715", | ||||
|                 "sha256:a08cd07d3c3c17cd33d9e66ea9dee8f8fc1c48e2d11bd88fd2dc515a602c709b", | ||||
|                 "sha256:a19d39b02a24d3082856a5b06490b714a9d4179321225bbf22809ff1e1887cc8", | ||||
|                 "sha256:d00a669e4a5bec3ee6dbeeeedd82a405ced19f8aeefb109a012ea88a45afff96", | ||||
|                 "sha256:dab0c685f21f4a6c95bfc2afd1e7eae0033b403dd3d8c1b6d13a652ada75b348", | ||||
|                 "sha256:df561f65049ed3556e5b52541669310e88713fdae2934845ec3606f283337958", | ||||
|                 "sha256:e4570d16f88c7f3032ed909dc9e905a17da14a1c4cfd92608e3fda4cb1208bbd", | ||||
|                 "sha256:e77e4b983e2441aff0c0d07ee711110c106b625f440292dfe02a2f60c8218bd6", | ||||
|                 "sha256:e79212d09fc0e224d20b43ad44bb0a0a3416d1e04cf6b45fed265114a5d43d20", | ||||
|                 "sha256:f58b5ba13a5689ca8317b98439fccfbcc673acaaf8241c1869ceea40f5d585bf", | ||||
|                 "sha256:fef86115fdad7ae774720d7103aa776144cf9b66673b4afa9bcaa7af990ed07b" | ||||
|             ], | ||||
|             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", | ||||
|             "version": "==1.1.1" | ||||
|             "markers": "python_version >= '3.6'", | ||||
|             "version": "==2.0.0" | ||||
|         }, | ||||
|         "packaging": { | ||||
|             "hashes": [ | ||||
| @ -1589,11 +1587,11 @@ | ||||
|         }, | ||||
|         "pygments": { | ||||
|             "hashes": [ | ||||
|                 "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94", | ||||
|                 "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8" | ||||
|                 "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f", | ||||
|                 "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e" | ||||
|             ], | ||||
|             "markers": "python_version >= '3.5'", | ||||
|             "version": "==2.8.1" | ||||
|             "version": "==2.9.0" | ||||
|         }, | ||||
|         "pyparsing": { | ||||
|             "hashes": [ | ||||
| @ -1605,19 +1603,19 @@ | ||||
|         }, | ||||
|         "pytest": { | ||||
|             "hashes": [ | ||||
|                 "sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634", | ||||
|                 "sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc" | ||||
|                 "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b", | ||||
|                 "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==6.2.3" | ||||
|             "version": "==6.2.4" | ||||
|         }, | ||||
|         "pytest-cov": { | ||||
|             "hashes": [ | ||||
|                 "sha256:359952d9d39b9f822d9d29324483e7ba04a3a17dd7d05aa6beb7ea01e359e5f7", | ||||
|                 "sha256:bdb9fdb0b85a7cc825269a4c56b48ccaa5c7e365054b6038772c32ddcdc969da" | ||||
|                 "sha256:8535764137fecce504a49c2b742288e3d34bc09eed298ad65963616cc98fd45e", | ||||
|                 "sha256:95d4933dcbbacfa377bb60b29801daa30d90c33981ab2a79e9ab4452c165066e" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==2.11.1" | ||||
|             "version": "==2.12.0" | ||||
|         }, | ||||
|         "pytest-django": { | ||||
|             "hashes": [ | ||||
| @ -1685,11 +1683,11 @@ | ||||
|         }, | ||||
|         "six": { | ||||
|             "hashes": [ | ||||
|                 "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", | ||||
|                 "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" | ||||
|                 "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", | ||||
|                 "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" | ||||
|             ], | ||||
|             "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": { | ||||
|             "hashes": [ | ||||
| @ -1786,11 +1784,11 @@ | ||||
|         }, | ||||
|         "tox": { | ||||
|             "hashes": [ | ||||
|                 "sha256:05a4dbd5e4d3d8269b72b55600f0b0303e2eb47ad5c6fe76d3576f4c58d93661", | ||||
|                 "sha256:e007673f3595cede9b17a7c4962389e4305d4a3682a6c5a4159a1453b4f326aa" | ||||
|                 "sha256:307a81ddb82bd463971a273f33e9533a24ed22185f27db8ce3386bff27d324e3", | ||||
|                 "sha256:b0b5818049a1c1997599d42012a637a33f24c62ab8187223fdd318fa8522637b" | ||||
|             ], | ||||
|             "index": "pypi", | ||||
|             "version": "==3.23.0" | ||||
|             "version": "==3.23.1" | ||||
|         }, | ||||
|         "urllib3": { | ||||
|             "hashes": [ | ||||
| @ -1802,11 +1800,11 @@ | ||||
|         }, | ||||
|         "virtualenv": { | ||||
|             "hashes": [ | ||||
|                 "sha256:49ec4eb4c224c6f7dd81bb6d0a28a09ecae5894f4e593c89b0db0885f565a107", | ||||
|                 "sha256:83f95875d382c7abafe06bd2a4cdd1b363e1bb77e02f155ebe8ac082a916b37c" | ||||
|                 "sha256:307a555cf21e1550885c82120eccaf5acedf42978fd362d32ba8410f9593f543", | ||||
|                 "sha256:72cf267afc04bf9c86ec932329b7e94db6a0331ae9847576daaa7ca3c86b29a4" | ||||
|             ], | ||||
|             "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 | ||||
| ********* | ||||
| 
 | ||||
| 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 | ||||
| ################## | ||||
| 
 | ||||
| @ -1366,6 +1383,8 @@ bulk of the work on this big change. | ||||
| 
 | ||||
| * Initial release | ||||
| 
 | ||||
| .. _Alexander Menk: https://github.com/amenk | ||||
| .. _puuu: https://github.com/puuu | ||||
| .. _WhiteHatTux: https://github.com/WhiteHatTux | ||||
| .. _Chris Nagy: https://github.com/what-name | ||||
| .. _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 | ||||
|     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 "/". | ||||
| 
 | ||||
| PAPERLESS_STATIC_URL=<path> | ||||
|  | ||||
| @ -460,6 +460,7 @@ Install Paperless using ansible | ||||
| .. note:: | ||||
| 
 | ||||
|     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. | ||||
|     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 | ||||
| 
 | ||||
| 2.  Clone the repository of paperless-ng: | ||||
| 2.  Install the latest tag of the ansible role using ansible-galaxy | ||||
| 
 | ||||
|     .. 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: | ||||
| 
 | ||||
|     .. code:: sh | ||||
| 
 | ||||
|         cd paperless-ng | ||||
|         git checkout ng-1.0.0 | ||||
| 
 | ||||
| 3.  Create an ansible ``playbook.yml`` in the paperless-ng root directory: | ||||
| 3.  Create an ansible ``playbook.yml`` in a directory of your choice: | ||||
| 
 | ||||
|     .. code:: yaml | ||||
| 
 | ||||
|         - hosts: YourAnsibleTargetHostGoesHere | ||||
|           become: yes | ||||
|           vars_files: | ||||
|             - ansible/vars.yml | ||||
|             - vars/paperless-ng.yml | ||||
|           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: | ||||
| 
 | ||||
| @ -520,10 +514,10 @@ Install Paperless using ansible | ||||
|         - hosts: YourAnsibleTargetHostGoesHere | ||||
|           become: yes | ||||
|           vars_files: | ||||
|             - ansible/vars.yml | ||||
|             - vars/paperless-ng.yml | ||||
|           roles: | ||||
|             - 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: | ||||
| 
 | ||||
| @ -536,13 +530,13 @@ Install Paperless using ansible | ||||
|         - hosts: YourAnsibleTargetHostGoesHere | ||||
|           become: yes | ||||
|           vars_files: | ||||
|             - ansible/vars.yml | ||||
|             - vars/paperless-ng.yml | ||||
|           roles: | ||||
|             - geerlingguy.postgresql | ||||
|             - ansible | ||||
|             - paperless-ng | ||||
|             - 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 | ||||
| 
 | ||||
|  | ||||
| @ -2,7 +2,7 @@ import os | ||||
| 
 | ||||
| bind = '0.0.0.0:8000' | ||||
| workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 2)) | ||||
| worker_class = 'uvicorn.workers.UvicornWorker' | ||||
| worker_class = 'paperless.workers.ConfigurableWorker' | ||||
| timeout = 120 | ||||
| 
 | ||||
| def pre_fork(server, worker): | ||||
|  | ||||
| @ -8,10 +8,10 @@ | ||||
| -i https://pypi.python.org/simple | ||||
| --extra-index-url https://www.piwheels.org/simple | ||||
| 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' | ||||
| 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' | ||||
| automat==20.2.0 | ||||
| blessed==1.18.0 | ||||
| @ -28,35 +28,35 @@ cryptography==3.4.7 | ||||
| daphne==3.0.2; python_version >= '3.6' | ||||
| dateparser==1.0.0 | ||||
| django-cors-headers==3.7.0 | ||||
| django-extensions==3.1.2 | ||||
| django-extensions==3.1.3 | ||||
| django-filter==2.4.0 | ||||
| django-picklefield==3.0.1; python_version >= '3' | ||||
| django-q==1.3.4 | ||||
| django==3.2 | ||||
| django==3.2.3 | ||||
| djangorestframework==3.12.4 | ||||
| filelock==3.0.12 | ||||
| fuzzywuzzy[speedup]==0.18.0 | ||||
| gunicorn==20.1.0 | ||||
| h11==0.12.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' | ||||
| hyperlink==21.0.0 | ||||
| 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 | ||||
| img2pdf==0.4.0 | ||||
| imap-tools==0.41.0 | ||||
| img2pdf==0.4.1 | ||||
| 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' | ||||
| inotifyrecursive==0.3.5 | ||||
| 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' | ||||
| msgpack==1.0.2 | ||||
| numpy==1.19.5 | ||||
| ocrmypdf==11.7.3 | ||||
| ocrmypdf==12.0.1 | ||||
| pathvalidate==2.4.1 | ||||
| pdfminer.six==20201018 | ||||
| pikepdf==2.11.1 | ||||
| pikepdf==2.12.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' | ||||
| 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' | ||||
| 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-dotenv==0.17.0 | ||||
| python-dotenv==0.17.1 | ||||
| python-gnupg==0.4.7 | ||||
| python-levenshtein==0.12.2 | ||||
| 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' | ||||
| scikit-learn==0.24.0 | ||||
| scipy==1.5.4 | ||||
| service-identity==18.1.0 | ||||
| six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' | ||||
| service-identity==21.1.0 | ||||
| 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 | ||||
| sqlparse==0.4.1; python_version >= '3.5' | ||||
| threadpoolctl==2.1.0; python_version >= '3.5' | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| [Unit] | ||||
| Description=Paperless consumer | ||||
| Description=Paperless scheduler | ||||
| Requires=redis.service | ||||
| 
 | ||||
| [Service] | ||||
|  | ||||
| @ -1407,11 +1407,19 @@ | ||||
|           <context context-type="linenumber">68</context> | ||||
|         </context-group> | ||||
|       </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"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="27d158b47717ff9305d19866960418c603f19d55" datatype="html"> | ||||
| @ -1421,6 +1429,13 @@ | ||||
|           <context context-type="linenumber">3</context> | ||||
|         </context-group> | ||||
|       </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"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1889,6 +1904,14 @@ | ||||
|           <context context-type="linenumber">23</context> | ||||
|         </context-group> | ||||
|       </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"> | ||||
|         <source>Create new item</source> | ||||
|         <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) { | ||||
|     let anyWindow = (window as any) | ||||
|     anyWindow.pdfWorkerSrc = '/assets/js/pdf.worker.min.js'; | ||||
|     anyWindow.pdfWorkerSrc = 'assets/js/pdf.worker.min.js'; | ||||
|     this.settings.updateDarkModeSettings() | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -8,6 +8,8 @@ | ||||
|         [clearable]="allowNull" | ||||
|         [items]="items" | ||||
|         [addTag]="allowCreateNew && addItemRef" | ||||
|         addTagText="Add item" | ||||
|         i18n-addTagText="Used for both types and correspondents" | ||||
|         bindLabel="name" | ||||
|         bindValue="id" | ||||
|         (change)="onChange(value)" | ||||
|  | ||||
| @ -9,6 +9,7 @@ | ||||
|       [hideSelected]="true" | ||||
|       [addTag]="createTagRef" | ||||
|       addTagText="Add tag" | ||||
|       i18n-addTagText | ||||
|       (change)="onChange(value)" | ||||
|       (search)="onSearch($event)" | ||||
|       (focus)="clearLastSearchTerm()" | ||||
|  | ||||
| @ -83,7 +83,7 @@ | ||||
|               <small>{{document.created | customDate:'mediumDate'}}</small> | ||||
|             </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> | ||||
|               <ngb-progressbar [type]="searchScoreClass" [value]="document.__search_hit__.score" class="search-score-bar mx-2 mt-1" [max]="1"></ngb-progressbar> | ||||
|             </div> | ||||
|  | ||||
| @ -2,14 +2,14 @@ import { Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; | ||||
| 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 { PaperlessDocument } from 'src/app/data/paperless-document'; | ||||
| import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'; | ||||
| import { SortableDirective, SortEvent } from 'src/app/directives/sortable.directive'; | ||||
| import { ConsumerStatusService } from 'src/app/services/consumer-status.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 { ToastService } from 'src/app/services/toast.service'; | ||||
| import { FilterEditorComponent } from './filter-editor/filter-editor.component'; | ||||
| @ -52,7 +52,7 @@ export class DocumentListComponent implements OnInit, OnDestroy { | ||||
|   } | ||||
| 
 | ||||
|   getSortFields() { | ||||
|     return DOCUMENT_SORT_FIELDS | ||||
|     return isFullTextFilterRule(this.list.filterRules) ? DOCUMENT_SORT_FIELDS_FULLTEXT : DOCUMENT_SORT_FIELDS | ||||
|   } | ||||
| 
 | ||||
|   onSort(event: SortEvent) { | ||||
|  | ||||
| @ -1,3 +1,5 @@ | ||||
| import { FILTER_FULLTEXT_MORELIKE, FILTER_FULLTEXT_QUERY } from "./filter-rule-type" | ||||
| 
 | ||||
| export function cloneFilterRules(filterRules: FilterRule[]): FilterRule[] { | ||||
|   if (filterRules) { | ||||
|     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 { | ||||
|   rule_type: number | ||||
|   value: string | ||||
|  | ||||
| @ -125,7 +125,7 @@ export class ConsumerStatusService { | ||||
|   connect() { | ||||
|     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) => { | ||||
|       let statusMessage: WebsocketConsumerStatusMessage = JSON.parse(ev['data']) | ||||
| 
 | ||||
|  | ||||
| @ -1,28 +1,53 @@ | ||||
| import { Injectable } from '@angular/core'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { Observable } from 'rxjs'; | ||||
| import { cloneFilterRules, FilterRule } from '../data/filter-rule'; | ||||
| import { FILTER_FULLTEXT_MORELIKE, FILTER_FULLTEXT_QUERY } from '../data/filter-rule-type'; | ||||
| import { cloneFilterRules, FilterRule, isFullTextFilterRule } from '../data/filter-rule'; | ||||
| import { PaperlessDocument } from '../data/paperless-document'; | ||||
| import { PaperlessSavedView } from '../data/paperless-saved-view'; | ||||
| import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys'; | ||||
| import { DocumentService } from './rest/document.service'; | ||||
| import { SettingsService, SETTINGS_KEYS } from './settings.service'; | ||||
| 
 | ||||
| /** | ||||
|  * Captures the current state of the list view. | ||||
|  */ | ||||
| interface ListViewState { | ||||
| 
 | ||||
|   /** | ||||
|    * Title of the document list view. Either "Documents" (localized) or the name of a saved view. | ||||
|    */ | ||||
|   title?: string | ||||
| 
 | ||||
|   /** | ||||
|    * Current paginated list of documents displayed. | ||||
|    */ | ||||
|   documents?: PaperlessDocument[] | ||||
| 
 | ||||
|   currentPage: number | ||||
| 
 | ||||
|   /** | ||||
|    * Total amount of documents with the current filter rules. Used to calculate the number of pages. | ||||
|    */ | ||||
|   collectionSize: number | ||||
| 
 | ||||
|   /** | ||||
|    * Currently selected sort field. | ||||
|    */ | ||||
|   sortField: string | ||||
| 
 | ||||
|   /** | ||||
|    * True if the list is sorted in reverse. | ||||
|    */ | ||||
|   sortReverse: boolean | ||||
| 
 | ||||
|   /** | ||||
|    * Filter rules for the current list view. | ||||
|    */ | ||||
|   filterRules: FilterRule[] | ||||
| 
 | ||||
|   /** | ||||
|    * Contains the IDs of all selected documents. | ||||
|    */ | ||||
|   selected?: Set<number> | ||||
| 
 | ||||
| } | ||||
| @ -134,10 +159,10 @@ export class DocumentListViewService { | ||||
|   } | ||||
| 
 | ||||
|   set filterRules(filterRules: FilterRule[]) { | ||||
|     this.activeListViewState.filterRules = filterRules | ||||
|     if (filterRules.find(r => (r.rule_type == FILTER_FULLTEXT_QUERY || r.rule_type == FILTER_FULLTEXT_MORELIKE))) { | ||||
|       this.activeListViewState.currentPage = 1 | ||||
|     if (!isFullTextFilterRule(filterRules) && this.activeListViewState.sortField == "score") { | ||||
|       this.activeListViewState.sortField = "created" | ||||
|     } | ||||
|     this.activeListViewState.filterRules = filterRules | ||||
|     this.reload() | ||||
|     this.reduceSelectionToFilter() | ||||
|     this.saveDocumentListView() | ||||
| @ -213,6 +238,10 @@ export class DocumentListViewService { | ||||
|     this._activeSavedViewId = null | ||||
|     this.activeListViewState.filterRules = filterRules | ||||
|     this.activeListViewState.currentPage = 1 | ||||
|     if (isFullTextFilterRule(filterRules)) { | ||||
|       this.activeListViewState.sortField = "score" | ||||
|       this.activeListViewState.sortReverse = false | ||||
|     } | ||||
|     this.reduceSelectionToFilter() | ||||
|     this.saveDocumentListView() | ||||
|     if (this.router.url == "/documents") { | ||||
|  | ||||
| @ -23,6 +23,11 @@ export const DOCUMENT_SORT_FIELDS = [ | ||||
|   { 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 { | ||||
|   id: number | ||||
|   document_count: number | ||||
|  | ||||
| @ -1,9 +1,12 @@ | ||||
| const base_url = new URL(document.baseURI) | ||||
| 
 | ||||
| export const environment = { | ||||
|   production: true, | ||||
|   apiBaseUrl: "/api/", | ||||
|   apiBaseUrl: document.baseURI + "api/", | ||||
|   apiVersion: "2", | ||||
|   appTitle: "Paperless-ng", | ||||
|   version: "1.4.2", | ||||
|   version: "1.4.3", | ||||
|   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", | ||||
|   version: "DEVELOPMENT", | ||||
|   webSocketHost: "localhost:8000", | ||||
|   webSocketProtocol: "ws:" | ||||
|   webSocketProtocol: "ws:", | ||||
|   webSocketBaseUrl: "/ws/", | ||||
| }; | ||||
| 
 | ||||
| /* | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">Download originals</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="needs-translation">Suggestions:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">Save current view</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">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="needs-translation">Swedish</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="needs-translation">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">Modified</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Originale herunterladen</target> | ||||
|       </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> | ||||
|         <target state="translated">Element hinzufügen</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Vorschläge:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Aktuelle Ansicht speichern</target> | ||||
|       </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> | ||||
|         <target state="translated">Tag hinzufügen</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Polnisch</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">Schwedisch</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Geändert am</target> | ||||
|       </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> | ||||
|         <target state="translated">Relevanz</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Download originals</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Suggestions:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Save current view</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <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 id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Modified</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Descargar originales</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Sugerencias:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Guardar la vista actual</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">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="needs-translation">Swedish</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Modificado</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Télécharger les originaux</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Suggestions : </target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Enregistrer la vue actuelle</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Polonais</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">Suédois</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Date de modification</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">Download originals</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="needs-translation">Suggestions:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Jelenlegi nézet mentése</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">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="needs-translation">Swedish</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="needs-translation">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Módosítva</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Scarica originali</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Suggerimenti:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Salva vista corrente</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Polacco</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">Svedese</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Modificato</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Originelen downloaden</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Suggesties:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Huidige view opslaan</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Pools</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">Zweeds</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Gewijzigd</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Pobierz oryginały</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Sugestie:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Zapisz bieżący widok</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Polski</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="needs-translation">Swedish</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Zmodyfikowano</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Descarregar originais</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Sugestões:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Salvar visualização atual</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">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="needs-translation">Swedish</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Modificado</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Descarregar originais</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Sugestões:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Guardar a vista atual</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Polaco</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">Sueco</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Modificado</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Descarcă originalele</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Sugestii:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Salvează vizualizarea curenta</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1855,7 +1872,7 @@ | ||||
|           <context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context> | ||||
|           <context context-type="linenumber">1</context> | ||||
|         </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 id="2807800733729323332" datatype="html"> | ||||
|         <source>Yes</source> | ||||
| @ -1975,13 +1992,21 @@ | ||||
|           <context context-type="sourcefile">src/app/services/settings.service.ts</context> | ||||
|           <context context-type="linenumber">101</context> | ||||
|         </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 id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Modificat</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Скачать оригиналы</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Рекомендации:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Сохранить текущее представление</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">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="needs-translation">Swedish</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Изменено</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Ladda ner original</target> | ||||
|       </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> | ||||
|         <target state="translated">Lägg till objekt</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">Förslag:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Spara aktuell vy</target> | ||||
|       </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> | ||||
|         <target state="translated">Lägg till tagg</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Polska</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">Svenska</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="translated">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="translated">Ändrad</target> | ||||
|       </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> | ||||
|         <target state="translated">Sök resultat</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target>crwdns3238:0crwdne3238:0</target> | ||||
|       </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> | ||||
|         <target>crwdns3450:0crwdne3450:0</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target>crwdns3240:0crwdne3240:0</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target>crwdns3242:0crwdne3242:0</target> | ||||
|       </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> | ||||
|         <target>crwdns3452:0crwdne3452:0</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target>crwdns3442:0crwdne3442:0</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>crwdns3446:0crwdne3446:0</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target>crwdns3322:0crwdne3322:0</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target>crwdns3364:0crwdne3364:0</target> | ||||
|       </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> | ||||
|         <target>crwdns3454:0crwdne3454:0</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
| @ -1607,11 +1607,20 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">Download originals</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add item</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html"> | ||||
|         <source>Suggestions:</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="needs-translation">Suggestions:</target> | ||||
|       </trans-unit> | ||||
| @ -1623,6 +1632,14 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">Save current view</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Add tag</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html"> | ||||
|         <source>Show all</source> | ||||
|         <context-group purpose="location"> | ||||
| @ -1977,11 +1994,19 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">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="needs-translation">Swedish</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4912706592792948707" datatype="html"> | ||||
|         <source>ISO 8601</source> | ||||
|         <context-group purpose="location"> | ||||
|           <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> | ||||
|         <target state="needs-translation">ISO 8601</target> | ||||
|       </trans-unit> | ||||
| @ -2149,6 +2174,15 @@ | ||||
|         </context-group> | ||||
|         <target state="needs-translation">Modified</target> | ||||
|       </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> | ||||
|         <target state="needs-translation">Search score</target> | ||||
|       </trans-unit> | ||||
|       <trans-unit id="4561076822163447092" datatype="html"> | ||||
|         <source>Create new item</source> | ||||
|         <context-group purpose="location"> | ||||
|  | ||||
							
								
								
									
										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_dark"; | ||||
| @import "print"; | ||||
| @import "node_modules/bootstrap/scss/bootstrap"; | ||||
| @import "~@ng-select/ng-select/themes/default.theme.css"; | ||||
| 
 | ||||
|  | ||||
| @ -7,7 +7,7 @@ from dateutil.parser import isoparse | ||||
| from django.conf import settings | ||||
| from whoosh import highlight, classify, query | ||||
| 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.qparser import MultifieldParser | ||||
| from whoosh.qparser.dateparse import DateParserPlugin | ||||
| @ -147,12 +147,10 @@ def remove_document_from_index(document): | ||||
| 
 | ||||
| class DelayedQuery: | ||||
| 
 | ||||
|     @property | ||||
|     def _query(self): | ||||
|     def _get_query(self): | ||||
|         raise NotImplementedError() | ||||
| 
 | ||||
|     @property | ||||
|     def _query_filter(self): | ||||
|     def _get_query_filter(self): | ||||
|         criterias = [] | ||||
|         for k, v in self.query_params.items(): | ||||
|             if k == 'correspondent__id': | ||||
| @ -185,16 +183,32 @@ class DelayedQuery: | ||||
|         else: | ||||
|             return None | ||||
| 
 | ||||
|     @property | ||||
|     def _query_sortedby(self): | ||||
|         # if not 'ordering' in self.query_params: | ||||
|         return None, False | ||||
|     def _get_query_sortedby(self): | ||||
|         if 'ordering' not in self.query_params: | ||||
|             return None, False | ||||
| 
 | ||||
|         # o: str = self.query_params['ordering'] | ||||
|         # if o.startswith('-'): | ||||
|         #     return o[1:], True | ||||
|         # else: | ||||
|         #     return o, False | ||||
|         field: str = self.query_params['ordering'] | ||||
| 
 | ||||
|         sort_fields_map = { | ||||
|             "created": "created", | ||||
|             "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): | ||||
|         self.searcher = searcher | ||||
| @ -211,13 +225,13 @@ class DelayedQuery: | ||||
|         if item.start in self.saved_results: | ||||
|             return self.saved_results[item.start] | ||||
| 
 | ||||
|         q, mask = self._query | ||||
|         sortedby, reverse = self._query_sortedby | ||||
|         q, mask = self._get_query() | ||||
|         sortedby, reverse = self._get_query_sortedby() | ||||
| 
 | ||||
|         page: ResultsPage = self.searcher.search_page( | ||||
|             q, | ||||
|             mask=mask, | ||||
|             filter=self._query_filter, | ||||
|             filter=self._get_query_filter(), | ||||
|             pagenum=math.floor(item.start / self.page_size) + 1, | ||||
|             pagelen=self.page_size, | ||||
|             sortedby=sortedby, | ||||
| @ -227,14 +241,18 @@ class DelayedQuery: | ||||
|             surround=50) | ||||
|         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 | ||||
| 
 | ||||
|         if self.first_score: | ||||
|             page.results.top_n = list(map( | ||||
|                 lambda hit: (hit[0] / self.first_score, hit[1]), | ||||
|                 page.results.top_n | ||||
|             )) | ||||
|         page.results.top_n = list(map( | ||||
|             lambda hit: ( | ||||
|                 (hit[0] / self.first_score) if self.first_score else None, | ||||
|                 hit[1] | ||||
|             ), | ||||
|             page.results.top_n | ||||
|         )) | ||||
| 
 | ||||
|         self.saved_results[item.start] = page | ||||
| 
 | ||||
| @ -243,8 +261,7 @@ class DelayedQuery: | ||||
| 
 | ||||
| class DelayedFullTextQuery(DelayedQuery): | ||||
| 
 | ||||
|     @property | ||||
|     def _query(self): | ||||
|     def _get_query(self): | ||||
|         q_str = self.query_params['query'] | ||||
|         qp = MultifieldParser( | ||||
|             ["content", "title", "correspondent", "tag", "type"], | ||||
| @ -261,8 +278,7 @@ class DelayedFullTextQuery(DelayedQuery): | ||||
| 
 | ||||
| class DelayedMoreLikeThisQuery(DelayedQuery): | ||||
| 
 | ||||
|     @property | ||||
|     def _query(self): | ||||
|     def _get_query(self): | ||||
|         more_like_doc_id = int(self.query_params['more_like_id']) | ||||
|         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 " | ||||
|                  "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): | ||||
| 
 | ||||
| @ -140,7 +146,8 @@ class Command(BaseCommand): | ||||
|                         handle_document, | ||||
|                         document_ids | ||||
|                     ), | ||||
|                     total=len(document_ids) | ||||
|                     total=len(document_ids), | ||||
|                     disable=options['no_progress_bar'] | ||||
|                 )) | ||||
|         except KeyboardInterrupt: | ||||
|             print("Aborting...") | ||||
|  | ||||
| @ -57,6 +57,12 @@ class Command(BaseCommand): | ||||
|                  "do not belong to the current export, such as files from " | ||||
|                  "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): | ||||
|         BaseCommand.__init__(self, *args, **kwargs) | ||||
| @ -81,9 +87,9 @@ class Command(BaseCommand): | ||||
|             raise CommandError("That path doesn't appear to be writable") | ||||
| 
 | ||||
|         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 | ||||
|         for root, dirs, files in os.walk(self.target): | ||||
|             self.files_in_export_dir.extend( | ||||
| @ -124,8 +130,11 @@ class Command(BaseCommand): | ||||
|                 "json", User.objects.all())) | ||||
| 
 | ||||
|         # 3. Export files from each document | ||||
|         for index, document_dict in tqdm.tqdm(enumerate(document_manifest), | ||||
|                                               total=len(document_manifest)): | ||||
|         for index, document_dict in tqdm.tqdm( | ||||
|             enumerate(document_manifest), | ||||
|             total=len(document_manifest), | ||||
|             disable=progress_bar_disable | ||||
|         ): | ||||
|             # 3.1. store files unencrypted | ||||
|             document_dict["fields"]["storage_type"] = Document.STORAGE_TYPE_UNENCRYPTED  # NOQA: E501 | ||||
| 
 | ||||
|  | ||||
| @ -36,6 +36,12 @@ class Command(BaseCommand): | ||||
| 
 | ||||
|     def add_arguments(self, parser): | ||||
|         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): | ||||
|         BaseCommand.__init__(self, *args, **kwargs) | ||||
| @ -70,7 +76,7 @@ class Command(BaseCommand): | ||||
|                 # Fill up the database with whatever is in the manifest | ||||
|                 call_command("loaddata", manifest_path) | ||||
| 
 | ||||
|                 self._import_files_from_manifest() | ||||
|                 self._import_files_from_manifest(options['no_progress_bar']) | ||||
| 
 | ||||
|         print("Updating search index...") | ||||
|         call_command('document_index', 'reindex') | ||||
| @ -111,7 +117,7 @@ class Command(BaseCommand): | ||||
|                         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.THUMBNAIL_DIR, exist_ok=True) | ||||
| @ -123,7 +129,10 @@ class Command(BaseCommand): | ||||
|             lambda r: r["model"] == "documents.document", | ||||
|             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"]) | ||||
| 
 | ||||
|  | ||||
| @ -10,10 +10,16 @@ class Command(BaseCommand): | ||||
| 
 | ||||
|     def add_arguments(self, parser): | ||||
|         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): | ||||
|         with transaction.atomic(): | ||||
|             if options['command'] == 'reindex': | ||||
|                 index_reindex() | ||||
|                 index_reindex(progress_bar_disable=options['no_progress_bar']) | ||||
|             elif options['command'] == 'optimize': | ||||
|                 index_optimize() | ||||
|  | ||||
| @ -13,9 +13,20 @@ class Command(BaseCommand): | ||||
|         This will rename all documents to match the latest filename format. | ||||
|     """.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): | ||||
| 
 | ||||
|         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) | ||||
|  | ||||
| @ -57,6 +57,12 @@ class Command(BaseCommand): | ||||
|                  "set correspondent, document and remove correspondents, types" | ||||
|                  "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): | ||||
| 
 | ||||
| @ -68,7 +74,10 @@ class Command(BaseCommand): | ||||
| 
 | ||||
|         classifier = load_classifier() | ||||
| 
 | ||||
|         for document in tqdm.tqdm(documents): | ||||
|         for document in tqdm.tqdm( | ||||
|             documents, | ||||
|             disable=options['no_progress_bar'] | ||||
|         ): | ||||
| 
 | ||||
|             if options['correspondent']: | ||||
|                 set_correspondent( | ||||
|  | ||||
| @ -8,8 +8,16 @@ class Command(BaseCommand): | ||||
|         This command checks your document archive for issues. | ||||
|     """.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): | ||||
| 
 | ||||
|         messages = check_sanity(progress=True) | ||||
|         messages = check_sanity(progress=not options['no_progress_bar']) | ||||
| 
 | ||||
|         messages.log_messages() | ||||
|  | ||||
| @ -47,6 +47,12 @@ class Command(BaseCommand): | ||||
|             help="Specify the ID of a document, and this command will only " | ||||
|                  "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): | ||||
|         logging.getLogger().handlers[0].level = logging.ERROR | ||||
| @ -65,5 +71,7 @@ class Command(BaseCommand): | ||||
| 
 | ||||
|         with multiprocessing.Pool() as pool: | ||||
|             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: | ||||
|         present_files.remove(lockfile) | ||||
| 
 | ||||
|     if progress: | ||||
|         docs = tqdm(Document.objects.all()) | ||||
|     else: | ||||
|         docs = Document.objects.all() | ||||
| 
 | ||||
|     for doc in docs: | ||||
|     for doc in tqdm(Document.objects.all(), disable=not progress): | ||||
|         # Check sanity of the thumbnail | ||||
|         if not os.path.isfile(doc.thumbnail_path): | ||||
|             messages.error(f"Thumbnail of document {doc.pk} does not exist.") | ||||
|  | ||||
| @ -42,3 +42,58 @@ body { | ||||
|   border-top-left-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) | ||||
| 
 | ||||
| 
 | ||||
| def index_reindex(): | ||||
| def index_reindex(progress_bar_disable=False): | ||||
|     documents = Document.objects.all() | ||||
| 
 | ||||
|     ix = index.open_index(recreate=True) | ||||
| 
 | ||||
|     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) | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -7,11 +7,12 @@ | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <title>Paperless-ng</title> | ||||
|   <base href="/"> | ||||
|   <base href="{% url 'base' %}"> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||
| 	<meta name="username" content="{{username}}"> | ||||
| 	<meta name="full_name" content="{{full_name}}"> | ||||
| 	<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="manifest" href="{% static webmanifest %}"> | ||||
| 	<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.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): | ||||
| 
 | ||||
|         doc1 = Document.objects.create(title="none1", checksum="A") | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 11:47\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:52\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Czech\n" | ||||
| "Language: cs_CZ\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Heslo" | ||||
| msgid "Sign in" | ||||
| msgstr "Přihlásit se" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Němčina" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Holandština" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Francouzština" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Správa Paperless-ng" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 19:51\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 23:04\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: German\n" | ||||
| "Language: de_DE\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Kennwort" | ||||
| msgid "Sign in" | ||||
| msgstr "Anmelden" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Englisch (US)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Englisch (UK)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Deutsch" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Niederländisch" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Französisch" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portugiesisch (Brasilien)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portugiesisch" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italienisch" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Rumänisch" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Russisch" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Spanisch" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "Polnisch" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "Schwedisch" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Paperless-ng Administration" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-05-02 17:00\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-05 21:40\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: English, United Kingdom\n" | ||||
| "Language: en_GB\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Password" | ||||
| msgid "Sign in" | ||||
| msgstr "Sign in" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "English (US)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "English (GB)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "German" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Dutch" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "French" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portuguese (Brazil)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portuguese" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italian" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Romanian" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Russian" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Spanish" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "Polish" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "Swedish" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Paperless-ng administration" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 11:47\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:52\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Spanish\n" | ||||
| "Language: es_ES\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Contraseña" | ||||
| msgid "Sign in" | ||||
| msgstr "Iniciar sesión" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Inglés (US)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Inglés (Gran Bretaña)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Alemán" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Alemán" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Francés" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portugués (Brasil)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italiano" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Rumano" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Ruso" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Español" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Paperless-ng Administración" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 13:47\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-05 15:10\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: French\n" | ||||
| "Language: fr_FR\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Mot de passe" | ||||
| msgid "Sign in" | ||||
| msgstr "S'identifier" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Anglais (US)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Anglais (GB)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Allemand" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Néerlandais" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Français" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portugais (Brésil)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portugais" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italien" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Roumain" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Russe" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Espagnol" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "Polonais" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "Suédois" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Administration de Paperless-ng" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 11:47\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:52\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Hungarian\n" | ||||
| "Language: hu_HU\n" | ||||
| @ -412,54 +412,58 @@ msgstr "" | ||||
| msgid "Sign in" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Angol (US)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Német" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 18:50\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-05 08:19\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Italian\n" | ||||
| "Language: it_IT\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Password" | ||||
| msgid "Sign in" | ||||
| msgstr "Accedi" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Inglese (US)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Inglese (GB)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Tedesco" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Olandese" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Francese" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portoghese (Brasile)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portoghese" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italiano" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Rumeno" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Russo" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Spagnolo" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "Polacco" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "Svedese" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Amministrazione di Paperless-ng" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-18 13:19\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-06 00:07\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Dutch\n" | ||||
| "Language: nl_NL\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Wachtwoord" | ||||
| msgid "Sign in" | ||||
| msgstr "Aanmelden" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Engels (US)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Engels (Brits)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Duits" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Nederlands" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Frans" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portugees (Brazilië)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portugees" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italiaans" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Roemeens" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Russisch" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Spaans" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "Pools" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "Zweeds" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Paperless-ng administratie" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 14:46\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:51\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Polish\n" | ||||
| "Language: pl_PL\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Hasło" | ||||
| msgid "Sign in" | ||||
| msgstr "Zaloguj się" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Angielski (USA)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Angielski (Wielka Brytania)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Niemiecki" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Holenderski" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Francuski" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portugalski (Brazylia)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portugalski" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Włoski" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Rumuński" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Rosyjski" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Hiszpański" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "Polski" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Administracja Paperless-ng" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 11:47\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:51\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Portuguese, Brazilian\n" | ||||
| "Language: pt_BR\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Senha" | ||||
| msgid "Sign in" | ||||
| msgstr "Entrar" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Inglês (EUA)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Inglês (GB)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Alemão" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Holandês" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Francês" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Português (Brasil)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italiano" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Romeno" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Administração do Paperless-ng" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 21:56\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-05 18:07\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Portuguese\n" | ||||
| "Language: pt_PT\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Palavra-passe" | ||||
| msgid "Sign in" | ||||
| msgstr "Iniciar sessão" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Inglês (EUA)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "English (GB)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Deutsch" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Nederlandse" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Français" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Português (Brasil)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Português" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italiano" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Romeno" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Russo" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Espanhol" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "Polaco" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "Sueco" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Administração do Paperless-ng" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-05-04 02:27\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 23:04\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Romanian\n" | ||||
| "Language: ro_RO\n" | ||||
| @ -412,53 +412,57 @@ msgstr "Parolă" | ||||
| msgid "Sign in" | ||||
| msgstr "Conectare" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Engleză (Americană)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Engleză (Britanică)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Germană" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Olandeză" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Franceză" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portugheză (Brazilia)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portugheză" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italiană" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Română" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Rusă" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Spaniolă" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
| msgstr "Poloneză" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "Suedeză" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 11:47\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:51\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Russian\n" | ||||
| "Language: ru_RU\n" | ||||
| @ -412,54 +412,58 @@ msgstr "Пароль" | ||||
| msgid "Sign in" | ||||
| msgstr "Вход" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Английский (США)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Английский (Великобритании)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Немецкий" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Датский" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Французский" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portuguese (Brazil)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Португальский" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italian" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Romanian" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Русский" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Испанский" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "Администрирование Paperless-ng" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-05-04 13:14\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" | ||||
| @ -412,54 +412,58 @@ msgstr "Lösenord" | ||||
| msgid "Sign in" | ||||
| msgstr "Logga in" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "Engelska (USA)" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "Engelska (GB)" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "Tyska" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "Holländska" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "Franska" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "Portugisiska (Brasilien)" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "Portugisiska" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "Italienska" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "Rumänska" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "Ryska" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "Spanska" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: 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" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 11:46\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:51\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Xhosa\n" | ||||
| "Language: xh_ZA\n" | ||||
| @ -412,54 +412,58 @@ msgstr "crwdns2712:0crwdne2712:0" | ||||
| msgid "Sign in" | ||||
| msgstr "crwdns2714:0crwdne2714:0" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "crwdns2716:0crwdne2716:0" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "crwdns2718:0crwdne2718:0" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "crwdns2720:0crwdne2720:0" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "crwdns2722:0crwdne2722:0" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "crwdns2724:0crwdne2724:0" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "crwdns2726:0crwdne2726:0" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "crwdns3424:0crwdne3424:0" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "crwdns2728:0crwdne2728:0" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "crwdns2730:0crwdne2730:0" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "crwdns3414:0crwdne3414:0" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "crwdns3420:0crwdne3420:0" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "crwdns3444:0crwdne3444:0" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "crwdns3448:0crwdne3448:0" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "crwdns2732:0crwdne2732:0" | ||||
|  | ||||
| @ -2,8 +2,8 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ng\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2021-04-17 13:41+0200\n" | ||||
| "PO-Revision-Date: 2021-04-17 11:47\n" | ||||
| "POT-Creation-Date: 2021-05-04 15:00+0000\n" | ||||
| "PO-Revision-Date: 2021-05-04 21:51\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: Chinese Simplified\n" | ||||
| "Language: zh_CN\n" | ||||
| @ -412,54 +412,58 @@ msgstr "" | ||||
| msgid "Sign in" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:298 | ||||
| #: paperless/settings.py:300 | ||||
| msgid "English (US)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:299 | ||||
| #: paperless/settings.py:301 | ||||
| msgid "English (GB)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:300 | ||||
| #: paperless/settings.py:302 | ||||
| msgid "German" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:301 | ||||
| #: paperless/settings.py:303 | ||||
| msgid "Dutch" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:302 | ||||
| #: paperless/settings.py:304 | ||||
| msgid "French" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:303 | ||||
| #: paperless/settings.py:305 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:304 | ||||
| #: paperless/settings.py:306 | ||||
| msgid "Portuguese" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:305 | ||||
| #: paperless/settings.py:307 | ||||
| msgid "Italian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:306 | ||||
| #: paperless/settings.py:308 | ||||
| msgid "Romanian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:307 | ||||
| #: paperless/settings.py:309 | ||||
| msgid "Russian" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:308 | ||||
| #: paperless/settings.py:310 | ||||
| msgid "Spanish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:309 | ||||
| #: paperless/settings.py:311 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/settings.py:312 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
| 
 | ||||
| #: paperless/urls.py:113 | ||||
| msgid "Paperless-ng administration" | ||||
| msgstr "" | ||||
|  | ||||
| @ -142,11 +142,14 @@ MIDDLEWARE = [ | ||||
| ROOT_URLCONF = 'paperless.urls' | ||||
| 
 | ||||
| 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' | ||||
| 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? | ||||
| TEMPLATES = [ | ||||
|  | ||||
| @ -9,6 +9,8 @@ from rest_framework.routers import DefaultRouter | ||||
| 
 | ||||
| from django.utils.translation import gettext_lazy as _ | ||||
| 
 | ||||
| from django.conf import settings | ||||
| 
 | ||||
| from paperless.consumers import StatusConsumer | ||||
| from documents.views import ( | ||||
|     CorrespondentViewSet, | ||||
| @ -73,31 +75,36 @@ urlpatterns = [ | ||||
|     re_path(r"^fetch/", include([ | ||||
|         re_path( | ||||
|             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( | ||||
|             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( | ||||
|             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( | ||||
|         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. | ||||
|     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! :/ | ||||
| 
 | ||||
|     # login, logout | ||||
|     path('accounts/', include('django.contrib.auth.urls')), | ||||
| 
 | ||||
|     # 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}") | ||||
|             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. | ||||
|             return None | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										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() | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user