mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Feature: password reset (#4289)
This commit is contained in:
		| @@ -1301,3 +1301,32 @@ started by the container. | ||||
|     v1.9.2. A one-time migration is performed for users who have this | ||||
|     setting set. This setting is always ignored if the corresponding | ||||
|     frontend setting has been set. | ||||
|  | ||||
| ## Email sending | ||||
|  | ||||
| Setting an SMTP server for the backend will allow you to reset your | ||||
| password. All of these options come from their similarly-named [Django settings](https://docs.djangoproject.com/en/4.2/ref/settings/#email-host) | ||||
|  | ||||
| #### [`PAPERLESS_EMAIL_HOST=<str>`](#PAPERLESS_EMAIL_HOST) {#PAPERLESS_EMAIL_HOST} | ||||
|  | ||||
| : Defaults to 'localhost'. | ||||
|  | ||||
| #### [`PAPERLESS_EMAIL_PORT=<int>`](#PAPERLESS_EMAIL_PORT) {#PAPERLESS_EMAIL_PORT} | ||||
|  | ||||
| : Defaults to port 25. | ||||
|  | ||||
| #### [`PAPERLESS_EMAIL_HOST_USER=<str>`](#PAPERLESS_EMAIL_HOST_USER) {#PAPERLESS_EMAIL_HOST_USER} | ||||
|  | ||||
| : Defaults to ''. | ||||
|  | ||||
| #### [`PAPERLESS_EMAIL_HOST_PASSWORD=<str>`](#PAPERLESS_EMAIL_HOST_PASSWORD) {#PAPERLESS_EMAIL_HOST_PASSWORD} | ||||
|  | ||||
| : Defaults to ''. | ||||
|  | ||||
| #### [`PAPERLESS_EMAIL_USE_TLS=<bool>`](#PAPERLESS_EMAIL_USE_TLS) {#PAPERLESS_EMAIL_USE_TLS} | ||||
|  | ||||
| : Defaults to false. | ||||
|  | ||||
| #### [`PAPERLESS_EMAIL_USE_SSL=<bool>`](#PAPERLESS_EMAIL_USE_SSL) {#PAPERLESS_EMAIL_USE_SSL} | ||||
|  | ||||
| : Defaults to false. | ||||
|   | ||||
| @@ -261,6 +261,11 @@ These can be found under Settings > Users & Groups, assuming the user has access | ||||
| as a member of a group those permissions will be inherited and this is reflected in the UI. Explicit | ||||
| permissions can be granted to limit access to certain parts of the UI (and corresponding API endpoints). | ||||
|  | ||||
| ### Password reset | ||||
|  | ||||
| In order to enable the password reset feature you will need to setup an SMTP backend, see | ||||
| [`PAPERLESS_EMAIL_HOST`](/configuration#PAPERLESS_EMAIL_HOST) | ||||
|  | ||||
| ## Consumption templates | ||||
|  | ||||
| Consumption templates were introduced in v2.0 and allow for finer control over what metadata (tags, doc | ||||
|   | ||||
							
								
								
									
										8
									
								
								src/documents/context_processors.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/documents/context_processors.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| from django.conf import settings as django_settings | ||||
|  | ||||
|  | ||||
| def settings(request): | ||||
|     return { | ||||
|         "EMAIL_ENABLED": django_settings.EMAIL_HOST != "localhost" | ||||
|         or django_settings.EMAIL_HOST_USER != "", | ||||
|     } | ||||
| @@ -2,32 +2,43 @@ body { | ||||
|   --bs-body-bg: #f5f5f5; | ||||
|   --bs-link-color-rgb: 23, 84, 31; /* #17541f */ | ||||
|   --bs-link-hover-color-rgb: 15, 56, 20; | ||||
|   --pngx-primary: #17541f; | ||||
|   --pngx-primary-hover: #0f3614; | ||||
|   --pngx-primary-active: #0c2c10; | ||||
| } | ||||
|  | ||||
| .form-control { | ||||
|   --bs-body-bg: #fff; | ||||
| } | ||||
|  | ||||
| .btn { | ||||
|   --bs-btn-bg: #17541f; | ||||
|   --bs-btn-border-color: #17541f; | ||||
|   --bs-btn-hover-bg: #0f3614; | ||||
| .btn.btn-primary { | ||||
|   --bs-btn-bg: var(--pngx-primary); | ||||
|   --bs-btn-border-color: var(--pngx-primary); | ||||
|   --bs-btn-hover-bg: var(--pngx-primary-hover); | ||||
|   --bs-btn-hover-border-color: #0c2c10; | ||||
|   --bs-btn-active-bg: #0c2c10; | ||||
|   --bs-btn-active-bg: var(--pngx-primary-active); | ||||
|   --bs-btn-active-border-color: #09220d; | ||||
| } | ||||
|  | ||||
| .btn-link { | ||||
|   --bs-btn-color: var(--pngx-primary); | ||||
|   --bs-btn-hover-color: var(--pngx-primary-hover); | ||||
|   --bs-btn-active-color: var(--pngx-primary-active); | ||||
| } | ||||
|  | ||||
| .form-signin { | ||||
|   max-width: 330px; | ||||
| } | ||||
|  | ||||
| #inputUsername { | ||||
| #inputUsername, | ||||
| #inputPassword1 { | ||||
|   margin-bottom: -1px; | ||||
|   border-bottom-right-radius: 0; | ||||
|   border-bottom-left-radius: 0; | ||||
| } | ||||
|  | ||||
| #inputPassword { | ||||
| #inputPassword, | ||||
| #inputPassword2 { | ||||
|   border-top-left-radius: 0; | ||||
|   border-top-right-radius: 0; | ||||
| } | ||||
|   | ||||
| @@ -65,6 +65,11 @@ | ||||
|       <div class="d-grid mt-3"> | ||||
|         <button class="btn btn-lg btn-primary" type="submit">{% translate "Sign in" %}</button> | ||||
|       </div> | ||||
|       {% if EMAIL_ENABLED %} | ||||
|       <div class="d-grid mt-3"> | ||||
|         <a class="btn btn-link" href="{% url 'password_reset' %}">{% translate "Forgot your password?" %}</a> | ||||
|       </div> | ||||
|       {% endif %} | ||||
| 		</form> | ||||
| 	</body> | ||||
| </html> | ||||
|   | ||||
| @@ -0,0 +1,45 @@ | ||||
| <!doctype html> | ||||
|  | ||||
| {% load static %} | ||||
| {% load i18n %} | ||||
|  | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||||
|     <meta name="description" content="Paperless-ngx Sign In"> | ||||
|     <meta name="author" content="Paperless-ngx project and contributors"> | ||||
|     <meta name="robots" content="noindex,nofollow"> | ||||
|  | ||||
|     <title>{% translate "Paperless-ngx reset password complete" %}</title> | ||||
|  | ||||
| 		<link href="{% static 'bootstrap.min.css' %}" rel="stylesheet"> | ||||
|     <link href="{% static 'signin.css' %}" rel="stylesheet"> | ||||
|   </head> | ||||
|  | ||||
|   <body class="text-center"> | ||||
|       <div class="position-absolute top-50 start-50 translate-middle"> | ||||
|         <svg xmlns="http://www.w3.org/2000/svg" width="300" class="logo mb-4" viewBox="0 0 2897.4 896.6"> | ||||
|           <path class="leaf" d="M140,713.7c-3.4-16.4-10.3-49.1-11.2-49.1c-145.7-87.1-128.4-238-80.2-324.2C59,449,251.2,524,139.1,656.8 c-0.9,1.7,5.2,22.4,10.3,41.4c22.4-37.9,56-83.6,54.3-87.9C65.9,273.9,496.9,248.1,586.6,39.4c40.5,201.8-20.7,513.9-367.2,593.2 c-1.7,0.9-62.9,108.6-65.5,109.5c0-1.7-25.9-0.9-22.4-9.5C133.1,727.4,136.6,720.6,140,713.7L140,713.7z M135.7,632.6 c44-50.9-7.8-137.9-38.8-166.4C149.5,556.7,146,609.3,135.7,632.6L135.7,632.6z" transform="translate(0)" style="fill:#17541f"/> | ||||
|           <g class="text" style="fill:#000"> | ||||
|             <path d="M1022.3,428.7c-17.8-19.9-42.7-29.8-74.7-29.8c-22.3,0-42.4,5.7-60.5,17.3c-18.1,11.6-32.3,27.5-42.5,47.8 s-15.3,42.9-15.3,67.8c0,24.9,5.1,47.5,15.3,67.8c10.3,20.3,24.4,36.2,42.5,47.8c18.1,11.5,38.3,17.3,60.5,17.3 c32,0,56.9-9.9,74.7-29.8v20.4v0.2h84.5V408.3h-84.5V428.7z M1010.5,575c-10.2,11.7-23.6,17.6-40.2,17.6s-29.9-5.9-40-17.6 s-15.1-26.1-15.1-43.3c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6c16.6,0,30,5.9,40.2,17.6s15.3,26.1,15.3,43.3 S1020.7,563.3,1010.5,575z" transform="translate(0)"/> | ||||
|             <path d="M1381,416.1c-18.1-11.5-38.3-17.3-60.5-17.4c-32,0-56.9,9.9-74.7,29.8v-20.4h-84.5v390.7h84.5v-164 c17.8,19.9,42.7,29.8,74.7,29.8c22.3,0,42.4-5.7,60.5-17.3s32.3-27.5,42.5-47.8c10.2-20.3,15.3-42.9,15.3-67.8s-5.1-47.5-15.3-67.8 C1413.2,443.6,1399.1,427.7,1381,416.1z M1337.9,575c-10.1,11.7-23.4,17.6-40,17.6s-29.9-5.9-40-17.6s-15.1-26.1-15.1-43.3 c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6s29.9,5.9,40,17.6s15.1,26.1,15.1,43.3S1347.9,563.3,1337.9,575z" transform="translate(0)"/> | ||||
|             <path d="M1672.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6c-20.4,11.7-36.5,27.7-48.2,48s-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S1692.6,428.8,1672.2,416.8z M1558.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H1558.3z" transform="translate(0)"/> | ||||
|             <path d="M1895.3,411.7c-11,5.6-20.3,13.7-28,24.4h-0.1v-28h-84.5v247.3h84.5V536.3c0-22.6,4.7-38.1,14.2-46.5 c9.5-8.5,22.7-12.7,39.6-12.7c6.2,0,13.5,1,21.8,3.1l10.7-72c-5.9-3.3-14.5-4.9-25.8-4.9C1917.1,403.3,1906.3,406.1,1895.3,411.7z"  transform="translate(0)"/> | ||||
|             <rect x="1985" y="277.4" width="84.5" height="377.8" transform="translate(0)"/> | ||||
|             <path d="M2313.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6s-36.5,27.7-48.2,48c-11.7,20.3-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S2333.6,428.8,2313.2,416.8z M2199.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H2199.3z" transform="translate(0)"/> | ||||
|             <path d="M2583.6,507.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9 c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8 c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7 c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6 c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9 c34.7,0,62.9-7.4,84.5-22.4c21.7-15,32.5-37.3,32.5-66.9c0-19.3-5-34.2-15.1-44.9S2597.4,512.1,2583.6,507.7z" transform="translate(0)"/> | ||||
|             <path d="M2883.4,575.3c0-19.3-5-34.2-15.1-44.9s-22-18.3-35.8-22.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6 c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4 l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7 c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6 c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2 l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9c34.7,0,62.9-7.4,84.5-22.4 C2872.6,627.2,2883.4,604.9,2883.4,575.3z" transform="translate(0)"/> | ||||
|             <rect x="2460.7" y="738.7" width="59.6" height="17.2" transform="translate(0)"/> | ||||
|             <path d="M2596.5,706.4c-5.7,0-11,1-15.8,3s-9,5-12.5,8.9v-9.4h-19.4v93.6h19.4v-52c0-8.6,2.1-15.3,6.3-20c4.2-4.7,9.5-7.1,15.9-7.1 c7.8,0,13.4,2.3,16.8,6.7c3.4,4.5,5.1,11.3,5.1,20.5v52h19.4v-56.8c0-12.8-3.2-22.6-9.5-29.3 C2615.8,709.8,2607.3,706.4,2596.5,706.4z" transform="translate(0)"/> | ||||
|             <path d="M2733.8,717.7c-3.6-3.4-7.9-6.1-13.1-8.2s-10.6-3.1-16.2-3.1c-8.7,0-16.5,2.1-23.5,6.3s-12.5,10-16.5,17.3 c-4,7.3-6,15.4-6,24.4c0,8.9,2,17.1,6,24.3c4,7.3,9.5,13,16.5,17.2s14.9,6.3,23.5,6.3c5.6,0,11-1,16.2-3.1 c5.1-2.1,9.5-4.8,13.1-8.2v24.4c0,8.5-2.5,14.8-7.6,18.7c-5,3.9-11,5.9-18,5.9c-6.7,0-12.4-1.6-17.3-4.7c-4.8-3.1-7.6-7.7-8.3-13.8 h-19.4c0.6,7.7,2.9,14.2,7.1,19.5s9.6,9.3,16.2,12c6.6,2.7,13.8,4,21.7,4c12.8,0,23.5-3.4,32-10.1c8.6-6.7,12.8-17.1,12.8-31.1 V708.9h-19.2V717.7z M2732.2,770.1c-2.5,4.7-6,8.3-10.4,11.2c-4.4,2.7-9.4,4-14.9,4c-5.7,0-10.8-1.4-15.2-4.3s-7.8-6.7-10.2-11.4 c-2.3-4.8-3.5-9.8-3.5-15.2c0-5.5,1.1-10.6,3.5-15.3s5.8-8.5,10.2-11.3s9.5-4.2,15.2-4.2c5.5,0,10.5,1.4,14.9,4s7.9,6.3,10.4,11 s3.8,10,3.8,15.8S2734.7,765.4,2732.2,770.1z" transform="translate(0)"/> | ||||
|             <polygon points="2867.9,708.9 2846.5,708.9 2820.9,741.9 2795.5,708.9 2773.1,708.9 2809.1,755 2771.5,802.5 2792.9,802.5  2820.1,767.9 2847.2,802.6 2869.6,802.6 2832,754.4 	" transform="translate(0)"/> | ||||
|             <path d="M757.6,293.7c-20-10.8-42.6-16.2-67.8-16.2H600c-8.5,39.2-21.1,76.4-37.6,111.3c-9.9,20.8-21.1,40.6-33.6,59.4v207.2h88.9 V521.5h72c25.2,0,47.8-5.4,67.8-16.2s35.7-25.6,47.1-44.2c11.4-18.7,17.1-39.1,17.1-61.3c0.1-22.7-5.6-43.3-17-61.9 C793.3,319.2,777.6,304.5,757.6,293.7z M716.6,434.3c-9.3,8.9-21.6,13.3-36.7,13.3l-62.2,0.4v-92.5l62.2-0.4 c15.1,0,27.3,4.4,36.7,13.3c9.4,8.9,14,19.9,14,32.9C730.6,414.5,726,425.4,716.6,434.3z" transform="translate(0)"/> | ||||
|           </g> | ||||
|         </svg> | ||||
|         <h3>{% translate "Password reset complete." %}</h3> | ||||
|         {% url 'login' as login_url %} | ||||
|         <p>{% blocktranslate %}Your new password has been set. You can now <a href="{{ login_url }}">log in</a>{% endblocktranslate %}.</p> | ||||
|       </div> | ||||
| 	</body> | ||||
| </html> | ||||
| @@ -0,0 +1,70 @@ | ||||
| <!doctype html> | ||||
|  | ||||
| {% load static %} | ||||
| {% load i18n %} | ||||
|  | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||||
|     <meta name="description" content="Paperless-ngx Sign In"> | ||||
|     <meta name="author" content="Paperless-ngx project and contributors"> | ||||
|     <meta name="robots" content="noindex,nofollow"> | ||||
|  | ||||
|     <title>{% translate "Paperless-ngx reset password confirmation" %}</title> | ||||
|  | ||||
| 		<link href="{% static 'bootstrap.min.css' %}" rel="stylesheet"> | ||||
|     <link href="{% static 'signin.css' %}" rel="stylesheet"> | ||||
|   </head> | ||||
|  | ||||
|   <body class="text-center"> | ||||
|     <form class="form-signin position-absolute top-50 start-50 translate-middle" method="post"> | ||||
| 			{% csrf_token %} | ||||
|       <svg xmlns="http://www.w3.org/2000/svg" width="300" class="logo mb-4" viewBox="0 0 2897.4 896.6"> | ||||
|         <path class="leaf" d="M140,713.7c-3.4-16.4-10.3-49.1-11.2-49.1c-145.7-87.1-128.4-238-80.2-324.2C59,449,251.2,524,139.1,656.8 c-0.9,1.7,5.2,22.4,10.3,41.4c22.4-37.9,56-83.6,54.3-87.9C65.9,273.9,496.9,248.1,586.6,39.4c40.5,201.8-20.7,513.9-367.2,593.2 c-1.7,0.9-62.9,108.6-65.5,109.5c0-1.7-25.9-0.9-22.4-9.5C133.1,727.4,136.6,720.6,140,713.7L140,713.7z M135.7,632.6 c44-50.9-7.8-137.9-38.8-166.4C149.5,556.7,146,609.3,135.7,632.6L135.7,632.6z" transform="translate(0)" style="fill:#17541f"/> | ||||
|         <g class="text" style="fill:#000"> | ||||
|           <path d="M1022.3,428.7c-17.8-19.9-42.7-29.8-74.7-29.8c-22.3,0-42.4,5.7-60.5,17.3c-18.1,11.6-32.3,27.5-42.5,47.8 s-15.3,42.9-15.3,67.8c0,24.9,5.1,47.5,15.3,67.8c10.3,20.3,24.4,36.2,42.5,47.8c18.1,11.5,38.3,17.3,60.5,17.3 c32,0,56.9-9.9,74.7-29.8v20.4v0.2h84.5V408.3h-84.5V428.7z M1010.5,575c-10.2,11.7-23.6,17.6-40.2,17.6s-29.9-5.9-40-17.6 s-15.1-26.1-15.1-43.3c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6c16.6,0,30,5.9,40.2,17.6s15.3,26.1,15.3,43.3 S1020.7,563.3,1010.5,575z" transform="translate(0)"/> | ||||
|           <path d="M1381,416.1c-18.1-11.5-38.3-17.3-60.5-17.4c-32,0-56.9,9.9-74.7,29.8v-20.4h-84.5v390.7h84.5v-164 c17.8,19.9,42.7,29.8,74.7,29.8c22.3,0,42.4-5.7,60.5-17.3s32.3-27.5,42.5-47.8c10.2-20.3,15.3-42.9,15.3-67.8s-5.1-47.5-15.3-67.8 C1413.2,443.6,1399.1,427.7,1381,416.1z M1337.9,575c-10.1,11.7-23.4,17.6-40,17.6s-29.9-5.9-40-17.6s-15.1-26.1-15.1-43.3 c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6s29.9,5.9,40,17.6s15.1,26.1,15.1,43.3S1347.9,563.3,1337.9,575z" transform="translate(0)"/> | ||||
|           <path d="M1672.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6c-20.4,11.7-36.5,27.7-48.2,48s-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S1692.6,428.8,1672.2,416.8z M1558.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H1558.3z" transform="translate(0)"/> | ||||
|           <path d="M1895.3,411.7c-11,5.6-20.3,13.7-28,24.4h-0.1v-28h-84.5v247.3h84.5V536.3c0-22.6,4.7-38.1,14.2-46.5 c9.5-8.5,22.7-12.7,39.6-12.7c6.2,0,13.5,1,21.8,3.1l10.7-72c-5.9-3.3-14.5-4.9-25.8-4.9C1917.1,403.3,1906.3,406.1,1895.3,411.7z"  transform="translate(0)"/> | ||||
|           <rect x="1985" y="277.4" width="84.5" height="377.8" transform="translate(0)"/> | ||||
|           <path d="M2313.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6s-36.5,27.7-48.2,48c-11.7,20.3-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S2333.6,428.8,2313.2,416.8z M2199.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H2199.3z" transform="translate(0)"/> | ||||
|           <path d="M2583.6,507.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9 c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8 c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7 c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6 c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9 c34.7,0,62.9-7.4,84.5-22.4c21.7-15,32.5-37.3,32.5-66.9c0-19.3-5-34.2-15.1-44.9S2597.4,512.1,2583.6,507.7z" transform="translate(0)"/> | ||||
|           <path d="M2883.4,575.3c0-19.3-5-34.2-15.1-44.9s-22-18.3-35.8-22.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6 c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4 l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7 c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6 c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2 l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9c34.7,0,62.9-7.4,84.5-22.4 C2872.6,627.2,2883.4,604.9,2883.4,575.3z" transform="translate(0)"/> | ||||
|           <rect x="2460.7" y="738.7" width="59.6" height="17.2" transform="translate(0)"/> | ||||
|           <path d="M2596.5,706.4c-5.7,0-11,1-15.8,3s-9,5-12.5,8.9v-9.4h-19.4v93.6h19.4v-52c0-8.6,2.1-15.3,6.3-20c4.2-4.7,9.5-7.1,15.9-7.1 c7.8,0,13.4,2.3,16.8,6.7c3.4,4.5,5.1,11.3,5.1,20.5v52h19.4v-56.8c0-12.8-3.2-22.6-9.5-29.3 C2615.8,709.8,2607.3,706.4,2596.5,706.4z" transform="translate(0)"/> | ||||
|           <path d="M2733.8,717.7c-3.6-3.4-7.9-6.1-13.1-8.2s-10.6-3.1-16.2-3.1c-8.7,0-16.5,2.1-23.5,6.3s-12.5,10-16.5,17.3 c-4,7.3-6,15.4-6,24.4c0,8.9,2,17.1,6,24.3c4,7.3,9.5,13,16.5,17.2s14.9,6.3,23.5,6.3c5.6,0,11-1,16.2-3.1 c5.1-2.1,9.5-4.8,13.1-8.2v24.4c0,8.5-2.5,14.8-7.6,18.7c-5,3.9-11,5.9-18,5.9c-6.7,0-12.4-1.6-17.3-4.7c-4.8-3.1-7.6-7.7-8.3-13.8 h-19.4c0.6,7.7,2.9,14.2,7.1,19.5s9.6,9.3,16.2,12c6.6,2.7,13.8,4,21.7,4c12.8,0,23.5-3.4,32-10.1c8.6-6.7,12.8-17.1,12.8-31.1 V708.9h-19.2V717.7z M2732.2,770.1c-2.5,4.7-6,8.3-10.4,11.2c-4.4,2.7-9.4,4-14.9,4c-5.7,0-10.8-1.4-15.2-4.3s-7.8-6.7-10.2-11.4 c-2.3-4.8-3.5-9.8-3.5-15.2c0-5.5,1.1-10.6,3.5-15.3s5.8-8.5,10.2-11.3s9.5-4.2,15.2-4.2c5.5,0,10.5,1.4,14.9,4s7.9,6.3,10.4,11 s3.8,10,3.8,15.8S2734.7,765.4,2732.2,770.1z" transform="translate(0)"/> | ||||
|           <polygon points="2867.9,708.9 2846.5,708.9 2820.9,741.9 2795.5,708.9 2773.1,708.9 2809.1,755 2771.5,802.5 2792.9,802.5  2820.1,767.9 2847.2,802.6 2869.6,802.6 2832,754.4 	" transform="translate(0)"/> | ||||
|           <path d="M757.6,293.7c-20-10.8-42.6-16.2-67.8-16.2H600c-8.5,39.2-21.1,76.4-37.6,111.3c-9.9,20.8-21.1,40.6-33.6,59.4v207.2h88.9 V521.5h72c25.2,0,47.8-5.4,67.8-16.2s35.7-25.6,47.1-44.2c11.4-18.7,17.1-39.1,17.1-61.3c0.1-22.7-5.6-43.3-17-61.9 C793.3,319.2,777.6,304.5,757.6,293.7z M716.6,434.3c-9.3,8.9-21.6,13.3-36.7,13.3l-62.2,0.4v-92.5l62.2-0.4 c15.1,0,27.3,4.4,36.7,13.3c9.4,8.9,14,19.9,14,32.9C730.6,414.5,726,425.4,716.6,434.3z" transform="translate(0)"/> | ||||
|         </g> | ||||
|       </svg> | ||||
|       {% if validlink %} | ||||
| 			<p>{% translate "Set a new password." %}</p> | ||||
| 			{% if form.errors %} | ||||
|         <div class="alert alert-danger" role="alert"> | ||||
|           {{ form.errors }} | ||||
|           {% translate "Passwords did not match or too weak. Try again." %} | ||||
|         </div> | ||||
|       {% endif %} | ||||
| 			{% translate "New Password" as i18n_new_password1 %} | ||||
| 			{% translate "Confirm Password" as i18n_new_password2 %} | ||||
|       <h1></h1> | ||||
|       <div class="form-floating"> | ||||
|         <input type="password" name="new_password1" id="inputPassword1" placeholder="{{ i18n_new_password1 }}" class="form-control" required> | ||||
| 			  <label for="inputPassword1">{{ i18n_new_password1 }}</label> | ||||
|       </div> | ||||
|       <div class="form-floating"> | ||||
|         <input type="password" name="new_password2" id="inputPassword2" placeholder="{{ i18n_new_password2 }}" class="form-control" required> | ||||
| 			  <label for="inputPassword2">{{ i18n_new_password2 }}</label> | ||||
|       </div> | ||||
|       <div class="d-grid mt-3"> | ||||
|         <button class="btn btn-lg btn-primary" type="submit">{% translate "Change my password" %}</button> | ||||
|       </div> | ||||
|       {% else %} | ||||
|  | ||||
|       <p>The password reset link was invalid, possibly because it has already been used. Please <a class="btn btn-link" href="{% url 'password_reset' %}">{% translate "request a new password reset" %}</a>.</p> | ||||
|  | ||||
|       {% endif %} | ||||
| 		</form> | ||||
| 	</body> | ||||
| </html> | ||||
| @@ -0,0 +1,44 @@ | ||||
| <!doctype html> | ||||
|  | ||||
| {% load static %} | ||||
| {% load i18n %} | ||||
|  | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||||
|     <meta name="description" content="Paperless-ngx Sign In"> | ||||
|     <meta name="author" content="Paperless-ngx project and contributors"> | ||||
|     <meta name="robots" content="noindex,nofollow"> | ||||
|  | ||||
|     <title>{% translate "Paperless-ngx reset password sent" %}</title> | ||||
|  | ||||
| 		<link href="{% static 'bootstrap.min.css' %}" rel="stylesheet"> | ||||
|     <link href="{% static 'signin.css' %}" rel="stylesheet"> | ||||
|   </head> | ||||
|  | ||||
|   <body class="text-center"> | ||||
|       <div class="position-absolute top-50 start-50 translate-middle"> | ||||
|         <svg xmlns="http://www.w3.org/2000/svg" width="300" class="logo mb-4" viewBox="0 0 2897.4 896.6"> | ||||
|           <path class="leaf" d="M140,713.7c-3.4-16.4-10.3-49.1-11.2-49.1c-145.7-87.1-128.4-238-80.2-324.2C59,449,251.2,524,139.1,656.8 c-0.9,1.7,5.2,22.4,10.3,41.4c22.4-37.9,56-83.6,54.3-87.9C65.9,273.9,496.9,248.1,586.6,39.4c40.5,201.8-20.7,513.9-367.2,593.2 c-1.7,0.9-62.9,108.6-65.5,109.5c0-1.7-25.9-0.9-22.4-9.5C133.1,727.4,136.6,720.6,140,713.7L140,713.7z M135.7,632.6 c44-50.9-7.8-137.9-38.8-166.4C149.5,556.7,146,609.3,135.7,632.6L135.7,632.6z" transform="translate(0)" style="fill:#17541f"/> | ||||
|           <g class="text" style="fill:#000"> | ||||
|             <path d="M1022.3,428.7c-17.8-19.9-42.7-29.8-74.7-29.8c-22.3,0-42.4,5.7-60.5,17.3c-18.1,11.6-32.3,27.5-42.5,47.8 s-15.3,42.9-15.3,67.8c0,24.9,5.1,47.5,15.3,67.8c10.3,20.3,24.4,36.2,42.5,47.8c18.1,11.5,38.3,17.3,60.5,17.3 c32,0,56.9-9.9,74.7-29.8v20.4v0.2h84.5V408.3h-84.5V428.7z M1010.5,575c-10.2,11.7-23.6,17.6-40.2,17.6s-29.9-5.9-40-17.6 s-15.1-26.1-15.1-43.3c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6c16.6,0,30,5.9,40.2,17.6s15.3,26.1,15.3,43.3 S1020.7,563.3,1010.5,575z" transform="translate(0)"/> | ||||
|             <path d="M1381,416.1c-18.1-11.5-38.3-17.3-60.5-17.4c-32,0-56.9,9.9-74.7,29.8v-20.4h-84.5v390.7h84.5v-164 c17.8,19.9,42.7,29.8,74.7,29.8c22.3,0,42.4-5.7,60.5-17.3s32.3-27.5,42.5-47.8c10.2-20.3,15.3-42.9,15.3-67.8s-5.1-47.5-15.3-67.8 C1413.2,443.6,1399.1,427.7,1381,416.1z M1337.9,575c-10.1,11.7-23.4,17.6-40,17.6s-29.9-5.9-40-17.6s-15.1-26.1-15.1-43.3 c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6s29.9,5.9,40,17.6s15.1,26.1,15.1,43.3S1347.9,563.3,1337.9,575z" transform="translate(0)"/> | ||||
|             <path d="M1672.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6c-20.4,11.7-36.5,27.7-48.2,48s-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S1692.6,428.8,1672.2,416.8z M1558.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H1558.3z" transform="translate(0)"/> | ||||
|             <path d="M1895.3,411.7c-11,5.6-20.3,13.7-28,24.4h-0.1v-28h-84.5v247.3h84.5V536.3c0-22.6,4.7-38.1,14.2-46.5 c9.5-8.5,22.7-12.7,39.6-12.7c6.2,0,13.5,1,21.8,3.1l10.7-72c-5.9-3.3-14.5-4.9-25.8-4.9C1917.1,403.3,1906.3,406.1,1895.3,411.7z"  transform="translate(0)"/> | ||||
|             <rect x="1985" y="277.4" width="84.5" height="377.8" transform="translate(0)"/> | ||||
|             <path d="M2313.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6s-36.5,27.7-48.2,48c-11.7,20.3-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S2333.6,428.8,2313.2,416.8z M2199.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H2199.3z" transform="translate(0)"/> | ||||
|             <path d="M2583.6,507.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9 c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8 c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7 c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6 c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9 c34.7,0,62.9-7.4,84.5-22.4c21.7-15,32.5-37.3,32.5-66.9c0-19.3-5-34.2-15.1-44.9S2597.4,512.1,2583.6,507.7z" transform="translate(0)"/> | ||||
|             <path d="M2883.4,575.3c0-19.3-5-34.2-15.1-44.9s-22-18.3-35.8-22.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6 c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4 l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7 c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6 c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2 l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9c34.7,0,62.9-7.4,84.5-22.4 C2872.6,627.2,2883.4,604.9,2883.4,575.3z" transform="translate(0)"/> | ||||
|             <rect x="2460.7" y="738.7" width="59.6" height="17.2" transform="translate(0)"/> | ||||
|             <path d="M2596.5,706.4c-5.7,0-11,1-15.8,3s-9,5-12.5,8.9v-9.4h-19.4v93.6h19.4v-52c0-8.6,2.1-15.3,6.3-20c4.2-4.7,9.5-7.1,15.9-7.1 c7.8,0,13.4,2.3,16.8,6.7c3.4,4.5,5.1,11.3,5.1,20.5v52h19.4v-56.8c0-12.8-3.2-22.6-9.5-29.3 C2615.8,709.8,2607.3,706.4,2596.5,706.4z" transform="translate(0)"/> | ||||
|             <path d="M2733.8,717.7c-3.6-3.4-7.9-6.1-13.1-8.2s-10.6-3.1-16.2-3.1c-8.7,0-16.5,2.1-23.5,6.3s-12.5,10-16.5,17.3 c-4,7.3-6,15.4-6,24.4c0,8.9,2,17.1,6,24.3c4,7.3,9.5,13,16.5,17.2s14.9,6.3,23.5,6.3c5.6,0,11-1,16.2-3.1 c5.1-2.1,9.5-4.8,13.1-8.2v24.4c0,8.5-2.5,14.8-7.6,18.7c-5,3.9-11,5.9-18,5.9c-6.7,0-12.4-1.6-17.3-4.7c-4.8-3.1-7.6-7.7-8.3-13.8 h-19.4c0.6,7.7,2.9,14.2,7.1,19.5s9.6,9.3,16.2,12c6.6,2.7,13.8,4,21.7,4c12.8,0,23.5-3.4,32-10.1c8.6-6.7,12.8-17.1,12.8-31.1 V708.9h-19.2V717.7z M2732.2,770.1c-2.5,4.7-6,8.3-10.4,11.2c-4.4,2.7-9.4,4-14.9,4c-5.7,0-10.8-1.4-15.2-4.3s-7.8-6.7-10.2-11.4 c-2.3-4.8-3.5-9.8-3.5-15.2c0-5.5,1.1-10.6,3.5-15.3s5.8-8.5,10.2-11.3s9.5-4.2,15.2-4.2c5.5,0,10.5,1.4,14.9,4s7.9,6.3,10.4,11 s3.8,10,3.8,15.8S2734.7,765.4,2732.2,770.1z" transform="translate(0)"/> | ||||
|             <polygon points="2867.9,708.9 2846.5,708.9 2820.9,741.9 2795.5,708.9 2773.1,708.9 2809.1,755 2771.5,802.5 2792.9,802.5  2820.1,767.9 2847.2,802.6 2869.6,802.6 2832,754.4 	" transform="translate(0)"/> | ||||
|             <path d="M757.6,293.7c-20-10.8-42.6-16.2-67.8-16.2H600c-8.5,39.2-21.1,76.4-37.6,111.3c-9.9,20.8-21.1,40.6-33.6,59.4v207.2h88.9 V521.5h72c25.2,0,47.8-5.4,67.8-16.2s35.7-25.6,47.1-44.2c11.4-18.7,17.1-39.1,17.1-61.3c0.1-22.7-5.6-43.3-17-61.9 C793.3,319.2,777.6,304.5,757.6,293.7z M716.6,434.3c-9.3,8.9-21.6,13.3-36.7,13.3l-62.2,0.4v-92.5l62.2-0.4 c15.1,0,27.3,4.4,36.7,13.3c9.4,8.9,14,19.9,14,32.9C730.6,414.5,726,425.4,716.6,434.3z" transform="translate(0)"/> | ||||
|           </g> | ||||
|         </svg> | ||||
|         <h3>{% translate "Check your inbox." %}</h3> | ||||
|         <p>{% translate "We've emailed you instructions for setting your password. You should receive the email shortly!" %}</p> | ||||
|       </div> | ||||
| 	</body> | ||||
| </html> | ||||
| @@ -0,0 +1,58 @@ | ||||
| <!doctype html> | ||||
|  | ||||
| {% load static %} | ||||
| {% load i18n %} | ||||
|  | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||||
|     <meta name="description" content="Paperless-ngx Sign In"> | ||||
|     <meta name="author" content="Paperless-ngx project and contributors"> | ||||
|     <meta name="robots" content="noindex,nofollow"> | ||||
|  | ||||
|     <title>{% translate "Paperless-ngx reset password request" %}</title> | ||||
|  | ||||
| 		<link href="{% static 'bootstrap.min.css' %}" rel="stylesheet"> | ||||
|     <link href="{% static 'signin.css' %}" rel="stylesheet"> | ||||
|   </head> | ||||
|  | ||||
|   <body class="text-center"> | ||||
|     <form class="form-signin position-absolute top-50 start-50 translate-middle" method="post"> | ||||
| 			{% csrf_token %} | ||||
|       <svg xmlns="http://www.w3.org/2000/svg" width="300" class="logo mb-4" viewBox="0 0 2897.4 896.6"> | ||||
|         <path class="leaf" d="M140,713.7c-3.4-16.4-10.3-49.1-11.2-49.1c-145.7-87.1-128.4-238-80.2-324.2C59,449,251.2,524,139.1,656.8 c-0.9,1.7,5.2,22.4,10.3,41.4c22.4-37.9,56-83.6,54.3-87.9C65.9,273.9,496.9,248.1,586.6,39.4c40.5,201.8-20.7,513.9-367.2,593.2 c-1.7,0.9-62.9,108.6-65.5,109.5c0-1.7-25.9-0.9-22.4-9.5C133.1,727.4,136.6,720.6,140,713.7L140,713.7z M135.7,632.6 c44-50.9-7.8-137.9-38.8-166.4C149.5,556.7,146,609.3,135.7,632.6L135.7,632.6z" transform="translate(0)" style="fill:#17541f"/> | ||||
|         <g class="text" style="fill:#000"> | ||||
|           <path d="M1022.3,428.7c-17.8-19.9-42.7-29.8-74.7-29.8c-22.3,0-42.4,5.7-60.5,17.3c-18.1,11.6-32.3,27.5-42.5,47.8 s-15.3,42.9-15.3,67.8c0,24.9,5.1,47.5,15.3,67.8c10.3,20.3,24.4,36.2,42.5,47.8c18.1,11.5,38.3,17.3,60.5,17.3 c32,0,56.9-9.9,74.7-29.8v20.4v0.2h84.5V408.3h-84.5V428.7z M1010.5,575c-10.2,11.7-23.6,17.6-40.2,17.6s-29.9-5.9-40-17.6 s-15.1-26.1-15.1-43.3c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6c16.6,0,30,5.9,40.2,17.6s15.3,26.1,15.3,43.3 S1020.7,563.3,1010.5,575z" transform="translate(0)"/> | ||||
|           <path d="M1381,416.1c-18.1-11.5-38.3-17.3-60.5-17.4c-32,0-56.9,9.9-74.7,29.8v-20.4h-84.5v390.7h84.5v-164 c17.8,19.9,42.7,29.8,74.7,29.8c22.3,0,42.4-5.7,60.5-17.3s32.3-27.5,42.5-47.8c10.2-20.3,15.3-42.9,15.3-67.8s-5.1-47.5-15.3-67.8 C1413.2,443.6,1399.1,427.7,1381,416.1z M1337.9,575c-10.1,11.7-23.4,17.6-40,17.6s-29.9-5.9-40-17.6s-15.1-26.1-15.1-43.3 c0-17.1,5-31.6,15.1-43.3s23.4-17.6,40-17.6s29.9,5.9,40,17.6s15.1,26.1,15.1,43.3S1347.9,563.3,1337.9,575z" transform="translate(0)"/> | ||||
|           <path d="M1672.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6c-20.4,11.7-36.5,27.7-48.2,48s-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S1692.6,428.8,1672.2,416.8z M1558.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H1558.3z" transform="translate(0)"/> | ||||
|           <path d="M1895.3,411.7c-11,5.6-20.3,13.7-28,24.4h-0.1v-28h-84.5v247.3h84.5V536.3c0-22.6,4.7-38.1,14.2-46.5 c9.5-8.5,22.7-12.7,39.6-12.7c6.2,0,13.5,1,21.8,3.1l10.7-72c-5.9-3.3-14.5-4.9-25.8-4.9C1917.1,403.3,1906.3,406.1,1895.3,411.7z"  transform="translate(0)"/> | ||||
|           <rect x="1985" y="277.4" width="84.5" height="377.8" transform="translate(0)"/> | ||||
|           <path d="M2313.2,416.8c-20.5-12-43-18-67.6-18c-24.9,0-47.6,5.9-68,17.6s-36.5,27.7-48.2,48c-11.7,20.3-17.6,42.7-17.6,67.3 c0.3,25.2,6.2,47.8,17.8,68c11.5,20.2,28,36,49.3,47.6c21.3,11.5,45.9,17.3,73.8,17.3c48.6,0,86.8-14.7,114.7-44l-52.5-48.9 c-8.6,8.3-17.6,14.6-26.7,19c-9.3,4.3-21.1,6.4-35.3,6.4c-11.6,0-22.5-3.6-32.7-10.9c-10.3-7.3-17.1-16.5-20.7-27.8h180l0.4-11.6 c0-29.6-6-55.7-18-78.2S2333.6,428.8,2313.2,416.8z M2199.3,503.2c2.1-12.1,7.5-21.8,16.2-29.1s18.7-10.9,30-10.9 s21.2,3.6,29.8,10.9c8.6,7.2,13.9,16.9,16,29.1H2199.3z" transform="translate(0)"/> | ||||
|           <path d="M2583.6,507.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9 c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8 c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7 c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6 c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9 c34.7,0,62.9-7.4,84.5-22.4c21.7-15,32.5-37.3,32.5-66.9c0-19.3-5-34.2-15.1-44.9S2597.4,512.1,2583.6,507.7z" transform="translate(0)"/> | ||||
|           <path d="M2883.4,575.3c0-19.3-5-34.2-15.1-44.9s-22-18.3-35.8-22.7c-13.8-4.4-30.6-8.1-50.5-11.1c-15.1-2.7-26.1-5.2-32.9-7.6 c-6.8-2.4-10.2-6.1-10.2-11.1s2.3-8.7,6.7-10.9c4.4-2.2,11.5-3.3,21.3-3.3c11.6,0,24.3,2.4,38.1,7.2c13.9,4.8,26.2,11,36.9,18.4 l32.4-58.2c-11.3-7.4-26.2-14.7-44.9-21.8c-18.7-7.1-39.6-10.7-62.7-10.7c-33.7,0-60.2,7.6-79.3,22.7 c-19.1,15.1-28.7,36.1-28.7,63.1c0,19,4.8,33.9,14.4,44.7c9.6,10.8,21,18.5,34,22.9c13.1,4.5,28.9,8.3,47.6,11.6 c14.6,2.7,25.1,5.3,31.6,7.8s9.8,6.5,9.8,11.8c0,10.4-9.7,15.6-29.3,15.6c-13.7,0-28.5-2.3-44.7-6.9c-16.1-4.6-29.2-11.3-39.3-20.2 l-33.3,60c9.2,7.4,24.6,14.7,46.2,22c21.7,7.3,45.2,10.9,70.7,10.9c34.7,0,62.9-7.4,84.5-22.4 C2872.6,627.2,2883.4,604.9,2883.4,575.3z" transform="translate(0)"/> | ||||
|           <rect x="2460.7" y="738.7" width="59.6" height="17.2" transform="translate(0)"/> | ||||
|           <path d="M2596.5,706.4c-5.7,0-11,1-15.8,3s-9,5-12.5,8.9v-9.4h-19.4v93.6h19.4v-52c0-8.6,2.1-15.3,6.3-20c4.2-4.7,9.5-7.1,15.9-7.1 c7.8,0,13.4,2.3,16.8,6.7c3.4,4.5,5.1,11.3,5.1,20.5v52h19.4v-56.8c0-12.8-3.2-22.6-9.5-29.3 C2615.8,709.8,2607.3,706.4,2596.5,706.4z" transform="translate(0)"/> | ||||
|           <path d="M2733.8,717.7c-3.6-3.4-7.9-6.1-13.1-8.2s-10.6-3.1-16.2-3.1c-8.7,0-16.5,2.1-23.5,6.3s-12.5,10-16.5,17.3 c-4,7.3-6,15.4-6,24.4c0,8.9,2,17.1,6,24.3c4,7.3,9.5,13,16.5,17.2s14.9,6.3,23.5,6.3c5.6,0,11-1,16.2-3.1 c5.1-2.1,9.5-4.8,13.1-8.2v24.4c0,8.5-2.5,14.8-7.6,18.7c-5,3.9-11,5.9-18,5.9c-6.7,0-12.4-1.6-17.3-4.7c-4.8-3.1-7.6-7.7-8.3-13.8 h-19.4c0.6,7.7,2.9,14.2,7.1,19.5s9.6,9.3,16.2,12c6.6,2.7,13.8,4,21.7,4c12.8,0,23.5-3.4,32-10.1c8.6-6.7,12.8-17.1,12.8-31.1 V708.9h-19.2V717.7z M2732.2,770.1c-2.5,4.7-6,8.3-10.4,11.2c-4.4,2.7-9.4,4-14.9,4c-5.7,0-10.8-1.4-15.2-4.3s-7.8-6.7-10.2-11.4 c-2.3-4.8-3.5-9.8-3.5-15.2c0-5.5,1.1-10.6,3.5-15.3s5.8-8.5,10.2-11.3s9.5-4.2,15.2-4.2c5.5,0,10.5,1.4,14.9,4s7.9,6.3,10.4,11 s3.8,10,3.8,15.8S2734.7,765.4,2732.2,770.1z" transform="translate(0)"/> | ||||
|           <polygon points="2867.9,708.9 2846.5,708.9 2820.9,741.9 2795.5,708.9 2773.1,708.9 2809.1,755 2771.5,802.5 2792.9,802.5  2820.1,767.9 2847.2,802.6 2869.6,802.6 2832,754.4 	" transform="translate(0)"/> | ||||
|           <path d="M757.6,293.7c-20-10.8-42.6-16.2-67.8-16.2H600c-8.5,39.2-21.1,76.4-37.6,111.3c-9.9,20.8-21.1,40.6-33.6,59.4v207.2h88.9 V521.5h72c25.2,0,47.8-5.4,67.8-16.2s35.7-25.6,47.1-44.2c11.4-18.7,17.1-39.1,17.1-61.3c0.1-22.7-5.6-43.3-17-61.9 C793.3,319.2,777.6,304.5,757.6,293.7z M716.6,434.3c-9.3,8.9-21.6,13.3-36.7,13.3l-62.2,0.4v-92.5l62.2-0.4 c15.1,0,27.3,4.4,36.7,13.3c9.4,8.9,14,19.9,14,32.9C730.6,414.5,726,425.4,716.6,434.3z" transform="translate(0)"/> | ||||
|         </g> | ||||
|       </svg> | ||||
| 			<p>{% translate "Enter your email address below, and we'll email instructions for setting a new one." %}</p> | ||||
| 			{% if form.errors %} | ||||
|         <div class="alert alert-danger" role="alert"> | ||||
|           {% translate "An error occurred. Please try again." %} | ||||
|         </div> | ||||
|       {% endif %} | ||||
| 			{% translate "Email" as i18n_email %} | ||||
|       <h1></h1> | ||||
|       <div class="form-floating"> | ||||
|         <input type="email" name="email" id="inputEmail" placeholder="{{ i18n_email }}" class="form-control" required> | ||||
| 			  <label for="inputEmail">{{ i18n_email }}</label> | ||||
|       </div> | ||||
|       <div class="d-grid mt-3"> | ||||
|         <button class="btn btn-lg btn-primary" type="submit">{% translate "Send me instructions!" %}</button> | ||||
|       </div> | ||||
| 		</form> | ||||
| 	</body> | ||||
| </html> | ||||
| @@ -2,7 +2,7 @@ msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: paperless-ngx\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2023-09-19 14:30-0700\n" | ||||
| "POT-Creation-Date: 2023-09-28 10:56-0700\n" | ||||
| "PO-Revision-Date: 2022-02-17 04:17\n" | ||||
| "Last-Translator: \n" | ||||
| "Language-Team: English\n" | ||||
| @@ -21,425 +21,425 @@ msgstr "" | ||||
| msgid "Documents" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:36 documents/models.py:731 | ||||
| #: documents/models.py:33 documents/models.py:731 | ||||
| msgid "owner" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:53 | ||||
| #: documents/models.py:50 | ||||
| msgid "None" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:54 | ||||
| #: documents/models.py:51 | ||||
| msgid "Any word" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:55 | ||||
| #: documents/models.py:52 | ||||
| msgid "All words" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:56 | ||||
| #: documents/models.py:53 | ||||
| msgid "Exact match" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:57 | ||||
| #: documents/models.py:54 | ||||
| msgid "Regular expression" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:58 | ||||
| #: documents/models.py:55 | ||||
| msgid "Fuzzy word" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:59 | ||||
| #: documents/models.py:56 | ||||
| msgid "Automatic" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:62 documents/models.py:402 documents/models.py:755 | ||||
| #: documents/models.py:59 documents/models.py:399 documents/models.py:749 | ||||
| #: paperless_mail/models.py:18 paperless_mail/models.py:93 | ||||
| msgid "name" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:64 | ||||
| #: documents/models.py:61 | ||||
| msgid "match" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:67 | ||||
| #: documents/models.py:64 | ||||
| msgid "matching algorithm" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:72 | ||||
| #: documents/models.py:69 | ||||
| msgid "is insensitive" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:95 documents/models.py:147 | ||||
| #: documents/models.py:92 documents/models.py:144 | ||||
| msgid "correspondent" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:96 | ||||
| #: documents/models.py:93 | ||||
| msgid "correspondents" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:100 | ||||
| #: documents/models.py:97 | ||||
| msgid "color" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:103 | ||||
| #: documents/models.py:100 | ||||
| msgid "is inbox tag" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:106 | ||||
| #: documents/models.py:103 | ||||
| msgid "" | ||||
| "Marks this tag as an inbox tag: All newly consumed documents will be tagged " | ||||
| "with inbox tags." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:112 | ||||
| #: documents/models.py:109 | ||||
| msgid "tag" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:113 documents/models.py:185 | ||||
| #: documents/models.py:110 documents/models.py:182 | ||||
| msgid "tags" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:118 documents/models.py:167 | ||||
| #: documents/models.py:115 documents/models.py:164 | ||||
| msgid "document type" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:119 | ||||
| #: documents/models.py:116 | ||||
| msgid "document types" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:124 | ||||
| #: documents/models.py:121 | ||||
| msgid "path" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:129 documents/models.py:156 | ||||
| #: documents/models.py:126 documents/models.py:153 | ||||
| msgid "storage path" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:130 | ||||
| #: documents/models.py:127 | ||||
| msgid "storage paths" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:137 | ||||
| #: documents/models.py:134 | ||||
| msgid "Unencrypted" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:138 | ||||
| #: documents/models.py:135 | ||||
| msgid "Encrypted with GNU Privacy Guard" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:159 | ||||
| #: documents/models.py:156 | ||||
| msgid "title" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:171 documents/models.py:645 | ||||
| #: documents/models.py:168 documents/models.py:645 | ||||
| msgid "content" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:174 | ||||
| #: documents/models.py:171 | ||||
| msgid "" | ||||
| "The raw, text-only data of the document. This field is primarily used for " | ||||
| "searching." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:179 | ||||
| #: documents/models.py:176 | ||||
| msgid "mime type" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:189 | ||||
| #: documents/models.py:186 | ||||
| msgid "checksum" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:193 | ||||
| #: documents/models.py:190 | ||||
| msgid "The checksum of the original document." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:197 | ||||
| #: documents/models.py:194 | ||||
| msgid "archive checksum" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:202 | ||||
| #: documents/models.py:199 | ||||
| msgid "The checksum of the archived document." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:205 documents/models.py:385 documents/models.py:651 | ||||
| #: documents/models.py:202 documents/models.py:382 documents/models.py:651 | ||||
| #: documents/models.py:689 | ||||
| msgid "created" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:208 | ||||
| #: documents/models.py:205 | ||||
| msgid "modified" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:215 | ||||
| #: documents/models.py:212 | ||||
| msgid "storage type" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:223 | ||||
| #: documents/models.py:220 | ||||
| msgid "added" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:230 | ||||
| #: documents/models.py:227 | ||||
| msgid "filename" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:236 | ||||
| #: documents/models.py:233 | ||||
| msgid "Current filename in storage" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:240 | ||||
| #: documents/models.py:237 | ||||
| msgid "archive filename" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:246 | ||||
| #: documents/models.py:243 | ||||
| msgid "Current archive filename in storage" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:250 | ||||
| #: documents/models.py:247 | ||||
| msgid "original filename" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:256 | ||||
| #: documents/models.py:253 | ||||
| msgid "The original name of the file when it was uploaded" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:263 | ||||
| #: documents/models.py:260 | ||||
| msgid "archive serial number" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:273 | ||||
| #: documents/models.py:270 | ||||
| msgid "The position of this document in your physical document archive." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:279 documents/models.py:662 documents/models.py:716 | ||||
| #: documents/models.py:276 documents/models.py:662 documents/models.py:716 | ||||
| msgid "document" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:280 | ||||
| #: documents/models.py:277 | ||||
| msgid "documents" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:368 | ||||
| #: documents/models.py:365 | ||||
| msgid "debug" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:369 | ||||
| #: documents/models.py:366 | ||||
| msgid "information" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:370 | ||||
| #: documents/models.py:367 | ||||
| msgid "warning" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:371 paperless_mail/models.py:293 | ||||
| #: documents/models.py:368 paperless_mail/models.py:293 | ||||
| msgid "error" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:372 | ||||
| #: documents/models.py:369 | ||||
| msgid "critical" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:375 | ||||
| #: documents/models.py:372 | ||||
| msgid "group" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:377 | ||||
| #: documents/models.py:374 | ||||
| msgid "message" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:380 | ||||
| #: documents/models.py:377 | ||||
| msgid "level" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:389 | ||||
| #: documents/models.py:386 | ||||
| msgid "log" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:390 | ||||
| #: documents/models.py:387 | ||||
| msgid "logs" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:399 documents/models.py:464 | ||||
| #: documents/models.py:396 documents/models.py:461 | ||||
| msgid "saved view" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:400 | ||||
| #: documents/models.py:397 | ||||
| msgid "saved views" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:405 | ||||
| #: documents/models.py:402 | ||||
| msgid "show on dashboard" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:408 | ||||
| #: documents/models.py:405 | ||||
| msgid "show in sidebar" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:412 | ||||
| #: documents/models.py:409 | ||||
| msgid "sort field" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:417 | ||||
| #: documents/models.py:414 | ||||
| msgid "sort reverse" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:422 | ||||
| #: documents/models.py:419 | ||||
| msgid "title contains" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:423 | ||||
| #: documents/models.py:420 | ||||
| msgid "content contains" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:424 | ||||
| #: documents/models.py:421 | ||||
| msgid "ASN is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:425 | ||||
| #: documents/models.py:422 | ||||
| msgid "correspondent is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:426 | ||||
| #: documents/models.py:423 | ||||
| msgid "document type is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:427 | ||||
| #: documents/models.py:424 | ||||
| msgid "is in inbox" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:428 | ||||
| #: documents/models.py:425 | ||||
| msgid "has tag" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:429 | ||||
| #: documents/models.py:426 | ||||
| msgid "has any tag" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:430 | ||||
| #: documents/models.py:427 | ||||
| msgid "created before" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:431 | ||||
| #: documents/models.py:428 | ||||
| msgid "created after" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:432 | ||||
| #: documents/models.py:429 | ||||
| msgid "created year is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:433 | ||||
| #: documents/models.py:430 | ||||
| msgid "created month is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:434 | ||||
| #: documents/models.py:431 | ||||
| msgid "created day is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:435 | ||||
| #: documents/models.py:432 | ||||
| msgid "added before" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:436 | ||||
| #: documents/models.py:433 | ||||
| msgid "added after" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:437 | ||||
| #: documents/models.py:434 | ||||
| msgid "modified before" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:438 | ||||
| #: documents/models.py:435 | ||||
| msgid "modified after" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:439 | ||||
| #: documents/models.py:436 | ||||
| msgid "does not have tag" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:440 | ||||
| #: documents/models.py:437 | ||||
| msgid "does not have ASN" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:441 | ||||
| #: documents/models.py:438 | ||||
| msgid "title or content contains" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:442 | ||||
| #: documents/models.py:439 | ||||
| msgid "fulltext query" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:443 | ||||
| #: documents/models.py:440 | ||||
| msgid "more like this" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:444 | ||||
| #: documents/models.py:441 | ||||
| msgid "has tags in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:445 | ||||
| #: documents/models.py:442 | ||||
| msgid "ASN greater than" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:446 | ||||
| #: documents/models.py:443 | ||||
| msgid "ASN less than" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:447 | ||||
| #: documents/models.py:444 | ||||
| msgid "storage path is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:448 | ||||
| #: documents/models.py:445 | ||||
| msgid "has correspondent in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:449 | ||||
| #: documents/models.py:446 | ||||
| msgid "does not have correspondent in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:450 | ||||
| #: documents/models.py:447 | ||||
| msgid "has document type in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:451 | ||||
| #: documents/models.py:448 | ||||
| msgid "does not have document type in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:452 | ||||
| #: documents/models.py:449 | ||||
| msgid "has storage path in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:453 | ||||
| #: documents/models.py:450 | ||||
| msgid "does not have storage path in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:454 | ||||
| #: documents/models.py:451 | ||||
| msgid "owner is" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:455 | ||||
| #: documents/models.py:452 | ||||
| msgid "has owner in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:456 | ||||
| #: documents/models.py:453 | ||||
| msgid "does not have owner" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:457 | ||||
| #: documents/models.py:454 | ||||
| msgid "does not have owner in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:467 | ||||
| #: documents/models.py:464 | ||||
| msgid "rule type" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:469 | ||||
| #: documents/models.py:466 | ||||
| msgid "value" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:472 | ||||
| #: documents/models.py:469 | ||||
| msgid "filter rule" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:473 | ||||
| #: documents/models.py:470 | ||||
| msgid "filter rules" | ||||
| msgstr "" | ||||
|  | ||||
| @@ -555,114 +555,114 @@ msgstr "" | ||||
| msgid "share links" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:744 | ||||
| #: documents/models.py:745 | ||||
| msgid "Consume Folder" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:745 | ||||
| #: documents/models.py:746 | ||||
| msgid "Api Upload" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:746 | ||||
| #: documents/models.py:747 | ||||
| msgid "Mail Fetch" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:752 | ||||
| msgid "consumption template" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:753 | ||||
| msgid "consumption templates" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:757 paperless_mail/models.py:95 | ||||
| #: documents/models.py:751 paperless_mail/models.py:95 | ||||
| msgid "order" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:766 | ||||
| #: documents/models.py:760 | ||||
| msgid "filter path" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:771 | ||||
| #: documents/models.py:765 | ||||
| msgid "" | ||||
| "Only consume documents with a path that matches this if specified. Wildcards " | ||||
| "specified as * are allowed. Case insensitive." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:778 | ||||
| #: documents/models.py:772 | ||||
| msgid "filter filename" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:783 paperless_mail/models.py:148 | ||||
| #: documents/models.py:777 paperless_mail/models.py:148 | ||||
| msgid "" | ||||
| "Only consume documents which entirely match this filename if specified. " | ||||
| "Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:794 | ||||
| #: documents/models.py:788 | ||||
| msgid "filter documents from this mail rule" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:798 | ||||
| #: documents/models.py:792 | ||||
| msgid "assign title" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:803 | ||||
| #: documents/models.py:797 | ||||
| msgid "" | ||||
| "Assign a document title, can include some placeholders, see documentation." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:811 paperless_mail/models.py:204 | ||||
| #: documents/models.py:805 paperless_mail/models.py:204 | ||||
| msgid "assign this tag" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:819 paperless_mail/models.py:212 | ||||
| #: documents/models.py:813 paperless_mail/models.py:212 | ||||
| msgid "assign this document type" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:827 paperless_mail/models.py:226 | ||||
| #: documents/models.py:821 paperless_mail/models.py:226 | ||||
| msgid "assign this correspondent" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:835 | ||||
| #: documents/models.py:829 | ||||
| msgid "assign this storage path" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:844 | ||||
| #: documents/models.py:838 | ||||
| msgid "assign this owner" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:851 | ||||
| #: documents/models.py:845 | ||||
| msgid "grant view permissions to these users" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:858 | ||||
| #: documents/models.py:852 | ||||
| msgid "grant view permissions to these groups" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:865 | ||||
| #: documents/models.py:859 | ||||
| msgid "grant change permissions to these users" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:872 | ||||
| #: documents/models.py:866 | ||||
| msgid "grant change permissions to these groups" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/serialisers.py:100 | ||||
| #: documents/models.py:870 | ||||
| msgid "consumption template" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/models.py:871 | ||||
| msgid "consumption templates" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/serialisers.py:98 | ||||
| #, python-format | ||||
| msgid "Invalid regular expression: %(error)s" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/serialisers.py:375 | ||||
| #: documents/serialisers.py:373 | ||||
| msgid "Invalid color." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/serialisers.py:751 | ||||
| #: documents/serialisers.py:749 | ||||
| #, python-format | ||||
| msgid "File type %(type)s not supported" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/serialisers.py:848 | ||||
| #: documents/serialisers.py:846 | ||||
| msgid "Invalid variable detected." | ||||
| msgstr "" | ||||
|  | ||||
| @@ -722,123 +722,206 @@ msgstr "" | ||||
| msgid "Sign in" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/login.html:70 | ||||
| msgid "Forgot your password?" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_complete.html:14 | ||||
| msgid "Paperless-ngx reset password complete" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_complete.html:40 | ||||
| msgid "Password reset complete." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_complete.html:42 | ||||
| #, python-format | ||||
| msgid "" | ||||
| "Your new password has been set. You can now <a href=\"%(login_url)s\">log " | ||||
| "in</a>" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_confirm.html:14 | ||||
| msgid "Paperless-ngx reset password confirmation" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_confirm.html:42 | ||||
| msgid "Set a new password." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_confirm.html:46 | ||||
| msgid "Passwords did not match or too weak. Try again." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_confirm.html:49 | ||||
| msgid "New Password" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_confirm.html:50 | ||||
| msgid "Confirm Password" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_confirm.html:61 | ||||
| msgid "Change my password" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_confirm.html:65 | ||||
| msgid "request a new password reset" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_done.html:14 | ||||
| msgid "Paperless-ngx reset password sent" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_done.html:40 | ||||
| msgid "Check your inbox." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_done.html:41 | ||||
| msgid "" | ||||
| "We've emailed you instructions for setting your password. You should receive " | ||||
| "the email shortly!" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_form.html:14 | ||||
| msgid "Paperless-ngx reset password request" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_form.html:41 | ||||
| msgid "" | ||||
| "Enter your email address below, and we'll email instructions for setting a " | ||||
| "new one." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_form.html:44 | ||||
| msgid "An error occurred. Please try again." | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_form.html:47 | ||||
| msgid "Email" | ||||
| msgstr "" | ||||
|  | ||||
| #: documents/templates/registration/password_reset_form.html:54 | ||||
| msgid "Send me instructions!" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/apps.py:10 | ||||
| msgid "Paperless" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:573 | ||||
| #: paperless/settings.py:574 | ||||
| msgid "English (US)" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:574 | ||||
| #: paperless/settings.py:575 | ||||
| msgid "Arabic" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:575 | ||||
| #: paperless/settings.py:576 | ||||
| msgid "Afrikaans" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:576 | ||||
| #: paperless/settings.py:577 | ||||
| msgid "Belarusian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:577 | ||||
| #: paperless/settings.py:578 | ||||
| msgid "Catalan" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:578 | ||||
| #: paperless/settings.py:579 | ||||
| msgid "Czech" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:579 | ||||
| #: paperless/settings.py:580 | ||||
| msgid "Danish" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:580 | ||||
| #: paperless/settings.py:581 | ||||
| msgid "German" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:581 | ||||
| #: paperless/settings.py:582 | ||||
| msgid "Greek" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:582 | ||||
| #: paperless/settings.py:583 | ||||
| msgid "English (GB)" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:583 | ||||
| #: paperless/settings.py:584 | ||||
| msgid "Spanish" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:584 | ||||
| #: paperless/settings.py:585 | ||||
| msgid "Finnish" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:585 | ||||
| #: paperless/settings.py:586 | ||||
| msgid "French" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:586 | ||||
| #: paperless/settings.py:587 | ||||
| msgid "Italian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:587 | ||||
| #: paperless/settings.py:588 | ||||
| msgid "Luxembourgish" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:588 | ||||
| #: paperless/settings.py:589 | ||||
| msgid "Norwegian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:589 | ||||
| #: paperless/settings.py:590 | ||||
| msgid "Dutch" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:590 | ||||
| #: paperless/settings.py:591 | ||||
| msgid "Polish" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:591 | ||||
| #: paperless/settings.py:592 | ||||
| msgid "Portuguese (Brazil)" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:592 | ||||
| #: paperless/settings.py:593 | ||||
| msgid "Portuguese" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:593 | ||||
| #: paperless/settings.py:594 | ||||
| msgid "Romanian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:594 | ||||
| #: paperless/settings.py:595 | ||||
| msgid "Russian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:595 | ||||
| #: paperless/settings.py:596 | ||||
| msgid "Slovak" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:596 | ||||
| #: paperless/settings.py:597 | ||||
| msgid "Slovenian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:597 | ||||
| #: paperless/settings.py:598 | ||||
| msgid "Serbian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:598 | ||||
| #: paperless/settings.py:599 | ||||
| msgid "Swedish" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:599 | ||||
| #: paperless/settings.py:600 | ||||
| msgid "Turkish" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:600 | ||||
| #: paperless/settings.py:601 | ||||
| msgid "Ukrainian" | ||||
| msgstr "" | ||||
|  | ||||
| #: paperless/settings.py:601 | ||||
| #: paperless/settings.py:602 | ||||
| msgid "Chinese Simplified" | ||||
| msgstr "" | ||||
|  | ||||
|   | ||||
| @@ -357,6 +357,7 @@ TEMPLATES = [ | ||||
|                 "django.template.context_processors.request", | ||||
|                 "django.contrib.auth.context_processors.auth", | ||||
|                 "django.contrib.messages.context_processors.messages", | ||||
|                 "documents.context_processors.settings", | ||||
|             ], | ||||
|         }, | ||||
|     }, | ||||
| @@ -1002,3 +1003,15 @@ def _get_nltk_language_setting(ocr_lang: str) -> Optional[str]: | ||||
| NLTK_ENABLED: Final[bool] = __get_boolean("PAPERLESS_ENABLE_NLTK", "yes") | ||||
|  | ||||
| NLTK_LANGUAGE: Optional[str] = _get_nltk_language_setting(OCR_LANGUAGE) | ||||
|  | ||||
| ############################################################################### | ||||
| # Email (SMTP) Backend                                                        # | ||||
| ############################################################################### | ||||
|  | ||||
| EMAIL_HOST: Final[str] = os.getenv("PAPERLESS_EMAIL_HOST", "localhost") | ||||
| EMAIL_PORT: Final[int] = int(os.getenv("PAPERLESS_EMAIL_PORT", 25)) | ||||
| EMAIL_HOST_USER: Final[str] = os.getenv("PAPERLESS_EMAIL_HOST_USER", "") | ||||
| EMAIL_HOST_PASSWORD: Final[str] = os.getenv("PAPERLESS_EMAIL_HOST_PASSWORD", "") | ||||
| EMAIL_USE_TLS: Final[bool] = __get_boolean("PAPERLESS_EMAIL_USE_TLS") | ||||
| EMAIL_USE_SSL: Final[bool] = __get_boolean("PAPERLESS_EMAIL_USE_SSL") | ||||
| EMAIL_SUBJECT_PREFIX: Final[str] = "[Paperless-ngx] " | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 shamoon
					shamoon