{ "info": { "author": "edX", "author_email": "oscm@edx.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet" ], "description": "Part of `edX code `_.\n\nedx-django-sites-extensions |Travis|_ |Codecov|_\n=================================================\n.. |Travis| image:: https://travis-ci.org/edx/edx-django-sites-extensions.svg?branch=master\n.. _Travis: https://travis-ci.org/edx/edx-django-sites-extensions?branch=master\n\n.. |Codecov| image:: http://codecov.io/github/edx/edx-django-sites-extensions/coverage.svg?branch=master\n.. _Codecov: http://codecov.io/github/edx/edx-django-sites-extensions?branch=master\n\n\nThis package includes extensions to the Django \"sites\" framework\nused by Open edX Django IDAs (independently deployable applications).\n\nOverview\n--------\n\nIn order to support multitenancy in an IDA, it is helpful to make use of\nthe `Django \"sites\" framework `_.\n\nOne shortcoming of the Django \"sites\" framework is the fact that the CurrentSiteMiddleware\nprovided by the framework that adds the current site to incoming requests does not allow\nyou to fall back to a site that you can configure in settings in case the current site\ncannot be determined from the host of the incoming request.\n\nThe Django app provided by this package overcomes this issue by monkey patching the\ndjango.contrib.sites.models.SiteManager.get_current() function which is called by the\nCurrentSiteMiddleware to determine the current site. The patched version of this function\nwill first try to determine the current site by checking the host of the incoming request\nand attempting to match a site by domain. If a site cannot be found this way, it will fall\nback to the default site configured by setting the SITE_ID setting.\n\nAnother issue with the Django \"sites\" framework is that it uses an in-memory cache of Site\nmodels which makes it difficult to update models associated with the Site model via Django\nadmin and have those updates be reflected across all Python processes in a mulit-process\napplication environment.\n\nAgain the Django app provided by this package monkey patches the private SiteManager query\nfunctions that implement the in-memory caching mechanism to add a configurable timeout to\nthe Site cache allowing model updates to be reflected across all processes after the specified\ntimeout.\n\nTo enable this functionality in your Django project::\n\nInstall this package in your python environment::\n\n $ pip install edx-django-sites-extensions\n\nAdd :code:`django.contrib.sites.middleware.CurrentSiteMiddleware` to your :code:`MIDDLEWARE_CLASSES` list.\n\nSet the :code:`SITE_ID` setting::\n\n SITE_ID = 1\n\nThis package also provides a mechanism for settings up URL redirects for your application.\nIt makes use of the Django redirects app and provides middleware which will check for\nRedirect models whose old_path field matches the path of the incoming request and redirects\nthose requests to the new_path of the Redirect model.\n\nTo enable this functionality in your Django project::\n\nInstall this package in your python environment::\n\n $ pip install edx-django-sites-extensions\n\nAdd :code:`django_sites_extensions.middleware.RedirectMiddleware` to your :code:`MIDDLEWARE_CLASSES` list.\n\nYou can then use Django admin to create Redirect models.\n\nDocumentation\n-------------\n\nThe docs for edx-django-sites-extensions are on Read the Docs: https://edx-django-sites-extensions.readthedocs.org.\n\nLicense\n-------\n\nThe code in this repository is licensed under LICENSE_TYPE unless\notherwise noted.\n\nPlease see ``LICENSE.txt`` for details.\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\n\nPlease read `How To Contribute `_ for details.\n\nEven though they were written with ``edx-platform`` in mind, the guidelines\nshould be followed for Open edX code in general.\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@edx.org.\n\nMailing List and IRC Channel\n----------------------------\n\nYou can discuss this code in the `edx-code Google Group `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/edx/edx-django-sites-extensions", "keywords": "Django sites edx", "license": "AGPL", "maintainer": "", "maintainer_email": "", "name": "edx-django-sites-extensions", "package_url": "https://pypi.org/project/edx-django-sites-extensions/", "platform": "", "project_url": "https://pypi.org/project/edx-django-sites-extensions/", "project_urls": { "Homepage": "https://github.com/edx/edx-django-sites-extensions" }, "release_url": "https://pypi.org/project/edx-django-sites-extensions/2.4.0/", "requires_dist": [ "django (<2.0,>=1.8)" ], "requires_python": "", "summary": "Custom extensions for the Django sites framework", "version": "2.4.0" }, "last_serial": 4051760, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "38abd36dece02f8ef0f9356b7043362c", "sha256": "d30c0f2913ad437b71c455670e3c820c83cfc0126576d12b97ac4d0cd1f3f98d" }, "downloads": -1, "filename": "edx_django_sites_extensions-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "38abd36dece02f8ef0f9356b7043362c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10689, "upload_time": "2016-03-21T19:24:12", "url": "https://files.pythonhosted.org/packages/63/59/63d919f9baf535cc63b6ff28c3c0df841416202a6531296a50136b43f7c0/edx_django_sites_extensions-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ec1cf0dba57fae79ed138c500844ac3", "sha256": "f750d1f61ec5dbd59f509132266115a195aada9af5d3bfaf7abf96365c5e535f" }, "downloads": -1, "filename": "edx-django-sites-extensions-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0ec1cf0dba57fae79ed138c500844ac3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7076, "upload_time": "2016-03-21T19:24:35", "url": "https://files.pythonhosted.org/packages/52/5a/770502f82bf0ed77a433c470310c5cfdafcfb9de0b0a362b7ad4d454712f/edx-django-sites-extensions-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "7f73eb54e0ec2df42fe58ba303af75eb", "sha256": "a9e82979c6c822fd6bba7e08b1cf4dbc6335e05f7ec39bc3d343cf062038eb3c" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7f73eb54e0ec2df42fe58ba303af75eb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13037, "upload_time": "2016-05-27T21:04:04", "url": "https://files.pythonhosted.org/packages/f4/c3/923ff10f6ea4f9fcc04aae77b2ad7bb597737671dae1dee2ffd164d3a167/edx_django_sites_extensions-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42669b24706e4d73f26d27ae57e70800", "sha256": "81bce9cffb38fa6247f5f89a40edbb2b87d2f4f3761db4c4c4b71a8dd3d85671" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.0.0.tar.gz", "has_sig": false, "md5_digest": "42669b24706e4d73f26d27ae57e70800", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8183, "upload_time": "2016-05-27T21:04:08", "url": "https://files.pythonhosted.org/packages/9a/4f/baeb49964e3c25d4cc4b95a81728bccbff9f36a64c4c9ea89b2e7a2d5f88/edx-django-sites-extensions-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "68c7e735593109c1890116b5a4eddb77", "sha256": "a197f47e2fd3f77cfa6dcd4b01db8cc3f22f21eef83020154f5c9cab3e235388" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "68c7e735593109c1890116b5a4eddb77", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13167, "upload_time": "2016-05-31T16:29:48", "url": "https://files.pythonhosted.org/packages/2a/1d/a12c6367abaa227a2e9d15e490a10f53aa7b1da58fcf4b656b53da5a10b6/edx_django_sites_extensions-2.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4e94c8f5f254cc9dbfd884bb006d7ae", "sha256": "0b72c584394b0f47a9d81701eb77109f5ff99e9dc4bdef448ad4312e887beee7" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.0.1.tar.gz", "has_sig": false, "md5_digest": "f4e94c8f5f254cc9dbfd884bb006d7ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8250, "upload_time": "2016-05-31T16:30:09", "url": "https://files.pythonhosted.org/packages/32/a9/00ed631d01b988e08aca3e3ca15df090270a03e04a6cec88fc62ca3ca6a9/edx-django-sites-extensions-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "0a6da3511ea91c3382b71244ebac1025", "sha256": "fcb5afeb9dc5ca68b95960b7654d6cf9f1646a5311e2adbcabadab10817148c0" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0a6da3511ea91c3382b71244ebac1025", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14236, "upload_time": "2016-09-01T17:17:50", "url": "https://files.pythonhosted.org/packages/0c/a9/77183655f7f1ca72499cae2dbf9f0fa299bc485d1cfdf892e63412a59547/edx_django_sites_extensions-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fceee0a574ee80e2328e62ba62e9d125", "sha256": "cead801717c7c14a5611ba488b774f429c56a8ff38c1a381a6150cdadc712179" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.1.0.tar.gz", "has_sig": false, "md5_digest": "fceee0a574ee80e2328e62ba62e9d125", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9092, "upload_time": "2016-09-01T17:17:52", "url": "https://files.pythonhosted.org/packages/5b/01/e39cfe75eb04d730e262f446f5669252ae1ed984e8bbe874b7be72cafd3b/edx-django-sites-extensions-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "7e5ac0dbfade9a8ac0bcc80eb36e52f2", "sha256": "7fc0c56ee1cf06f86842f2e35d6192c0cdd1d875dff55bbd05580f8e0770fdd4" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "7e5ac0dbfade9a8ac0bcc80eb36e52f2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14246, "upload_time": "2016-09-01T20:36:35", "url": "https://files.pythonhosted.org/packages/79/ea/fd4e61a05e8e6e6d29abb2991b77beb0c737c4ebb40fe4d2340e5ff7ec54/edx_django_sites_extensions-2.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc918f9ecd0dbe4c2fcb0bf6d5749345", "sha256": "b04f48ed9f5c77eac86ca62b4b4bfc53326940822189dc969a2aa425a32d7912" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.1.1.tar.gz", "has_sig": false, "md5_digest": "dc918f9ecd0dbe4c2fcb0bf6d5749345", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9104, "upload_time": "2016-09-01T20:36:37", "url": "https://files.pythonhosted.org/packages/78/81/aebfb109f6c819ea8e97405196fb0139c1e59637789c2f62ffb2f34ffadc/edx-django-sites-extensions-2.1.1.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "34e06e6ece2ce6b9940320d4d99a759f", "sha256": "7a1abd16372a970e163bdb92f5400a0644d76b5a3f4212f5ce83894b8a22353c" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "34e06e6ece2ce6b9940320d4d99a759f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12257, "upload_time": "2016-11-02T20:24:16", "url": "https://files.pythonhosted.org/packages/88/6b/377d92957879c861b347bd6877433245b8f026498b12fe941a80334c8e88/edx_django_sites_extensions-2.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab3e47072cb519442372e2501d26c3e7", "sha256": "94b76f9002c3ceb4cc102741f59882ed4848eeb53b3a3cdd89bf03547ca42cce" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.2.0.tar.gz", "has_sig": false, "md5_digest": "ab3e47072cb519442372e2501d26c3e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7938, "upload_time": "2016-11-02T20:24:18", "url": "https://files.pythonhosted.org/packages/f0/57/96259bc4dedecf7efcd7a466a2ff6aacac0dddbf5789d75c790d96ae8de5/edx-django-sites-extensions-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "8aa94194cc8c121eb2747572834a237e", "sha256": "cd6b69f924be909144babe98f12e1f8e217f5680f87d9825be617230f79e2387" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8aa94194cc8c121eb2747572834a237e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12454, "upload_time": "2017-04-19T16:29:01", "url": "https://files.pythonhosted.org/packages/73/c2/7963b2755c1f2f3a8c10184036aec36bb257de31f7e602037c7b911a804f/edx_django_sites_extensions-2.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf846421bca24bcbcf5d0d14370b0ed8", "sha256": "2a75f2eb55673990ba0e2e03de0e9d8e685c3e287e544c6c412d8134cfb8a00c" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.3.0.tar.gz", "has_sig": false, "md5_digest": "cf846421bca24bcbcf5d0d14370b0ed8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8097, "upload_time": "2017-04-19T16:29:02", "url": "https://files.pythonhosted.org/packages/89/42/014976e606a6630711822eb0f1aed8e3561f9a6213fe270a61de63ab2f8e/edx-django-sites-extensions-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "8f51a09f958a603508aa09677bb046ec", "sha256": "73afdab8fe9e9276e4a8e63b6dbce4321619e6c44cf3f9c3f34ed093c19ade02" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8f51a09f958a603508aa09677bb046ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9041, "upload_time": "2018-03-22T18:36:12", "url": "https://files.pythonhosted.org/packages/a7/90/e8fdfd897720e94cd2d14ce667babe0400b1b22dad0538f31c7f6d2ae4b6/edx_django_sites_extensions-2.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "070d5cecc4afef53d03aa66acb8a3c9c", "sha256": "5ccc89eb63cacb033e7fd9f9949b43b08ffa8570ab775034b9232f68550dbaaa" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.3.1.tar.gz", "has_sig": false, "md5_digest": "070d5cecc4afef53d03aa66acb8a3c9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5063, "upload_time": "2018-03-22T18:36:14", "url": "https://files.pythonhosted.org/packages/8e/8d/0d9c1076e95f6e7514abdf416b454fe1681801d234cc9c50b32622092717/edx-django-sites-extensions-2.3.1.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "b1823197094ecc6ac51d071d0f633037", "sha256": "c48ac86773dd33db500592952af87243692542960208010bb9e324fc4a81a38e" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1823197094ecc6ac51d071d0f633037", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6531, "upload_time": "2018-07-11T17:38:56", "url": "https://files.pythonhosted.org/packages/1b/37/e8276234e1943abf3eca65b9dfb0ac199c4e77928697f0c61e19134e6deb/edx_django_sites_extensions-2.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7d9c5ca84dd88830b006e098c3ce5e9", "sha256": "639ccddbf07d9e927c22f05bf798d35a45c3d3151da44d76b9ab864e79315bcd" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.4.0.tar.gz", "has_sig": false, "md5_digest": "c7d9c5ca84dd88830b006e098c3ce5e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5154, "upload_time": "2018-07-11T17:38:57", "url": "https://files.pythonhosted.org/packages/ac/8c/9da00668835b4e22647d1692ad2f5794493654e0b15692ac26e9e656d613/edx-django-sites-extensions-2.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b1823197094ecc6ac51d071d0f633037", "sha256": "c48ac86773dd33db500592952af87243692542960208010bb9e324fc4a81a38e" }, "downloads": -1, "filename": "edx_django_sites_extensions-2.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1823197094ecc6ac51d071d0f633037", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6531, "upload_time": "2018-07-11T17:38:56", "url": "https://files.pythonhosted.org/packages/1b/37/e8276234e1943abf3eca65b9dfb0ac199c4e77928697f0c61e19134e6deb/edx_django_sites_extensions-2.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7d9c5ca84dd88830b006e098c3ce5e9", "sha256": "639ccddbf07d9e927c22f05bf798d35a45c3d3151da44d76b9ab864e79315bcd" }, "downloads": -1, "filename": "edx-django-sites-extensions-2.4.0.tar.gz", "has_sig": false, "md5_digest": "c7d9c5ca84dd88830b006e098c3ce5e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5154, "upload_time": "2018-07-11T17:38:57", "url": "https://files.pythonhosted.org/packages/ac/8c/9da00668835b4e22647d1692ad2f5794493654e0b15692ac26e9e656d613/edx-django-sites-extensions-2.4.0.tar.gz" } ] }