Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'master' into django1.5

Conflicts:
	userena/models.py
  • Loading branch information...
commit d120ebe6df149528af0aa687236af8281c784e57 2 parents 3e45d26 + 6c4a674
@Aramgutang Aramgutang authored
Showing with 842 additions and 342 deletions.
  1. +3 −3 .gitignore
  2. +4 −0 demo/demo/settings.py
  3. +1 −1  docs/conf.py
  4. +2 −2 docs/installation.rst
  5. +22 −0 docs/settings.rst
  6. +3 −3 run_tests
  7. +1 −1  setup.py
  8. +0 −30 tests.py
  9. +4 −4 userena/contrib/umessages/fixtures/messages.json
  10. +7 −7 userena/fixtures/users.json
  11. BIN  userena/locale/bg/LC_MESSAGES/django.mo
  12. BIN  userena/locale/el/LC_MESSAGES/django.mo
  13. BIN  userena/locale/fr/LC_MESSAGES/django.mo
  14. BIN  userena/locale/it/LC_MESSAGES/django.mo
  15. +495 −103 userena/locale/it/LC_MESSAGES/django.po
  16. BIN  userena/locale/pt/LC_MESSAGES/django.mo
  17. BIN  userena/locale/pt_BR/LC_MESSAGES/django.mo
  18. +209 −162 userena/locale/pt_BR/LC_MESSAGES/django.po
  19. BIN  userena/locale/ru/LC_MESSAGES/django.mo
  20. +1 −1  userena/locale/ru/LC_MESSAGES/django.po
  21. BIN  userena/locale/tr/LC_MESSAGES/django.mo
  22. +8 −10 userena/models.py
  23. +7 −0 userena/settings.py
  24. +1 −1  userena/tests/forms.py
  25. +1 −1  userena/tests/models.py
  26. +53 −0 userena/tests/views.py
  27. +9 −9 userena/urls.py
  28. +11 −4 userena/views.py
