# Redirect to /addons/ at the base. url('^addon$', lambda r: redirect('devhub.addons', permanent=True)), url('^addons$', views.dashboard, name='devhub.addons'), url('^themes$', views.dashboard, name='devhub.themes', kwargs={'theme': True}), url('^feed$', views.feed, name='devhub.feed_all'), # TODO: not necessary when devhub homepage is moved out of remora url('^feed/all$', lambda r: redirect('devhub.feed_all', permanent=True)), url('^feed/%s$' % ADDON_ID, views.feed, name='devhub.feed'), url('^upload$', views.upload, name='devhub.upload'), url('^upload/unlisted$', partial(views.upload, channel='unlisted'), name='devhub.upload_unlisted'), url('^upload/([^/]+)(?:/([^/]+))?$', views.upload_detail, name='devhub.upload_detail'), url('^standalone-upload$', partial(views.upload, is_standalone=True), name='devhub.standalone_upload'), url('^standalone-upload-unlisted$', partial(views.upload, is_standalone=True, channel='unlisted'), name='devhub.standalone_upload_unlisted'), url('^standalone-upload/([^/]+)$', views.standalone_upload_detail, name='devhub.standalone_upload_detail'), # URLs for a single add-on.
views.compat_application_versions, name='devhub.compat_application_versions'), # Redirect to /addons/ at the base. url('^addon$', lambda r: redirect('devhub.addons', permanent=True)), url('^addons$', views.dashboard, name='devhub.addons'), url('^themes$', views.dashboard, name='devhub.themes', kwargs={'theme': True}), url('^feed$', views.feed, name='devhub.feed_all'), # TODO: not necessary when devhub homepage is moved out of remora url('^feed/all$', lambda r: redirect('devhub.feed_all', permanent=True)), url('^feed/%s$' % ADDON_ID, views.feed, name='devhub.feed'), url('^upload$', views.upload, name='devhub.upload'), url('^upload/unlisted$', partial(views.upload, channel='unlisted'), name='devhub.upload_unlisted'), url('^upload/([^/]+)(?:/([^/]+))?$', views.upload_detail, name='devhub.upload_detail'), url('^standalone-upload$', partial(views.upload, is_standalone=True), name='devhub.standalone_upload'), url('^standalone-upload-unlisted$', partial(views.upload, is_standalone=True, channel='unlisted'), name='devhub.standalone_upload_unlisted'), url('^standalone-upload/([^/]+)$', views.standalone_upload_detail, name='devhub.standalone_upload_detail'), # URLs for a single add-on.
url(r'^addon/check-compatibility/application_versions\.json$', views.compat_application_versions, name='devhub.compat_application_versions'), # Redirect to /addons/ at the base. url('^addon$', lambda r: redirect('devhub.addons', permanent=True)), url('^addons$', views.dashboard, name='devhub.addons'), url('^themes$', views.dashboard, name='devhub.themes', kwargs={'theme': True}), url('^feed$', views.feed, name='devhub.feed_all'), # TODO: not necessary when devhub homepage is moved out of remora url('^feed/all$', lambda r: redirect('devhub.feed_all', permanent=True)), url('^feed/%s$' % ADDON_ID, views.feed, name='devhub.feed'), url('^upload$', views.upload, name='devhub.upload'), url('^upload/sideload$', partial(views.upload, is_listed=False), name='devhub.upload_sideload'), url('^upload/unlisted$', partial(views.upload, is_listed=False, automated=True), name='devhub.upload_unlisted'), url('^upload/([^/]+)(?:/([^/]+))?$', views.upload_detail, name='devhub.upload_detail'), url('^standalone-upload$', partial(views.upload, is_standalone=True), name='devhub.standalone_upload'), url('^standalone-upload-unlisted$', partial(views.upload, is_standalone=True, is_listed=False, automated=True), name='devhub.standalone_upload_unlisted'),
# Redirect to /addons/ at the base. url('^addon$', lambda r: redirect('devhub.addons', permanent=True)), url('^addons$', views.dashboard, name='devhub.addons'), url('^themes$', views.dashboard, name='devhub.themes', kwargs={'theme': True}), url('^feed$', views.feed, name='devhub.feed_all'), # TODO: not necessary when devhub homepage is moved out of remora url('^feed/all$', lambda r: redirect('devhub.feed_all', permanent=True)), url('^feed/%s$' % ADDON_ID, views.feed, name='devhub.feed'), url('^upload$', views.upload, name='devhub.upload'), url('^upload/sideload$', partial(views.upload, is_listed=False), name='devhub.upload_sideload'), url('^upload/unlisted$', partial(views.upload, is_listed=False, automated=True), name='devhub.upload_unlisted'), url('^upload/([^/]+)(?:/([^/]+))?$', views.upload_detail, name='devhub.upload_detail'), url('^standalone-upload$', partial(views.upload, is_standalone=True), name='devhub.standalone_upload'), url('^standalone-upload-unlisted$', partial(views.upload, is_standalone=True, is_listed=False, automated=True),
views.compat_application_versions, name='devhub.compat_application_versions'), # Redirect to /addons/ at the base. url('^addon$', lambda r: redirect('devhub.addons', permanent=True)), url('^addons$', views.dashboard, name='devhub.addons'), url('^themes$', views.dashboard, name='devhub.themes', kwargs={'theme': True}), url('^feed$', views.feed, name='devhub.feed_all'), # TODO: not necessary when devhub homepage is moved out of remora url('^feed/all$', lambda r: redirect('devhub.feed_all', permanent=True)), url('^feed/%s$' % ADDON_ID, views.feed, name='devhub.feed'), url('^upload$', views.upload, name='devhub.upload'), url('^upload/unlisted$', partial(views.upload, is_listed=False, automated=True), name='devhub.upload_unlisted'), url('^upload/([^/]+)(?:/([^/]+))?$', views.upload_detail, name='devhub.upload_detail'), url('^standalone-upload$', partial(views.upload, is_standalone=True), name='devhub.standalone_upload'), url('^standalone-upload-unlisted$', partial(views.upload, is_standalone=True, is_listed=False, automated=True), name='devhub.standalone_upload_unlisted'), url('^standalone-upload/([^/]+)$', views.standalone_upload_detail, name='devhub.standalone_upload_detail'),