﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
14386	Standardize Site/RequestSite access; looser coupling of sites framework in contrib	Gabriel Hurley	Gabriel Hurley	"A few days ago I started [http://groups.google.com/group/django-developers/browse_frm/thread/0584c60ba9969052 this thread on the Django Developers list] in order to solve a number of tickets at the same time. The gist:

All of these tickets relate to needing access to the current domain, whether that's through a Site instance, or through a RequestSite instance. To facilitate this, the provided patch adds a utility function, `django.contrib.sites.models.get_current_site` which takes a request as an argument and returns either a Site or RequestSite instance.

Using that utility function, a lot of repetitious code could be removed and streamlined, and several tickets were trivial to resolve.

Included in this patch:

 * Adds the `django.contrib.sites.models.get_current_site` function.
 * Provides a note in the contrib.sites docs regarding the function.
 * Converts to contrib.sites tests from doctests to unit tests and adds a test for `get_current_site`
 * Resolves #8960 by allowing `django.contrib.contenttypes.views.shortcut` to use either a Site or RequesSite object.
 * Converts contrib.contenttypes tests from doctests to unit tests and adds a test for #8960.
 * Resolves #10235 and #10909 by using `get_current_site` in the Sitemaps framework.
 * Adds test case for #10235/#10909.
 * Updates `django.contrib.syndication.views` to use `get_current_site.
 * Updates `django.contrib.gis.sitemaps.views` to use `get_current_site` as per #10608.
 * Updates `django.contrib.auth.views.login` to use `get_current_site`.

The patch passes the full test suite under WinXP/Py2.6/SQLite.

This patch would completely fix #8960, #10235, and #10909. The remainder of #10608 is actually invalid, because the remaining places where contrib apps rely on contrib.sites the model has a direct relation to Site, or there is no way to access a request object to use RequestSite. Any further decoupling in contrib would require backwards-incompatible rewrites."		closed	Contrib apps	dev		fixed			Unreviewed	1	0	0	0	0	0
