--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/ldt_utils/middleware/userprofile.py Wed Sep 07 17:32:29 2011 +0200
@@ -0,0 +1,11 @@
+from ldt.user.models import get_or_create_profile
+from django.utils import translation
+
+class LanguageMiddleware(object):
+
+ def process_request(self, request):
+ if request.user.is_authenticated():
+ language = get_or_create_profile(request.user).language
+ translation.activate(language)
+ request.LANGUAGE_CODE = translation.get_language()
+
\ No newline at end of file
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Wed Sep 07 17:32:29 2011 +0200
@@ -26,11 +26,14 @@
parent.$.nmTop().close();
});
+ $("#check_projects").attr('title', 'uncheck all');
$("#check_projects").change(function () {
if ($("#check_projects").is(":checked")) {
$(".cellcheckbox input").attr('checked', 'true');
+ $("#check_projects").attr('title', 'uncheck all');
} else {
$(".cellcheckbox input").removeAttr('checked');
+ $("#check_projects").attr('title', 'check all');
}
});
@@ -48,9 +51,19 @@
{{form.title}}
<label>{% trans "List of contents" %}</label>
<div class="span-12 last projectscontentsdiv" id="ldtcreatecontentslistcontainer">
- <div class="projectscontentsheader span-12 last" id="contentslistheader">{% trans "name" %}</div>
<div class="span-12 last projectscontentstablediv" id="ldtcreatecontentstablediv">
<table class="projectscontentstable">
+
+ <tr class="projectscontentsheader last" id="contentslistheader">
+ <td class="cellcheckbox">
+ {% if not ldt_id %}
+ {% if contents|length > 1 %}
+ <input class="selectallprojects" id="check_projects" type="checkbox" checked="true" />
+ {% endif %}
+ {% endif %}
+ <td class="projectcontentsheadertitle">{% trans "name" %}</td>
+ </tr>
+
<tbody class="projectscontentsbody">
{% for content in contents %}
<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%}">
@@ -61,11 +74,7 @@
</tbody>
</table>
</div>
- {% if not ldt_id %}
- {% if contents|length > 1 %}
- <input class="selectallprojects" style="width: 35px; text-align: center;" id="check_projects" type="checkbox" checked="true"/>
- {% endif %}
- {% endif %}
+
</div>
Binary file src/ldt/ldt/locale/en/LC_MESSAGES/django.mo has changed
Binary file src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo has changed
--- a/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Wed Sep 07 17:32:29 2011 +0200
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-02 11:52+0200\n"
+"POT-Creation-Date: 2011-09-07 15:34+0200\n"
"PO-Revision-Date: 2010-03-09 15:52+0100\n"
"Last-Translator: Yves-Marie Haussonne <ymh.work@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -174,62 +174,62 @@
msgid "changed by"
msgstr "modifié par"
-#: .\ldt_utils\views.py:147 .\ldt_utils\views.py:540 .\ldt_utils\views.py:586
+#: .\ldt_utils\views.py:153 .\ldt_utils\views.py:546 .\ldt_utils\views.py:592
msgid "You can not access this project"
msgstr "vous n'avez pas l'autorisation d'accéder à ce projet"
-#: .\ldt_utils\views.py:752
+#: .\ldt_utils\views.py:758
#, python-format
msgid "the project %(title)s is published. please unpublish before deleting."
msgstr "Le projet %(title)s est publié. Déplublier le avant de l'effacer."
-#: .\ldt_utils\views.py:753
+#: .\ldt_utils\views.py:759
msgid "can not delete the project. Please correct the following error"
msgstr ""
"Le projet ne peut pas être effacé. Veuillez corriger les erreurs suivantes."
-#: .\ldt_utils\views.py:754
+#: .\ldt_utils\views.py:760
msgid "title error deleting project"
msgstr "Erreur lors de l'effacement du projet"
-#: .\ldt_utils\views.py:756
+#: .\ldt_utils\views.py:762
#, python-format
msgid "please confirm deleting project %(title)s"
msgstr "Confirmer l'effacement du projet intitulé %(title)s"
-#: .\ldt_utils\views.py:757
+#: .\ldt_utils\views.py:763
msgid "confirm deletion"
msgstr "Confirmation d'effacement"
-#: .\ldt_utils\views.py:931
+#: .\ldt_utils\views.py:937
msgid "Problem when downloading file from url : "
msgstr "Problème lors du téléchargement du fichier : "
-#: .\ldt_utils\views.py:934
+#: .\ldt_utils\views.py:940
msgid "Problem when uploading file : "
msgstr "Problème lors de l'upload du fichier : "
-#: .\ldt_utils\views.py:1003
+#: .\ldt_utils\views.py:1009
#, python-format
msgid "There is %(count)d error when deleting content"
msgid_plural "There are %(count)d errors when deleting content"
msgstr[0] "Il y a %(count)d erreur lors de l'effacement du contenu"
msgstr[1] "Il y a %(count)d erreurs lors de l'effacement du contenu"
-#: .\ldt_utils\views.py:1004
+#: .\ldt_utils\views.py:1010
msgid "title error deleting content"
msgstr "Erreur lors de l'effacement du contenu"
-#: .\ldt_utils\views.py:1006
+#: .\ldt_utils\views.py:1012
#, python-format
msgid "Confirm delete content %(titles)s"
msgstr "Veuillez confirmer l'effacement du contenu %(titles)s"
-#: .\ldt_utils\views.py:1007
+#: .\ldt_utils\views.py:1013
msgid "confirm delete content"
msgstr "Confirmation effacement contenu"
-#: .\ldt_utils\views.py:1041
+#: .\ldt_utils\views.py:1047
#, python-format
msgid ""
"Content '%(title)s' is referenced by this project : %(project_titles)s. "
@@ -239,11 +239,12 @@
"Please delete them beforehand."
msgstr[0] ""
msgstr[1] ""
+msgstr[2] ""
"Le contenu '%(title)s' est référencé par le projet '%(project_titles)s'."
-msgstr[2] "Veuillez l'effacer préalablement."
-msgstr[3] ""
-msgstr[4] "Le contenu '%(title)s' est référencé par les projets suivants : "
-msgstr[5] "'%(project_titles)s'.Veuillez les effacer préalablement."
+msgstr[3] "Veuillez l'effacer préalablement."
+msgstr[4] ""
+msgstr[5] "Le contenu '%(title)s' est référencé par les projets suivants : "
+msgstr[6] "'%(project_titles)s'.Veuillez les effacer préalablement."
#: .\ldt_utils\templates\admin\ldt_utils\app_action.html.py:4
#: .\templates\admin\cms_change_list.html.py:7
@@ -287,7 +288,7 @@
msgstr "Copier votre projet"
#: .\ldt_utils\templates\ldt\ldt_utils\copy_ldt.html.py:16
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:47
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:50
msgid "Title"
msgstr "Titre"
@@ -337,7 +338,7 @@
msgstr "Le fichier média est en cours de traitement. Veuillez patienter."
#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:124
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:73
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:82
#: .\ldt_utils\templates\ldt\ldt_utils\error_confirm.html.py:49
msgid "close_cancel"
msgstr "Fermer"
@@ -350,36 +351,35 @@
msgid "write"
msgstr "Enregistrer"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:43
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:46
msgid "Update your project"
msgstr "Mettre à jour votre projet Lignes de Temps"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:43
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:46
msgid "Create your project"
msgstr "Créer votre projet Lignes de Temps"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:49
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:52
msgid "List of contents"
msgstr "Liste de contenus"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:51
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:64
#: .\ldt_utils\templates\ldt\ldt_utils\partial\contentslist.html.py:3
#: .\ldt_utils\templates\ldt\ldt_utils\partial\projectslist.html.py:3
#: .\ldt_utils\templates\ldt\ldt_utils\partial\publishedprojectslist.html.py:3
-#: .\user\templates\ldt\user\change_name.html.py:31
-#: .\user\templates\ldt\user\change_profile.html.py:73
+#: .\user\templates\ldt\user\change_profile.html.py:52
msgid "name"
-msgstr "nom"
+msgstr "Nom"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:75
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:84
msgid "delete_project"
msgstr "Effacer"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:76
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:85
msgid "update_project"
msgstr "Mettre à jour"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:78
+#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:87
msgid "create_project"
msgstr "Créer un nouveau projet Ligne de Temps"
@@ -526,6 +526,16 @@
msgid "Project published"
msgstr "Projet publié"
+#: .\templates\admin\base_site.html.py:4
+#, fuzzy
+msgid "Django site admin"
+msgstr "Administration de Django"
+
+#: .\templates\admin\base_site.html.py:7
+#: .\templates\admin\page_base_site.html.py:7
+msgid "Django administration"
+msgstr "Administration de Django"
+
#: .\templates\admin\cms_change_form.html.py:30
msgid "Approve page deletion"
msgstr "Accepter l'effacement de la page"
@@ -646,57 +656,51 @@
msgid "Filter"
msgstr "Filtre"
-#: .\templates\admin\index.html.py:18 .\templates\admin\page_index.html.py:18
-#, python-format
-msgid "Models available in the %(name)s application."
-msgstr "Le modèle disponible dans l'application %(name)s."
-
-#: .\templates\admin\index.html.py:19
#: .\templates\admin\page_app_index.html.py:10
#: .\templates\admin\page_index.html.py:19
#, python-format
msgid "%(name)s"
msgstr "%(name)s"
-#: .\templates\admin\index.html.py:29
+#: .\templates\admin\page_base.html.py:20
+#: .\templates\admin\page_index.html.py:11
+msgid "Pages"
+msgstr "Pages"
+
#: .\templates\admin\page_change_form.html.py:20
#: .\templates\admin\page_index.html.py:29
msgid "Add"
msgstr "Ajouter"
-#: .\templates\admin\index.html.py:35 .\templates\admin\page_index.html.py:35
+#: .\templates\admin\page_index.html.py:18
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Le modèle disponible dans l'application %(name)s."
+
+#: .\templates\admin\page_index.html.py:35
msgid "Change"
msgstr "modifié par"
-#: .\templates\admin\index.html.py:64 .\templates\admin\page_index.html.py:45
+#: .\templates\admin\page_index.html.py:45
msgid "You don't have permission to edit anything."
msgstr "Vous n'aver pas l'autorisation d'éditer quoi que ce soit."
-#: .\templates\admin\index.html.py:72 .\templates\admin\page_index.html.py:53
+#: .\templates\admin\page_index.html.py:53
msgid "Recent Actions"
msgstr "Actions récentes"
-#: .\templates\admin\index.html.py:73 .\templates\admin\page_index.html.py:54
+#: .\templates\admin\page_index.html.py:54
msgid "My Actions"
msgstr "Mes actions"
-#: .\templates\admin\index.html.py:77 .\templates\admin\page_index.html.py:58
+#: .\templates\admin\page_index.html.py:58
msgid "None available"
msgstr "Aucune disponible"
-#: .\templates\admin\index.html.py:91 .\templates\admin\page_index.html.py:72
+#: .\templates\admin\page_index.html.py:72
msgid "Unknown content"
msgstr "Contenu inconnu"
-#: .\templates\admin\page_base.html.py:20
-#: .\templates\admin\page_index.html.py:11
-msgid "Pages"
-msgstr "Pages"
-
-#: .\templates\admin\page_base_site.html.py:7
-msgid "Django administration"
-msgstr "Administration de Django"
-
#: .\templates\admin\page_login.html.py:8
msgid "Connexion"
msgstr "Connexion"
@@ -754,9 +758,18 @@
msgstr "Plateforme Ldt"
#: .\templates\ldt\ldt_base.html.py:85
+msgid "link to admin"
+msgstr ""
+
+#: .\templates\ldt\ldt_base.html.py:85
msgid "Staff"
msgstr "admin"
+#: .\templates\ldt\ldt_base.html.py:88
+#, fuzzy
+msgid "profile change"
+msgstr "Modification de l'adresse émail"
+
#: .\templates\ldt\ldt_base.html.py:107
msgid "home"
msgstr "accueil"
@@ -781,12 +794,13 @@
msgstr "Mon profil"
#: .\templates\ldt\ldt_base.html.py:139
-msgid "web"
-msgstr "web v"
+msgid "version number"
+msgstr ""
#: .\templates\ldt\ldt_base.html.py:139
-msgid "platform"
-msgstr "platform v"
+#, python-format
+msgid " web %(WEB_VERSION)s | platform %(VERSION)s "
+msgstr "web v%(WEB_VERSION)s | platform v%(VERSION)s "
#: .\templates\ldt\ldt_raw_base.html.py:13
msgid "page_title"
@@ -848,123 +862,54 @@
msgid "Permissions"
msgstr "Permissions"
-#: .\user\admin.py:25 .\user\templates\ldt\user\login_form.html.py:61
+#: .\user\admin.py:25 .\user\templates\ldt\user\change_profile.html.py:95
+#: .\user\templates\ldt\user\login_form.html.py:61
msgid "Password"
msgstr "Mot de passe"
#: .\user\forms.py:28 .\user\templates\ldt\user\change_password.html.py:40
+#: .\user\templates\ldt\user\change_profile.html.py:108
msgid "New password"
msgstr "Nouveau mot de passe"
#: .\user\forms.py:30 .\user\templates\ldt\user\change_password.html.py:50
+#: .\user\templates\ldt\user\change_profile.html.py:121
msgid "New password confirmation"
msgstr "Confirmation du nouveau mot de passe"
-#: .\user\forms.py:59 .\user\forms.py:60 .\user\forms.py:100
-#: .\user\forms.py:101
+#: .\user\forms.py:59 .\user\forms.py:60
msgid "E-mail"
msgstr "E-mail"
-#: .\user\forms.py:71 .\user\forms.py:113
+#: .\user\forms.py:71
msgid "The two emails didn't match."
msgstr "les deux emails ne correspondent pas"
-#: .\user\forms.py:82 .\user\forms.py:98
-#, fuzzy
+#: .\user\forms.py:82
msgid "First name"
-msgstr "prénom :"
-
-#: .\user\forms.py:83 .\user\forms.py:99
-#, fuzzy
-msgid "Last name"
-msgstr "nom :"
-
-#: .\user\forms.py:102
-#, fuzzy
-msgid "Username"
-msgstr "Nom de utilisateur :"
-
-#: .\user\forms.py:119
-#, python-format
-msgid "username %s is already used."
-msgstr ""
-
-#: .\user\forms.py:125 .\user\forms.py:131
-msgid "Please use only letter, blanks, or dashes."
-msgstr ""
-
-#: .\user\views.py:38 .\user\templates\registration\login.html.py:24
-msgid "Sorry, that's not a valid username or password."
-msgstr "Saisissez un nom d'utilisateur et un mot de passe valide."
-
-#: .\user\templates\ldt\user\change_email.html.py:5
-#, fuzzy
-msgid "Modification de l'adresse émail"
-msgstr "Modification de l'adresse email"
+msgstr "Prénom"
-#: .\user\templates\ldt\user\change_email.html.py:24
-msgid ""
-"Please enter your new e-mail twice so we can verify you typed it in "
-"correctly."
-msgstr ""
-"Saisissez deux fois votre nouvelle adresse émail afin de vérifier qu'il est "
-"correctment"
-
-#: .\user\templates\ldt\user\change_email.html.py:24
-msgid "Your actual email address is"
-msgstr "Votre adresse émail est "
-
-#: .\user\templates\ldt\user\change_email.html.py:30
-#: .\user\templates\ldt\user\change_profile.html.py:87
-#, fuzzy
-msgid "email"
-msgstr "adresse émail"
+#: .\user\forms.py:83
+msgid "Last name"
+msgstr "Nom :"
-#: .\user\templates\ldt\user\change_email.html.py:39
-#: .\user\templates\ldt\user\change_profile.html.py:102
-#, fuzzy
-msgid "Confirmation de l'adresse émail"
-msgstr "Confirmation de l'adresse émail"
-
-#: .\user\templates\ldt\user\change_email.html.py:46
-msgid "change my e-mail"
-msgstr "Changer l'adresse émail"
-
-#: .\user\templates\ldt\user\change_email.html.py:50
-#, fuzzy
-msgid "Your new email address has been saved."
-msgstr "Votre mot de passe a été changeé."
-
-#: .\user\templates\ldt\user\change_language.html.py:5
-#: .\user\templates\ldt\user\user_change.html.py:76
-msgid "Language change"
-msgstr "Modification de la langue"
-
-#: .\user\templates\ldt\user\change_language.html.py:16
-msgid "Please change the language"
-msgstr "Veuillez changer la langue du site."
-
-#: .\user\templates\ldt\user\change_language.html.py:20
+#: .\user\forms.py:110 .\user\templates\ldt\user\change_profile.html.py:73
msgid "Language"
msgstr "Langue"
-#: .\user\templates\ldt\user\change_name.html.py:5
-#: .\user\templates\ldt\user\change_name.html.py:37
-msgid "Name change"
-msgstr "Modification du nom"
-
-#: .\user\templates\ldt\user\change_name.html.py:17
-msgid "Please change your name"
-msgstr "Changez votre nom ou votre prénom."
+#: .\user\views.py:30
+#, fuzzy
+msgid "Your profile has been updated."
+msgstr "Votre nom a été modifié"
-#: .\user\templates\ldt\user\change_name.html.py:23
-#: .\user\templates\ldt\user\change_profile.html.py:59
-msgid "first name"
-msgstr "prénom"
+#: .\user\views.py:52
+#, fuzzy
+msgid "Your password has been updated."
+msgstr "Votre mot de passe a été changeé."
-#: .\user\templates\ldt\user\change_name.html.py:41
-msgid "Your name has been modified"
-msgstr "Votre nom a été modifié"
+#: .\user\views.py:72 .\user\templates\registration\login.html.py:24
+msgid "Sorry, that's not a valid username or password."
+msgstr "Saisissez un nom d'utilisateur et un mot de passe valide."
#: .\user\templates\ldt\user\change_password.html.py:31
#, fuzzy
@@ -972,52 +917,35 @@
msgstr "Ancien mot de passe"
#: .\user\templates\ldt\user\change_password.html.py:44
-#, fuzzy
msgid "passwords don't match"
msgstr "Changement de mot de passe"
#: .\user\templates\ldt\user\change_password.html.py:57
-#: .\user\templates\ldt\user\user_change.html.py:75
+#: .\user\templates\ldt\user\change_profile.html.py:134
#: .\user\templates\registration\password_change_form.html.py:14
#: .\user\templates\registration\password_change_form.html.py:17
msgid "Password change"
msgstr "Modification du mot de passe"
#: .\user\templates\ldt\user\change_password.html.py:61
-#, fuzzy
msgid "Your new password has been saved."
msgstr "Votre mot de passe a été changeé."
-#: .\user\templates\ldt\user\change_profile.html.py:39
-#, fuzzy
-msgid "Your profile has been updated"
-msgstr "Votre nom a été modifié"
+#: .\user\templates\ldt\user\change_profile.html.py:33
+msgid "username"
+msgstr "Nom d'utilisateur"
-#: .\user\templates\ldt\user\change_profile.html.py:46
-#, fuzzy
-msgid "user name"
-msgstr "Nom de utilisateur :"
-
-#: .\user\templates\ldt\user\change_profile.html.py:63
-#: .\user\templates\ldt\user\change_profile.html.py:77
-msgid "Please use only letters, blanks or dashes"
-msgstr ""
+#: .\user\templates\ldt\user\change_profile.html.py:44
+msgid "first name"
+msgstr "Prénom"
-#: .\user\templates\ldt\user\change_profile.html.py:91
-#, fuzzy
-msgid "emails don't match"
-msgstr "les deux emails ne correspondent pas"
+#: .\user\templates\ldt\user\change_profile.html.py:60
+msgid "email"
+msgstr "Adresse émail"
-#: .\user\templates\ldt\user\change_profile.html.py:92
-#: .\user\templates\ldt\user\change_profile.html.py:106
-msgid "incorrect email"
-msgstr ""
-
-#: .\user\templates\ldt\user\change_profile.html.py:114
-#: .\user\templates\ldt\user\user_change.html.py:74
-#, fuzzy
+#: .\user\templates\ldt\user\change_profile.html.py:85
msgid "Profile change"
-msgstr "Modification de l'adresse émail"
+msgstr "Modification du profil"
#: .\user\templates\ldt\user\login_form.html.py:50
msgid "create account"
@@ -1246,38 +1174,26 @@
"Nous vous avons envoyé par courriel les instructions pour activer le compte "
"à l'adresse que vous avez indiquée. Vous devriez le recevoir rapidement."
-#~ msgid "Check all"
-#~ msgstr "Cocher tout"
-
-#~ msgid "Uncheck all"
-#~ msgstr "Décocher tout"
-
-#~ msgid "The language has been modified"
-#~ msgstr "La langue a été modifiée"
+#, fuzzy
+#~ msgid "log out"
+#~ msgstr "Déconnexion"
-#~ msgid "name:"
-#~ msgstr "nom :"
-
-#~ msgid "email change"
-#~ msgstr "Modification de l'adresse émail"
-
-#~ msgid "email changed"
-#~ msgstr "email modifié"
+#~ msgid ""
+#~ "Please enter your new e-mail twice so we can verify you typed it in "
+#~ "correctly."
+#~ msgstr ""
+#~ "Saisissez deux fois votre nouvelle adresse émail afin de vérifier qu'il "
+#~ "est correctment"
-#~ msgid "back to profile"
-#~ msgstr "Retourner à mon profil"
+#~ msgid "Your actual email address is"
+#~ msgstr "Votre adresse émail est "
-#~ msgid "Se connecter"
-#~ msgstr "Se connecter"
-
-#~ msgid "Créer un compte"
-#~ msgstr "Créer un compte"
+#~ msgid "change my e-mail"
+#~ msgstr "Changer l'adresse émail"
-#~ msgid "récupérer mot de passe"
-#~ msgstr "Récupérer le mot de passe"
+#, fuzzy
+#~ msgid "Your new email address has been saved."
+#~ msgstr "Votre mot de passe a été changeé."
-#~ msgid "Page"
-#~ msgstr "Pages"
-
-#~ msgid "Projets Lignes de temps"
-#~ msgstr "Projets Lignes de temps"
+#~ msgid "Please change the language"
+#~ msgstr "Veuillez changer la langue du site."
--- a/src/ldt/ldt/settings.py Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/settings.py Wed Sep 07 17:32:29 2011 +0200
@@ -42,6 +42,7 @@
'django.middleware.locale.LocaleMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django_openid_consumer.middleware.OpenIDMiddleware',
+ 'ldt.ldt_utils.middleware.userprofile.LanguageMiddleware',
)
@@ -76,4 +77,6 @@
AUTO_INDEX_AFTER_SAVE = getattr(settings, 'AUTO_INDEX_AFTER_SAVE', True)
-WEB_VERSION = getattr(settings, 'WEB_VERSION', '')
\ No newline at end of file
+WEB_VERSION = getattr(settings, 'WEB_VERSION', '')
+
+
--- a/src/ldt/ldt/static/ldt/css/workspace.css Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/static/ldt/css/workspace.css Wed Sep 07 17:32:29 2011 +0200
@@ -97,13 +97,15 @@
/* make the TH elements pretty */
-.projectscontentsheader {
+.projectscontentsheader {
background: #b5b5b5;
+ padding: 1px 2px;
+ text-align: left;
+}
+.projectcontentsheadertitle {
font-weight: bold;
text-transform:capitalize;
color: white;
- padding: 1px 2px;
- text-align: left;
}
.groupsheader {
text-transform:none;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/templates/admin/base_site.html Wed Sep 07 17:32:29 2011 +0200
@@ -0,0 +1,21 @@
+{% extends "admin/base.html" %}
+{% load i18n %}
+
+{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}
+
+{% block branding %}
+<h1 id="site-name">{% trans 'Django administration' %}</h1>
+{% endblock %}
+
+{% block nav-global %}
+ <style type="text/css">
+ .adminlink {
+ margin:0 10px 10px;
+ display:block;
+ float:left;
+ }
+ </style>
+
+ <a href="{% url admin:index %}" clas="adminlink">Admin home</a>
+ <a href="{% url root-view %}" class="adminlink">Website home</a>
+{% endblock %}
--- a/src/ldt/ldt/user/forms.py Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/user/forms.py Wed Sep 07 17:32:29 2011 +0200
@@ -1,12 +1,12 @@
from django import forms
-from django.contrib.auth.forms import UserCreationForm
+from django.conf import settings
+from django.contrib.auth.forms import UserCreationForm, UserChangeForm
+from django.contrib.auth.models import User
from django.forms.util import ErrorList
from django.utils.translation import gettext as _
+from ldt.user.models import get_or_create_profile
from models import Ldt
-from django.contrib.auth.models import User
-
-
class LdtForm(UserCreationForm):
@@ -94,55 +94,29 @@
return self.user
-class ProfileChangeForm(forms.Form):
- first_name = forms.CharField(label=_("First name"), max_length=30)
- last_name = forms.CharField(label=_("Last name"), max_length=30)
- email1 = forms.EmailField(label=_("E-mail"), max_length=75)
- email2 = forms.EmailField(label=_("E-mail"), max_length=75)
- username = forms.RegexField(label=_("Username"), max_length=30, regex=r'^[\w.@+-]+$')
+class ProfileForm(UserChangeForm):
+
+ def __init__(self, user=None, *args, **kwargs):
+ #self.user = user
+ super(ProfileForm, self).__init__(*args, **kwargs)
+
+
+ class Meta:
+ model = User
+ fields = ('username', 'email', 'first_name', 'last_name')
+
+
+class LanguageChangeForm(forms.Form):
+ language = forms.ChoiceField(label=_("Language"), choices=settings.LANGUAGES)
def __init__(self, user=None, *args, **kwargs):
self.user = user
- super(ProfileChangeForm, self).__init__(*args, **kwargs)
-
- def clean_email2(self):
- email1 = self.cleaned_data.get('email1')
- email2 = self.cleaned_data.get('email2')
- if email1 and email2:
- if email1 != email2:
- raise forms.ValidationError(_("The two emails didn't match."))
- return email2
-
- def clean_username(self):
- retrieved_username = '%s' % self.cleaned_data.get('username')
- if retrieved_username != self.user.username and (len(User.objects.filter(username=retrieved_username)) > 0):
- raise forms.ValidationError(_("username %s is already used." % retrieved_username))
- return retrieved_username
-
- def clean_first_name(self):
- first_name = self.cleaned_data.get('first_name')
- if not self.isValidName(first_name):
- raise forms.ValidationError(_("Please use only letter, blanks, or dashes."))
- return first_name
+ super(LanguageChangeForm, self).__init__(*args, **kwargs)
- def clean_last_name(self):
- last_name = self.cleaned_data.get('last_name')
- if not self.isValidName(last_name):
- raise forms.ValidationError(_("Please use only letter, blanks, or dashes."))
- return last_name
+ def save(self):
+ profile = get_or_create_profile(self.user)
+ profile.language = self.cleaned_data['language']
+ profile.save()
+ return self.user
- def isValidName(self, string):
- for i in string:
- if not i.isalpha() and not i in [' ','-']:
- return False
- return True
-
-
- def save(self):
- self.user.email = self.cleaned_data['email1']
- self.user.first_name = self.cleaned_data['first_name']
- self.user.last_name = self.cleaned_data['last_name']
- self.user.username = self.cleaned_data['username']
- self.user.save()
- return self.user
-
\ No newline at end of file
+
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/user/migrations/0003_auto__add_userprofile.py Wed Sep 07 17:32:29 2011 +0200
@@ -0,0 +1,75 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Adding model 'UserProfile'
+ db.create_table('user_userprofile', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)),
+ ('language', self.gf('django.db.models.fields.CharField')(default='fr', max_length=2)),
+ ))
+ db.send_create_signal('user', ['UserProfile'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'UserProfile'
+ db.delete_table('user_userprofile')
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'user.ldt': {
+ 'Meta': {'object_name': 'Ldt', '_ormbases': ['auth.User']},
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'user.userprofile': {
+ 'Meta': {'object_name': 'UserProfile'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language': ('django.db.models.fields.CharField', [], {'default': "'fr'", 'max_length': '2'}),
+ 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
+ }
+ }
+
+ complete_apps = ['user']
--- a/src/ldt/ldt/user/models.py Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/user/models.py Wed Sep 07 17:32:29 2011 +0200
@@ -1,7 +1,8 @@
from django.contrib import admin
+from django.db import models
+from django.conf import settings
from django.contrib.auth.models import User, UserManager
import datetime
-
class Ldt(User):
# irigroups = models.ManyToManyField(IriGroup, blank=True)
@@ -18,14 +19,30 @@
def create_user(self, username, email, password=None):
"Creates and saves a User with the given username, e-mail and password."
now = datetime.datetime.now()
- user = Ldt(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now)
+ new_user = Ldt(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now)
if password:
- user.set_password(password)
+ new_user.set_password(password)
else:
- user.set_unusable_password()
- user.save()
- return user
+ new_user.set_unusable_password()
+ new_user.save()
+ UserProfile.objects.create(user=new_user)
+ return new_user
+
+
+class UserProfile (models.Model):
+ user = models.OneToOneField(User)
+ language = models.CharField(max_length=2, default='fr')
+
+
+def get_or_create_profile(user):
+ try:
+ profile = user.get_profile()
+ except UserProfile.DoesNotExist:
+ profile = UserProfile(user=user)
+ profile.save()
+ return profile
+
User.objects = LdtManager()
User.objects.contribute_to_class(User, "objects")
--- a/src/ldt/ldt/user/templates/ldt/user/change_email.html Mon Sep 05 10:39:07 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-{% extends "ldt/user/user_base.html" %}
-{# form of email address's change #}
-{% load i18n %}
-
-{% block content_title %}{% trans "Modification de l'adresse émail" %}{% endblock %}
-{% block js_declaration %}{{ block.super }}
- <script type="text/javascript">
- $(document).ready(function() {
- $("#change_email").validate();
- });
- </script>
-{% endblock %}
-
-{% block css_import %}
-{{ block.super }}
- <style type="text/css">
- label.error { float: none; color: red; padding-left: .5em; vertical-align: middle; }
- </style>
-{% endblock %}
-
-{% block content %}
-{{ block.super }}
-{% if form %}
-<p>{% trans "Please enter your new e-mail twice so we can verify you typed it in correctly." %}. {% trans "Your actual email address is" %} : <b>{{ user.email }}</b>.</p>
-<form action="" method="POST" id="change_email">
-{% csrf_token %}
- <table>
- <tr>
- <td>
- <label for="id_email1">{% trans "email" %}</label>
- </td>
- <td>
- <input id="id_email1" type="text" maxlength="75" name="email1" class="required email"/>
- </td>
- <td>{{form.email1.errors}}</td>
- <tr>
- </tr>
- <td>
- <label for="id_email2">{% trans "Confirmation de l'adresse émail" %}</label>
- </td>
- <td>
- <input id="id_email2" type="text" maxlength="75" name="email2" class="required email"/>
- </td>
- <td>{{form.email1.errors}}</td>
- </tr>
- <tr><th></th><td><input type="submit" class="button" name="submit" value="{% trans 'change my e-mail' %}" /></td></tr>
- </table>
-</form>
-{% else %}
-<p>{% trans "Your new email address has been saved." %}</p>
-{% endif %}
-{% endblock%}
--- a/src/ldt/ldt/user/templates/ldt/user/change_language.html Mon Sep 05 10:39:07 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-{% extends "ldt/user/user_base.html" %}
-{# form of language's change #}
-{% load i18n %}
-
-{% block content_title %}{% trans "Language change" %} {% endblock %}
-
-{% block css_import %}
-{{ block.super }}
- <style type="text/css">
- label.error { float: none; color: red; padding-left: .5em; vertical-align: middle; }
- </style>
-{% endblock %}
-
-{% block content %}
-{{ block.super }}
-<p>{% trans "Please change the language" %}</p>
-<form action="{{ url_change_language }}" method="post">
- {% csrf_token %}
- <input name="next" type="hidden" value="" />
- <label >{% trans "Language" %} : </label>
- <select name="language" onchange="submit()">
- {% for lang in LANGUAGES %}
- <option value="{{ lang.0 }}"{% ifequal lang.0 LANGUAGE_CODE %} selected="selected"{% endifequal %}>{% trans lang.1 %}</option>
- {% endfor %}
- </select>
-</form>
-{% endblock%}
--- a/src/ldt/ldt/user/templates/ldt/user/change_name.html Mon Sep 05 10:39:07 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-{% extends "ldt/user/user_base.html" %}
-{# form of name's change #}
-{% load i18n %}
-
-{% block content_title %}{% trans "Name change" %} {% endblock %}
-
-{% block css_import %}
-{{ block.super }}
- <style type="text/css">
- label.error { float: none; color: red; padding-left: .5em; vertical-align: middle; }
- </style>
-{% endblock %}
-
-{% block content %}
-{{ block.super }}
-{% if form %}
-<p>{% trans "Please change your name" %}</p>
-<form action="" method="POST" id="change_name">
-{% csrf_token %}
- <table>
- <tr>
- <td>
- <label for="id_first_name">{% trans "first name" %}</label>
- </td>
- <td>
- <input id="id_first_name" type="text" maxlength="30" name="first_name" value="{{ user.first_name }}"/>
- </td>
- <tr>
- </tr>
- <td>
- <label for="id_last_name">{% trans "name" %}</label>
- </td>
- <td>
- <input id="id_last_name" type="text" maxlength="30" name="last_name" value="{{ user.last_name }}"/>
- </td>
- </tr>
- <tr><th></th><td><input type="submit" class="button" name="submit" value="{% trans "Name change" %}" /></td></tr>
- </table>
-</form>
-{% else %}
-<p>{% trans "Your name has been modified" %}</p>
-{% endif %}
-{% endblock%}
--- a/src/ldt/ldt/user/templates/ldt/user/change_profile.html Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/user/templates/ldt/user/change_profile.html Wed Sep 07 17:32:29 2011 +0200
@@ -1,67 +1,67 @@
-{% extends "ldt/user/user_change.html" %}
+{% extends "ldt/user/user_base.html" %}
{# form of password change #}
{% load i18n %}
{% block css_import %}
+ {{ block.super }}
+ <style type="text/css">
+
+ .leftcolumn {
+ width: 30%;
+ text-align: right;
+ }
+
+ #profile_forms input[type="text"], #profile_forms input[type="password"], select {
+ width: 250px;
+ }
+
+ </style>
+{% endblock %}
+{% block content %}
{{ block.super }}
-<script type="text/javascript">
- function isValidForm () {
- var display = display_error_if_different("#id_email1", "#id_email2", "#emailsdontmatch");
- var first_name = is_valid_name ("#id_first_name", "#firstnameincorrect");
- var last_name = is_valid_name ("#id_last_name", "#lastnameincorrect");
- var email1 = is_valid_email ("#id_email1", "#incorrectemail1");
- var email2 = is_valid_email ("#id_email2", "#incorrectemail2");
-
- return display && first_name && last_name && email1 && email2;
- }
-
- $(document).ready(function () {
- $(".responseerror").show();
-
- $("input").keyup(function () {
- if (isValidForm()) {
- $("input[type=submit]").removeAttr('disabled');
- } else {
- $("input[type=submit]").attr('disabled', 'disabled');
- }
- });
- });
-</script>
-
-{% endblock %}
-{% block content %}
-
-{{ block.super }}
-
-{% if not form %}
-{%trans "Your profile has been updated" %}
+<div id="profile_forms">
+{% if msg %}
+<div class="success" style="left:50%; text-align: center;">{{ msg }}</div>
{% endif %}
-<form method="post" action="">
+<form method="post" action="{% url ldt.user.views.profile %}">
{% csrf_token %}
<table>
<tr>
<td class="leftcolumn">
- <label for="id_username">{% trans "user name" %}</label>
+ <label for="id_username">{% trans "Username" %}</label>
</td>
<td>
<input id="id_username" type="text" maxlength="30" name="username" value="{{ user.username }}"/>
- {% for error in form.username.errors %}
- <span class="error responseerror">
- {{ error }}
- </span>
- {% endfor %}
+ {% for error in profile_form.errors.username %}
+ <span class="error">{{ error}}</span>
+ {% endfor %}
</td>
</tr>
<tr>
<td class="leftcolumn">
- <label for="id_first_name">{% trans "first name" %}</label>
+ <label for="id_first_name">{% trans "First name" %}</label>
</td>
<td>
<input id="id_first_name" type="text" maxlength="30" name="first_name" value="{{ user.first_name }}"/>
- <span id="firstnameincorrect" class="error">{% trans "Please use only letters, blanks or dashes" %}</span>
- {% for error in form.first_name.errors %}
+ </td>
+ </tr>
+ <tr>
+ <td class="leftcolumn">
+ <label for="id_last_name">{% trans "Name" %}</label>
+ </td>
+ <td>
+ <input id="id_last_name" type="text" maxlength="30" name="last_name" value="{{ user.last_name }}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="leftcolumn">
+ <label for="id_email">{% trans "Email" %}</label>
+ </td>
+ <td>
+ <input id="id_email" type="text" maxlength="75" name="email" class="required email" value="{{ user.email }}"/>
+ {% for error in profile_form.email.errors %}
<span class="error">
{{ error }}
</span>
@@ -69,52 +69,75 @@
</td>
</tr>
<tr>
- <td class="leftcolumn">
- <label for="id_last_name">{% trans "name" %}</label>
- </td>
- <td>
- <input id="id_last_name" type="text" maxlength="30" name="last_name" value="{{ user.last_name }}"/>
- <span id="lastnameincorrect" class="error">{% trans "Please use only letters, blanks or dashes" %}</span>
- {% for error in form.last_name.errors %}
+ <td class="leftcolumn">
+ <label>{% trans "Language" %}</label>
+ </td>
+ <td>
+ <select name="language" >
+ {% for lang in LANGUAGES %}
+ <option value="{{ lang.0 }}"{% ifequal lang.0 user_language %} selected="selected" {% endifequal %}>{% trans lang.1 %}</option>
+ {% endfor %}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input type="submit" name="submit_profile" value="{% trans "Profile change" %}" /></td>
+ </tr>
+ </table>
+</form>
+
+<form method="post" action="{% url ldt.user.views.password %}">
+{% csrf_token %}
+<table>
+ <tr>
+ <td class="leftcolumn">
+ <label for="id_old_password">{% trans "Password" %}</label>
+ </td>
+ <td>
+ <input type="password" name="old_password" id="id_old_password" />
+ {% for error in password_form.old_password.errors %}
<span class="error">
{{ error }}
</span>
{% endfor %}
- </td>
- </tr>
- <tr>
- <td class="leftcolumn">
- <label for="id_email1">{% trans "email" %}</label>
- </td>
- <td>
- <input id="id_email1" type="text" maxlength="75" name="email1" class="required email" value="{{ user.email }}"/>
- <span id="emailsdontmatch" class="error">{% trans "emails don't match" %}</span>
- <span id="incorrectemail1" class="error">{% trans "incorrect email" %}</span>
- {% for error in form.email1.errors %}
+ </td>
+ </tr>
+ <tr>
+ <td class="leftcolumn">
+ <label for="id_new_password1">{% trans "New password" %}</label>
+ </td>
+ <td>
+ <input type="password" name="new_password1" id="id_new_password1" />
+ {% for error in password_form.new_password1.errors %}
<span class="error">
{{ error }}
</span>
{% endfor %}
- </td>
- </tr>
- <tr>
- <td class="leftcolumn">
- <label for="id_email2">{% trans "Confirmation de l'adresse émail" %}</label>
- </td>
- <td>
- <input id="id_email2" type="text" maxlength="75" name="email2" class="required email" value="{{ user.email }}"/>
- <span id="incorrectemail2" class="error">{% trans "incorrect email" %}</span>
- {% for error in form.email2.errors %}
+ </td>
+ </tr>
+ <tr>
+ <td class="leftcolumn">
+ <label for="id_new_password2">{% trans "New password confirmation" %}</label>
+ </td>
+ <td>
+ <input type="password" name="new_password2" id="id_new_password2" />
+ {% for error in password_form.new_password2.errors %}
<span class="error">
{{ error }}
</span>
{% endfor %}
- </td>
- </tr>
- <tr><td></td><td><input type="submit" name="submit_profile" value="{% trans "Profile change" %}" /></td></tr>
-
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input type="submit" name="submit_password" value="{% trans "Password change" %}" /></td>
+ </tr>
</table>
</form>
+</div>
+
{% endblock%}
+
--- a/src/ldt/ldt/user/templates/ldt/user/user_base.html Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/user/templates/ldt/user/user_base.html Wed Sep 07 17:32:29 2011 +0200
@@ -4,8 +4,8 @@
{% load i18n %}
{% block css_import %}
-{{ block.super }}
-
+ {{ block.super }}
+ <link rel="stylesheet" href="/pf/static/site/ldt//css/workspace.css" type="text/css"/>
{% endblock %}
--- a/src/ldt/ldt/user/templates/ldt/user/user_change.html Mon Sep 05 10:39:07 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-{% extends "ldt/ldt_base.html" %}
-{# this page inherit base html, all pages of ldt inherit this page. #}
-{# all contents are writed in the "iricontent" block #}
-{% load i18n %}
-
-{% block css_import %}
-{{ block.super }}
-
- <style type="text/css">
-
- .error {
- display: none;
- }
-
- .leftcolumn {
- width: 40%;
- text-align: right;
- }
-
- input {
- border-radius: 3px;
- }
-
- </style>
-
-<script type="text/javascript">
-
- function check_valid_email(email) {
- var reg = /[A-Z0-9._+]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i;
- return (reg.exec(email) != null);
- }
-
- function check_valid_name(name) {
- var reg = /^[ \w\-éàçèôöü]*$/i;
- return (reg.exec(name) != null);
- }
-
- function display_error_if_different (input1, input2, errorClass) {
- if ( $(input1).val() != $(input2).val() ) {
- $(errorClass).show();
- return false;
- } else {
- $(errorClass).hide();
- return true;
- }
- }
-
- function is_valid_name (input, errorClass) {
- if ( !check_valid_name($(input).val()) ) {
- $(errorClass).show();
- return false;
- } else {
- $(errorClass).hide();
- return true;
- }
- }
-
- function is_valid_email (input, errorClass) {
- if ( !check_valid_email($(input).val()) ) {
- $(errorClass).show();
- return false;
- } else {
- $(errorClass).hide();
- return true;
- }
- }
-</script>
-{% endblock %}
-
-
-{% block content %}
-
-<ul>
- <li><a href="{% url ldt.user.views.profile %}" >{% trans "Profile change" %} </a></li>
- <li><a href="{% url ldt.user.views.password %}">{% trans "Password change" %}</a></li>
- <li><a href="{% url ldt.user.views.language %}">{% trans "Language change" %}</a></li>
-</ul>
-
-
-<div id="iri-user-content" class="span-24 last">
- {% block iricontent %}{% endblock %}
-</div>
-{% endblock%}
--- a/src/ldt/ldt/user/urls.py Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/user/urls.py Wed Sep 07 17:32:29 2011 +0200
@@ -3,7 +3,6 @@
urlpatterns = patterns('',
url(r'^loginAjax/$', 'ldt.user.views.login_ajax'),
url(r'^profile/$', 'ldt.user.views.profile'),
- url(r'^language/$', 'ldt.user.views.language'),
url(r'^password/$', 'ldt.user.views.password'),
url(r'^logout/', 'ldt.user.views.logout_view'),
# url(r'^space/ldt/$', 'ldt.ldt_utils.views.list_ldt'),
--- a/src/ldt/ldt/user/views.py Mon Sep 05 10:39:07 2011 +0200
+++ b/src/ldt/ldt/user/views.py Wed Sep 07 17:32:29 2011 +0200
@@ -1,29 +1,65 @@
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import PasswordChangeForm
-from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext, loader
from django.utils import simplejson
from django.utils.translation import ugettext as _
-from forms import ProfileChangeForm
-
+from forms import ProfileForm, LanguageChangeForm
+from ldt.user.models import get_or_create_profile
+from django.views.i18n import set_language
@login_required
def profile(request):
+ msg = ''
+ user_language = get_or_create_profile(request.user).language
+
if request.method == "POST":
- form = ProfileChangeForm(request.user, request.POST)
-
- if form.is_valid():
- form.save()
- form = None
+ profile_form = ProfileForm(request.user, request.POST, instance=request.user)
+ language_form = LanguageChangeForm(request.user, request.POST)
+ password_form = PasswordChangeForm(request.user)
+
+ #assert False, "before : %s " % request.user.username
+
+ if profile_form.is_valid() and language_form.is_valid():
+ profile_form.save()
+ language_form.save()
+ set_language(request)
+ msg = _("Your profile has been updated.")
+ user_language = get_or_create_profile(request.user).language
+
+
+ #assert False, "after: %s " % request.user.username
+
else:
- form = ProfileChangeForm()
- return render_to_response('ldt/user/change_profile.html', {'form' : form }, context_instance=RequestContext(request))
+ language_form = LanguageChangeForm()
+ profile_form = ProfileForm(instance=request.user)
+ password_form = PasswordChangeForm(request.user)
+ return render_to_response('ldt/user/change_profile.html', {'profile_form' : profile_form, 'language_form' : language_form, 'password_form' : password_form, 'user_language' : user_language, 'msg' : msg }, context_instance=RequestContext(request))
+@login_required
+def password(request):
+ msg = ''
+ user_language = get_or_create_profile(request.user).language
+
+ if request.method == "POST":
+ password_form = PasswordChangeForm(request.user, request.POST)
+ profile_form = ProfileForm(instance=request.user)
+ language_form = LanguageChangeForm()
+ if password_form.is_valid():
+ password_form.save()
+ msg = _("Your password has been updated.")
+
+ else:
+ language_form = LanguageChangeForm()
+ profile_form = ProfileForm()
+ password_form = PasswordChangeForm(request.user)
+ return render_to_response('ldt/user/change_profile.html', {'profile_form' : profile_form, 'language_form' : language_form, 'password_form' : password_form, 'user_language' : user_language, 'msg' : msg }, context_instance=RequestContext(request))
+
+
def logout_view(request):
logout(request)
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
@@ -50,18 +86,3 @@
return render_to_response('ldt/user/login_ajax.html', context_instance=RequestContext(request))
-@login_required
-def password(request):
- if request.method == "POST":
- form = PasswordChangeForm(request.user, request.POST)
- if form.is_valid():
- form.save()
- form = None
- else:
- form = PasswordChangeForm(request.user)
- return render_to_response('ldt/user/change_password.html', {'form': form, }, context_instance=RequestContext(request))
-
-
-@login_required
-def language(request):
- return render_to_response('ldt/user/change_language.html', { 'url_change_language' : reverse('django.views.i18n.set_language')}, context_instance=RequestContext(request))
--- a/web/ldtplatform/settings.py Mon Sep 05 10:39:07 2011 +0200
+++ b/web/ldtplatform/settings.py Wed Sep 07 17:32:29 2011 +0200
@@ -87,6 +87,7 @@
'django.middleware.locale.LocaleMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django_openid_consumer.middleware.OpenIDMiddleware',
+ 'ldt.ldt_utils.middleware.userprofile.LanguageMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
@@ -96,7 +97,7 @@
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
- "ldt.utils.context_processors.ldtcontext",
+ "ldt.utils.context_processors.ldt_context",
)
@@ -107,9 +108,9 @@
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
- os.path.join(os.path.basename(__file__), 'templates'),
+ os.path.join(os.path.basename(__file__), 'templates'),
)
-
+
FIXTURES_DIRS = (
os.path.join(os.path.basename(__file__), 'fixtures'),
)
@@ -139,6 +140,8 @@
'south',
)
+AUTH_PROFILE_MODULE = 'user.UserProfile'
+
DECOUPAGE_BLACKLIST = (
"de_PPP",
)