From 1cf416357b0ff9834aefed4f3f774251289dcfad Mon Sep 17 00:00:00 2001 From: lauxley <tissotrobin@gmail.com> Date: Fri, 7 Jun 2019 11:52:12 +0200 Subject: [PATCH 01/11] Ensure the http server has some room to breathe. --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index eee4d251..12f709c5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,7 +68,7 @@ services: volumes: - static:/usr/src/app/static - media:/usr/src/app/media - command: "celery worker -l INFO -E -A escriptorium -Q default,img-processing --max-tasks-per-child=10" + command: "celery worker -l INFO -E -A escriptorium -Q default,img-processing -c 4 --max-tasks-per-child=10" celery-low-priority: <<: *celery-main -- GitLab From 4cf85dc55558190001c767def77f5e24cb1dd1a4 Mon Sep 17 00:00:00 2001 From: lauxley <tissotrobin@gmail.com> Date: Tue, 11 Jun 2019 11:08:25 +0200 Subject: [PATCH 02/11] Adds a docker env file for celery configuration. --- .env | 3 +++ docker-compose.yml | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 00000000..00b6a4c6 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +CELERY_MAIN_CORES=2 +CELERY_LOW_CORES=2 +FLOWER_BASIC_AUTH=flower:whatever \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 12f709c5..278f7aa5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,11 +68,11 @@ services: volumes: - static:/usr/src/app/static - media:/usr/src/app/media - command: "celery worker -l INFO -E -A escriptorium -Q default,img-processing -c 4 --max-tasks-per-child=10" + command: "celery worker -l INFO -E -A escriptorium -Q default,img-processing -c ${CELERY_MAIN_CORES:-4} --max-tasks-per-child=10" celery-low-priority: <<: *celery-main - command: "celery worker -l INFO -E -A escriptorium -Q low-priority -c 2 --max-tasks-per-child=10" + command: "celery worker -l INFO -E -A escriptorium -Q low-priority -c ${CELERY_LOW_CORES:-2} --max-tasks-per-child=10" flower: image: mher/flower -- GitLab From 292e2049b97d4a285bfed047ef44984c531a3a36 Mon Sep 17 00:00:00 2001 From: Johan de Joode <jdj> Date: Thu, 28 May 2020 14:46:07 +0200 Subject: [PATCH 03/11] i18n: Allow for the translation of login.html --- app/escriptorium/templates/registration/login.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/escriptorium/templates/registration/login.html b/app/escriptorium/templates/registration/login.html index ba8bbd93..e2c93eb8 100644 --- a/app/escriptorium/templates/registration/login.html +++ b/app/escriptorium/templates/registration/login.html @@ -1,4 +1,5 @@ {% extends 'base.html' %} +{% load i18n %} {% block menu %} {% endblock %} @@ -9,20 +10,20 @@ <div class="col-md-4 col-md-offset-4"> <div class="login-panel panel panel-default"> <div class="panel-heading"> - <h3 class="panel-title">Please Sign In</h3> + <h3 class="panel-title">{% trans "Please Sign In" %}</h3> </div> <div class="panel-body"> {% if form.errors %} - <p>Your username and password didn't match. Please try again.</p> + <p>{% trans "Your username and password didn't match. Please try again." %}</p> {% endif %} {% if next %} {% if user.is_authenticated %} - <p>Your account doesn't have access to this page. To proceed, - please login with an account that has access.</p> + <p>{% trans "Your account doesn't have access to this page. To proceed, + please login with an account that has access." %}</p> {% else %} - <p>Please login to see this page.</p> + <p>{% trans "Please login to see this page." %}</p> {% endif %} {% endif %} @@ -41,7 +42,7 @@ </form> {# Assumes you setup the password_reset view in your URLconf #} - <p><a href="{% url 'password_reset' %}">Lost password?</a></p> + <p><a href="{% url 'password_reset' %}">{% trans "Lost password?" %}</a></p> </div> </div> </div> -- GitLab From 444e752579734aa467c71125a67fabc7ba8c74d7 Mon Sep 17 00:00:00 2001 From: Johan de Joode <jdj> Date: Thu, 28 May 2020 15:12:25 +0200 Subject: [PATCH 04/11] Accounts: Add basic password_change_form --- .../registration/password_change_form.html | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 app/escriptorium/templates/registration/password_change_form.html diff --git a/app/escriptorium/templates/registration/password_change_form.html b/app/escriptorium/templates/registration/password_change_form.html new file mode 100644 index 00000000..4244b9fc --- /dev/null +++ b/app/escriptorium/templates/registration/password_change_form.html @@ -0,0 +1,71 @@ +{% extends 'base.html' %} +{% load i18n %} + +{% block menu %} +{% endblock %} + +{% block body %} +<div class="container"> + <div class="row"> + <div class="col-md-4 col-md-offset-4"> + <div class="login-panel panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Please Sign In</h3> + </div> + <div class="panel-body"> + + <form method="post"> + {% csrf_token %} + + {% if form.errors %} + <p class="errornote"> + {% if form.errors.items|length == 1 %}{% trans "Please correct the error below." %}{% else %}{% trans "Please correct the errors below." %}{% endif %} + </p> + {% endif %} + + <p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p> + + <fieldset> + + <div class="form-group"> + {{ form.old_password.errors }} + {{ form.old_password.label_tag }} {{ form.old_password }} + </div> + + <div class="form-group"> + {{ form.new_password1.errors }} + {{ form.new_password1.label_tag }} {{ form.new_password1 }} + {% if form.new_password1.help_text %} + <div class="help">{{ form.new_password1.help_text|safe }}</div> + {% endif %} + </div> + + <div class="form-group"> + {{ form.new_password2.errors }} + {{ form.new_password2.label_tag }} {{ form.new_password2 }} + {% if form.new_password2.help_text %} + <div class="help">{{ form.new_password2.help_text|safe }}</div> + {% endif %} + </div> + + </fieldset> + + <div class="submit-row"> + <input type="submit" value="{% trans 'Change my password' %}" class="default"> + </div> + + </div> + </form> + + <p><a href="{% url 'password_reset' %}">Lost password?</a></p> + </div> + </div> + </div> + </div> +</div> + + + + + +{% endblock %} -- GitLab From 0ec3894e0609fcf5f338f0392f58d3f9a7099783 Mon Sep 17 00:00:00 2001 From: Johan de Joode <jdj> Date: Thu, 28 May 2020 15:32:19 +0200 Subject: [PATCH 05/11] Add errorlist as css class to highlight errors in forms in red --- app/escriptorium/static/css/escriptorium.css | 115 ++++++++++++++----- 1 file changed, 86 insertions(+), 29 deletions(-) diff --git a/app/escriptorium/static/css/escriptorium.css b/app/escriptorium/static/css/escriptorium.css index 6d964515..a3c95817 100644 --- a/app/escriptorium/static/css/escriptorium.css +++ b/app/escriptorium/static/css/escriptorium.css @@ -9,14 +9,20 @@ body { .hide { display: none; } -#delete-point, #delete-line { + +.errorlist { + color: var(--danger); +} + +#delete-point, +#delete-line { position: absolute; } .container { - margin-right: auto; - margin-left: auto; - max-width: 1600px; + margin-right: auto; + margin-left: auto; + max-width: 1600px; } canvas.resize { @@ -29,7 +35,9 @@ canvas.resize { margin: 0; } + /* alerts */ + #alerts-container { width: 400px; position: fixed; @@ -42,11 +50,14 @@ canvas.resize { display: none; } -#alerts-container .separator, #alerts-container .additional { +#alerts-container .separator, +#alerts-container .additional { display: none; } + /* document form */ + .multi-proc span { line-height: 2rem; } @@ -58,6 +69,7 @@ form.inline-form { .import-counter-container { display: none; } + .import-counter-container.ongoing { display: block; } @@ -65,6 +77,7 @@ form.inline-form { #train-counter { display: none; } + #train-counter.ongoing { display: block; } @@ -171,6 +184,7 @@ form.inline-form { color: var(--secondary); text-align: center; } + .process-part-form .help-text { padding: 0.5rem; } @@ -185,20 +199,21 @@ form.inline-form { float: right; opacity: .5; } + .help.open:hover { opacity: 1; } - #viewer-container { margin: 0; padding: 0; overflow: hidden; background-color: #EEEEEE; - border: 1px solid rgba(0,0,0,.125); + border: 1px solid rgba(0, 0, 0, .125); display: none; /* height: calc(100vh - 80px); */ } + #viewer-buttons { position: absolute; top: 0; @@ -206,6 +221,7 @@ form.inline-form { z-index: 5; opacity: 0.3; } + #viewer-buttons:hover { opacity: 1; } @@ -222,6 +238,7 @@ form.inline-form { cursor: pointer; overflow: hidden; } + .box .close { display: none; } @@ -230,10 +247,12 @@ form.inline-form { opacity: 0.2; z-index: 2; } + .line-box { z-index: 3; - box-sizing: content-box; + box-sizing: content-box; } + .line-box:hover { box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px var(--secondary); } @@ -258,28 +277,39 @@ form.inline-form { color: var(--dark); } -.card .ongoing, .blink { +.card .ongoing, +.blink { animation-duration: 1s; animation-name: blink; animation-iteration-count: infinite; animation-direction: alternate; } -@keyframes blink{ - from {opacity: 1;} - to {opacity: 0.2;} + +@keyframes blink { + from { + opacity: 1; + } + to { + opacity: 0.2; + } } + .card .proc.error { color: var(--danger); } + .card .proc.pending { color: var(--secondary); } + .card .proc.canceled { color: var(--warning); } + .card .btn.proc { padding: 0; } + .card .btn.proc:hover { color: var(--info); } @@ -287,24 +317,33 @@ form.inline-form { .card .proc.done { color: var(--success); } + .card .js-compressing { display: none; } -.card .js-compressing.pending, .card .js-compressing.ongoing { + +.card .js-compressing.pending, +.card .js-compressing.ongoing { display: inline; } + .card .js-compressing.done { display: none; } .ui-resizable-s { - bottom: 0; /* mess with outline */ + bottom: 0; + /* mess with outline */ } + .ui-resizable-e { - right: 0; /* mess with outline */ + right: 0; + /* mess with outline */ } + /* transcription interface */ + .nav-btn { font-size: 50px; } @@ -313,11 +352,21 @@ form.inline-form { width: 30px; } -#img-panel, #img-tools, #binar-panel, #seg-panel, -#binar-tools, #seg-tools, #trans-panel, #trans-tools { +#img-panel, +#img-tools, +#binar-panel, +#seg-panel, +#binar-tools, +#seg-tools, +#trans-panel, +#trans-tools { display: none; } -#img-panel, #binar-panel, #seg-panel, #trans-panel { + +#img-panel, +#binar-panel, +#seg-panel, +#trans-panel { min-height: calc(100vh - 200px); } @@ -333,19 +382,22 @@ i.panel-icon { height: 100%; transform-origin: 0 0; } + .zoom-container { transform-origin: 0 0; - box-shadow: 1px 0 4px 1px rgba(0,0,0,0.1); + box-shadow: 1px 0 4px 1px rgba(0, 0, 0, 0.1); } + #zoom-range { height: 100px; } -#part-trans, #part-img { +#part-trans, +#part-img { overflow: hidden; width: 100%; height: 100%; - transform-origin:top left; + transform-origin: top left; } #trans-panel .zoom-container { @@ -378,7 +430,8 @@ i.panel-icon { display: block; } -#trans-modal #trans-input, #trans-rule { +#trans-modal #trans-input, +#trans-rule { overflow: visible; margin-top: 1rem; white-space: pre; @@ -386,15 +439,17 @@ i.panel-icon { transform-origin: top left; box-shadow: none; } + #trans-rule { visibility: hidden; position: absolute; } -#trans-modal thead tr#no-versions th { +#trans-modal thead tr#no-versions th { border: none; } -#trans-modal .modal-body{ + +#trans-modal .modal-body { overflow: visible; } @@ -405,6 +460,7 @@ i.panel-icon { padding: 0; cursor: pointer; } + .trans-box:hover { box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px var(--secondary); } @@ -416,6 +472,7 @@ i.panel-icon { max-height: 100%; width: 100%; } + .trans-box span:empty { width: 100%; height: 100%; @@ -423,8 +480,8 @@ i.panel-icon { } .notransition { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - transition: none !important; -} + -webkit-transition: none !important; + -moz-transition: none !important; + -o-transition: none !important; + transition: none !important; +} \ No newline at end of file -- GitLab From 4449705538f43d21c0fa373bd1cb900dc08b6783 Mon Sep 17 00:00:00 2001 From: Johan de Joode <jdj> Date: Thu, 28 May 2020 15:33:15 +0200 Subject: [PATCH 06/11] Update the password_change_form to use bootstrap classes --- .../registration/password_change_form.html | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/app/escriptorium/templates/registration/password_change_form.html b/app/escriptorium/templates/registration/password_change_form.html index 4244b9fc..80bf9958 100644 --- a/app/escriptorium/templates/registration/password_change_form.html +++ b/app/escriptorium/templates/registration/password_change_form.html @@ -10,7 +10,7 @@ <div class="col-md-4 col-md-offset-4"> <div class="login-panel panel panel-default"> <div class="panel-heading"> - <h3 class="panel-title">Please Sign In</h3> + <h3 class="panel-title">{% trans "Change your password" %}</h3> </div> <div class="panel-body"> @@ -24,40 +24,39 @@ {% endif %} <p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p> + {% if form.new_password1.help_text %} + <div class="help">{{ form.new_password1.help_text|safe }}</div> + {% endif %} <fieldset> + <div class="form-group"> + {{ form.old_password.errors }} + <label for="id_old_password">{% trans "Old password:" %}</label> + <input class="form-control" type="password" name="old_password" autofocus required id="id_old_password"> + </div> - <div class="form-group"> - {{ form.old_password.errors }} - {{ form.old_password.label_tag }} {{ form.old_password }} - </div> + <div class="form-group"> + {{ form.new_password1.errors }} - <div class="form-group"> - {{ form.new_password1.errors }} - {{ form.new_password1.label_tag }} {{ form.new_password1 }} - {% if form.new_password1.help_text %} - <div class="help">{{ form.new_password1.help_text|safe }}</div> - {% endif %} - </div> - - <div class="form-group"> - {{ form.new_password2.errors }} - {{ form.new_password2.label_tag }} {{ form.new_password2 }} - {% if form.new_password2.help_text %} - <div class="help">{{ form.new_password2.help_text|safe }}</div> - {% endif %} - </div> + <label for="id_new_password1">{% trans "New password:" %}</label> + <input class="form-control" type="password" name="new_password1" required id="id_new_password1"> + </div> + <div class="form-group"> + {{ form.new_password2.errors }} + <label for="id_new_password2">{% trans "New password confirmation:" %}</label> + <input class="form-control" type="password" name="new_password2" required id="id_new_password2"> + </div> </fieldset> <div class="submit-row"> - <input type="submit" value="{% trans 'Change my password' %}" class="default"> + <input class="btn btn-success btn-block" type="submit" value="{% trans 'Change my password' %}" class="default"> </div> </div> </form> - <p><a href="{% url 'password_reset' %}">Lost password?</a></p> + <p><a href="{% url 'password_reset' %}">{% trans "Lost password?" %}</a></p> </div> </div> </div> -- GitLab From c1f1da2d70371cd052858acf2c388fc62d41cd23 Mon Sep 17 00:00:00 2001 From: Johan de Joode <jdj> Date: Thu, 28 May 2020 19:48:11 +0200 Subject: [PATCH 07/11] Add password_change_done.html extending the base template --- .../registration/password_change_done.html | 19 +++++++++++++++++++ .../registration/password_change_form.html | 3 +-- 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 app/escriptorium/templates/registration/password_change_done.html diff --git a/app/escriptorium/templates/registration/password_change_done.html b/app/escriptorium/templates/registration/password_change_done.html new file mode 100644 index 00000000..365e1d12 --- /dev/null +++ b/app/escriptorium/templates/registration/password_change_done.html @@ -0,0 +1,19 @@ +{% extends 'base.html' %} +{% load i18n %} + +{% block menu %} +{% endblock %} + +{% block body %} +<div class="container"> + <div class="row"> + <div class="col-md-4 col-md-offset-4"> + <div class="login-panel panel panel-default"> + <div class="panel-body"> + <p>{% trans "Your password has successfully been changed." %} + </div> + </div> + </div> + </div> +</div> +{% endblock %} diff --git a/app/escriptorium/templates/registration/password_change_form.html b/app/escriptorium/templates/registration/password_change_form.html index 80bf9958..b2bc0e48 100644 --- a/app/escriptorium/templates/registration/password_change_form.html +++ b/app/escriptorium/templates/registration/password_change_form.html @@ -37,7 +37,6 @@ <div class="form-group"> {{ form.new_password1.errors }} - <label for="id_new_password1">{% trans "New password:" %}</label> <input class="form-control" type="password" name="new_password1" required id="id_new_password1"> </div> @@ -56,7 +55,7 @@ </div> </form> - <p><a href="{% url 'password_reset' %}">{% trans "Lost password?" %}</a></p> + <p><a href="{% url 'password_reset' %}">{% trans "Lost your password?" %}</a></p> </div> </div> </div> -- GitLab From b4f78b15bb4dfc34d33bdacb330145eba9b5b473 Mon Sep 17 00:00:00 2001 From: Johan de Joode <jdj> Date: Thu, 28 May 2020 20:36:15 +0200 Subject: [PATCH 08/11] Add password reset templates (four of them) ... ... This commit now has moved away from using templates based on django admin. The templates for changing a password as well as resetting a password are all now based on the project's base.html. All templates allow for i18n. These views do not really require testing as they are testing as part of the django contib.auth app. The example of login.html was used to hardcode the forms (they are relatively simple) in order to style them with bootstrap classes. We could consider moving towards a templatetag as `add_css_class` to add a css class to an input or a label. --- .../registration/password_reset_complete.html | 19 +++++++ .../registration/password_reset_confirm.html | 52 +++++++++++++++++++ .../registration/password_reset_done.html | 20 +++++++ .../registration/password_reset_form.html | 37 +++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 app/escriptorium/templates/registration/password_reset_complete.html create mode 100644 app/escriptorium/templates/registration/password_reset_confirm.html create mode 100644 app/escriptorium/templates/registration/password_reset_done.html create mode 100644 app/escriptorium/templates/registration/password_reset_form.html diff --git a/app/escriptorium/templates/registration/password_reset_complete.html b/app/escriptorium/templates/registration/password_reset_complete.html new file mode 100644 index 00000000..a4a6bfd7 --- /dev/null +++ b/app/escriptorium/templates/registration/password_reset_complete.html @@ -0,0 +1,19 @@ +{% extends 'base.html' %} +{% load i18n %} + +{% block menu %} +{% endblock %} + +{% block body %} +<div class="container"> + <div class="row"> + <div class="col-md-4 col-md-offset-4"> + <div class="login-panel panel panel-default"> + <div class="panel-body"> + <p>{% trans "Your password has been set. You may go ahead and " %} <a href="{{ login_url }}">{% trans 'log in' %}</a>.</p> + </div> + </div> + </div> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/app/escriptorium/templates/registration/password_reset_confirm.html b/app/escriptorium/templates/registration/password_reset_confirm.html new file mode 100644 index 00000000..cafbce92 --- /dev/null +++ b/app/escriptorium/templates/registration/password_reset_confirm.html @@ -0,0 +1,52 @@ +{% extends 'base.html' %} +{% load i18n %} + +{% block menu %} +{% endblock %} + +{% block body %} +<div class="container"> + <div class="row"> + <div class="col-md-4 col-md-offset-4"> + <div class="login-panel panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">{% trans "Reset your password" %}</h3> + </div> + <div class="panel-body"> + + {% if validlink %} + + <p>{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p> + + <form method="post"> + {% csrf_token %} + <fieldset> + <div class="form-group field-password1"> + {{ form.new_password1.errors }} + <label for="id_new_password1">{% trans 'New password:' %}</label> + <input class="form-control" type="password" name="new_password1" required="" id="id_new_password1"> + </div> + <div class="form-group field-password2"> + {{ form.new_password2.errors }} + <label for="id_new_password2">{% trans 'Confirm password:' %}</label> + <input class="form-control" type="password" name="new_password2" required="" id="id_new_password2"> + </div> + <input class="btn btn-success btn-block" type="submit" value="{% trans 'Change my password' %}"> + </fieldset> + </form> + + {% else %} + <p>{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}</p> + {% endif %} + + </div> + </div> + </div> + </div> +</div> +{% endblock %} + + + + + diff --git a/app/escriptorium/templates/registration/password_reset_done.html b/app/escriptorium/templates/registration/password_reset_done.html new file mode 100644 index 00000000..97b8a45a --- /dev/null +++ b/app/escriptorium/templates/registration/password_reset_done.html @@ -0,0 +1,20 @@ +{% extends 'base.html' %} +{% load i18n %} + +{% block menu %} +{% endblock %} + +{% block body %} +<div class="container"> + <div class="row"> + <div class="col-md-8 col-md-offset-4"> + <div class="login-panel panel panel-default"> + <div class="panel-body"> + <p>{% trans 'We’ve emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.' %}</p> + <p>{% trans 'If you don’t receive an email, please make sure you’ve entered the address you registered with, and check your spam folder.' %}</p> + </div> + </div> + </div> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/app/escriptorium/templates/registration/password_reset_form.html b/app/escriptorium/templates/registration/password_reset_form.html new file mode 100644 index 00000000..99e43f9b --- /dev/null +++ b/app/escriptorium/templates/registration/password_reset_form.html @@ -0,0 +1,37 @@ +{% extends 'base.html' %} +{% load i18n %} + +{% block menu %} +{% endblock %} + +{% block body %} +<div class="container"> + <div class="row"> + <div class="col-md-8 col-md-offset-4"> + <div class="login-panel panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">{% trans "Change your password" %}</h3> + </div> + <div class="panel-body"> + + <p>{% trans 'Forgotten your password? Enter your email address below, and we’ll email instructions for setting a new one.' %}</p> + + <div class="col-md-6"> + <form method="post"> + {% csrf_token %} + <fieldset class="module aligned"> + <div class="form-group"> + {{ form.email.errors }} + <label for="id_email">{% trans 'Email address:' %}</label> + <input class="form-control" type="email" name="email" maxlength="254" required="" id="id_email"> + </div> + <input class="btn btn-success btn-block" type="submit" value="{% trans 'Reset my password' %}"> + </fieldset> + </form> + </div> + </div> + </div> + </div> + </div> +</div> +{% endblock %} -- GitLab From a5f8e374e104aeb08e6a3bf4bf60fd0c6e4bccb0 Mon Sep 17 00:00:00 2001 From: Johan de Joode <jdj> Date: Fri, 29 May 2020 18:30:49 +0200 Subject: [PATCH 09/11] Remove redundant if clause and use the plural tag within blocktrans --- .../templates/registration/password_change_form.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/escriptorium/templates/registration/password_change_form.html b/app/escriptorium/templates/registration/password_change_form.html index b2bc0e48..e652d5db 100644 --- a/app/escriptorium/templates/registration/password_change_form.html +++ b/app/escriptorium/templates/registration/password_change_form.html @@ -19,14 +19,16 @@ {% if form.errors %} <p class="errornote"> - {% if form.errors.items|length == 1 %}{% trans "Please correct the error below." %}{% else %}{% trans "Please correct the errors below." %}{% endif %} + {% blocktrans count count=form.errors.items|length %} + Please correct the error below. + {% plural %} + Please correct the errors below. + {% endblocktrans %} </p> {% endif %} <p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p> - {% if form.new_password1.help_text %} <div class="help">{{ form.new_password1.help_text|safe }}</div> - {% endif %} <fieldset> <div class="form-group"> -- GitLab From 9e430f925d8c950dafd861a54fbbddfce49d978a Mon Sep 17 00:00:00 2001 From: Robin Tissot <tissotrobin@gmail.com> Date: Tue, 2 Jun 2020 11:31:55 +0200 Subject: [PATCH 10/11] Style fixes --- app/escriptorium/templates/base.html | 8 ++++---- .../registration/password_change_form.html | 20 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/escriptorium/templates/base.html b/app/escriptorium/templates/base.html index e366a975..ecafcdf5 100644 --- a/app/escriptorium/templates/base.html +++ b/app/escriptorium/templates/base.html @@ -70,10 +70,10 @@ <a class="nav-link {% block nav-doc-list-class %}{% endblock %}" href="{% url 'documents-list' %}">{% trans "My Documents" %}</a> </li> <li class="nav-item dropdown"> - <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> - {% blocktrans with username=user.username %}Hello {{username}}{% endblocktrans %} - </a> - <div class="dropdown-menu" aria-labelledby="navbarDropdown"> + <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + {% blocktrans with username=user.username %}Hello {{username}}{% endblocktrans %} + </a> + <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="{% url 'password_change' %}">{% trans "Change password" %}</a> <a class="dropdown-item" href="#">{% trans "Profile" %}</a> <div class="dropdown-divider"></div> diff --git a/app/escriptorium/templates/registration/password_change_form.html b/app/escriptorium/templates/registration/password_change_form.html index e652d5db..9151a0c3 100644 --- a/app/escriptorium/templates/registration/password_change_form.html +++ b/app/escriptorium/templates/registration/password_change_form.html @@ -7,7 +7,7 @@ {% block body %} <div class="container"> <div class="row"> - <div class="col-md-4 col-md-offset-4"> + <div class="col-md-8 col-md-offset-8"> <div class="login-panel panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">{% trans "Change your password" %}</h3> @@ -16,36 +16,36 @@ <form method="post"> {% csrf_token %} - + {% if form.errors %} <p class="errornote"> - {% blocktrans count count=form.errors.items|length %} + {% blocktrans count count=form.errors.items|length %} Please correct the error below. {% plural %} Please correct the errors below. {% endblocktrans %} </p> {% endif %} - + <p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p> - <div class="help">{{ form.new_password1.help_text|safe }}</div> + <div>{{ form.new_password1.help_text|safe }}</div> <fieldset> - <div class="form-group"> + <div class="form-group"> {{ form.old_password.errors }} - <label for="id_old_password">{% trans "Old password:" %}</label> + <label for="id_old_password">{% trans "Old password:" %}</label> <input class="form-control" type="password" name="old_password" autofocus required id="id_old_password"> </div> <div class="form-group"> {{ form.new_password1.errors }} - <label for="id_new_password1">{% trans "New password:" %}</label> + <label for="id_new_password1">{% trans "New password:" %}</label> <input class="form-control" type="password" name="new_password1" required id="id_new_password1"> </div> <div class="form-group"> {{ form.new_password2.errors }} - <label for="id_new_password2">{% trans "New password confirmation:" %}</label> + <label for="id_new_password2">{% trans "New password confirmation:" %}</label> <input class="form-control" type="password" name="new_password2" required id="id_new_password2"> </div> </fieldset> @@ -56,7 +56,7 @@ </div> </form> - + <p><a href="{% url 'password_reset' %}">{% trans "Lost your password?" %}</a></p> </div> </div> -- GitLab From 4fd4a02b97c0b1cb941ed049362574c89894a137 Mon Sep 17 00:00:00 2001 From: Robin Tissot <tissotrobin@gmail.com> Date: Tue, 2 Jun 2020 12:56:03 +0200 Subject: [PATCH 11/11] Add red to error title msg. --- app/escriptorium/static/css/escriptorium.css | 3 +++ .../templates/registration/password_change_form.html | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/escriptorium/static/css/escriptorium.css b/app/escriptorium/static/css/escriptorium.css index 1bca4cab..77c3940d 100644 --- a/app/escriptorium/static/css/escriptorium.css +++ b/app/escriptorium/static/css/escriptorium.css @@ -14,6 +14,9 @@ section { .errorlist { color: var(--danger); } +.error { + color: var(--danger); +} #delete-point, #delete-line { diff --git a/app/escriptorium/templates/registration/password_change_form.html b/app/escriptorium/templates/registration/password_change_form.html index 9151a0c3..9a03c63c 100644 --- a/app/escriptorium/templates/registration/password_change_form.html +++ b/app/escriptorium/templates/registration/password_change_form.html @@ -18,7 +18,7 @@ {% csrf_token %} {% if form.errors %} - <p class="errornote"> + <p class="error"> {% blocktrans count count=form.errors.items|length %} Please correct the error below. {% plural %} -- GitLab