-
Jorran de Wit authored619a0bd6
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
urls.py 4.31 KiB
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.conf.urls import include, url
from django.conf.urls.static import static
from django.contrib import admin
from ajax_select import urls as ajax_select_urls
from rest_framework import routers
from conflicts.viewsets import ConflictOfInterestViewSet
from journals.viewsets import PublicationViewSetForGoogleScholar
from news.viewsets import NewsItemViewSet
from journals.constants import REGEX_CHOICES
from scipost import views as scipost_views
from organizations.views import OrganizationListView
# Journal URL Regex
JOURNAL_REGEX = '(?P<doi_label>%s)' % REGEX_CHOICES
# API Routing
router = routers.SimpleRouter()
router.register(r'news', NewsItemViewSet)
router.register(r'conflicts', ConflictOfInterestViewSet)
router.register(r'publications/GoogleScholar', PublicationViewSetForGoogleScholar)
# Disable admin login view which is essentially a 2FA workaround.
admin.site.login = login_required(admin.site.login)
# Base URLs
urlpatterns = [
url(r'^sitemap.xml$', scipost_views.sitemap_xml, name='sitemap_xml'),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^ajax_select/', include(ajax_select_urls)),
url(r'^api/', include(router.urls, namespace='api')),
url(r'^docs/', include('sphinxdoc.urls')),
url(r'^10.21468/%s/' % JOURNAL_REGEX, include('journals.urls.journal', namespace="journal")),
url(r'^%s/' % JOURNAL_REGEX, include('journals.urls.journal', namespace="_journal")),
url(r'^', include('scipost.urls', namespace="scipost")),
url(r'^affiliations/', include('affiliations.urls', namespace="affiliations")),
url(r'^colleges/', include('colleges.urls', namespace="colleges")),
url(r'^commentaries/', include('commentaries.urls', namespace="commentaries")),
url(r'^commentary/', include('commentaries.urls', namespace="_commentaries")),
url(r'^comments/', include('comments.urls', namespace="comments")),
url(r'^forums/', include('forums.urls', namespace="forums")),
url(r'^funders/', include('funders.urls', namespace="funders")),
url(r'^finances/', include('finances.urls', namespace="finances")),
url(r'^guides/', include('guides.urls', namespace="guides")),
url(r'^helpdesk/', include('helpdesk.urls', namespace="helpdesk")),
url(r'^invitations/', include('invitations.urls', namespace="invitations")),
url(r'^journals/', include('journals.urls.general', namespace="journals")),
url(r'^mailing_list/', include('mailing_lists.urls', namespace="mailing_lists")),
url(r'^submissions/', include('submissions.urls', namespace="submissions")),
url(r'^submission/', include('submissions.urls', namespace="_submissions")),
url(r'^theses/', include('theses.urls', namespace="theses")),
url(r'^thesis/', include('theses.urls', namespace="_theses")),
url(r'^mails/', include('mails.urls', namespace="mails")),
url(r'^meetings/', include('virtualmeetings.urls', namespace="virtualmeetings")),
url(r'^news/', include('news.urls', namespace="news")),
url(r'^notifications/', include('notifications.urls', namespace="notifications")),
url(r'^ontology/', include('ontology.urls', namespace="ontology")),
url(r'^organizations/', include('organizations.urls', namespace="organizations")),
url(r'^petitions/', include('petitions.urls', namespace="petitions")),
url(r'^preprints/', include('preprints.urls', namespace="preprints")),
url(r'^proceedings/', include('proceedings.urls', namespace="proceedings")),
url(r'^production/', include('production.urls', namespace="production")),
url(r'^profiles/', include('profiles.urls', namespace="profiles")),
url(r'^sponsors/', include('sponsors.urls', namespace="sponsors")),
url(r'^stats/', include('stats.urls', namespace="stats")),
# Deprecated, keep temporarily for historical reasons
url(r'^partners/', OrganizationListView.as_view(), name='partners'),
url(r'^supporting_partners/', OrganizationListView.as_view(), name='partners'),
]
if settings.DEBUG:
import debug_toolbar
urlpatterns += [url(r'^__debug__/', include(debug_toolbar.urls))]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)