View
6 .gitignore
@@ -25,9 +25,9 @@ pip-log.txt
.coverage
# Demo project
-demo_project/demo_project.db
-demo_project/settings_production.py
-demo_project/media/admin
+demo/demo_project.db
+demo/settings_production.py
+demo/media/admin
# Compiled
*.pyc
View
4 demo/demo/settings.py
@@ -82,6 +82,7 @@
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
+ 'django.middleware.locale.LocaleMiddleware',
'userena.middleware.UserenaLocaleMiddleware',
)
@@ -149,3 +150,6 @@
# Needed for Django guardian
ANONYMOUS_USER_ID = -1
+
+# Test runner
+TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner'
View
2  docs/conf.py
@@ -17,7 +17,7 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.append(os.path.abspath('..'))
-os.environ['DJANGO_SETTINGS_MODULE'] = 'demo_project.settings'
+os.environ['DJANGO_SETTINGS_MODULE'] = 'demo.settings'
userena = __import__('userena')
# -- General configuration -----------------------------------------------------
View
4 docs/installation.rst
@@ -171,7 +171,7 @@ must also connect itself to the :class:`User` model of Django.
max_length=5)
If you want the user have the ability to choose their default language in their
-profile, you must add ``UserenaLocaleMiddleware`` at the end of
+profile, you must add ``userena.middleware.UserenaLocaleMiddleware`` at the end of
``MIDDLEWARE_CLASSES`` in your Django settings. This does require a profile
model which has a language field. You can use the
``UserenaLanguageBaseProfile`` class of userena that does this for you.
@@ -207,7 +207,7 @@ For example, add the following into your settings.py file:
ANONYMOUS_USER_ID = -1
- AUTH_PROFILE_MODULE = accounts.MyProfile
+ AUTH_PROFILE_MODULE = 'accounts.MyProfile'
To integrate Django with userena you should alter the following three settings
to reflect the URI you have chosen for userena. For example, if userena lives
View
22 docs/settings.rst
@@ -10,6 +10,21 @@ Userena.
Userena settings
----------------
+USERENA_SIGNIN_AFTER_SIGNUP
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Default ``False`` (integer)
+
+Boolean that defines if a user should be logged in after a successful sign up.
+
+If True, USERENA_ACTIVATION_REQUIRED must be False for the sign-in to happen.
+
+Note that USERENA_SIGNIN_REDIRECT_URL will not be respected for the automatic sign-in.
+The user will be redirect to the value of 'success_url' in userena.views.signup.
+
+You can override 'success_url' in your urls.py. See the "How do I add extra fields to forms?"
+example in the FAQ, where the 'signup_form' variable is overridden.
+
+
USERENA_SIGNIN_REDIRECT_URL
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Default ``/accounts/%(username)s/'`` (string)
@@ -168,6 +183,13 @@ Default: ``userena/profile_detail.html`` (string)
Template to use for rendering user profiles. This allows you to specify a
template in your own project which extends ``userena/profile_detail.html``.
+USERENA_PROFILE_LIST_TEMPLATE
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Default: ``userena/profile_list.html`` (string)
+
+Template to use for rendering users list. This allows you to specify a
+template in your own project which extends ``userena/profile_list.html``.
+
USERENA_DISABLE_PROFILE_LIST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Default: ``False`` (boolean)
View
6 run_tests
@@ -4,15 +4,15 @@
case $1 in
userena ) echo -e "\033[1mRunning tests for userena.\033[0m"
- cmd="coverage run setup.py test"
+ cmd="coverage run demo/manage.py test userena"
report_cmd="coverage report -m userena/*.py userena/management/commands/*.py"
;;
umessages ) echo -e "\033[1mRunning tests for umessages.\033[0m"
- cmd="coverage run setup.py test"
+ cmd="coverage run demo/manage.py test umessages"
report_cmd="coverage report -m userena/contrib/umessages/*.py"
;;
* ) echo -e "\033[1mRunning all tests.\033[0m"
- cmd="coverage run setup.py test"
+ cmd="coverage run demo/manage.py test userena umessages"
report_cmd="coverage report -m userena/*.py userena/management/commands/*py userena/contrib/umessages/*.py"
esac
View
2  setup.py
@@ -20,7 +20,7 @@
author_email='petar@wunki.org',
url='https://github.com/bread-and-pepper/django-userena/',
download_url='https://github.com/bread-and-pepper/django-userena/downloads',
- packages = find_packages(exclude=['demo_project', 'demo_project.*']),
+ packages = find_packages(exclude=['demo', 'demo.*']),
include_package_data=True,
install_requires = [
'Django>=1.3.1',
View
30 tests.py
@@ -1,30 +0,0 @@
-"""
-python setup.py test
-
-"""
-import os
-import sys
-
-os.environ["DJANGO_SETTINGS_MODULE"] = 'demo_project.settings'
-from demo_project import settings
-
-settings.INSTALLED_APPS = (
- 'django.contrib.auth',
- 'django.contrib.sessions',
- 'django.contrib.contenttypes',
- 'django.contrib.admin',
- 'django.contrib.sites',
- 'demo_project.profiles',
- 'guardian',
- 'userena',
- 'userena.contrib.umessages',
-)
-
-def main():
- from django.test.utils import get_runner
- test_runner = get_runner(settings)(interactive=False)
- failures = test_runner.run_tests(['userena', 'umessages',])
- sys.exit(failures)
-
-if __name__ == '__main__':
- main()
View
8 userena/contrib/umessages/fixtures/messages.json
@@ -5,7 +5,7 @@
"fields": {
"body": "Hello from your friend",
"sender_deleted_at": null,
- "sent_at": "2010-01-01 12:00:00",
+ "sent_at": "2010-01-01T12:00:00.019Z",
"sender": 1
}
},
@@ -14,8 +14,8 @@
"model": "umessages.message",
"fields": {
"body": "Hello from your mother",
- "sender_deleted_at": "2010-01-01 12:00:00",
- "sent_at": "2010-01-01 12:00:00",
+ "sender_deleted_at": "2010-01-01T12:00:00.019Z",
+ "sent_at": "2010-01-01T12:00:00.019Z",
"sender": 2
}
},
@@ -34,7 +34,7 @@
"model": "umessages.messagerecipient",
"fields": {
"message": 2,
- "read_at": "2010-01-01 12:00:00",
+ "read_at": "2010-01-01T12:00:00.019Z",
"deleted_at": null,
"user": 1
}
View
14 userena/fixtures/users.json
@@ -6,12 +6,12 @@
"is_active": true,
"is_superuser": true,
"is_staff": true,
- "last_login": "2010-08-18 03:07:03",
+ "last_login": "2010-08-18T03:07:03.019Z",
"groups": [],
"user_permissions": [],
"password": "sha1$645fd$8d18b38b96f72363bc9438bc1d340081b87e0fbe",
"email": "john@example.com",
- "date_joined": "2010-08-17 10:31:55"}},
+ "date_joined": "2010-08-17T10:31:55.019Z"}},
{"pk": 2,
"model": "auth.user",
"fields": {"username": "jane",
@@ -20,12 +20,12 @@
"is_active": true,
"is_superuser": false,
"is_staff": false,
- "last_login": "2010-08-18 03:15:19",
+ "last_login": "2010-08-18T03:15:19.019Z",
"groups": [],
"user_permissions": [],
"password": "sha1$645fd$8d18b38b96f72363bc9438bc1d340081b87e0fbe",
"email": "jane@example.com",
- "date_joined": "2010-08-18 03:13:57"}},
+ "date_joined": "2010-08-18T03:13:57.019Z"}},
{"pk": 3,
"model": "auth.user",
"fields": {"username": "arie",
@@ -34,18 +34,18 @@
"is_active": true,
"is_superuser": false,
"is_staff": false,
- "last_login": "2010-08-18 00:00:00",
+ "last_login": "2010-08-18T00:00:00.019Z",
"groups": [],
"user_permissions": [],
"password": "sha1$645fd$8d18b38b96f72363bc9438bc1d340081b87e0fbe",
"email": "arie@example.com",
- "date_joined": "2010-01-01 00:00:00"}},
+ "date_joined": "2010-01-01T00:00:00.019Z"}},
{"pk": 1,
"model": "userena.userenasignup",
"fields": {"user": 1,
"activation_key": "ALREADY_ACTIVATED",
- "last_active": "2010-08-17 21:32:03",
+ "last_active": "2010-08-17T13:37:03.019Z",
"activation_notification_send": false}},
{"pk": 2,
"model": "userena.userenasignup",
View
BIN  userena/locale/bg/LC_MESSAGES/django.mo
Binary file not shown
View
BIN  userena/locale/el/LC_MESSAGES/django.mo
Binary file not shown
View
BIN  userena/locale/fr/LC_MESSAGES/django.mo
Binary file not shown
View
BIN  userena/locale/it/LC_MESSAGES/django.mo
Binary file not shown
View
598 userena/locale/it/LC_MESSAGES/django.po
@@ -1,13 +1,13 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
-# Iacopo Spalletti <i.spalletti@nephila.it>, 2012.
+# Iacopo Spalletti <i.spalletti@nephila.it>, 2012, 2013.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-07-27 14:42+0200\n"
-"PO-Revision-Date: 2012-07-30 12:59+0200\n"
+"POT-Creation-Date: 2013-01-03 14:41+0100\n"
+"PO-Revision-Date: 2013-01-03 14:53+0100\n"
"Last-Translator: Iacopo Spalletti <i.spalletti@nephila.it>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
@@ -15,70 +15,380 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Lokalize 1.4\n"
+"Language-Team: Italian <web@nephila.it>\n"
-#: cms_app.py:7
-msgid "Hogrefe Accounts"
-msgstr "Hogrefe Accounts"
+#: forms.py:32
+msgid "Username"
+msgstr "Username"
-#: cms_plugins.py:8
-msgid "Login"
-msgstr "Login"
+#: forms.py:33
+msgid "Username must contain only letters, numbers, dots and underscores."
+msgstr "Il nome utente deve contenere solo lettere, numeri punti e lineette."
-#: forms.py:13
+#: forms.py:36 forms.py:163 templates/userena/profile_detail.html:35
+msgid "Email"
+msgstr "Email"
+
+#: forms.py:39
+msgid "Create password"
+msgstr "Crea password"
+
+#: forms.py:42
+msgid "Repeat password"
+msgstr "Ripeti password"
+
+#: forms.py:57
+msgid ""
+"This username is already taken but not confirmed. Please check you email for "
+"verification steps."
+msgstr ""
+"Questo username è già stato usato ma non confermato. Controlla la tua email\n"
+"per messaggi di verifica."
+
+#: forms.py:58
+msgid "This username is already taken."
+msgstr "Questo username è già stato usato."
+
+#: forms.py:60
+msgid "This username is not allowed."
+msgstr "Questo username non è permesso."
+
+#: forms.py:67
+msgid ""
+"This email is already in use but not confirmed. Please check you email for "
+"verification steps."
+msgstr ""
+"Questo indirizzo email è già stato usato ma non confermato. Controlla la tua "
+"email\n"
+"per messaggi di verifica."
+
+#: forms.py:68 forms.py:205
+msgid "This email is already in use. Please supply a different email."
+msgstr "Questa email è già usata. Inserisci un indirizzo diverso."
+
+#: forms.py:80
+msgid "The two password fields didn't match."
+msgstr "I due campi password non coincidono."
+
+#: forms.py:124
+msgid "I have read and agree to the Terms of Service"
+msgstr "Ho letto e accetto le condizioni di servizio."
+
+#: forms.py:125
+msgid "You must agree to the terms to register."
+msgstr "E' necessario accettare le condizioni di servizio per registrarsi."
+
+#: forms.py:141
+#, python-format
+msgid "%(error)s"
+msgstr "%(error)s"
+
+#: forms.py:148
+msgid "Email or username"
+msgstr "Email o username"
+
+#: forms.py:149
+msgid "Either supply us with your email or username."
+msgstr "Inserisci il tuo indirizzo email o username."
+
+#: forms.py:150
+msgid "Password"
+msgstr "Password"
+
+#: forms.py:154 forms.py:161
+#, python-format
+msgid "Remember me for %(days)s"
+msgstr "Ricordami per %(days)s"
+
+#: forms.py:164
+msgid "Please supply your email."
+msgstr "Inserisci la tua email."
+
+#: forms.py:179
+msgid ""
+"Please enter a correct username or email and password. Note that both fields "
+"are case-sensitive."
+msgstr ""
+"Inserisci uno username o email e password corretti. Entrambi i campi sono\n"
+"sensibili alle maiuscole."
+
+#: forms.py:185 templates/userena/email_confirm_complete.html:6
+msgid "New email"
+msgstr "Nuova email"
+
+#: forms.py:203
+msgid "You're already known under this email."
+msgstr "Questa è già la tua email."
+
+#: forms.py:219
msgid "First name"
msgstr "Nome"
-#: forms.py:15
+#: forms.py:222
msgid "Last name"
msgstr "Cognome"
-#: forms.py:66
-msgid "Consenso obbligatorio"
-msgstr "Consenso obbligatorio"
+#: managers.py:224
+#, python-format
+msgid "No profile found for %(username)s"
+msgstr "Nessun profilo trovato per %(username)s"
-#: models.py:43
+#: models.py:51 tests/profiles/models.py:18 tests/profiles/models.py:32
msgid "user"
msgstr "utente"
-#: models.py:49 templates/userena/profile_form.html:44
-msgid "Consenso trattamento"
-msgstr "Consenso trattamento"
+#: models.py:54
+msgid "last active"
+msgstr "ultimo accesso"
-#: models.py:52
-msgid "Ragione sociale"
-msgstr "Ragione sociale"
+#: models.py:57
+msgid "The last date that the user was active."
+msgstr "Data dell'ultimo accesso."
-#: models.py:54
-msgid "P.IVA."
-msgstr "P.IVA."
+#: models.py:59
+msgid "activation key"
+msgstr "Chiave di attivazione"
+
+#: models.py:63
+msgid "notification send"
+msgstr "notifica inviata"
+
+#: models.py:65
+msgid ""
+"Designates whether this user has already got a notification about activating "
+"their account."
+msgstr ""
+"Indica se l'utente ha già ricevuto una notifica sull'attivazione dell'account."
+
+#: models.py:67
+msgid "unconfirmed email address"
+msgstr "indirizzo email non confermato"
+
+#: models.py:69
+msgid "Temporary email address when the user requests an email change."
+msgstr ""
+"Indirizzo email temporaneo quando l'utente richiede un cambio di indirizzo."
+
+#: models.py:71
+msgid "unconfirmed email verification key"
+msgstr "chiave di verifica dell'indirizzo email non confermato"
+
+#: models.py:75
+msgid "creation date of email confirmation key"
+msgstr "data di creazione della chiave di verifica"
+
+#: models.py:82
+msgid "userena registration"
+msgstr "registrazione"
+
+#: models.py:83
+msgid "userena registrations"
+msgstr "registrazioni"
+
+#: models.py:207
+msgid "Open"
+msgstr "Aperto"
+
+#: models.py:208
+msgid "Registered"
+msgstr "Registrati"
+
+#: models.py:209
+msgid "Closed"
+msgstr "Privato"
+
+#: models.py:216
+msgid "mugshot"
+msgstr "mugshot"
+
+#: models.py:220
+msgid "A personal image displayed in your profile."
+msgstr "Un'immagine personale inserita nel profilo."
+
+#: models.py:222
+msgid "privacy"
+msgstr "privacy"
+
+#: models.py:226
+msgid "Designates who can view your profile."
+msgstr "Indica chi può vedere il tuo profilo."
+
+#: models.py:305
+#, python-format
+msgid "%(first_name)s %(last_name)s"
+msgstr "%(first_name)s %(last_name)s"
+
+#: models.py:369
+msgid "language"
+msgstr "lingua"
+
+#: settings.py:39
+msgid "a month"
+msgstr "un mese"
+
+#: views.py:183
+msgid "Your account has been activated and you have been signed in."
+msgstr "L'account è stato attivato e hai effettuato l'accesso."
+
+#: views.py:230
+msgid "Your email address has been changed."
+msgstr "Il tuo indirizzo email è stato modificato."
+
+#: views.py:341
+msgid "You have been signed in."
+msgstr "Sei connesso."
+
+#: views.py:377
+msgid "You have been signed out."
+msgstr "Ora sei disconnesso."
+
+#: views.py:575
+msgid "Your profile has been updated."
+msgstr "Il tuo profilo è stato aggiornato."
+
+#: views.py:620
+msgid "You don't have permission to view this profile."
+msgstr "Non hai i permessi per vedere questo profilo."
+
+#: contrib/umessages/admin.py:25
+msgid "Date/time"
+msgstr "Data/Ora"
+
+#: contrib/umessages/fields.py:56
+#, python-format
+msgid "The following usernames are incorrect: %(users)s."
+msgstr "Gli username seguenti sono errati: %(users)s."
+
+#: contrib/umessages/forms.py:10
+msgid "To"
+msgstr "A"
+
+#: contrib/umessages/forms.py:11
+msgid "Message"
+msgstr "Messaggio"
+
+#: contrib/umessages/models.py:17
+msgid "from user"
+msgstr "dall'utente"
+
+#: contrib/umessages/models.py:20
+msgid "to user"
+msgstr "all'utente"
+
+#: contrib/umessages/models.py:24
+msgid "latest message"
+msgstr "ultimo messaggio"
+
+#: contrib/umessages/models.py:31
+msgid "contact"
+msgstr "contatto"
+
+#: contrib/umessages/models.py:32
+msgid "contacts"
+msgstr "contatti"
+
+#: contrib/umessages/models.py:35
+#, python-format
+msgid "%(from_user)s and %(to_user)s"
+msgstr "%(from_user)s e %(to_user)s"
+
+#: contrib/umessages/models.py:61 contrib/umessages/models.py:77
+msgid "recipient"
+msgstr "destinatario"
-#: models.py:55
-msgid "C.F."
-msgstr "C.F."
+#: contrib/umessages/models.py:64 contrib/umessages/models.py:112
+msgid "message"
+msgstr "messaggio"
-#: models.py:58 models.py:74
-msgid "Indirizzo 1"
-msgstr "Indirizzo 1"
+#: contrib/umessages/models.py:66
+msgid "read at"
+msgstr "letto il"
-#: models.py:60 models.py:76
-msgid "Indirizzo 2"
-msgstr "Indirizzo 2"
+#: contrib/umessages/models.py:70
+msgid "recipient deleted at"
+msgstr "cancellato dal destinatario il"
-#: models.py:62 models.py:78
-msgid "Città"
-msgstr "Città"
+#: contrib/umessages/models.py:78 contrib/umessages/models.py:99
+msgid "recipients"
+msgstr "destinatari"
-#: models.py:64 models.py:80
-msgid "Provincia"
-msgstr "Provincia"
+#: contrib/umessages/models.py:81
+#, python-format
+msgid "%(message)s"
+msgstr "%(message)s"
+
+#: contrib/umessages/models.py:90
+msgid "body"
+msgstr "contenuto"
+
+#: contrib/umessages/models.py:94
+msgid "sender"
+msgstr "mittente"
+
+#: contrib/umessages/models.py:101
+msgid "sent at"
+msgstr "inviato il"
+
+#: contrib/umessages/models.py:104
+msgid "sender deleted at"
+msgstr "cancellato dal mittente il"
+
+#: contrib/umessages/models.py:113
+msgid "messages"
+msgstr "messaggi"
+
+#: contrib/umessages/views.py:178
+msgid "Message is sent."
+msgstr "Messaggio inviato."
+
+#: contrib/umessages/views.py:262
+msgid "Message is succesfully restored."
+msgid_plural "Messages are succesfully restored."
+msgstr[0] "Messaggio recuperato con successo."
+msgstr[1] "Messaggi recuperati con successo."
+
+#: contrib/umessages/views.py:266
+msgid "Message is successfully removed."
+msgid_plural "Messages are successfully removed."
+msgstr[0] "Messaggio cancellato con successo."
+msgstr[1] "Messaggi cancellati con successo."
+
+#: contrib/umessages/templates/umessages/message_detail.html:4
+#, python-format
+msgid "Conversation with %(recipient)s"
+msgstr "Conversazione con %(recipient)s"
+
+#: contrib/umessages/templates/umessages/message_detail.html:12
+#, python-format
+msgid "Received on %(sent_at)s"
+msgstr "Ricevuto il %(sent_at)s"
+
+#: contrib/umessages/templates/umessages/message_form.html:4
+#: contrib/umessages/templates/umessages/message_list.html:10
+msgid "Compose"
+msgstr "Scrivi"
-#: models.py:66 models.py:82
-msgid "Codice postale"
-msgstr "Codice postale"
+#: contrib/umessages/templates/umessages/message_form.html:10
+msgid "Compose message"
+msgstr "Scrivi messaggio"
-#: models.py:73
-msgid "Spedizione ad altro indirizzo"
-msgstr "Spedizione ad altro indirizzo"
+#: contrib/umessages/templates/umessages/message_form.html:13
+msgid "Send"
+msgstr "Inviato"
+
+#: contrib/umessages/templates/umessages/message_list.html:5
+msgid "Messages"
+msgstr "Messaggi"
+
+#: contrib/umessages/templates/umessages/message_list.html:9
+#, python-format
+msgid "%(unread_message_count)s new messages."
+msgstr "%(unread_message_count)s messaggi non letti."
+
+#: contrib/umessages/templates/umessages/message_list.html:21
+#, python-format
+msgid "%(latest_message)s (%(unread_between_count)s new)"
+msgstr "%(latest_message)s (%(unread_between_count)s nuovi)"
#: templates/userena/activate_fail.html:4
msgid "Account activation failed."
@@ -148,18 +458,14 @@ msgstr ""
msgid "Email changed!"
msgstr "Email modificata!"
-#: templates/userena/email_confirm_complete.html:6
-msgid "New email"
-msgstr "Nuova email"
-
#: templates/userena/email_confirm_complete.html:8
#, python-format
msgid ""
"Your new email address is saved. You can continue using %(site)s with this "
"email."
msgstr ""
-"Il nuovo indirizzo email è stato salvato. Puoi accedere a %(site)s con questo "
-"nuovo indirizzo."
+"Il nuovo indirizzo email è stato salvato. Puoi accedere a %(site)s con "
+"questo nuovo indirizzo."
#: templates/userena/email_confirm_fail.html:4
msgid "Email verification failed."
@@ -174,20 +480,44 @@ msgstr "Il tuo indirizzo email non può essere verificato..."
msgid "You could try changing it again in your account settings."
msgstr "Puoi provare a modificarlo ancora nel tuo profilo."
-#: templates/userena/email_form.html:4 templates/userena/password_form.html:6
-#: templates/userena/profile_form.html:6
+#: templates/userena/email_form.html:5 templates/userena/password_form.html:7
+#: templates/userena/profile_form.html:7
#, python-format
msgid "Account &raquo; %(username)s"
msgstr "Profilo &raquo; %(username)s"
#: templates/userena/email_form.html:10
-msgid "Change email address"
-msgstr "Cambia indirizzo email"
+#: templates/userena/password_form.html:12
+#: templates/userena/profile_detail.html:16
+#: templates/userena/profile_form.html:13
+msgid "View profile"
+msgstr "Profilo"
+
+#: templates/userena/email_form.html:11
+#: templates/userena/password_form.html:13
+#: templates/userena/profile_form.html:14
+msgid "Edit profile"
+msgstr "Aggiorna il profilo"
+
+#: templates/userena/email_form.html:12 templates/userena/password_form.html:5
+#: templates/userena/password_form.html:14
+#: templates/userena/password_form.html:22
+#: templates/userena/profile_detail.html:18
+#: templates/userena/profile_form.html:15
+msgid "Change password"
+msgstr "Cambia password"
-#: templates/userena/email_form.html:13 templates/userena/userena_nav.html:6
+#: templates/userena/email_form.html:13 templates/userena/email_form.html:20
+#: templates/userena/password_form.html:15
+#: templates/userena/profile_detail.html:19
+#: templates/userena/profile_form.html:16
msgid "Change email"
msgstr "Cambia email"
+#: templates/userena/email_form.html:17
+msgid "Change email address"
+msgstr "Cambia indirizzo email"
+
#: templates/userena/password_complete.html:4
msgid "Password changed"
msgstr "Password modificata"
@@ -200,21 +530,15 @@ msgstr "La tua password è stata modificata"
msgid "From now on you can use your new password to signin"
msgstr "Da ora in poi puoi usare la nuova password per accedere"
-#: templates/userena/password_form.html:4
-#: templates/userena/password_form.html:15
-#: templates/userena/userena_nav.html:5
-msgid "Change password"
-msgstr "Cambia password"
-
-#: templates/userena/password_form.html:11
+#: templates/userena/password_form.html:18
msgid "Change Password"
msgstr "Cambia password"
-#: templates/userena/password_reset_complete.html:4
+#: templates/userena/password_reset_complete.html:5
msgid "Password reset"
msgstr "Recupero password"
-#: templates/userena/password_reset_complete.html:5
+#: templates/userena/password_reset_complete.html:6
msgid "Your password has been reset"
msgstr "La tua password è stata reimpostata"
@@ -251,44 +575,60 @@ msgstr ""
msgid "Send password"
msgstr "Password inviata"
-#: templates/userena/profile_detail.html:4
+#: templates/userena/profile_detail.html:5
#, python-format
msgid "%(username)s's profile."
msgstr "Profilo di %(username)s."
-#: templates/userena/profile_form.html:4
+#: templates/userena/profile_detail.html:17
+msgid "Edit details"
+msgstr "Aggiorna dettagli"
+
+#: templates/userena/profile_detail.html:27
+msgid "Your mugshot"
+msgstr "Il tuo mugshot"
+
+#: templates/userena/profile_detail.html:31
+msgid "Name"
+msgstr "Nome"
+
+#: templates/userena/profile_detail.html:39
+msgid "Age"
+msgstr "Età"
+
+#: templates/userena/profile_detail.html:43
+msgid "Website"
+msgstr "Sito"
+
+#: templates/userena/profile_detail.html:47
+msgid "Location"
+msgstr "Posizione"
+
+#: templates/userena/profile_detail.html:51
+msgid "About me"
+msgstr "Informazioni"
+
+#: templates/userena/profile_form.html:5
msgid "Account setup"
msgstr "Impostazione account"
-#: templates/userena/profile_form.html:13
+#: templates/userena/profile_form.html:20
msgid "Edit Profile"
msgstr "Aggiorna il profilo"
-#: templates/userena/profile_form.html:34
-msgid ""
-"\n"
-" Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do "
-"eiusmod tempor \n"
-" incididunt ut labore et dolore magna aliqua. Ut enim ad minim "
-"veniam, quis nostrud \n"
-" exercitation ullamco laboris nisi ut aliquip ex ea commodo "
-"consequat.\n"
-" "
-msgstr ""
-
-#: templates/userena/profile_form.html:49
+#: templates/userena/profile_form.html:23
msgid "Save changes"
msgstr "Salva"
-#: templates/userena/profile_list.html:4
+#: templates/userena/profile_list.html:5
msgid "Profiles"
msgstr "Profili"
-#: templates/userena/profile_list.html:21
+#: templates/userena/profile_list.html:22
msgid "previous"
msgstr "precedente"
-#: templates/userena/profile_list.html:25
+#: templates/userena/profile_list.html:26
#, python-format
msgid ""
"\n"
@@ -299,16 +639,16 @@ msgstr ""
" Pagina %(page)s di %(num_pages)s\n"
" "
-#: templates/userena/profile_list.html:31
+#: templates/userena/profile_list.html:32
msgid "next"
msgstr "successiva"
-#: templates/userena/signin_form.html:4 templates/userena/signin_form.html:10
-#: templates/userena/signin_form.html:28
+#: templates/userena/signin_form.html:5 templates/userena/signin_form.html:11
+#: templates/userena/signin_form.html:29
msgid "Signin"
msgstr "Accedi"
-#: templates/userena/signin_form.html:29
+#: templates/userena/signin_form.html:30
msgid "Forgot your password?"
msgstr "Hai dimenticato la password?"
@@ -329,7 +669,8 @@ msgid "Signup almost done!"
msgstr "Registrazione quasi conclusa"
#: templates/userena/signup_complete.html:6
-#: templates/userena/signup_form.html:4 templates/userena/signup_form.html:37
+#: templates/userena/signup_form.html:4 templates/userena/signup_form.html:10
+#: templates/userena/signup_form.html:28
msgid "Signup"
msgstr "Registrati"
@@ -355,18 +696,6 @@ msgstr ""
msgid "You can now use the supplied credentials to signin."
msgstr "Puoi ora utilizzare le credenziali per accedere."
-#: templates/userena/userena_nav.html:3
-msgid "View profile"
-msgstr "Profilo"
-
-#: templates/userena/userena_nav.html:4
-msgid "Edit profile"
-msgstr "Aggiorna il profilo"
-
-#: templates/userena/userena_nav.html:7
-msgid "Logout"
-msgstr "Esci"
-
#: templates/userena/emails/activation_email_message.txt:2
#: templates/userena/emails/confirmation_email_message_new.txt:2
#: templates/userena/emails/confirmation_email_message_old.txt:2
@@ -461,5 +790,68 @@ msgstr ""
"\n"
"Il tuo nome utente è : %(username)s\n"
-#~ msgid "Edit details"
-#~ msgstr "Aggiorna dettagli"
+#: tests/profile.py:6 tests/profiles/models.py:12
+msgid "Male"
+msgstr "Uomo"
+
+#: tests/profile.py:7 tests/profiles/models.py:13
+msgid "Female"
+msgstr "Donna"
+
+#: tests/profile.py:9 tests/profiles/models.py:21
+msgid "gender"
+msgstr "genere"
+
+#: tests/profile.py:13 tests/profiles/models.py:25
+msgid "website"
+msgstr "sito"
+
+#: tests/profile.py:14 tests/profiles/models.py:26
+msgid "location"
+msgstr "posizione"
+
+#: tests/profile.py:15 tests/profiles/models.py:27
+msgid "about me"
+msgstr "informazioni"
+
+#~ msgid "Hogrefe Accounts"
+#~ msgstr "Hogrefe Accounts"
+
+#~ msgid "Login"
+#~ msgstr "Login"
+
+#~ msgid "Consenso obbligatorio"
+#~ msgstr "Consenso obbligatorio"
+
+#~ msgid "Consenso trattamento"
+#~ msgstr "Consenso trattamento"
+
+#~ msgid "Ragione sociale"
+#~ msgstr "Ragione sociale"
+
+#~ msgid "P.IVA."
+#~ msgstr "P.IVA."
+
+#~ msgid "C.F."
+#~ msgstr "C.F."
+
+#~ msgid "Indirizzo 1"
+#~ msgstr "Indirizzo 1"
+
+#~ msgid "Indirizzo 2"
+#~ msgstr "Indirizzo 2"
+
+#~ msgid "Città"
+#~ msgstr "Città"
+
+#~ msgid "Provincia"
+#~ msgstr "Provincia"
+
+#~ msgid "Codice postale"
+#~ msgstr "Codice postale"
+
+#~ msgid "Spedizione ad altro indirizzo"
+#~ msgstr "Spedizione ad altro indirizzo"
+
+#~ msgid "Logout"
+#~ msgstr "Esci"
View
BIN  userena/locale/pt/LC_MESSAGES/django.mo
Binary file not shown
View
BIN  userena/locale/pt_BR/LC_MESSAGES/django.mo
Binary file not shown
View
371 userena/locale/pt_BR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-05-01 18:22-0300\n"
+"POT-Creation-Date: 2013-02-04 14:40+0100\n"
"PO-Revision-Date: 2012-05-01 19:18:23-0300\n"
"Last-Translator: Felipe Bessa Coelho <felipe.coelho@usp.br>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,82 +17,89 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: forms.py:29
+#: forms.py:32
msgid "Username"
msgstr "Nome de usuário"
-#: forms.py:30
+#: forms.py:33
msgid "Username must contain only letters, numbers, dots and underscores."
msgstr "O nome de usuário só pode conter letras, números, pontos e sublinhados"
-#: forms.py:33 forms.py:153 templates/userena/profile_detail.html:34
+#: forms.py:36 forms.py:163 templates/userena/profile_detail.html:35
msgid "Email"
msgstr "Email"
-#: forms.py:36
+#: forms.py:39
msgid "Create password"
msgstr "Senha"
-#: forms.py:39
+#: forms.py:42
msgid "Repeat password"
msgstr "Repita a senha"
-#: forms.py:53
+#: forms.py:57
+msgid ""
+"This username is already taken but not confirmed. Please check you email for "
+"verification steps."
+msgstr ""
+
+#: forms.py:58
msgid "This username is already taken."
msgstr "Este nome de usuário já existe"
-#: forms.py:55
+#: forms.py:60
msgid "This username is not allowed."
msgstr "Este nome de usuário não é permitido"
-#: forms.py:61 forms.py:195
+#: forms.py:67
+msgid ""
+"This email is already in use but not confirmed. Please check you email for "
+"verification steps."
+msgstr "Este e-mail já está em uso. Por favor, forneça um e-mail diferente."
+
+#: forms.py:68 forms.py:205
msgid "This email is already in use. Please supply a different email."
msgstr "Este e-mail já está em uso. Por favor, forneça um e-mail diferente."
-#: forms.py:73
+#: forms.py:80
msgid "The two password fields didn't match."
msgstr "As duas senhas fornecidas não são iguais"
-#: forms.py:117
+#: forms.py:124
msgid "I have read and agree to the Terms of Service"
msgstr "Eu li e concordo com os Termos de Serviço"
-#: forms.py:118
+#: forms.py:125
msgid "You must agree to the terms to register."
msgstr "Você tem que concordar com os Termos de Serviço"
-#: forms.py:131
-#, python-format
-msgid "%(label)s"
-msgstr ""
-
-#: forms.py:134
+#: forms.py:141
#, python-format
msgid "%(error)s"
msgstr ""
-#: forms.py:141
+#: forms.py:148
msgid "Email or username"
msgstr "Email ou nome de usuário"
-#: forms.py:142
+#: forms.py:149
msgid "Either supply us with your email or username."
msgstr "Entre com seu email ou seu nome de usuário."
-#: forms.py:143
+#: forms.py:150
msgid "Password"
msgstr "Senha"
-#: forms.py:147
+#: forms.py:154 forms.py:161
#, python-format
msgid "Remember me for %(days)s"
msgstr "Lembre-me por %(days)s"
-#: forms.py:154
+#: forms.py:164
msgid "Please supply your email."
msgstr "Por favor insira seu email."
-#: forms.py:169
+#: forms.py:179
msgid ""
"Please enter a correct username or email and password. Note that both fields "
"are case-sensitive."
@@ -100,48 +107,48 @@ msgstr ""
"Por favor insira um nome de usuário correto ou email e senha. Note que ambos "
"os campos diferenciam entre maiúsculas e minúsculas."
-#: forms.py:175 templates/userena/email_confirm_complete.html:6
+#: forms.py:185 templates/userena/email_confirm_complete.html:6
msgid "New email"
msgstr "Novo email"
-#: forms.py:193
+#: forms.py:203
msgid "You're already known under this email."
msgstr "Já é conhecido por este email"
-#: forms.py:209
+#: forms.py:219
msgid "First name"
msgstr "Primeiro nome"
-#: forms.py:212
+#: forms.py:222
msgid "Last name"
msgstr "Sobrenome"
-#: managers.py:231
+#: managers.py:224
#, python-format
msgid "No profile found for %(username)s"
msgstr ""
-#: models.py:46 tests/profiles/models.py:18 tests/profiles/models.py:32
+#: models.py:49 tests/profiles/models.py:18 tests/profiles/models.py:32
msgid "user"
msgstr "usuário"
-#: models.py:49
+#: models.py:52
msgid "last active"
msgstr "Ativo pela última vez"
-#: models.py:52
+#: models.py:55
msgid "The last date that the user was active."
msgstr "A última data em que o usuário esteve ativo."
-#: models.py:54
+#: models.py:57
msgid "activation key"
msgstr "chave de ativação"
-#: models.py:58
+#: models.py:61
msgid "notification send"
msgstr "notificação enviada"
-#: models.py:60
+#: models.py:63
msgid ""
"Designates whether this user has already got a notification about activating "
"their account."
@@ -149,64 +156,64 @@ msgstr ""
"Determina se este usuário já recebeu uma notificação sobre a ativação de sua "
"conta"
-#: models.py:62
+#: models.py:65
msgid "unconfirmed email address"
msgstr "endereço de email não confirmado"
-#: models.py:64
+#: models.py:67
msgid "Temporary email address when the user requests an email change."
msgstr "Email temporário quando o usuário solicita uma mudança de e-mail."
-#: models.py:66
+#: models.py:69
msgid "unconfirmed email verification key"
msgstr "chave de verificação de email não confirmada"
-#: models.py:70
+#: models.py:73
msgid "creation date of email confirmation key"
msgstr "data de criação da chave de confirmação de email"
-#: models.py:78
+#: models.py:80
msgid "userena registration"
msgstr "Inscrição userena"
-#: models.py:79
+#: models.py:81
msgid "userena registrations"
msgstr "Inscrições userena"
-#: models.py:203
+#: models.py:205
msgid "Open"
msgstr "Aberto"
-#: models.py:204
+#: models.py:206
msgid "Registered"
msgstr "Registrado"
-#: models.py:205
+#: models.py:207
msgid "Closed"
msgstr "Fechado"
-#: models.py:212
+#: models.py:214
msgid "mugshot"
msgstr "avatar"
-#: models.py:216
+#: models.py:218
msgid "A personal image displayed in your profile."
msgstr "Uma imagem pessoal exibida no seu perfil."
-#: models.py:218
+#: models.py:220
msgid "privacy"
msgstr "privacidade"
-#: models.py:222
+#: models.py:224
msgid "Designates who can view your profile."
msgstr "Determina quem pode ver seu perfil."
-#: models.py:301
+#: models.py:303
#, python-format
msgid "%(first_name)s %(last_name)s"
msgstr ""
-#: models.py:363
+#: models.py:367
msgid "language"
msgstr "Idioma"
@@ -214,19 +221,27 @@ msgstr "Idioma"
msgid "a month"
msgstr "um mês"
-#: views.py:136
+#: views.py:183
msgid "Your account has been activated and you have been signed in."
msgstr "Sua conta foi ativada e você foi logado."
-#: views.py:297
+#: views.py:230
+msgid "Your email address has been changed."
+msgstr "A sua senha foi alterada"
+
+#: views.py:341
msgid "You have been signed in."
msgstr "Você fez login."
-#: views.py:517
+#: views.py:377
+msgid "You have been signed out."
+msgstr "Você fez logout"
+
+#: views.py:575
msgid "Your profile has been updated."
msgstr "O seu perfil foi atualizado"
-#: views.py:560
+#: views.py:620
msgid "You don't have permission to view this profile."
msgstr "Você não tem permissão para visualizar este perfil"
@@ -344,7 +359,7 @@ msgid "Received on %(sent_at)s"
msgstr "Recebida em %(sent_at)s"
#: contrib/umessages/templates/umessages/message_form.html:4
-#: contrib/umessages/templates/umessages/message_list.html:9
+#: contrib/umessages/templates/umessages/message_list.html:10
msgid "Compose"
msgstr "Compor"
@@ -356,16 +371,16 @@ msgstr "Compor mensagem"
msgid "Send"
msgstr "Enviar"
-#: contrib/umessages/templates/umessages/message_list.html:4
+#: contrib/umessages/templates/umessages/message_list.html:5
msgid "Messages"
msgstr "Mensagens"
-#: contrib/umessages/templates/umessages/message_list.html:8
+#: contrib/umessages/templates/umessages/message_list.html:9
#, python-format
msgid "%(unread_message_count)s new messages."
msgstr "%(unread_message_count)s novas mensagens."
-#: contrib/umessages/templates/umessages/message_list.html:20
+#: contrib/umessages/templates/umessages/message_list.html:21
#, python-format
msgid "%(latest_message)s (%(unread_between_count)s new)"
msgstr "%(latest_message)s (%(unread_between_count)s novas mensagens)"
@@ -445,7 +460,8 @@ msgid ""
"Your new email address is saved. You can continue using %(site)s with this "
"email."
msgstr ""
-"O seu novo email foi salvo. Você pode continuar a usar %(site)s com este email"
+"O seu novo email foi salvo. Você pode continuar a usar %(site)s com este "
+"email"
#: templates/userena/email_confirm_fail.html:4
msgid "Email verification failed."
@@ -460,40 +476,41 @@ msgstr "Seu email não pode ser verificado..."
msgid "You could try changing it again in your account settings."
msgstr "Você pode tentar alterá-lo novamente nas suas configurações de conta."
-#: templates/userena/email_form.html:4 templates/userena/password_form.html:6
-#: templates/userena/profile_form.html:6
+#: templates/userena/email_form.html:5 templates/userena/password_form.html:7
+#: templates/userena/profile_form.html:7
#, python-format
msgid "Account &raquo; %(username)s"
msgstr "Conta &raquo; %(username)s"
-#: templates/userena/email_form.html:9 templates/userena/password_form.html:11
-#: templates/userena/profile_detail.html:15
-#: templates/userena/profile_form.html:12
-msgid "View profile"
-msgstr "Ver perfil"
-
#: templates/userena/email_form.html:10
#: templates/userena/password_form.html:12
+#: templates/userena/profile_detail.html:16
#: templates/userena/profile_form.html:13
-msgid "Edit profile"
-msgstr "Editar perfil"
+msgid "View profile"
+msgstr "Ver perfil"
-#: templates/userena/email_form.html:11 templates/userena/password_form.html:4
+#: templates/userena/email_form.html:11
#: templates/userena/password_form.html:13
-#: templates/userena/password_form.html:21
-#: templates/userena/profile_detail.html:17
#: templates/userena/profile_form.html:14
-msgid "Change password"
-msgstr "Alterar senha"
+msgid "Edit profile"
+msgstr "Editar perfil"
-#: templates/userena/email_form.html:12 templates/userena/email_form.html:19
+#: templates/userena/email_form.html:12 templates/userena/password_form.html:5
#: templates/userena/password_form.html:14
+#: templates/userena/password_form.html:22
#: templates/userena/profile_detail.html:18
#: templates/userena/profile_form.html:15
+msgid "Change password"
+msgstr "Alterar senha"
+
+#: templates/userena/email_form.html:13 templates/userena/email_form.html:20
+#: templates/userena/password_form.html:15
+#: templates/userena/profile_detail.html:19
+#: templates/userena/profile_form.html:16
msgid "Change email"
msgstr "Alterar email"
-#: templates/userena/email_form.html:16
+#: templates/userena/email_form.html:17
msgid "Change email address"
msgstr "Alterar endereço de email"
@@ -509,24 +526,25 @@ msgstr "A sua senha foi alterada"
msgid "From now on you can use your new password to signin"
msgstr "A partir de agora pode usar a sua nova senha para fazer login"
-#: templates/userena/password_form.html:17
+#: templates/userena/password_form.html:18
msgid "Change Password"
msgstr "Alterar senha"
-#: templates/userena/password_reset_complete.html:4
+#: templates/userena/password_reset_complete.html:5
msgid "Password reset"
msgstr "Nova senha"
-#: templates/userena/password_reset_complete.html:5
+#: templates/userena/password_reset_complete.html:6
msgid "Your password has been reset"
msgstr "A sua senha foi resetada"
-#: templates/userena/password_reset_complete.html:8
+#: templates/userena/password_reset_complete.html:9
#, python-format
msgid ""
"You can now <a href=\"%(signin_url)s\">signin</a> with your new password."
msgstr ""
-"Você pode agora <a href=\"%(signin_url)s\">fazer login</a> com sua nova senha."
+"Você pode agora <a href=\"%(signin_url)s\">fazer login</a> com sua nova "
+"senha."
#: templates/userena/password_reset_confirm_form.html:4
#: templates/userena/password_reset_confirm_form.html:13
@@ -553,60 +571,60 @@ msgstr "Foi enviado um email com informações sobre como obter uma nova senha."
msgid "Send password"
msgstr "Enviar senha"
-#: templates/userena/profile_detail.html:4
+#: templates/userena/profile_detail.html:5
#, python-format
msgid "%(username)s's profile."
msgstr "Perfil de %(username)s"
-#: templates/userena/profile_detail.html:16
+#: templates/userena/profile_detail.html:17
msgid "Edit details"
msgstr "Editar detalhes"
-#: templates/userena/profile_detail.html:26
+#: templates/userena/profile_detail.html:27
msgid "Your mugshot"
msgstr "Seu avatar"
-#: templates/userena/profile_detail.html:30
+#: templates/userena/profile_detail.html:31
msgid "Name"
msgstr "Nome"
-#: templates/userena/profile_detail.html:38
+#: templates/userena/profile_detail.html:39
msgid "Age"
msgstr "Idade"
-#: templates/userena/profile_detail.html:42
+#: templates/userena/profile_detail.html:43
msgid "Website"
msgstr "Site"
-#: templates/userena/profile_detail.html:46
+#: templates/userena/profile_detail.html:47
msgid "Location"
msgstr "Localização"
-#: templates/userena/profile_detail.html:50
+#: templates/userena/profile_detail.html:51
msgid "About me"
msgstr "Sobre mim"
-#: templates/userena/profile_form.html:4
+#: templates/userena/profile_form.html:5
msgid "Account setup"
msgstr "Configurações de conta"
-#: templates/userena/profile_form.html:19
+#: templates/userena/profile_form.html:20
msgid "Edit Profile"
msgstr "Editar Perfil"
-#: templates/userena/profile_form.html:22
+#: templates/userena/profile_form.html:23
msgid "Save changes"
msgstr "Salvar alterações"
-#: templates/userena/profile_list.html:4
+#: templates/userena/profile_list.html:5
msgid "Profiles"
msgstr "Perfis"
-#: templates/userena/profile_list.html:21
+#: templates/userena/profile_list.html:22
msgid "previous"
msgstr "anterior"
-#: templates/userena/profile_list.html:25
+#: templates/userena/profile_list.html:26
#, python-format
msgid ""
"\n"
@@ -617,16 +635,16 @@ msgstr ""
" Página %(page)s de %(num_pages)s\n"
" "
-#: templates/userena/profile_list.html:31
+#: templates/userena/profile_list.html:32
msgid "next"
msgstr "próximo"
-#: templates/userena/signin_form.html:4 templates/userena/signin_form.html:10
-#: templates/userena/signin_form.html:28
+#: templates/userena/signin_form.html:5 templates/userena/signin_form.html:11
+#: templates/userena/signin_form.html:29
msgid "Signin"
msgstr "Fazer login"
-#: templates/userena/signin_form.html:29
+#: templates/userena/signin_form.html:30
msgid "Forgot your password?"
msgstr "Esqueceu sua senha?"
@@ -672,6 +690,98 @@ msgstr "Você terá %(userena_activation_days)s dias para ativar sua conta."
msgid "You can now use the supplied credentials to signin."
msgstr "Você pode agora fazer login."
+#: templates/userena/emails/activation_email_message.txt:2
+#: templates/userena/emails/confirmation_email_message_new.txt:2
+#: templates/userena/emails/confirmation_email_message_old.txt:2
+#, python-format
+msgid "Dear %(username)s,"
+msgstr "Caro %(username)s,"
+
+#: templates/userena/emails/activation_email_message.txt:4
+#, python-format
+msgid "Thank you for signing up at %(site)s."
+msgstr "Obrigado por se inscrever."
+
+#: templates/userena/emails/activation_email_message.txt:6
+msgid "To activate your account you should click on the link below:"
+msgstr "Para ativar sua conta, você deve clicar no link abaixo:"
+
+#: templates/userena/emails/activation_email_message.txt:10
+#: templates/userena/emails/confirmation_email_message_new.txt:12
+#: templates/userena/emails/confirmation_email_message_old.txt:8
+#: templates/userena/emails/password_reset_message.txt:14
+msgid "Thanks for using our site!"
+msgstr "Obrigado por se inscrever!"
+
+#: templates/userena/emails/activation_email_message.txt:12
+#: templates/userena/emails/confirmation_email_message_new.txt:14
+#: templates/userena/emails/confirmation_email_message_old.txt:10
+#: templates/userena/emails/password_reset_message.txt:16
+msgid "Sincerely"
+msgstr "Atenciosamente"
+
+#: templates/userena/emails/activation_email_subject.txt:2
+#, python-format
+msgid "Your signup at %(site)s."
+msgstr "Sua inscrição no site %(site)s."
+
+#: templates/userena/emails/confirmation_email_message_new.txt:4
+#, python-format
+msgid "You requested a change of your email address at %(site)s."
+msgstr "Você requisitou uma mudança de endereço de email no site %(site)s."
+
+#: templates/userena/emails/confirmation_email_message_new.txt:7
+msgid "Please confirm this email address by clicking on the link below:"
+msgstr "Por favor confirme este endereço de email clicando no link abaixo:"
+
+#: templates/userena/emails/confirmation_email_message_old.txt:4
+#, python-format
+msgid "There was a request to change your email address at %(site)s."
+msgstr ""
+"Foi feito um pedido para alteração de seu endereço de email no site %(site)s."
+
+#: templates/userena/emails/confirmation_email_message_old.txt:6
+#, python-format
+msgid ""
+"An email has been send to %(new_email)s which contains a verification link. "
+"Click on the link in this email to activate it."
+msgstr ""
+"Um email foi enviado para %(new_email)s com um link para verificação do "
+"endereço de email. Clique no link para ativar o novo endereço de email."
+
+#: templates/userena/emails/confirmation_email_subject_new.txt:2
+#, python-format
+msgid "Email verification for %(site)s."
+msgstr "Email de verificação para o site %(site)s."
+
+#: templates/userena/emails/confirmation_email_subject_old.txt:2
+#, python-format
+msgid "A request to change your email address is made at %(site)s."
+msgstr ""
+"Uma requisição para alterar seu endereço de email foi feita em %(site)s."
+
+#: templates/userena/emails/password_reset_message.txt:2
+#, python-format
+msgid ""
+"You're receiving this e-mail because you requested a password reset\n"
+"for your user account at %(site_name)s"
+msgstr ""
+"Você está recebendo este email porque requisitou uma nova senha para sua "
+"conta de usuário no site %(site_name)s"
+
+#: templates/userena/emails/password_reset_message.txt:5
+msgid "Please go to the following page and choose a new password:"
+msgstr "Por favor acesse o seguinte endereço e escolha uma nova senha:"
+
+#: templates/userena/emails/password_reset_message.txt:10
+#, python-format
+msgid ""
+"\n"
+"Your username, in case you've forgotten: %(username)s\n"
+msgstr ""
+"\n"
+"Seu nome de usuário, caso tenha esquecido: %(username)s\n"
+
#: tests/profile.py:6 tests/profiles/models.py:12
msgid "Male"
msgstr "Masculino"
@@ -705,69 +815,6 @@ msgstr "sobre mim"
#~ msgid "with your new password."
#~ msgstr "com sua nova senha."
-#~ msgid "Dear %(username)s,"
-#~ msgstr "Caro %(username)s,"
-
-#, fuzzy
-#~ msgid "Thank you for signing up at %(site)s."
-#~ msgstr "Obrigado por se inscrever."
-
-#~ msgid "To activate your account you should click on the link below:"
-#~ msgstr "Para ativar sua conta, você deve clicar no link abaixo:"
-
-#, fuzzy
-#~ msgid "Thanks for using our site!"
-#~ msgstr "Obrigado por se inscrever!"
-
-#~ msgid "Sincerely"
-#~ msgstr "Atenciosamente"
-
-#~ msgid "Your signup at %(site)s."
-#~ msgstr "Sua inscrição no site %(site)s."
-
-#~ msgid "You requested a change of your email address at %(site)s."
-#~ msgstr "Você requisitou uma mudança de endereço de email no site %(site)s."
-
-#~ msgid "Please confirm this email address by clicking on the link below:"
-#~ msgstr "Por favor confirme este endereço de email clicando no link abaixo:"
-
-#~ msgid "There was a request to change your email address at %(site)s."
-#~ msgstr ""
-#~ "Foi feito um pedido para alteração de seu endereço de email no site "
-#~ "%(site)s."
-
-#~ msgid ""
-#~ "An email has been send to %(new_email)s which contains a verification "
-#~ "link. Click on the link in this email to activate it."
-#~ msgstr ""
-#~ "Um email foi enviado para %(new_email)s com um link para verificação do "
-#~ "endereço de email. Clique no link para ativar o novo endereço de email."
-
-#, fuzzy
-#~ msgid "Email verification for %(site)s."
-#~ msgstr "Email de verificação para o site %(site)s."
-
-#~ msgid "A request to change your email address is made at %(site)s."
-#~ msgstr ""
-#~ "Uma requisição para alterar seu endereço de email foi feita em %(site)s."
-
-#~ msgid ""
-#~ "You're receiving this e-mail because you requested a password reset\n"
-#~ "for your user account at %(site_name)s"
-#~ msgstr ""
-#~ "Você está recebendo este email porque requisitou uma nova senha para sua "
-#~ "conta de usuário no site %(site_name)s"
-
-#~ msgid "Please go to the following page and choose a new password:"
-#~ msgstr "Por favor acesse o seguinte endereço e escolha uma nova senha:"
-
-#~ msgid ""
-#~ "\n"
-#~ "Your username, in case you've forgotten: %(username)s\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Seu nome de usuário, caso tenha esquecido: %(username)s\n"
-
#~ msgid "profile"
#~ msgstr "perfil"
View
BIN  userena/locale/ru/LC_MESSAGES/django.mo
Binary file not shown
View
2  userena/locale/ru/LC_MESSAGES/django.po
@@ -390,7 +390,7 @@ msgid ""
"link has aged."
msgstr ""
"Ваша учётная запись не может быть активирована. Возможно, ваш ключ "
-"авктивации устарел."
+"активации устарел."
#: templates/userena/activate_fail.html:9
msgid ""
View
BIN  userena/locale/tr/LC_MESSAGES/django.mo
Binary file not shown
View
18 userena/models.py
@@ -9,14 +9,14 @@
from easy_thumbnails.fields import ThumbnailerImageField
from guardian.shortcuts import get_perms
from userena import settings as userena_settings
-from userena.managers import UserenaManager, UserenaBaseProfileManager
+from userena.managers import UserenaManager, UserenaBaseProfileManager, \
+ ASSIGNED_PERMISSIONS
from userena.utils import get_gravatar, generate_sha1, get_protocol, \
get_datetime_now, get_user_model, user_model_label
import datetime
-PROFILE_PERMISSIONS = (
- ('view_profile', 'Can view profile'),
-)
+
+PROFILE_PERMISSIONS = ASSIGNED_PERMISSIONS['profile']
def upload_to_mugshot(instance, filename):
@@ -28,12 +28,10 @@ def upload_to_mugshot(instance, filename):
"""
extension = filename.split('.')[-1].lower()
salt, hash = generate_sha1(instance.id)
- path = userena_settings.USERENA_MUGSHOT_PATH % {
- 'username': instance.user.username,
- 'id': instance.user.id,
- 'date': instance.user.date_joined,
- 'date_now': get_datetime_now().date(),
- }
+ path = userena_settings.USERENA_MUGSHOT_PATH % {'username': instance.user.username,
+ 'id': instance.user.id,
+ 'date': instance.user.date_joined,
+ 'date_now': get_datetime_now().date()}
return '%(path)s%(hash)s.%(extension)s' % {'path': path,
'hash': hash[:10],
'extension': extension}
View
7 userena/settings.py
@@ -6,6 +6,10 @@
gettext = lambda s: s
+USERENA_SIGNIN_AFTER_SIGNUP = getattr(settings,
+ 'USERENA_SIGNIN_AFTER_SIGNUP',
+ False)
+
USERENA_REDIRECT_ON_SIGNOUT = getattr(settings,
'USERENA_REDIRECT_ON_SIGNOUT',
None)
@@ -94,4 +98,7 @@
USERENA_PROFILE_DETAIL_TEMPLATE = getattr(
settings, 'USERENA_PROFILE_DETAIL_TEMPLATE', 'userena/profile_detail.html')
+USERENA_PROFILE_LIST_TEMPLATE = getattr(
+ settings, 'USERENA_PROFILE_LIST_TEMPLATE', 'userena/profile_list.html')
+
USERENA_HIDE_EMAIL = getattr(settings, 'USERENA_HIDE_EMAIL', False)
View
2  userena/tests/forms.py
@@ -24,7 +24,7 @@ def test_signup_form(self):
'tos': 'on'},
'error': ('username', [u'Username must contain only letters, numbers, dots and underscores.'])},
# Password is not the same
- {'data': {'username': 'katy',
+ {'data': {'username': 'katy-',
'email': 'katy@newexample.com',
'password1': 'foo',
'password2': 'foo2',
View
2  userena/tests/models.py
@@ -32,7 +32,7 @@ def test_upload_mugshot(self):
"""
user = User.objects.get(pk=1)
filename = 'my_avatar.png'
- path = upload_to_mugshot(user, filename)
+ path = upload_to_mugshot(user.get_profile(), filename)
# Path should be changed from the original
self.failIfEqual(filename, path)
View
53 userena/tests/views.py
@@ -131,6 +131,47 @@ def test_signup_view_success(self):
# Check for new user.
self.assertEqual(User.objects.filter(email__iexact='alice@example.com').count(), 1)
+ def test_signup_view_with_signin(self):
+ """
+ After a ``POST`` to the ``signup`` view a new user should be created,
+ the user should be logged in and redirected to the signup success page.
+
+ """
+ # If activation is required, user is not logged in after signup,
+ # disregarding USERENA_SIGNIN_AFTER_SIGNUP setting
+ userena_settings.USERENA_SIGNIN_AFTER_SIGNUP = True
+ userena_settings.USERENA_ACTIVATION_REQUIRED = True
+ response = self.client.post(reverse('userena_signup'),
+ data={'username': 'alice',
+ 'email': 'alice@example.com',
+ 'password1': 'blueberry',
+ 'password2': 'blueberry',
+ 'tos': 'on'})
+ # Immediate reset to default to avoid leaks
+ userena_settings.USERENA_SIGNIN_AFTER_SIGNUP = False
+ userena_settings.USERENA_ACTIVATION_REQUIRED = True
+
+ response_check = self.client.get(reverse('userena_profile_edit',
+ kwargs={'username': 'alice'}))
+ self.assertEqual(response_check.status_code, 403)
+
+ userena_settings.USERENA_SIGNIN_AFTER_SIGNUP = True
+ userena_settings.USERENA_ACTIVATION_REQUIRED = False
+ response = self.client.post(reverse('userena_signup'),
+ data={'username': 'johndoe',
+ 'email': 'johndoe@example.com',
+ 'password1': 'blueberry',
+ 'password2': 'blueberry',
+ 'tos': 'on'})
+ # Immediate reset to default to avoid leaks
+ userena_settings.USERENA_SIGNIN_AFTER_SIGNUP = False
+ userena_settings.USERENA_ACTIVATION_REQUIRED = True
+
+ # Kind of hackish way to check if the user is logged in
+ response_check = self.client.get(reverse('userena_profile_edit',
+ kwargs={'username': 'johndoe'}))
+ self.assertEqual(response_check.status_code, 200)
+
def test_signin_view(self):
""" A ``GET`` to the signin view should render the correct form """
response = self.client.get(reverse('userena_signin'))
@@ -198,6 +239,18 @@ def test_signin_view_success(self):
'next': '/accounts/'})
self.assertRedirects(response, '/accounts/')
+ def test_signin_view_with_invalid_next(self):
+ """
+ If the value of "next" is not a real URL, this should not raise
+ an exception
+ """
+ response = self.client.post(reverse('userena_signin'),
+ data={'identification': 'john@example.com',
+ 'password': 'blowfish',
+ 'next': 'something-fake'},
+ follow=True)
+ self.assertEqual(response.status_code, 404)
+
def test_signout_view(self):
""" A ``GET`` to the signout view """
response = self.client.get(reverse('userena_signout'))
View
18 userena/urls.py
@@ -37,7 +37,7 @@
{'template_name': 'userena/password_reset_complete.html'}),
# Signup
- url(r'^(?P<username>[\.\w]+)/signup/complete/$',
+ url(r'^(?P<username>[\.\w-]+)/signup/complete/$',
userena_views.direct_to_user_template,
{'template_name': 'userena/signup_complete.html',
'extra_context': {'userena_activation_required': userena_settings.USERENA_ACTIVATION_REQUIRED,
@@ -50,14 +50,14 @@
name='userena_activate'),
# Change email and confirm it
- url(r'^(?P<username>[\.\w]+)/email/$',
+ url(r'^(?P<username>[\.\w-]+)/email/$',
userena_views.email_change,
name='userena_email_change'),
- url(r'^(?P<username>[\.\w]+)/email/complete/$',
+ url(r'^(?P<username>[\.\w-]+)/email/complete/$',
userena_views.direct_to_user_template,
{'template_name': 'userena/email_change_complete.html'},
name='userena_email_change_complete'),
- url(r'^(?P<username>[\.\w]+)/confirm-email/complete/$',
+ url(r'^(?P<username>[\.\w-]+)/confirm-email/complete/$',
userena_views.direct_to_user_template,
{'template_name': 'userena/email_confirm_complete.html'},
name='userena_email_confirm_complete'),
@@ -66,27 +66,27 @@
name='userena_email_confirm'),
# Disabled account
- url(r'^(?P<username>[\.\w]+)/disabled/$',
+ url(r'^(?P<username>[\.\w-]+)/disabled/$',
userena_views.direct_to_user_template,
{'template_name': 'userena/disabled.html'},
name='userena_disabled'),
# Change password
- url(r'^(?P<username>[\.\w]+)/password/$',
+ url(r'^(?P<username>[\.\w-]+)/password/$',
userena_views.password_change,
name='userena_password_change'),
- url(r'^(?P<username>[\.\w]+)/password/complete/$',
+ url(r'^(?P<username>[\.\w-]+)/password/complete/$',
userena_views.direct_to_user_template,
{'template_name': 'userena/password_complete.html'},
name='userena_password_change_complete'),
# Edit profile
- url(r'^(?P<username>[\.\w]+)/edit/$',
+ url(r'^(?P<username>[\.\w-]+)/edit/$',
userena_views.profile_edit,
name='userena_profile_edit'),
# View profiles
- url(r'^(?P<username>(?!signout|signup|signin)[\.\w]+)/$',
+ url(r'^(?P<username>(?!signout|signup|signin)[\.\w-]+)/$',
userena_views.profile_detail,
name='userena_profile_detail'),
url(r'^page/(?P<page>[0-9]+)/$',
View
15 userena/views.py
@@ -7,10 +7,11 @@
from django.views.generic import TemplateView
from django.template.context import RequestContext
from django.views.generic.list import ListView
+from django.views.generic import list_detail
from django.conf import settings
from django.contrib import messages
from django.utils.translation import ugettext as _
-from django.http import HttpResponseForbidden, Http404
+from django.http import HttpResponseForbidden, Http404, HttpResponseRedirect
from userena.forms import (SignupForm, SignupFormOnlyEmail, AuthenticationForm,
ChangeEmailForm, EditProfileForm)
@@ -43,7 +44,7 @@ class ProfileListView(ListView):
context_object_name='profile_list'
page=1
paginate_by=50
- template_name='userena/profile_list.html'
+ template_name=userena_settings.USERENA_PROFILE_LIST_TEMPLATE
extra_context=None
def get_context_data(self, **kwargs):
@@ -130,6 +131,12 @@ def signup(request, signup_form=SignupForm,
# A new signed user should logout the old one.
if request.user.is_authenticated():
logout(request)
+
+ if (userena_settings.USERENA_SIGNIN_AFTER_SIGNUP and
+ not userena_settings.USERENA_ACTIVATION_REQUIRED):
+ user = authenticate(identification=user.email, check_password=False)
+ login(request, user)
+
return redirect(redirect_to)
if not extra_context: extra_context = dict()
@@ -343,7 +350,7 @@ def signin(request, auth_form=AuthenticationForm,
# Whereto now?
redirect_to = redirect_signin_function(
request.REQUEST.get(redirect_field_name), user)
- return redirect(redirect_to)
+ return HttpResponseRedirect(redirect_to)
else:
return redirect(reverse('userena_disabled',
kwargs={'username': user.username}))
@@ -613,7 +620,7 @@ def profile_detail(request, username,
try:
profile = user.get_profile()
except profile_model.DoesNotExist:
- profile = profile_model.create(user=user)
+ profile = profile_model.objects.create(user=user)
if not profile.can_view_profile(request.user):
return HttpResponseForbidden(_("You don't have permission to view this profile."))
Please sign in to comment.
Something went wrong with that request. Please try again.