From b6f91e40f22959dd92c0e96697b3b33128fbb09e Mon Sep 17 00:00:00 2001 From: ezekiah Date: Tue, 9 Jul 2013 13:23:42 +0200 Subject: [PATCH] updates --- locale/fr/LC_MESSAGES/django.mo | Bin 17778 -> 18185 bytes locale/fr/LC_MESSAGES/django.po | 39 ++++++------ outside/api.py | 17 ++++++ outside/forms.py | 17 +++--- outside/templates/email/access_request.html | 14 +++-- outside/templates/email/contact.html | 7 ++- .../email/reinitialize_password.html | 12 ++-- outside/templates/email/signup.html | 16 ++--- outside/templates/enquete/access_form.html | 5 -- outside/templates/enquete/hook.html | 23 +++++-- outside/templates/enquete/metadata.html | 14 ++--- outside/templates/enquete/middle.html | 31 +++++++--- outside/templates/hub/boilerplate.html | 6 +- outside/templates/hub/change_password.html | 19 +++--- outside/templates/hub/create_profile.html | 12 +--- outside/templates/hub/download.html | 15 +++++ outside/templates/hub/edit_profile.html | 7 --- outside/templates/hub/login.html | 2 +- outside/templates/hub/middle.html | 1 + .../templates/hub/reinitialize_passwd.html | 15 +++-- outside/templates/hub/signup.html | 12 ++-- outside/templates/outside/login.html | 44 ++++++++------ outside/urls.py | 4 +- outside/views.py | 57 ++++++++++++------ settings.py | 17 ++++++ static/css/themes/app.less | 10 ++- static/js/outside.js | 14 +++-- static/js/outside/access_request.js | 4 +- static/js/outside/change_password.js | 4 +- static/js/outside/forms.js | 37 +++++++++++- static/js/outside/passwordStrengthMeter.js | 6 ++ static/js/outside/reinitialize_password.js | 4 +- static/js/outside/signup.js | 5 +- static/js/outside/subscriber.js | 4 +- 34 files changed, 322 insertions(+), 172 deletions(-) diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 8e5552859c4ec2a4c707dd4f04d02df66aa6ff6d..e0305aca3f39bc5e35992d325bc92b9f11978fcb 100755 GIT binary patch delta 5399 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 F{SOjtLL~qI diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 85019f3..62981bd 100755 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -111,7 +111,7 @@ msgstr "" #: outside/templates/hub/reinitialize_passwd.html:19 #: outside/templates/hub/signup.html:27 msgid "username" -msgstr "Nom d'utilisateur" +msgstr "identifiant" #: outside/views.py:154 outside/views.py:213 #, python-format @@ -651,7 +651,7 @@ msgstr "" #: outside/templates/hub/reinitialize_passwd.html:43 #: outside/templates/hub/signup.html:78 msgid "Please fill the image below" -msgstr "Veuillez recopier l'image ci-dessous" +msgstr "Merci de bien vouloir reproduire les lettres qui apparaissent dans l'image ci-dessous" #: outside/templates/enquete/access_form.html:86 msgid "accepted terms" @@ -841,7 +841,7 @@ msgstr "L'enquête sur l'enquête" #: outside/templates/enquete/enquetes.html:75 msgid "To access the survey datas you have to be registered" -msgstr "Pour accêder aux données de l'enquête vous devez être inscrit" +msgstr "Pour lire les données de l'enquête vous devez être inscrit" #: outside/templates/enquete/enquetes.html:78 msgid "access content" @@ -1085,8 +1085,16 @@ msgstr "Changer votre mot de passe" #: outside/templates/hub/change_password.html:26 #: outside/templates/hub/signup.html:45 -msgid "The password must have a good security" -msgstr "Le mot de passe doit avoir une bonne sécurité" +msgid "The password must have a good security, use signs and numbers to strenghten the password" +msgstr "Le mot de passe doit avoir une bonne sécurité, utilisez des signes et des chiffres pour renforcer la sécurité" + + +msgid "Research content" +msgstr "Contenus de l'enquête" + + +msgid "Create profile" +msgstr "Création du profil" #: outside/templates/hub/change_password.html:34 msgid "Confirmation" @@ -1154,7 +1162,7 @@ msgstr "" #: outside/templates/hub/create_profile.html:13 msgid "You don't have a profile, create one" -msgstr "Vous n'avez pas de profile, veuillez en créer un" +msgstr "Vous n'avez pas de profil, veuillez en créer un" #: outside/templates/hub/create_profile.html:18 #: outside/templates/hub/edit_profile.html:18 @@ -1204,7 +1212,7 @@ msgid "" msgstr "" "\n" "

Les données de l'enquête peuvent être très longue à télécharger, vous " -"devriez donc utiliser un gestionnaire de téléchargement qui permet de mettre " +"devriez donc utiliser un gestionnaire
de téléchargement qui permet de mettre " "en pause un téléchargement et le continuer plus tard.
Si vous êtes sur " "windows vous pouvez utiliser free download manager.
Sur " @@ -1325,7 +1333,7 @@ msgstr "Confirmation du mot de passe" #: outside/templates/hub/signup.html:72 msgid "describe yourself" -msgstr "Décrivez-vous professionnellement, votre poste, où vous travaillez..." +msgstr "Pouvez-vous nous décrire les raisons pour lesquelles vous vous intéressez à la banque d'enquêtes qualitatives?" #: outside/templates/hub/signup.html:85 msgid "legal notices" @@ -1356,21 +1364,16 @@ msgstr "Authentification" #: outside/templates/outside/login.html:37 #, python-format -msgid "" -"\n" -"\t\t\tPlease fill this form to connect, click " -"here if you are not registered\n" -"\t\t\t " +msgid "Please fill this form to connect, click here if you are not registered" msgstr "" -"\n" -"\t\t\tPour demander l'accès à une enquête vous devez être incrit sur le " -"site, vous pouvez vous inscrire iciinscrire ici
Si vous disposez déjà d'un compte veuillez entrer vos login et mot " "de passe ci-dessous.
Nous vous rappelons que ce site est réservé à la " "communauté académique pour un usage strictement scientifique.
Une fois " "authentifié, vous pouvez demander à consulter les documents de l'enquête en " "remplissant le formulaire de demande d'accès.
Vous devrez renouveller la " -"procédure pour chaque enquête que vous souhaiterez consulter.\t\t\t " +"procédure pour chaque enquête que vous souhaiterez consulter." #: outside/templates/outside/login.html:67 msgid "Password forgotten?" @@ -1862,4 +1865,6 @@ msgid "Show/Hide Paraverbal" msgstr "Voir/cacher le paraverbal" +msgid "Refresh captcha image" +msgstr "rafraichir l'image" diff --git a/outside/api.py b/outside/api.py index 9accaaf..045fdd1 100755 --- a/outside/api.py +++ b/outside/api.py @@ -729,6 +729,23 @@ def subscriber( request, subscriber_id ): import random + +from captcha.models import CaptchaStore +from captcha.helpers import captcha_image_url + +import json + +def captcha_refresh(request): + """ Return json with new captcha for ajax refresh request """ + + new_key = CaptchaStore.generate_key() + to_json_response = { + 'key': new_key, + 'image_url': captcha_image_url(new_key), + } + return HttpResponse(json.dumps(to_json_response), content_type='application/json') + + def captcha(request): # this compare captcha's number from POST and SESSION if(request.method == 'POST' and request.POST['captcha'] is not None and request.POST['captcha'] == request.session['captcha']): diff --git a/outside/forms.py b/outside/forms.py index 3728291..0f1c3b6 100755 --- a/outside/forms.py +++ b/outside/forms.py @@ -1,7 +1,7 @@ from django import forms from django.forms import ModelForm, ModelChoiceField from django.utils.translation import ugettext as _ -from captcha.fields import ReCaptchaField +from captcha.fields import * from outside.models import Subscriber from reanalyseapp.models import Enquete @@ -22,13 +22,12 @@ class SubscriberForm (forms.Form): accepted_terms = forms.BooleanField(required=False, initial=False) description = forms.CharField( widget=forms.Textarea) # personal description action = forms.CharField( label="action", required=False, widget=forms.HiddenInput ) - #captcha = ReCaptchaField(attrs={'theme':'clean'}) - + captcha = CaptchaField(required=False, ) class LoginForm( forms.Form ): username = forms.CharField( max_length=32, widget=forms.TextInput, required=True ) password = forms.CharField( max_length=64, label='Password', widget=forms.PasswordInput(render_value=False ), required=True ) - #captcha = ReCaptchaField(attrs={'theme':'clean'}, required=True) + captcha = CaptchaField(required=False, ) @@ -43,19 +42,17 @@ class SignupForm( forms.Form ): status = forms.CharField(max_length=3, widget=forms.Select(choices=Subscriber.STATUS_CHOICES), ) accepted_terms = forms.BooleanField(initial=False) description = forms.CharField( widget=forms.Textarea) # personal message - captcha = ReCaptchaField(attrs={'theme':'clean'}) + captcha = CaptchaField(required=False, ) class ChangePasswordForm( forms.Form ): password1 = forms.CharField( max_length=64, label='Password', widget=forms.PasswordInput(render_value=False ), required=True ) password2 = forms.CharField( max_length=64, label='Password', widget=forms.PasswordInput(render_value=False ), required=True ) - username = forms.CharField( label="username", required=True, widget=forms.HiddenInput ) - captcha = ReCaptchaField(attrs={'theme':'clean'}) - + username = forms.CharField( label="username", required=True, widget=forms.HiddenInput ) class ReinitializePasswordForm(forms.Form): email = forms.EmailField() #username = forms.CharField( label=_("username"), required=True ) - captcha = ReCaptchaField(attrs={'theme':'clean'}) + captcha = CaptchaField(required=True) @@ -81,7 +78,7 @@ def label_from_instance(self, obj): description = forms.CharField( widget=forms.Textarea) # personal message - captcha = ReCaptchaField(attrs={'theme':'clean'}) + diff --git a/outside/templates/email/access_request.html b/outside/templates/email/access_request.html index cd67135..7d64efe 100644 --- a/outside/templates/email/access_request.html +++ b/outside/templates/email/access_request.html @@ -20,7 +20,7 @@ Vous pouvez cliquer
ici pour accéder à la page admin
- Aurevoir
+ A bientôt!
{% endblocktrans %} @@ -32,11 +32,12 @@ {% blocktrans %} - Bonjour,

+ Bonjour {{prenom }} {{nom}},

- Vous avez demandé l'accès pour l'enquête {{enquete}}, nous allons étudier votre demande et vous recevrez un mail quand l'accès vous sera autorisé. + Vous avez demandé l'accès pour l'enquête {{enquete}}, nous allons étudier votre demande et vous recevrez un mail dès que l'accès vous aura été donné. - Aurevoir
+ A bientôt!
+ L'équipe beQuali
{% endblocktrans %} @@ -48,10 +49,11 @@ {% blocktrans %} - Bonjour,

+ Bonjour {{prenom }} {{nom}},

Votre demande d'accès pour l'enquête "{{enquete}}" a été acceptée. Vous pouvez consulter l'enquête ici

- Aurevoir + Bonne exploration!
+ L'équipe beQuali
{% endblocktrans %} diff --git a/outside/templates/email/contact.html b/outside/templates/email/contact.html index 617a782..e67bebe 100644 --- a/outside/templates/email/contact.html +++ b/outside/templates/email/contact.html @@ -6,10 +6,11 @@ {% blocktrans %} - Bonjour votre message a été envoyé, nous vous répondrons dès que possible.

+ Bonjour votre message a bien été envoyé, nous vous répondrons dès que possible.

Contenu du message : {{description}}

- Aurevoir
+ A bientôt!
+ L'équipe beQuali
@@ -37,7 +38,7 @@ message:{{description}}


- Aurevoir
+ A bientôt
{% endblocktrans %} diff --git a/outside/templates/email/reinitialize_password.html b/outside/templates/email/reinitialize_password.html index bfd49df..384e581 100644 --- a/outside/templates/email/reinitialize_password.html +++ b/outside/templates/email/reinitialize_password.html @@ -3,14 +3,15 @@ {%if action == 'reinitialize_confirm'%} - Bonjour {{firstname }}{{lastname}},

+ Bonjour {{prenom }} {{nom}},

Nous avons reçu une demande de réinitialisation de votre mot de passe pour votre identitiant {{username}}.

Si vous êtes bien à l'origine de la demande, veuillez confirmer votre demande de réinitialisation en cliquant sur ce lien, vous recevrez alors un email contenant votre nouveau mot de passe. - A bientôt
+ A bientôt!
+ L'équipe beQuali
@@ -20,16 +21,17 @@ {%if action == 'reinitialize_notification'%} - Bonjour {{firstname }}{{lastname}},

+ Bonjour {{prenom }} {{nom}},

- Votre mot de passe a bien été réinitialisé, vous pouvez vous connecter ici avec ces informations :
+ Votre mot de passe a bien été réinitialisé, vous pouvez dès maintenant vous connecter ici avec ces informations :
Identifiant : {{username}}
Mot de passe : {{password}}

Vous pouvez changer votre mot de passe à cette adresse : - A bientôt
+ A bientôt!
+ L'équipe beQuali
diff --git a/outside/templates/email/signup.html b/outside/templates/email/signup.html index 8dec28d..d129aef 100644 --- a/outside/templates/email/signup.html +++ b/outside/templates/email/signup.html @@ -5,13 +5,15 @@ {% blocktrans %} - Bonjour {{firstname}} {{nom}},

+ Bonjour {{prenom}} {{nom}},

- Veuillez cliquer sur ce lien pour confirmer votre inscription sur le site BeQuali.
+ Nous avons bien reçu votre de mande d'inscription sur le site beQuali. + Afin de finaliser la procédure veuillez cliquer sur ce lien.
- Vous pourrez vous connecter avec cet identifiant : {{username}} et mot de passe : {{password}} (masqué pour raison de sécurité).

+ Vous pourrez ensuite vous connecter avec cet identifiant : {{username}} et ce mot de passe : {{password}} (masqué pour raison de sécurité).

- Aurevoir
+ A bientôt!
+ L'équipe beQuali
@@ -25,9 +27,9 @@ {% blocktrans %} Bonjour, vous avez une nouvelle demande d'accès :

- user information :
+ Informations sur l'utilisateur :
- prenom: {{prenom}}
+ prénom: {{prenom}}
nom: {{nom}}
email: {{email}}
affiliation: {{affiliation}}
@@ -36,7 +38,7 @@ Vous pouvez cliquer ici pour accéder à la page admin
- Aurevoir
+ A bientôt!
diff --git a/outside/templates/enquete/access_form.html b/outside/templates/enquete/access_form.html index ecd201d..af72de0 100644 --- a/outside/templates/enquete/access_form.html +++ b/outside/templates/enquete/access_form.html @@ -81,11 +81,6 @@

{%trans "Ask for access"%}

- - {{ access_request_form.captcha }} -
diff --git a/outside/templates/enquete/metadata.html b/outside/templates/enquete/metadata.html index 4e06f32..761631e 100644 --- a/outside/templates/enquete/metadata.html +++ b/outside/templates/enquete/metadata.html @@ -97,7 +97,7 @@

{% trans "general" %}

{% trans key %} - + {% for i in item.value %}{{ i }}{% if not forloop.last %}, {% endif %}{% endfor %} @@ -119,7 +119,7 @@

{% trans "actors" %}

{% trans key %} - + {% for i in item.value %}{{ i }}{% if not forloop.last %}, {% endif %}{% endfor %} @@ -141,7 +141,7 @@

{% trans "universe" %}

{% trans key %} - + {% for i in item.value %}{{ i }}{% if not forloop.last %}, {% endif %}{% endfor %} @@ -163,7 +163,7 @@

{% trans "method" %}

{% trans key %} - + {% for i in item.value %}{{ i }}{% if not forloop.last %}, {% endif %}{% endfor %} @@ -185,7 +185,7 @@

{% trans "corpus" %}

{% trans key %} - + {% for i in item.value %}{{ i }}{% if not forloop.last %}, {% endif %}{% endfor %} @@ -207,7 +207,7 @@

{% trans "analysis" %}

{% trans key %} - + {% for i in item.value %}{{ i }}{% if not forloop.last %}, {% endif %}{% endfor %} @@ -229,7 +229,7 @@

{% trans "edition" %}

{% trans key %} - + {% for i in item.value %}{{ i }}{% if not forloop.last %}, {% endif %}{% endfor %} diff --git a/outside/templates/enquete/middle.html b/outside/templates/enquete/middle.html index c9ececa..428cb3f 100755 --- a/outside/templates/enquete/middle.html +++ b/outside/templates/enquete/middle.html @@ -32,7 +32,7 @@
  • - {% trans "connection" %} + {% trans "connection" %}
  • {% endif %} @@ -224,27 +224,38 @@

    {{ p.title }}

    {% block modals %} diff --git a/outside/templates/hub/boilerplate.html b/outside/templates/hub/boilerplate.html index fb26544..4f4d031 100755 --- a/outside/templates/hub/boilerplate.html +++ b/outside/templates/hub/boilerplate.html @@ -82,13 +82,17 @@ {% endblock %} {% block outside_scripts %} + + + + - + diff --git a/outside/templates/hub/change_password.html b/outside/templates/hub/change_password.html index 390d792..077edb4 100644 --- a/outside/templates/hub/change_password.html +++ b/outside/templates/hub/change_password.html @@ -22,14 +22,14 @@

    {% trans "Change your password" %}

    - {{ signup_form.password1 }} @@ -53,7 +53,7 @@

    {% trans "Registration" %}

    {% trans "password confirmation"|capfirst %} *
    - {% trans "Please confirm your password"|capfirst %}: + {% trans "Please confirm your password"|capfirst %}:
    @@ -75,10 +75,14 @@

    {% trans "Registration" %}

    + {{ signup_form.captcha }} - + +
    diff --git a/outside/templates/outside/login.html b/outside/templates/outside/login.html index 7a85abe..1f07550 100755 --- a/outside/templates/outside/login.html +++ b/outside/templates/outside/login.html @@ -1,19 +1,14 @@ -{% extends "outside/middle.html" %} +{% extends "enquete/middle.html" %} {% load i18n %} -{% block sidebar %} - - -{% endblock %} +{% block sidebar %}{% endblock %} -{% block page_title %} - -{% endblock %} +{% block page_title %}{% endblock %} {% block page %} {% url outside_signup_generic as signup_url %} -
    +
    {% csrf_token %}

    @@ -34,35 +29,44 @@

    {%endif%}

    - {% blocktrans %} - Please fill this form to connect, click here if you are not registered - {% endblocktrans %} + + {% trans "Please fill this form to connect, click here if you are not registered"%} +

    {% comment %}{{ next }}{% endcomment %}
    - {{ login_form.username.label }} + {{ login_form.username }}
    - {{ login_form.password.label_tag }} + {{ login_form.password }}
    - {%comment%} + + +
    {{ login_form.captcha }}
    + - {{ login_form.captcha }} - {%endcomment%}
    - +

    diff --git a/outside/urls.py b/outside/urls.py index 28b02ad..f790aa5 100755 --- a/outside/urls.py +++ b/outside/urls.py @@ -3,7 +3,7 @@ urlpatterns = patterns('', - + url(r'^captcha/', include('captcha.urls')), url(r'^$','outside.views.index', name='outside_index'), url(r'^index/$','outside.views.index', name='outside_index'), url(r'^news/$','outside.views.news', name='outside_news'), @@ -39,7 +39,7 @@ url(r'^enquete_admin$', 'outside.views.enquete_admin', name='outside_enquete_admin'), - + url(r'^api/captcha_refresh/$', 'outside.api.captcha_refresh', name='api_captcha_refresh'), diff --git a/outside/views.py b/outside/views.py index 8f6f05e..bc47e52 100755 --- a/outside/views.py +++ b/outside/views.py @@ -21,11 +21,11 @@ from reanalyseapp.models import Enquete, Tag, Texte, AccessRequest from glue.models import Pin, Page -from glue.forms import LoginForm, AddPageForm, AddPinForm, EditPinForm +from glue.forms import AddPageForm, AddPinForm, EditPinForm from outside.models import Enquiry, Subscriber, Confirmation_code from outside.sites import OUTSIDE_SITES_AVAILABLE -from outside.forms import AddEnquiryForm, SubscriberForm, SignupForm, AccessRequestForm, ChangePasswordForm, ReinitializePasswordForm +from outside.forms import LoginForm, AddEnquiryForm, SubscriberForm, SignupForm, AccessRequestForm, ChangePasswordForm, ReinitializePasswordForm from django.core.mail import EmailMultiAlternatives @@ -126,7 +126,7 @@ def page( request, page_slug ): return render_to_response("%s/page.html" % 'enquete', RequestContext(request, data ) ) def enquete( request, enquete_id ): - data = shared_context( request, tags=[ "enquetes", "focus-on-enquete" ] ) + data = shared_context( request, tags=[ "enquetes", "focus-on-enquete", 'visualizations' ] ) data['enquete'] = get_object_or_404( Enquete, id=enquete_id ) data['disabled'] = [ t.slug for t in data['enquete'].tags.filter( type=Tag.DISABLE_VISUALIZATION ) ] @@ -575,9 +575,16 @@ def login_view( request ): form = LoginForm( request.POST ) login_message = { 'next':request.REQUEST.get('next', 'outside_index') } + + try: + if 'next' not in request.session: + request.session['next'] = request.REQUEST['next'] + except: + pass + + if request.method == 'POST': - #return HttpResponse( request.POST, content_type="text" ) if form.is_valid(): user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password']) @@ -594,8 +601,16 @@ def login_view( request ): # @todo: Redirect to next page #return redirect( settings.REANALYSEURL+'/'+settings.ROOT_DIRECTORY_NAME ) - - return redirect( request.REQUEST.get('next', 'outside_index') ) + + + + next_url = request.session['next'] + + del request.session['next'] + + #return HttpResponse(next_url) + + return redirect( next_url ) #return redirect( settings.REANALYSEURL+request.GET['next'] ) @@ -633,6 +648,8 @@ def access_request(request, enquete_id=None): #Verify if he has already requested the enquete try: access = AccessRequest.objects.get(user=request.user.id, enquete=enquete_id) + + except AccessRequest.DoesNotExist: try: @@ -640,6 +657,8 @@ def access_request(request, enquete_id=None): except Subscriber.DoesNotExist: pass + #redirect to creation profileS + else: #Fill form with user infos @@ -801,6 +820,7 @@ def shared_context( request, tags=[], previous_context={} ): d['stylesheet'] = settings.OUTSIDE_THEME d['template'] = settings.OUTSIDE_TEMPLATE_DIR d['REANALYSEURL'] = settings.REANALYSEURL + d['next'] = request.path # if it is not auth, pull loginform @@ -976,21 +996,20 @@ def reinitialize_password(request): def download_page( request, enquete_id ): - - - + data = shared_context( request, tags=[ "download" ] ) - - try: - AccessRequest.objects.get(user=request.user.id, enquete=enquete_id, is_activated=True) - except AccessRequest.DoesNotExist: - - request.flash['notice'] = _("You don't have access to this document, please ask for access here to ask for permission.") % ( reverse('outside.views.access_request', kwargs={'enquete_id':enquete_id}) ) - - viewurl = reverse('outside.views.enquete', kwargs={'enquete_id':enquete_id}) - return redirect(viewurl) - + if( not request.user.has_perm('reanalyseapp.can_browse') ): + try: + AccessRequest.objects.get(user=request.user.id, enquete=enquete_id, is_activated=True) + except AccessRequest.DoesNotExist: + + request.flash['notice'] = _("You don't have access to this document, please ask for access here to ask for permission.") % ( reverse('outside.views.access_request', kwargs={'enquete_id':enquete_id}) ) + + viewurl = reverse('outside.views.enquete', kwargs={'enquete_id':enquete_id}) + return redirect(viewurl) + else: + pass if enquete_id is not None: data['enquete'] = get_object_or_404( Enquete, id=enquete_id ) diff --git a/settings.py b/settings.py index ee5d4c5..7c87da3 100755 --- a/settings.py +++ b/settings.py @@ -345,3 +345,20 @@ OUTSIDE_SITE_NAME = "reanalyse" OUTSIDE_THEME = "app" OUTSIDE_TEMPLATE_DIR = "hub" + + + +#CAPTCHA_FONT_PATH +CAPTCHA_FONT_SIZE = 50 +#CAPTCHA_LETTER_ROTATION +#CAPTCHA_BACKGROUND_COLOR +#CAPTCHA_FOREGROUND_COLOR +#CAPTCHA_NOISE_FUNCTIONS +#CAPTCHA_FILTER_FUNCTIONS +#CAPTCHA_WORDS_DICTIONARY +#CAPTCHA_FLITE_PATH +#CAPTCHA_LENGTH +#CAPTCHA_DICTIONARY_MIN_LENGTH +#CAPTCHA_DICTIONARY_MAX_LENGTH +#CAPTCHA_OUTPUT_FORMAT +#CAPTCHA_TEST_MOD = False diff --git a/static/css/themes/app.less b/static/css/themes/app.less index 1dec0a0..64b7f4b 100755 --- a/static/css/themes/app.less +++ b/static/css/themes/app.less @@ -2223,10 +2223,17 @@ table.meta{ .serif-slant(14px); text-align:left; padding: 0 @grid-padding/2 0 @grid-padding/3; + vertical-align: top; + text-align: right } - } + + td.value{ + vertical-align: top; + } + + } } @@ -2373,6 +2380,7 @@ table.meta{ .ajax-loader { + background:url("../../img/rea/loading.gif"); display:inline-block; height: 12px; diff --git a/static/js/outside.js b/static/js/outside.js index a99be36..8c8c5f0 100755 --- a/static/js/outside.js +++ b/static/js/outside.js @@ -57,11 +57,11 @@ oo.api.process = function( result, callback, namespace ){ */ oo.toast( oo.i18n.translate("invalid form") , oo.i18n.translate("error"), {stayTime:3000, cleanup: true}); - Recaptcha.reload(); + captcha_refresh() } else { oo.toast( result.error , oo.i18n.translate("error"), {stayTime:3000, cleanup: true}); oo.invalidate( result.fields, namespace ); - Recaptcha.reload(); + captcha_refresh() } } @@ -130,14 +130,15 @@ oo.invalidate = function( errors, namespace ){ if (!namespace){ namespace = "id" $("#"+namespace+"_"+i).parent().addClass("invalid"); continue; } else if(i.indexOf("captcha") != -1 ) { - $("#recaptcha_response_field").addClass("invalid"); + $("#"+namespace+"_"+"captcha_1").addClass("invalid"); + console.log("#"+namespace+"_"+"captcha_1") continue; } else if(i.indexOf("terms") != -1 ) { $("#"+namespace+"_"+i).parent().attr("style", "color:red;text-decoration:underline"); continue; } - oo.log("#"+namespace+"_"+i) + $("#"+namespace+"_"+i).addClass("invalid"); } } @@ -218,8 +219,11 @@ oo.i18n.dict = { "Bad":"Sécurité trop faible ", "Good":"Sécurité convenable", "Strong":"Sécurité forte", + "Too easy":"Ne mettez pas votre nom ou prénom pour raison de sécurité", "Your password security is too weak":"La sécurité de votre mot de passe est trop faible", - "the password is not the same as above":"Les deux mots de passes ne sont pas égaux" + "the password is not the same as above":"Les deux mots de passes ne sont pas égaux", + "Password confirmed":"Mot de passe confirmé" + } }; \ No newline at end of file diff --git a/static/js/outside/access_request.js b/static/js/outside/access_request.js index 2760740..550982d 100644 --- a/static/js/outside/access_request.js +++ b/static/js/outside/access_request.js @@ -78,8 +78,8 @@ oo.access_request.init = function(){oo.log("[oo.access_request.init]"); description:$('#id_access_request_description').val(), enquete:!$('#id_access_request_enquete').is("select")?$('input[name=enquete]').val():$('select[name=enquete]').val(), accepted_terms: $('input[name=accepted_terms]').val(), - recaptcha_challenge_field: $('input[name=recaptcha_challenge_field]').val(), - recaptcha_response_field: $('input[name=recaptcha_response_field]').val(), + captcha_0:$('input[name=captcha_0]').val(), + captcha_1:$('input[name=captcha_1]').val(), })}); //$("").click() }; diff --git a/static/js/outside/change_password.js b/static/js/outside/change_password.js index e059361..318a524 100644 --- a/static/js/outside/change_password.js +++ b/static/js/outside/change_password.js @@ -89,8 +89,8 @@ oo.change_password.init = function(){ username:$('input[name=username]').val(), password1:$('input[name=password1]').val(), password2:$('input[name=password2]').val(), - recaptcha_challenge_field:$('input[name=recaptcha_challenge_field]').val(), - recaptcha_response_field:$('input[name=recaptcha_response_field]').val(), + captcha_0:$('input[name=captcha_0]').val(), + captcha_1:$('input[name=captcha_1]').val(), })}); diff --git a/static/js/outside/forms.js b/static/js/outside/forms.js index 8a4c47c..39915e7 100644 --- a/static/js/outside/forms.js +++ b/static/js/outside/forms.js @@ -21,7 +21,7 @@ oo.api.forms.init = function( params ){ $('#pass_confirm').html(oo.i18n.translate('the password is not the same as above')).removeClass().addClass('red'); } else { - $('#pass_confirm').html('ok').removeClass().addClass('green'); + $('#pass_confirm').html(oo.i18n.translate('Password confirmed')).removeClass().addClass('green'); } } @@ -41,6 +41,9 @@ oo.api.forms.init = function( params ){ span_class = 'blue' } else if(check =="Strong") { span_class = 'green' + + } else if(check =="Too easy") { + span_class = 'red' } html = $('') @@ -49,7 +52,39 @@ oo.api.forms.init = function( params ){ $('#result').html(html) }) + + + + + + } +function captcha_refresh(){ + + $.ajax({ + url: oo.urls.captcha_refresh, + dataType:'json', + cache:false + }).done(function(json) { + $('img.captcha').attr('src', json.image_url)// This your should update captcha image src and captcha hidden input + $('input[name=captcha_0]').val(json.key) + + $('input[name=captcha_1]').val("") + + }); + + + + + +} + +$('.js-captcha-refresh').click(function(){ + captcha_refresh(); + return false; +}); + + diff --git a/static/js/outside/passwordStrengthMeter.js b/static/js/outside/passwordStrengthMeter.js index ff62db3..7e27ca1 100644 --- a/static/js/outside/passwordStrengthMeter.js +++ b/static/js/outside/passwordStrengthMeter.js @@ -5,6 +5,7 @@ var shortPass = 'Too short' var badPass = 'Bad' +var tooEasy = 'Too easy' var goodPass = 'Good' var strongPass = 'Strong' @@ -20,6 +21,11 @@ function passwordStrength(password,username) //password == username if (password.toLowerCase()==username.toLowerCase()) return badPass + var firstname = $('input[name=first_name]').val() + var lastname = $('input[name=last_name]').val() + + if( password == firstname || password == lastname || firstname+lastname == password || lastname+firstname == password) return tooEasy + //password length score += password.length * 4 score += ( checkRepetition(1,password).length - password.length ) * 1 diff --git a/static/js/outside/reinitialize_password.js b/static/js/outside/reinitialize_password.js index d7bba4c..f5f65c7 100644 --- a/static/js/outside/reinitialize_password.js +++ b/static/js/outside/reinitialize_password.js @@ -68,8 +68,8 @@ oo.api.reinitialize_password.init = function(){ oo.api.reinitialize_password.launch({ username:$('input[name=username]').val(), email:$('input[name=email]').val(), - recaptcha_challenge_field:$('input[name=recaptcha_challenge_field]').val(), - recaptcha_response_field:$('input[name=recaptcha_response_field]').val(), + captcha_0:$('input[name=captcha_0]').val(), + captcha_1:$('input[name=captcha_1]').val(), })}); diff --git a/static/js/outside/signup.js b/static/js/outside/signup.js index 2911f6d..0ea704f 100644 --- a/static/js/outside/signup.js +++ b/static/js/outside/signup.js @@ -42,6 +42,7 @@ oo.api.signup.add = function( params ){ if( passwordStrength($('#id_signup_password1').val(),$('#id_signup_username').val()) == 'Too short' || passwordStrength($('#id_signup_password1').val(),$('#id_signup_username').val()) == 'Bad' + || passwordStrength($('#id_signup_password1').val(),$('#id_signup_username').val()) == 'Too easy' ) { return oo.toast( oo.i18n.translate("Your password security is too weak"), oo.i18n.translate("error") ); @@ -105,6 +106,8 @@ oo.signup.init = function(){oo.log("[oo.signup.init]"); description:$('textarea[name=description]').val(), accepted_terms:$('input[name=accepted_terms]').prop("checked"), recaptcha_challenge_field:$('input[name=recaptcha_challenge_field]').val(), - recaptcha_response_field:$('input[name=recaptcha_response_field]').val(), + captcha_0:$('input[name=captcha_0]').val(), + captcha_1:$('input[name=captcha_1]').val(), + })}); }; diff --git a/static/js/outside/subscriber.js b/static/js/outside/subscriber.js index ecbb580..01ce310 100755 --- a/static/js/outside/subscriber.js +++ b/static/js/outside/subscriber.js @@ -72,8 +72,8 @@ oo.subscriber.init = function(){ status:$('select[name=status]').val(), email:$("input[name=email]").val(), action:$("input[name=action]").val(), - recaptcha_challenge_field:$('#recaptcha_challenge_field').val(), - recaptcha_response_field:$('#recaptcha_response_field').val(), + captcha_0:$('input[name=captcha_0]').val(), + captcha_1:$('input[name=captcha_1]').val(), })}); //$("").click() }; \ No newline at end of file