View | Details | Raw Unified | Return to bug 209606 | Differences between
and this patch

Collapse All | Expand All

(-)www/py-django-registration-redux/Makefile (-2 / +3 lines)
Lines 2-8 Link Here
2
# $FreeBSD: head/www/py-django-registration-redux/Makefile 412351 2016-04-01 14:33:55Z mat $
2
# $FreeBSD: head/www/py-django-registration-redux/Makefile 412351 2016-04-01 14:33:55Z mat $
3
3
4
PORTNAME=	django-registration-redux
4
PORTNAME=	django-registration-redux
5
PORTVERSION=	1.3
5
PORTVERSION=	1.4
6
CATEGORIES=	www python
6
CATEGORIES=	www python
7
MASTER_SITES=	CHEESESHOP
7
MASTER_SITES=	CHEESESHOP
8
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
8
PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
Lines 11-18 Link Here
11
COMMENT=	User-registration application for Django
11
COMMENT=	User-registration application for Django
12
12
13
LICENSE=	BSD3CLAUSE
13
LICENSE=	BSD3CLAUSE
14
LICENSE_FILE=	${WORKSRC}/LICENSE
14
15
15
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django18>=1.4:www/py-django18
16
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django18>=0:www/py-django18
16
17
17
NO_ARCH=	yes
18
NO_ARCH=	yes
18
USES=		python
19
USES=		python
(-)www/py-django-registration-redux/distinfo (-2 / +3 lines)
Lines 1-2 Link Here
1
SHA256 (django-registration-redux-1.3.tar.gz) = 30c0185f0e217a905cf2ee1a354c8d4835a3bffd853c46e4c4d6dc149c522a79
1
TIMESTAMP = 1463567147
2
SIZE (django-registration-redux-1.3.tar.gz) = 83090
2
SHA256 (django-registration-redux-1.4.tar.gz) = 0331866ce82d7194a30925a20e6eac8d8be5b4ed1ea28c86359baff83ac6743d
3
SIZE (django-registration-redux-1.4.tar.gz) = 83918
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/AUTHORS (+43 lines)
Line 0 Link Here
1
The authors of django-registration (redux) can be found at
2
<https://github.com/macropin/django-registration/network/members>
3
4
-------------------------------------------------
5
6
The original author of django-registration was James Bennett
7
<james@b-list.org>, who may be found online at
8
<http://www.b-list.org/>.
9
10
11
Others who have contributed to the application:
12
13
* Samuel Adam (French translation)
14
* Jannis Leidel (German translation)
15
* Rapahel Hertzog (helpful suggestions on packaging and distribution)
16
* Panos Laganakos (Greek translation)
17
* Ilya Filippov and Andy Mikhailenko (Russian translation)
18
* Jarek Zgoda (Polish translation)
19
* Meir Kriheli (Hebrew translation)
20
* Italo Maia (Brazilian Portuguese translation)
21
* Shinya Okano (Japanese translation)
22
* A. Al-Ibrahim (Arabic translation)
23
* Ernesto Rico Schmidt (Spanish translation)
24
* Vladislav Mitov (Bulgarian translation)
25
* Leonardo Manuel Rocha (Argentinean Spanish translation)
26
* Emil Stenström (Swedish translation)
27
* Liang Feng (Chinese translations)
28
* Nebojsa Djordjevic (Serbian translation)
29
* Nicola Larosa (Italian translation)
30
* Joost Cassee (Dutch translation)
31
* Björn Kristinsson (Icelandic translation)
32
* Rune Bromer (Danish translation)
33
* Domen Kožar (Slovenian translation)
34
* Young Gyu Park (Korean translation)
35
* Flavio Curella (updated Italian translation)
36
* Jon Lønne (Bokmål translation)
37
* Carles Barrobés (Catalan translation)
38
* Nuno Mariz (Portuguese translation)
39
* Patrick Samson (French translation)
40
* Recep Kirmizi (Turkish translation)
41
* Mohsen Mansouryar (Persian translation)
42
* Jeffrey Long (Testing templates)
43
* Ilya Baryshev (Test app / config)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/CHANGELOG (+370 lines)
Line 0 Link Here
1
===================================
2
django-registration-redux changelog
3
===================================
4
5
Version 1.4, 21 February, 2016
6
-----------------------------
7
8
* BACKWARDS-INCOMPATIBLE CHANGE: Remove unnecessary `_RequestPassingFormView`.
9
  See `#56 <https://github.com/macropin/django-registration/pull/56>`_.
10
11
* Compatibility: Added support for Django 1.10
12
13
* Bugfix: Pass request object into `resend_activation_mail` so the email
14
  template can render the site URL with the correct schema (HTTP, HTTPS).
15
16
* Bugfix: Ensure `register` method has consistent arguments.
17
  See `#153 <https://github.com/macropin/django-registration/pull/153>`_.
18
19
* Enhancement: Add invoke tasks, requirements.txt file, and make wrapper to
20
  help developers get setup.
21
  See `#154 <https://github.com/macropin/django-registration/pull/154>`_.
22
23
Version 1.3, 12 January, 2016
24
-----------------------------
25
26
* Add support for Django 1.9. django-registration supports Django 1.7 and newer.
27
28
* Feature: Added `resend_activation_mail` method to `RegistrationManager`.
29
30
* Feature: Added support for additional registration forms;
31
  `RegistrationFormTOSAndUniqueEmail` and `RegistrationFormTOSAndNoFreeEmail`.
32
  See `#113 <https://github.com/macropin/django-registration/pull/113>`_.
33
34
* Bugfix: Properly extend the base registration template.
35
36
* Enhancement: Re-enable Python 3.3 support.
37
38
* Enhancement: Distinguish between account activation failure and attempted
39
  reactivation. See `#72 <https://github.com/macropin/django-registration/pull/72>`_.
40
41
* Bugfix: Install an unzipped package in order to support running migrations.
42
  See `#104 <https://github.com/macropin/django-registration/pull/104>`_.
43
44
* Feature: Added Thai, Hungarian, and Russian localizations.
45
46
* Feature: Added support for specifying template paths for activation email.
47
48
49
Version 1.2, 11 May, 2015
50
-------------------------
51
52
* BACKWARDS-INCOMPATIBLE CHANGE: When overriding the
53
  `registration/activation_email.txt` template, you must also now override the
54
  `registration/activation_email.html` template or set the setting
55
  (`REGISTRATION_EMAIL_HTML`) to `False`.
56
57
* BACKWARDS-INCOMPATIBLE CHANGE: An initial migration for Django > 1.7 has been
58
  provided. South users will need to configure a null migration with
59
  (`SOUTH_MIGRATION_MODULES`).
60
61
* BACKWARDS-INCOMPATIBLE CHANGE: A `base.html` template is now assumed to
62
  exist.
63
64
* Feature: Added support for disabling HTML emails using the setting option
65
  `REGISTRATION_EMAIL_HTML`.
66
67
* Feature: Added settings' options that allows to exlude the default auth urls
68
  (`INCLUDE_AUTH_URLS`) and register url (`INCLUDE_REGISTER_URL`).
69
70
* Feature: Added support to dynamically import any chosen registration form
71
  using the settings option `REGISTRATION_FORM`.
72
73
* Enhancement: Make `RegistrationForm` a subclass of Django's
74
  `UserCreationForm`
75
76
* Enhancement: Use registration form `save` method to create user instance,
77
  whenever form is a subclass of Django's `ModelForm`.
78
79
80
81
Version 1.1, 19 September, 2014
82
-------------------------------
83
84
This represents the first release of `django-registration-redux`.
85
It is based off the defunct v1.0 `django-registration` abandoned by James Bennett.
86
87
* Compatibility: Added support for Python 3.x.
88
89
* Compatibility: Added support for Django 1.6, 1.7.
90
91
* Feature: Added support for mime/multipart HTML / Text registration
92
  emails.
93
94
* Feature: Added `REGISTRATION_EMAIL_SUBJECT_PREFIX` config.
95
96
* Feature: Added support for `REGISTRATION_AUTO_LOGIN` config.
97
98
* Feature: Added support for `SEND_ACTIVATION_EMAIL` config.
99
100
* Bugfix: Signal "user_activated" was being sent twice.
101
102
* Bugfix: Fixed broken tests.
103
104
The change log below is from the versions maintained
105
by James Bennett.
106
107
108
Version 1.0, 17 June 2013
109
-------------------------
110
111
(Taken from release-notes.rst in this release)
112
113
* The 1.0 release of django-registration represents a complete
114
  rewrite of the previous codebase. For information on upgrading,
115
  consult :ref:`the upgrade guide <upgrade>`.
116
117
* The largest overall change is that in place of the monolithic backend
118
  classes and function-based views found in django-registration 0.8, in
119
  1.0 all views are class-based. A "backend" now consists of,
120
  typically, one or two subclasses of :ref:`the built-in base views
121
  <views>`.
122
123
* Implementing these as class-based views allows for far simpler
124
  configuration and customization, without the overhead involved in
125
  supporting large numbers of optional keyword arguments to
126
  function-based views, or the need to provide a separate class-based
127
  infrastructure for implementing the logic of registration.
128
129
* Notably, this implementation is also completely backwards-compatible
130
  for users of django-registration 0.8 who simply used the recommended
131
  default URLConf for one of the supplied backends; those URLConfs exist
132
  in the same locations, and have been rewritten to point to the
133
  appropriate class-based views with the appropriate options.
134
135
136
Version 0.8, 24 March 2012:
137
---------------------------
138
139
* Backend-based rewrite. See docs/upgrade.rst for details.
140
141
* Compatibility through Django 1.4.
142
143
144
Version 0.7, 6 November 2008:
145
-----------------------------
146
147
* Project hosting moved from Google Code to Bitbucket, and from a
148
  Subversion repository to Mercurial.
149
150
* Added test suite.
151
152
* Full Django 1.0 compatibility.
153
154
* Registration and activation views now accept an ``extra_context``
155
  argument, identical to the way that argument works in Django's
156
  generic views.
157
158
* Added a custom management command for cleaning up expired
159
  registrations; you can now run ``manage.py cleanupregistration`` to
160
  handle this.
161
162
* BACKWARDS-INCOMPATIBLE CHANGE: The "username" field in
163
  ``RegistrationForm`` is now a ``RegexField``.
164
165
* BACKWARDS-INCOMPATIBLE CHANGE: Removed the standalone script for
166
  deleting expired user registrations; use the new management command
167
  instead.
168
169
170
Version 0.6, 29 July 2008:
171
--------------------------
172
173
* Packaged from revision 166 in Subversion.
174
175
* Fixed a multiple-objects exception in
176
  ``RegistrationFormUniqueEmail`` when multiple users already have the
177
  same email address.
178
179
* Changed the ``success_url`` of the ``register()`` view to use
180
  reverse URL resolution.
181
182
* Added an ``extra_context`` argument to the ``register`` and
183
  ``activate`` views, mimicking its functionality in Django's generic
184
  views.
185
186
* BACKWARDS-INCOMPATIBLE CHANGE: Switched the admin declaration to be
187
  compliant with the newforms-admin refactor; the admin declaration
188
  now lives in ``registration/admin.py``.
189
190
* BACKWARDS-INCOMPATIBLE CHANGE: Switched form imports from using
191
  ``django.newforms`` to using ``django.forms``; the old style now
192
  raises a deprecation warning on Django trunk and on Django 1.0
193
  alpha.
194
195
196
Version 0.5, 4 June 2008:
197
-------------------------
198
199
* Packaged from revision 155 in Subversion.
200
201
* Added Serbian translation.
202
203
* Added Italian translation.
204
205
* Username/email uniqueness checks are now case-insensitive. This is
206
  potentially backwards-incompatible if you relied on them being
207
  case-sensitive, but I don't know of any reason why you'd be doing
208
  that.
209
210
* Included forms now use lazy translations.
211
212
* The ``register`` view can now handle files submitted for use in form
213
  processing.
214
215
* Reactivation of a manually-deactivated account is now prevented by
216
  changing the activation key, on successful activation, to a dummy
217
  string which will fail on subsequent activation attempts.
218
219
220
Version 0.4p2, 10 Feburary 2008:
221
--------------------------------
222
223
* Added Brazilian Portuguese translation.
224
225
* Added Japanese translation.
226
227
* Added Hebrew translation.
228
229
* Minor documentation fixes.
230
231
232
Version 0.4p1, 16 December 2007:
233
--------------------------------
234
235
* Packaged from revision 129 in Subversion.
236
237
* Added Polish translation.
238
239
240
Version 0.4, 8 December 2007:
241
-----------------------------
242
243
* Packaged from revision 122 in Subversion.
244
245
* Added Greek translation.
246
247
* Added Russian translation.
248
249
* Changed ``maxlength`` to ``max_length`` now that Django issues a
250
  deprecation warning for it.
251
252
* BACKWARDS-INCOMPATIBLE CHANGE: Changed the password validation to be
253
  on ``clean()`` instead of ``clean_password2()``. This means that
254
  errors from this must be accessed via ``non_field_errors()``.
255
256
257
Version 0.3p5, 6 October 2007:
258
------------------------------
259
260
* Packaged from revision 112 in Subversion.
261
262
* Added German translation.
263
264
* Fixed a mismatch between the default ``RegistrationForm``'s maximum
265
  length on email addresses and the actual maximum length on Django's
266
  ``User`` model.
267
268
* Fixed a situation where bad input for the ``password1`` field on
269
  ``RegistrationForm`` could cause validation of ``password2`` to fail
270
  with an exception.
271
272
273
Version 0.3p4, 4 October 2007:
274
------------------------------
275
276
* Packaged from revision 101 in Subversion.
277
278
* BACKWARDS-INCOMPATIBLE CHANGE: In response to larger numbers of
279
  complaints from people trying to use the example templates as-is,
280
  the example templates have been removed.
281
282
283
Version 0.3p2, 23 September 2007:
284
---------------------------------
285
286
* Packaged from revision 100 in Subversion.
287
288
* Fixed ``activate`` view to actually take the ``template_name``
289
  argument.
290
291
292
Version 0.3p1, 22 September 2007:
293
---------------------------------
294
295
* Packaged from revision 99 in Subversion.
296
297
* Fixed a typo in docs/overview.txt.
298
299
* Fixed a typo in bin/delete_expired_users.py.
300
301
* Added French translation.
302
303
304
Version 0.3, 19 September 2007:
305
-------------------------------
306
307
Packaged from revision 89 in Subversion; download at
308
http://django-registration.googlecode.com/files/registration-0.3.tar.gz
309
310
* Changed ``register`` and ``activate`` views to accept
311
  ``template_name`` keyword argument for selecting a custom template.
312
313
* Changed ``register`` view to accept ``form_class`` keyword
314
  argument specifying the form to use.
315
316
* BACKWARDS-INCOMPATIBLE CHANGE: Changed
317
  ``RegistrationManager.create_inactive_user`` to use a template for
318
  the subject of the activation email.
319
320
* BACKWARDS-INCOMPATIBLE CHANGE: Removed the ``tos`` field from
321
  ``RegistrationForm``; if you were relying on it, switch to using
322
  ``RegistrationFormTermsOfService`` instead.
323
324
* BACKWARDS-INCOMPATIBLE CHANGE: The activation email template now
325
  receives the current ``Site`` object as the context variable
326
  ``site``, and the ``current_site`` variable, which only held the
327
  domain, is no longer available.
328
329
* Added script ``bin/delete_expired_users.py`` with instructions on
330
  how to use it as a cron job to clean up expired/inactive accounts.
331
332
* Marked strings for translation and added ``locale`` directory so
333
  that translations can be added.
334
335
* Updated to deal with merge of Django's Unicode branch into trunk;
336
  now using Unicode-aware functions everywhere.
337
338
339
Version 0.2, 29 May 2007:
340
-------------------------
341
342
Packaged from revision 76 in Subversion; download at
343
http://django-registration.googlecode.com/files/registration-0.2.tar.gz
344
345
* Added ability to specify a callback in
346
  ``RegistrationManager.create_inactive_user`` or in the ``register``
347
  view to enable creation of site-specific user profile.
348
349
* Separated out the logic of creating the profile into a new method on
350
  ``RegistrationManager``: ``create_profile``.
351
352
* Added URLConf support for various useful views in
353
  ``django.contrib.auth``.
354
355
* BACKWARDS-INCOMPATIBLE CHANGE: removed the ``key_generated`` field
356
  from ``RegistrationProfile``; activation key expiration is now
357
  calculated based on the ``date_joined`` field in the ``User`` model.
358
  Drop the ``key_generated`` column from your database when upgrading
359
  from 0.1.
360
361
362
Version 0.1, 23 May 2007:
363
-------------------------
364
365
Packaged from revision 56 in Subversion; download at
366
http://django-registration.googlecode.com/files/registration-0.1.tar.gz
367
368
* First packaged version using distutils.
369
370
* Added docs/ directory and overview.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/LICENSE (+28 lines)
Line 0 Link Here
1
Copyright (c) 2007-2012, James Bennett
2
All rights reserved.
3
4
Redistribution and use in source and binary forms, with or without
5
modification, are permitted provided that the following conditions are
6
met:
7
8
    * Redistributions of source code must retain the above copyright
9
      notice, this list of conditions and the following disclaimer.
10
    * Redistributions in binary form must reproduce the above
11
      copyright notice, this list of conditions and the following
12
      disclaimer in the documentation and/or other materials provided
13
      with the distribution.
14
    * Neither the name of the author nor the names of other
15
      contributors may be used to endorse or promote products derived
16
      from this software without specific prior written permission.
17
18
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/MANIFEST.in (+10 lines)
Line 0 Link Here
1
include CHANGELOG
2
include INSTALL
3
include LICENSE
4
include MANIFEST.in
5
include README.rst
6
include AUTHORS
7
recursive-include docs *
8
prune docs/_build
9
recursive-include registration/locale *
10
recursive-include registration/templates *
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/PKG-INFO (+127 lines)
Line 0 Link Here
1
Metadata-Version: 1.1
2
Name: django-registration-redux
3
Version: 1.4
4
Summary: An extensible user-registration application for Django
5
Home-page: https://github.com/macropin/django-registration
6
Author: Andrew Cutler
7
Author-email: macropin@gmail.com
8
License: UNKNOWN
9
Description: .. -*-restructuredtext-*-
10
        
11
        :Description: Django-registration provides user registration functionality for Django websites.
12
        :maintainers: Macropin_ & Dicato_
13
        :contributors: `list of contributors <https://github.com/macropin/django-registration/graphs/contributors>`_
14
        
15
        .. _Macropin: https://github.com/macropin
16
        .. _Dicato: https://github.com/dicato
17
        
18
        
19
        .. image:: https://travis-ci.org/macropin/django-registration.svg?branch=master
20
            :target: https://travis-ci.org/macropin/django-registration
21
        
22
        .. image:: https://coveralls.io/repos/macropin/django-registration/badge.svg?branch=master
23
            :target: https://coveralls.io/r/macropin/django-registration/
24
        
25
        .. image:: https://badge.fury.io/py/django-registration-redux.svg
26
            :target: https://pypi.python.org/pypi/django-registration-redux/
27
        
28
        .. image:: https://pypip.in/download/django-registration-redux/badge.svg
29
            :target: https://pypi.python.org/pypi/django-registration-redux/
30
        
31
        
32
        
33
        If you have issues with the "django-registration-redux" package then please `raise them here`_.
34
        
35
        This is a fairly simple user-registration application for Django,
36
        designed to make allowing user signups as painless as possible. It
37
        requires a functional installation of Django 1.7 or newer, but has no
38
        other dependencies.
39
        
40
        For instructions on how to use this application, and on
41
        what it provides, see the file "quickstart.rst" in the "docs/"
42
        directory. Full documentation is also `available online`_
43
        
44
        
45
        Installation
46
        ------------
47
        
48
        Install, upgrade and uninstall django-registration-redux with these commands::
49
        
50
            pip install django-registration-redux
51
            pip install --upgrade django-registration-redux
52
            pip uninstall django-registration-redux
53
        
54
        To install it manually, run the following command inside this source directory::
55
        
56
            python setup.py install
57
        
58
        
59
        Or if you'd prefer you can simply place the included ``registration``
60
        directory somewhere on your Python path, or symlink to it from
61
        somewhere on your Python path; this is useful if you're working from a
62
        Git checkout.
63
        
64
        Note that this application requires Python 2.7/3.4 or later, and a
65
        functional installation of Django 1.7 or newer.
66
        
67
        Getting started with development
68
        ------------
69
        
70
        To get started with development, first install the required packages::
71
        
72
            make installdeps
73
        
74
        For convenience a ``Makefile`` is included which wraps the Python `invoke
75
        <http://www.pyinvoke.org/>`_ library. Once you work on a patch, you can test
76
        the functionality by running::
77
        
78
            make test
79
        
80
        Or equivalently::
81
        
82
            invoke test
83
        
84
        Command line arguments can be passed to the ``invoke`` script through the
85
        ``Makefile`` via the ``ARGS`` parameter. For example::
86
        
87
            make build ARGS=--docs
88
        
89
        Or equivalently::
90
        
91
            invoke build --docs
92
        
93
        Alternatives
94
        ------------
95
        
96
        `djangopackages.com <https://www.djangopackages.com/grids/g/registration/>`_
97
        has a comprehensive comparison of Django packages used for user registration
98
        and authentication.
99
        
100
        For example, `django-allauth <http://www.intenct.nl/projects/django-allauth/>`_
101
        is an alternative to django-regisitration-redux that provides user registration
102
        in addition to social authentication and email address management.
103
        
104
        License
105
        -------
106
        
107
        Django-registration-redux is licensed under `BSD License`.
108
        
109
        
110
        
111
        .. _`available online`: https://django-registration-redux.readthedocs.org/
112
        .. _`raise them here`: https://github.com/macropin/django-registration/issues
113
        
114
Platform: UNKNOWN
115
Classifier: Development Status :: 5 - Production/Stable
116
Classifier: Environment :: Web Environment
117
Classifier: Framework :: Django
118
Classifier: Intended Audience :: Developers
119
Classifier: License :: OSI Approved :: BSD License
120
Classifier: Operating System :: OS Independent
121
Classifier: Programming Language :: Python
122
Classifier: Programming Language :: Python :: 2.7
123
Classifier: Programming Language :: Python :: 3
124
Classifier: Programming Language :: Python :: 3.4
125
Classifier: Programming Language :: Python :: 3.5
126
Classifier: Topic :: Software Development :: Libraries :: Python Modules
127
Classifier: Topic :: Utilities
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/README.rst (+104 lines)
Line 0 Link Here
1
.. -*-restructuredtext-*-
2
3
:Description: Django-registration provides user registration functionality for Django websites.
4
:maintainers: Macropin_ & Dicato_
5
:contributors: `list of contributors <https://github.com/macropin/django-registration/graphs/contributors>`_
6
7
.. _Macropin: https://github.com/macropin
8
.. _Dicato: https://github.com/dicato
9
10
11
.. image:: https://travis-ci.org/macropin/django-registration.svg?branch=master
12
    :target: https://travis-ci.org/macropin/django-registration
13
14
.. image:: https://coveralls.io/repos/macropin/django-registration/badge.svg?branch=master
15
    :target: https://coveralls.io/r/macropin/django-registration/
16
17
.. image:: https://badge.fury.io/py/django-registration-redux.svg
18
    :target: https://pypi.python.org/pypi/django-registration-redux/
19
20
.. image:: https://pypip.in/download/django-registration-redux/badge.svg
21
    :target: https://pypi.python.org/pypi/django-registration-redux/
22
23
24
25
If you have issues with the "django-registration-redux" package then please `raise them here`_.
26
27
This is a fairly simple user-registration application for Django,
28
designed to make allowing user signups as painless as possible. It
29
requires a functional installation of Django 1.7 or newer, but has no
30
other dependencies.
31
32
For instructions on how to use this application, and on
33
what it provides, see the file "quickstart.rst" in the "docs/"
34
directory. Full documentation is also `available online`_
35
36
37
Installation
38
------------
39
40
Install, upgrade and uninstall django-registration-redux with these commands::
41
42
    pip install django-registration-redux
43
    pip install --upgrade django-registration-redux
44
    pip uninstall django-registration-redux
45
46
To install it manually, run the following command inside this source directory::
47
48
    python setup.py install
49
50
51
Or if you'd prefer you can simply place the included ``registration``
52
directory somewhere on your Python path, or symlink to it from
53
somewhere on your Python path; this is useful if you're working from a
54
Git checkout.
55
56
Note that this application requires Python 2.7/3.4 or later, and a
57
functional installation of Django 1.7 or newer.
58
59
Getting started with development
60
------------
61
62
To get started with development, first install the required packages::
63
64
    make installdeps
65
66
For convenience a ``Makefile`` is included which wraps the Python `invoke
67
<http://www.pyinvoke.org/>`_ library. Once you work on a patch, you can test
68
the functionality by running::
69
70
    make test
71
72
Or equivalently::
73
74
    invoke test
75
76
Command line arguments can be passed to the ``invoke`` script through the
77
``Makefile`` via the ``ARGS`` parameter. For example::
78
79
    make build ARGS=--docs
80
81
Or equivalently::
82
83
    invoke build --docs
84
85
Alternatives
86
------------
87
88
`djangopackages.com <https://www.djangopackages.com/grids/g/registration/>`_
89
has a comprehensive comparison of Django packages used for user registration
90
and authentication.
91
92
For example, `django-allauth <http://www.intenct.nl/projects/django-allauth/>`_
93
is an alternative to django-regisitration-redux that provides user registration
94
in addition to social authentication and email address management.
95
96
License
97
-------
98
99
Django-registration-redux is licensed under `BSD License`.
100
101
102
103
.. _`available online`: https://django-registration-redux.readthedocs.org/
104
.. _`raise them here`: https://github.com/macropin/django-registration/issues
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/django_registration_redux.egg-info/PKG-INFO (+127 lines)
Line 0 Link Here
1
Metadata-Version: 1.1
2
Name: django-registration-redux
3
Version: 1.4
4
Summary: An extensible user-registration application for Django
5
Home-page: https://github.com/macropin/django-registration
6
Author: Andrew Cutler
7
Author-email: macropin@gmail.com
8
License: UNKNOWN
9
Description: .. -*-restructuredtext-*-
10
        
11
        :Description: Django-registration provides user registration functionality for Django websites.
12
        :maintainers: Macropin_ & Dicato_
13
        :contributors: `list of contributors <https://github.com/macropin/django-registration/graphs/contributors>`_
14
        
15
        .. _Macropin: https://github.com/macropin
16
        .. _Dicato: https://github.com/dicato
17
        
18
        
19
        .. image:: https://travis-ci.org/macropin/django-registration.svg?branch=master
20
            :target: https://travis-ci.org/macropin/django-registration
21
        
22
        .. image:: https://coveralls.io/repos/macropin/django-registration/badge.svg?branch=master
23
            :target: https://coveralls.io/r/macropin/django-registration/
24
        
25
        .. image:: https://badge.fury.io/py/django-registration-redux.svg
26
            :target: https://pypi.python.org/pypi/django-registration-redux/
27
        
28
        .. image:: https://pypip.in/download/django-registration-redux/badge.svg
29
            :target: https://pypi.python.org/pypi/django-registration-redux/
30
        
31
        
32
        
33
        If you have issues with the "django-registration-redux" package then please `raise them here`_.
34
        
35
        This is a fairly simple user-registration application for Django,
36
        designed to make allowing user signups as painless as possible. It
37
        requires a functional installation of Django 1.7 or newer, but has no
38
        other dependencies.
39
        
40
        For instructions on how to use this application, and on
41
        what it provides, see the file "quickstart.rst" in the "docs/"
42
        directory. Full documentation is also `available online`_
43
        
44
        
45
        Installation
46
        ------------
47
        
48
        Install, upgrade and uninstall django-registration-redux with these commands::
49
        
50
            pip install django-registration-redux
51
            pip install --upgrade django-registration-redux
52
            pip uninstall django-registration-redux
53
        
54
        To install it manually, run the following command inside this source directory::
55
        
56
            python setup.py install
57
        
58
        
59
        Or if you'd prefer you can simply place the included ``registration``
60
        directory somewhere on your Python path, or symlink to it from
61
        somewhere on your Python path; this is useful if you're working from a
62
        Git checkout.
63
        
64
        Note that this application requires Python 2.7/3.4 or later, and a
65
        functional installation of Django 1.7 or newer.
66
        
67
        Getting started with development
68
        ------------
69
        
70
        To get started with development, first install the required packages::
71
        
72
            make installdeps
73
        
74
        For convenience a ``Makefile`` is included which wraps the Python `invoke
75
        <http://www.pyinvoke.org/>`_ library. Once you work on a patch, you can test
76
        the functionality by running::
77
        
78
            make test
79
        
80
        Or equivalently::
81
        
82
            invoke test
83
        
84
        Command line arguments can be passed to the ``invoke`` script through the
85
        ``Makefile`` via the ``ARGS`` parameter. For example::
86
        
87
            make build ARGS=--docs
88
        
89
        Or equivalently::
90
        
91
            invoke build --docs
92
        
93
        Alternatives
94
        ------------
95
        
96
        `djangopackages.com <https://www.djangopackages.com/grids/g/registration/>`_
97
        has a comprehensive comparison of Django packages used for user registration
98
        and authentication.
99
        
100
        For example, `django-allauth <http://www.intenct.nl/projects/django-allauth/>`_
101
        is an alternative to django-regisitration-redux that provides user registration
102
        in addition to social authentication and email address management.
103
        
104
        License
105
        -------
106
        
107
        Django-registration-redux is licensed under `BSD License`.
108
        
109
        
110
        
111
        .. _`available online`: https://django-registration-redux.readthedocs.org/
112
        .. _`raise them here`: https://github.com/macropin/django-registration/issues
113
        
114
Platform: UNKNOWN
115
Classifier: Development Status :: 5 - Production/Stable
116
Classifier: Environment :: Web Environment
117
Classifier: Framework :: Django
118
Classifier: Intended Audience :: Developers
119
Classifier: License :: OSI Approved :: BSD License
120
Classifier: Operating System :: OS Independent
121
Classifier: Programming Language :: Python
122
Classifier: Programming Language :: Python :: 2.7
123
Classifier: Programming Language :: Python :: 3
124
Classifier: Programming Language :: Python :: 3.4
125
Classifier: Programming Language :: Python :: 3.5
126
Classifier: Topic :: Software Development :: Libraries :: Python Modules
127
Classifier: Topic :: Utilities
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/django_registration_redux.egg-info/SOURCES.txt (+142 lines)
Line 0 Link Here
1
AUTHORS
2
CHANGELOG
3
LICENSE
4
MANIFEST.in
5
README.rst
6
setup.cfg
7
setup.py
8
django_registration_redux.egg-info/PKG-INFO
9
django_registration_redux.egg-info/SOURCES.txt
10
django_registration_redux.egg-info/dependency_links.txt
11
django_registration_redux.egg-info/top_level.txt
12
docs/Makefile
13
docs/conf.py
14
docs/default-backend.rst
15
docs/faq.rst
16
docs/forms.rst
17
docs/index.rst
18
docs/make.bat
19
docs/quickstart.rst
20
docs/release-notes.rst
21
docs/signals.rst
22
docs/simple-backend.rst
23
docs/upgrade.rst
24
docs/views.rst
25
registration/__init__.py
26
registration/admin.py
27
registration/auth_urls.py
28
registration/forms.py
29
registration/models.py
30
registration/signals.py
31
registration/urls.py
32
registration/users.py
33
registration/views.py
34
registration/backends/__init__.py
35
registration/backends/default/__init__.py
36
registration/backends/default/urls.py
37
registration/backends/default/views.py
38
registration/backends/simple/__init__.py
39
registration/backends/simple/urls.py
40
registration/backends/simple/views.py
41
registration/locale/ar/LC_MESSAGES/django.mo
42
registration/locale/ar/LC_MESSAGES/django.po
43
registration/locale/bg/LC_MESSAGES/django.mo
44
registration/locale/bg/LC_MESSAGES/django.po
45
registration/locale/ca/LC_MESSAGES/django.mo
46
registration/locale/ca/LC_MESSAGES/django.po
47
registration/locale/cs/LC_MESSAGES/django.mo
48
registration/locale/cs/LC_MESSAGES/django.po
49
registration/locale/da/LC_MESSAGES/django.mo
50
registration/locale/da/LC_MESSAGES/django.po
51
registration/locale/de/LC_MESSAGES/django.mo
52
registration/locale/de/LC_MESSAGES/django.po
53
registration/locale/el/LC_MESSAGES/django.mo
54
registration/locale/el/LC_MESSAGES/django.po
55
registration/locale/en/LC_MESSAGES/django.mo
56
registration/locale/en/LC_MESSAGES/django.po
57
registration/locale/es/LC_MESSAGES/django.mo
58
registration/locale/es/LC_MESSAGES/django.po
59
registration/locale/es_AR/LC_MESSAGES/django.mo
60
registration/locale/es_AR/LC_MESSAGES/django.po
61
registration/locale/fa/LC_MESSAGES/django.mo
62
registration/locale/fa/LC_MESSAGES/django.po
63
registration/locale/fr/LC_MESSAGES/django.mo
64
registration/locale/fr/LC_MESSAGES/django.po
65
registration/locale/he/LC_MESSAGES/django.mo
66
registration/locale/he/LC_MESSAGES/django.po
67
registration/locale/hr/LC_MESSAGES/django.mo
68
registration/locale/hr/LC_MESSAGES/django.po
69
registration/locale/hu/LC_MESSAGES/django.mo
70
registration/locale/hu/LC_MESSAGES/django.po
71
registration/locale/is/LC_MESSAGES/django.mo
72
registration/locale/is/LC_MESSAGES/django.po
73
registration/locale/it/LC_MESSAGES/django.mo
74
registration/locale/it/LC_MESSAGES/django.po
75
registration/locale/ja/LC_MESSAGES/django.mo
76
registration/locale/ja/LC_MESSAGES/django.po
77
registration/locale/ko/LC_MESSAGES/django.mo
78
registration/locale/ko/LC_MESSAGES/django.po
79
registration/locale/nb/LC_MESSAGES/django.mo
80
registration/locale/nb/LC_MESSAGES/django.po
81
registration/locale/nl/LC_MESSAGES/django.mo
82
registration/locale/nl/LC_MESSAGES/django.po
83
registration/locale/pl/LC_MESSAGES/django.mo
84
registration/locale/pl/LC_MESSAGES/django.po
85
registration/locale/pt/LC_MESSAGES/django.mo
86
registration/locale/pt/LC_MESSAGES/django.po
87
registration/locale/pt_BR/LC_MESSAGES/django.mo
88
registration/locale/pt_BR/LC_MESSAGES/django.po
89
registration/locale/ru/LC_MESSAGES/django.mo
90
registration/locale/ru/LC_MESSAGES/django.po
91
registration/locale/sl/LC_MESSAGES/django.mo
92
registration/locale/sl/LC_MESSAGES/django.po
93
registration/locale/sr/LC_MESSAGES/django.mo
94
registration/locale/sr/LC_MESSAGES/django.po
95
registration/locale/sv/LC_MESSAGES/django.mo
96
registration/locale/sv/LC_MESSAGES/django.po
97
registration/locale/th/LC_MESSAGES/django.po
98
registration/locale/tr_TR/LC_MESSAGES/django.mo
99
registration/locale/tr_TR/LC_MESSAGES/django.po
100
registration/locale/zh_CN/LC_MESSAGES/django.mo
101
registration/locale/zh_CN/LC_MESSAGES/django.po
102
registration/locale/zh_TW/LC_MESSAGES/django.mo
103
registration/locale/zh_TW/LC_MESSAGES/django.po
104
registration/management/__init__.py
105
registration/management/commands/__init__.py
106
registration/management/commands/cleanupregistration.py
107
registration/migrations/0001_initial.py
108
registration/migrations/0002_registrationprofile_activated.py
109
registration/migrations/0003_migrate_activatedstatus.py
110
registration/migrations/__init__.py
111
registration/templates/registration/activate.html
112
registration/templates/registration/activation_complete.html
113
registration/templates/registration/activation_email.html
114
registration/templates/registration/activation_email.txt
115
registration/templates/registration/activation_email_subject.txt
116
registration/templates/registration/login.html
117
registration/templates/registration/logout.html
118
registration/templates/registration/password_change_done.html
119
registration/templates/registration/password_change_form.html
120
registration/templates/registration/password_reset_complete.html
121
registration/templates/registration/password_reset_confirm.html
122
registration/templates/registration/password_reset_done.html
123
registration/templates/registration/password_reset_email.html
124
registration/templates/registration/password_reset_form.html
125
registration/templates/registration/registration_base.html
126
registration/templates/registration/registration_closed.html
127
registration/templates/registration/registration_complete.html
128
registration/templates/registration/registration_form.html
129
registration/tests/__init__.py
130
registration/tests/admin_actions.py
131
registration/tests/default_backend.py
132
registration/tests/forms.py
133
registration/tests/forms_custom_user.py
134
registration/tests/models.py
135
registration/tests/simple_backend.py
136
registration/tests/urls.py
137
test_app/__init__.py
138
test_app/models.py
139
test_app/settings.py
140
test_app/settings_test.py
141
test_app/urls_default.py
142
test_app/urls_simple.py
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/django_registration_redux.egg-info/dependency_links.txt (+1 lines)
Line 0 Link Here
1
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/django_registration_redux.egg-info/top_level.txt (+2 lines)
Line 0 Link Here
1
registration
2
test_app
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/Makefile (+88 lines)
Line 0 Link Here
1
# Makefile for Sphinx documentation
2
#
3
4
# You can set these variables from the command line.
5
SPHINXOPTS    =
6
SPHINXBUILD   = sphinx-build
7
PAPER         =
8
9
# Internal variables.
10
PAPEROPT_a4     = -D latex_paper_size=a4
11
PAPEROPT_letter = -D latex_paper_size=letter
12
ALLSPHINXOPTS   = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
13
14
.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
15
16
help:
17
	@echo "Please use \`make <target>' where <target> is one of"
