Commits

mtre...@bcc190cf-cafb-0310-a4f2-bffc1f526a37  committed 6a2d383

unicode: Merged from trunk up to [5600].

  • Participants
  • Parent commits a3d7c13
  • Branches unicode

Comments (0)

Files changed (7)

     Joe Topjian <http://joe.terrarum.net/geek/code/python/django/>
     torne-django@wolfpuppy.org.uk
     Karen Tracey <graybark@bellsouth.net>
+    tstromberg@google.com
     Makoto Tsuyuki <mtsuyuki@gmail.com>
     tt@gurgle.no
     Amit Upadhyay

File django/contrib/sessions/middleware.py

         return self._session.get(key, default)
 
     def pop(self, key, *args):
+        self.modified = self.modified or key in self._session 
         return self._session.pop(key, *args)
 
     def set_test_cookie(self):

File django/contrib/sessions/tests.py

 >>> s._session_cache = {}
 >>> s._session_cache['some key'] = 'exists'
 
+>>> s.accessed
+False
+>>> s.modified
+False
+
+>>> s.pop('non existant key', 'does not exist')
+'does not exist'
+>>> s.accessed
+True
+>>> s.modified
+False
+
 >>> s.pop('some key')
 'exists'
+>>> s.accessed
+True
+>>> s.modified
+True
 
 >>> s.pop('some key', 'does not exist')
 'does not exist'

File django/core/management.py

         sys.stderr.write(style.ERROR("Error: '%r' conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name.\n" % project_name))
         sys.exit(1)
     _start_helper('project', project_name, directory)
+
     # Create a random SECRET_KEY hash, and put it in the main settings.
     main_settings_file = os.path.join(directory, project_name, 'settings.py')
     settings_contents = open(main_settings_file, 'r').read()
+
+    # If settings.py was copied from a read-only source, make it writeable.
+    if not os.access(main_settings_file, os.W_OK):
+        os.chmod(main_settings_file, 0600)
+
     fp = open(main_settings_file, 'w')
     secret_key = ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)])
     settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents)

File django/views/defaults.py

     # if necessary.
 
     # If the object actually defines a domain, we're done.
-    if absurl.startswith('http://'):
+    if absurl.startswith('http://') or absurl.startswith('https://'):
         return http.HttpResponseRedirect(absurl)
 
     object_domain = None
     # If all that malarkey found an object domain, use it; otherwise fall back
     # to whatever get_absolute_url() returned.
     if object_domain is not None:
-        return http.HttpResponseRedirect('http://%s%s' % (object_domain, absurl))
+        protocol = request.is_secure() and 'https' or 'http'
+        return http.HttpResponseRedirect('%s://%s%s' % (protocol, object_domain, absurl))
     else:
         return http.HttpResponseRedirect(absurl)
 

File docs/contributing.txt

 
 These guidelines regulate the format of our ReST documentation:
 
-	* In section titles, capitalize only initial words and proper nouns.
+    * In section titles, capitalize only initial words and proper nouns.
 
-	* Wrap the documentation at 80 characters wide, unless a code example
-	  is significantly less readable when split over two lines, or for another
-	  good reason.
+    * Wrap the documentation at 80 characters wide, unless a code example
+      is significantly less readable when split over two lines, or for another
+      good reason.
 
 Commonly used terms
 -------------------
 Here are some style guidelines on commonly used terms throughout the
 documentation:
 
-	* **Django** -- when referring to the framework, capitalize Django. It is
-	  lowercase only in Python code and in the djangoproject.com logo.
+    * **Django** -- when referring to the framework, capitalize Django. It is
+      lowercase only in Python code and in the djangoproject.com logo.
 
-	* **e-mail** -- it has a hyphen.
+    * **e-mail** -- it has a hyphen.
 
-	* **MySQL**
+    * **MySQL**
 
-	* **PostgreSQL**
+    * **PostgreSQL**
 
-	* **Python** -- when referring to the language, capitalize Python.
+    * **Python** -- when referring to the language, capitalize Python.
 
-	* **realize**, **customize**, **initialize**, etc. -- use the American
-	  "ize" suffix, not "ise."
+    * **realize**, **customize**, **initialize**, etc. -- use the American
+      "ize" suffix, not "ise."
 
-	* **SQLite**
+    * **SQLite**
 
-	* **subclass** -- it's a single word without a hyphen, both as a verb
-	  ("subclass that model") and as a noun ("create a subclass").
+    * **subclass** -- it's a single word without a hyphen, both as a verb
+      ("subclass that model") and as a noun ("create a subclass").
 
-	* **Web**, **World Wide Web**, **the Web** -- note Web is always
-	  capitalized when referring to the World Wide Web.
+    * **Web**, **World Wide Web**, **the Web** -- note Web is always
+      capitalized when referring to the World Wide Web.
 
     * **Web site** -- use two words, with Web capitalized.
 
 Django-specific terminology
 ---------------------------
 
-	* **model** -- it's not capitalized.
+    * **model** -- it's not capitalized.
 
-	* **template** -- it's not capitalized.
+    * **template** -- it's not capitalized.
 
-	* **URLconf** -- use three capitalized letters, with no space before
-	  "conf."
+    * **URLconf** -- use three capitalized letters, with no space before
+      "conf."
 
-	* **view** -- it's not capitalized.
+    * **view** -- it's not capitalized.
 
 Committing code
 ===============

File docs/templates_python.txt

 
     def some_view(request):
         # ...
-        return RequestContext(request, {
+        c = RequestContext(request, {
             'foo': 'bar',
         }, [ip_address_processor])
+        return t.render(c)
 
 Note::
     If you're using Django's ``render_to_response()`` shortcut to populate a
 
     @template.stringfilter
     def lower(value):
-    	return value.lower()
+        return value.lower()
 
 Writing custom template tags
 ----------------------------