mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-06 09:57:57 +00:00
Update URL formats to be compatible with newer django
This format is supported both on the current 1.8 deployment and on newer versions, so no incompatibilities to worry about.
This commit is contained in:
180
pgweb/urls.py
180
pgweb/urls.py
@ -1,4 +1,4 @@
|
||||
from django.conf.urls import patterns, include, url
|
||||
from django.conf.urls import include, url
|
||||
from django.views.generic import RedirectView
|
||||
|
||||
# Register our save signal handlers
|
||||
@ -9,141 +9,157 @@ register_basic_signal_handlers()
|
||||
from django.contrib import admin
|
||||
admin.autodiscover()
|
||||
|
||||
import pgweb.contributors.views
|
||||
import pgweb.core.views
|
||||
import pgweb.docs.views
|
||||
import pgweb.downloads.views
|
||||
import pgweb.events.views
|
||||
import pgweb.featurematrix.views
|
||||
import pgweb.legacyurl.views
|
||||
import pgweb.lists.views
|
||||
import pgweb.misc.views
|
||||
import pgweb.news.views
|
||||
import pgweb.profserv.views
|
||||
import pgweb.pugs.views
|
||||
import pgweb.quotes.views
|
||||
import pgweb.search.views
|
||||
import pgweb.security.views
|
||||
import pgweb.sponsors.views
|
||||
import pgweb.survey.views
|
||||
|
||||
# dict with all the RSS feeds we can serve
|
||||
from pgweb.core.feeds import VersionFeed
|
||||
from pgweb.news.feeds import NewsFeed
|
||||
from pgweb.events.feeds import EventFeed
|
||||
|
||||
urlpatterns = patterns('',
|
||||
(r'^$', 'pgweb.core.views.home'),
|
||||
(r'^dyncss/(?P<css>base|docs).css$', 'pgweb.core.views.dynamic_css'),
|
||||
urlpatterns = [
|
||||
url(r'^$', pgweb.core.views.home),
|
||||
url(r'^dyncss/(?P<css>base|docs).css$', pgweb.core.views.dynamic_css),
|
||||
|
||||
(r'^about/newsarchive/([^/]+/)?$', 'pgweb.news.views.archive'),
|
||||
(r'^about/news/(\d+)(-.*)?/$', 'pgweb.news.views.item'),
|
||||
(r'^about/news/taglist.json/$', 'pgweb.news.views.taglist_json'),
|
||||
(r'^about/events/$', 'pgweb.events.views.main'),
|
||||
(r'^about/eventarchive/$', 'pgweb.events.views.archive'),
|
||||
(r'^about/eventarchive/training/$', 'pgweb.events.views.trainingarchive'),
|
||||
(r'^about/event/(\d+)(-.*)?/$', 'pgweb.events.views.item'),
|
||||
(r'^about/featurematrix/$', 'pgweb.featurematrix.views.root'),
|
||||
(r'^about/featurematrix/detail/(\d+)/$', 'pgweb.featurematrix.views.detail'),
|
||||
(r'^about/quotesarchive/$', 'pgweb.quotes.views.allquotes'),
|
||||
url(r'^about/newsarchive/([^/]+/)?$', pgweb.news.views.archive),
|
||||
url(r'^about/news/(\d+)(-.*)?/$', pgweb.news.views.item),
|
||||
url(r'^about/news/taglist.json/$', pgweb.news.views.taglist_json),
|
||||
url(r'^about/events/$', pgweb.events.views.main),
|
||||
url(r'^about/eventarchive/$', pgweb.events.views.archive),
|
||||
url(r'^about/eventarchive/training/$', pgweb.events.views.trainingarchive),
|
||||
url(r'^about/event/(\d+)(-.*)?/$', pgweb.events.views.item),
|
||||
url(r'^about/featurematrix/$', pgweb.featurematrix.views.root),
|
||||
url(r'^about/featurematrix/detail/(\d+)/$', pgweb.featurematrix.views.detail),
|
||||
url(r'^about/quotesarchive/$', pgweb.quotes.views.allquotes),
|
||||
|
||||
(r'^ftp/(.*/)?$', 'pgweb.downloads.views.ftpbrowser'),
|
||||
(r'^download/mirrors-ftp/+(.*)$', 'pgweb.downloads.views.mirrorselect'),
|
||||
(r'^download/product-categories/$', 'pgweb.downloads.views.categorylist'),
|
||||
(r'^download/products/(\d+)(-.*)?/$', 'pgweb.downloads.views.productlist'),
|
||||
(r'^applications-v2.xml$', 'pgweb.downloads.views.applications_v2_xml'),
|
||||
(r'^download/uploadftp/', 'pgweb.downloads.views.uploadftp'),
|
||||
(r'^download/uploadyum/', 'pgweb.downloads.views.uploadyum'),
|
||||
(r'^download/js/yum.js', 'pgweb.downloads.views.yum_js'),
|
||||
url(r'^ftp/(.*/)?$', pgweb.downloads.views.ftpbrowser),
|
||||
url(r'^download/mirrors-ftp/+(.*)$', pgweb.downloads.views.mirrorselect),
|
||||
url(r'^download/product-categories/$', pgweb.downloads.views.categorylist),
|
||||
url(r'^download/products/(\d+)(-.*)?/$', pgweb.downloads.views.productlist),
|
||||
url(r'^applications-v2.xml$', pgweb.downloads.views.applications_v2_xml),
|
||||
url(r'^download/uploadftp/', pgweb.downloads.views.uploadftp),
|
||||
url(r'^download/uploadyum/', pgweb.downloads.views.uploadyum),
|
||||
url(r'^download/js/yum.js', pgweb.downloads.views.yum_js),
|
||||
|
||||
(r'^docs/$', 'pgweb.docs.views.root'),
|
||||
(r'^docs/manuals/$', 'pgweb.docs.views.manuals'),
|
||||
(r'^docs/manuals/archive/$', 'pgweb.docs.views.manualarchive'),
|
||||
(r'^docs/(current|devel|\d+(?:\.\d)?)/(static|interactive)/(.*).html?$', 'pgweb.docs.views.docpage'),
|
||||
(r'^docs/(current|devel|\d+(?:\.\d)?)/(static|interactive)/$', 'pgweb.docs.views.docsrootpage'),
|
||||
(r'^docs/(current|devel|\d+(?:\.\d)?)/$', 'pgweb.docs.views.redirect_root'),
|
||||
url(r'^docs/$', pgweb.docs.views.root),
|
||||
url(r'^docs/manuals/$', pgweb.docs.views.manuals),
|
||||
url(r'^docs/manuals/archive/$', pgweb.docs.views.manualarchive),
|
||||
url(r'^docs/(current|devel|\d+(?:\.\d)?)/(static|interactive)/(.*).html?$', pgweb.docs.views.docpage),
|
||||
url(r'^docs/(current|devel|\d+(?:\.\d)?)/(static|interactive)/$', pgweb.docs.views.docsrootpage),
|
||||
url(r'^docs/(current|devel|\d+(?:\.\d)?)/$', pgweb.docs.views.redirect_root),
|
||||
|
||||
(r'^community/$', 'pgweb.core.views.community'),
|
||||
(r'^community/contributors/$', 'pgweb.contributors.views.completelist'),
|
||||
(r'^community/lists/$', RedirectView.as_view(url='/list/', permanent=True)),
|
||||
(r'^community/lists/subscribe/$', RedirectView.as_view(url='https://lists.postgresql.org/', permanent=True)),
|
||||
url(r'^community/$', pgweb.core.views.community),
|
||||
url(r'^community/contributors/$', pgweb.contributors.views.completelist),
|
||||
url(r'^community/lists/$', RedirectView.as_view(url='/list/', permanent=True)),
|
||||
url(r'^community/lists/subscribe/$', RedirectView.as_view(url='https://lists.postgresql.org/', permanent=True)),
|
||||
|
||||
(r'^community/lists/listinfo/$', 'pgweb.lists.views.listinfo'),
|
||||
(r'^community/lists/activate/$', 'pgweb.lists.views.activate'),
|
||||
(r'^community/survey/vote/(\d+)/$', 'pgweb.survey.views.vote'),
|
||||
(r'^community/survey[/\.](\d+)(-.*)?/$', 'pgweb.survey.views.results'),
|
||||
(r'^community/user-groups/$', 'pgweb.pugs.views.index'),
|
||||
url(r'^community/lists/listinfo/$', pgweb.lists.views.listinfo),
|
||||
url(r'^community/lists/activate/$', pgweb.lists.views.activate),
|
||||
url(r'^community/survey/vote/(\d+)/$', pgweb.survey.views.vote),
|
||||
url(r'^community/survey[/\.](\d+)(-.*)?/$', pgweb.survey.views.results),
|
||||
url(r'^community/user-groups/$', pgweb.pugs.views.index),
|
||||
|
||||
(r'^search/$', 'pgweb.search.views.search'),
|
||||
url(r'^search/$', pgweb.search.views.search),
|
||||
|
||||
(r'^support/security/$', 'pgweb.security.views.index'),
|
||||
(r'^support/security/([\d\.]+)/$', 'pgweb.security.views.version'),
|
||||
(r'^support/security_archive/$', RedirectView.as_view(url='/support/security/', permanent=True)),
|
||||
url(r'^support/security/$', pgweb.security.views.index),
|
||||
url(r'^support/security/([\d\.]+)/$', pgweb.security.views.version),
|
||||
url(r'^support/security_archive/$', RedirectView.as_view(url='/support/security/', permanent=True)),
|
||||
|
||||
(r'^support/professional_(support|hosting)/$', 'pgweb.profserv.views.root'),
|
||||
(r'^support/professional_(support|hosting)[/_](.*)/$', 'pgweb.profserv.views.region'),
|
||||
(r'^account/submitbug/$', 'pgweb.misc.views.submitbug'),
|
||||
(r'^support/submitbug/$', RedirectView.as_view(url='/account/submitbug/', permanent=True)),
|
||||
(r'^support/versioning/$', 'pgweb.core.views.versions'),
|
||||
url(r'^support/professional_(support|hosting)/$', pgweb.profserv.views.root),
|
||||
url(r'^support/professional_(support|hosting)[/_](.*)/$', pgweb.profserv.views.region),
|
||||
url(r'^account/submitbug/$', pgweb.misc.views.submitbug),
|
||||
url(r'^support/submitbug/$', RedirectView.as_view(url='/account/submitbug/', permanent=True)),
|
||||
url(r'^support/versioning/$', pgweb.core.views.versions),
|
||||
|
||||
(r'^about/sponsors/$', 'pgweb.sponsors.views.sponsors'),
|
||||
(r'^about/servers/$', 'pgweb.sponsors.views.servers'),
|
||||
url(r'^about/sponsors/$', pgweb.sponsors.views.sponsors),
|
||||
url(r'^about/servers/$', pgweb.sponsors.views.servers),
|
||||
|
||||
(r'^robots.txt$', 'pgweb.core.views.robots'),
|
||||
url(r'^robots.txt$', pgweb.core.views.robots),
|
||||
|
||||
###
|
||||
# RSS feeds
|
||||
###
|
||||
(r'^versions.rss$', VersionFeed()),
|
||||
(r'^news(/(?P<tagurl>[^/]+))?.rss$', NewsFeed()),
|
||||
(r'^events.rss$', EventFeed()),
|
||||
url(r'^versions.rss$', VersionFeed()),
|
||||
url(r'^news(/(?P<tagurl>[^/]+))?.rss$', NewsFeed()),
|
||||
url(r'^events.rss$', EventFeed()),
|
||||
|
||||
###
|
||||
# Special sections
|
||||
###
|
||||
(r'^account/', include('pgweb.account.urls')),
|
||||
url(r'^account/', include('pgweb.account.urls')),
|
||||
|
||||
###
|
||||
# Sitemap (FIXME: support for >50k urls!)
|
||||
###
|
||||
(r'^sitemap.xml', 'pgweb.core.views.sitemap'),
|
||||
(r'^sitemap_internal.xml', 'pgweb.core.views.sitemap_internal'),
|
||||
url(r'^sitemap.xml', pgweb.core.views.sitemap),
|
||||
url(r'^sitemap_internal.xml', pgweb.core.views.sitemap_internal),
|
||||
|
||||
###
|
||||
# Workaround for broken links pushed in press release
|
||||
###
|
||||
(r'^downloads/$', RedirectView.as_view(url='/download/', permanent=True)),
|
||||
url(r'^downloads/$', RedirectView.as_view(url='/download/', permanent=True)),
|
||||
|
||||
###
|
||||
# Legacy URLs from the old website, that are likely to be used from other
|
||||
# sites or press releases or such
|
||||
###
|
||||
(r'^about/press/presskit(\d+)\.html\.(\w+)$', 'pgweb.legacyurl.views.presskit'),
|
||||
(r'^about/news\.(\d+)$', 'pgweb.legacyurl.views.news'),
|
||||
(r'^about/event\.(\d+)$', 'pgweb.legacyurl.views.event'),
|
||||
(r'^community/signup', 'pgweb.legacyurl.views.signup'),
|
||||
url(r'^about/press/presskit(\d+)\.html\.(\w+)$', pgweb.legacyurl.views.presskit),
|
||||
url(r'^about/news\.(\d+)$', pgweb.legacyurl.views.news),
|
||||
url(r'^about/event\.(\d+)$', pgweb.legacyurl.views.event),
|
||||
url(r'^community/signup', pgweb.legacyurl.views.signup),
|
||||
|
||||
###
|
||||
# Images that are used from other community sites
|
||||
###
|
||||
(r'^layout/images/(?P<f>[a-z0-9_\.]+)$', RedirectView.as_view(url='/media/img/layout/%(f)s', permanent=True)),
|
||||
url(r'^layout/images/(?P<f>[a-z0-9_\.]+)$', RedirectView.as_view(url='/media/img/layout/%(f)s', permanent=True)),
|
||||
###
|
||||
# These URLs were legacy even on the old site...
|
||||
###
|
||||
(r'^developer/sourcecode/$', RedirectView.as_view(url='/developer/coding/', permanent=True)),
|
||||
(r'^developer/bios/$', RedirectView.as_view(url='/community/contributors/', permanent=True)),
|
||||
(r'^docs/techdocs.*', RedirectView.as_view(url='https://wiki.postgresql.org/', permanent=True)),
|
||||
(r'^docs/faqs.FAQ.html$', RedirectView.as_view(url='https://wiki.postgresql.org/wiki/FAQ', permanent=True)),
|
||||
(r'^docs/faqs.FAQ_DEV.*', RedirectView.as_view(url='https://wiki.postgresql.org/wiki/Development_information', permanent=True)),
|
||||
(r'^docs/faqs.TODO.*', RedirectView.as_view(url='https://wiki.postgresql.org/wiki/Todo', permanent=True)),
|
||||
(r'^about/license/$', RedirectView.as_view(url='/about/licence', permanent=True)),
|
||||
url(r'^developer/sourcecode/$', RedirectView.as_view(url='/developer/coding/', permanent=True)),
|
||||
url(r'^developer/bios/$', RedirectView.as_view(url='/community/contributors/', permanent=True)),
|
||||
url(r'^docs/techdocs.*', RedirectView.as_view(url='https://wiki.postgresql.org/', permanent=True)),
|
||||
url(r'^docs/faqs.FAQ.html$', RedirectView.as_view(url='https://wiki.postgresql.org/wiki/FAQ', permanent=True)),
|
||||
url(r'^docs/faqs.FAQ_DEV.*', RedirectView.as_view(url='https://wiki.postgresql.org/wiki/Development_information', permanent=True)),
|
||||
url(r'^docs/faqs.TODO.*', RedirectView.as_view(url='https://wiki.postgresql.org/wiki/Todo', permanent=True)),
|
||||
url(r'^about/license/$', RedirectView.as_view(url='/about/licence', permanent=True)),
|
||||
|
||||
###
|
||||
# Links included in emails on the lists (do we need to check this for XSS?)
|
||||
###
|
||||
(r'^mailpref/([a-z0-9_-]+)/$', 'pgweb.legacyurl.views.mailpref'),
|
||||
url(r'^mailpref/([a-z0-9_-]+)/$', pgweb.legacyurl.views.mailpref),
|
||||
|
||||
# Some basic information about the connection (for debugging purposes)
|
||||
(r'^system_information/$', 'pgweb.core.views.system_information'),
|
||||
url(r'^system_information/$', pgweb.core.views.system_information),
|
||||
# Sync timestamp, for automirror
|
||||
(r'^web_sync_timestamp$', 'pgweb.core.views.sync_timestamp'),
|
||||
url(r'^web_sync_timestamp$', pgweb.core.views.sync_timestamp),
|
||||
|
||||
# API endpoints
|
||||
(r'^api/varnish/purge/$', 'pgweb.core.views.api_varnish_purge'),
|
||||
url(r'^api/varnish/purge/$', pgweb.core.views.api_varnish_purge),
|
||||
|
||||
# Override some URLs in admin, to provide our own pages
|
||||
(r'^admin/pending/$', 'pgweb.core.views.admin_pending'),
|
||||
(r'^admin/purge/$', 'pgweb.core.views.admin_purge'),
|
||||
(r'^admin/mergeorg/$', 'pgweb.core.views.admin_mergeorg'),
|
||||
url(r'^admin/pending/$', pgweb.core.views.admin_pending),
|
||||
url(r'^admin/purge/$', pgweb.core.views.admin_purge),
|
||||
url(r'^admin/mergeorg/$', pgweb.core.views.admin_mergeorg),
|
||||
|
||||
# We use selectable only for /admin/ for now, so put it there to avoid caching issues
|
||||
(r'^admin/selectable/', include('selectable.urls')),
|
||||
url(r'^admin/selectable/', include('selectable.urls')),
|
||||
|
||||
# Uncomment the next line to enable the admin:
|
||||
(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
|
||||
# This should not happen in production - serve by the webserver natively!
|
||||
url(r'^(favicon.ico)$', 'django.views.static.serve', {
|
||||
@ -151,11 +167,11 @@ urlpatterns = patterns('',
|
||||
}),
|
||||
|
||||
# Crash testing URL :-)
|
||||
(r'^crashtest/$', 'pgweb.misc.views.crashtest'),
|
||||
url(r'^crashtest/$', pgweb.misc.views.crashtest),
|
||||
|
||||
# If we're getting an attempt for something ending in HTML, just get rid of it
|
||||
(r'^(.*)\.html$', 'pgweb.legacyurl.views.html_extension'),
|
||||
url(r'^(.*)\.html$', pgweb.legacyurl.views.html_extension),
|
||||
|
||||
# Fallback for static pages, must be at the bottom
|
||||
(r'^(.*)/$', 'pgweb.core.views.fallback'),
|
||||
)
|
||||
url(r'^(.*)/$', pgweb.core.views.fallback),
|
||||
]
|
||||
|
Reference in New Issue
Block a user