18
	@echo "  html      to make standalone HTML files"
19
	@echo "  dirhtml   to make HTML files named index.html in directories"
20
	@echo "  pickle    to make pickle files"
21
	@echo "  json      to make JSON files"
22
	@echo "  htmlhelp  to make HTML files and a HTML help project"
23
	@echo "  qthelp    to make HTML files and a qthelp project"
24
	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
25
	@echo "  changes   to make an overview of all changed/added/deprecated items"
26
	@echo "  linkcheck to check all external links for integrity"
27
	@echo "  doctest   to run all doctests embedded in the documentation (if enabled)"
28
29
clean:
30
	-rm -rf _build/*
31
32
html:
33
	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
34
	@echo
35
	@echo "Build finished. The HTML pages are in _build/html."
36
37
dirhtml:
38
	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) _build/dirhtml
39
	@echo
40
	@echo "Build finished. The HTML pages are in _build/dirhtml."
41
42
pickle:
43
	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
44
	@echo
45
	@echo "Build finished; now you can process the pickle files."
46
47
json:
48
	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json
49
	@echo
50
	@echo "Build finished; now you can process the JSON files."
51
52
htmlhelp:
53
	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
54
	@echo
55
	@echo "Build finished; now you can run HTML Help Workshop with the" \
56
	      ".hhp project file in _build/htmlhelp."
57
58
qthelp:
59
	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) _build/qthelp
60
	@echo
61
	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
62
	      ".qhcp project file in _build/qthelp, like this:"
63
	@echo "# qcollectiongenerator _build/qthelp/django-registration.qhcp"
64
	@echo "To view the help file:"
65
	@echo "# assistant -collectionFile _build/qthelp/django-registration.qhc"
66
67
latex:
68
	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
69
	@echo
70
	@echo "Build finished; the LaTeX files are in _build/latex."
71
	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
72
	      "run these through (pdf)latex."
73
74
changes:
75
	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
76
	@echo
77
	@echo "The overview file is in _build/changes."
78
79
linkcheck:
80
	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
81
	@echo
82
	@echo "Link check complete; look for any errors in the above output " \
83
	      "or in _build/linkcheck/output.txt."
84
85
doctest:
86
	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest
87
	@echo "Testing of doctests in the sources finished, look at the " \
88
	      "results in _build/doctest/output.txt."
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/conf.py (+197 lines)
Line 0 Link Here
1
# -*- coding: utf-8 -*-
2
#
3
# django-registration documentation build configuration file, created by
4
# sphinx-quickstart on Mon Jun 22 02:57:42 2009.
5
#
6
# This file is execfile()d with the current directory set to its containing dir.
7
#
8
# Note that not all possible configuration values are present in this
9
# autogenerated file.
10
#
11
# All configuration values have a default; values that are commented out
12
# serve to show the default.
13
14
import sys, os
15
16
# If extensions (or modules to document with autodoc) are in another directory,
17
# add these directories to sys.path here. If the directory is relative to the
18
# documentation root, use os.path.abspath to make it absolute, like shown here.
19
#sys.path.append(os.path.abspath('.'))
20
21
# -- General configuration -----------------------------------------------------
22
23
# Add any Sphinx extension module names here, as strings. They can be extensions
24
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
25
extensions = []
26
27
# Add any paths that contain templates here, relative to this directory.
28
templates_path = ['_templates']
29
30
# The suffix of source filenames.
31
source_suffix = '.rst'
32
33
# The encoding of source files.
34
#source_encoding = 'utf-8'
35
36
# The master toctree document.
37
master_doc = 'index'
38
39
# General information about the project.
40
project = u'django-registration-redux'
41
copyright = u'2007-2013, James Bennett. 2014, Andrew Cutler and others.'
42
43
# The version info for the project you're documenting, acts as replacement for
44
# |version| and |release|, also used in various other places throughout the
45
# built documents.
46
#
47
# The short X.Y version.
48
version = '1.4'
49
# The full version, including alpha/beta/rc tags.
50
release = '1.4'
51
52
# The language for content autogenerated by Sphinx. Refer to documentation
53
# for a list of supported languages.
54
#language = None
55
56
# There are two options for replacing |today|: either, you set today to some
57
# non-false value, then it is used:
58
#today = ''
59
# Else, today_fmt is used as the format for a strftime call.
60
#today_fmt = '%B %d, %Y'
61
62
# List of documents that shouldn't be included in the build.
63
#unused_docs = []
64
65
# List of directories, relative to source directory, that shouldn't be searched
66
# for source files.
67
exclude_trees = ['_build']
68
69
# The reST default role (used for this markup: `text`) to use for all documents.
70
#default_role = None
71
72
# If true, '()' will be appended to :func: etc. cross-reference text.
73
#add_function_parentheses = True
74
75
# If true, the current module name will be prepended to all description
76
# unit titles (such as .. function::).
77
#add_module_names = True
78
79
# If true, sectionauthor and moduleauthor directives will be shown in the
80
# output. They are ignored by default.
81
#show_authors = False
82
83
# The name of the Pygments (syntax highlighting) style to use.
84
pygments_style = 'sphinx'
85
86
# A list of ignored prefixes for module index sorting.
87
#modindex_common_prefix = []
88
89
90
# -- Options for HTML output ---------------------------------------------------
91
92
# The theme to use for HTML and HTML Help pages.  Major themes that come with
93
# Sphinx are currently 'default' and 'sphinxdoc'.
94
html_theme = 'default'
95
96
# Theme options are theme-specific and customize the look and feel of a theme
97
# further.  For a list of options available for each theme, see the
98
# documentation.
99
#html_theme_options = {}
100
101
# Add any paths that contain custom themes here, relative to this directory.
102
#html_theme_path = []
103
104
# The name for this set of Sphinx documents.  If None, it defaults to
105
# "<project> v<release> documentation".
106
#html_title = None
107
108
# A shorter title for the navigation bar.  Default is the same as html_title.
109
#html_short_title = None
110
111
# The name of an image file (relative to this directory) to place at the top
112
# of the sidebar.
113
#html_logo = None
114
115
# The name of an image file (within the static path) to use as favicon of the
116
# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
117
# pixels large.
118
#html_favicon = None
119
120
# Add any paths that contain custom static files (such as style sheets) here,
121
# relative to this directory. They are copied after the builtin static files,
122
# so a file named "default.css" will overwrite the builtin "default.css".
123
#html_static_path = ['_static']
124
125
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
126
# using the given strftime format.
127
#html_last_updated_fmt = '%b %d, %Y'
128
129
# If true, SmartyPants will be used to convert quotes and dashes to
130
# typographically correct entities.
131
#html_use_smartypants = True
132
133
# Custom sidebar templates, maps document names to template names.
134
#html_sidebars = {}
135
136
# Additional templates that should be rendered to pages, maps page names to
137
# template names.
138
#html_additional_pages = {}
139
140
# If false, no module index is generated.
141
#html_use_modindex = True
142
143
# If false, no index is generated.
144
#html_use_index = True
145
146
# If true, the index is split into individual pages for each letter.
147
#html_split_index = False
148
149
# If true, links to the reST sources are added to the pages.
150
#html_show_sourcelink = True
151
152
# If true, an OpenSearch description file will be output, and all pages will
153
# contain a <link> tag referring to it.  The value of this option must be the
154
# base URL from which the finished HTML is served.
155
#html_use_opensearch = ''
156
157
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
158
#html_file_suffix = ''
159
160
# Output file base name for HTML help builder.
161
htmlhelp_basename = 'django-registration-reduxdoc'
162
163
164
# -- Options for LaTeX output --------------------------------------------------
165
166
# The paper size ('letter' or 'a4').
167
#latex_paper_size = 'letter'
168
169
# The font size ('10pt', '11pt' or '12pt').
170
#latex_font_size = '10pt'
171
172
# Grouping the document tree into LaTeX files. List of tuples
173
# (source start file, target name, title, author, documentclass [howto/manual]).
174
latex_documents = [
175
  ('index', 'django-registration-redux.tex', u'django-registration-redux Documentation',
176
   u'James Bennett', 'manual'),
177
]
178
179
# The name of an image file (relative to this directory) to place at the top of
180
# the title page.
181
#latex_logo = None
182
183
# For "manual" documents, if this is true, then toplevel headings are parts,
184
# not chapters.
185
#latex_use_parts = False
186
187
# Additional stuff for the LaTeX preamble.
188
#latex_preamble = ''
189
190
# Documents to append as an appendix to all manuals.
191
#latex_appendices = []
192
193
# If false, no module index is generated.
194
#latex_use_modindex = True
195
196
197
rst_epilog = '.. |project| replace:: %s' % project
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/default-backend.rst (+281 lines)
Line 0 Link Here
1
.. _default-backend:
2
.. module:: registration.backends.default
3
4
The default backend
5
===================
6
7
A default registration backend` is bundled with |project|,
8
as the module ``registration.backends.default``, and implements a
9
simple two-step workflow in which a new user first registers, then
10
confirms and activates the new account by following a link sent to the
11
email address supplied during registration.
12
13
14
Default behavior and configuration
15
----------------------------------
16
17
To make use of this backend, simply include the URLConf
18
``registration.backends.default.urls`` at whatever location you choose
19
in your URL hierarchy.
20
21
This backend makes use of the following settings:
22
23
``ACCOUNT_ACTIVATION_DAYS``
24
    This is the number of days users will have to activate their
25
    accounts after registering. Failing to activate during that period
26
    will leave the account inactive (and possibly subject to
27
    deletion). This setting is required, and must be an integer.
28
29
``REGISTRATION_OPEN``
30
    A boolean (either ``True`` or ``False``) indicating whether
31
    registration of new accounts is currently permitted. This setting
32
    is optional, and a default of ``True`` will be assumed if it is
33
    not supplied.
34
35
``INCLUDE_AUTH_URLS``
36
    A boolean (either ``True`` or ``False``) indicating whether auth urls
37
    (mapped to ``django.contrib.auth.views``) should be included in the
38
    ``urlpatterns`` of the application backend.
39
40
``INCLUDE_REGISTER_URL``
41
    A boolean (either ``True`` or ``False``) indicating whether the view
42
    for registering accounts should be included in the ``urlpatterns``
43
    of the application backend.
44
45
``REGISTRATION_FORM``
46
    A string dotted path to the desired registration form.
47
48
By default, this backend uses
49
:class:`registration.forms.RegistrationForm` as its form class for
50
user registration; this can be overridden by passing the keyword
51
argument ``form_class`` to the :func:`~registration.views.register`
52
view.
53
54
Two views are provided:
55
``registration.backends.default.views.RegistrationView`` and
56
``registration.backends.default.views.ActivationView``. These views
57
subclass |project|'s base
58
:class:`~registration.views.RegistrationView` and
59
:class:`~registration.views.ActivationView`, respectively, and
60
implement the two-step registration/activation process.
61
62
Upon successful registration -- not activation -- the default redirect
63
is to the URL pattern named ``registration_complete``; this can be
64
overridden in subclasses by changing
65
:attr:`~registration.views.RegistrationView.success_url` or
66
implementing
67
:meth:`~registration.views.RegistrationView.get_success_url()`
68
69
Upon successful activation, the default redirect is to the URL pattern
70
named ``registration_activation_complete``; this can be overridden in
71
subclasses by implementing
72
:meth:`~registration.views.ActivationView.get_success_url()`.
73
74
75
How account data is stored for activation
76
-----------------------------------------
77
78
During registration, a new instance of
79
``django.contrib.auth.models.User`` is created to represent the new
80
account, with the ``is_active`` field set to ``False``. An email is
81
then sent to the email address of the account, containing a link the
82
user must click to activate the account; at that point the
83
``is_active`` field is set to ``True``, and the user may log in
84
normally.
85
86
Activation is handled by generating and storing an activation key in
87
the database, using the following model:
88
89
90
.. currentmodule:: registration.models
91
92
.. class:: RegistrationProfile
93
94
   A simple representation of the information needed to activate a new
95
   user account. This is **not** a user profile; it simply provides a
96
   place to temporarily store the activation key and determine whether
97
   a given account has been activated.
98
99
   Has the following fields:
100
101
   .. attribute:: user
102
103
      A ``ForeignKey`` to ``django.contrib.auth.models.User``,
104
      representing the user account for which activation information
105
      is being stored.
106
107
   .. attribute:: activation_key
108
109
      A 40-character ``CharField``, storing the activation key for the
110
      account. The activation key is the hexdigest of a SHA1 hash.
111
112
   .. attribute:: activated
113
114
      A ``BooleanField``, storing whether or not the the User has activated
115
      their account. Storing this independent from ``self.user.is_active``
116
      allows accounts to be deactivated and prevent being reactivated without
117
      authorization.
118
119
   And the following methods:
120
121
   .. method:: activation_key_expired()
122
123
      Determines whether this account's activation key has expired,
124
      and returns a boolean (``True`` if expired, ``False``
125
      otherwise). Uses the following algorithm:
126
127
      1. If :attr:`activated` is ``True``, the account
128
         has already been activated and so the key is considered to
129
         have expired.
130
131
      2. Otherwise, the date of registration (obtained from the
132
         ``date_joined`` field of :attr:`user`) is compared to the
133
         current date; if the span between them is greater than the
134
         value of the setting ``ACCOUNT_ACTIVATION_DAYS``, the key is
135
         considered to have expired.
136
137
      :rtype: bool
138
139
   .. method:: send_activation_email(site[, request])
140
141
      Sends an activation email to the address of the account.
142
143
      The activation email will make use of two templates:
144
      ``registration/activation_email_subject.txt`` and
145
      ``registration/activation_email.txt``, which are used for the
146
      subject of the email and the body of the email,
147
      respectively. Each will receive the following context:
148
149
      ``activation_key``
150
          The value of :attr:`activation_key`.
151
152
      ``expiration_days``
153
          The number of days the user has to activate, taken from the
154
          setting ``ACCOUNT_ACTIVATION_DAYS``.
155
156
      ``site``
157
          An object representing the site on which the account was
158
          registered; depending on whether ``django.contrib.sites`` is
159
          installed, this may be an instance of either
160
          ``django.contrib.sites.models.Site`` (if the sites
161
          application is installed) or
162
          ``django.contrib.sites.models.RequestSite`` (if
163
          not). Consult `the documentation for the Django sites
164
          framework
165
          <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`_
166
          for details regarding these objects' interfaces.
167
168
      ``request``
169
          Django's ``HttpRequest`` object for better flexibility.
170
          When provided, it will also provide all the data via
171
          installed template context processors which can provide
172
          even more flexibility by using many Django's provided
173
          and custom template context processors to provide more
174
          variables to the template.
175
176
      Because email subjects must be a single line of text, the
177
      rendered output of ``registration/activation_email_subject.txt``
178
      will be forcibly condensed to a single line.
179
180
      :param site: An object representing the site on which account
181
         was registered.
182
      :type site: ``django.contrib.sites.models.Site`` or
183
        ``django.contrib.sites.models.RequestSite``
184
      :param request: Optional Django's ``HttpRequest`` object
185
         from view which if supplied will be passed to the template
186
         via ``RequestContext``. As a consequence, all installed
187
         ``TEMPLATE_CONTEXT_PROCESSORS`` will be used to populate
188
         context.
189
      :type request: ``django.http.request.HttpRequest``
190
      :rtype: ``None``
191
192
193
Additionally, :class:`RegistrationProfile` has a custom manager
194
(accessed as ``RegistrationProfile.objects``):
195
196
197
.. class:: RegistrationManager
198
199
   This manager provides several convenience methods for creating and
200
   working with instances of :class:`RegistrationProfile`:
201
202
   .. method:: activate_user(activation_key)
203
204
      Validates ``activation_key`` and, if valid, activates the
205
      associated account by setting its ``is_active`` field to
206
      ``True``. To prevent re-activation of accounts, the
207
      :attr:`~RegistrationProfile.activated` of the
208
      :class:`RegistrationProfile` for the account will be set to
209
      ``True`` after successful activation.
210
211
      Returns the ``User`` instance representing the account if
212
      activation is successful, ``False`` otherwise.
213
214
      :param activation_key: The activation key to use for the
215
         activation.
216
      :type activation_key: string, a 40-character SHA1 hexdigest
217
      :rtype: ``User`` or bool
218
219
   .. method:: delete_expired_users
220
221
      Removes expired instances of :class:`RegistrationProfile`, and
222
      their associated user accounts, from the database. This is
223
      useful as a periodic maintenance task to clean out accounts
224
      which registered but never activated.
225
226
      Accounts to be deleted are identified by searching for instances
227
      of :class:`RegistrationProfile` with expired activation keys and
228
      with associated user accounts which are inactive (have their
229
      ``is_active`` field set to ``False``). To disable a user account
230
      without having it deleted, simply delete its associated
231
      :class:`RegistrationProfile`; any ``User`` which does not have
232
      an associated :class:`RegistrationProfile` will not be deleted.
233
234
      A custom management command is provided which will execute this
235
      method, suitable for use in cron jobs or other scheduled
236
      maintenance tasks: ``manage.py cleanupregistration``.
237
238
      :rtype: ``None``
239
240
   .. method:: create_inactive_user(site, [new_user=None, send_email=True, request=None, **user_info])
241
242
      Creates a new, inactive user account and an associated instance
243
      of :class:`RegistrationProfile`, sends the activation email and
244
      returns the new ``User`` object representing the account.
245
246
      :param new_user: The user instance.
247
      :type new_user: ``django.contrib.auth.models.AbstractBaseUser```
248
      :param user_info: The fields to use for the new account.
249
      :type user_info: dict
250
      :param site: An object representing the site on which the
251
         account is being registered.
252
      :type site: ``django.contrib.sites.models.Site`` or
253
         ``django.contrib.sites.models.RequestSite``
254
      :param send_email: If ``True``, the activation email will be
255
         sent to the account (by calling
256
         :meth:`RegistrationProfile.send_activation_email`). If
257
         ``False``, no email will be sent (but the account will still
258
         be inactive)
259
      :type send_email: bool
260
      :param request: If ``send_email`` parameter is ``True``
261
         and if ``request`` is supplied, it will be passed to the
262
         email templates for better flexibility.
263
         Please take a look at the sample email templates
264
         for better explanation how it can be used.
265
      :type request: ``django.http.request.HttpRequest``
266
      :rtype: ``User``
267
268
   .. method:: create_profile(user)
269
270
      Creates and returns a :class:`RegistrationProfile` instance for
271
      the account represented by ``user``.
272
273
      The ``RegistrationProfile`` created by this method will have its
274
      :attr:`~RegistrationProfile.activation_key` set to a SHA1 hash
275
      generated from a combination of the account's username and a
276
      random salt.
277
278
      :param user: The user account; an instance of
279
         ``django.contrib.auth.models.User``.
280
      :type user: ``User``
281
      :rtype: ``RegistrationProfile``
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/faq.rst (+160 lines)
Line 0 Link Here
1
.. _faq:
2
3
Frequently-asked questions
4
==========================
5
6
The following are miscellaneous common questions and answers related
7
to installing/using |project|, culled from bug reports,
8
emails and other sources.
9
10
11
General
12
-------
13
14
**What license is django-registration-redux under?**
15
    |project| is offered under a three-clause BSD-style
16
    license; this is `an OSI-approved open-source license
17
    <http://www.opensource.org/licenses/bsd-license.php>`_, and allows
18
    you a large degree of freedom in modifiying and redistributing the
19
    code. For the full terms, see the file ``LICENSE`` which came with
20
    your copy of |project|; if you did not receive a copy of
21
    this file, you can `view it online
22
    <https://github.com/macropin/django-registration/blob/master/LICENSE>`_.
23
24
**Why are the forms and models for the default backend not in the default backend?**
25
    The model and manager used by :ref:`the default backend
26
    <default-backend>` are in ``registration.models``, and the default
27
    form class (and various subclasses) are in ``registration.forms``;
28
    logically, they might be expected to exist in
29
    ``registration.backends.default``, but there are several reasons
30
    why that's not such a good idea:
31
32
    1. Older versions of |project| made use of the model and
33
       form classes, and moving them would create an unnecessary
34
       backwards incompatibility: ``import`` statements would need to
35
       be changed, and some database updates would be needed to
36
       reflect the new location of the
37
       :class:`~registration.models.RegistrationProfile` model.
38
39
    2. Due to the design of Django's ORM, the ``RegistrationProfile``
40
       model would end up with an ``app_label`` of ``default``, which
41
       isn't particularly descriptive and may conflict with other
42
       applications. By keeping it in ``registration.models``, it
43
       retains an ``app_label`` of ``registration``, which more
44
       accurately reflects what it does and is less likely to cause
45
       problems.
46
47
    3. Although the ``RegistrationProfile`` model and the various
48
       :ref:`form classes <forms>` are used by the default backend,
49
       they can and are meant to be reused as needed by other
50
       backends. Any backend which uses an activation step should feel
51
       free to reuse the ``RegistrationProfile`` model, for example,
52
       and the registration form classes are in no way tied to a
53
       specific backend (and cover a number of common use cases which
54
       will crop up regardless of the specific backend logic in use).
55
56
57
Installation and setup
58
----------------------
59
60
**How do I install django-registration-redux?**
61
    Full instructions are available in :ref:`the quick start guide <quickstart>`.
62
63
**Do I need to put a copy of django-registration-redux in every project I use it in?**
64
    No; putting applications in your project directory is a very bad
65
    habit, and you should stop doing it. If you followed the
66
    instructions mentioned above, |project| was installed
67
    into a location that's on your Python import path, so you'll only
68
    ever need to add ``registration`` to your ``INSTALLED_APPS``
69
    setting (in any project, or in any number of projects), and it
70
    will work.
71
72
73
Configuration
74
-------------
75
76
**Do I need to rewrite the views to change the way they behave?**
77
78
    Not always. Any behavior controlled by an attribute on a
79
    class-based view can be changed by passing a different value for
80
    that attribute in the URLConf. See `Django's class-based view
81
    documentation
82
    <https://docs.djangoproject.com/en/dev/topics/class-based-views/#simple-usage-in-your-urlconf>`_
83
    for examples of this.
84
85
    For more complex or fine-grained control, you will likely want to
86
    subclass :class:`~registration.views.RegistrationView` or
87
    :class:`~registration.views.ActivationView`, or both, add your
88
    custom logic to your subclasses, and then create a URLConf which
89
    makes use of your subclasses.
90
    
91
**I don't want to write my own URLconf because I don't want to write patterns for all the auth views!**
92
    You're in luck, then; |project| provides a URLconf which
93
    *only* contains the patterns for the auth views, and which you can
94
    include in your own URLconf anywhere you'd like; it lives at
95
    ``registration.auth_urls``.
96
97
**I don't like the names you've given to the URL patterns!**
98
    In that case, you should feel free to set up your own URLconf
99
    which uses the names you want.
100
101
102
Troubleshooting
103
---------------
104
105
**I've got functions listening for the registration/activation signals, but they're not getting called!**
106
107
    The most common cause of this is placing |project| in a
108
    sub-directory that's on your Python import path, rather than
109
    installing it directly onto the import path as normal. Importing
110
    from |project| in that case can cause various issues,
111
    including incorrectly connecting signal handlers. For example, if
112
    you were to place |project| inside a directory named
113
    ``django_apps``, and refer to it in that manner, you would end up
114
    with a situation where your code does this::
115
116
        from django_apps.registration.signals import user_registered
117
118
    But |project| will be doing::
119
120
        from registration.signals import user_registered
121
122
    From Python's point of view, these import statements refer to two
123
    different objects in two different modules, and so signal handlers
124
    connected to the signal from the first import will not be called
125
    when the signal is sent using the second import.
126
127
    To avoid this problem, follow the standard practice of installing
128
    |project| directly on your import path and always
129
    referring to it by its own module name: ``registration`` (and in
130
    general, it is always a good idea to follow normal Python
131
    practices for installing and using Django applications).
132
133
**I want to use custom templates, but django keeps using the admin templates instead of mine!**
134
135
    To fix this, make sure that in the ``INSTALLED_APPS`` of your
136
    ``settings.py`` the entry for the ``registration`` app is placed
137
    above ``django.contrib.admin``.
138
139
Tips and tricks
140
---------------
141
142
**How do I log a user in immediately after registration or activation?**
143
    Take a look at the implementation of :ref:`the simple backend
144
    <simple-backend>`, which logs a user in immediately after
145
    registration.
146
147
**How do I re-send an activation email?**
148
    Assuming you're using :ref:`the default backend
149
    <default-backend>`, a `custom admin action
150
    <http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/>`_
151
    is provided for this; in the admin for the
152
    :class:`~registration.models.RegistrationProfile` model, simply
153
    click the checkbox for the user(s) you'd like to re-send the email
154
    for, then select the "Re-send activation emails" action.
155
156
**How do I manually activate a user?**
157
    In the default backend, a custom admin action is provided for
158
    this. In the admin for the ``RegistrationProfile`` model, click
159
    the checkbox for the user(s) you'd like to activate, then select
160
    the "Activate users" action.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/forms.rst (+115 lines)
Line 0 Link Here
1
.. _forms:
2
.. module:: registration.forms
3
4
Forms for user registration
5
===========================
6
7
Several form classes are provided with |project|, covering
8
common cases for gathering account information and implementing common
9
constraints for user registration. These forms were designed with
10
|project|'s :ref:`default backend <default-backend>` in
11
mind, but may also be useful in other situations.
12
13
14
.. class:: RegistrationForm
15
16
   A simple form for registering an account. Has the following fields,
17
   all of which are required:
18
19
   ``username``
20
       The username to use for the new account. This is represented as
21
       a text input which validates that the username is unique,
22
       consists entirely of alphanumeric characters and underscores
23
       and is at most 30 characters in length.
24
25
   ``email``
26
      The email address to use for the new account. This is
27
      represented as a text input which accepts email addresses up to
28
      75 characters in length.
29
30
   ``password1``
31
      The password to use for the new account. This represented as a
32
      password input (``input type="password"`` in the rendered HTML).
33
34
   ``password2``
35
      The password to use for the new account. This represented as a
36
      password input (``input type="password"`` in the rendered HTML).
37
      Password mismatches are recorded as errors of ``password2``.
38
39
   The constraints on usernames and email addresses match those
40
   enforced by Django's default authentication backend for instances
41
   of ``django.contrib.auth.models.User``. The repeated entry of the
42
   password serves to catch typos.
43
44
45
.. class:: RegistrationFormTermsOfService
46
47
   A subclass of :class:`RegistrationForm` which adds one additional,
48
   required field:
49
50
   ``tos``
51
       A checkbox indicating agreement to the site's terms of
52
       service/user agreement.
53
54
55
.. class:: RegistrationFormUniqueEmail
56
57
   A subclass of :class:`RegistrationForm` which enforces uniqueness
58
   of email addresses in addition to uniqueness of usernames.
59
60
61
.. class:: RegistrationFormNoFreeEmail
62
63
   A subclass of :class:`RegistrationForm` which disallows
64
   registration using addresses from some common free email
65
   providers. This can, in some cases, cut down on automated
66
   registration by spambots.
67
68
   By default, the following domains are disallowed for email
69
   addresses:
70
71
   * ``aim.com``
72
73
   * ``aol.com``
74
75
   * ``email.com``
76
77
   * ``gmail.com``
78
79
   * ``googlemail.com``
80
81
   * ``hotmail.com``
82
83
   * ``hushmail.com``
84
85
   * ``msn.com``
86
87
   * ``mail.ru``
88
89
   * ``mailinator.com``
90
91
   * ``live.com``
92
93
   * ``yahoo.com``
94
95
   To change this, subclass this form and set the class attribute
96
   ``bad_domains`` to a list of domains you wish to disallow.
97
98
99
Multiple Form Inheritance
100
----------------
101
102
Multiple :class:`RegistrationForm` subclasses can be inherited into
103
one class.  For instance, if your project requires a terms of service 
104
and a unique email upon registration, those subclasses can be inherited 
105
into a single class.  That would look like this:
106
107
   class CustomForm(RegistrationFormTermsOfService, RegistrationFormUniqueEmail):
108
      pass
109
110
NOTE: If inheriting both :class:`RegistrationFormNoFreeEmail` and 
111
:class:`RegistrationFormUniqueEmail`.  :class:`RegistrationFormNoFreeEmail` must
112
be inherited first, like this:
113
114
   class CustomForm(RegistrationFormNoFreeEmail, RegistrationFormUniqueEmail):
115
      pass
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/index.rst (+54 lines)
Line 0 Link Here
1
.. django-registration-redux documentation master file, created by
2
   sphinx-quickstart on Mon Jun 22 02:57:42 2009.
3
   You can adapt this file completely to your liking, but it should at least
4
   contain the root `toctree` directive.
5
6
|project| |version| documentation
7
=================================
8
9
This documentation covers the |version| release of
10
|project|, a simple but extensible application providing
11
user registration functionality for `Django
12
<http://www.djangoproject.com>`_ powered websites.
13
14
Although nearly all aspects of the registration process are
15
customizable, out-of-the-box support is provided for two common use
16
cases:
17
18
* Two-phase registration, consisting of initial signup followed by a
19
  confirmation email with instructions for activating the new account.
20
21
* One-phase registration, where a user signs up and is immediately
22
  active and logged in.
23
24
To get up and running quickly, consult the :ref:`quick-start guide
25
<quickstart>`, which describes all the necessary steps to install
26
|project| and configure it for the default workflow. For
27
more detailed information, including how to customize the registration
28
process (and support for alternate registration systems), read through
29
the documentation listed below.
30
31
If you are upgrading from a previous release, please read the
32
:ref:`upgrade guide <upgrade>` for information on what's changed.
33
34
Contents:
35
36
.. toctree::
37
   :maxdepth: 1
38
   
39
   quickstart
40
   release-notes
41
   upgrade
42
   default-backend
43
   simple-backend
44
   forms
45
   views
46
   signals
47
   faq
48
49
.. seealso::
50
51
   * `Django's authentication documentation
52
     <http://docs.djangoproject.com/en/dev/topics/auth/>`_; Django's
53
     authentication system is used by |project|'s default
54
     configuration.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/make.bat (+112 lines)
Line 0 Link Here
1
@ECHO OFF
2
3
REM Command file for Sphinx documentation
4
5
set SPHINXBUILD=sphinx-build
6
set ALLSPHINXOPTS=-d _build/doctrees %SPHINXOPTS% .
7
if NOT "%PAPER%" == "" (
8
	set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
9
)
10
11
if "%1" == "" goto help
12
13
if "%1" == "help" (
14
	:help
15
	echo.Please use `make ^<target^>` where ^<target^> is one of
16
	echo.  html      to make standalone HTML files
17
	echo.  dirhtml   to make HTML files named index.html in directories
18
	echo.  pickle    to make pickle files
19
	echo.  json      to make JSON files
20
	echo.  htmlhelp  to make HTML files and a HTML help project
21
	echo.  qthelp    to make HTML files and a qthelp project
22
	echo.  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter
23
	echo.  changes   to make an overview over all changed/added/deprecated items
24
	echo.  linkcheck to check all external links for integrity
25
	echo.  doctest   to run all doctests embedded in the documentation if enabled
26
	goto end
27
)
28
29
if "%1" == "clean" (
30
	for /d %%i in (_build\*) do rmdir /q /s %%i
31
	del /q /s _build\*
32
	goto end
33
)
34
35
if "%1" == "html" (
36
	%SPHINXBUILD% -b html %ALLSPHINXOPTS% _build/html
37
	echo.
38
	echo.Build finished. The HTML pages are in _build/html.
39
	goto end
40
)
41
42
if "%1" == "dirhtml" (
43
	%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% _build/dirhtml
44
	echo.
45
	echo.Build finished. The HTML pages are in _build/dirhtml.
46
	goto end
47
)
48
49
if "%1" == "pickle" (
50
	%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% _build/pickle
51
	echo.
52
	echo.Build finished; now you can process the pickle files.
53
	goto end
54
)
55
56
if "%1" == "json" (
57
	%SPHINXBUILD% -b json %ALLSPHINXOPTS% _build/json
58
	echo.
59
	echo.Build finished; now you can process the JSON files.
60
	goto end
61
)
62
63
if "%1" == "htmlhelp" (
64
	%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% _build/htmlhelp
65
	echo.
66
	echo.Build finished; now you can run HTML Help Workshop with the ^
67
.hhp project file in _build/htmlhelp.
68
	goto end
69
)
70
71
if "%1" == "qthelp" (
72
	%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% _build/qthelp
73
	echo.
74
	echo.Build finished; now you can run "qcollectiongenerator" with the ^
75
.qhcp project file in _build/qthelp, like this:
76
	echo.^> qcollectiongenerator _build\qthelp\django-registration.qhcp
77
	echo.To view the help file:
78
	echo.^> assistant -collectionFile _build\qthelp\django-registration.ghc
79
	goto end
80
)
81
82
if "%1" == "latex" (
83
	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% _build/latex
84
	echo.
85
	echo.Build finished; the LaTeX files are in _build/latex.
86
	goto end
87
)
88
89
if "%1" == "changes" (
90
	%SPHINXBUILD% -b changes %ALLSPHINXOPTS% _build/changes
91
	echo.
92
	echo.The overview file is in _build/changes.
93
	goto end
94
)
95
96
if "%1" == "linkcheck" (
97
	%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% _build/linkcheck
98
	echo.
99
	echo.Link check complete; look for any errors in the above output ^
100
or in _build/linkcheck/output.txt.
101
	goto end
102
)
103
104
if "%1" == "doctest" (
105
	%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% _build/doctest
106
	echo.
107
	echo.Testing of doctests in the sources finished, look at the ^
108
results in _build/doctest/output.txt.
109
	goto end
110
)
111
112
:end
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/quickstart.rst (+301 lines)
Line 0 Link Here
1
.. _quickstart:
2
3
Quick start guide
4
=================
5
6
Before installing |project|, you'll need to have a copy of
7
`Django <http://www.djangoproject.com>`_ already installed. For the
8
|version| release, Django 1.7 or newer is required.
9
10
For further information, consult the `Django download page
11
<http://www.djangoproject.com/download/>`_, which offers convenient
12
packaged downloads and installation instructions.
13
14
15
Installing |project|
16
--------------------
17
18
There are several ways to install |project|:
19
20
* Automatically, via a package manager.
21
22
* Manually, by downloading a copy of the release package and
23
  installing it yourself.
24
25
* Manually, by performing a Git checkout of the latest code.
26
27
It is also highly recommended that you learn to use `virtualenv
28
<http://pypi.python.org/pypi/virtualenv>`_ for development and
29
deployment of Python software; ``virtualenv`` provides isolated Python
30
environments into which collections of software (e.g., a copy of
31
Django, and the necessary settings and applications for deploying a
32
site) can be installed, without conflicting with other installed
33
software. This makes installation, testing, management and deployment
34
far simpler than traditional site-wide installation of Python
35
packages.
36
37
38
Automatic installation via a package manager
39
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40
41
Several automatic package-installation tools are available for Python;
42
the recommended one is `pip <https://pip.pypa.io/>`_.
43
44
Using ``pip``, type::
45
46
    pip install django-registration-redux
47
48
It is also possible that your operating system distributor provides a
49
packaged version of |project|. Consult your
50
operating system's package list for details, but be aware that
51
third-party distributions may be providing older versions of
52
|project|, and so you should consult the documentation which
53
comes with your operating system's package.
54
55
56
Manual installation from a downloaded package
57
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58
59
If you prefer not to use an automated package installer, you can
60
download a copy of |project| and install it manually. The
61
latest release package can be downloaded from |project|'s
62
`listing on the Python Package Index
63
<http://pypi.python.org/pypi/django-registration-redux/>`_.
64
65
Once you've downloaded the package, unpack it (on most operating
66
systems, simply double-click; alternately, type ``tar zxvf
67
django-registration-redux-1.1.tar.gz`` at a command line on Linux, Mac OS X
68
or other Unix-like systems). This will create the directory
69
``django-registration-redux-1.1``, which contains the ``setup.py``
70
installation script. From a command line in that directory, type::
71
72
    python setup.py install
73
74
Note that on some systems you may need to execute this with
75
administrative privileges (e.g., ``sudo python setup.py install``).
76
77
78
Manual installation from a Git checkout
79
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80
81
If you'd like to try out the latest in-development code, you can
82
obtain it from the |project| repository, which is hosted at
83
`Github <http://github.com/>`_ and uses `Git
84
<http://git-scm.com/>`_ for version control. To
85
obtain the latest code and documentation, you'll need to have
86
Git installed, at which point you can type::
87
88
    git clone https://github.com/macropin/django-registration.git
89
90
You can also obtain a copy of a particular release of
91
|project| by specifying the ``-b`` argument to ``git clone``;
92
each release is given a tag of the form ``vX.Y``, where "X.Y" is the
93
release number. So, for example, to check out a copy of the |version|
94
release, type::
95
96
    git clone -b v1.0 https://github.com/macropin/django-registration.git
97
98
In either case, this will create a copy of the |project|
99
Git repository on your computer; you can then add the
100
``django-registration-redux`` directory inside the checkout your Python
101
import path, or use the ``setup.py`` script to install as a package.
102
103
104
Basic configuration and use
105
---------------------------
106
107
Once installed, you can add |project| to any Django-based
108
project you're developing. The default setup will enable user
109
registration with the following workflow:
110
111
1. A user signs up for an account by supplying a username, email
112
   address and password.
113
114
2. From this information, a new ``User`` object is created, with its
115
   ``is_active`` field set to ``False``. Additionally, an activation
116
   key is generated and stored, and an email is sent to the user
117
   containing a link to click to activate the account.
118
119
3. Upon clicking the activation link, the new account is made active
120
   (the ``is_active`` field is set to ``True``); after this, the user
121
   can log in.
122
123
Note that the default workflow requires ``django.contrib.auth`` to be
124
installed, and it is recommended that ``django.contrib.sites`` be
125
installed as well. You will also need to have a working mail server
126
(for sending activation emails), and provide Django with the necessary
127
settings to make use of this mail server (consult `Django's
128
email-sending documentation
129
<http://docs.djangoproject.com/en/dev/topics/email/>`_ for details).
130
131
132
Settings
133
~~~~~~~~
134
135
Begin by adding ``registration`` to the ``INSTALLED_APPS`` setting of
136
your project, and specifying one additional setting:
137
138
``ACCOUNT_ACTIVATION_DAYS``
139
    This is the number of days users will have to activate their
140
    accounts after registering. If a user does not activate within
141
    that period, the account will remain permanently inactive and may
142
    be deleted by maintenance scripts provided in |project|.
143
144
``REGISTRATION_DEFAULT_FROM_EMAIL``
145
    Optional. If set, emails sent through the registration app will use this
146
    string. Falls back to using Django's built-in ``DEFAULT_FROM_EMAIL``
147
    setting.
148
149
``REGISTRATION_EMAIL_HTML``
150
    Optional. If this is `False`, registration emails will be send in plain
151
    text. If this is `True`, emails will be sent as HTML. Defaults to `True`.
152
153
``REGISTRATION_AUTO_LOGIN``
154
    Optional. If this is `True`, your users will automatically log in when they
155
    click on the activation link in their email. Defaults to `False`.
156
157
For example, you might have something like the following in your
158
Django settings file::
159
160
    INSTALLED_APPS = (
161
        'django.contrib.auth',
162
        'django.contrib.sites',
163
        'registration',
164
        # ...other installed applications...
165
    )
166
167
    ACCOUNT_ACTIVATION_DAYS = 7 # One-week activation window; you may, of course, use a different value.
168
    REGISTRATION_AUTO_LOGIN = True # Automatically log the user in.
169
170
Once you've done this, run ``python manage.py migrate`` to install the model
171
used by the default setup.
172
173
174
Setting up URLs
175
~~~~~~~~~~~~~~~
176
177
The :ref:`default backend <default-backend>` includes a Django
178
``URLconf`` which sets up URL patterns for :ref:`the views in
179
django-registration-redux <views>`, as well as several useful views in
180
``django.contrib.auth`` (e.g., login, logout, password
181
change/reset). This ``URLconf`` can be found at
182
``registration.backends.default.urls``, and so can simply be included
183
in your project's root URL configuration. For example, to place the
184
URLs under the prefix ``/accounts/``, you could add the following to
185
your project's root ``URLconf``::
186
187
    (r'^accounts/', include('registration.backends.default.urls')),
188
189
Users would then be able to register by visiting the URL
190
``/accounts/register/``, login (once activated) at
191
``/accounts/login/``, etc.
192
193
Another ``URLConf`` is also provided -- at ``registration.auth_urls``
194
-- which just handles the Django auth views, should you want to put
195
those at a different location.
196
197
198
Templates
199
~~~~~~~~~
200
201
The templates in |project| assume you have a `base.html` template in your
202
project's template directory. This base template should include a ``title`` block and a ``content`` block. Other than that, every template needed is
203
included.  You can extend and customize the included templates as needed. Some
204
of the templates you'll probably want to customize are covered here:
205
206
Note that, with the exception of the templates used for account activation
207
emails, all of these are rendered using a ``RequestContext`` and so will also
208
receive any additional variables provided by `context processors
209
<http://docs.djangoproject.com/en/dev/ref/templates/api/#id1>`_.
210
211
**registration/registration_form.html**
212
213
Used to show the form users will fill out to register. By default, has
214
the following context:
215
216
``form``
217
    The registration form. This will be an instance of some subclass
218
    of ``django.forms.Form``; consult `Django's forms documentation
219
    <http://docs.djangoproject.com/en/dev/topics/forms/>`_ for
220
    information on how to display this in a template.
221
222
**registration/registration_complete.html**
223
224
Used after successful completion of the registration form. This
225
template has no context variables of its own, and should simply inform
226
the user that an email containing account-activation information has
227
been sent.
228
229
**registration/activate.html**
230
231
Used if account activation fails. With the default setup, has the following context:
232
233
``activation_key``
234
    The activation key used during the activation attempt.
235
236
**registration/activation_complete.html**
237
238
Used after successful account activation. This template has no context
239
variables of its own, and should simply inform the user that their
240
account is now active.
241
242
**registration/activation_email_subject.txt**
243
244
Used to generate the subject line of the activation email. Because the
245
subject line of an email must be a single line of text, any output
246
from this template will be forcibly condensed to a single line before
247
being used. This template has the following context:
248
249
``activation_key``
250
    The activation key for the new account.
251
252
``expiration_days``
253
    The number of days remaining during which the account may be
254
    activated.
255
256
``site``
257
    An object representing the site on which the user registered;
258
    depending on whether ``django.contrib.sites`` is installed, this
259
    may be an instance of either ``django.contrib.sites.models.Site``
260
    (if the sites application is installed) or
261
    ``django.contrib.sites.models.RequestSite`` (if not). Consult `the
262
    documentation for the Django sites framework
263
    <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`_ for
264
    details regarding these objects' interfaces.
265
266
**registration/activation_email.txt**
267
268
**IMPORTANT**: If you override this template, you must also override the HTML
269
version (below), or disable HTML emails by adding
270
``REGISTRATION_EMAIL_HTML = False`` to your settings.py.
271
272
Used to generate the text body of the activation email. Should display a
273
link the user can click to activate the account. This template has the
274
following context:
275
276
``activation_key``
277
    The activation key for the new account.
278
279
``expiration_days``
280
    The number of days remaining during which the account may be
281
    activated.
282
283
``site``
284
    An object representing the site on which the user registered;
285
    depending on whether ``django.contrib.sites`` is installed, this
286
    may be an instance of either ``django.contrib.sites.models.Site``
287
    (if the sites application is installed) or
288
    ``django.contrib.sites.models.RequestSite`` (if not). Consult `the
289
    documentation for the Django sites framework
290
    <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`_ for
291
    details regarding these objects' interfaces.
292
293
``user``
294
    The new user account
295
296
**registration/activation_email.html**
297
298
This template is used to generate the html body of the activation email.
299
Should display the same content as the text version of the activation email.
300
301
The context available is the same as the text version of the template.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/release-notes.rst (+7 lines)
Line 0 Link Here
1
.. _release-notes:
2
3
Release notes
4
=============
5
6
The |version| release of |project| supports Python 2.7, 3.4, 3.5 and
7
Django 1.7, 1.8, and 1.9.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/signals.rst (+56 lines)
Line 0 Link Here
1
.. _signals:
2
.. module:: registration.signals
3
4
5
Custom signals used by |project|
6
================================
7
8
Much of |project|'s customizability comes through the
9
ability to write and use :ref:`registration backends <backend-api>`
10
implementing different workflows for user registration. However, there
11
are many cases where only a small bit of additional logic needs to be
12
injected into the registration process, and writing a custom backend
13
to support this represents an unnecessary amount of work. A more
14
lightweight customization option is provided through two custom
15
signals which backends are required to send at specific points during
16
the registration process; functions listening for these signals can
17
then add whatever logic is needed.
18
19
For general documentation on signals and the Django dispatcher,
20
consult `Django's signals documentation
21
<http://docs.djangoproject.com/en/dev/topics/signals/>`_. This
22
documentation assumes that you are familiar with how signals work and
23
the process of writing and connecting functions which will listen for
24
signals.
25
26
27
.. data:: user_activated
28
29
   Sent when a user account is activated (not applicable to all
30
   backends). Provides the following arguments:
31
32
   ``sender``
33
       The backend class used to activate the user.
34
35
   ``user``
36
        An instance of ``django.contrib.auth.models.User``
37
        representing the activated account.
38
39
   ``request``
40
       The ``HttpRequest`` in which the account was activated.
41
42
43
.. data:: user_registered
44
45
   Sent when a new user account is registered. Provides the following
46
   arguments:
47
48
   ``sender``
49
       The backend class used to register the account.
50
51
   ``user``
52
        An instance of ``django.contrib.auth.models.User``
53
        representing the new account.
54
55
   ``request``
56
        The ``HttpRequest`` in which the new account was registered.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/simple-backend.rst (+47 lines)
Line 0 Link Here
1
.. _simple-backend:
2
.. module:: registration.backends.simple
3
4
The "simple" (one-step) backend
5
===============================
6
7
As an alternative to :ref:`the default backend <default-backend>`, and
8
an example of writing alternate workflows, |project| bundles
9
a one-step registration system in
10
``registration.backend.simple``. This backend's workflow is
11
deliberately as simple as possible:
12
13
1. A user signs up by filling out a registration form.
14
15
2. The user's account is created and is active immediately, with no
16
   intermediate confirmation or activation step.
17
18
3. The new user is logged in immediately.
19
20
21
Configuration
22
-------------
23
24
To use this backend, simply include the URLconf
25
``registration.backends.simple.urls`` somewhere in your site's own URL
26
configuration. For example::
27
28
    (r'^accounts/', include('registration.backends.simple.urls')),
29
30
No additional settings are required, but one optional setting is
31
supported:
32
33
``REGISTRATION_OPEN``
34
    A boolean (either ``True`` or ``False``) indicating whether
35
    registration of new accounts is currently permitted. A default of
36
    ``True`` will be assumed if this setting is not supplied.
37
38
Upon successful registration, the default redirect is to the
39
``registration_complete`` view (at ``accounts/register/complete/``).
40
41
The default form class used for account registration will be
42
:class:`registration.forms.RegistrationForm`, although this can be
43
overridden by supplying a custom URL pattern for the registration view
44
and passing the keyword argument ``form_class``, or by subclassing
45
``registration.backends.simple.views.RegistrationView`` and either
46
overriding ``form_class`` or implementing
47
:meth:`~registration.views.RegistrationView.get_form_class()`.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/upgrade.rst (+57 lines)
Line 0 Link Here
1
.. _upgrade:
2
3
Upgrade guide
4
=============
5
6
The |version| release of |project| is not compatible with the legacy
7
django-registration (previously maintained by James Bennett).
8
9
10
Django version requirement
11
--------------------------
12
13
As of |version|, |project| requires Django 1.7 or newer;
14
older Django releases may work, but are officially unsupported. Additionally,
15
|project| officially supports Python 2.7, 3.3, 3.4, and 3.5.
16
17
18
Backwards-incompatible changes
19
------------------------------
20
21
Version 1.4
22
```````````
23
24
- Remove unnecessary `_RequestPassingFormView`.
25
  See `#56 <https://github.com/macropin/django-registration/pull/56>`_. Please
26
  ensure that you update any subclassed views to reference ``self.request``
27
  instead of accepting ``request`` as an argument.
28
29
Version 1.3
30
```````````
31
- Django 1.7 or newer is required. Please ensure you upgrade your Django
32
  version before upgrading.
33
34
Version 1.2
35
```````````
36
- **Native migration support breaks South compatibility**: An initial native
37
  migration for Django > 1.7 has been provided. South users will need to
38
  configure a null migration with (`SOUTH_MIGRATION_MODULES`) in
39
  `settings.py` as shown below:
40
41
  ::
42
43
      SOUTH_MIGRATION_MODULES = {
44
          'registration': 'registration.south_migrations',
45
46
- **register method in RegistrationView has different parameters**: The
47
  parameters of the`register` method in RegistrationView have changed.
48
49
Version 1.1
50
```````````
51
52
- **base.html template required**: A `base.html` template is now assumed to
53
  exist. Please ensure that your project provides one for |project| to inherit
54
  from.
55
- **HTML email templates**: |project| now uses HTML email templates. If you
56
  previously customized text email templates, you need to do the same with
57
  the new HTML templates.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/docs/views.rst (+107 lines)
Line 0 Link Here
1
.. _views:
2
.. module:: registration.views
3
4
Registration views
5
==================
6
7
In order to allow the utmost flexibility in customizing and supporting
8
different workflows, |project| makes use of Django's support
9
for `class-based views
10
<https://docs.djangoproject.com/en/dev/topics/class-based-views/>`_. Included
11
in |project| are two base classes which can be subclassed to
12
implement whatever workflow is required.
13
14
.. class:: RegistrationView
15
16
   A subclass of Django's `FormView
17
   <https://docs.djangoproject.com/en/dev/ref/class-based-views/generic-editing/#formview>`_,
18
   which provides the infrastructure for supporting user registration.
19
20
   Useful places to override or customize on a ``RegistrationView``
21
   subclass are:
22
23
   .. attribute:: disallowed_url
24
25
      The URL to redirect to when registration is disallowed. Should
26
      be a string, `the name of a URL pattern
27
      <https://docs.djangoproject.com/en/dev/topics/http/urls/#naming-url-patterns>`_. Default
28
      value is ``registration_disallowed``.
29
30
   .. attribute:: form_class
31
32
      The form class to use for user registration. Can be overridden
33
      on a per-request basis (see below). Should be the actual class
34
      object; by default, this class is
35
      :class:`registration.forms.RegistrationForm`.
36
37
   .. attribute:: success_url
38
39
      The URL to redirect to after successful registration. Should be
40
      a string, the name of a URL pattern, or a 3-tuple of arguments
41
      suitable for passing to Django's `redirect shortcut
42
      <https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect>`_. Can
43
      be overridden on a per-request basis (see below). Default value
44
      is ``None``, so that per-request customization is used instead.
45
46
   .. attribute:: template_name
47
48
      The template to use for user registration. Should be a
49
      string. Default value is
50
      ``registration/registration_form.html``.
51
52
   .. method:: get_form_class()
53
54
      Select a form class to use on a per-request basis. If not
55
      overridden, will use :attr:`~form_class`. Should be the actual
56
      class object.
57
58
   .. method:: get_success_url(user)
59
60
      Return a URL to redirect to after successful registration, on a
61
      per-request or per-user basis. If not overridden, will use
62
      :attr:`~success_url`. Should be a string, the name of a URL
63
      pattern, or a 3-tuple of arguments suitable for passing to
64
      Django's ``redirect`` shortcut.
65
66
   .. method:: registration_allowed()
67
68
      Should return a boolean indicating whether user registration is
69
      allowed, either in general or for this specific request.
70
71
   .. method:: register(form)
72
73
      Actually perform the business of registering a new user. Receives the
74
      registration ``form``. Should return the new user who was just
75
      registered.
76
77
78
.. class:: ActivationView
79
80
   A subclass of Django's `TemplateView
81
   <https://docs.djangoproject.com/en/dev/ref/class-based-views/base/#templateview>`_
82
   which provides support for a separate account-activation step, in
83
   workflows which require that.
84
85
   Useful places to override or customize on an ``ActivationView``
86
   subclass are:
87
88
   .. attribute:: template_name
89
90
      The template to use for user activation. Should be a
91
      string. Default value is ``registration/activate.html``.
92
93
   .. method:: activate(*args, **kwargs)
94
95
      Actually perform the business of activating a user account. Receives any
96
      positional or keyword arguments passed to the view. Should return the
97
      activated user account if activation is successful, or any value
98
      which evaluates ``False`` in boolean context if activation is
99
      unsuccessful.
100
101
   .. method:: get_success_url(user)
102
103
      Return a URL to redirect to after successful registration, on a
104
      per-request or per-user basis. If not overridden, will use
105
      :attr:`~success_url`. Should be a string, the name of a URL
106
      pattern, or a 3-tuple of arguments suitable for passing to
107
      Django's ``redirect`` shortcut.
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/__init__.py (+22 lines)
Line 0 Link Here
1
VERSION = (1, 4, 0, 'final', 0)
2
3
4
def get_version():
5
    "Returns a PEP 386-compliant version number from VERSION."
6
    assert len(VERSION) == 5
7
    assert VERSION[3] in ('alpha', 'beta', 'rc', 'final')
8
9
    # Now build the two parts of the version number:
10
    # main = X.Y[.Z]
11
    # sub = .devN - for pre-alpha releases
12
    #     | {a|b|c}N - for alpha, beta and rc releases
13
14
    parts = 2 if VERSION[2] == 0 else 3
15
    main = '.'.join(str(x) for x in VERSION[:parts])
16
17
    sub = ''
18
    if VERSION[3] != 'final':
19
        mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'}
20
        sub = mapping[VERSION[3]] + str(VERSION[4])
21
22
    return str(main + sub)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/admin.py (+49 lines)
Line 0 Link Here
1
from django.contrib import admin
2
from django.utils.translation import ugettext_lazy as _
3
from django.contrib.sites.requests import RequestSite
4
from django.apps import apps
5
6
from .models import RegistrationProfile
7
from .users import UsernameField
8
9
10
class RegistrationAdmin(admin.ModelAdmin):
11
    actions = ['activate_users', 'resend_activation_email']
12
    list_display = ('user', 'activation_key_expired')
13
    raw_id_fields = ['user']
14
    search_fields = ('user__{0}'.format(UsernameField()),
15
                     'user__first_name', 'user__last_name')
16
17
    def activate_users(self, request, queryset):
18
        """
19
        Activates the selected users, if they are not already
20
        activated.
21
22
        """
23
        for profile in queryset:
24
            RegistrationProfile.objects.activate_user(profile.activation_key)
25
    activate_users.short_description = _("Activate users")
26
27
    def resend_activation_email(self, request, queryset):
28
        """
29
        Re-sends activation emails for the selected users.
30
31
        Note that this will *only* send activation emails for users
32
        who are eligible to activate; emails will not be sent to users
33
        whose activation keys have expired or who have already
34
        activated.
35
36
        """
37
        if apps.is_installed('django.contrib.sites'):
38
            site = apps.get_model('sites', 'Site').objects.get_current()
39
        else:
40
            site = RequestSite(request)
41
42
        for profile in queryset:
43
            user = profile.user
44
            RegistrationProfile.objects.resend_activation_mail(user.email, site, request)
45
46
    resend_activation_email.short_description = _("Re-send activation emails")
47
48
49
admin.site.register(RegistrationProfile, RegistrationAdmin)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/auth_urls.py (+75 lines)
Line 0 Link Here
1
"""
2
URL patterns for the views included in ``django.contrib.auth``.
3
4
Including these URLs (via the ``include()`` directive) will set up the
5
following patterns based at whatever URL prefix they are included
6
under:
7
8
* User login at ``login/``.
9
10
* User logout at ``logout/``.
11
12
* The two-step password change at ``password/change/`` and
13
  ``password/change/done/``.
14
15
* The four-step password reset at ``password/reset/``,
16
  ``password/reset/confirm/``, ``password/reset/complete/`` and
17
  ``password/reset/done/``.
18
19
The default registration backend already has an ``include()`` for
20
these URLs, so under the default setup it is not necessary to manually
21
include these views. Other backends may or may not include them;
22
consult a specific backend's documentation for details.
23
24
"""
25
26
from distutils.version import LooseVersion
27
from django import get_version
28
from django.conf.urls import url
29
from django.core.urlresolvers import reverse_lazy
30
from django.contrib.auth import views as auth_views
31
32
33
urlpatterns = [
34
    url(r'^login/$',
35
        auth_views.login,
36
        {'template_name': 'registration/login.html'},
37
        name='auth_login'),
38
    url(r'^logout/$',
39
        auth_views.logout,
40
        {'template_name': 'registration/logout.html'},
41
        name='auth_logout'),
42
    url(r'^password/change/$',
43
        auth_views.password_change,
44
        {'post_change_redirect': reverse_lazy('auth_password_change_done')},
45
        name='auth_password_change'),
46
    url(r'^password/change/done/$',
47
        auth_views.password_change_done,
48
        name='auth_password_change_done'),
49
    url(r'^password/reset/$',
50
        auth_views.password_reset,
51
        {'post_reset_redirect': reverse_lazy('auth_password_reset_done')},
52
        name='auth_password_reset'),
53
    url(r'^password/reset/complete/$',
54
        auth_views.password_reset_complete,
55
        name='auth_password_reset_complete'),
56
    url(r'^password/reset/done/$',
57
        auth_views.password_reset_done,
58
        name='auth_password_reset_done'),
59
]
60
61
62
if (LooseVersion(get_version()) >= LooseVersion('1.6')):
63
    urlpatterns += [
64
        url(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',
65
            auth_views.password_reset_confirm,
66
            {'post_reset_redirect': reverse_lazy('auth_password_reset_complete')},
67
            name='auth_password_reset_confirm')
68
    ]
69
else:
70
    urlpatterns += [
71
        url(r'^password/reset/confirm/(?P<uidb36>[0-9A-Za-z]{1,13})-(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
72
            auth_views.password_reset_confirm,
73
            {'post_reset_redirect': reverse_lazy('auth_password_reset_complete')},
74
            name='auth_password_reset_confirm')
75
    ]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/backends/default/urls.py (+58 lines)
Line 0 Link Here
1
"""
2
URLconf for registration and activation, using django-registration's
3
default backend.
4
5
If the default behavior of these views is acceptable to you, simply
6
use a line like this in your root URLconf to set up the default URLs
7
for registration::
8
9
    (r'^accounts/', include('registration.backends.default.urls')),
10
11
This will also automatically set up the views in
12
``django.contrib.auth`` at sensible default locations.
13
14
If you'd like to customize registration behavior, feel free to set up
15
your own URL patterns for these views instead.
16
17
"""
18
19
20
from django.conf.urls import include
21
from django.conf.urls import url
22
from django.conf import settings
23
from django.views.generic.base import TemplateView
24
25
from .views import ActivationView
26
from .views import RegistrationView
27
28
29
urlpatterns = [
30
    url(r'^activate/complete/$',
31
        TemplateView.as_view(template_name='registration/activation_complete.html'),
32
        name='registration_activation_complete'),
33
    # Activation keys get matched by \w+ instead of the more specific
34
    # [a-fA-F0-9]{40} because a bad activation key should still get to the view;
35
    # that way it can return a sensible "invalid key" message instead of a
36
    # confusing 404.
37
    url(r'^activate/(?P<activation_key>\w+)/$',
38
        ActivationView.as_view(),
39
        name='registration_activate'),
40
    url(r'^register/complete/$',
41
        TemplateView.as_view(template_name='registration/registration_complete.html'),
42
        name='registration_complete'),
43
    url(r'^register/closed/$',
44
        TemplateView.as_view(template_name='registration/registration_closed.html'),
45
        name='registration_disallowed'),
46
]
47
48
if getattr(settings, 'INCLUDE_REGISTER_URL', True):
49
    urlpatterns += [
50
        url(r'^register/$',
51
            RegistrationView.as_view(),
52
            name='registration_register'),
53
    ]
54
55
if getattr(settings, 'INCLUDE_AUTH_URLS', True):
56
    urlpatterns += [
57
        url(r'', include('registration.auth_urls')),
58
    ]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/backends/default/views.py (+141 lines)
Line 0 Link Here
1
from django.conf import settings
2
from django.contrib.sites.shortcuts import get_current_site
3
4
from ... import signals
5
from ...models import RegistrationProfile
6
from ...views import ActivationView as BaseActivationView
7
from ...views import RegistrationView as BaseRegistrationView
8
from ...users import UserModel
9
10
11
class RegistrationView(BaseRegistrationView):
12
    """
13
    A registration backend which follows a simple workflow:
14
15
    1. User signs up, inactive account is created.
16
17
    2. Email is sent to user with activation link.
18
19
    3. User clicks activation link, account is now active.
20
21
    Using this backend requires that
22
23
    * ``registration`` be listed in the ``INSTALLED_APPS`` setting
24
      (since this backend makes use of models defined in this
25
      application).
26
27
    * The setting ``ACCOUNT_ACTIVATION_DAYS`` be supplied, specifying
28
      (as an integer) the number of days from registration during
29
      which a user may activate their account (after that period
30
      expires, activation will be disallowed).
31
32
    * The creation of the templates
33
      ``registration/activation_email_subject.txt`` and
34
      ``registration/activation_email.txt``, which will be used for
35
      the activation email. See the notes for this backends
36
      ``register`` method for details regarding these templates.
37
38
    When subclassing this view, you can set the ``SEND_ACTIVATION_EMAIL``
39
    class variable to False to skip sending the new user a confirmation
40
    email or set ``SEND_ACTIVATION_EMAIL`` to ``False``. Doing so implies
41
    that you will have to activate the user manually from the admin site or
42
    send an activation by some other method. For example, by listening for
43
    the ``user_registered`` signal.
44
45
    Additionally, registration can be temporarily closed by adding the
46
    setting ``REGISTRATION_OPEN`` and setting it to
47
    ``False``. Omitting this setting, or setting it to ``True``, will
48
    be interpreted as meaning that registration is currently open and
49
    permitted.
50
51
    Internally, this is accomplished via storing an activation key in
52
    an instance of ``registration.models.RegistrationProfile``. See
53
    that model and its custom manager for full documentation of its
54
    fields and supported operations.
55
56
    """
57
    SEND_ACTIVATION_EMAIL = getattr(settings, 'SEND_ACTIVATION_EMAIL', True)
58
    success_url = 'registration_complete'
59
60
    def register(self, form):
61
        """
62
        Given a username, email address and password, register a new
63
        user account, which will initially be inactive.
64
65
        Along with the new ``User`` object, a new
66
        ``registration.models.RegistrationProfile`` will be created,
67
        tied to that ``User``, containing the activation key which
68
        will be used for this account.
69
70
        An email will be sent to the supplied email address; this
71
        email should contain an activation link. The email will be
72
        rendered using two templates. See the documentation for
73
        ``RegistrationProfile.send_activation_email()`` for
74
        information about these templates and the contexts provided to
75
        them.
76
77
        After the ``User`` and ``RegistrationProfile`` are created and
78
        the activation email is sent, the signal
79
        ``registration.signals.user_registered`` will be sent, with
80
        the new ``User`` as the keyword argument ``user`` and the
81
        class of this backend as the sender.
82
83
        """
84
        site = get_current_site(self.request)
85
86
        if hasattr(form, 'save'):
87
            new_user_instance = form.save()
88
        else:
89
            new_user_instance = (UserModel().objects
90
                                 .create_user(**form.cleaned_data))
91
92
        new_user = RegistrationProfile.objects.create_inactive_user(
93
            new_user=new_user_instance,
94
            site=site,
95
            send_email=self.SEND_ACTIVATION_EMAIL,
96
            request=self.request,
97
        )
98
        signals.user_registered.send(sender=self.__class__,
99
                                     user=new_user,
100
                                     request=self.request)
101
        return new_user
102
103
    def registration_allowed(self):
104
        """
105
        Indicate whether account registration is currently permitted,
106
        based on the value of the setting ``REGISTRATION_OPEN``. This
107
        is determined as follows:
108
109
        * If ``REGISTRATION_OPEN`` is not specified in settings, or is
110
          set to ``True``, registration is permitted.
111
112
        * If ``REGISTRATION_OPEN`` is both specified and set to
113
          ``False``, registration is not permitted.
114
115
        """
116
        return getattr(settings, 'REGISTRATION_OPEN', True)
117
118
119
class ActivationView(BaseActivationView):
120
    def activate(self, *args, **kwargs):
121
        """
122
        Given an an activation key, look up and activate the user
123
        account corresponding to that key (if possible).
124
125
        After successful activation, the signal
126
        ``registration.signals.user_activated`` will be sent, with the
127
        newly activated ``User`` as the keyword argument ``user`` and
128
        the class of this backend as the sender.
129
130
        """
131
        activation_key = kwargs.get('activation_key', '')
132
        activated_user = (RegistrationProfile.objects
133
                          .activate_user(activation_key))
134
        if activated_user:
135
            signals.user_activated.send(sender=self.__class__,
136
                                        user=activated_user,
137
                                        request=self.request)
138
        return activated_user
139
140
    def get_success_url(self, user):
141
        return ('registration_activation_complete', (), {})
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/backends/simple/urls.py (+47 lines)
Line 0 Link Here
1
"""
2
URLconf for registration and activation, using django-registration's
3
one-step backend.
4
5
If the default behavior of these views is acceptable to you, simply
6
use a line like this in your root URLconf to set up the default URLs
7
for registration::
8
9
    (r'^accounts/', include('registration.backends.simple.urls')),
10
11
This will also automatically set up the views in
12
``django.contrib.auth`` at sensible default locations.
13
14
If you'd like to customize registration behavior, feel free to set up
15
your own URL patterns for these views instead.
16
17
"""
18
19
20
from django.conf.urls import include
21
from django.conf.urls import url
22
from django.conf import settings
23
from django.views.generic.base import TemplateView
24
25
from .views import RegistrationView
26
27
28
urlpatterns = [
29
    url(r'^register/closed/$',
30
        TemplateView.as_view(template_name='registration/registration_closed.html'),
31
        name='registration_disallowed'),
32
    url(r'^register/complete/$',
33
        TemplateView.as_view(template_name='registration/registration_complete.html'),
34
        name='registration_complete'),
35
]
36
37
if getattr(settings, 'INCLUDE_REGISTER_URL', True):
38
    urlpatterns += [
39
        url(r'^register/$',
40
            RegistrationView.as_view(),
41
            name='registration_register'),
42
    ]
43
44
if getattr(settings, 'INCLUDE_AUTH_URLS', True):
45
    urlpatterns += [
46
        url(r'', include('registration.auth_urls')),
47
    ]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/backends/simple/views.py (+46 lines)
Line 0 Link Here
1
from django.conf import settings
2
from django.contrib.auth import authenticate
3
from django.contrib.auth import login
4
5
from ... import signals
6
from ...views import RegistrationView as BaseRegistrationView
7
8
9
class RegistrationView(BaseRegistrationView):
10
    """
11
    A registration backend which implements the simplest possible
12
    workflow: a user supplies a username, email address and password
13
    (the bare minimum for a useful account), and is immediately signed
14
    up and logged in).
15
16
    """
17
    success_url = 'registration_complete'
18
19
    def register(self, form):
20
        new_user = form.save()
21
        username_field = getattr(new_user, 'USERNAME_FIELD', 'username')
22
        new_user = authenticate(
23
            username=getattr(new_user, username_field),
24
            password=form.cleaned_data['password1']
25
        )
26
27
        login(self.request, new_user)
28
        signals.user_registered.send(sender=self.__class__,
29
                                     user=new_user,
30
                                     request=self.request)
31
        return new_user
32
33
    def registration_allowed(self):
34
        """
35
        Indicate whether account registration is currently permitted,
36
        based on the value of the setting ``REGISTRATION_OPEN``. This
37
        is determined as follows:
38
39
        * If ``REGISTRATION_OPEN`` is not specified in settings, or is
40
          set to ``True``, registration is permitted.
41
42
        * If ``REGISTRATION_OPEN`` is both specified and set to
43
          ``False``, registration is not permitted.
44
45
        """
46
        return getattr(settings, 'REGISTRATION_OPEN', True)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/forms.py (+95 lines)
Line 0 Link Here
1
"""
2
Forms and validation code for user registration.
3
4
Note that all of these forms assume Django's bundle default ``User``
5
model; since it's not possible for a form to anticipate in advance the
6
needs of custom user models, you will need to write your own forms if
7
you're using a custom model.
8
9
"""
10
from __future__ import unicode_literals
11
12
13
from django import forms
14
from django.utils.translation import ugettext_lazy as _
15
from django.contrib.auth.forms import UserCreationForm
16
17
from .users import UserModel, UsernameField
18
19
User = UserModel()
20
21
22
class RegistrationForm(UserCreationForm):
23
    """
24
    Form for registering a new user account.
25
26
    Validates that the requested username is not already in use, and
27
    requires the password to be entered twice to catch typos.
28
29
    Subclasses should feel free to add any additional validation they
30
    need, but should avoid defining a ``save()`` method -- the actual
31
    saving of collected user data is delegated to the active
32
    registration backend.
33
34
    """
35
    required_css_class = 'required'
36
    email = forms.EmailField(label=_("E-mail"))
37
38
    class Meta:
39
        model = User
40
        fields = (UsernameField(), "email")
41
42
43
class RegistrationFormTermsOfService(RegistrationForm):
44
    """
45
    Subclass of ``RegistrationForm`` which adds a required checkbox
46
    for agreeing to a site's Terms of Service.
47
48
    """
49
    tos = forms.BooleanField(widget=forms.CheckboxInput,
50
                             label=_('I have read and agree to the Terms of Service'),
51
                             error_messages={'required': _("You must agree to the terms to register")})
52
53
54
class RegistrationFormUniqueEmail(RegistrationForm):
55
    """
56
    Subclass of ``RegistrationForm`` which enforces uniqueness of
57
    email addresses.
58
59
    """
60
    def clean_email(self):
61
        """
62
        Validate that the supplied email address is unique for the
63
        site.
64
65
        """
66
        if User.objects.filter(email__iexact=self.cleaned_data['email']):
67
            raise forms.ValidationError(_("This email address is already in use. Please supply a different email address."))
68
        return self.cleaned_data['email']
69
70
71
class RegistrationFormNoFreeEmail(RegistrationForm):
72
    """
73
    Subclass of ``RegistrationForm`` which disallows registration with
74
    email addresses from popular free webmail services; moderately
75
    useful for preventing automated spam registrations.
76
77
    To change the list of banned domains, subclass this form and
78
    override the attribute ``bad_domains``.
79
80
    """
81
    bad_domains = ['aim.com', 'aol.com', 'email.com', 'gmail.com',
82
                   'googlemail.com', 'hotmail.com', 'hushmail.com',
83
                   'msn.com', 'mail.ru', 'mailinator.com', 'live.com',
84
                   'yahoo.com']
85
86
    def clean_email(self):
87
        """
88
        Check the supplied email address against a list of known free
89
        webmail domains.
90
91
        """
92
        email_domain = self.cleaned_data['email'].split('@')[1]
93
        if email_domain in self.bad_domains:
94
            raise forms.ValidationError(_("Registration using free email addresses is prohibited. Please supply a different email address."))
95
        return self.cleaned_data['email']
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/ar/LC_MESSAGES/django.po (+81 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "اسم المستخدم"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "عنوان البريد الالكتروني"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "كلمة المرور"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "تأكيد كلمة المرور"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "يمكن أن يحتوي اسم المستخدم على احرف، ارقام وشرطات سطرية فقط"
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "اسم المستخدم مسجل مسبقا. يرجى اختيار اسم اخر."
42
43
#: forms.py:68
44
msgid "You must type the same password each time"
45
msgstr "يجب ادخال كلمة المرور مطابقة كل مرة"
46
47
#: forms.py:96
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "أقر بقراءة والموافقة على شروط الخدمة"
50
51
#: forms.py:105
52
msgid "You must agree to the terms to register"
53
msgstr "يجب الموافقة على الشروط للتسجيل"
54
55
#: forms.py:124
56
msgid ""
57
"This email address is already in use. Please supply a different email "
58
"address."
59
msgstr "عنوان البريد الالكتروني مسجل مسبقا. يرجى تزويد عنوان بريد الكتروني مختلف."
60
61
#: forms.py:149
62
msgid ""
63
"Registration using free email addresses is prohibited. Please supply a "
64
"different email address."
65
msgstr "يمنع التسجيل باستخدام عناوين بريد الكترونية مجانية. يرجى تزويد عنوان بريد الكتروني مختلف."
66
67
#: models.py:188
68
msgid "user"
69
msgstr "مستخدم"
70
71
#: models.py:189
72
msgid "activation key"
73
msgstr "رمز التفعيل"
74
75
#: models.py:194
76
msgid "registration profile"
77
msgstr "ملف التسجيل الشخصي"
78
79
#: models.py:195
80
msgid "registration profiles"
81
msgstr "ملفات التسجيل الشخصية"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/bg/LC_MESSAGES/django.po (+78 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: PACKAGE VERSION\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
11
"PO-Revision-Date: 2008-03-05 12:37+0200\n"
12
"Last-Translator: Vladislav <vladislav.mitov@gmail.com>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"X-Poedit-Bookmarks: -1,-1,-1,-1,10,-1,-1,-1,-1,-1\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "Потребителско име "
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "Електронна поща"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "Парола"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "Парола (проверка)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "Потребителските имена могат да съдържат букви, цифри и подчертавки"
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "Потребителското име е заето. Моля изберето друго."
42
43
#: forms.py:68
44
msgid "You must type the same password each time"
45
msgstr "Грешка при проверка на паролата."
46
47
#: forms.py:96
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "Прочел съм и съм съгласен с условията за експлоатация"
50
51
#: forms.py:105
52
msgid "You must agree to the terms to register"
53
msgstr "Трябва да сте съгласни с условията за да се регистрирате."
54
55
#: forms.py:124
56
msgid "This email address is already in use. Please supply a different email address."
57
msgstr "Адреса на електронната поща е използван. Моля въведете друг адрес."
58
59
#: forms.py:149
60
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
61
msgstr "Регистрациите с безплатни адреси е забранен. Моля въведете различен адрес за електронна поща"
62
63
#: models.py:188
64
msgid "user"
65
msgstr "Потребител"
66
67
#: models.py:189
68
msgid "activation key"
69
msgstr "Ключ за активация"
70
71
#: models.py:194
72
msgid "registration profile"
73
msgstr "регистрационен профил"
74
75
#: models.py:195
76
msgid "registration profiles"
77
msgstr "регистрационни профили"
78
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/ca/LC_MESSAGES/django.po (+97 lines)
Line 0 Link Here
1
# Catalan translation for django-registration.
2
# Copyright (C) 2007-2010, James Bennet
3
# This file is distributed under the same license as the django-registration package.
4
# Carles Barrobés <carles@barrobes.com>, 2010.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: django-registration 0.8\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2011-07-17 11:04+0200\n"
11
"PO-Revision-Date: 2010-09-24 23:21+0100\n"
12
"Last-Translator: Carles Barrobés i Meix <carles@barrobes.com>\n"
13
"Language-Team: Català\n"
14
"Language: \n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
"X-Poedit-Language: Catalan\n"
19
20
#: admin.py:23
21
msgid "Activate users"
22
msgstr "Activar usuaris"
23
24
#: admin.py:43
25
msgid "Re-send activation emails"
26
msgstr "Re-enviar e-mails d'activació"
27
28
#: forms.py:35
29
msgid "Username"
30
msgstr "Nom d'usuari"
31
32
#: forms.py:36
33
msgid "This value must contain only letters, numbers and underscores."
34
msgstr "Aquest valor ha de contenir només lletres, números i guions baixos"
35
36
#: forms.py:39
37
msgid "E-mail"
38
msgstr "E-mail"
39
40
#: forms.py:41
41
msgid "Password"
42
msgstr "Contrasenya"
43
44
#: forms.py:43
45
msgid "Password (again)"
46
msgstr "Contrasenya (de nou)"
47
48
#: forms.py:55
49
msgid "A user with that username already exists."
50
msgstr "Ja existeix un usuari amb aquest nom"
51
52
#: forms.py:67
53
msgid "The two password fields didn't match."
54
msgstr "Els dos camps de contrasenya no coincideixen"
55
56
#: forms.py:78
57
msgid "I have read and agree to the Terms of Service"
58
msgstr "He llegit i estic d'acord amb les condicions d'ús"
59
60
#: forms.py:79
61
msgid "You must agree to the terms to register"
62
msgstr "Heu d'estar d'acord amb les condicions d'ús per registrar-vos"
63
64
#: forms.py:95
65
msgid ""
66
"This email address is already in use. Please supply a different email "
67
"address."
68
msgstr ""
69
"Aquesta adreça d'e-mail ja està sent utilitzada. Sisplau, entreu-ne una "
70
"altra."
71
72
#: forms.py:122
73
msgid ""
74
"Registration using free email addresses is prohibited. Please supply a "
75
"different email address."
76
msgstr ""
77
"Està prohibit registrar-se utilitzant adreces d'e-mail gratuïtes. Sisplau "
78
"entreu-ne una altra."
79
80
#: models.py:168
81
msgid "user"
82
msgstr "usuari"
83
84
#: models.py:169
85
msgid "activation key"
86
msgstr "clau d'activació"
87
88
#: models.py:174
89
msgid "registration profile"
90
msgstr "perfil de registre"
91
92
#: models.py:175
93
msgid "registration profiles"
94
msgstr "perfils de registre"
95
96
#~ msgid "Email address"
97
#~ msgstr "Adreça d'e-mail"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/cs/LC_MESSAGES/django.po (+94 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <michal.pilar@implayo.cz>, 2011.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2009-10-12 14:09-0500\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: Implayo s.r.o. <michal.pilar@implayo.cz>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"Language: cs\n"
16
"MIME-Version: 1.0\n"
17
"Content-Type: text/plain; charset=UTF-8\n"
18
"Content-Transfer-Encoding: 8bit\n"
19
20
#: admin.py:23
21
msgid "Activate users"
22
msgstr "Aktivovat uživatele"
23
24
#: admin.py:43
25
msgid "Re-send activation emails"
26
msgstr "Znovu odeslat aktivační e-maily"
27
28
#: forms.py:35
29
msgid "username"
30
msgstr "uživatelské jméno"
31
32
#: forms.py:36
33
msgid "This value must contain only letters, numbers and underscores."
34
msgstr "Tato hodnota může obsahovat pouze písmena, čísla a podtržítka."
35
36
#: forms.py:39
37
msgid "Email address"
38
msgstr "E-mailová adresa"
39
40
#: forms.py:41
41
msgid "Password"
42
msgstr "Heslo"
43
44
#: forms.py:43
45
msgid "Password (again)"
46
msgstr "Heslo (znovu)"
47
48
#: forms.py:55
49
msgid "A user with that username already exists."
50
msgstr "Uživatel s tímto jménem již existuje."
51
52
#: forms.py:67
53
msgid "The two password fields didn't match."
54
msgstr "Zadaná 2 hesla se neshodují."
55
56
#: forms.py:78
57
msgid "I have read and agree to the Terms of Service"
58
msgstr "Přečetl jsem si a souhlasím s podmínkami služby"
59
60
#: forms.py:79
61
msgid "You must agree to the terms to register"
62
msgstr "Musíte odsouhlasit podmínky služby pro pokračování v registraci."
63
64
#: forms.py:95
65
msgid ""
66
"This email address is already in use. Please supply a different email "
67
"address."
68
msgstr ""
69
"Tato e-mailová adresa se již používá. Prosím zadejte jinou e-mailovou "
70
"adresu."
71
72
#: forms.py:122
73
msgid ""
74
"Registration using free email addresses is prohibited. Please supply a "
75
"different email address."
76
msgstr ""
77
"Používání volných e-mailových adres je zakázáno. Prosím zadejte "
78
"jinou e-mailovou adresu."
79
80
#: models.py:165
81
msgid "user"
82
msgstr "uživatel"
83
84
#: models.py:166
85
msgid "activation key"
86
msgstr "aktivační klíč"
87
88
#: models.py:171
89
msgid "registration profile"
90
msgstr "registrační profil"
91
92
#: models.py:172
93
msgid "registration profiles"
94
msgstr "registrační profily"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/da/LC_MESSAGES/django.po (+92 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# Rune Bromer <rb@konstellation.dk>, 2007-2009.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: django-registration 0.8 \n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: \n" 
12
"PO-Revision-Date: \n" 
13
"Last-Translator: Rune Bromer <rb@konstellation.dk>\n"
14
"Language-Team: \n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: admin.py:23
20
msgid "Activate users"
21
msgstr "Aktiver brugere"
22
23
#: admin.py:43
24
msgid "Re-send activation emails"
25
msgstr "Gensend aktiveringsemails"
26
27
#: forms.py:35
28
msgid "Username"
29
msgstr "Brugernavn"
30
31
#: forms.py:36
32
msgid "This value must contain only letters, numbers and underscores."
33
msgstr "V¾rdien m kun indeholde bogstaver, tal og underscore."
34
35
#: forms.py:39
36
msgid "Email address"
37
msgstr "E-mailadresse"
38
39
#: forms.py:41
40
msgid "Password"
41
msgstr "Password"
42
43
#: forms.py:43
44
msgid "Password (again)"
45
msgstr "Password (gentag)"
46
47
#: forms.py:55
48
msgid "A user with that username already exists."
49
msgstr "Der findes allerede en bruger med dette brugernavn."
50
51
#: forms.py:67
52
msgid "The two password fields didn't match."
53
msgstr "De 2 passwordfelter er ikke ens."
54
55
#: forms.py:78
56
msgid "I have read and agree to the Terms of Service"
57
msgstr "I har l¾st og accepterer betingelserne."
58
59
#: forms.py:79
60
msgid "You must agree to the terms to register"
61
msgstr "Du skal acceptere betingelserne for at registere"
62
63
#: forms.py:95
64
msgid ""
65
"This email address is already in use. Please supply a different email "
66
"address."
67
msgstr ""
68
"Denne emailadresse er allerede i brug. Benyt venligst en anden. "
69
70
#: forms.py:122
71
msgid ""
72
"Registration using free email addresses is prohibited. Please supply a "
73
"different email address."
74
msgstr ""
75
"Registrering med gratis emailadresser er ikke muligt. V¾lg venligst en "
76
"anden emailadresse"
77
78
#: models.py:165
79
msgid "user"
80
msgstr "bruger"
81
82
#: models.py:166
83
msgid "activation key"
84
msgstr "Aktiveringsn¿gle"
85
86
#: models.py:171
87
msgid "registration profile"
88
msgstr "Registreringsprofil"
89
90
#: models.py:172
91
msgid "registration profiles"
92
msgstr "Registreringprofiler"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/de/LC_MESSAGES/django.po (+93 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# Jannis Leidel <jannis@leidel.info>, 2007-2009.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: django-registration 0.8 \n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2009-10-18 21:32+0200\n"
12
"PO-Revision-Date: 2007-09-29 16:50+0200\n"
13
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
14
"Language-Team: Deutsch <de@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: admin.py:23
20
msgid "Activate users"
21
msgstr "Benutzer aktivieren"
22
23
#: admin.py:43
24
msgid "Re-send activation emails"
25
msgstr "Aktivierungs-E-Mail erneut senden"
26
27
#: forms.py:35
28
msgid "Username"
29
msgstr "Benutzername"
30
31
#: forms.py:36
32
msgid "This value must contain only letters, numbers and underscores."
33
msgstr "Dieser Wert darf nur Buchstaben, Ziffern und Unterstriche enthalten."
34
35
#: forms.py:39
36
msgid "Email address"
37
msgstr "E-Mail-Adresse"
38
39
#: forms.py:41
40
msgid "Password"
41
msgstr "Passwort"
42
43
#: forms.py:43
44
msgid "Password (again)"
45
msgstr "Passwort (wiederholen)"
46
47
#: forms.py:55
48
msgid "A user with that username already exists."
49
msgstr "Dieser Benutzername ist bereits vergeben."
50
51
#: forms.py:67
52
msgid "The two password fields didn't match."
53
msgstr "Die beiden Passwörter sind nicht identisch."
54
55
#: forms.py:78
56
msgid "I have read and agree to the Terms of Service"
57
msgstr "Ich habe die Nutzungsvereinbarung gelesen und stimme ihr zu"
58
59
#: forms.py:79
60
msgid "You must agree to the terms to register"
61
msgstr "Sie müssen der Nutzungsvereinbarung zustimmen, um sich zu registrieren"
62
63
#: forms.py:95
64
msgid ""
65
"This email address is already in use. Please supply a different email "
66
"address."
67
msgstr ""
68
"Diese E-Mail-Adresse wird schon genutzt. Bitte geben Sie eine andere E-Mail-"
69
"Adresse an."
70
71
#: forms.py:122
72
msgid ""
73
"Registration using free email addresses is prohibited. Please supply a "
74
"different email address."
75
msgstr ""
76
"Die Registrierung mit einer kostenlosen E-Mail-Adresse ist untersagt. Bitte "
77
"geben Sie eine andere E-Mail-Adresse an."
78
79
#: models.py:165
80
msgid "user"
81
msgstr "Benutzer"
82
83
#: models.py:166
84
msgid "activation key"
85
msgstr "Aktivierungsschlüssel"
86
87
#: models.py:171
88
msgid "registration profile"
89
msgstr "Registrierungsprofil"
90
91
#: models.py:172
92
msgid "registration profiles"
93
msgstr "Registrierungsprofile"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/el/LC_MESSAGES/django.po (+85 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# Panos Laganakos <panos.laganakos@gmail.com>, 2007.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
12
"PO-Revision-Date: 2007-11-14 21:50+0200\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "όνομα χρήστη"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "διεύθυνση ηλεκτρονικού ταχυδρομείου"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "συνθηματικό"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "συνθηματικό (ξανά)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "Τα ονόματα χρηστών μπορούν να περιλαμβάνουν μόνο γράμματα, αριθμούς και υπογραμμίσεις"
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "Αυτό το όνομα χρήστη χρησιμοποίειται ήδη. Παρακαλώ διαλέξτε ένα άλλο."
42
43
#: forms.py:68
44
msgid "You must type the same password each time"
45
msgstr "Πρέπει να εισάγετε το ίδιο συνθηματικό κάθε φορά"
46
47
#: forms.py:96
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "Διάβασα και συμφωνώ με τους Όρους της Υπηρεσίας"
50
51
#: forms.py:105
52
msgid "You must agree to the terms to register"
53
msgstr "Πρέπει να συμφωνείται με τους όρους για να εγγραφείτε"
54
55
#: forms.py:124
56
msgid ""
57
"This email address is already in use. Please supply a different email "
58
"address."
59
msgstr ""
60
"Η συγκεκριμένη διεύθυνση ηλεκτρονικού ταχυδρομείου χρησιμοποιείται ήδη. "
61
"Παρακαλώ δώστε κάποια άλλη."
62
63
#: forms.py:149
64
msgid ""
65
"Registration using free email addresses is prohibited. Please supply a "
66
"different email address."
67
msgstr ""
68
"Η εγγραφή μέσω δωρεάν διευθύνσεων ηλεκτρονικού ταχυδρομείου απαγορεύεται. "
69
"Παρακαλώ δώστε κάποια άλλη."
70
71
#: models.py:188
72
msgid "user"
73
msgstr "χρήστης"
74
75
#: models.py:189
76
msgid "activation key"
77
msgstr "κλειδί ενεργοποίησης"
78
79
#: models.py:194
80
msgid "registration profile"
81
msgstr "προφίλ εγγραφής"
82
83
#: models.py:195
84
msgid "registration profiles"
85
msgstr "προφίλ εγγραφών"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/en/LC_MESSAGES/django.po (+89 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2009-10-12 14:09-0500\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: admin.py:23
20
msgid "Activate users"
21
msgstr ""
22
23
#: admin.py:43
24
msgid "Re-send activation emails"
25
msgstr ""
26
27
#: forms.py:35
28
msgid "username"
29
msgstr ""
30
31
#: forms.py:36
32
msgid "This value must contain only letters, numbers and underscores."
33
msgstr ""
34
35
#: forms.py:39
36
msgid "Email address"
37
msgstr ""
38
39
#: forms.py:41
40
msgid "Password"
41
msgstr ""
42
43
#: forms.py:43
44
msgid "Password (again)"
45
msgstr ""
46
47
#: forms.py:55
48
msgid "A user with that username already exists."
49
msgstr ""
50
51
#: forms.py:67
52
msgid "The two password fields didn't match."
53
msgstr ""
54
55
#: forms.py:78
56
msgid "I have read and agree to the Terms of Service"
57
msgstr ""
58
59
#: forms.py:79
60
msgid "You must agree to the terms to register"
61
msgstr ""
62
63
#: forms.py:95
64
msgid ""
65
"This email address is already in use. Please supply a different email "
66
"address."
67
msgstr ""
68
69
#: forms.py:122
70
msgid ""
71
"Registration using free email addresses is prohibited. Please supply a "
72
"different email address."
73
msgstr ""
74
75
#: models.py:165
76
msgid "user"
77
msgstr ""
78
79
#: models.py:166
80
msgid "activation key"
81
msgstr ""
82
83
#: models.py:171
84
msgid "registration profile"
85
msgstr ""
86
87
#: models.py:172
88
msgid "registration profiles"
89
msgstr ""
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/es/LC_MESSAGES/django.po (+85 lines)
Line 0 Link Here
1
# Spanish translation for django-registration.
2
# Copyright (C) 2007, James Bennet
3
# This file is distributed under the same license as the registration package.
4
# Ernesto Rico Schmidt <e.rico.schmidt@gmail.com>, 2008.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: django-registration 0.3 \n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2008-03-11 00:19-0400\n"
12
"PO-Revision-Date: 2008-03-11 00:19-0400\n"
13
"Last-Translator: Ernesto Rico Schmidt <e.rico.schmidt@gmail.com>\n"
14
"Language-Team: Español <de@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "nombre de usuario"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "dirección de coreo electrónico"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "contraseña"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "contraseña (otra vez)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "Los nombres de usuarios sólo pueden contener letras, números y guiones bajos"
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "Este nombre de usuario ya está ocupado. Por favor escoge otro"
42
43
#: forms.py:71
44
msgid "You must type the same password each time"
45
msgstr "Tienes que introducir la misma contraseña cada vez"
46
47
#: forms.py:100
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "He leído y acepto los términos de servicio"
50
51
#: forms.py:109
52
msgid "You must agree to the terms to register"
53
msgstr "Tienes que aceptar los términos para registrarte"
54
55
#: forms.py:128
56
msgid ""
57
"This email address is already in use. Please supply a different email "
58
"address."
59
msgstr ""
60
"La dirección de correo electrónico ya está siendo usada. Por favor"
61
"proporciona otra dirección."
62
63
#: forms.py:153
64
msgid ""
65
"Registration using free email addresses is prohibited. Please supply a "
66
"different email address."
67
msgstr ""
68
"El registro usando una dirección de correo electrónico gratis está prohibido."
69
"Por favor proporciona otra dirección."
70
71
#: models.py:188
72
msgid "user"
73
msgstr "usuario"
74
75
#: models.py:189
76
msgid "activation key"
77
msgstr "clave de activación"
78
79
#: models.py:194
80
msgid "registration profile"
81
msgstr "perfil de registro"
82
83
#: models.py:195
84
msgid "registration profiles"
85
msgstr "perfiles de registro"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/es_AR/LC_MESSAGES/django.po (+83 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) 2008 Leonardo Manuel Rocha
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <l e o m a r o at g m a i l dot c o m>, YEAR.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "nombre de usuario"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "dirección de e-mail"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "contraseña"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "contraseña (nuevamente)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "El nombre de usuario solo puede contener letras, números y guiones bajos"
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "Ese nombre de usuario ya está asignado. Por favor elija otro."
42
43
#: forms.py:68
44
msgid "You must type the same password each time"
45
msgstr "Debe tipear la misma contraseña cada vez"
46
47
#: forms.py:96
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "He leído y estoy de acuerdo con las Condiciones de Servicio"
50
51
#: forms.py:105
52
msgid "You must agree to the terms to register"
53
msgstr "Debe estar de acuerdo con las Condiciones para poder registrarse"
54
55
#: forms.py:124
56
msgid ""
57
"This email address is already in use. Please supply a different email "
58
"address."
59
msgstr "Esa dirección de e-mail ya está en uso. Por favor provea otra "
60
"dirección."
61
62
#: forms.py:149
63
msgid ""
64
"Registration using free email addresses is prohibited. Please supply a "
65
"different email address."
66
msgstr "La registración con un e-mail gratuito está prohibida. Por favor "
67
"de una dirección de e-mail diferente."
68
69
#: models.py:188
70
msgid "user"
71
msgstr "usuario"
72
73
#: models.py:189
74
msgid "activation key"
75
msgstr "clave de activación"
76
77
#: models.py:194
78
msgid "registration profile"
79
msgstr "perfil de registro"
80
81
#: models.py:195
82
msgid "registration profiles"
83
msgstr "perfiles de registro"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/fa/LC_MESSAGES/django.po (+80 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# Mohsen Mansouryar <mohsen.brian@gmail.com>, 2011.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: django-registration 0.8\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
11
"PO-Revision-Date: 2011-11-18 01:11+0330\n"
12
"Last-Translator: Mohsen Mansouryar <mohsen.brian@gmail.com>\n"
13
"Language-Team: erixe <mohsen.brian@gmail.com>\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=utf-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"X-Poedit-Language: Persian\n"
18
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
19
"X-Poedit-SourceCharset: utf-8\n"
20
21
#: forms.py:38
22
msgid "username"
23
msgstr "نام کاربری"
24
25
#: forms.py:41
26
msgid "email address"
27
msgstr "پست الکترونیکی"
28
29
#: forms.py:43
30
msgid "password"
31
msgstr "گذرواژه"
32
33
#: forms.py:45
34
msgid "password (again)"
35
msgstr "گذرواژه(تکرار)"
36
37
#: forms.py:54
38
msgid "Usernames can only contain letters, numbers and underscores"
39
msgstr "نام های کاربری تنها می توانند شامل حرف، رقم و یا _ باشند."
40
41
#: forms.py:59
42
msgid "This username is already taken. Please choose another."
43
msgstr "این نام کاربری گرفته شده است. لطفا نام دیگری انتخاب کنید."
44
45
#: forms.py:68
46
msgid "You must type the same password each time"
47
msgstr "دو گذرواژه باید مطابق باشند!"
48
49
#: forms.py:96
50
msgid "I have read and agree to the Terms of Service"
51
msgstr "من شرایط استفاده از این سرویس را مطالعه کرده و می پذیرم."
52
53
#: forms.py:105
54
msgid "You must agree to the terms to register"
55
msgstr "شما باید شرایط عضویت را بپذیرید!"
56
57
#: forms.py:124
58
msgid "This email address is already in use. Please supply a different email address."
59
msgstr "این آدرس استفاده شده است. لطفا آدرس دیگری ارائه دهید."
60
61
#: forms.py:149
62
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
63
msgstr "ثبت نام با استفاده از پست های الکترونیکی رایگان امکان پذیر نمی باشد."
64
65
#: models.py:188
66
msgid "user"
67
msgstr "کاربر"
68
69
#: models.py:189
70
msgid "activation key"
71
msgstr "کد فعالسازی"
72
73
#: models.py:194
74
msgid "registration profile"
75
msgstr "مشخصات ثبت نام"
76
77
#: models.py:195
78
msgid "registration profiles"
79
msgstr "پروفایل های ثبت نام"
80
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/fr/LC_MESSAGES/django.po (+339 lines)
Line 0 Link Here
1
# django-registration French translation.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the django-registration package.
4
# Samuel Adam <samuel.adam@gmail.com>, 2007.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: django-registration 0.8 alpha-1 \n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2015-04-04 19:35+0200\n"
12
"PO-Revision-Date: 2010-07-01 14:30+0200\n"
13
"Last-Translator: Jean-Marc Porcherot <jmarc.porcherot@free.fr>\n"
14
"Language-Team: Français <fr@li.org>\n"
15
"Language: \n"
16
"MIME-Version: 1.0\n"
17
"Content-Type: text/plain; charset=UTF-8\n"
18
"Content-Transfer-Encoding: 8bit\n"
19
20
#: galerie/templates/registration/activate.html:5
21
msgid "Account activation failed."
22
msgstr "Erreur lors de l'activation du compte"
23
24
#: galerie/templates/registration/activation_complete.html:4
25
msgid "Account Activated"
26
msgstr "Compte activé"
27
28
#: galerie/templates/registration/activation_complete.html:8
29
msgid "Your account is now activated."
30
msgstr "Votre compte est activé"
31
32
#: galerie/templates/registration/activation_complete.html:10
33
msgid "You can log in."
34
msgstr "Vous pouvez vous connecter."
35
36
#: galerie/templates/registration/activation_email.html:7
37
msgid "registration"
38
msgstr "profil d'inscription"
39
40
#: galerie/templates/registration/activation_email.html:12
41
#, python-format
42
msgid ""
43
"\n"
44
"    You (or someone pretending to be you) have asked to register an account "
45
"at\n"
46
"    %(site.name)s.  If this wasn't you, please ignore this email\n"
47
"    and your address will be removed from our records.\n"
48
"    "
49
msgstr ""
50
"\n"
51
"    Vous (ou quelqu'un se faisant passer pour vous) a demandé à créer un "
52
"compte sur le site\n"
53
"    %(site.name)s.  Si ce n'étais pas vous, veuillez ignorer cet email\n"
54
"    et votre adresse sera retirée de notre base.\n"
55
"    "
56
57
#: galerie/templates/registration/activation_email.html:19
58
#, python-format
59
msgid ""
60
"\n"
61
"    To activate this account, please click the following link within the "
62
"next\n"
63
"    %(expiration_days)s days:\n"
64
"    "
65
msgstr ""
66
"\n"
67
"    Pour activer votre compte, cliquez sur ce lien avant\n"
68
"    %(expiration_days)s jours:\n"
69
"    "
70
71
#: galerie/templates/registration/activation_email.html:31
72
msgid ""
73
"\n"
74
"    Sincerely,\n"
75
"    %(site.name)s Management\n"
76
"    "
77
msgstr ""
78
"\n"
79
"    Cordialement,\n"
80
"    "
81
82
#: galerie/templates/registration/activation_email.txt:3
83
#, python-format
84
msgid ""
85
"\n"
86
"You (or someone pretending to be you) have asked to register an account at\n"
87
"%(site.name)s.  If this wasn't you, please ignore this email\n"
88
"and your address will be removed from our records.\n"
89
msgstr ""
90
"\n"
91
"    Vous (ou quelqu'un se faisant passer pour vous) a demandé à créer un "
92
"compte sur le site\n"
93
"    %(site.name)s.  Si ce n'étais pas vous, veuillez ignorer cet email\n"
94
"    et votre adresse sera retirée de notre base.\n"
95
96
#: galerie/templates/registration/activation_email.txt:8
97
#, python-format
98
msgid ""
99
"\n"
100
"To activate this account, please click the following link within the next\n"
101
"%(expiration_days)s days:\n"
102
msgstr ""
103
"\n"
104
"    Pour activer votre compte, cliquez sur ce lien avant\n"
105
"    %(expiration_days)s jours:\n"
106
107
#: galerie/templates/registration/activation_email.txt:15
108
msgid ""
109
"\n"
110
"Sincerely,\n"
111
"%(site.name)s Management\n"
112
msgstr ""
113
"\n"
114
"    Cordialement,\n"
115
116
#: galerie/templates/registration/activation_email_subject.txt:1
117
msgid "Account activation on"
118
msgstr "Activation du compte sur"
119
120
#: galerie/templates/registration/login.html:4
121
#: galerie/templates/registration/login.html:16
122
msgid "Log in"
123
msgstr "Se connecter"
124
125
#: galerie/templates/registration/login.html:20
126
msgid "Forgot your password?"
127
msgstr "Mot de passe oublié ?"
128
129
#: galerie/templates/registration/login.html:20
130
msgid "Reset it"
131
msgstr "Le renouveler"
132
133
#: galerie/templates/registration/login.html:21
134
msgid "Not a member?"
135
msgstr "Vous n'êtes pas membre ?"
136
137
#: galerie/templates/registration/login.html:21
138
msgid "Register"
139
msgstr "Vous enregistrer"
140
141
#: galerie/templates/registration/logout.html:4
142
msgid "Logged out"
143
msgstr "Déconnecté"
144
145
#: galerie/templates/registration/logout.html:7
146
msgid "Successfully logged out"
147
msgstr "Déconnecté avec succès"
148
149
#: galerie/templates/registration/password_change_done.html:4
150
msgid "Password changed"
151
msgstr "Mot de passe changé"
152
153
#: galerie/templates/registration/password_change_done.html:7
154
msgid "Password successfully changed!"
155
msgstr "Mot de passe changé avec succès"
156
157
#: galerie/templates/registration/password_change_form.html:4
158
#: galerie/templates/registration/password_change_form.html:10
159
msgid "Change password"
160
msgstr "Mot de passe"
161
162
#: galerie/templates/registration/password_reset_complete.html:4
163
msgid "Password reset complete"
164
msgstr "Changement du mot de passe effectué"
165
166
#: galerie/templates/registration/password_reset_complete.html:8
167
msgid "Your password has been reset!"
168
msgstr "Votre mot de passe a été changé"
169
170
#: galerie/templates/registration/password_reset_complete.html:9
171
msgid "You may now"
172
msgstr "Vous pouvez maintenant"
173
174
#: galerie/templates/registration/password_reset_complete.html:9
175
msgid "log in"
176
msgstr "vous connecter"
177
178
#: galerie/templates/registration/password_reset_confirm.html:4
179
msgid "Confirm password reset"
180
msgstr "Confirmer le renouvellement du mot de passe"
181
182
#: galerie/templates/registration/password_reset_confirm.html:7
183
msgid "Enter your new password below to reset your password:"
184
msgstr "Saisissez votre nouveau mot de passe"
185
186
#: galerie/templates/registration/password_reset_confirm.html:11
187
msgid "Set password"
188
msgstr "Modifiez votre mot de passe"
189
190
#: galerie/templates/registration/password_reset_done.html:4
191
msgid "Password reset"
192
msgstr "Mot de passe modifié"
193
194
#: galerie/templates/registration/password_reset_done.html:8
195
msgid ""
196
"\n"
197
"    We have sent you an email with a link to reset your password. Please "
198
"check\n"
199
"    your email and click the link to continue.\n"
200
"    "
201
msgstr ""
202
"\n"
203
"    Un lien vous a été envoyé pour le changement de votre mot de passe.  "
204
"Veuillez consulter\n"
205
"    votre boîte mail et cliquer sur le lien pour continuer.\n"
206
"    "
207
208
#: galerie/templates/registration/password_reset_email.html:4
209
msgid "Greetings"
210
msgstr "Cher"
211
212
#: galerie/templates/registration/password_reset_email.html:6
213
#, python-format
214
msgid ""
215
"\n"
216
"You are receiving this email because you (or someone pretending to be you)\n"
217
"requested that your password be reset on the %(domain)s site.  If you do "
218
"not \n"
219
"wish to reset your password, please ignore this message.\n"
220
msgstr ""
221
"\n"
222
"Vous recevez ce courriel parce que vous (ou quelqu'un se faisant passer pour "
223
"vous)\n"
224
"avez demandé à renouveler votre mot de passe sur le site %(domain)s. \n"
225
"Si vous ne souhaitez pas renouveler votre mot de passe, veuillez ignorer ce "
226
"message.\n"
227
228
#: galerie/templates/registration/password_reset_email.html:12
229
msgid ""
230
"\n"
231
"To reset your password, please click the following link, or copy and paste "
232
"it\n"
233
"into your web browser:\n"
234
msgstr ""
235
"\n"
236
"Pour renouveler votre mot de passe, veuillez cliquer sur le lien ci-"
237
"dessous,\n"
238
"ou le copier/coller dans la barre d'adresse de votre navigateur :\n"
239
240
#: galerie/templates/registration/password_reset_email.html:19
241
msgid "Your username, in case you've forgotten:"
242
msgstr "Rappel de votre nom d'utilisateur, si vous l'avez oublié :"
243
244
#: galerie/templates/registration/password_reset_email.html:22
245
msgid "Best regards"
246
msgstr "Cordialement"
247
248
#: galerie/templates/registration/password_reset_email.html:23
249
msgid "Management"
250
msgstr ""
251
252
#: galerie/templates/registration/password_reset_form.html:4
253
#: galerie/templates/registration/password_reset_form.html:15
254
msgid "Reset password"
255
msgstr "Renouveler le mot de passe"
256
257
#: galerie/templates/registration/password_reset_form.html:8
258
msgid ""
259
"\n"
260
"    Forgot your password? Enter your email in the form below and we'll send "
261
"you instructions for creating a new one.\n"
262
"    "
263
msgstr ""
264
"\n"
265
"    Mot de passe oublié ?  Saisissez votre adresse mail ci-dessous afin que "
266
"nous vous envoyions les instructions pour que vous puissiez le renouveler.\n"
267
"    "
268
269
#: galerie/templates/registration/registration_closed.html:4
270
msgid "Registration is closed"
271
msgstr "L'inscription est indisponible"
272
273
#: galerie/templates/registration/registration_closed.html:7
274
msgid "Sorry, but registration is closed at this moment. Come back later."
275
msgstr ""
276
"Désolé, l'inscription est indisponible pour le moment. Veuillez réessayer "
277
"plus tard"
278
279
#: galerie/templates/registration/registration_complete.html:4
280
msgid "Activation email sent"
281
msgstr "Le mail d'activation a été envoyé"
282
283
#: galerie/templates/registration/registration_complete.html:7
284
msgid "Please check your email to complete the registration process."
285
msgstr ""
286
"Veuillez consulter votre boîte mail pour terminer le processus "
287
"d'enregistrement"
288
289
#: galerie/templates/registration/registration_form.html:4
290
msgid "Register for an account"
291
msgstr "Créer un compte"
292
293
#: galerie/templates/registration/registration_form.html:19
294
msgid "Submit"
295
msgstr "Envoyer"
296
297
msgid "Activate users"
298
msgstr "Activer les utilisateurs"
299
300
msgid "Username"
301
msgstr "Nom d'utilisateur"
302
303
msgid "This value must contain only letters, numbers and underscores."
304
msgstr ""
305
"Cette valeur ne doit contenir que des lettres, chiffres et tirets bas."
306
307
msgid "Email address"
308
msgstr "Adresse courriel"
309
310
msgid "A user with that username already exists."
311
msgstr "Ce nom d'utilisateur est déjà utilisé."
312
313
msgid "The two password fields didn't match."
314
msgstr "Les deux mots de passe ne correspondent pas."
315
316
msgid "I have read and agree to the Terms of Service"
317
msgstr "J'ai lu et accepté les Conditions Générales d'Utilisation"
318
319
msgid "You must agree to the terms to register"
320
msgstr "Vous devez accepter les conditions d'utilisation pour vous inscrire"
321
322
msgid ""
323
"This email address is already in use. Please supply a different email "
324
"address."
325
msgstr ""
326
"Cette adresse courriel est déjà utilisée. Veuillez en indiquer une autre."
327
328
msgid ""
329
"Registration using free email addresses is prohibited. Please supply a "
330
"different email address."
331
msgstr ""
332
"L'inscription avec adresse courriel de compte gratuit est interdite. "
333
"Veuillez en indiquer une autre."
334
335
msgid "user"
336
msgstr "utilisateur"
337
338
msgid "registration profiles"
339
msgstr "profils d'inscription"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/he/LC_MESSAGES/django.po (+86 lines)
Line 0 Link Here
1
# translation of registration.
2
# Copyright (C) 2008 THE registration'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the registration package.
4
# <>, 2008.
5
# , fuzzy
6
#  <>, 2008.
7
# 
8
# 
9
msgid ""
10
msgstr ""
11
"Project-Id-Version: registration\n"
12
"Report-Msgid-Bugs-To: \n"
13
"POT-Creation-Date: 2008-02-10 02:01+0200\n"
14
"PO-Revision-Date: 2008-02-10 02:05+0200\n"
15
"Last-Translator: Meir Kriheli <meir@mksoft.co.il>\n"
16
"Language-Team: Hebrew\n"
17
"MIME-Version: 1.0\n"
18
"Content-Type: text/plain; charset=UTF-8\n"
19
"Content-Transfer-Encoding: 8bit"
20
21
#: forms.py:38
22
msgid "username"
23
msgstr "שם משתמש"
24
25
#: forms.py:41
26
msgid "email address"
27
msgstr "דואר אלקטרוני"
28
29
#: forms.py:43
30
msgid "password"
31
msgstr "סיסמה"
32
33
#: forms.py:45
34
msgid "password (again)"
35
msgstr "סיסמה (שוב)"
36
37
#: forms.py:54
38
msgid "Usernames can only contain letters, numbers and underscores"
39
msgstr "שמות משתמש יכולים להכיל רק אותיות, ספרות וקווים תחתונים"
40
41
#: forms.py:59
42
msgid "This username is already taken. Please choose another."
43
msgstr "שם המשתמש תפוס כבר. נא לבחור אחר."
44
45
#: forms.py:64
46
msgid "You must type the same password each time"
47
msgstr "יש להקליד את אותה הסיסמה פעמיים"
48
49
#: forms.py:93
50
msgid "I have read and agree to the Terms of Service"
51
msgstr "קראתי והסכמתי לתנאי השימוש"
52
53
#: forms.py:102
54
msgid "You must agree to the terms to register"
55
msgstr "עליך להסכים לתנאי השימוש"
56
57
#: forms.py:121
58
msgid ""
59
"This email address is already in use. Please supply a different email "
60
"address."
61
msgstr ""
62
"כתובת הדואר האלקטרוני תפוסה כבר. נא לספק כתובת דואר אחרת."
63
64
#: forms.py:146
65
msgid ""
66
"Registration using free email addresses is prohibited. Please supply a "
67
"different email address."
68
msgstr ""
69
"הרישום בעזרת תיבת דואר אלקטרוני חינמית אסור. נא לספק כתובת אחרת."
70
71
#: models.py:188
72
msgid "user"
73
msgstr "משתמש"
74
75
#: models.py:189
76
msgid "activation key"
77
msgstr "מפתח הפעלה"
78
79
#: models.py:194
80
msgid "registration profile"
81
msgstr "פרופיל רישום"
82
83
#: models.py:195
84
msgid "registration profiles"
85
msgstr "פרופילי רישום"
86
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/hr/LC_MESSAGES/django.po (+86 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: 0.8.1beta\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2010-12-01 14:09-0500\n"
11
"PO-Revision-Date: 2010-12-01 15:49+0100\n"
12
"Last-Translator: Enis Afgan <afgane@gmail.com>\n"
13
"Language-Team: \n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=utf-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"X-Poedit-Language: Croatian\n"
18
"X-Poedit-Country: CROATIA\n"
19
20
#: admin.py:23
21
msgid "Activate users"
22
msgstr "Aktiviraj korisnike"
23
24
#: admin.py:43
25
msgid "Re-send activation emails"
26
msgstr "Ponovno pošlji aktivacijski email"
27
28
#: forms.py:35
29
msgid "username"
30
msgstr "Korisničko ime"
31
32
#: forms.py:36
33
msgid "This value must contain only letters, numbers and underscores."
34
msgstr "Ova vrijednost mora sadržavati samo slova, brojeve i podvlake."
35
36
#: forms.py:39
37
msgid "Email address"
38
msgstr "Email adresa"
39
40
#: forms.py:41
41
msgid "Password"
42
msgstr "Lozinka"
43
44
#: forms.py:43
45
msgid "Password (again)"
46
msgstr "Lozinka (ponovno)"
47
48
#: forms.py:55
49
msgid "A user with that username already exists."
50
msgstr "Ovo korisničko ime već postoji."
51
52
#: forms.py:67
53
msgid "The two password fields didn't match."
54
msgstr "Oba polja za lozinku nisu ista."
55
56
#: forms.py:78
57
msgid "I have read and agree to the Terms of Service"
58
msgstr "Pročitao sam i slažem se s uvijetima uporabe."
59
60
#: forms.py:79
61
msgid "You must agree to the terms to register"
62
msgstr "Morate se složiti sa uvijetima uporabe prije registracije."
63
64
#: forms.py:95
65
msgid "This email address is already in use. Please supply a different email address."
66
msgstr "Ova email adresa je već korištena. Molimo da koristite drugu email adresu."
67
68
#: forms.py:122
69
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
70
msgstr "Registracija gdje se koristi besplati email servis nije dopuštena. Molimo da koristite drugu email adresu."
71
72
#: models.py:165
73
msgid "user"
74
msgstr "Korisnik"
75
76
#: models.py:166
77
msgid "activation key"
78
msgstr "Aktivacijski ključ"
79
80
#: models.py:171
81
msgid "registration profile"
82
msgstr "Registracijski profil"
83
84
#: models.py:172
85
msgid "registration profiles"
86
msgstr "Registracijski profili"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/hu/LC_MESSAGES/django.po (+338 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# Gergely Bódi <vendelin@gmail.com>, 2015.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: django-register-redux 1.3\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2015-09-04 16:46+0200\n"
11
"Language-Team: Hungarian <hu@li.org>\n"
12
"Language: \n"
13
"MIME-Version: 1.0\n"
14
"Content-Type: text/plain; charset=UTF-8\n"
15
"Content-Transfer-Encoding: 8bit\n"
16
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
18
#: admin.py:24
19
msgid "Activate users"
20
msgstr "Felhasználók aktiválása"
21
22
#: admin.py:44
23
msgid "Re-send activation emails"
24
msgstr "Aktiváló emailek újraküldése"
25
26
#: forms.py:36
27
msgid "E-mail"
28
msgstr "E-mail"
29
30
#: forms.py:50
31
msgid "I have read and agree to the Terms of Service"
32
msgstr "Elolvastam és elfogadom a felhasználási feltételeket"
33
34
#: forms.py:51
35
msgid "You must agree to the terms to register"
36
msgstr "El kell fogadnod a feltételeket a regisztráláshoz"
37
38
#: forms.py:67
39
msgid ""
40
"This email address is already in use. Please supply a different email "
41
"address."
42
msgstr ""
43
"Ez az email cím már foglalt. Kérlek adj meg egy másikat."
44
45
#: forms.py:94
46
msgid ""
47
"Registration using free email addresses is prohibited. Please supply a "
48
"different email address."
49
msgstr ""
50
"Ingyenes email címről regisztrálni tilos. Kérlek adj meg egy másikat."
51
52
#: models.py:189
53
msgid "user"
54
msgstr "felhasználó"
55
56
#: models.py:190
57
msgid "activation key"
58
msgstr "aktiválási kulcs"
59
60
#: models.py:195
61
msgid "registration profile"
62
msgstr "regisztrációs profil"
63
64
#: models.py:196
65
msgid "registration profiles"
66
msgstr "regisztrációs profilok"
67
68
#: activate.html:5
69
msgid "Account activation failed."
70
msgstr "Fiók aktiválása sikertelen."
71
72
#: activation_complete.html:4
73
msgid "Account Activated"
74
msgstr "Fiók aktiválva"
75
76
#: activation_complete.html:8
77
msgid "Your account is now activated."
78
msgstr "A fiókod aktiválásra került."
79
80
#: activation_complete.html:10
81
msgid "You can log in."
82
msgstr "Mostantól bejelentkezhetsz."
83
84
#: activation_email.html:7
85
msgid "registration"
86
msgstr "regisztráció"
87
88
#: activation_email.html:12
89
#, python-format
90
msgid ""
91
"\n"
92
"    You (or someone pretending to be you) have asked to register an account "
93
"at\n"
94
"    %(site_name)s.  If this wasn't you, please ignore this email\n"
95
"    and your address will be removed from our records.\n"
96
"    "
97
msgstr ""
98
"\n"
99
"    Te (vagy valaki a nevedben) kérte egy fiók regisztrálását erre az "
100
"oldalra\n"
101
"    %(site_name)s.  Ha nem te voltál, hagyd ezt figyelmen kívül,\n"
102
"    és a címed törölve lesz az adatbázisból.\n"
103
"    "
104
105
#: activation_email.html:19
106
#, python-format
107
msgid ""
108
"\n"
109
"    To activate this account, please click the following link within the "
110
"next\n"
111
"    %(expiration_days)s days:\n"
112
"    "
113
msgstr ""
114
"\n"
115
"    Az aktiváláshoz kattints az alábbi linkre\n"
116
"    %(expiration_days)s napon belül:\n"
117
"    "
118
119
#: activation_email.html:31
120
#, python-format
121
msgid ""
122
"\n"
123
"    Sincerely,\n"
124
"    %(site_name)s Management\n"
125
"    "
126
msgstr ""
127
"\n"
128
"    Üdvözlettel,\n"
129
"    %(site_name)s Ügyfélszolgálat\n"
130
"    "
131
132
#: activation_email.txt:3
133
#, python-format
134
msgid ""
135
"\n"
136
"You (or someone pretending to be you) have asked to register an account at\n"
137
"%(site_name)s.  If this wasn't you, please ignore this email\n"
138
"and your address will be removed from our records.\n"
139
msgstr ""
140
"\n"
141
"Te (vagy valaki a nevedben) kérte egy fiók regisztrálását erre az oldalra:\n"
142
"%(site_name)s.  Ha nem te voltál, hagyd ezt figyelmen kívül, \n"
143
"és a címed törölve lesz az adatbázisból.\n"
144
145
#: activation_email.txt:8
146
#, python-format
147
msgid ""
148
"\n"
149
"To activate this account, please click the following link within the next\n"
150
"%(expiration_days)s days:\n"
151
msgstr ""
152
"\n"
153
"Az aktiváláshoz kattints az alábbi linkre\n"
154
"%(expiration_days)s napon belül:\n"
155
156
#: activation_email.txt:15
157
#, python-format
158
msgid ""
159
"\n"
160
"Sincerely,\n"
161
"%(site_name)s Management\n"
162
msgstr ""
163
"\n"
164
"Üdvözlettel,\n"
165
"%(site_name)s Ügyfélszolgálat\n"
166
167
#: activation_email_subject.txt:1
168
msgid "Account activation on"
169
msgstr "Fiók aktiválása a következőre:"
170
171
#: login.html:4 login.html:10
172
msgid "Log in"
173
msgstr "Bejelentkezés"
174
175
#: login.html:14
176
msgid "Forgot your password?"
177
msgstr "Elfelejtetted a jelszavad?"
178
179
#: login.html:14
180
msgid "Reset it"
181
msgstr "Visszaállítás"
182
183
#: login.html:15
184
msgid "Not a member?"
185
msgstr "Még nem vagy tag?"
186
187
#: login.html:15
188
msgid "Register"
189
msgstr "Regisztráció"
190
191
#: logout.html:4
192
msgid "Logged out"
193
msgstr "Kijelentkezés"
194
195
#: logout.html:7
196
msgid "Successfully logged out"
197
msgstr "Sikeresen kijelentkeztél"
198
199
#: password_change_done.html:4
200
msgid "Password changed"
201
msgstr "Megváltozott jelszó"
202
203
#: password_change_done.html:7
204
msgid "Password successfully changed!"
205
msgstr "A jelszavad sikeresen megváltozott!"
206
207
#: password_change_form.html:4
208
#: password_change_form.html:10
209
msgid "Change password"
210
msgstr "Jelszó megváltoztatása"
211
212
#: password_reset_complete.html:4
213
msgid "Password reset complete"
214
msgstr "Jelszó megáltoztatva"
215
216
#: password_reset_complete.html:8
217
msgid "Your password has been reset!"
218
msgstr "A jelszavad sikeresen megváltoztatásra került!"
219
220
#: password_reset_complete.html:9
221
msgid "You may now"
222
msgstr "Most már"
223
224
#: password_reset_complete.html:9
225
msgid "log in"
226
msgstr "bejelentkezhetsz"
227
228
#: password_reset_confirm.html:4
229
msgid "Confirm password reset"
230
msgstr "Jelszó visszaállítás megerősítése"
231
232
#: password_reset_confirm.html:7
233
msgid "Enter your new password below to reset your password:"
234
msgstr "Írd ide az új jelszavad:"
235
236
#: password_reset_confirm.html:11
237
msgid "Set password"
238
msgstr "Jelszó beállítása"
239
240
#: password_reset_done.html:4
241
msgid "Password reset"
242
msgstr "Jelszó megváltoztatva"
243
244
#: password_reset_done.html:8
245
msgid ""
246
"\n"
247
"    We have sent you an email with a link to reset your password. Please "
248
"check\n"
249
"    your email and click the link to continue.\n"
250
"    "
251
msgstr ""
252
"\n"
253
"    Hamarosan kapsz egy levelet a jelszavad megváltozásáról.  Nézd meg\n"
254
"    a leveleid közt, és kattints a linkre a folytatáshoz.\n"
255
"    "
256
257
#: password_reset_email.html:4
258
msgid "Greetings"
259
msgstr "Kedves"
260
261
#: password_reset_email.html:6
262
#, python-format
263
msgid ""
264
"\n"
265
"You are receiving this email because you (or someone pretending to be you)\n"
266
"requested that your password be reset on the %(domain)s site.  If you do "
267
"not \n"
268
"wish to reset your password, please ignore this message.\n"
269
msgstr ""
270
"\n"
271
"Azért kaptad ezt a levelet, mert te (vagy valaki a nevedben)\n"
272
"jelszó visszaállítást kért a %(domain)s oldalon.  Ha nem te akartad\n"
273
"visszaállítani a jelszavad, hagyd ezt figyelmen kívül, kérlek.\n"
274
275
#: password_reset_email.html:12
276
msgid ""
277
"\n"
278
"To reset your password, please click the following link, or copy and paste "
279
"it\n"
280
"into your web browser:\n"
281
msgstr ""
282
"\n"
283
"A jelszavad visszaállításához kérlek kattints az alábbi linkre, vagy "
284
"másold ki\n"
285
"a böngésződbe:\n"
286
287
#: password_reset_email.html:19
288
msgid "Your username, in case you've forgotten:"
289
msgstr "A felhasználóneved, arra az esetre, ha elfelejtetted volna:"
290
291
#: password_reset_email.html:22
292
msgid "Best regards"
293
msgstr "Minden jót"
294
295
#: password_reset_email.html:23
296
msgid "Management"
297
msgstr "Ügyfélszolgálat"
298
299
#: password_reset_form.html:4
300
#: password_reset_form.html:15
301
msgid "Reset password"
302
msgstr "Jelszó visszaállítás"
303
304
#: password_reset_form.html:8
305
msgid ""
306
"\n"
307
"    Forgot your password? Enter your email in the form below and we'll send "
308
"you instructions for creating a new one.\n"
309
"    "
310
msgstr ""
311
"\n"
312
"    Elfelejtetted a jelszavad?  Írd ide az email címed, és küldünk egy "
313
"levelet további instrukciókkal a megújításához.\n"
314
"    "
315
316
#: registration_closed.html:4
317
msgid "Registration is closed"
318
msgstr "Regisztráció letiltva"
319
320
#: registration_closed.html:7
321
msgid "Sorry, but registration is closed at this moment. Come back later."
322
msgstr "Sajnálom, a regisztráció jelenleg le van tiltva. Gyere vissza később"
323
324
#: registration_complete.html:4
325
msgid "Activation email sent"
326
msgstr "Aktiváló email elküldve"
327
328
#: registration_complete.html:7
329
msgid "Please check your email to complete the registration process."
330
msgstr "Kérlek nézd meg a leveleid a regisztráció befejezéséhez."
331
332
#: registration_form.html:4
333
msgid "Register for an account"
334
msgstr "Fiók regisztrálása"
335
336
#: registration_form.html:10
337
msgid "Submit"
338
msgstr "Küldés"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/is/LC_MESSAGES/django.po (+74 lines)
Line 0 Link Here
1
# Icelandic translation of django-registration
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the django-registration
4
# package.
5
# Björn Kristinsson <bjornkri@gmail.com>, 2009.
6
#
7
#, fuzzy
8
msgid ""
9
msgstr ""
10
"Project-Id-Version: PACKAGE VERSION\n"
11
"Report-Msgid-Bugs-To: \n"
12
"POT-Creation-Date: 2009-01-22 12:49+0100\n"
13
"PO-Revision-Date: 2009-01-22 12:49+0100\n"
14
"Last-Translator: Björn Kristinsson <bjornkri@gmail.com>\n"
15
"Language-Team: Icelandic\n"
16
"MIME-Version: 1.0\n"
17
"Content-Type: text/plain; charset=UTF-8\n"
18
"Content-Transfer-Encoding: 8bit\n"
19
20
#: forms.py:36
21
msgid "username"
22
msgstr "notandanafn"
23
24
#: forms.py:39
25
msgid "email address"
26
msgstr "netfang"
27
28
#: forms.py:41
29
msgid "password"
30
msgstr "lykilorð"
31
32
#: forms.py:43
33
msgid "password (again)"
34
msgstr "lykilorð (aftur)"
35
36
#: forms.py:55
37
msgid "This username is already taken. Please choose another."
38
msgstr "Þetta notendanafn er þegar á skrá. Vinsamlega reyndu annað."
39
40
#: forms.py:67
41
msgid "You must type the same password each time"
42
msgstr "Lykilorðin verða að vera eins "
43
44
#: forms.py:90
45
msgid "I have read and agree to the Terms of Service"
46
msgstr "Ég hef lesið og samþykki skilmálana"
47
48
#: forms.py:107
49
msgid ""
50
"This email address is already in use. Please supply a different email "
51
"address."
52
msgstr "Þetta netfang er þegar á skrá. Vinsamlegast notaðu annað netfang."
53
54
#: forms.py:133
55
msgid ""
56
"Registration using free email addresses is prohibited. Please supply a "
57
"different email address."
58
msgstr "Óheimilt er að nota ókeypis netföng. Vinsamlegast notaðu annað netfang."
59
60
#: models.py:218
61
msgid "user"
62
msgstr "notandi"
63
64
#: models.py:219
65
msgid "activation key"
66
msgstr "einkennislykill"
67
68
#: models.py:224
69
msgid "registration profile"
70
msgstr "skráningarprófíll"
71
72
#: models.py:225
73
msgid "registration profiles"
74
msgstr "skráningarprófílar"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/it/LC_MESSAGES/django.po (+89 lines)
Line 0 Link Here
1
# translation of django.po to Italian
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
#
5
# Nicola Larosa <nico@tekNico.net>, 2008.
6
# Flavio Curella <flavio.curella@gmail.com>, 2011
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: django-registration 0.8 alpha-1\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2010-07-01 14:33+0200\n"
12
"PO-Revision-Date: 2011-08-04 12:41-0600\n"
13
"Last-Translator: Flavio Curella <flavio.curella@gmail.com>\n"
14
"Language-Team: Italiano <it@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
"X-Poedit-Language: Italian\n"
20
"X-Poedit-Country: ITALY\n"
21
22
#: .\admin.py:23
23
msgid "Activate users"
24
msgstr "Attiva utenti"
25
26
#: .\admin.py:43
27
msgid "Re-send activation emails"
28
msgstr "Re-invia email di attivazione"
29
30
#: .\forms.py:35
31
msgid "Username"
32
msgstr "Nome utente"
33
34
#: .\forms.py:36
35
msgid "This value must contain only letters, numbers and underscores."
36
msgstr "Questo valore può contenere solo lettere, numeri e sottolineature."
37
38
#: .\forms.py:39
39
msgid "Email address"
40
msgstr "indirizzo email"
41
42
#: .\forms.py:41
43
msgid "Password"
44
msgstr "Password"
45
46
#: .\forms.py:43
47
msgid "Password (again)"
48
msgstr "Password (di nuovo)"
49
50
#: .\forms.py:55
51
msgid "A user with that username already exists."
52
msgstr "Questo nome utente è già usato."
53
54
#: .\forms.py:67
55
msgid "The two password fields didn't match."
56
msgstr "Le password inserite non coincidono."
57
58
#: .\forms.py:78
59
msgid "I have read and agree to the Terms of Service"
60
msgstr "Dichiaro di aver letto e di approvare le Condizioni di Servizio"
61
62
#: .\forms.py:79
63
msgid "You must agree to the terms to register"
64
msgstr "Per registrarsi bisogna approvare le condizioni"
65
66
#: .\forms.py:95
67
msgid "This email address is already in use. Please supply a different email address."
68
msgstr "Questo indirizzo email è già in uso. Inserisci un altro indirizzo email."
69
70
#: .\forms.py:122
71
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
72
msgstr "La registrazione con indirizzi email gratis non è permessa. Inserisci un altro indirizzo email."
73
74
#: .\models.py:165
75
msgid "user"
76
msgstr "utente"
77
78
#: .\models.py:166
79
msgid "activation key"
80
msgstr "chiave di attivazione"
81
82
#: .\models.py:171
83
msgid "registration profile"
84
msgstr "profilo di registrazione"
85
86
#: .\models.py:172
87
msgid "registration profiles"
88
msgstr "profili di registrazione"
89
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/ja/LC_MESSAGES/django.po (+78 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# Shinya Okano <xxshss@yahoo.co.jp>, YEAR.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: django-registration 0.4 \n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
12
"PO-Revision-Date: 2008-01-31 10:20+0900\n"
13
"Last-Translator: Shinya Okano <xxshss@yahoo.co.jp>\n"
14
"Language-Team: Japanese <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "ユーザ名"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "メールアドレス"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "パスワード"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "パスワード (確認)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "ユーザ名には半角英数とアンダースコアのみが使用できます。"
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "このユーザ名は既に使用されています。他のユーザ名を指定してください。"
42
43
#: forms.py:68
44
msgid "You must type the same password each time"
45
msgstr "同じパスワードを入力する必要があります。"
46
47
#: forms.py:96
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "サービス利用規約を読み、同意します。"
50
51
#: forms.py:105
52
msgid "You must agree to the terms to register"
53
msgstr "登録するためには規約に同意する必要があります。"
54
55
#: forms.py:124
56
msgid "This email address is already in use. Please supply a different email address."
57
msgstr "このメールアドレスは既に使用されています。他のメールアドレスを指定して下さい。"
58
59
#: forms.py:149
60
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
61
msgstr "自由なメールアドレスを使用した登録は禁止されています。他のメールアドレスを指定してください。"
62
63
#: models.py:188
64
msgid "user"
65
msgstr "ユーザ"
66
67
#: models.py:189
68
msgid "activation key"
69
msgstr "アクティベーションキー"
70
71
#: models.py:194
72
msgid "registration profile"
73
msgstr "登録プロファイル"
74
75
#: models.py:195
76
msgid "registration profiles"
77
msgstr "登録プロファイル"
78
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/ko/LC_MESSAGES/django.po (+89 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# Young Gyu Park <ygpark2@gmail.com>, 2009.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2009-10-12 14:09-0500\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: Young Gyu Park <ygpark2@gmail.com>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: admin.py:23
20
msgid "Activate users"
21
msgstr "사용자 활성화"
22
23
#: admin.py:43
24
msgid "Re-send activation emails"
25
msgstr "이 메일 재 전송"
26
27
#: forms.py:35
28
msgid "username"
29
msgstr "사용자 아이디"
30
31
#: forms.py:36
32
msgid "This value must contain only letters, numbers and underscores."
33
msgstr "이 곳에는 숫자, _, 영문 글자만 가능합니다."
34
35
#: forms.py:39
36
msgid "Email address"
37
msgstr "이메일 주소"
38
39
#: forms.py:41
40
msgid "Password"
41
msgstr "사용자 비밀번호"
42
43
#: forms.py:43
44
msgid "Password (again)"
45
msgstr "비밀번호 (재입력)"
46
47
#: forms.py:55
48
msgid "A user with that username already exists."
49
msgstr "이미 같은 아이디로 사용자가 등록되어 있습니다."
50
51
#: forms.py:67
52
msgid "The two password fields didn't match."
53
msgstr "비밀번호가 서로 일치하지 않습니다."
54
55
#: forms.py:78
56
msgid "I have read and agree to the Terms of Service"
57
msgstr "약관을 읽었고 그 내용에 동의합니다."
58
59
#: forms.py:79
60
msgid "You must agree to the terms to register"
61
msgstr "약관에 동의 하셔야만 합니다."
62
63
#: forms.py:95
64
msgid ""
65
"This email address is already in use. Please supply a different email "
66
"address."
67
msgstr "이메일이 이미 사용중입니다. 다른 이메일을 등록해 주세요."
68
69
#: forms.py:122
70
msgid ""
71
"Registration using free email addresses is prohibited. Please supply a "
72
"different email address."
73
msgstr "무료 이메일 계정으로 등록하실 수 없습니다. 다른 이메일을 등록해 주세요"
74
75
#: models.py:165
76
msgid "user"
77
msgstr "사용자"
78
79
#: models.py:166
80
msgid "activation key"
81
msgstr "활성화 키"
82
83
#: models.py:171
84
msgid "registration profile"
85
msgstr "등록 프로파일"
86
87
#: models.py:172
88
msgid "registration profiles"
89
msgstr "등록 프로파일"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/nb/LC_MESSAGES/django.po (+91 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# jonklo <jon at funkbit dot no>, 2010.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: django-registration 0.8\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2010-12-15 21:37+0100\n"
12
"PO-Revision-Date: 2010-12-15 21:37+0100\n"
13
"Last-Translator: jonklo <jon at funkbit dot no>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: admin.py:23
20
msgid "Activate users"
21
msgstr "Aktiver brukere"
22
23
#: admin.py:43
24
msgid "Re-send activation emails"
25
msgstr "Send ny aktiveringsmail"
26
27
#: forms.py:35
28
msgid "Username"
29
msgstr "Brukernavn"
30
31
#: forms.py:36
32
msgid "This value must contain only letters, numbers and underscores."
33
msgstr "Dette feltet kan bare inneholde bokstaver, nummer og understreker."
34
35
#: forms.py:39
36
msgid "Email address"
37
msgstr "E-postadresse"
38
39
#: forms.py:41
40
msgid "Password"
41
msgstr "Passord"
42
43
#: forms.py:43
44
msgid "Password (again)"
45
msgstr "Passord (gjenta)"
46
47
#: forms.py:55
48
msgid "A user with that username already exists."
49
msgstr "Det eksisterer allerede en bruker med dette brukernavnet."
50
51
#: forms.py:67
52
msgid "The two password fields didn't match."
53
msgstr "De to passordfeltene er ikke like."
54
55
#: forms.py:78
56
msgid "I have read and agree to the Terms of Service"
57
msgstr "Jeg har lest og godtar betingelsene"
58
59
#: forms.py:79
60
msgid "You must agree to the terms to register"
61
msgstr "Du må godta betingelsene for å registrere deg"
62
63
#: forms.py:95
64
msgid ""
65
"This email address is already in use. Please supply a different email "
66
"address."
67
msgstr "Denne e-postadressen er allerede i bruk. Vennligst oppgi en annen "
68
"e-postadresse."
69
70
#: forms.py:122
71
msgid ""
72
"Registration using free email addresses is prohibited. Please supply a "
73
"different email address."
74
msgstr "Registrering med gratis e-postadresse er ikke tillatt. Vennligst "
75
"oppgi en annen e-postadresse."
76
77
#: models.py:168
78
msgid "user"
79
msgstr "bruker"
80
81
#: models.py:169
82
msgid "activation key"
83
msgstr "aktiveringsnøkkel"
84
85
#: models.py:174
86
msgid "registration profile"
87
msgstr "registrasjonsprofil"
88
89
#: models.py:175
90
msgid "registration profiles"
91
msgstr "registrasjonsprofiler"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/nl/LC_MESSAGES/django.po (+77 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
# 
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: registration\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2008-08-14 13:25+0200\n"
11
"PO-Revision-Date: 2008-08-14 13:25+0200\n"
12
"Last-Translator: Joost Cassee <joost@cassee.net>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "gebruikersnaam"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "e-mail adres"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "wachtwoord"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "wachtwoord (opnieuw)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "Gebruikersnamen kunnen alleen letters, nummer en liggende streepjes bevatten."
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "Deze gebruikersnaam is reeds in gebruik. Kiest u alstublieft een andere gebruikersnaam."
42
43
#: forms.py:71
44
msgid "You must type the same password each time"
45
msgstr "U moet twee maal hetzelfde wachtwoord typen."
46
47
#: forms.py:100
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "Ik heb de servicevoorwaarden gelezen en ga akkoord."
50
51
#: forms.py:109
52
msgid "You must agree to the terms to register"
53
msgstr "U moet akkoord gaan met de servicevoorwaarden om u te registreren."
54
55
#: forms.py:125
56
msgid "This email address is already in use. Please supply a different email address."
57
msgstr "Dit e-mail adres is reeds in gebruik. Kiest u alstublieft een ander e-mail adres."
58
59
#: forms.py:151
60
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
61
msgstr "U kunt u niet registreren met een gratis e-mail adres. Kiest u alstublieft een ander e-mail adres."
62
63
#: models.py:191
64
msgid "user"
65
msgstr "gebruiker"
66
67
#: models.py:192
68
msgid "activation key"
69
msgstr "activatiecode"
70
71
#: models.py:197
72
msgid "registration profile"
73
msgstr "registratieprofiel"
74
75
#: models.py:198
76
msgid "registration profiles"
77
msgstr "registratieprofielen"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/pl/LC_MESSAGES/django.po (+84 lines)
Line 0 Link Here
1
# Polish translation for django-registration.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the django-registration package.
4
# Jarek Zgoda <jarek.zgoda@gmail.com>, 2007.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: 0.4\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
12
"PO-Revision-Date: 2007-12-15 12:45+0100\n"
13
"Last-Translator: Jarek Zgoda <jarek.zgoda@gmail.com>\n"
14
"Language-Team: Polish <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "nazwa użytkownika"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "adres email"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "hasło"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "hasło (ponownie)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr ""
38
"Nazwa użytkownika może zawierać tylko litery, cyfry i znaki podkreślenia"
39
40
#: forms.py:59
41
msgid "This username is already taken. Please choose another."
42
msgstr "Ta nazwa użytkownika jest już zajęta. Wybierz inną."
43
44
#: forms.py:68
45
msgid "You must type the same password each time"
46
msgstr "Musisz wpisać to samo hasło w obu polach"
47
48
#: forms.py:96
49
msgid "I have read and agree to the Terms of Service"
50
msgstr "Przeczytałem regulamin i akceptuję go"
51
52
#: forms.py:105
53
msgid "You must agree to the terms to register"
54
msgstr "Musisz zaakceptować regulamin, aby się zarejestrować"
55
56
#: forms.py:124
57
msgid ""
58
"This email address is already in use. Please supply a different email "
59
"address."
60
msgstr "Ten adres email jest już używany. Użyj innego adresu email."
61
62
#: forms.py:149
63
msgid ""
64
"Registration using free email addresses is prohibited. Please supply a "
65
"different email address."
66
msgstr ""
67
"Nie ma możliwości rejestracji przy użyciu darmowego adresu email. Użyj "
68
"innego adresu email."
69
70
#: models.py:188
71
msgid "user"
72
msgstr "użytkownik"
73
74
#: models.py:189
75
msgid "activation key"
76
msgstr "klucz aktywacyjny"
77
78
#: models.py:194
79
msgid "registration profile"
80
msgstr "profil rejestracji"
81
82
#: models.py:195
83
msgid "registration profiles"
84
msgstr "profile rejestracji"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/pt/LC_MESSAGES/django.po (+88 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: PACKAGE VERSION\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2010-03-26 10:54+0000\n"
11
"PO-Revision-Date: 2011-01-24 12:20+0000\n"
12
"Last-Translator: Nuno Mariz <nmariz@gmail.com>\n"
13
"Language-Team: Nuno Mariz <nmariz@gmail.com>\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
18
#: admin.py:23
19
msgid "Activate users"
20
msgstr "Ativar utilizadores"
21
22
#: admin.py:43
23
msgid "Re-send activation emails"
24
msgstr "Reenviar emails de ativação"
25
26
#: forms.py:35
27
msgid "Username"
28
msgstr "Utilizador"
29
30
#: forms.py:36
31
msgid "This value must contain only letters, numbers and underscores."
32
msgstr "Este valor apenas deverá conter letras, números e underscores."
33
34
#: forms.py:39
35
msgid "Email address"
36
msgstr "Email"
37
38
#: forms.py:41
39
msgid "Password"
40
msgstr "Password"
41
42
#: forms.py:43
43
msgid "Password (again)"
44
msgstr "Password (novamente)"
45
46
#: forms.py:55
47
msgid "A user with that username already exists."
48
msgstr "Um utilizador com o mesmo nome já se encontra registado."
49
50
#: forms.py:67
51
msgid "The two password fields didn't match."
52
msgstr "As duas passwords não coincidem."
53
54
#: forms.py:78
55
msgid "I have read and agree to the Terms of Service"
56
msgstr "Eu li e concordo com as Condiçoes de Serviço"
57
58
#: forms.py:79
59
msgid "You must agree to the terms to register"
60
msgstr "Deverá concordar com as condições para se registar"
61
62
#: forms.py:95
63
msgid ""
64
"This email address is already in use. Please supply a different email "
65
"address."
66
msgstr "Este email já se encontra registado. Por favor forneça um email diferente."
67
68
#: forms.py:122
69
msgid ""
70
"Registration using free email addresses is prohibited. Please supply a "
71
"different email address."
72
msgstr "O registo com emails gratuitos é proibido. Por favor forneça um email diferente."
73
74
#: models.py:168
75
msgid "user"
76
msgstr "utilizador"
77
78
#: models.py:169
79
msgid "activation key"
80
msgstr "chave de ativação"
81
82
#: models.py:174
83
msgid "registration profile"
84
msgstr "perfil de registo"
85
86
#: models.py:175
87
msgid "registration profiles"
88
msgstr "perfis de registo"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/pt_BR/LC_MESSAGES/django.po (+309 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: PACKAGE VERSION\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2015-07-09 19:09-0300\n"
11
"PO-Revision-Date: 2015-07-09 19:32-0300\n"
12
"Last-Translator: Paulo R <proberto.macedo@gmail.com>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
"Language: \n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: admin.py:24
20
msgid "Activate users"
21
msgstr ""
22
23
#: admin.py:44
24
#, fuzzy
25
msgid "Re-send activation emails"
26
msgstr "chave de ativação"
27
28
#: forms.py:36
29
msgid "E-mail"
30
msgstr ""
31
32
#: forms.py:50
33
msgid "I have read and agree to the Terms of Service"
34
msgstr "Eu lí e concordo com os Termos de Uso do serviço"
35
36
#: forms.py:51
37
msgid "You must agree to the terms to register"
38
msgstr "Você deve concordar com os termos para registrar-se"
39
40
#: forms.py:67
41
msgid "This email address is already in use. Please supply a different email address."
42
msgstr "Este endereço de email já está em uso. Por favor, informe um endereço de email diferente."
43
44
#: forms.py:94
45
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
46
msgstr "Registrar-se com contas de email gratuitos está proibido. Por favor, informe um endereço de email diferente."
47
48
#: models.py:189
49
msgid "user"
50
msgstr "usuário"
51
52
#: models.py:190
53
msgid "activation key"
54
msgstr "chave de ativação"
55
56
#: models.py:195
57
msgid "registration profile"
58
msgstr "profile de registro"
59
60
#: models.py:196
61
msgid "registration profiles"
62
msgstr "profiles de registro"
63
64
#: templates/registration/activate.html:5
65
#, fuzzy
66
msgid "Account activation failed."
67
msgstr "chave de ativação"
68
69
#: templates/registration/activation_complete.html:4
70
msgid "Account Activated"
71
msgstr ""
72
73
#: templates/registration/activation_complete.html:8
74
msgid "Your account is now activated."
75
msgstr ""
76
77
#: templates/registration/activation_complete.html:10
78
msgid "You can log in."
79
msgstr ""
80
81
#: templates/registration/activation_email.html:7
82
#, fuzzy
83
msgid "registration"
84
msgstr "profile de registro"
85
86
#: templates/registration/activation_email.html:12
87
#, python-format
88
msgid ""
89
"\n"
90
"    You (or someone pretending to be you) have asked to register an account at\n"
91
"    %(site_name)s.  If this wasn't you, please ignore this email\n"
92
"    and your address will be removed from our records.\n"
93
"    "
94
msgstr ""
95
96
#: templates/registration/activation_email.html:19
97
#, python-format
98
msgid ""
99
"\n"
100
"    To activate this account, please click the following link within the next\n"
101
"    %(expiration_days)s days:\n"
102
"    "
103
msgstr ""
104
105
#: templates/registration/activation_email.html:31
106
#, python-format
107
msgid ""
108
"\n"
109
"    Sincerely,\n"
110
"    %(site_name)s Management\n"
111
"    "
112
msgstr ""
113
114
#: templates/registration/activation_email.txt:3
115
#, python-format
116
msgid ""
117
"\n"
118
"You (or someone pretending to be you) have asked to register an account at\n"
119
"%(site_name)s.  If this wasn't you, please ignore this email\n"
120
"and your address will be removed from our records.\n"
121
msgstr ""
122
123
#: templates/registration/activation_email.txt:8
124
#, python-format
125
msgid ""
126
"\n"
127
"To activate this account, please click the following link within the next\n"
128
"%(expiration_days)s days:\n"
129
msgstr ""
130
131
#: templates/registration/activation_email.txt:15
132
#, python-format
133
msgid ""
134
"\n"
135
"Sincerely,\n"
136
"%(site_name)s Management\n"
137
msgstr ""
138
139
#: templates/registration/activation_email_subject.txt:1
140
#, fuzzy
141
msgid "Account activation on"
142
msgstr "chave de ativação"
143
144
#: templates/registration/login.html:4
145
#: templates/registration/login.html:10
146
msgid "Log in"
147
msgstr ""
148
149
#: templates/registration/login.html:14
150
msgid "Forgot your password?"
151
msgstr ""
152
153
#: templates/registration/login.html:14
154
msgid "Reset it"
155
msgstr ""
156
157
#: templates/registration/login.html:15
158
msgid "Not a member?"
159
msgstr ""
160
161
#: templates/registration/login.html:15
162
msgid "Register"
163
msgstr ""
164
165
#: templates/registration/logout.html:4
166
msgid "Logged out"
167
msgstr ""
168
169
#: templates/registration/logout.html:7
170
msgid "Successfully logged out"
171
msgstr ""
172
173
#: templates/registration/password_change_done.html:4
174
#, fuzzy
175
msgid "Password changed"
176
msgstr "senha (novamente)"
177
178
#: templates/registration/password_change_done.html:7
179
msgid "Password successfully changed!"
180
msgstr ""
181
182
#: templates/registration/password_change_form.html:4
183
#: templates/registration/password_change_form.html:10
184
msgid "Change password"
185
msgstr ""
186
187
#: templates/registration/password_reset_complete.html:4
188
msgid "Password reset complete"
189
msgstr ""
190
191
#: templates/registration/password_reset_complete.html:8
192
msgid "Your password has been reset!"
193
msgstr ""
194
195
#: templates/registration/password_reset_complete.html:9
196
msgid "You may now"
197
msgstr ""
198
199
#: templates/registration/password_reset_complete.html:9
200
msgid "log in"
201
msgstr ""
202
203
#: templates/registration/password_reset_confirm.html:4
204
msgid "Confirm password reset"
205
msgstr ""
206
207
#: templates/registration/password_reset_confirm.html:7
208
msgid "Enter your new password below to reset your password:"
209
msgstr ""
210
211
#: templates/registration/password_reset_confirm.html:11
212
msgid "Set password"
213
msgstr ""
214
215
#: templates/registration/password_reset_done.html:4
216
msgid "Password reset"
217
msgstr ""
218
219
#: templates/registration/password_reset_done.html:8
220
msgid ""
221
"\n"
222
"    We have sent you an email with a link to reset your password. Please check\n"
223
"    your email and click the link to continue.\n"
224
"    "
225
msgstr ""
226
227
#: templates/registration/password_reset_email.html:4
228
msgid "Greetings"
229
msgstr ""
230
231
#: templates/registration/password_reset_email.html:6
232
#, python-format
233
msgid ""
234
"\n"
235
"You are receiving this email because you (or someone pretending to be you)\n"
236
"requested that your password be reset on the %(domain)s site.  If you do not \n"
237
"wish to reset your password, please ignore this message.\n"
238
msgstr ""
239
240
#: templates/registration/password_reset_email.html:12
241
msgid ""
242
"\n"
243
"To reset your password, please click the following link, or copy and paste it\n"
244
"into your web browser:\n"
245
msgstr ""
246
247
#: templates/registration/password_reset_email.html:19
248
msgid "Your username, in case you've forgotten:"
249
msgstr ""
250
251
#: templates/registration/password_reset_email.html:22
252
msgid "Best regards"
253
msgstr ""
254
255
#: templates/registration/password_reset_email.html:23
256
msgid "Management"
257
msgstr ""
258
259
#: templates/registration/password_reset_form.html:4
260
#: templates/registration/password_reset_form.html:15
261
msgid "Reset password"
262
msgstr ""
263
264
#: templates/registration/password_reset_form.html:8
265
msgid ""
266
"\n"
267
"    Forgot your password? Enter your email in the form below and we'll send you instructions for creating a new one.\n"
268
"    "
269
msgstr ""
270
271
#: templates/registration/registration_closed.html:4
272
#, fuzzy
273
msgid "Registration is closed"
274
msgstr "profile de registro"
275
276
#: templates/registration/registration_closed.html:7
277
msgid "Sorry, but registration is closed at this moment. Come back later."
278
msgstr ""
279
280
#: templates/registration/registration_complete.html:4
281
msgid "Activation email sent"
282
msgstr "E-mail de ativação enviado"
283
284
#: templates/registration/registration_complete.html:7
285
msgid "Please check your email to complete the registration process."
286
msgstr "Por favor verifique seu email para completar o processo de registro.ww"
287
288
#: templates/registration/registration_form.html:4
289
msgid "Register for an account"
290
msgstr ""
291
292
#: templates/registration/registration_form.html:10
293
msgid "Submit"
294
msgstr ""
295
296
#~ msgid "username"
297
#~ msgstr "usuário"
298
299
#~ msgid "email address"
300
#~ msgstr "endereço de email"
301
302
#~ msgid "Usernames can only contain letters, numbers and underscores"
303
#~ msgstr "Nomes de usuário apenas podem conter letras, números, e underscore"
304
305
#~ msgid "This username is already taken. Please choose another."
306
#~ msgstr "Este nome de usuário já existe. Por favor, escolha outro."
307
308
#~ msgid "You must type the same password each time"
309
#~ msgstr "Você deve escrever a mesma senha nos dois campos"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/ru/LC_MESSAGES/django.po (+366 lines)
Line 0 Link Here
1
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
2
# This file is distributed under the same license as the PACKAGE package.
3
#
4
# Andrew Grigorev <andrew@ei-grad.ru>, 2015.
5
msgid ""
6
msgstr ""
7
"Project-Id-Version: \n"
8
"Report-Msgid-Bugs-To: \n"
9
"POT-Creation-Date: 2015-09-08 15:29-0500\n"
10
"PO-Revision-Date: 2015-09-09 00:39+0300\n"
11
"Last-Translator: Andrew Grigorev <andrew@ei-grad.ru>\n"
12
"Language-Team: Russian <>\n"
13
"Language: ru_RU\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<"
18
"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19
"X-Generator: Lokalize 2.0\n"
20
21
#: registration/admin.py:24
22
msgid "Activate users"
23
msgstr "Активировать учетные записи"
24
25
#: registration/admin.py:44
26
msgid "Re-send activation emails"
27
msgstr "Выслать ключи активации заново"
28
29
#: registration/forms.py:36
30
msgid "E-mail"
31
msgstr "E-mail"
32
33
#: registration/forms.py:50
34
msgid "I have read and agree to the Terms of Service"
35
msgstr "Я прочитал Правила Использования и согласен с ними"
36
37
#: registration/forms.py:51
38
msgid "You must agree to the terms to register"
39
msgstr "Для регистрации Вы должны согласиться с Правилами"
40
41
#: registration/forms.py:67
42
msgid ""
43
"This email address is already in use. Please supply a different email "
44
"address."
45
msgstr ""
46
"Этот адрес электронной почты уже используется. Пожалуйста, введите другой "
47
"адрес."
48
49
#: registration/forms.py:94
50
msgid ""
51
"Registration using free email addresses is prohibited. Please supply a "
52
"different email address."
53
msgstr ""
54
"Регистрация с использованием свободных почтовых серверов запрещена. "
55
"Пожалуйста, введите другой адрес электронной почты."
56
57
#: registration/models.py:191
58
msgid "user"
59
msgstr "пользователь"
60
61
#: registration/models.py:192
62
msgid "activation key"
63
msgstr "ключ активации"
64
65
#: registration/models.py:197
66
msgid "registration profile"
67
msgstr "карточка регистрации"
68
69
#: registration/models.py:198
70
msgid "registration profiles"
71
msgstr "карточки регистрации"
72
73
#: registration/templates/registration/activate.html:5
74
#| msgid "Re-send activation emails"
75
msgid "Account activation failed."
76
msgstr "Активация аккаунта не удалась."
77
78
#: registration/templates/registration/activation_complete.html:4
79
msgid "Account Activated"
80
msgstr "Учетная запись активирована"
81
82
#: registration/templates/registration/activation_complete.html:8
83
msgid "Your account is now activated."
84
msgstr "Ваша учетная запись теперь активирована."
85
86
#: registration/templates/registration/activation_complete.html:10
87
msgid "You can log in."
88
msgstr "Вы можете войти."
89
90
#: registration/templates/registration/activation_email.html:7
91
#| msgid "registration profile"
92
msgid "registration"
93
msgstr "регистрация"
94
95
#: registration/templates/registration/activation_email.html:12
96
#, python-format
97
msgid ""
98
"\n"
99
"    You (or someone pretending to be you) have asked to register an account "
100
"at\n"
101
"    %(site_name)s.  If this wasn't you, please ignore this email\n"
102
"    and your address will be removed from our records.\n"
103
"    "
104
msgstr ""
105
"\n"
106
"  Вы (или кто-то выдающий себя за вас) оставил заявку на регистрацию\n"
107
"  учетной записи на %(site_name)s. Если это были не вы, то проигнорируйте это "
108
"сообщение, и ваш почтовый адрес будет удален из наших записей.\n"
109
"  "
110
111
#: registration/templates/registration/activation_email.html:19
112
#, python-format
113
msgid ""
114
"\n"
115
"    To activate this account, please click the following link within the "
116
"next\n"
117
"    %(expiration_days)s days:\n"
118
"    "
119
msgstr ""
120
"\n"
121
"    Чтобы активировать эту учетную запись, перейдите по следующей ссылке в "
122
"течении %(expiration_days)s дней:\n"
123
"    "
124
125
#: registration/templates/registration/activation_email.html:31
126
#, python-format
127
msgid ""
128
"\n"
129
"    Sincerely,\n"
130
"    %(site_name)s Management\n"
131
"    "
132
msgstr ""
133
"\n"
134
"    С уважением,<br>\n"
135
"    Команда %(site_name)s\n"
136
"    "
137
138
#: registration/templates/registration/activation_email.txt:3
139
#, python-format
140
msgid ""
141
"\n"
142
"You (or someone pretending to be you) have asked to register an account at\n"
143
"%(site_name)s.  If this wasn't you, please ignore this email\n"
144
"and your address will be removed from our records.\n"
145
msgstr ""
146
"\n"
147
"Вы (или кто-то выдающий себя за вас) оставил заявку на регистрацию\n"
148
"учетной записи на %(site_name)s. Если это были не вы, то проигнорируйте\n"
149
"это сообщение, и ваш почтовый адрес будет удален из наших записей.\n"
150
151
#: registration/templates/registration/activation_email.txt:8
152
#, python-format
153
msgid ""
154
"\n"
155
"To activate this account, please click the following link within the next\n"
156
"%(expiration_days)s days:\n"
157
msgstr ""
158
"\n"
159
"Чтобы активировать эту учетную запись, перейдите по следующей ссылке\n"
160
"в течении %(expiration_days)s дней:\n"
161
162
#: registration/templates/registration/activation_email.txt:15
163
#, python-format
164
msgid ""
165
"\n"
166
"Sincerely,\n"
167
"%(site_name)s Management\n"
168
msgstr ""
169
"\n"
170
"С уважением,\n"
171
"Команда %(site_name)s\n"
172
173
#: registration/templates/registration/activation_email_subject.txt:1
174
#| msgid "activation key"
175
msgid "Account activation on"
176
msgstr "Активация учетной записи на"
177
178
#: registration/templates/registration/login.html:4
179
#: registration/templates/registration/login.html:10
180
msgid "Log in"
181
msgstr "Войти"
182
183
#: registration/templates/registration/login.html:14
184
msgid "Forgot your password?"
185
msgstr "Забыли свой пароль?"
186
187
#: registration/templates/registration/login.html:14
188
msgid "Reset it"
189
msgstr "Сбросьте его"
190
191
#: registration/templates/registration/login.html:15
192
msgid "Not a member?"
193
msgstr "Нет учетной записи?"
194
195
#: registration/templates/registration/login.html:15
196
msgid "Register"
197
msgstr "Зарегистрироваться"
198
199
#: registration/templates/registration/logout.html:4
200
msgid "Logged out"
201
msgstr "Выход"
202
203
#: registration/templates/registration/logout.html:7
204
msgid "Successfully logged out"
205
msgstr "Вы успешно вышли из своей учетной записи"
206
207
#: registration/templates/registration/password_change_done.html:4
208
#| msgid "Password (again)"
209
msgid "Password changed"
210
msgstr "Пароль изменен"
211
212
#: registration/templates/registration/password_change_done.html:7
213
msgid "Password successfully changed!"
214
msgstr "Пароль успешно изменен!"
215
216
#: registration/templates/registration/password_change_form.html:4
217
#: registration/templates/registration/password_change_form.html:10
218
#| msgid "Password"
219
msgid "Change password"
220
msgstr "Изменить пароль"
221
222
#: registration/templates/registration/password_reset_complete.html:4
223
msgid "Password reset complete"
224
msgstr "Сброс пароля завершен"
225
226
#: registration/templates/registration/password_reset_complete.html:8
227
msgid "Your password has been reset!"
228
msgstr "Ваш пароль был сброшен!"
229
230
#: registration/templates/registration/password_reset_complete.html:9
231
msgid "You may now"
232
msgstr "Вы можете теперь"
233
234
#: registration/templates/registration/password_reset_complete.html:9
235
msgid "log in"
236
msgstr "войти"
237
238
#: registration/templates/registration/password_reset_confirm.html:4
239
msgid "Confirm password reset"
240
msgstr "Подтверждение сброса пароля"
241
242
#: registration/templates/registration/password_reset_confirm.html:7
243
msgid "Enter your new password below to reset your password:"
244
msgstr "Введите ваш новый пароль:"
245
246
#: registration/templates/registration/password_reset_confirm.html:11
247
#| msgid "Password"
248
msgid "Set password"
249
msgstr "Установить пароль"
250
251
#: registration/templates/registration/password_reset_done.html:4
252
#| msgid "Password"
253
msgid "Password reset"
254
msgstr "Сброс пароля"
255
256
#: registration/templates/registration/password_reset_done.html:8
257
msgid ""
258
"\n"
259
"    We have sent you an email with a link to reset your password. Please "
260
"check\n"
261
"    your email and click the link to continue.\n"
262
"    "
263
msgstr ""
264
"\n"
265
"    Вам было отправлено письмо со ссылкой на сброс пароля. Проверьте\n"
266
"    вашу почту и перейдите по указанной ссылке для продолжения.\n"
267
"    "
268
269
#: registration/templates/registration/password_reset_email.html:4
270
msgid "Greetings"
271
msgstr "Привет"
272
273
#: registration/templates/registration/password_reset_email.html:6
274
#, python-format
275
msgid ""
276
"\n"
277
"You are receiving this email because you (or someone pretending to be you)\n"
278
"requested that your password be reset on the %(domain)s site.  If you do "
279
"not \n"
280
"wish to reset your password, please ignore this message.\n"
281
msgstr ""
282
"\n"
283
"Вы получили это письмо потому что вы (или кто-то выдающий себя за вас)\n"
284
"запросил сброс пароля на сайте %(domain)s. Если это были не вы, то просто\n"
285
"проигнорируйте это сообщение.\n"
286
287
#: registration/templates/registration/password_reset_email.html:12
288
msgid ""
289
"\n"
290
"To reset your password, please click the following link, or copy and paste "
291
"it\n"
292
"into your web browser:\n"
293
msgstr ""
294
"\n"
295
"Чтобы сбросить пароль, перейдите по следующей ссылке:\n"
296
297
#: registration/templates/registration/password_reset_email.html:19
298
msgid "Your username, in case you've forgotten:"
299
msgstr "Ваше имя пользователя, на случай если вы его забыли:"
300
301
#: registration/templates/registration/password_reset_email.html:22
302
msgid "Best regards"
303
msgstr "С уважением,"
304
305
#: registration/templates/registration/password_reset_email.html:23
306
msgid "Management"
307
msgstr " "
308
309
#: registration/templates/registration/password_reset_form.html:4
310
#: registration/templates/registration/password_reset_form.html:15
311
#| msgid "Password"
312
msgid "Reset password"
313
msgstr "Сбросить пароль"
314
315
#: registration/templates/registration/password_reset_form.html:8
316
msgid ""
317
"\n"
318
"    Forgot your password? Enter your email in the form below and we'll send "
319
"you instructions for creating a new one.\n"
320
"    "
321
msgstr ""
322
"\n"
323
"    Забыли свой пароль? Введите свой адрес электронной почты и мы отправим "
324
"вам инструкции по установке нового пароля.\n"
325
"    "
326
327
#: registration/templates/registration/registration_closed.html:4
328
#| msgid "registration profile"
329
msgid "Registration is closed"
330
msgstr "Регистрация закрыта"
331
332
#: registration/templates/registration/registration_closed.html:7
333
msgid "Sorry, but registration is closed at this moment. Come back later."
334
msgstr "Извините, но регистрация в данный момент закрыта. Попробуйте позже."
335
336
#: registration/templates/registration/registration_complete.html:4
337
#| msgid "Re-send activation emails"
338
msgid "Activation email sent"
339
msgstr "Письмо активации отправлено"
340
341
#: registration/templates/registration/registration_complete.html:7
342
msgid "Please check your email to complete the registration process."
343
msgstr "Проверьте свою электронную почту для завершения процесса регистрации."
344
345
#: registration/templates/registration/registration_form.html:4
346
msgid "Register for an account"
347
msgstr "Регистрация учетной записи"
348
349
#: registration/templates/registration/registration_form.html:10
350
msgid "Submit"
351
msgstr "Отправить"
352
353
#~ msgid "Username"
354
#~ msgstr "Имя пользователя"
355
356
#~ msgid "This value must contain only letters, numbers and underscores."
357
#~ msgstr "Это поле может содержать только буквы, цифры и подчеркивания"
358
359
#~ msgid "Email address"
360
#~ msgstr "Адрес электронной почты"
361
362
#~ msgid "A user with that username already exists."
363
#~ msgstr "Пользователь с таким именем уже существует."
364
365
#~ msgid "The two password fields didn't match."
366
#~ msgstr "Введенные пароли не совпадают."
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/sl/LC_MESSAGES/django.po (+87 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: 0.8.1beta\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2009-10-12 14:09-0500\n"
11
"PO-Revision-Date: 2011-11-05 21:20+0100\n"
12
"Last-Translator: Marko Mrdjenovic <m@mmm.si>\n"
13
"Language-Team: Slovenian <domen@dev.si>\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=utf-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"X-Poedit-Language: Slovenian\n"
18
"X-Poedit-Country: SLOVENIA\n"
19
20
#: admin.py:23
21
msgid "Activate users"
22
msgstr "Aktiviraj uporabnike"
23
24
#: admin.py:43
25
msgid "Re-send activation emails"
26
msgstr "Ponovno pošlji aktivacijsko e-pošto"
27
28
#: forms.py:35
29
msgid "username"
30
msgstr "uporabniško ime"
31
32
#: forms.py:36
33
msgid "This value must contain only letters, numbers and underscores."
34
msgstr "Vrednost lahko vsebuje samo črke, cifre in podčrtaje."
35
36
#: forms.py:39
37
msgid "Email address"
38
msgstr "E-naslov"
39
40
#: forms.py:41
41
msgid "Password"
42
msgstr "Geslo"
43
44
#: forms.py:43
45
msgid "Password (again)"
46
msgstr "Geslo (ponovno)"
47
48
#: forms.py:55
49
msgid "A user with that username already exists."
50
msgstr "Uporabnik s tem uporabniškim imenom že obstaja."
51
52
#: forms.py:67
53
msgid "The two password fields didn't match."
54
msgstr "Polji z gesli se ne ujemata."
55
56
#: forms.py:78
57
msgid "I have read and agree to the Terms of Service"
58
msgstr "Strinjam se s pogoji uporabe"
59
60
#: forms.py:79
61
msgid "You must agree to the terms to register"
62
msgstr "Za registracijo se morate strinjati s pogoji uporabe"
63
64
#: forms.py:95
65
msgid "This email address is already in use. Please supply a different email address."
66
msgstr "E-naslov je že v uporabi, prosimo vnesite drugega."
67
68
#: forms.py:122
69
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
70
msgstr "Registracija ni mogoča z brezplačnimi e-naslovi. Prosimo vnesite drug e-naslov."
71
72
#: models.py:165
73
msgid "user"
74
msgstr "Uporabnik"
75
76
#: models.py:166
77
msgid "activation key"
78
msgstr "Aktivacijski ključ"
79
80
#: models.py:171
81
msgid "registration profile"
82
msgstr "Registracijski profil"
83
84
#: models.py:172
85
msgid "registration profiles"
86
msgstr "Registracijski profili"
87
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/sr/LC_MESSAGES/django.po (+80 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: django-registration trunk\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2008-04-05 13:51+0200\n"
11
"PO-Revision-Date: 2008-04-05 14:00+0100\n"
12
"Last-Translator: Nebojsa Djordjevic <djnesh@gmail.com>\n"
13
"Language-Team: \n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18
"X-Poedit-Language: Serbian\n"
19
"X-Poedit-Country: YUGOSLAVIA\n"
20
21
#: forms.py:38
22
msgid "username"
23
msgstr "korisničko ime"
24
25
#: forms.py:41
26
msgid "email address"
27
msgstr "email adresa"
28
29
#: forms.py:43
30
msgid "password"
31
msgstr "šifra"
32
33
#: forms.py:45
34
msgid "password (again)"
35
msgstr "šifra (ponovo)"
36
37
#: forms.py:54
38
msgid "Usernames can only contain letters, numbers and underscores"
39
msgstr "Korisničko ime može da se sastoji samo od slova, brojeva i donje crte (\"_\")"
40
41
#: forms.py:59
42
msgid "This username is already taken. Please choose another."
43
msgstr "Korisničko ime je već zauzeto. Izaberite drugo."
44
45
#: forms.py:71
46
msgid "You must type the same password each time"
47
msgstr "Unete šifre se ne slažu"
48
49
#: forms.py:100
50
msgid "I have read and agree to the Terms of Service"
51
msgstr "Pročitao sam i slažem se sa uslovima korišćenja"
52
53
#: forms.py:109
54
msgid "You must agree to the terms to register"
55
msgstr "Morate se složiti sa uslovima korišćenja da bi ste se registrovali"
56
57
#: forms.py:128
58
msgid "This email address is already in use. Please supply a different email address."
59
msgstr "Ova e-mail adresa je već u upotrebi. Morate koristiti drugu e-mail adresu."
60
61
#: forms.py:153
62
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
63
msgstr "Registracija korišćenjem besplatnig e-mail adresa je zabranjena. Morate uneti drugu e-mail adresu."
64
65
#: models.py:188
66
msgid "user"
67
msgstr "korisnik"
68
69
#: models.py:189
70
msgid "activation key"
71
msgstr "aktivacioni ključ"
72
73
#: models.py:194
74
msgid "registration profile"
75
msgstr "registracioni profil"
76
77
#: models.py:195
78
msgid "registration profiles"
79
msgstr "registracioni profili"
80
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/sv/LC_MESSAGES/django.po (+81 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2008-03-23 18:59+0100\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: Emil Stenström <em@kth.se>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"MIME-Version: 1.0\n"
16
"Content-Type: text/plain; charset=UTF-8\n"
17
"Content-Transfer-Encoding: 8bit\n"
18
19
#: .\forms.py:38 
20
msgid "username"
21
msgstr "Användarnamn"
22
23
#: .\forms.py:41 
24
msgid "email address"
25
msgstr "E-postadress"
26
27
#: .\forms.py:43 
28
msgid "password"
29
msgstr "Lösenord"
30
31
#: .\forms.py:45 
32
msgid "password (again)"
33
msgstr "Lösenord (igen)"
34
35
#: .\forms.py:54 
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "Användarnamn får bara innehålla bokstäver, siffror och understreck"
38
39
#: .\forms.py:59 
40
msgid "This username is already taken. Please choose another."
41
msgstr "Det användarnamnet är upptaget. Prova ett annat."
42
43
#: .\forms.py:71 
44
msgid "You must type the same password each time"
45
msgstr "Båda lösenord måste vara lika"
46
47
#: .\forms.py:100 
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "Jag har läst och accepterar avtalet"
50
51
#: .\forms.py:109 
52
msgid "You must agree to the terms to register"
53
msgstr "Du måste acceptera avtalet för att registrera dig"
54
55
#: .\forms.py:128 
56
msgid ""
57
"This email address is already in use. Please supply a different email "
58
"address."
59
msgstr "Den e-postadressen är upptagen, använd an annan adress."
60
61
#: .\forms.py:153 
62
msgid ""
63
"Registration using free email addresses is prohibited. Please supply a "
64
"different email address."
65
msgstr "Gratis e-postadresser är inte tillåtna, använd en annan adress."
66
67
#: .\models.py:188 
68
msgid "user"
69
msgstr "Användare"
70
71
#: .\models.py:189 
72
msgid "activation key"
73
msgstr "Aktiveringsnyckel"
74
75
#: .\models.py:194 
76
msgid "registration profile"
77
msgstr "Profil"
78
79
#: .\models.py:195 
80
msgid "registration profiles"
81
msgstr "Profiler"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/th/LC_MESSAGES/django.po (+80 lines)
Line 0 Link Here
1
# Thai translation for django-registration.
2
# This file is distributed under the same license as the registration package.
3
# Phondanai Khanti <phondanai@gmail.com>, 2015.
4
#
5
msgid ""
6
msgstr ""
7
"Project-Id-Version: django-registration 0.3\n"
8
"Report-Msgid-Bugs-To: \n"
9
"POT-Creation-Date: 2008-03-11 00:19-0400\n"
10
"PO-Revision-Date: 2015-11-05 15:37+0700\n"
11
"Last-Translator: Phondanai Khanti<phondanai@gmail.com>\n"
12
"Language-Team: \n"
13
"MIME-Version: 1.0\n"
14
"Content-Type: text/plain; charset=UTF-8\n"
15
"Content-Transfer-Encoding: 8bit\n"
16
"Language: th\n"
17
"X-Generator: Poedit 1.8.1\n"
18
19
#: forms.py:38
20
msgid "username"
21
msgstr "ชื่อผู้ใช้"
22
23
#: forms.py:41
24
msgid "email address"
25
msgstr "ที่อยู่อีเมล"
26
27
#: forms.py:43
28
msgid "password"
29
msgstr "รหัสผ่าน"
30
31
#: forms.py:45
32
msgid "password (again)"
33
msgstr "รหัสผ่าน (อีกครั้ง)"
34
35
#: forms.py:54
36
msgid "Usernames can only contain letters, numbers and underscores"
37
msgstr "ชื่อผู้ใช้สามารถมีเฉพาะตัวอักษรตัวเลขและขีดล่างเท่านั้น"
38
39
#: forms.py:59
40
msgid "This username is already taken. Please choose another."
41
msgstr "ชื่อผู้ใช้นี้ถูกใช้แล้ว กรุณาเลือกชื่อผู้ใช้อื่น"
42
43
#: forms.py:71
44
msgid "You must type the same password each time"
45
msgstr "คุณต้องพิมพ์รหัสผ่านเดียวกัน"
46
47
#: forms.py:100
48
msgid "I have read and agree to the Terms of Service"
49
msgstr "ฉันได้อ่านและเห็นด้วยกับข้อตกลงในการให้บริการ"
50
51
#: forms.py:109
52
msgid "You must agree to the terms to register"
53
msgstr "คุณต้องยอมรับข้อตกลงในการลงทะเบียน"
54
55
#: forms.py:128
56
msgid ""
57
"This email address is already in use. Please supply a different email address."
58
msgstr "ที่อยู่อีเมลได้ถูกใช้งานไปแล้ว โปรดป้อนที่อยู่อีเมลอื่น"
59
60
#: forms.py:153
61
msgid ""
62
"Registration using free email addresses is prohibited. Please supply a different "
63
"email address."
64
msgstr "การลงทะเบียนด้วยบริการฟรีอีเมลถูกระงับ โปรเลือกอีเมลอื่น"
65
66
#: models.py:188
67
msgid "user"
68
msgstr "ผู้ใช้"
69
70
#: models.py:189
71
msgid "activation key"
72
msgstr "คีย์สำหรับเปิดใช้งาน"
73
74
#: models.py:194
75
msgid "registration profile"
76
msgstr "โปรไฟล์การลงทะเบียน"
77
78
#: models.py:195
79
msgid "registration profiles"
80
msgstr "โปรไฟล์การลงทะเบียน"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/tr_TR/LC_MESSAGES/django.po (+92 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
#, fuzzy
7
msgid ""
8
msgstr ""
9
"Project-Id-Version: PACKAGE VERSION\n"
10
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2010-11-11 12:48+0200\n"
12
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
"Last-Translator: RECEP KIRMIZI <rkirmizi@gmail.com>\n"
14
"Language-Team: LANGUAGE <LL@li.org>\n"
15
"Language: \n"
16
"MIME-Version: 1.0\n"
17
"Content-Type: text/plain; charset=UTF-8\n"
18
"Content-Transfer-Encoding: 8bit\n"
19
20
#: admin.py:23
21
msgid "Activate users"
22
msgstr "Kullanıcıları aktive et"
23
24
#: admin.py:43
25
msgid "Re-send activation emails"
26
msgstr "Aktivasyon e-postalarını yeniden gönder"
27
28
#: forms.py:35
29
msgid "Username"
30
msgstr "Kullanıcı adı"
31
32
#: forms.py:36
33
msgid "This value must contain only letters, numbers and underscores."
34
msgstr "Bu alan sadece harfler, numaralar ve alt çizgiler barındırabilir."
35
36
#: forms.py:39
37
msgid "Email address"
38
msgstr "Eposta adresi"
39
40
#: forms.py:41
41
msgid "Password"
42
msgstr "Parola"
43
44
#: forms.py:43
45
msgid "Password (again)"
46
msgstr "Parola (tekrar)"
47
48
#: forms.py:55
49
msgid "A user with that username already exists."
50
msgstr "Bu kullanıcı adına sahip bir kullanıcı bulunmakta."
51
52
#: forms.py:67
53
msgid "The two password fields didn't match."
54
msgstr "İki parola birbiri ile uyuşmadı."
55
56
#: forms.py:78
57
msgid "I have read and agree to the Terms of Service"
58
msgstr "Anlaşma kurallarını okudum ve kabul ediyorum."
59
60
#: forms.py:79
61
msgid "You must agree to the terms to register"
62
msgstr "Kayıt olmak için kuralları kabul etmelisiniz."
63
64
#: forms.py:95
65
msgid ""
66
"This email address is already in use. Please supply a different email "
67
"address."
68
msgstr "Bu eposta adresi kullanımda. Lütfen farklı bir eposta adresi veriniz."
69
70
#: forms.py:122
71
msgid ""
72
"Registration using free email addresses is prohibited. Please supply a "
73
"different email address."
74
msgstr ""
75
"Ücretsiz eposta adresleri ile kayıt kabul edilmemektedir. Lütfen farklı bir "
76
"eposta adresi veriniz."
77
78
#: models.py:168
79
msgid "user"
80
msgstr "kullanıcı"
81
82
#: models.py:169
83
msgid "activation key"
84
msgstr "aktivasyon anahtarı"
85
86
#: models.py:174
87
msgid "registration profile"
88
msgstr "kayıt profili"
89
90
#: models.py:175
91
msgid "registration profiles"
92
msgstr "kayıt profilleri"
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/zh_CN/LC_MESSAGES/django.po (+77 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: PACKAGE VERSION\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
11
"PO-Revision-Date: 2008-03-20 23:22+0800\n"
12
"Last-Translator: hutuworm <hutuworm@gmail.com>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
18
#: forms.py:38
19
msgid "username"
20
msgstr "用户名"
21
22
#: forms.py:41
23
msgid "email address"
24
msgstr "Email 地址"
25
26
#: forms.py:43
27
msgid "password"
28
msgstr "密码"
29
30
#: forms.py:45
31
msgid "password (again)"
32
msgstr "密码(重复)"
33
34
#: forms.py:54
35
msgid "Usernames can only contain letters, numbers and underscores"
36
msgstr "用户名只能包含字母、数字和下划线"
37
38
#: forms.py:59
39
msgid "This username is already taken. Please choose another."
40
msgstr "该用户名已被占用,请另选一个。"
41
42
#: forms.py:68
43
msgid "You must type the same password each time"
44
msgstr "您必须输入两遍同样的密码"
45
46
#: forms.py:96
47
msgid "I have read and agree to the Terms of Service"
48
msgstr "我已阅读并同意该服务条款"
49
50
#: forms.py:105
51
msgid "You must agree to the terms to register"
52
msgstr "您必须同意注册条款"
53
54
#: forms.py:124
55
msgid "This email address is already in use. Please supply a different email address."
56
msgstr "该 Email 地址已有人使用,请提供一个另外的 Email 地址。"
57
58
#: forms.py:149
59
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
60
msgstr "禁止使用免费 Email 地址注册,请提供一个另外的 Email 地址。"
61
62
#: models.py:188
63
msgid "user"
64
msgstr "用户"
65
66
#: models.py:189
67
msgid "activation key"
68
msgstr "激活密钥"
69
70
#: models.py:194
71
msgid "registration profile"
72
msgstr "注册信息"
73
74
#: models.py:195
75
msgid "registration profiles"
76
msgstr "注册信息"
77
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/locale/zh_TW/LC_MESSAGES/django.po (+77 lines)
Line 0 Link Here
1
# SOME DESCRIPTIVE TITLE.
2
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
# This file is distributed under the same license as the PACKAGE package.
4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
#
6
msgid ""
7
msgstr ""
8
"Project-Id-Version: PACKAGE VERSION\n"
9
"Report-Msgid-Bugs-To: \n"
10
"POT-Creation-Date: 2007-09-19 19:30-0500\n"
11
"PO-Revision-Date: 2008-03-20 23:22+0800\n"
12
"Last-Translator: hutuworm <hutuworm@gmail.com>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
"MIME-Version: 1.0\n"
15
"Content-Type: text/plain; charset=UTF-8\n"
16
"Content-Transfer-Encoding: 8bit\n"
17
18
#: forms.py:38
19
msgid "username"
20
msgstr "用戶名"
21
22
#: forms.py:41
23
msgid "email address"
24
msgstr "Email 地址"
25
26
#: forms.py:43
27
msgid "password"
28
msgstr "密碼"
29
30
#: forms.py:45
31
msgid "password (again)"
32
msgstr "密碼(重復)"
33
34
#: forms.py:54
35
msgid "Usernames can only contain letters, numbers and underscores"
36
msgstr "用戶名只能包含字母、數字和下劃線"
37
38
#: forms.py:59
39
msgid "This username is already taken. Please choose another."
40
msgstr "該用戶名已被佔用,請另選一個。"
41
42
#: forms.py:68
43
msgid "You must type the same password each time"
44
msgstr "您必須輸入兩遍同樣的密碼"
45
46
#: forms.py:96
47
msgid "I have read and agree to the Terms of Service"
48
msgstr "我已閱讀並同意該服務條款"
49
50
#: forms.py:105
51
msgid "You must agree to the terms to register"
52
msgstr "您必須同意注冊條款"
53
54
#: forms.py:124
55
msgid "This email address is already in use. Please supply a different email address."
56
msgstr "該 Email 地址已有人使用,請提供一個另外的 Email 地址。"
57
58
#: forms.py:149
59
msgid "Registration using free email addresses is prohibited. Please supply a different email address."
60
msgstr "禁止使用免費 Email 地址注冊,請提供一個另外的 Email 地址。"
61
62
#: models.py:188
63
msgid "user"
64
msgstr "用戶"
65
66
#: models.py:189
67
msgid "activation key"
68
msgstr "激活密鑰"
69
70
#: models.py:194
71
msgid "registration profile"
72
msgstr "注冊信息"
73
74
#: models.py:195
75
msgid "registration profiles"
76
msgstr "注冊信息"
77
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/management/commands/cleanupregistration.py (+19 lines)
Line 0 Link Here
1
"""
2
A management command which deletes expired accounts (e.g.,
3
accounts which signed up but never activated) from the database.
4
5
Calls ``RegistrationProfile.objects.delete_expired_users()``, which
6
contains the actual logic for determining which accounts are deleted.
7
8
"""
9
10
from django.core.management.base import BaseCommand
11
12
from ...models import RegistrationProfile
13
14
15
class Command(BaseCommand):
16
    help = "Delete expired user registrations from the database"
17
18
    def handle(self, *args, **options):
19
        RegistrationProfile.objects.delete_expired_users()
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/migrations/0001_initial.py (+28 lines)
Line 0 Link Here
1
# -*- coding: utf-8 -*-
2
from __future__ import unicode_literals
3
4
from django.db import models, migrations
5
from django.conf import settings
6
7
8
class Migration(migrations.Migration):
9
10
    dependencies = [
11
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12
    ]
13
14
    operations = [
15
        migrations.CreateModel(
16
            name='RegistrationProfile',
17
            fields=[
18
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
19
                ('activation_key', models.CharField(verbose_name='activation key', max_length=40)),
20
                ('user', models.OneToOneField(on_delete=models.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='user')),
21
            ],
22
            options={
23
                'verbose_name': 'registration profile',
24
                'verbose_name_plural': 'registration profiles',
25
            },
26
            bases=(models.Model,),
27
        ),
28
    ]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/migrations/0002_registrationprofile_activated.py (+19 lines)
Line 0 Link Here
1
# -*- coding: utf-8 -*-
2
from __future__ import unicode_literals
3
4
from django.db import models, migrations
5
6
7
class Migration(migrations.Migration):
8
9
    dependencies = [
10
        ('registration', '0001_initial'),
11
    ]
12
13
    operations = [
14
        migrations.AddField(
15
            model_name='registrationprofile',
16
            name='activated',
17
            field=models.BooleanField(default=False),
18
        ),
19
    ]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/migrations/0003_migrate_activatedstatus.py (+29 lines)
Line 0 Link Here
1
# -*- coding: utf-8 -*-
2
from __future__ import unicode_literals
3
4
from django.db import models, migrations
5
6
7
def migrate_activated_status(apps, schema_editor):
8
    # We can't directly import the RegistrationProfile model
9
    # as it may be a different version than this migration expects.
10
    RegistrationProfile = apps.get_model('registration', 'RegistrationProfile')
11
    # Filter the queryset to only fetch already activated profiles.
12
    # Note, we don't use the string constant `ACTIVATED` because we are using
13
    # the actual model, not necessarily the Python class which has said attribute.
14
    for rp in RegistrationProfile.objects.filter(activation_key='ALREADY_ACTIVATED'):
15
        # Note, it's impossible to get the original activation key, so just
16
        # leave the ALREADY_ACTIVATED string.
17
        rp.activated = True
18
        rp.save()
19
20
21
class Migration(migrations.Migration):
22
23
    dependencies = [
24
        ('registration', '0002_registrationprofile_activated'),
25
    ]
26
27
    operations = [
28
        migrations.RunPython(migrate_activated_status)
29
    ]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/migrations/__init__.py (+8 lines)
Line 0 Link Here
1
"""
2
Django migrations for django-registration-redux
3
4
This package does not contain South migrations.
5
6
These are Django native migrations. They require Django > 1.7.
7
8
"""
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/models.py (+373 lines)
Line 0 Link Here
1
from __future__ import unicode_literals
2
3
import datetime
4
import hashlib
5
import random
6
import re
7
8
from django.conf import settings
9
from django.core.exceptions import ObjectDoesNotExist
10
from django.core.mail import EmailMultiAlternatives
11
from django.db import models, transaction
12
from django.template import RequestContext, TemplateDoesNotExist
13
from django.template.loader import render_to_string
14
from django.utils.translation import ugettext_lazy as _
15
from django.utils.encoding import python_2_unicode_compatible
16
from django.utils.timezone import now as datetime_now
17
from django.utils import six
18
19
from .users import UserModel, UserModelString
20
21
SHA1_RE = re.compile('^[a-f0-9]{40}$')
22
23
24
class RegistrationManager(models.Manager):
25
    """
26
    Custom manager for the ``RegistrationProfile`` model.
27
28
    The methods defined here provide shortcuts for account creation
29
    and activation (including generation and emailing of activation
30
    keys), and for cleaning out expired inactive accounts.
31
32
    """
33
    def activate_user(self, activation_key, get_profile=False):
34
        """
35
        Validate an activation key and activate the corresponding
36
        ``User`` if valid.
37
38
        If the key is valid and has not expired, return the ``User``
39
        after activating.
40
41
        If the key is not valid or has expired, return ``False``.
42
43
        If the key is valid but the ``User`` is already active,
44
        return ``User``.
45
46
        If the key is valid but the ``User`` is inactive, return ``False``.
47
48
        To prevent reactivation of an account which has been
49
        deactivated by site administrators, ``RegistrationProfile.activated``
50
        is set to ``True`` after successful activation.
51
52
        """
53
        # Make sure the key we're trying conforms to the pattern of a
54
        # SHA1 hash; if it doesn't, no point trying to look it up in
55
        # the database.
56
        if SHA1_RE.search(activation_key):
57
            try:
58
                profile = self.get(activation_key=activation_key)
59
            except self.model.DoesNotExist:
60
                # This is an actual activation failure as the activation
61
                # key does not exist. It is *not* the scenario where an
62
                # already activated User reuses an activation key.
63
                return False
64
65
            if profile.activated:
66
                # The User has already activated and is trying to activate
67
                # again. If the User is active, return the User. Else,
68
                # return False as the User has been deactivated by a site
69
                # administrator.
70
                if profile.user.is_active:
71
                    return profile.user
72
                else:
73
                    return False
74
75
            if not profile.activation_key_expired():
76
                user = profile.user
77
                user.is_active = True
78
                profile.activated = True
79
80
                with transaction.atomic():
81
                    user.save()
82
                    profile.save()
83
84
                if get_profile:
85
                    return profile
86
                else:
87
                    return user
88
        return False
89
90
    def create_inactive_user(self, site, new_user=None, send_email=True,
91
                             request=None, profile_info={}, **user_info):
92
        """
93
        Create a new, inactive ``User``, generate a
94
        ``RegistrationProfile`` and email its activation key to the
95
        ``User``, returning the new ``User``.
96
97
        By default, an activation email will be sent to the new
98
        user. To disable this, pass ``send_email=False``.
99
        Additionally, if email is sent and ``request`` is supplied,
100
        it will be passed to the email template.
101
102
        """
103
        if new_user is None:
104
            password = user_info.pop('password')
105
            new_user = UserModel()(**user_info)
106
            new_user.set_password(password)
107
        new_user.is_active = False
108
109
        with transaction.atomic():
110
            new_user.save()
111
            registration_profile = self.create_profile(new_user, **profile_info)
112
113
        if send_email:
114
            registration_profile.send_activation_email(site, request)
115
116
        return new_user
117
118
    def create_profile(self, user, **profile_info):
119
        """
120
        Create a ``RegistrationProfile`` for a given
121
        ``User``, and return the ``RegistrationProfile``.
122
123
        The activation key for the ``RegistrationProfile`` will be a
124
        SHA1 hash, generated from a combination of the ``User``'s
125
        pk and a random salt.
126
127
        """
128
        profile = self.model(user=user, **profile_info)
129
130
        if 'activation_key' not in profile_info:
131
            profile.create_new_activation_key(save=False)
132
133
        profile.save()
134
135
        return profile
136
137
    def resend_activation_mail(self, email, site, request=None):
138
        """
139
        Resets activation key for the user and resends activation email.
140
        """
141
        try:
142
            profile = self.get(user__email=email)
143
        except ObjectDoesNotExist:
144
            return False
145
146
        if profile.activated or profile.activation_key_expired():
147
            return False
148
149
        profile.create_new_activation_key()
150
        profile.send_activation_email(site, request)
151
152
        return True
153
154
    def delete_expired_users(self):
155
        """
156
        Remove expired instances of ``RegistrationProfile`` and their
157
        associated ``User``s.
158
159
        Accounts to be deleted are identified by searching for
160
        instances of ``RegistrationProfile`` with expired activation
161
        keys, and then checking to see if their associated ``User``
162
        instances have the field ``is_active`` set to ``False``; any
163
        ``User`` who is both inactive and has an expired activation
164
        key will be deleted.
165
166
        It is recommended that this method be executed regularly as
167
        part of your routine site maintenance; this application
168
        provides a custom management command which will call this
169
        method, accessible as ``manage.py cleanupregistration``.
170
171
        Regularly clearing out accounts which have never been
172
        activated serves two useful purposes:
173
174
        1. It alleviates the ocasional need to reset a
175
           ``RegistrationProfile`` and/or re-send an activation email
176
           when a user does not receive or does not act upon the
177
           initial activation email; since the account will be
178
           deleted, the user will be able to simply re-register and
179
           receive a new activation key.
180
181
        2. It prevents the possibility of a malicious user registering
182
           one or more accounts and never activating them (thus
183
           denying the use of those usernames to anyone else); since
184
           those accounts will be deleted, the usernames will become
185
           available for use again.
186
187
        If you have a troublesome ``User`` and wish to disable their
188
        account while keeping it in the database, simply delete the
189
        associated ``RegistrationProfile``; an inactive ``User`` which
190
        does not have an associated ``RegistrationProfile`` will not
191
        be deleted.
192
193
        """
194
        for profile in self.all():
195
            try:
196
                if profile.activation_key_expired():
197
                    user = profile.user
198
                    if not user.is_active:
199
                        user.delete()
200
                        profile.delete()
201
            except UserModel().DoesNotExist:
202
                profile.delete()
203
204
205
@python_2_unicode_compatible
206
class RegistrationProfile(models.Model):
207
    """
208
    A simple profile which stores an activation key for use during
209
    user account registration.
210
211
    Generally, you will not want to interact directly with instances
212
    of this model; the provided manager includes methods
213
    for creating and activating new accounts, as well as for cleaning
214
    out accounts which have never been activated.
215
216
    While it is possible to use this model as the value of the
217
    ``AUTH_PROFILE_MODULE`` setting, it's not recommended that you do
218
    so. This model's sole purpose is to store data temporarily during
219
    account registration and activation.
220
221
    """
222
    user = models.OneToOneField(
223
        UserModelString(),
224
        on_delete=models.CASCADE,
225
        verbose_name=_('user'),
226
    )
227
    activation_key = models.CharField(_('activation key'), max_length=40)
228
    activated = models.BooleanField(default=False)
229
230
    objects = RegistrationManager()
231
232
    class Meta:
233
        verbose_name = _('registration profile')
234
        verbose_name_plural = _('registration profiles')
235
236
    def __str__(self):
237
        return "Registration information for %s" % self.user
238
239
    def create_new_activation_key(self, save=True):
240
        """
241
        Create a new activation key for the user
242
        """
243
        salt = hashlib.sha1(six.text_type(random.random())
244
                            .encode('ascii')).hexdigest()[:5]
245
        salt = salt.encode('ascii')
246
        user_pk = str(self.user.pk)
247
        if isinstance(user_pk, six.text_type):
248
            user_pk = user_pk.encode('utf-8')
249
        self.activation_key = hashlib.sha1(salt + user_pk).hexdigest()
250
        if save:
251
            self.save()
252
        return self.activation_key
253
254
    def activation_key_expired(self):
255
        """
256
        Determine whether this ``RegistrationProfile``'s activation
257
        key has expired, returning a boolean -- ``True`` if the key
258
        has expired.
259
260
        Key expiration is determined by a two-step process:
261
262
        1. If the user has already activated, ``self.activated`` will
263
           be ``True``. Re-activating is not permitted, and so this
264
           method returns ``True`` in this case.
265
266
        2. Otherwise, the date the user signed up is incremented by
267
           the number of days specified in the setting
268
           ``ACCOUNT_ACTIVATION_DAYS`` (which should be the number of
269
           days after signup during which a user is allowed to
270
           activate their account); if the result is less than or
271
           equal to the current date, the key has expired and this
272
           method returns ``True``.
273
274
        """
275
        expiration_date = datetime.timedelta(
276
            days=settings.ACCOUNT_ACTIVATION_DAYS)
277
        return (self.activated or
278
                (self.user.date_joined + expiration_date <= datetime_now()))
279
    activation_key_expired.boolean = True
280
281
    def send_activation_email(self, site, request=None):
282
        """
283
        Send an activation email to the user associated with this
284
        ``RegistrationProfile``.
285
286
        The activation email will use the following templates,
287
        which can be overriden by setting ACTIVATION_EMAIL_SUBJECT,
288
        ACTIVATION_EMAIL_BODY, and ACTIVATION_EMAIL_HTML appropriately:
289
290
        ``registration/activation_email_subject.txt``
291
            This template will be used for the subject line of the
292
            email. Because it is used as the subject line of an email,
293
            this template's output **must** be only a single line of
294
            text; output longer than one line will be forcibly joined
295
            into only a single line.
296
297
        ``registration/activation_email.txt``
298
            This template will be used for the text body of the email.
299
300
        ``registration/activation_email.html``
301
            This template will be used for the html body of the email.
302
303
        These templates will each receive the following context
304
        variables:
305
306
        ``user``
307
            The new user account
308
309
        ``activation_key``
310
            The activation key for the new account.
311
312
        ``expiration_days``
313
            The number of days remaining during which the account may
314
            be activated.
315
316
        ``site``
317
            An object representing the site on which the user
318
            registered; depending on whether ``django.contrib.sites``
319
            is installed, this may be an instance of either
320
            ``django.contrib.sites.models.Site`` (if the sites
321
            application is installed) or
322
            ``django.contrib.sites.requests.RequestSite`` (if
323
            not). Consult the documentation for the Django sites
324
            framework for details regarding these objects' interfaces.
325
326
        ``request``
327
            Optional Django's ``HttpRequest`` object from view.
328
            If supplied will be passed to the template for better
329
            flexibility via ``RequestContext``.
330
        """
331
        activation_email_subject = getattr(settings, 'ACTIVATION_EMAIL_SUBJECT',
332
                                           'registration/activation_email_subject.txt')
333
        activation_email_body = getattr(settings, 'ACTIVATION_EMAIL_BODY',
334
                                        'registration/activation_email.txt')
335
        activation_email_html = getattr(settings, 'ACTIVATION_EMAIL_HTML',
336
                                        'registration/activation_email.html')
337
338
        ctx_dict = {}
339
        if request is not None:
340
            ctx_dict = RequestContext(request, ctx_dict)
341
        # update ctx_dict after RequestContext is created
342
        # because template context processors
343
        # can overwrite some of the values like user
344
        # if django.contrib.auth.context_processors.auth is used
345
        ctx_dict.update({
346
            'user': self.user,
347
            'activation_key': self.activation_key,
348
            'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
349
            'site': site,
350
        })
351
        subject = (getattr(settings, 'REGISTRATION_EMAIL_SUBJECT_PREFIX', '') +
352
                   render_to_string(
353
                       activation_email_subject, ctx_dict))
354
        # Email subject *must not* contain newlines
355
        subject = ''.join(subject.splitlines())
356
        from_email = getattr(settings, 'REGISTRATION_DEFAULT_FROM_EMAIL',
357
                             settings.DEFAULT_FROM_EMAIL)
358
        message_txt = render_to_string(activation_email_body,
359
                                       ctx_dict)
360
361
        email_message = EmailMultiAlternatives(subject, message_txt,
362
                                               from_email, [self.user.email])
363
364
        if getattr(settings, 'REGISTRATION_EMAIL_HTML', True):
365
            try:
366
                message_html = render_to_string(
367
                    activation_email_html, ctx_dict)
368
            except TemplateDoesNotExist:
369
                pass
370
            else:
371
                email_message.attach_alternative(message_html, 'text/html')
372
373
        email_message.send()
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/signals.py (+22 lines)
Line 0 Link Here
1
from django.conf import settings
2
from django.contrib.auth import login, get_backends
3
from django.dispatch import Signal
4
5
6
# A new user has registered.
7
user_registered = Signal(providing_args=["user", "request"])
8
9
# A user has activated his or her account.
10
user_activated = Signal(providing_args=["user", "request"])
11
12
13
def login_user(sender, user, request, **kwargs):
14
    """ Automatically authenticate the user when activated  """
15
    backend = get_backends()[0]  # Hack to bypass `authenticate()`.
16
    user.backend = "%s.%s" % (backend.__module__, backend.__class__.__name__)
17
    login(request, user)
18
    request.session['REGISTRATION_AUTO_LOGIN'] = True
19
    request.session.modified = True
20
21
if getattr(settings, 'REGISTRATION_AUTO_LOGIN', False):
22
    user_activated.connect(login_user)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/activate.html (+16 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block content %}
5
<p>{% trans "Account activation failed." %}</p>
6
{% endblock %}
7
8
9
{% comment %}
10
**registration/activate.html**
11
12
Used if account activation fails. With the default setup, has the following context:
13
14
``activation_key``
15
    The activation key used during the activation attempt.
16
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/activation_complete.html (+22 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Account Activated" %}{% endblock %}
5
6
{% block content %}
7
<p>
8
    {% trans "Your account is now activated." %}
9
    {% if not user.is_authenticated %}
10
    {% trans "You can log in." %}
11
    {% endif %}
12
</p>
13
{% endblock %}
14
15
16
{% comment %}
17
**registration/activation_complete.html**
18
19
Used after successful account activation. This template has no context
20
variables of its own, and should simply inform the user that their
21
account is now active.
22
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/activation_email.html (+76 lines)
Line 0 Link Here
1
{% load i18n %}
2
<!doctype html>
3
<html lang="en">
4
5
<head>
6
    <title>{{ site.name }} {% trans "registration" %}</title>
7
</head>
8
9
<body>
10
<p>
11
    {% blocktrans with site_name=site.name %}
12
    You (or someone pretending to be you) have asked to register an account at
13
    {{ site_name }}.  If this wasn't you, please ignore this email
14
    and your address will be removed from our records.
15
    {% endblocktrans %}
16
</p>
17
<p>
18
    {% blocktrans %}
19
    To activate this account, please click the following link within the next
20
    {{ expiration_days }} days:
21
    {% endblocktrans %}
22
</p>
23
24
<p>
25
    <a href="http://{{site.domain}}{% url 'registration_activate' activation_key %}">
26
        {{site.domain}}{% url 'registration_activate' activation_key %}
27
    </a>
28
</p>
29
<p>
30
    {% blocktrans with site_name=site.name %}
31
    Sincerely,
32
    {{ site_name }} Management
33
    {% endblocktrans %}
34
</p>
35
</body>
36
37
</html>
38
39
40
{% comment %}
41
**registration/activation_email.html**
42
43
Used to generate the html body of the activation email. Should display a
44
link the user can click to activate the account. This template has the
45
following context:
46
47
``activation_key``
48
    The activation key for the new account.
49
50
``expiration_days``
51
    The number of days remaining during which the account may be
52
    activated.
53
54
``site``
55
    An object representing the site on which the user registered;
56
    depending on whether ``django.contrib.sites`` is installed, this
57
    may be an instance of either ``django.contrib.sites.models.Site``
58
    (if the sites application is installed) or
59
    ``django.contrib.sites.requests.RequestSite`` (if not). Consult `the
60
    documentation for the Django sites framework
61
    <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`_ for
62
    details regarding these objects' interfaces.
63
64
``user``
65
    The new user account
66
67
``request``
68
    ``HttpRequest`` instance for better flexibility.
69
    For example it can be used to compute absolute register URL:
70
71
        http{% if request.is_secure %}s{% endif %}://{{ request.get_host }}{% url 'registration_activate' activation_key %}
72
73
    or when using Django >= 1.7:
74
75
        {{ request.scheme }}://{{ request.get_host }}{% url 'registration_activate' activation_key %}
76
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/activation_email.txt (+56 lines)
Line 0 Link Here
1
{% load i18n %}
2
{% blocktrans with site_name=site.name %}
3
You (or someone pretending to be you) have asked to register an account at
4
{{ site_name }}.  If this wasn't you, please ignore this email
5
and your address will be removed from our records.
6
{% endblocktrans %}
7
{% blocktrans %}
8
To activate this account, please click the following link within the next
9
{{ expiration_days }} days:
10
{% endblocktrans %}
11
12
http://{{site.domain}}{% url 'registration_activate' activation_key %}
13
14
{% blocktrans with site_name=site.name %}
15
Sincerely,
16
{{ site_name }} Management
17
{% endblocktrans %}
18
19
20
{% comment %}
21
**registration/activation_email.txt**
22
23
Used to generate the text body of the activation email. Should display a
24
link the user can click to activate the account. This template has the
25
following context:
26
27
``activation_key``
28
    The activation key for the new account.
29
30
``expiration_days``
31
    The number of days remaining during which the account may be
32
    activated.
33
34
``site``
35
    An object representing the site on which the user registered;
36
    depending on whether ``django.contrib.sites`` is installed, this
37
    may be an instance of either ``django.contrib.sites.models.Site``
38
    (if the sites application is installed) or
39
    ``django.contrib.sites.requests.RequestSite`` (if not). Consult `the
40
    documentation for the Django sites framework
41
    <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`_ for
42
    details regarding these objects' interfaces.
43
44
``user``
45
    The new user account
46
47
``request``
48
    ``HttpRequest`` instance for better flexibility.
49
    For example it can be used to compute absolute register URL:
50
51
        http{% if request.is_secure %}s{% endif %}://{{ request.get_host }}{% url 'registration_activate' activation_key %}
52
53
    or when using Django >= 1.7:
54
55
        {{ request.scheme }}://{{ request.get_host }}{% url 'registration_activate' activation_key %}
56
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/activation_email_subject.txt (+28 lines)
Line 0 Link Here
1
{% load i18n %}{% trans "Account activation on" %} {{ site.name }}
2
3
4
{% comment %}
5
**registration/activation_email_subject.txt**
6
7
Used to generate the subject line of the activation email. Because the
8
subject line of an email must be a single line of text, any output
9
from this template will be forcibly condensed to a single line before
10
being used. This template has the following context:
11
12
``activation_key``
13
    The activation key for the new account.
14
15
``expiration_days``
16
    The number of days remaining during which the account may be
17
    activated.
18
19
``site``
20
    An object representing the site on which the user registered;
21
    depending on whether ``django.contrib.sites`` is installed, this
22
    may be an instance of either ``django.contrib.sites.models.Site``
23
    (if the sites application is installed) or
24
    ``django.contrib.sites.requests.RequestSite`` (if not). Consult `the
25
    documentation for the Django sites framework
26
    <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`_ for
27
    details regarding these objects' interfaces.
28
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/login.html (+45 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Log in" %}{% endblock %}
5
6
{% block content %}
7
<form method="post" action="">
8
    {% csrf_token %}
9
    {{ form.as_p }}
10
    <input type="submit" value="{% trans 'Log in' %}" />
11
    <input type="hidden" name="next" value="{{ next }}" />
12
</form>
13
14
<p>{% trans "Forgot your password?" %} <a href="{% url 'auth_password_reset' %}">{% trans "Reset it" %}</a>.</p>
15
<p>{% trans "Not a member?" %} <a href="{% url 'registration_register' %}">{% trans "Register" %}</a>.</p>
16
{% endblock %}
17
18
19
{% comment %}
20
**registration/login.html**
21
22
It's your responsibility to provide the login form in a template called
23
registration/login.html by default. This template gets passed four
24
template context variables:
25
26
``form``
27
    A Form object representing the login form. See the forms
28
    documentation for more on Form objects.
29
30
``next``
31
    The URL to redirect to after successful login. This may contain a
32
    query string, too.
33
34
``site``
35
    The current Site, according to the SITE_ID setting. If you don't
36
    have the site framework installed, this will be set to an instance
37
    of RequestSite, which derives the site name and domain from the
38
    current HttpRequest.
39
40
``site_name``
41
    An alias for site.name. If you don't have the site framework
42
    installed, this will be set to the value of
43
    request.META['SERVER_NAME']. For more on sites, see The
44
    "sites" framework.
45
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/logout.html (+8 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Logged out" %}{% endblock %}
5
6
{% block content %}
7
<p>{% trans "Successfully logged out" %}.</p>
8
{% endblock %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/password_change_done.html (+11 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Password changed" %}{% endblock %}
5
6
{% block content %}
7
<p>{% trans "Password successfully changed!" %}</p>
8
{% endblock %}
9
10
11
{# This is used by django.contrib.auth #}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/password_change_form.html (+15 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Change password" %}{% endblock %}
5
6
{% block content %}
7
<form method="post" action="">
8
    {% csrf_token %}
9
    {{ form.as_p }}
10
    <input type="submit" value="{% trans 'Change password' %}" />
11
</form>
12
{% endblock %}
13
14
15
{# This is used by django.contrib.auth #}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/password_reset_complete.html (+15 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Password reset complete" %}{% endblock %}
5
6
{% block content %}
7
<p>
8
    {% trans "Your password has been reset!" %}
9
    {% blocktrans %}You may now <a href="{{ login_url }}">log in</a>{% endblocktrans %}.
10
11
</p>
12
{% endblock %}
13
14
15
{# This is used by django.contrib.auth #}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/password_reset_confirm.html (+16 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Confirm password reset" %}{% endblock %}
5
6
{% block content %}
7
<p>{% trans "Enter your new password below to reset your password:" %}</p>
8
<form method="post" action="">
9
    {% csrf_token %}
10
    {{ form.as_p }}
11
    <input type="submit" value="{% trans 'Set password' %}" />
12
</form>
13
{% endblock %}
14
15
16
{# This is used by django.contrib.auth #}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/password_reset_done.html (+16 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Password reset" %}{% endblock %}
5
6
{% block content %}
7
<p>
8
    {% blocktrans %}
9
    We have sent you an email with a link to reset your password. Please check
10
    your email and click the link to continue.
11
    {% endblocktrans %}
12
</p>
13
{% endblock %}
14
15
16
{# This is used by django.contrib.auth #}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/password_reset_email.html (+25 lines)
Line 0 Link Here
1
{% load i18n %}
2
3
{% blocktrans %}Greetings{% endblocktrans %} {% if user.get_full_name %}{{ user.get_full_name }}{% else %}{{ user }}{% endif %},
4
5
{% blocktrans %}
6
You are receiving this email because you (or someone pretending to be you)
7
requested that your password be reset on the {{ domain }} site. If you do not
8
wish to reset your password, please ignore this message.
9
{% endblocktrans %}
10
11
{% blocktrans %}
12
To reset your password, please click the following link, or copy and paste it
13
into your web browser:
14
{% endblocktrans %}
15
16
{{ protocol }}://{{ domain }}{% url 'auth_password_reset_confirm' uid token %}
17
18
{% blocktrans %}Your username, in case you've forgotten:{% endblocktrans %} {{ user.username }}
19
20
21
{% blocktrans %}Best regards{% endblocktrans %},
22
{{ site_name }} {% blocktrans %}Management{% endblocktrans %}
23
24
25
{# This is used by django.contrib.auth #}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/password_reset_form.html (+20 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Reset password" %}{% endblock %}
5
6
{% block content %}
7
<p>
8
    {% blocktrans %}
9
    Forgot your password? Enter your email in the form below and we'll send you instructions for creating a new one.
10
    {% endblocktrans %}
11
</p>
12
<form method="post" action="">
13
    {% csrf_token %}
14
    {{ form.as_p }}
15
    <input type="submit" value="{% trans 'Reset password' %}" />
16
</form>
17
{% endblock %}
18
19
20
{# This is used by django.contrib.auth #}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/registration_base.html (+1 lines)
Line 0 Link Here
1
{% extends "base.html" %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/registration_closed.html (+8 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Registration is closed" %}{% endblock %}
5
6
{% block content %}
7
<p>{% trans "Sorry, but registration is closed at this moment. Come back later." %}</p>
8
{% endblock %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/registration_complete.html (+18 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Activation email sent" %}{% endblock %}
5
6
{% block content %}
7
<p>{% trans "Please check your email to complete the registration process." %}</p>
8
{% endblock %}
9
10
11
{% comment %}
12
**registration/registration_complete.html**
13
14
Used after successful completion of the registration form. This
15
template has no context variables of its own, and should simply inform
16
the user that an email containing account-activation information has
17
been sent.
18
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/templates/registration/registration_form.html (+25 lines)
Line 0 Link Here
1
{% extends "registration/registration_base.html" %}
2
{% load i18n %}
3
4
{% block title %}{% trans "Register for an account" %}{% endblock %}
5
6
{% block content %}
7
<form method="post" action="">
8
    {% csrf_token %}
9
    {{ form.as_p }}
10
    <input type="submit" value="{% trans 'Submit' %}" />
11
</form>
12
{% endblock %}
13
14
15
{% comment %}
16
**registration/registration_form.html**
17
Used to show the form users will fill out to register. By default, has
18
the following context:
19
20
``form``
21
    The registration form. This will be an instance of some subclass
22
    of ``django.forms.Form``; consult `Django's forms documentation
23
    <http://docs.djangoproject.com/en/dev/topics/forms/>`_ for
24
    information on how to display this in a template.
25
{% endcomment %}
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/__init__.py (+6 lines)
Line 0 Link Here
1
from registration import admin, urls
2
3
4
def test():
5
    assert admin
6
    assert urls
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/admin_actions.py (+81 lines)
Line 0 Link Here
1
from __future__ import unicode_literals
2
3
from django.conf import settings
4
from django.contrib.admin import helpers
5
from django.core import mail, urlresolvers
6
from django.test import TestCase
7
from django.test.client import Client
8
from registration.models import RegistrationProfile
9
from registration.users import UserModel
10
11
12
class AdminCustomActionsTestCase(TestCase):
13
    """
14
    Test the available admin custom actions
15
    """
16
17
    def setUp(self):
18
        self.client = Client()
19
        admin_user = UserModel().objects.create_superuser('admin', 'admin@test.com', 'admin')
20
        self.client.login(username=admin_user.username, password=admin_user)
21
22
        self.user_info = {'username': 'alice',
23
                          'password': 'swordfish',
24
                          'email': 'alice@example.com'}
25
26
        self.old_activation = getattr(settings,
27
                                      'ACCOUNT_ACTIVATION_DAYS', None)
28
        self.old_reg_email = getattr(settings,
29
                                     'REGISTRATION_DEFAULT_FROM_EMAIL', None)
30
        self.old_email_html = getattr(settings,
31
                                      'REGISTRATION_EMAIL_HTML', None)
32
        self.old_django_email = getattr(settings,
33
                                        'DEFAULT_FROM_EMAIL', None)
34
35
        settings.ACCOUNT_ACTIVATION_DAYS = 7
36
        settings.REGISTRATION_DEFAULT_FROM_EMAIL = 'registration@email.com'
37
        settings.REGISTRATION_EMAIL_HTML = True
38
        settings.DEFAULT_FROM_EMAIL = 'django@email.com'
39
40
    def tearDown(self):
41
        settings.ACCOUNT_ACTIVATION_DAYS = self.old_activation
42
        settings.REGISTRATION_DEFAULT_FROM_EMAIL = self.old_reg_email
43
        settings.REGISTRATION_EMAIL_HTML = self.old_email_html
44
        settings.DEFAULT_FROM_EMAIL = self.old_django_email
45
46
    def test_activate_users(self):
47
        """
48
        Test the admin custom command 'activate users'
49
50
        """
51
        new_user = UserModel().objects.create_user(**self.user_info)
52
        profile = RegistrationProfile.objects.create_profile(new_user)
53
54
        self.assertFalse(profile.activated)
55
56
        registrationprofile_list = urlresolvers.reverse('admin:registration_registrationprofile_changelist')
57
        post_data = {
58
            'action': 'activate_users',
59
            helpers.ACTION_CHECKBOX_NAME: [profile.pk],
60
        }
61
        self.client.post(registrationprofile_list, post_data, follow=True)
62
63
        profile = RegistrationProfile.objects.get(user=new_user)
64
        self.assertTrue(profile.activated)
65
66
    def test_resend_activation_email(self):
67
        """
68
        Test the admin custom command 'resend activation email'
69
        """
70
        new_user = UserModel().objects.create_user(**self.user_info)
71
        profile = RegistrationProfile.objects.create_profile(new_user)
72
73
        registrationprofile_list = urlresolvers.reverse('admin:registration_registrationprofile_changelist')
74
        post_data = {
75
            'action': 'resend_activation_email',
76
            helpers.ACTION_CHECKBOX_NAME: [profile.pk],
77
        }
78
        self.client.post(registrationprofile_list, post_data, follow=True)
79
80
        self.assertEqual(len(mail.outbox), 1)
81
        self.assertEqual(mail.outbox[0].to, [self.user_info['email']])
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/default_backend.py (+224 lines)
Line 0 Link Here
1
import datetime
2
3
from django.conf import settings
4
from django.core import mail
5
from django.core.urlresolvers import reverse
6
from django.test import TestCase
7
from django.test.client import RequestFactory
8
from django.test.utils import override_settings
9
10
from registration.forms import RegistrationForm
11
from registration.backends.default.views import RegistrationView
12
from registration.models import RegistrationProfile
13
from registration.users import UserModel
14
15
16
class DefaultBackendViewTests(TestCase):
17
    """
18
    Test the default registration backend.
19
20
    Running these tests successfully will require two templates to be
21
    created for the sending of activation emails; details on these
22
    templates and their contexts may be found in the documentation for
23
    the default backend.
24
25
    """
26
    urls = 'test_app.urls_default'
27
28
    def setUp(self):
29
        """
30
        Create an instance of the default backend for use in testing,
31
        and set ``ACCOUNT_ACTIVATION_DAYS`` if it's not set already.
32
33
        """
34
        self.old_activation = getattr(settings,
35
                                      'ACCOUNT_ACTIVATION_DAYS', None)
36
        if self.old_activation is None:
37
            settings.ACCOUNT_ACTIVATION_DAYS = 7  # pragma: no cover
38
39
    def tearDown(self):
40
        """
41
        Yank ``ACCOUNT_ACTIVATION_DAYS`` back out if it wasn't
42
        originally set.
43
44
        """
45
        if self.old_activation is None:
46
            # pragma: no cover
47
            settings.ACCOUNT_ACTIVATION_DAYS = self.old_activation
48
49
    def test_allow(self):
50
        """
51
        The setting ``REGISTRATION_OPEN`` appropriately controls
52
        whether registration is permitted.
53
54
        """
55
        old_allowed = getattr(settings, 'REGISTRATION_OPEN', True)
56
        settings.REGISTRATION_OPEN = True
57
58
        resp = self.client.get(reverse('registration_register'))
59
        self.assertEqual(200, resp.status_code)
60
61
        settings.REGISTRATION_OPEN = False
62
63
        # Now all attempts to hit the register view should redirect to
64
        # the 'registration is closed' message.
65
        resp = self.client.get(reverse('registration_register'))
66
        self.assertRedirects(resp, reverse('registration_disallowed'))
67
68
        resp = self.client.post(reverse('registration_register'),
69
                                data={'username': 'bob',
70
                                      'email': 'bob@example.com',
71
                                      'password1': 'secret',
72
                                      'password2': 'secret'})
73
        self.assertRedirects(resp, reverse('registration_disallowed'))
74
75
        settings.REGISTRATION_OPEN = old_allowed
76
77
    def test_registration_get(self):
78
        """
79
        HTTP ``GET`` to the registration view uses the appropriate
80
        template and populates a registration form into the context.
81
82
        """
83
        resp = self.client.get(reverse('registration_register'))
84
        self.assertEqual(200, resp.status_code)
85
        self.assertTemplateUsed(resp,
86
                                'registration/registration_form.html')
87
        self.failUnless(isinstance(resp.context['form'],
88
                        RegistrationForm))
89
90
    def test_registration(self):
91
        """
92
        Registration creates a new inactive account and a new profile
93
        with activation key, populates the correct account data and
94
        sends an activation email.
95
96
        """
97
        resp = self.client.post(reverse('registration_register'),
98
                                data={'username': 'bob',
99
                                      'email': 'bob@example.com',
100
                                      'password1': 'secret',
101
                                      'password2': 'secret'})
102
        self.assertRedirects(resp, reverse('registration_complete'))
103
104
        new_user = UserModel().objects.get(username='bob')
105
106
        self.failUnless(new_user.check_password('secret'))
107
        self.assertEqual(new_user.email, 'bob@example.com')
108
109
        # New user must not be active.
110
        self.failIf(new_user.is_active)
111
112
        # A registration profile was created, and an activation email
113
        # was sent.
114
        self.assertEqual(RegistrationProfile.objects.count(), 1)
115
        self.assertEqual(len(mail.outbox), 1)
116
117
    def test_registration_no_email(self):
118
        """
119
        Overriden Registration view does not send an activation email if the
120
        associated class variable is set to ``False``
121
122
        """
123
        class RegistrationNoEmailView(RegistrationView):
124
            SEND_ACTIVATION_EMAIL = False
125
126
        request_factory = RequestFactory()
127
        view = RegistrationNoEmailView.as_view()
128
        view(request_factory.post('/', data={
129
            'username': 'bob',
130
            'email': 'bob@example.com',
131
            'password1': 'secret',
132
            'password2': 'secret'}))
133
134
        UserModel().objects.get(username='bob')
135
        # A registration profile was created, and no activation email was sent.
136
        self.assertEqual(RegistrationProfile.objects.count(), 1)
137
        self.assertEqual(len(mail.outbox), 0)
138
139
    @override_settings(
140
        INSTALLED_APPS=('django.contrib.auth', 'registration',)
141
    )
142
    def test_registration_no_sites(self):
143
        """
144
        Registration still functions properly when
145
        ``django.contrib.sites`` is not installed; the fallback will
146
        be a ``RequestSite`` instance.
147
148
        """
149
        resp = self.client.post(reverse('registration_register'),
150
                                data={'username': 'bob',
151
                                      'email': 'bob@example.com',
152
                                      'password1': 'secret',
153
                                      'password2': 'secret'})
154
        self.assertEqual(302, resp.status_code)
155
156
        new_user = UserModel().objects.get(username='bob')
157
158
        self.failUnless(new_user.check_password('secret'))
159
        self.assertEqual(new_user.email, 'bob@example.com')
160
161
        self.failIf(new_user.is_active)
162
163
        self.assertEqual(RegistrationProfile.objects.count(), 1)
164
        self.assertEqual(len(mail.outbox), 1)
165
166
    def test_registration_failure(self):
167
        """
168
        Registering with invalid data fails.
169
170
        """
171
        resp = self.client.post(reverse('registration_register'),
172
                                data={'username': 'bob',
173
                                      'email': 'bob@example.com',
174
                                      'password1': 'secret',
175
                                      'password2': 'notsecret'})
176
        self.assertEqual(200, resp.status_code)
177
        self.failIf(resp.context['form'].is_valid())
178
        self.assertEqual(0, len(mail.outbox))
179
180
    def test_activation(self):
181
        """
182
        Activation of an account functions properly.
183
184
        """
185
        resp = self.client.post(reverse('registration_register'),
186
                                data={'username': 'bob',
187
                                      'email': 'bob@example.com',
188
                                      'password1': 'secret',
189
                                      'password2': 'secret'})
190
191
        profile = RegistrationProfile.objects.get(user__username='bob')
192
193
        resp = self.client.get(
194
            reverse('registration_activate',
195
                    args=(),
196
                    kwargs={'activation_key': profile.activation_key}))
197
        self.assertRedirects(resp, reverse('registration_activation_complete'))
198
199
    def test_activation_expired(self):
200
        """
201
        An expired account can't be activated.
202
203
        """
204
        resp = self.client.post(reverse('registration_register'),
205
                                data={'username': 'bob',
206
                                      'email': 'bob@example.com',
207
                                      'password1': 'secret',
208
                                      'password2': 'secret'})
209
210
        profile = RegistrationProfile.objects.get(user__username='bob')
211
        user = profile.user
212
        user.date_joined -= datetime.timedelta(
213
            days=settings.ACCOUNT_ACTIVATION_DAYS)
214
        user.save()
215
216
        resp = self.client.get(
217
            reverse('registration_activate',
218
                    args=(),
219
                    kwargs={'activation_key': profile.activation_key}))
220
221
        self.assertEqual(200, resp.status_code)
222
        self.assertTemplateUsed(resp, 'registration/activate.html')
223
        user = UserModel().objects.get(username='bob')
224
        self.assertFalse(user.is_active)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/forms.py (+131 lines)
Line 0 Link Here
1
from __future__ import unicode_literals
2
from distutils.version import StrictVersion
3
4
from django import get_version
5
from django.test import TestCase
6
7
from registration import forms
8
from registration.users import UserModel
9
10
11
DJANGO_VERSION = StrictVersion(get_version())
12
13
14
class RegistrationFormTests(TestCase):
15
    """
16
    Test the default registration forms.
17
18
    """
19
20
    def test_registration_form(self):
21
        """
22
        Test that ``RegistrationForm`` enforces username constraints
23
        and matching passwords.
24
25
        """
26
        # Create a user so we can verify that duplicate usernames aren't
27
        # permitted.
28
        UserModel().objects.create_user('alice', 'alice@example.com', 'secret')
29
30
        bad_username_error = 'This value may contain only letters, numbers and @/./+/-/_ characters.'
31
        if DJANGO_VERSION >= StrictVersion('1.8'):
32
            bad_username_error = 'Enter a valid username. ' + bad_username_error
33
34
        invalid_data_dicts = [
35
            # Non-alphanumeric username.
36
            {'data': {'username': 'foo/bar',
37
                      'email': 'foo@example.com',
38
                      'password1': 'foo',
39
                      'password2': 'foo'},
40
             'error': ('username', [bad_username_error])},
41
            # Already-existing username.
42
            {'data': {'username': 'alice',
43
                      'email': 'alice@example.com',
44
                      'password1': 'secret',
45
                      'password2': 'secret'},
46
             'error': ('username', ["A user with that username already exists."])},
47
            # Mismatched passwords.
48
            {'data': {'username': 'foo',
49
                      'email': 'foo@example.com',
50
                      'password1': 'foo',
51
                      'password2': 'bar'},
52
             'error': ('password2', ["The two password fields didn't match."])},
53
        ]
54
55
        for invalid_dict in invalid_data_dicts:
56
            form = forms.RegistrationForm(data=invalid_dict['data'])
57
            self.failIf(form.is_valid())
58
            self.assertEqual(form.errors[invalid_dict['error'][0]],
59
                             invalid_dict['error'][1])
60
61
        form = forms.RegistrationForm(data={'username': 'foo',
62
                                            'email': 'foo@example.com',
63
                                            'password1': 'foo',
64
                                            'password2': 'foo'})
65
        self.failUnless(form.is_valid())
66
67
    def test_registration_form_tos(self):
68
        """
69
        Test that ``RegistrationFormTermsOfService`` requires
70
        agreement to the terms of service.
71
72
        """
73
        form = forms.RegistrationFormTermsOfService(data={'username': 'foo',
74
                                                          'email': 'foo@example.com',
75
                                                          'password1': 'foo',
76
                                                          'password2': 'foo'})
77
        self.failIf(form.is_valid())
78
        self.assertEqual(form.errors['tos'],
79
                         ["You must agree to the terms to register"])
80
81
        form = forms.RegistrationFormTermsOfService(data={'username': 'foo',
82
                                                          'email': 'foo@example.com',
83
                                                          'password1': 'foo',
84
                                                          'password2': 'foo',
85
                                                          'tos': 'on'})
86
        self.failUnless(form.is_valid())
87
88
    def test_registration_form_unique_email(self):
89
        """
90
        Test that ``RegistrationFormUniqueEmail`` validates uniqueness
91
        of email addresses.
92
93
        """
94
        # Create a user so we can verify that duplicate addresses
95
        # aren't permitted.
96
        UserModel().objects.create_user('alice', 'alice@example.com', 'secret')
97
98
        form = forms.RegistrationFormUniqueEmail(data={'username': 'foo',
99
                                                       'email': 'alice@example.com',
100
                                                       'password1': 'foo',
101
                                                       'password2': 'foo'})
102
        self.failIf(form.is_valid())
103
        self.assertEqual(form.errors['email'],
104
                         ["This email address is already in use. Please supply a different email address."])
105
106
        form = forms.RegistrationFormUniqueEmail(data={'username': 'foo',
107
                                                       'email': 'foo@example.com',
108
                                                       'password1': 'foo',
109
                                                       'password2': 'foo'})
110
        self.failUnless(form.is_valid())
111
112
    def test_registration_form_no_free_email(self):
113
        """
114
        Test that ``RegistrationFormNoFreeEmail`` disallows
115
        registration with free email addresses.
116
117
        """
118
        base_data = {'username': 'foo',
119
                     'password1': 'foo',
120
                     'password2': 'foo'}
121
        for domain in forms.RegistrationFormNoFreeEmail.bad_domains:
122
            invalid_data = base_data.copy()
123
            invalid_data['email'] = "foo@%s" % domain
124
            form = forms.RegistrationFormNoFreeEmail(data=invalid_data)
125
            self.failIf(form.is_valid())
126
            self.assertEqual(form.errors['email'],
127
                             ["Registration using free email addresses is prohibited. Please supply a different email address."])
128
129
        base_data['email'] = 'foo@example.com'
130
        form = forms.RegistrationFormNoFreeEmail(data=base_data)
131
        self.failUnless(form.is_valid())
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/forms_custom_user.py (+63 lines)
Line 0 Link Here
1
from __future__ import unicode_literals
2
from distutils.version import StrictVersion
3
try:
4
    from importlib import reload  # Python 3.4+
5
except ImportError:
6
    try:
7
        from imp import reload  # Python 3.3
8
    except:
9
        pass  # Python 2 reload()
10
11
12
from django import get_version
13
from django.conf import settings
14
from django.test import TestCase
15
16
from registration import forms
17
from registration.users import UsernameField
18
19
20
DJANGO_VERSION = StrictVersion(get_version())
21
22
23
class RegistrationFormTests(TestCase):
24
    """
25
    Test the default registration forms.
26
27
    """
28
    def setUp(self):
29
        self.old_auth_model = getattr(settings, 'AUTH_USER_MODEL', None)
30
        settings.AUTH_USER_MODEL = 'test_app.CustomUser'
31
        # The form's Meta class is created on import. We have to reload()
32
        # to apply the new AUTH_USER_MODEL to the Meta class.
33
        reload(forms)
34
35
    def tearDown(self):
36
        settings.AUTH_USER_MODEL = self.old_auth_model
37
38
    def test_registration_form_adds_custom_user_name_field(self):
39
        """
40
        Test that ``RegistrationForm`` adds custom username
41
        field and does not raise errors
42
43
        """
44
45
        form = forms.RegistrationForm()
46
47
        self.assertTrue(UsernameField() in form.fields)
48
49
    def test_registration_form_subclass_is_valid_for_django_18(self):
50
        """
51
        Test that ``RegistrationForm`` subclasses can save in
52
        Django > 1.8
53
54
        """
55
        if DJANGO_VERSION >= StrictVersion('1.8'):
56
            data = {'new_field': 'custom username',
57
                    'email': 'foo@example.com',
58
                    'password1': 'foo',
59
                    'password2': 'foo'}
60
61
            form = forms.RegistrationForm(data=data)
62
63
            self.assertTrue(form.is_valid())
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/models.py (+389 lines)
Line 0 Link Here
1
import datetime
2
import hashlib
3
import re
4
5
from django.utils import six
6
from django.apps import apps
7
from django.conf import settings
8
from django.core import mail
9
from django.core import management
10
from django.test import TestCase
11
12
from registration.models import RegistrationProfile
13
from registration.users import UserModel
14
15
Site = apps.get_model('sites', 'Site')
16
17
18
class RegistrationModelTests(TestCase):
19
    """
20
    Test the model and manager used in the default backend.
21
22
    """
23
    user_info = {'username': 'alice',
24
                 'password': 'swordfish',
25
                 'email': 'alice@example.com'}
26
27
    def setUp(self):
28
        self.old_activation = getattr(settings,
29
                                      'ACCOUNT_ACTIVATION_DAYS', None)
30
        self.old_reg_email = getattr(settings,
31
                                     'REGISTRATION_DEFAULT_FROM_EMAIL', None)
32
        self.old_email_html = getattr(settings,
33
                                      'REGISTRATION_EMAIL_HTML', None)
34
        self.old_django_email = getattr(settings,
35
                                        'DEFAULT_FROM_EMAIL', None)
36
37
        settings.ACCOUNT_ACTIVATION_DAYS = 7
38
        settings.REGISTRATION_DEFAULT_FROM_EMAIL = 'registration@email.com'
39
        settings.REGISTRATION_EMAIL_HTML = True
40
        settings.DEFAULT_FROM_EMAIL = 'django@email.com'
41
42
    def tearDown(self):
43
        settings.ACCOUNT_ACTIVATION_DAYS = self.old_activation
44
        settings.REGISTRATION_DEFAULT_FROM_EMAIL = self.old_reg_email
45
        settings.REGISTRATION_EMAIL_HTML = self.old_email_html
46
        settings.DEFAULT_FROM_EMAIL = self.old_django_email
47
48
    def test_profile_creation(self):
49
        """
50
        Creating a registration profile for a user populates the
51
        profile with the correct user and a SHA1 hash to use as
52
        activation key.
53
54
        """
55
        new_user = UserModel().objects.create_user(**self.user_info)
56
        profile = RegistrationProfile.objects.create_profile(new_user)
57
58
        self.assertEqual(RegistrationProfile.objects.count(), 1)
59
        self.assertEqual(profile.user.id, new_user.id)
60
        self.failUnless(re.match('^[a-f0-9]{40}$', profile.activation_key))
61
        self.assertEqual(six.text_type(profile),
62
                         "Registration information for alice")
63
64
    def test_activation_email(self):
65
        """
66
        ``RegistrationProfile.send_activation_email`` sends an
67
        email.
68
69
        """
70
        new_user = UserModel().objects.create_user(**self.user_info)
71
        profile = RegistrationProfile.objects.create_profile(new_user)
72
        profile.send_activation_email(Site.objects.get_current())
73
        self.assertEqual(len(mail.outbox), 1)
74
        self.assertEqual(mail.outbox[0].to, [self.user_info['email']])
75
76
    def test_activation_email_uses_registration_default_from_email(self):
77
        """
78
        ``RegistrationProfile.send_activation_email`` sends an
79
        email.
80
81
        """
82
        new_user = UserModel().objects.create_user(**self.user_info)
83
        profile = RegistrationProfile.objects.create_profile(new_user)
84
        profile.send_activation_email(Site.objects.get_current())
85
        self.assertEqual(mail.outbox[0].from_email, 'registration@email.com')
86
87
    def test_activation_email_falls_back_to_django_default_from_email(self):
88
        """
89
        ``RegistrationProfile.send_activation_email`` sends an
90
        email.
91
92
        """
93
        settings.REGISTRATION_DEFAULT_FROM_EMAIL = None
94
        new_user = UserModel().objects.create_user(**self.user_info)
95
        profile = RegistrationProfile.objects.create_profile(new_user)
96
        profile.send_activation_email(Site.objects.get_current())
97
        self.assertEqual(mail.outbox[0].from_email, 'django@email.com')
98
99
    def test_activation_email_is_html_by_default(self):
100
        """
101
        ``RegistrationProfile.send_activation_email`` sends an html
102
        email by default.
103
104
        """
105
        new_user = UserModel().objects.create_user(**self.user_info)
106
        profile = RegistrationProfile.objects.create_profile(new_user)
107
        profile.send_activation_email(Site.objects.get_current())
108
109
        self.assertEqual(len(mail.outbox[0].alternatives), 1)
110
111
    def test_activation_email_is_plain_text_if_html_disabled(self):
112
        """
113
        ``RegistrationProfile.send_activation_email`` sends a plain
114
        text email if settings.REGISTRATION_EMAIL_HTML is False.
115
116
        """
117
        settings.REGISTRATION_EMAIL_HTML = False
118
        new_user = UserModel().objects.create_user(**self.user_info)
119
        profile = RegistrationProfile.objects.create_profile(new_user)
120
        profile.send_activation_email(Site.objects.get_current())
121
122
        self.assertEqual(len(mail.outbox[0].alternatives), 0)
123
124
    def test_user_creation(self):
125
        """
126
        Creating a new user populates the correct data, and sets the
127
        user's account inactive.
128
129
        """
130
        new_user = RegistrationProfile.objects.create_inactive_user(
131
            site=Site.objects.get_current(), **self.user_info)
132
        self.assertEqual(new_user.username, 'alice')
133
        self.assertEqual(new_user.email, 'alice@example.com')
134
        self.failUnless(new_user.check_password('swordfish'))
135
        self.failIf(new_user.is_active)
136
137
    def test_user_creation_email(self):
138
        """
139
        By default, creating a new user sends an activation email.
140
141
        """
142
        RegistrationProfile.objects.create_inactive_user(
143
            site=Site.objects.get_current(), **self.user_info)
144
        self.assertEqual(len(mail.outbox), 1)
145
146
    def test_user_creation_no_email(self):
147
        """
148
        Passing ``send_email=False`` when creating a new user will not
149
        send an activation email.
150
151
        """
152
        RegistrationProfile.objects.create_inactive_user(
153
            site=Site.objects.get_current(),
154
            send_email=False, **self.user_info)
155
        self.assertEqual(len(mail.outbox), 0)
156
157
    def test_unexpired_account(self):
158
        """
159
        ``RegistrationProfile.activation_key_expired()`` is ``False``
160
        within the activation window.
161
162
        """
163
        new_user = RegistrationProfile.objects.create_inactive_user(
164
            site=Site.objects.get_current(), **self.user_info)
165
        profile = RegistrationProfile.objects.get(user=new_user)
166
        self.failIf(profile.activation_key_expired())
167
168
    def test_expired_account(self):
169
        """
170
        ``RegistrationProfile.activation_key_expired()`` is ``True``
171
        outside the activation window.
172
173
        """
174
        new_user = RegistrationProfile.objects.create_inactive_user(
175
            site=Site.objects.get_current(), **self.user_info)
176
        new_user.date_joined -= datetime.timedelta(
177
            days=settings.ACCOUNT_ACTIVATION_DAYS + 1)
178
        new_user.save()
179
        profile = RegistrationProfile.objects.get(user=new_user)
180
        self.failUnless(profile.activation_key_expired())
181
182
    def test_valid_activation(self):
183
        """
184
        Activating a user within the permitted window makes the
185
        account active, and resets the activation key.
186
187
        """
188
        new_user = RegistrationProfile.objects.create_inactive_user(
189
            site=Site.objects.get_current(), **self.user_info)
190
        profile = RegistrationProfile.objects.get(user=new_user)
191
        activated = (RegistrationProfile.objects
192
                     .activate_user(profile.activation_key))
193
194
        self.failUnless(isinstance(activated, UserModel()))
195
        self.assertEqual(activated.id, new_user.id)
196
        self.failUnless(activated.is_active)
197
198
        profile = RegistrationProfile.objects.get(user=new_user)
199
        self.assertTrue(profile.activated)
200
201
    def test_expired_activation(self):
202
        """
203
        Attempting to activate outside the permitted window does not
204
        activate the account.
205
206
        """
207
        new_user = RegistrationProfile.objects.create_inactive_user(
208
            site=Site.objects.get_current(), **self.user_info)
209
        new_user.date_joined -= datetime.timedelta(
210
            days=settings.ACCOUNT_ACTIVATION_DAYS + 1)
211
        new_user.save()
212
213
        profile = RegistrationProfile.objects.get(user=new_user)
214
        activated = (RegistrationProfile.objects
215
                     .activate_user(profile.activation_key))
216
217
        self.failIf(isinstance(activated, UserModel()))
218
        self.failIf(activated)
219
220
        new_user = UserModel().objects.get(username='alice')
221
        self.failIf(new_user.is_active)
222
223
        profile = RegistrationProfile.objects.get(user=new_user)
224
        self.assertFalse(profile.activated)
225
226
    def test_activation_invalid_key(self):
227
        """
228
        Attempting to activate with a key which is not a SHA1 hash
229
        fails.
230
231
        """
232
        self.failIf(RegistrationProfile.objects.activate_user('foo'))
233
234
    def test_activation_already_activated(self):
235
        """
236
        Attempting to re-activate an already-activated account fails.
237
238
        """
239
        new_user = RegistrationProfile.objects.create_inactive_user(
240
            site=Site.objects.get_current(), **self.user_info)
241
        profile = RegistrationProfile.objects.get(user=new_user)
242
        RegistrationProfile.objects.activate_user(profile.activation_key)
243
244
        profile = RegistrationProfile.objects.get(user=new_user)
245
        self.assertEqual(RegistrationProfile.objects.activate_user(profile.activation_key), new_user)
246
247
    def test_activation_deactivated(self):
248
        """
249
        Attempting to re-activate a deactivated account fails.
250
        """
251
        new_user = RegistrationProfile.objects.create_inactive_user(
252
            site=Site.objects.get_current(), **self.user_info)
253
        profile = RegistrationProfile.objects.get(user=new_user)
254
        RegistrationProfile.objects.activate_user(profile.activation_key)
255
256
        # Deactivate the new user.
257
        new_user.is_active = False
258
        new_user.save()
259
260
        # Try to activate again and ensure False is returned.
261
        failed = RegistrationProfile.objects.activate_user(profile.activation_key)
262
        self.assertFalse(failed)
263
264
    def test_activation_nonexistent_key(self):
265
        """
266
        Attempting to activate with a non-existent key (i.e., one not
267
        associated with any account) fails.
268
269
        """
270
        # Due to the way activation keys are constructed during
271
        # registration, this will never be a valid key.
272
        invalid_key = hashlib.sha1(six.b('foo')).hexdigest()
273
        self.failIf(RegistrationProfile.objects.activate_user(invalid_key))
274
275
    def test_expired_user_deletion(self):
276
        """
277
        ``RegistrationProfile.objects.delete_expired_users()`` only
278
        deletes inactive users whose activation window has expired.
279
280
        """
281
        RegistrationProfile.objects.create_inactive_user(
282
            site=Site.objects.get_current(), **self.user_info)
283
        expired_user = (RegistrationProfile.objects
284
                        .create_inactive_user(
285
                            site=Site.objects.get_current(),
286
                            username='bob',
287
                            password='secret',
288
                            email='bob@example.com'))
289
        expired_user.date_joined -= datetime.timedelta(
290
            days=settings.ACCOUNT_ACTIVATION_DAYS + 1)
291
        expired_user.save()
292
293
        RegistrationProfile.objects.delete_expired_users()
294
        self.assertEqual(RegistrationProfile.objects.count(), 1)
295
        self.assertRaises(UserModel().DoesNotExist,
296
                          UserModel().objects.get, username='bob')
297
298
    def test_management_command(self):
299
        """
300
        The ``cleanupregistration`` management command properly
301
        deletes expired accounts.
302
303
        """
304
        RegistrationProfile.objects.create_inactive_user(
305
            site=Site.objects.get_current(), **self.user_info)
306
        expired_user = (RegistrationProfile.objects
307
                        .create_inactive_user(site=Site.objects.get_current(),
308
                                              username='bob',
309
                                              password='secret',
310
                                              email='bob@example.com'))
311
        expired_user.date_joined -= datetime.timedelta(
312
            days=settings.ACCOUNT_ACTIVATION_DAYS + 1)
313
        expired_user.save()
314
315
        management.call_command('cleanupregistration')
316
        self.assertEqual(RegistrationProfile.objects.count(), 1)
317
        self.assertRaises(UserModel().DoesNotExist,
318
                          UserModel().objects.get, username='bob')
319
320
    def test_resend_activation_email(self):
321
        """
322
        Test resending activation email to an existing user
323
        """
324
        user = RegistrationProfile.objects.create_inactive_user(
325
            site=Site.objects.get_current(), send_email=False, **self.user_info)
326
        self.assertEqual(len(mail.outbox), 0)
327
328
        profile = RegistrationProfile.objects.get(user=user)
329
        orig_activation_key = profile.activation_key
330
331
        self.assertTrue(RegistrationProfile.objects.resend_activation_mail(
332
            email=self.user_info['email'],
333
            site=Site.objects.get_current(),
334
        ))
335
336
        profile = RegistrationProfile.objects.get(pk=profile.pk)
337
        new_activation_key = profile.activation_key
338
339
        self.assertNotEqual(orig_activation_key, new_activation_key)
340
        self.assertEqual(len(mail.outbox), 1)
341
342
    def test_resend_activation_email_nonexistent_user(self):
343
        """
344
        Test resending activation email to a nonexisting user
345
        """
346
        self.assertFalse(RegistrationProfile.objects.resend_activation_mail(
347
            email=self.user_info['email'],
348
            site=Site.objects.get_current(),
349
        ))
350
        self.assertEqual(len(mail.outbox), 0)
351
352
    def test_resend_activation_email_activated_user(self):
353
        """
354
        Test the scenario where user tries to resend activation code
355
        to the already activated user's email
356
        """
357
        user = RegistrationProfile.objects.create_inactive_user(
358
            site=Site.objects.get_current(), send_email=False, **self.user_info)
359
360
        profile = RegistrationProfile.objects.get(user=user)
361
        activated = (RegistrationProfile.objects
362
                     .activate_user(profile.activation_key))
363
        self.assertTrue(activated.is_active)
364
365
        self.assertFalse(RegistrationProfile.objects.resend_activation_mail(
366
            email=self.user_info['email'],
367
            site=Site.objects.get_current(),
368
        ))
369
        self.assertEqual(len(mail.outbox), 0)
370
371
    def test_resend_activation_email_expired_user(self):
372
        """
373
        Test the scenario where user tries to resend activation code
374
        to the expired user's email
375
        """
376
        new_user = RegistrationProfile.objects.create_inactive_user(
377
            site=Site.objects.get_current(), send_email=False, **self.user_info)
378
        new_user.date_joined -= datetime.timedelta(
379
            days=settings.ACCOUNT_ACTIVATION_DAYS + 1)
380
        new_user.save()
381
382
        profile = RegistrationProfile.objects.get(user=new_user)
383
        self.assertTrue(profile.activation_key_expired())
384
385
        self.assertFalse(RegistrationProfile.objects.resend_activation_mail(
386
            email=self.user_info['email'],
387
            site=Site.objects.get_current(),
388
        ))
389
        self.assertEqual(len(mail.outbox), 0)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/simple_backend.py (+88 lines)
Line 0 Link Here
1
from django.conf import settings
2
from django.core.urlresolvers import reverse
3
from django.test import TestCase
4
5
from registration.forms import RegistrationForm
6
from registration.users import UserModel
7
8
9
class SimpleBackendViewTests(TestCase):
10
    urls = 'test_app.urls_simple'
11
12
    def test_allow(self):
13
        """
14
        The setting ``REGISTRATION_OPEN`` appropriately controls
15
        whether registration is permitted.
16
17
        """
18
        old_allowed = getattr(settings, 'REGISTRATION_OPEN', True)
19
        settings.REGISTRATION_OPEN = True
20
21
        resp = self.client.get(reverse('registration_register'))
22
        self.assertEqual(200, resp.status_code)
23
24
        settings.REGISTRATION_OPEN = False
25
26
        # Now all attempts to hit the register view should redirect to
27
        # the 'registration is closed' message.
28
        resp = self.client.get(reverse('registration_register'))
29
        self.assertRedirects(resp, reverse('registration_disallowed'))
30
31
        resp = self.client.post(reverse('registration_register'),
32
                                data={'username': 'bob',
33
                                      'email': 'bob@example.com',
34
                                      'password1': 'secret',
35
                                      'password2': 'secret'})
36
        self.assertRedirects(resp, reverse('registration_disallowed'))
37
38
        settings.REGISTRATION_OPEN = old_allowed
39
40
    def test_registration_get(self):
41
        """
42
        HTTP ``GET`` to the registration view uses the appropriate
43
        template and populates a registration form into the context.
44
45
        """
46
        resp = self.client.get(reverse('registration_register'))
47
        self.assertEqual(200, resp.status_code)
48
        self.assertTemplateUsed(resp,
49
                                'registration/registration_form.html')
50
        self.failUnless(isinstance(resp.context['form'],
51
                        RegistrationForm))
52
53
    def test_registration(self):
54
        """
55
        Registration creates a new account and logs the user in.
56
57
        """
58
        resp = self.client.post(reverse('registration_register'),
59
                                data={'username': 'bob',
60
                                      'email': 'bob@example.com',
61
                                      'password1': 'secret',
62
                                      'password2': 'secret'})
63
        new_user = UserModel().objects.get(username='bob')
64
        self.assertEqual(302, resp.status_code)
65
        self.failUnless(reverse('registration_complete') in resp['Location'])
66
67
        self.failUnless(new_user.check_password('secret'))
68
        self.assertEqual(new_user.email, 'bob@example.com')
69
70
        # New user must be active.
71
        self.failUnless(new_user.is_active)
72
73
        # New user must be logged in.
74
        resp = self.client.get(reverse('registration_register'))
75
        self.failUnless(resp.context['user'].is_authenticated())
76
77
    def test_registration_failure(self):
78
        """
79
        Registering with invalid data fails.
80
81
        """
82
        resp = self.client.post(reverse('registration_register'),
83
                                data={'username': 'bob',
84
                                      'email': 'bob@example.com',
85
                                      'password1': 'secret',
86
                                      'password2': 'notsecret'})
87
        self.assertEqual(200, resp.status_code)
88
        self.failIf(resp.context['form'].is_valid())
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/tests/urls.py (+80 lines)
Line 0 Link Here
1
"""
2
URLs used in the unit tests for django-registration.
3
4
You should not attempt to use these URLs in any sort of real or
5
development environment; instead, use
6
``registration/backends/default/urls.py``. This URLconf includes those
7
URLs, and also adds several additional URLs which serve no purpose
8
other than to test that optional keyword arguments are properly
9
handled.
10
11
"""
12
13
from django.conf.urls import include, url
14
15
from django.views.generic import TemplateView
16
17
from registration.views import ActivationView
18
from registration.views import RegistrationView
19
20
21
urlpatterns = [
22
    # Test the 'activate' view with custom template
23
    # name.
24
    url(r'^activate-with-template-name/(?P<activation_key>\w+)/$',
25
        ActivationView.as_view(),
26
        {'template_name': 'registration/test_template_name.html',
27
         'backend': 'registration.backends.default.DefaultBackend'},
28
        name='registration_test_activate_template_name'),
29
    # Test the 'activate' view with
30
    # extra_context_argument.
31
    url(r'^activate-extra-context/(?P<activation_key>\w+)/$',
32
        ActivationView.as_view(),
33
        {'extra_context': {'foo': 'bar', 'callable': lambda: 'called'},
34
         'backend': 'registration.backends.default.DefaultBackend'},
35
        name='registration_test_activate_extra_context'),
36
    # Test the 'activate' view with success_url argument.
37
    url(r'^activate-with-success-url/(?P<activation_key>\w+)/$',
38
        ActivationView.as_view(),
39
        {'success_url': 'registration_test_custom_success_url',
40
         'backend': 'registration.backends.default.DefaultBackend'},
41
        name='registration_test_activate_success_url'),
42
    # Test the 'register' view with custom template
43
    # name.
44
    url(r'^register-with-template-name/$',
45
        RegistrationView.as_view(),
46
        {'template_name': 'registration/test_template_name.html',
47
         'backend': 'registration.backends.default.DefaultBackend'},
48
        name='registration_test_register_template_name'),
49
    # Test the'register' view with extra_context
50
    # argument.
51
    url(r'^register-extra-context/$',
52
        RegistrationView.as_view(),
53
        {'extra_context': {'foo': 'bar', 'callable': lambda: 'called'},
54
         'backend': 'registration.backends.default.DefaultBackend'},
55
        name='registration_test_register_extra_context'),
56
    # Test the 'register' view with custom URL for
57
    # closed registration.
58
    url(r'^register-with-disallowed-url/$',
59
        RegistrationView.as_view(),
60
        {'disallowed_url': 'registration_test_custom_disallowed',
61
         'backend': 'registration.backends.default.DefaultBackend'},
62
        name='registration_test_register_disallowed_url'),
63
    # Set up a pattern which will correspond to the
64
    # custom 'disallowed_url' above.
65
    url(r'^custom-disallowed/$',
66
        TemplateView.as_view(template_name='registration/registration_closed.html'),
67
        name='registration_test_custom_disallowed'),
68
    # Test the 'register' view with custom redirect
69
    # on successful registration.
70
    url(r'^register-with-success_url/$',
71
        RegistrationView.as_view(),
72
        {'success_url': 'registration_test_custom_success_url',
73
         'backend': 'registration.backends.default.DefaultBackend'},
74
        name='registration_test_register_success_url'),
75
    # Pattern for custom redirect set above.
76
    url(r'^custom-success/$',
77
        TemplateView.as_view(template_name='registration/test_template_name.html'),
78
        name='registration_test_custom_success_url'),
79
    url(r'', include('registration.backends.default.urls')),
80
]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/urls.py (+15 lines)
Line 0 Link Here
1
"""
2
Backwards-compatible URLconf for existing django-registration
3
installs; this allows the standard ``include('registration.urls')`` to
4
continue working, but that usage is deprecated and will be removed for
5
django-registration 1.0. For new installs, use
6
``include('registration.backends.default.urls')``.
7
8
"""
9
10
import warnings
11
12
warnings.warn("include('registration.urls') is deprecated; use include('registration.backends.default.urls') instead.",
13
              DeprecationWarning)
14
15
from .backends.default.urls import *  # NOQA
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/users.py (+15 lines)
Line 0 Link Here
1
from django.conf import settings
2
from django.contrib.auth import get_user_model
3
4
UserModel = get_user_model
5
6
7
def UserModelString():
8
    try:
9
        return settings.AUTH_USER_MODEL
10
    except AttributeError:
11
        return 'auth.User'
12
13
14
def UsernameField():
15
    return getattr(UserModel(), 'USERNAME_FIELD', 'username')
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/registration/views.py (+106 lines)
Line 0 Link Here
1
"""
2
Views which allow users to create and activate accounts.
3
4
"""
5
6
from django.shortcuts import redirect
7
from django.views.generic.base import TemplateView
8
from django.views.generic.edit import FormView
9
from django.conf import settings
10
from django.utils.decorators import method_decorator
11
from django.utils.module_loading import import_string
12
from django.views.decorators.debug import sensitive_post_parameters
13
14
REGISTRATION_FORM_PATH = getattr(settings, 'REGISTRATION_FORM',
15
                                 'registration.forms.RegistrationForm')
16
REGISTRATION_FORM = import_string(REGISTRATION_FORM_PATH)
17
18
19
class RegistrationView(FormView):
20
    """
21
    Base class for user registration views.
22
23
    """
24
    disallowed_url = 'registration_disallowed'
25
    form_class = REGISTRATION_FORM
26
    http_method_names = ['get', 'post', 'head', 'options', 'trace']
27
    success_url = None
28
    template_name = 'registration/registration_form.html'
29
30
    @method_decorator(sensitive_post_parameters('password1', 'password2'))
31
    def dispatch(self, request, *args, **kwargs):
32
        """
33
        Check that user signup is allowed before even bothering to
34
        dispatch or do other processing.
35
36
        """
37
        if not self.registration_allowed():
38
            return redirect(self.disallowed_url)
39
        return super(RegistrationView, self).dispatch(request, *args, **kwargs)
40
41
    def form_valid(self, form):
42
        new_user = self.register(form)
43
        success_url = self.get_success_url(new_user)
44
45
        # success_url may be a simple string, or a tuple providing the
46
        # full argument set for redirect(). Attempting to unpack it
47
        # tells us which one it is.
48
        try:
49
            to, args, kwargs = success_url
50
        except ValueError:
51
            return redirect(success_url)
52
        else:
53
            return redirect(to, *args, **kwargs)
54
55
    def registration_allowed(self):
56
        """
57
        Override this to enable/disable user registration, either
58
        globally or on a per-request basis.
59
60
        """
61
        return True
62
63
    def register(self, form):
64
        """
65
        Implement user-registration logic here.
66
67
        """
68
        raise NotImplementedError
69
70
    def get_success_url(self, user=None):
71
        """
72
        Use the new user when constructing success_url.
73
74
        """
75
        return super(RegistrationView, self).get_success_url()
76
77
78
class ActivationView(TemplateView):
79
    """
80
    Base class for user activation views.
81
82
    """
83
    http_method_names = ['get']
84
    template_name = 'registration/activate.html'
85
86
    def get(self, request, *args, **kwargs):
87
        activated_user = self.activate(*args, **kwargs)
88
        if activated_user:
89
            success_url = self.get_success_url(activated_user)
90
            try:
91
                to, args, kwargs = success_url
92
            except ValueError:
93
                return redirect(success_url)
94
            else:
95
                return redirect(to, *args, **kwargs)
96
        return super(ActivationView, self).get(request, *args, **kwargs)
97
98
    def activate(self, *args, **kwargs):
99
        """
100
        Implement account-activation logic here.
101
102
        """
103
        raise NotImplementedError
104
105
    def get_success_url(self, user):
106
        raise NotImplementedError
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/setup.cfg (+16 lines)
Line 0 Link Here
1
[pytest]
2
django_settings_module = test_app.settings_test
3
python_files = registration/tests/*.py
4
5
[easy_install]
6
zip_ok = False
7
8
[flake8]
9
exclude = docs,env,build,migrations
10
ignore = E501
11
12
[egg_info]
13
tag_build = 
14
tag_date = 0
15
tag_svn_revision = 0
16
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/setup.py (+48 lines)
Line 0 Link Here
1
from setuptools import setup, find_packages
2
from setuptools.command.test import test as TestCommand
3
import sys
4
5
from registration import get_version
6
7
8
class PyTest(TestCommand):
9
    def finalize_options(self):
10
        TestCommand.finalize_options(self)
11
        self.test_args = []
12
        self.test_suite = True
13
14
    def run_tests(self):
15
        # import here, cause outside the eggs aren't loaded
16
        import pytest
17
        errno = pytest.main(self.test_args)
18
        sys.exit(errno)
19
20
setup(
21
    name='django-registration-redux',
22
    version=get_version().replace(' ', '-'),
23
    description='An extensible user-registration application for Django',
24
    long_description=open('README.rst').read(),
25
    author='Andrew Cutler',
26
    author_email='macropin@gmail.com',
27
    url='https://github.com/macropin/django-registration',
28
    package_dir={'registration': 'registration'},
29
    packages=find_packages(exclude='test_app'),
30
    tests_require=['pytest-django'],
31
    cmdclass={'test': PyTest},
32
    include_package_data=True,
33
    classifiers=[
34
        'Development Status :: 5 - Production/Stable',
35
        'Environment :: Web Environment',
36
        'Framework :: Django',
37
        'Intended Audience :: Developers',
38
        'License :: OSI Approved :: BSD License',
39
        'Operating System :: OS Independent',
40
        'Programming Language :: Python',
41
        'Programming Language :: Python :: 2.7',
42
        'Programming Language :: Python :: 3',
43
        'Programming Language :: Python :: 3.4',
44
        'Programming Language :: Python :: 3.5',
45
        'Topic :: Software Development :: Libraries :: Python Modules',
46
        'Topic :: Utilities'
47
    ],
48
)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/test_app/__init__.py (+1 lines)
Line 0 Link Here
1
# coding: utf-8
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/test_app/models.py (+11 lines)
Line 0 Link Here
1
# coding: utf-8
2
3
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
4
from django.db import models
5
6
7
class CustomUser(AbstractBaseUser):
8
    new_field = models.CharField(max_length=25)
9
    objects = BaseUserManager()
10
11
    USERNAME_FIELD = 'new_field'
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/test_app/settings.py (+61 lines)
Line 0 Link Here
1
DATABASES = {
2
    'default': {
3
        'ENGINE': 'django.db.backends.sqlite3',
4
        'NAME': 'dr.sqlite3',
5
    },
6
}
7
8
INSTALLED_APPS = (
9
    'django.contrib.auth',
10
    'django.contrib.admin',
11
    'django.contrib.sites',
12
    'django.contrib.sessions',
13
    'django.contrib.contenttypes',
14
    'registration',
15
    'test_app',
16
)
17
18
DEBUG = True
19
20
ALLOWED_HOSTS = ['*']
21
22
SECRET_KEY = '_'
23
24
SITE_ID = 1
25
26
ROOT_URLCONF = 'test_app.urls_default'
27
28
TEMPLATES = [
29
    {
30
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
31
        'OPTIONS': {
32
            'context_processors': [
33
                'django.contrib.auth.context_processors.auth',
34
                'django.template.context_processors.debug',
35
                'django.template.context_processors.i18n',
36
                'django.template.context_processors.media',
37
                'django.template.context_processors.static',
38
                'django.template.context_processors.tz',
39
                'django.contrib.messages.context_processors.messages',
40
            ],
41
            'loaders': [
42
                'django.template.loaders.app_directories.Loader',
43
            ],
44
        },
45
    },
46
]
47
48
MIDDLEWARE_CLASSES = (
49
    'django.middleware.common.CommonMiddleware',
50
    'django.contrib.sessions.middleware.SessionMiddleware',
51
    'django.middleware.csrf.CsrfViewMiddleware',
52
    'django.contrib.auth.middleware.AuthenticationMiddleware',
53
    'django.contrib.messages.middleware.MessageMiddleware',
54
)
55
56
ACCOUNT_ACTIVATION_DAYS = 7
57
REGISTRATION_EMAIL_SUBJECT_PREFIX = '[Django Registration Test App]'
58
SEND_ACTIVATION_EMAIL = True
59
REGISTRATION_AUTO_LOGIN = False
60
61
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/test_app/settings_test.py (+51 lines)
Line 0 Link Here
1
# coding: utf-8
2
DATABASES = {
3
    'default': {
4
        'ENGINE': 'django.db.backends.sqlite3',
5
        'NAME': ':memory:',
6
    },
7
}
8
9
INSTALLED_APPS = (
10
    'django.contrib.auth',
11
    'django.contrib.admin',
12
    'django.contrib.sites',
13
    'django.contrib.sessions',
14
    'django.contrib.contenttypes',
15
    'registration',
16
    'test_app',
17
)
18
19
DEBUG = True
20
ALLOWED_HOSTS = ['*']
21
SECRET_KEY = '_'
22
SITE_ID = 1
23
ROOT_URLCONF = 'test_app.urls_default'
24
25
TEMPLATES = [
26
    {
27
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
28
        'OPTIONS': {
29
            'context_processors': [
30
                'django.contrib.auth.context_processors.auth',
31
                'django.template.context_processors.debug',
32
                'django.template.context_processors.i18n',
33
                'django.template.context_processors.media',
34
                'django.template.context_processors.static',
35
                'django.template.context_processors.tz',
36
                'django.contrib.messages.context_processors.messages',
37
            ],
38
            'loaders': [
39
                'django.template.loaders.app_directories.Loader',
40
            ],
41
        },
42
    },
43
]
44
45
MIDDLEWARE_CLASSES = (
46
    'django.middleware.common.CommonMiddleware',
47
    'django.contrib.sessions.middleware.SessionMiddleware',
48
    'django.middleware.csrf.CsrfViewMiddleware',
49
    'django.contrib.auth.middleware.AuthenticationMiddleware',
50
    'django.contrib.messages.middleware.MessageMiddleware',
51
)
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/test_app/urls_default.py (+26 lines)
Line 0 Link Here
1
from django.conf.urls import include, url
2
from django.contrib import admin
3
from django.contrib.auth import views as auth_views
4
from django.views.generic import TemplateView
5
6
urlpatterns = [
7
8
    url(r'^$',
9
        TemplateView.as_view(template_name='index.html'),
10
        name='index'),
11
12
    url(r'^accounts/',
13
        include('registration.backends.default.urls')),
14
15
    url(r'^accounts/profile/',
16
        TemplateView.as_view(template_name='profile.html'),
17
        name='profile'),
18
19
    url(r'^login/',
20
        auth_views.login,
21
        name='login'),
22
23
    url(r'^admin/',
24
        include(admin.site.urls),
25
        name='admin'),
26
]
(-)www/py-django-registration-redux/work/django-registration-redux-1.4/test_app/urls_simple.py (+25 lines)
Line 0 Link Here
1
from django.conf.urls import include, url
2
from django.contrib import admin
3
from django.views.generic import TemplateView
4
5
urlpatterns = [
6
7
    url(r'^$',
8
        TemplateView.as_view(template_name='index.html'),
9
        name='index'),
10
11
    url(r'^accounts/',
12
        include('registration.backends.simple.urls')),
13
14
    url(r'^accounts/profile/',
15
        TemplateView.as_view(template_name='profile.html'),
16
        name='profile'),
17
18
    url(r'^login/',
19
        'django.contrib.auth.views.login',
20
        name='login'),
21
22
    url(r'^admin/',
23
        include(admin.site.urls),
24
        name='admin'),
25
]

Return to bug 209606