Changeset 7768 for django/branches/gis/django/contrib
- Timestamp:
- 06/26/08 10:11:55 (2 months ago)
- Files:
-
- django/branches/gis (modified) (1 prop)
- django/branches/gis/django/contrib/auth/views.py (modified) (4 diffs)
- django/branches/gis/django/contrib/flatpages/models.py (modified) (1 diff)
- django/branches/gis/django/contrib/formtools/tests.py (modified) (2 diffs)
- django/branches/gis/django/contrib/formtools/wizard.py (modified) (1 diff)
- django/branches/gis/django/contrib/localflavor/ar/forms.py (modified) (4 diffs)
- django/branches/gis/django/contrib/localflavor/au/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/br/forms.py (modified) (1 diff)
- django/branches/gis/django/contrib/localflavor/ca/forms.py (modified) (3 diffs)
- django/branches/gis/django/contrib/localflavor/ch/forms.py (modified) (3 diffs)
- django/branches/gis/django/contrib/localflavor/cl/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/de/forms.py (modified) (3 diffs)
- django/branches/gis/django/contrib/localflavor/es/forms.py (modified) (1 diff)
- django/branches/gis/django/contrib/localflavor/fi/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/fr/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/is_/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/it/forms.py (modified) (5 diffs)
- django/branches/gis/django/contrib/localflavor/jp/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/nl/forms.py (modified) (1 diff)
- django/branches/gis/django/contrib/localflavor/no/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/pe/forms.py (modified) (3 diffs)
- django/branches/gis/django/contrib/localflavor/pl/forms.py (modified) (1 diff)
- django/branches/gis/django/contrib/localflavor/sk/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/uk/forms.py (modified) (2 diffs)
- django/branches/gis/django/contrib/localflavor/uk/uk_regions.py (modified) (1 diff)
- django/branches/gis/django/contrib/localflavor/us/forms.py (modified) (3 diffs)
- django/branches/gis/django/contrib/redirects/models.py (modified) (1 diff)
- django/branches/gis/django/contrib/sessions/backends/base.py (modified) (3 diffs)
- django/branches/gis/django/contrib/sessions/backends/cache.py (modified) (1 diff)
- django/branches/gis/django/contrib/sessions/backends/db.py (modified) (1 diff)
- django/branches/gis/django/contrib/sessions/backends/file.py (modified) (3 diffs)
- django/branches/gis/django/contrib/sessions/middleware.py (modified) (2 diffs)
- django/branches/gis/django/contrib/sessions/models.py (modified) (3 diffs)
- django/branches/gis/django/contrib/sessions/tests.py (modified) (1 diff)
- django/branches/gis/django/contrib/sites/management.py (modified) (1 diff)
- django/branches/gis/django/contrib/sites/models.py (modified) (1 diff)
- django/branches/gis/django/contrib/sites/tests.py (copied) (copied from django/trunk/django/contrib/sites/tests.py)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/gis
- Property svnmerge-integrated changed from /django/trunk:1-7641 to /django/trunk:1-7767
django/branches/gis/django/contrib/auth/views.py
r6394 r7768 1 from django import oldforms 2 from django.contrib.auth import REDIRECT_FIELD_NAME 3 from django.contrib.auth.decorators import login_required 1 4 from django.contrib.auth.forms import AuthenticationForm 2 5 from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm 3 from django import oldforms 6 from django.contrib.sites.models import Site, RequestSite 7 from django.http import HttpResponseRedirect 4 8 from django.shortcuts import render_to_response 5 9 from django.template import RequestContext 6 from django.contrib.sites.models import Site, RequestSite 7 from django.http import HttpResponseRedirect 8 from django.contrib.auth.decorators import login_required 9 from django.contrib.auth import REDIRECT_FIELD_NAME 10 from django.utils.http import urlquote 10 11 from django.utils.translation import ugettext as _ 11 12 12 13 def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME): 13 14 "Displays the login form and handles the login action." 14 manipulator = AuthenticationForm( request)15 manipulator = AuthenticationForm() 15 16 redirect_to = request.REQUEST.get(redirect_field_name, '') 16 17 if request.POST: … … 23 24 from django.contrib.auth import login 24 25 login(request, manipulator.get_user()) 25 request.session.delete_test_cookie() 26 if request.session.test_cookie_worked(): 27 request.session.delete_test_cookie() 26 28 return HttpResponseRedirect(redirect_to) 27 29 else: … … 62 64 from django.conf import settings 63 65 login_url = settings.LOGIN_URL 64 return HttpResponseRedirect('%s?%s=%s' % (login_url, redirect_field_name, next))66 return HttpResponseRedirect('%s?%s=%s' % (login_url, urlquote(redirect_field_name), urlquote(next))) 65 67 66 68 def password_reset(request, is_admin_site=False, template_name='registration/password_reset_form.html', … … 75 77 form.save(domain_override=request.META['HTTP_HOST']) 76 78 else: 77 form.save(email_template_name=email_template_name) 79 if Site._meta.installed: 80 form.save(email_template_name=email_template_name) 81 else: 82 form.save(domain_override=RequestSite(request).domain, email_template_name=email_template_name) 78 83 return HttpResponseRedirect('%sdone/' % request.path) 79 84 return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)}, django/branches/gis/django/contrib/flatpages/models.py
r7405 r7768 27 27 (_('Advanced options'), {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}), 28 28 ) 29 list_filter = ('sites',) 29 list_display = ('url', 'title') 30 list_filter = ('sites', 'enable_comments', 'registration_required') 30 31 search_fields = ('url', 'title') 31 32 django/branches/gis/django/contrib/formtools/tests.py
r7354 r7768 24 24 25 25 def setUp(self): 26 self._old_root_urlconf = settings.ROOT_URLCONF 26 27 settings.ROOT_URLCONF = 'django.contrib.formtools.test_urls' 27 28 # Create a FormPreview instance to share between tests … … 30 31 self.input = input_template % (self.preview.unused_name('stage'), "%d") 31 32 33 def tearDown(self): 34 settings.ROOT_URLCONF = self._old_root_urlconf 35 32 36 def test_unused_name(self): 33 37 """ django/branches/gis/django/contrib/formtools/wizard.py
r7354 r7768 150 150 # Use HIGHEST_PROTOCOL because it's the most efficient. It requires 151 151 # Python 2.3, but Django requires 2.3 anyway, so that's OK. 152 pickled = pickle.dumps(data, p rotocol=pickle.HIGHEST_PROTOCOL)152 pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL) 153 153 return md5.new(pickled).hexdigest() 154 154 django/branches/gis/django/contrib/localflavor/ar/forms.py
r7354 r7768 7 7 from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES 8 8 from django.utils.encoding import smart_unicode 9 from django.utils.translation import ugettext 9 from django.utils.translation import ugettext_lazy as _ 10 10 11 11 class ARProvinceSelect(Select): … … 25 25 """ 26 26 default_error_messages = { 27 'invalid': ugettext("Enter a postal code in the format NNNN or ANNNNAAA."),27 'invalid': _("Enter a postal code in the format NNNN or ANNNNAAA."), 28 28 } 29 29 … … 47 47 """ 48 48 default_error_messages = { 49 'invalid': ugettext("This field requires only numbers."),50 'max_digits': ugettext("This field requires 7 or 8 digits."),49 'invalid': _("This field requires only numbers."), 50 'max_digits': _("This field requires 7 or 8 digits."), 51 51 } 52 52 … … 77 77 """ 78 78 default_error_messages = { 79 'invalid': ugettext('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'),80 'checksum': ugettext("Invalid CUIT."),79 'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'), 80 'checksum': _("Invalid CUIT."), 81 81 } 82 82 django/branches/gis/django/contrib/localflavor/au/forms.py
r6990 r7768 6 6 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 7 7 from django.newforms.util import smart_unicode 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 import re 10 10 … … 14 14 """Australian post code field.""" 15 15 default_error_messages = { 16 'invalid': ugettext('Enter a 4 digit post code.'),16 'invalid': _('Enter a 4 digit post code.'), 17 17 } 18 18 django/branches/gis/django/contrib/localflavor/br/forms.py
r6990 r7768 7 7 from django.newforms.fields import Field, RegexField, CharField, Select, EMPTY_VALUES 8 8 from django.utils.encoding import smart_unicode 9 from django.utils.translation import ugettext as _9 from django.utils.translation import ugettext_lazy as _ 10 10 import re 11 11 django/branches/gis/django/contrib/localflavor/ca/forms.py
r7354 r7768 6 6 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 7 7 from django.newforms.util import smart_unicode 8 from django.utils.translation import gettext, ugettext8 from django.utils.translation import ugettext_lazy as _ 9 9 import re 10 10 … … 15 15 """Canadian postal code field.""" 16 16 default_error_messages = { 17 'invalid': gettext(u'Enter a postal code in the format XXX XXX.'),17 'invalid': _(u'Enter a postal code in the format XXX XXX.'), 18 18 } 19 19 … … 86 86 """ 87 87 default_error_messages = { 88 'invalid': ugettext('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'),88 'invalid': _('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'), 89 89 } 90 90 django/branches/gis/django/contrib/localflavor/ch/forms.py
r6990 r7768 6 6 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 7 7 from django.utils.encoding import smart_unicode 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 import re 10 10 … … 14 14 class CHZipCodeField(RegexField): 15 15 default_error_messages = { 16 'invalid': ugettext('Enter a zip code in the format XXXX.'),16 'invalid': _('Enter a zip code in the format XXXX.'), 17 17 } 18 18 … … 62 62 """ 63 63 default_error_messages = { 64 'invalid': ugettext('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'),64 'invalid': _('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'), 65 65 } 66 66 django/branches/gis/django/contrib/localflavor/cl/forms.py
r6990 r7768 5 5 from django.newforms import ValidationError 6 6 from django.newforms.fields import RegexField, Select, EMPTY_VALUES 7 from django.utils.translation import ugettext 7 from django.utils.translation import ugettext_lazy as _ 8 8 from django.utils.encoding import smart_unicode 9 9 … … 27 27 """ 28 28 default_error_messages = { 29 'invalid': ugettext('Enter a valid Chilean RUT.'),30 'strict': ugettext('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'),31 'checksum': ugettext('The Chilean RUT is not valid.'),29 'invalid': _('Enter a valid Chilean RUT.'), 30 'strict': _('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'), 31 'checksum': _('The Chilean RUT is not valid.'), 32 32 } 33 33 django/branches/gis/django/contrib/localflavor/de/forms.py
r6990 r7768 5 5 from django.newforms import ValidationError 6 6 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 7 from django.utils.translation import ugettext 7 from django.utils.translation import ugettext_lazy as _ 8 8 import re 9 9 … … 12 12 class DEZipCodeField(RegexField): 13 13 default_error_messages = { 14 'invalid': ugettext('Enter a zip code in the format XXXXX.'),14 'invalid': _('Enter a zip code in the format XXXXX.'), 15 15 } 16 16 def __init__(self, *args, **kwargs): … … 39 39 """ 40 40 default_error_messages = { 41 'invalid': ugettext('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'),41 'invalid': _('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'), 42 42 } 43 43 django/branches/gis/django/contrib/localflavor/es/forms.py
r7354 r7768 6 6 from django.newforms import ValidationError 7 7 from django.newforms.fields import RegexField, Select, EMPTY_VALUES 8 from django.utils.translation import ugettext as _8 from django.utils.translation import ugettext_lazy as _ 9 9 import re 10 10 django/branches/gis/django/contrib/localflavor/fi/forms.py
r6990 r7768 6 6 from django.newforms import ValidationError 7 7 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 10 10 class FIZipCodeField(RegexField): 11 11 default_error_messages = { 12 'invalid': ugettext('Enter a zip code in the format XXXXX.'),12 'invalid': _('Enter a zip code in the format XXXXX.'), 13 13 } 14 14 def __init__(self, *args, **kwargs): … … 26 26 class FISocialSecurityNumber(Field): 27 27 default_error_messages = { 28 'invalid': ugettext('Enter a valid Finnish social security number.'),28 'invalid': _('Enter a valid Finnish social security number.'), 29 29 } 30 30 django/branches/gis/django/contrib/localflavor/fr/forms.py
r6990 r7768 6 6 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 7 7 from django.utils.encoding import smart_unicode 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 import re 10 10 … … 13 13 class FRZipCodeField(RegexField): 14 14 default_error_messages = { 15 'invalid': ugettext('Enter a zip code in the format XXXXX.'),15 'invalid': _('Enter a zip code in the format XXXXX.'), 16 16 } 17 17 django/branches/gis/django/contrib/localflavor/is_/forms.py
r6990 r7768 6 6 from django.newforms.fields import RegexField, EMPTY_VALUES 7 7 from django.newforms.widgets import Select 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 from django.utils.encoding import smart_unicode 10 10 … … 15 15 """ 16 16 default_error_messages = { 17 'invalid': ugettext('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'),18 'checksum': ugettext(u'The Icelandic identification number is not valid.'),17 'invalid': _('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'), 18 'checksum': _(u'The Icelandic identification number is not valid.'), 19 19 } 20 20 django/branches/gis/django/contrib/localflavor/it/forms.py
r6990 r7768 5 5 from django.newforms import ValidationError 6 6 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 7 from django.utils.translation import ugettext 7 from django.utils.translation import ugettext_lazy as _ 8 8 from django.utils.encoding import smart_unicode 9 9 from django.contrib.localflavor.it.util import ssn_check_digit, vat_number_check_digit … … 12 12 class ITZipCodeField(RegexField): 13 13 default_error_messages = { 14 'invalid': ugettext('Enter a valid zip code.'),14 'invalid': _('Enter a valid zip code.'), 15 15 } 16 16 def __init__(self, *args, **kwargs): … … 28 28 class ITProvinceSelect(Select): 29 29 """ 30 A Select widget that uses a list of IT regions as its choices.30 A Select widget that uses a list of IT provinces as its choices. 31 31 """ 32 32 def __init__(self, attrs=None): … … 41 41 """ 42 42 default_error_messages = { 43 'invalid': ugettext(u'Enter a valid Social Security number.'),43 'invalid': _(u'Enter a valid Social Security number.'), 44 44 } 45 45 … … 66 66 """ 67 67 default_error_messages = { 68 'invalid': ugettext(u'Enter a valid VAT number.'),68 'invalid': _(u'Enter a valid VAT number.'), 69 69 } 70 70 django/branches/gis/django/contrib/localflavor/jp/forms.py
r7176 r7768 5 5 from django.core import validators 6 6 from django.newforms import ValidationError 7 from django.utils.translation import ugettext 7 from django.utils.translation import ugettext_lazy as _ 8 8 from django.newforms.fields import RegexField, Select 9 9 … … 15 15 """ 16 16 default_error_messages = { 17 'invalid': ugettext('Enter a postal code in the format XXXXXXX or XXX-XXXX.'),17 'invalid': _('Enter a postal code in the format XXXXXXX or XXX-XXXX.'), 18 18 } 19 19 django/branches/gis/django/contrib/localflavor/nl/forms.py
r7354 r7768 7 7 from django.newforms import ValidationError 8 8 from django.newforms.fields import Field, Select, EMPTY_VALUES 9 from django.utils.translation import ugettext as _9 from django.utils.translation import ugettext_lazy as _ 10 10 from django.utils.encoding import smart_unicode 11 11 django/branches/gis/django/contrib/localflavor/no/forms.py
r6990 r7768 6 6 from django.newforms import ValidationError 7 7 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 10 10 class NOZipCodeField(RegexField): 11 11 default_error_messages = { 12 'invalid': ugettext('Enter a zip code in the format XXXX.'),12 'invalid': _('Enter a zip code in the format XXXX.'), 13 13 } 14 14 … … 31 31 """ 32 32 default_error_messages = { 33 'invalid': ugettext(u'Enter a valid Norwegian social security number.'),33 'invalid': _(u'Enter a valid Norwegian social security number.'), 34 34 } 35 35 django/branches/gis/django/contrib/localflavor/pe/forms.py
r7354 r7768 6 6 from django.newforms import ValidationError 7 7 from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 10 10 class PEDepartmentSelect(Select): … … 21 21 """ 22 22 default_error_messages = { 23 'invalid': ugettext("This field requires only numbers."),24 'max_digits': ugettext("This field requires 8 digits."),23 'invalid': _("This field requires only numbers."), 24 'max_digits': _("This field requires 8 digits."), 25 25 } 26 26 … … 49 49 """ 50 50 default_error_messages = { 51 'invalid': ugettext("This field requires only numbers."),52 'max_digits': ugettext("This field requires 11 digits."),51 'invalid': _("This field requires only numbers."), 52 'max_digits': _("This field requires 11 digits."), 53 53 } 54 54 django/branches/gis/django/contrib/localflavor/pl/forms.py
r6990 r7768 7 7 from django.newforms import ValidationError 8 8 from django.newforms.fields import Select, RegexField 9 from django.utils.translation import ugettext as _9 from django.utils.translation import ugettext_lazy as _ 10 10 11 11 class PLVoivodeshipSelect(Select): django/branches/gis/django/contrib/localflavor/sk/forms.py
r6990 r7768 4 4 5 5 from django.newforms.fields import Select, RegexField 6 from django.utils.translation import ugettext 6 from django.utils.translation import ugettext_lazy as _ 7 7 8 8 class SKRegionSelect(Select): … … 28 28 """ 29 29 default_error_messages = { 30 'invalid': ugettext(u'Enter a postal code in the format XXXXX or XXX XX.'),30 'invalid': _(u'Enter a postal code in the format XXXXX or XXX XX.'), 31 31 } 32 32 django/branches/gis/django/contrib/localflavor/uk/forms.py
r6990 r7768 7 7 from django.newforms.fields import CharField, Select 8 8 from django.newforms import ValidationError 9 from django.utils.translation import ugettext 9 from django.utils.translation import ugettext_lazy as _ 10 10 11 11 class UKPostcodeField(CharField): … … 19 19 """ 20 20 default_error_messages = { 21 'invalid': ugettext(u'Enter a valid postcode.'),21 'invalid': _(u'Enter a valid postcode.'), 22 22 } 23 23 outcode_pattern = '[A-PR-UWYZ]([0-9]{1,2}|([A-HIK-Y][0-9](|[0-9]|[ABEHMNPRVWXY]))|[0-9][A-HJKSTUW])' django/branches/gis/django/contrib/localflavor/uk/uk_regions.py
r7354 r7768 6 6 Scottish regions: http://en.wikipedia.org/wiki/Regions_and_districts_of_Scotland 7 7 """ 8 from django.utils.translation import ugettext as _8 from django.utils.translation import ugettext_lazy as _ 9 9 10 10 ENGLAND_REGION_CHOICES = ( django/branches/gis/django/contrib/localflavor/us/forms.py
r6990 r7768 6 6 from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES 7 7 from django.utils.encoding import smart_unicode 8 from django.utils.translation import ugettext 8 from django.utils.translation import ugettext_lazy as _ 9 9 import re 10 10 … … 14 14 class USZipCodeField(RegexField): 15 15 default_error_messages = { 16 'invalid': ugettext('Enter a zip code in the format XXXXX or XXXXX-XXXX.'),16 'invalid': _('Enter a zip code in the format XXXXX or XXXXX-XXXX.'), 17 17 } 18 18 … … 52 52 """ 53 53 default_error_messages = { 54 'invalid': ugettext('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'),54 'invalid': _('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'), 55 55 } 56 56 django/branches/gis/django/contrib/redirects/models.py
r6018 r7768 18 18 19 19 class Admin: 20 list_display = ('old_path', 'new_path') 20 21 list_filter = ('site',) 21 22 search_fields = ('old_path', 'new_path') django/branches/gis/django/contrib/sessions/backends/base.py
r7642 r7768 6 6 import time 7 7 from datetime import datetime, timedelta 8 from django.conf import settings9 from django.core.exceptions import SuspiciousOperation10 11 8 try: 12 9 import cPickle as pickle 13 10 except ImportError: 14 11 import pickle 12 13 from django.conf import settings 14 from django.core.exceptions import SuspiciousOperation 15 15 16 16 17 class SessionBase(object): … … 87 88 except: 88 89 return {} 90 91 def update(self, dict_): 92 self._session.update(dict_) 93 self.modified = True 94 95 def has_key(self, key): 96 return self._session.has_key(key) 97 98 def values(self): 99 return self._session.values() 100 101 def iterkeys(self): 102 return self._session.iterkeys() 103 104 def itervalues(self): 105 return self._session.itervalues() 106 107 def iteritems(self): 108 return self._session.iteritems() 89 109 90 110 def _get_new_session_key(self): … … 151 171 def set_expiry(self, value): 152 172 """ 153 Sets a custom expiration for the session. ``value`` can be an integer, a154 Python ``datetime`` or ``timedelta`` object or ``None``.173 Sets a custom expiration for the session. ``value`` can be an integer, 174 a Python ``datetime`` or ``timedelta`` object or ``None``. 155 175 156 176 If ``value`` is an integer, the session will expire after that many django/branches/gis/django/contrib/sessions/backends/cache.py
r7642 r7768 2 2 from django.contrib.sessions.backends.base import SessionBase 3 3 from django.core.cache import cache 4 4 5 5 6 class SessionStore(SessionBase): django/branches/gis/django/contrib/sessions/backends/db.py
r7642 r7768 1 import datetime 2 1 3 from django.conf import settings 2 4 from django.contrib.sessions.models import Session 3 5 from django.contrib.sessions.backends.base import SessionBase 4 6 from django.core.exceptions import SuspiciousOperation 5 import datetime 7 6 8 7 9 class SessionStore(SessionBase): 8 10 """ 9 Implements database session store 11 Implements database session store. 10 12 """ 11 13 def __init__(self, session_key=None): django/branches/gis/django/contrib/sessions/backends/file.py
r7354 r7768 1 1 import os 2 2 import tempfile 3 3 4 from django.conf import settings 4 5 from django.contrib.sessions.backends.base import SessionBase 5 6 from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured 7 6 8 7 9 class SessionStore(SessionBase): … … 16 18 # Make sure the storage path is valid. 17 19 if not os.path.isdir(self.storage_path): 18 raise ImproperlyConfigured( "The session storage path %r doesn't exist. "\19 "Please set your SESSION_FILE_PATH setting "\20 "to an existing directory in which Django "\21 "can store session data." % self.storage_path)20 raise ImproperlyConfigured( 21 "The session storage path %r doesn't exist. Please set your" 22 " SESSION_FILE_PATH setting to an existing directory in which" 23 " Django can store session data." % self.storage_path) 22 24 23 25 self.file_prefix = settings.SESSION_COOKIE_NAME … … 32 34 33 35 # Make sure we're not vulnerable to directory traversal. Session keys 34 # should always be md5s, so they should never contain directory components. 36 # should always be md5s, so they should never contain directory 37 # components. 35 38 if os.path.sep in session_key: 36 raise SuspiciousOperation("Invalid characters (directory components) in session key") 39 raise SuspiciousOperation( 40 "Invalid characters (directory components) in session key") 37 41 38 42 return os.path.join(self.storage_path, self.file_prefix + session_key) django/branches/gis/django/contrib/sessions/middleware.py
r7642 r7768 7 7 TEST_COOKIE_NAME = 'testcookie' 8 8 TEST_COOKIE_VALUE = 'worked' 9 9 10 10 11 class SessionMiddleware(object): … … 41 42 path=settings.SESSION_COOKIE_PATH, 42 43 secure=settings.SESSION_COOKIE_SECURE or None) 43 44 44 return response django/branches/gis/django/contrib/sessions/models.py
r7176 r7768 7 7 from django.conf import settings 8 8 9 9 10 class SessionManager(models.Manager): 10 11 def encode(self, session_dict): 11 "Returns the given session dictionary pickled and encoded as a string." 12 """ 13 Returns the given session dictionary pickled and encoded as a string. 14 """ 12 15 pickled = pickle.dumps(session_dict) 13 16 pickled_md5 = md5.new(pickled + settings.SECRET_KEY).hexdigest() … … 21 24 s.delete() # Clear sessions with no data. 22 25 return s 26 23 27 24 28 class Session(models.Model): … … 39 43 on the Django website). 40 44 """ 41 session_key = models.CharField(_('session key'), max_length=40, primary_key=True) 45 session_key = models.CharField(_('session key'), max_length=40, 46 primary_key=True) 42 47 session_data = models.TextField(_('session data')) 43 48 expire_date = models.DateTimeField(_('expire date')) django/branches/gis/django/contrib/sessions/tests.py
r7642 r7768 90 90 'does not exist' 91 91 92 93 >>> s.get('update key', None) 94 95 # test .update() 96 >>> s.modified = s.accessed = False # Reset to pretend this wasn't accessed previously 97 >>> s.update({'update key':1}) 98 >>> s.accessed, s.modified 99 (True, True) 100 >>> s.get('update key', None) 101 1 102 103 # test .has_key() 104 >>> s.modified = s.accessed = False # Reset to pretend this wasn't accessed previously 105 >>> s.has_key('update key') 106 True 107 >>> s.accessed, s.modified 108 (True, False) 109 110 # test .values() 111 >>> s = SessionBase() 112 >>> s.values() 113 [] 114 >>> s.accessed 115 True 116 >>> s['x'] = 1 117 >>> s.values() 118 [1] 119 120 # test .iterkeys() 121 >>> s.accessed = False 122 >>> i = s.iterkeys() 123 >>> hasattr(i,'__iter__') 124 True 125 >>> s.accessed 126 True 127 >>> list(i) 128 ['x'] 129 130 # test .itervalues() 131 >>> s.accessed = False 132 >>> i = s.itervalues() 133 >>> hasattr(i,'__iter__') 134 True 135 >>> s.accessed 136 True 137 >>> list(i) 138 [1] 139 140 # test .iteritems() 141 >>> s.accessed = False 142 >>> i = s.iteritems() 143 >>> hasattr(i,'__iter__') 144 True 145 >>> s.accessed 146 True 147 >>> list(i) 148 [('x', 1)] 149 150 151 92 152 ######################### 93 153 # Custom session expiry # django/branches/gis/django/contrib/sites/management.py
r4265 r7768 14 14 s = Site(domain="example.com", name="example.com")
