From 7b969772cc9f280255ef51d55f1e1ed9123af1fd Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 13 Dec 2010 13:58:40 -0600 Subject: Add a mirror status JSON view Requested in FS#21144. This should provide most if not all of the data that was provided on the archlinux.de website, although there are some differences in what is returned to the user. It is nearly the same data as that provided in the HTML view, the difference being things are a bit more machine-friendly and the list is not split into good and bad portions. Signed-off-by: Dan McGee --- urls.py | 1 + 1 file changed, 1 insertion(+) (limited to 'urls.py') diff --git a/urls.py b/urls.py index 5c792035..45dc8065 100644 --- a/urls.py +++ b/urls.py @@ -73,6 +73,7 @@ (r'^mirrors/$', 'mirrors.views.mirrors', {}, 'mirrors-list'), (r'^mirrors/status/$', 'mirrors.views.status', {}, 'mirror-status'), + (r'^mirrors/status/json/$', 'mirrors.views.status_json', {}, 'mirror-status-json'), (r'^mirrors/(?P[\.\-\w]+)/$', 'mirrors.views.mirror_details'), (r'^mirrorlist/$', 'mirrors.views.generate_mirrorlist', {}, 'mirrorlist'), -- cgit v1.2.3-54-g00ecf From d22c970f09fccdaefaa44ef71170a077c80bdc59 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 13 Dec 2010 14:35:30 -0600 Subject: Split urls.py up by view prefix This makes things a lot cleaner and easier to read; we were getting quite clunky. It also sets the stage for url inclusion rather than one base urls.py file. Signed-off-by: Dan McGee --- urls.py | 144 ++++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 81 insertions(+), 63 deletions(-) (limited to 'urls.py') diff --git a/urls.py b/urls.py index 45dc8065..77bf8c1b 100644 --- a/urls.py +++ b/urls.py @@ -17,79 +17,93 @@ admin.autodiscover() -urlpatterns = patterns('', - (r'^packages/flaghelp/$', 'packages.views.flaghelp'), - (r'^packages/signoffs/$', 'packages.views.signoffs'), +urlpatterns = patterns('packages.views', + (r'^packages/flaghelp/$', 'flaghelp'), + (r'^packages/signoffs/$', 'signoffs'), (r'^packages/signoff_package/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', - 'packages.views.signoff_package'), - (r'^packages/update/$', 'packages.views.update'), + 'signoff_package'), + (r'^packages/update/$', 'update'), # Preference is for the packages/ url below, but search is kept # because other projects link to it - (r'^packages/search/$', 'packages.views.search'), - (r'^packages/search/(?P\d+)/$', 'packages.views.search'), - (r'^packages/differences/$', 'packages.views.arch_differences'), - (r'^packages/$', 'packages.views.search'), - (r'^packages/(?P\d+)/$', 'packages.views.search'), + (r'^packages/search/$', 'search'), + (r'^packages/search/(?P\d+)/$', 'search'), + (r'^packages/$', 'search'), + (r'^packages/(?P\d+)/$', 'search'), + + (r'^packages/differences/$', 'arch_differences'), (r'^packages/(?P[A-z0-9\-+.]+)/$', - 'packages.views.details'), + 'details'), (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9\-+.]+)/$', - 'packages.views.details'), + 'details'), (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', - 'packages.views.details'), + 'details'), (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/files/$', - 'packages.views.files'), + 'files'), (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/maintainer/$', - 'packages.views.getmaintainer'), + 'getmaintainer'), (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/flag/$', - 'packages.views.flag'), + 'flag'), (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/unflag/$', - 'packages.views.unflag'), + 'unflag'), (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/download/$', - 'packages.views.download'), + 'download'), - (r'^groups/$', 'packages.views.groups'), + (r'^groups/$', 'groups'), (r'^groups/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', - 'packages.views.group_details'), + 'group_details'), + + (r'^opensearch/packages/$', 'opensearch', {}, 'opensearch-packages'), +) - (r'^todo/(\d+)/$', 'todolists.views.view'), - (r'^todo/add/$', 'todolists.views.add'), - (r'^todo/edit/(?P\d+)/$', 'todolists.views.edit'), - (r'^todo/flag/(\d+)/(\d+)/$', 'todolists.views.flag'), +urlpatterns += patterns('todolists.views', + (r'^todo/$', 'list'), + (r'^todo/(\d+)/$', 'view'), + (r'^todo/add/$', 'add'), + (r'^todo/edit/(?P\d+)/$', 'edit'), + (r'^todo/flag/(\d+)/(\d+)/$', 'flag'), (r'^todo/delete/(?P\d+)/$', - 'todolists.views.delete_todolist'), - (r'^todo/$', 'todolists.views.list'), - (r'^todolists/$', 'todolists.views.public_list'), + 'delete_todolist'), + + (r'^todolists/$', 'public_list'), +) - (r'^news/add/$', 'news.views.add'), - (r'^news/preview/$', 'news.views.preview'), +urlpatterns += patterns('news.views', + (r'^news/add/$', 'add'), + (r'^news/preview/$', 'preview'), # old news URLs, permanent redirect view so we don't break all links - (r'^news/(?P\d+)/$', 'news.views.view_redirect'), - (r'^news/(?P[-\w]+)/$', 'news.views.view'), - (r'^news/(?P[-\w]+)/edit/$', 'news.views.edit'), - (r'^news/(?P[-\w]+)/delete/$', 'news.views.delete'), - (r'^news/$', 'news.views.news_list', {}, 'news-list'), - - (r'^mirrors/$', 'mirrors.views.mirrors', {}, 'mirrors-list'), - (r'^mirrors/status/$', 'mirrors.views.status', {}, 'mirror-status'), - (r'^mirrors/status/json/$', 'mirrors.views.status_json', {}, 'mirror-status-json'), - (r'^mirrors/(?P[\.\-\w]+)/$', 'mirrors.views.mirror_details'), - - (r'^mirrorlist/$', 'mirrors.views.generate_mirrorlist', {}, 'mirrorlist'), - (r'^mirrorlist/all/$', 'mirrors.views.find_mirrors', {'countries': ['all']}), - (r'^mirrorlist/all/ftp/$', 'mirrors.views.find_mirrors', + (r'^news/(?P\d+)/$', 'view_redirect'), + (r'^news/(?P[-\w]+)/$', 'view'), + (r'^news/(?P[-\w]+)/edit/$', 'edit'), + (r'^news/(?P[-\w]+)/delete/$', 'delete'), + (r'^news/$', 'news_list', {}, 'news-list'), +) + +urlpatterns += patterns('mirrors.views', + (r'^mirrors/$', 'mirrors', {}, 'mirrors-list'), + (r'^mirrors/(?P[\.\-\w]+)/$', 'mirror_details'), + + (r'^mirrors/status/$', 'status', {}, 'mirror-status'), + (r'^mirrors/status/json/$', 'status_json', {}, 'mirror-status-json'), + + (r'^mirrorlist/$', 'generate_mirrorlist', {}, 'mirrorlist'), + (r'^mirrorlist/all/$', 'find_mirrors', {'countries': ['all']}), + (r'^mirrorlist/all/ftp/$', 'find_mirrors', {'countries': ['all'], 'protocols': ['ftp']}), - (r'^mirrorlist/all/http/$', 'mirrors.views.find_mirrors', + (r'^mirrorlist/all/http/$', 'find_mirrors', {'countries': ['all'], 'protocols': ['http']}), +) - (r'^devel/$', 'devel.views.index'), - (r'^devel/notify/$', 'devel.views.change_notify'), - (r'^devel/profile/$', 'devel.views.change_profile'), - - (r'^devel/newuser/$', 'devel.views.new_user_form'), +urlpatterns += patterns('devel.views', + (r'^devel/$', 'index'), + (r'^devel/notify/$', 'change_notify'), + (r'^devel/profile/$', 'change_profile'), + (r'^devel/newuser/$', 'new_user_form'), +) # Feeds and sitemaps +urlpatterns += patterns('', (r'^feeds/$', 'public.views.feeds', {}, 'feeds-list'), (r'^feeds/news/$', NewsFeed()), (r'^feeds/packages/$', PackageFeed()), @@ -101,31 +115,35 @@ {'sitemaps': sitemaps}), (r'^sitemap-(?P
.+)\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}), +) # Authentication / Admin - (r'^login/$', 'django.contrib.auth.views.login', { +urlpatterns += patterns('django.contrib.auth.views', + (r'^login/$', 'login', { 'template_name': 'registration/login.html'}), - (r'^accounts/login/$', 'django.contrib.auth.views.login', { + (r'^accounts/login/$', 'login', { 'template_name': 'registration/login.html'}), - (r'^logout/$', 'django.contrib.auth.views.logout', { + (r'^logout/$', 'logout', { 'template_name': 'registration/logout.html'}), - (r'^accounts/logout/$', 'django.contrib.auth.views.logout', { + (r'^accounts/logout/$', 'logout', { 'template_name': 'registration/logout.html'}), - (r'^admin/', include(admin.site.urls)), +) # (mostly) Static Pages - (r'^$', 'public.views.index', {}, 'index'), +urlpatterns += patterns('public.views', + (r'^$', 'index', {}, 'index'), (r'^about/$', direct_to_template, {'template': 'public/about.html'}, 'page-about'), (r'^art/$', direct_to_template, {'template': 'public/art.html'}, 'page-art'), (r'^svn/$', direct_to_template, {'template': 'public/svn.html'}, 'page-svn'), - (r'^developers/$', 'public.views.userlist', { 'type':'Developers' }, 'page-devs'), - (r'^trustedusers/$', 'public.views.userlist', { 'type':'Trusted Users' }, 'page-tus'), - (r'^fellows/$', 'public.views.userlist', { 'type':'Fellows' }, 'page-fellows'), - (r'^donate/$', 'public.views.donate', {}, 'page-donate'), - (r'^download/$', 'public.views.download', {}, 'page-download'), - (r'^opensearch/packages/$', 'packages.views.opensearch', {}, 'opensearch-packages'), - -# Some django internals we use + (r'^developers/$', 'userlist', { 'type':'Developers' }, 'page-devs'), + (r'^trustedusers/$', 'userlist', { 'type':'Trusted Users' }, 'page-tus'), + (r'^fellows/$', 'userlist', { 'type':'Fellows' }, 'page-fellows'), + (r'^donate/$', 'donate', {}, 'page-donate'), + (r'^download/$', 'download', {}, 'page-download'), +) + +urlpatterns += patterns('', + (r'^admin/', include(admin.site.urls)), (r'^jsi18n/$', 'django.views.i18n.null_javascript_catalog'), ) -- cgit v1.2.3-54-g00ecf From 080278adea3be10c2b6b10e41f92e722d0c2c8cf Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 13 Dec 2010 14:43:13 -0600 Subject: Move news urls into own file Signed-off-by: Dan McGee --- news/urls.py | 14 ++++++++++++++ urls.py | 16 ++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 news/urls.py (limited to 'urls.py') diff --git a/news/urls.py b/news/urls.py new file mode 100644 index 00000000..548d80ea --- /dev/null +++ b/news/urls.py @@ -0,0 +1,14 @@ +from django.conf.urls.defaults import patterns + +urlpatterns = patterns('news.views', + (r'^$', 'news_list', {}, 'news-list'), + (r'^add/$', 'add'), + (r'^preview/$', 'preview'), + (r'^(?P[-\w]+)/$', 'view'), + (r'^(?P[-\w]+)/edit/$', 'edit'), + (r'^(?P[-\w]+)/delete/$', 'delete'), + # old news URLs, permanent redirect view so we don't break all links + (r'^(?P\d+)/$', 'view_redirect'), +) + +# vim: set ts=4 sw=4 et: diff --git a/urls.py b/urls.py index 77bf8c1b..1e6f3204 100644 --- a/urls.py +++ b/urls.py @@ -69,17 +69,6 @@ (r'^todolists/$', 'public_list'), ) -urlpatterns += patterns('news.views', - (r'^news/add/$', 'add'), - (r'^news/preview/$', 'preview'), - # old news URLs, permanent redirect view so we don't break all links - (r'^news/(?P\d+)/$', 'view_redirect'), - (r'^news/(?P[-\w]+)/$', 'view'), - (r'^news/(?P[-\w]+)/edit/$', 'edit'), - (r'^news/(?P[-\w]+)/delete/$', 'delete'), - (r'^news/$', 'news_list', {}, 'news-list'), -) - urlpatterns += patterns('mirrors.views', (r'^mirrors/$', 'mirrors', {}, 'mirrors-list'), (r'^mirrors/(?P[\.\-\w]+)/$', 'mirror_details'), @@ -129,7 +118,7 @@ 'template_name': 'registration/logout.html'}), ) -# (mostly) Static Pages +# Public pages urlpatterns += patterns('public.views', (r'^$', 'index', {}, 'index'), (r'^about/$', direct_to_template, {'template': 'public/about.html'}, 'page-about'), @@ -142,9 +131,12 @@ (r'^download/$', 'download', {}, 'page-download'), ) +# Includes and other remaining stuff urlpatterns += patterns('', (r'^admin/', include(admin.site.urls)), (r'^jsi18n/$', 'django.views.i18n.null_javascript_catalog'), + + (r'^news/', include('news.urls')), ) if settings.DEBUG == True: -- cgit v1.2.3-54-g00ecf From 6e3dc1be01ac0e5d0fb08142abfc1417eb924871 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 13 Dec 2010 14:56:43 -0600 Subject: Move more URLs out of root urlconf Things are a bit cleaner now. Signed-off-by: Dan McGee --- devel/urls.py | 10 ++++++++++ packages/urls.py | 37 +++++++++++++++++++++++++++++++++++++ todolists/urls.py | 13 +++++++++++++ urls.py | 53 ++++------------------------------------------------- 4 files changed, 64 insertions(+), 49 deletions(-) create mode 100644 devel/urls.py create mode 100644 packages/urls.py create mode 100644 todolists/urls.py (limited to 'urls.py') diff --git a/devel/urls.py b/devel/urls.py new file mode 100644 index 00000000..23dd2d9f --- /dev/null +++ b/devel/urls.py @@ -0,0 +1,10 @@ +from django.conf.urls.defaults import patterns + +urlpatterns = patterns('devel.views', + (r'^$', 'index'), + (r'^notify/$', 'change_notify'), + (r'^profile/$', 'change_profile'), + (r'^newuser/$', 'new_user_form'), +) + +# vim: set ts=4 sw=4 et: diff --git a/packages/urls.py b/packages/urls.py new file mode 100644 index 00000000..b3927677 --- /dev/null +++ b/packages/urls.py @@ -0,0 +1,37 @@ +from django.conf.urls.defaults import patterns + +urlpatterns = patterns('packages.views', + (r'^flaghelp/$', 'flaghelp'), + (r'^signoffs/$', 'signoffs'), + (r'^signoff_package/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', + 'signoff_package'), + (r'^update/$', 'update'), + + # Preference is for the non-search url below, but search is kept + # because other projects link to it + (r'^search/$', 'search'), + (r'^search/(?P\d+)/$', 'search'), + (r'^$', 'search'), + (r'^(?P\d+)/$', 'search'), + + (r'^differences/$', 'arch_differences'), + + (r'^(?P[A-z0-9\-+.]+)/$', + 'details'), + (r'^(?P[A-z0-9\-]+)/(?P[A-z0-9\-+.]+)/$', + 'details'), + (r'^(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', + 'details'), + (r'^(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/files/$', + 'files'), + (r'^(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/maintainer/$', + 'getmaintainer'), + (r'^(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/flag/$', + 'flag'), + (r'^(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/unflag/$', + 'unflag'), + (r'^(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/download/$', + 'download'), +) + +# vim: set ts=4 sw=4 et: diff --git a/todolists/urls.py b/todolists/urls.py new file mode 100644 index 00000000..187d4820 --- /dev/null +++ b/todolists/urls.py @@ -0,0 +1,13 @@ +from django.conf.urls.defaults import patterns + +urlpatterns = patterns('todolists.views', + (r'^$', 'list'), + (r'^(\d+)/$', 'view'), + (r'^add/$', 'add'), + (r'^edit/(?P\d+)/$', 'edit'), + (r'^flag/(\d+)/(\d+)/$', 'flag'), + (r'^delete/(?P\d+)/$', + 'delete_todolist'), +) + +# vim: set ts=4 sw=4 et: diff --git a/urls.py b/urls.py index 1e6f3204..e55c271a 100644 --- a/urls.py +++ b/urls.py @@ -4,7 +4,6 @@ from django.views.generic.simple import direct_to_template -from main.models import Todolist from feeds import PackageFeed, NewsFeed import sitemaps @@ -18,38 +17,6 @@ admin.autodiscover() urlpatterns = patterns('packages.views', - (r'^packages/flaghelp/$', 'flaghelp'), - (r'^packages/signoffs/$', 'signoffs'), - (r'^packages/signoff_package/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', - 'signoff_package'), - (r'^packages/update/$', 'update'), - - # Preference is for the packages/ url below, but search is kept - # because other projects link to it - (r'^packages/search/$', 'search'), - (r'^packages/search/(?P\d+)/$', 'search'), - (r'^packages/$', 'search'), - (r'^packages/(?P\d+)/$', 'search'), - - (r'^packages/differences/$', 'arch_differences'), - - (r'^packages/(?P[A-z0-9\-+.]+)/$', - 'details'), - (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9\-+.]+)/$', - 'details'), - (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', - 'details'), - (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/files/$', - 'files'), - (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/maintainer/$', - 'getmaintainer'), - (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/flag/$', - 'flag'), - (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/unflag/$', - 'unflag'), - (r'^packages/(?P[A-z0-9\-]+)/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/download/$', - 'download'), - (r'^groups/$', 'groups'), (r'^groups/(?P[A-z0-9]+)/(?P[A-z0-9\-+.]+)/$', 'group_details'), @@ -58,14 +25,6 @@ ) urlpatterns += patterns('todolists.views', - (r'^todo/$', 'list'), - (r'^todo/(\d+)/$', 'view'), - (r'^todo/add/$', 'add'), - (r'^todo/edit/(?P\d+)/$', 'edit'), - (r'^todo/flag/(\d+)/(\d+)/$', 'flag'), - (r'^todo/delete/(?P\d+)/$', - 'delete_todolist'), - (r'^todolists/$', 'public_list'), ) @@ -84,13 +43,6 @@ {'countries': ['all'], 'protocols': ['http']}), ) -urlpatterns += patterns('devel.views', - (r'^devel/$', 'index'), - (r'^devel/notify/$', 'change_notify'), - (r'^devel/profile/$', 'change_profile'), - (r'^devel/newuser/$', 'new_user_form'), -) - # Feeds and sitemaps urlpatterns += patterns('', (r'^feeds/$', 'public.views.feeds', {}, 'feeds-list'), @@ -136,7 +88,10 @@ (r'^admin/', include(admin.site.urls)), (r'^jsi18n/$', 'django.views.i18n.null_javascript_catalog'), - (r'^news/', include('news.urls')), + (r'^devel/', include('devel.urls')), + (r'^news/', include('news.urls')), + (r'^packages/', include('packages.urls')), + (r'^todo/', include('todolists.urls')), ) if settings.DEBUG == True: -- cgit v1.2.3-54-g00ecf From 6528f52cff2abf72a1cb1deb18a398614f3db5f5 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Tue, 14 Dec 2010 10:08:59 -0600 Subject: Fix urls precedence in mirror views Signed-off-by: Dan McGee --- urls.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'urls.py') diff --git a/urls.py b/urls.py index e55c271a..75f2ae78 100644 --- a/urls.py +++ b/urls.py @@ -29,12 +29,12 @@ ) urlpatterns += patterns('mirrors.views', - (r'^mirrors/$', 'mirrors', {}, 'mirrors-list'), - (r'^mirrors/(?P[\.\-\w]+)/$', 'mirror_details'), - (r'^mirrors/status/$', 'status', {}, 'mirror-status'), (r'^mirrors/status/json/$', 'status_json', {}, 'mirror-status-json'), + (r'^mirrors/$', 'mirrors', {}, 'mirrors-list'), + (r'^mirrors/(?P[\.\-\w]+)/$', 'mirror_details'), + (r'^mirrorlist/$', 'generate_mirrorlist', {}, 'mirrorlist'), (r'^mirrorlist/all/$', 'find_mirrors', {'countries': ['all']}), (r'^mirrorlist/all/ftp/$', 'find_mirrors', -- cgit v1.2.3-54-g00ecf