From 837c2f140c99cdcd69665483922deba1f8aa6c68 Mon Sep 17 00:00:00 2001 From: Arnaud-D <35631001+Arnaud-D@users.noreply.github.com> Date: Thu, 14 Jul 2022 17:56:09 +0200 Subject: [PATCH] Refactorise les URLs des contenus (#6300) --- zds/tutorialv2/urls/__init__.py | 20 ++- zds/tutorialv2/urls/urls_articles.py | 32 ++--- zds/tutorialv2/urls/urls_contents.py | 152 +++++++++++------------ zds/tutorialv2/urls/urls_opinions.py | 34 ++--- zds/tutorialv2/urls/urls_publications.py | 12 +- zds/tutorialv2/urls/urls_tutorials.py | 60 +++------ zds/tutorialv2/urls/urls_validations.py | 37 +++--- 7 files changed, 148 insertions(+), 199 deletions(-) diff --git a/zds/tutorialv2/urls/__init__.py b/zds/tutorialv2/urls/__init__.py index 7cc5611855..0a53a83bc0 100644 --- a/zds/tutorialv2/urls/__init__.py +++ b/zds/tutorialv2/urls/__init__.py @@ -1,18 +1,16 @@ -from django.urls import include, re_path +from django.urls import include, path urlpatterns = [ - re_path(r"^contenus/", include(("zds.tutorialv2.urls.urls_contents", "zds.tutorialv2.urls"), namespace="content")), - re_path( - r"^validations/", + path("contenus/", include(("zds.tutorialv2.urls.urls_contents", "zds.tutorialv2.urls"), namespace="content")), + path( + "validations/", include(("zds.tutorialv2.urls.urls_validations", "zds.tutorialv2.urls"), namespace="validation"), ), - re_path( - r"^tutoriels/", include(("zds.tutorialv2.urls.urls_tutorials", "zds.tutorialv2.urls"), namespace="tutorial") - ), - re_path(r"^billets/", include(("zds.tutorialv2.urls.urls_opinions", "zds.tutorialv2.urls"), namespace="opinion")), - re_path(r"^articles/", include(("zds.tutorialv2.urls.urls_articles", "zds.tutorialv2.urls"), namespace="article")), - re_path( - r"^bibliotheque/", + path("tutoriels/", include(("zds.tutorialv2.urls.urls_tutorials", "zds.tutorialv2.urls"), namespace="tutorial")), + path("billets/", include(("zds.tutorialv2.urls.urls_opinions", "zds.tutorialv2.urls"), namespace="opinion")), + path("articles/", include(("zds.tutorialv2.urls.urls_articles", "zds.tutorialv2.urls"), namespace="article")), + path( + "bibliotheque/", include(("zds.tutorialv2.urls.urls_publications", "zds.tutorialv2.urls"), namespace="publication"), ), ] diff --git a/zds/tutorialv2/urls/urls_articles.py b/zds/tutorialv2/urls/urls_articles.py index 515869ab4a..33760d9aa3 100644 --- a/zds/tutorialv2/urls/urls_articles.py +++ b/zds/tutorialv2/urls/urls_articles.py @@ -9,35 +9,27 @@ urlpatterns = [ # Flux - re_path(r"^flux/rss/$", LastArticlesFeedRSS(), name="feed-rss"), - re_path(r"^flux/atom/$", LastArticlesFeedATOM(), name="feed-atom"), + path("flux/rss/", LastArticlesFeedRSS(), name="feed-rss"), + path("flux/atom/", LastArticlesFeedATOM(), name="feed-atom"), # View - re_path(r"^(?P\d+)/(?P.+)/$", DisplayOnlineArticle.as_view(), name="view"), + path("//", DisplayOnlineArticle.as_view(), name="view"), # Downloads - re_path( - r"^md/(?P\d+)/(?P.+)\.md$", DownloadOnlineArticle.as_view(requested_file="md"), name="download-md" - ), - re_path( - r"^html/(?P\d+)/(?P.+)\.html$", + path("md//.md", DownloadOnlineArticle.as_view(requested_file="md"), name="download-md"), + path( + "html//.html", DownloadOnlineArticle.as_view(requested_file="html"), name="download-html", ), - re_path( - r"^pdf/(?P\d+)/(?P.+)\.pdf$", DownloadOnlineArticle.as_view(requested_file="pdf"), name="download-pdf" - ), - re_path( - r"^tex/(?P\d+)/(?P.+)\.tex$", DownloadOnlineArticle.as_view(requested_file="tex"), name="download-tex" - ), - re_path( - r"^epub/(?P\d+)/(?P.+)\.epub$", + path("pdf//.pdf", DownloadOnlineArticle.as_view(requested_file="pdf"), name="download-pdf"), + path("tex//.tex", DownloadOnlineArticle.as_view(requested_file="tex"), name="download-tex"), + path( + "epub//.epub", DownloadOnlineArticle.as_view(requested_file="epub"), name="download-epub", ), - re_path( - r"^zip/(?P\d+)/(?P.+)\.zip$", DownloadOnlineArticle.as_view(requested_file="zip"), name="download-zip" - ), + path("zip//.zip", DownloadOnlineArticle.as_view(requested_file="zip"), name="download-zip"), # Listing - re_path(r"^$", RedirectView.as_view(pattern_name="publication:list", permanent=True)), + path("", RedirectView.as_view(pattern_name="publication:list", permanent=True)), re_path(r"tags/*", TagsListView.as_view(displayed_types=["ARTICLE"]), name="tags"), path( "voir//", diff --git a/zds/tutorialv2/urls/urls_contents.py b/zds/tutorialv2/urls/urls_contents.py index e348b07ed2..e88cc405b7 100644 --- a/zds/tutorialv2/urls/urls_contents.py +++ b/zds/tutorialv2/urls/urls_contents.py @@ -43,10 +43,8 @@ urlpatterns = [ # Flux - re_path(r"^flux/rss/$", RedirectView.as_view(pattern_name="publication:feed-rss", permanent=True), name="feed-rss"), - re_path( - r"^flux/atom/$", RedirectView.as_view(pattern_name="publication:feed-atom", permanent=True), name="feed-atom" - ), + path("flux/rss/", RedirectView.as_view(pattern_name="publication:feed-rss", permanent=True), name="feed-rss"), + path("flux/atom/", RedirectView.as_view(pattern_name="publication:feed-atom", permanent=True), name="feed-atom"), path("voir//", ContentOfAuthor.as_view(type="ALL", context_object_name="contents"), name="find-all"), path( "contributions//", @@ -57,139 +55,133 @@ path("tutoriels//", RedirectOldContentOfAuthor.as_view(type="TUTORIAL")), path("articles//", RedirectOldContentOfAuthor.as_view(type="ARTICLE")), path("tribunes//", RedirectOldContentOfAuthor.as_view(type="OPINION")), - re_path(r"^aides/$", ContentsWithHelps.as_view(), name="helps"), - re_path(r"^aides/(?P\d+)/change/$", ChangeHelp.as_view(), name="helps-change"), - re_path( - r"^(?P\d+)/(?P.+)/(?P.+)/(?P.+)/$", + path("aides/", ContentsWithHelps.as_view(), name="helps"), + path("aides//change/", ChangeHelp.as_view(), name="helps-change"), + path( + "////", DisplayContainer.as_view(public_is_prioritary=False), name="view-container", ), - re_path( - r"^(?P\d+)/(?P.+)/(?P.+)/$", + path( + "///", DisplayContainer.as_view(public_is_prioritary=False), name="view-container", ), - re_path(r"^(?P\d+)/(?P.+)/$", DisplayContent.as_view(public_is_prioritary=False), name="view"), - re_path(r"^telecharger/(?P\d+)/(?P.+)/$", DownloadContent.as_view(), name="download-zip"), + path("//", DisplayContent.as_view(public_is_prioritary=False), name="view"), + path("telecharger///", DownloadContent.as_view(), name="download-zip"), # beta: - re_path( - r"^beta/(?P\d+)/(?P.+)/(?P.+)/(?P.+)/$", + path( + "beta/////", DisplayBetaContainer.as_view(public_is_prioritary=False), name="beta-view-container", ), - re_path( - r"^beta/(?P\d+)/(?P.+)/(?P.+)/$", + path( + "beta////", DisplayBetaContainer.as_view(public_is_prioritary=False), name="beta-view-container", ), - re_path(r"^beta/(?P\d+)/(?P.+)/$", DisplayBetaContent.as_view(), name="beta-view"), + path("beta///", DisplayBetaContent.as_view(), name="beta-view"), # reactions: - re_path(r"^reactions/ajouter/$", SendNoteFormView.as_view(redirection_is_needed=False), name="add-reaction"), - re_path(r"^reactions/editer/$", UpdateNoteView.as_view(redirection_is_needed=False), name="update-reaction"), - re_path(r"^reactions/cacher/(?P\d+)/$", HideReaction.as_view(), name="hide-reaction"), - re_path(r"^reactions/afficher/(?P\d+)/$", ShowReaction.as_view(), name="show-reaction"), - re_path(r"^reactions/alerter/(?P\d+)/$", SendNoteAlert.as_view(), name="alert-reaction"), - re_path(r"^reactions/resoudre/$", SolveNoteAlert.as_view(), name="resolve-reaction"), + path("reactions/ajouter/", SendNoteFormView.as_view(redirection_is_needed=False), name="add-reaction"), + path("reactions/editer/", UpdateNoteView.as_view(redirection_is_needed=False), name="update-reaction"), + path("reactions/cacher//", HideReaction.as_view(), name="hide-reaction"), + path("reactions/afficher//", ShowReaction.as_view(), name="show-reaction"), + path("reactions/alerter//", SendNoteAlert.as_view(), name="alert-reaction"), + path("reactions/resoudre/", SolveNoteAlert.as_view(), name="resolve-reaction"), # follow: - re_path(r"^suivre/(?P\d+)/reactions/$", FollowContentReaction.as_view(), name="follow-reactions"), - re_path(r"^suivre/membres/(?P\d+)/$", FollowNewContent.as_view(), name="follow"), + path("suivre//reactions/", FollowContentReaction.as_view(), name="follow-reactions"), + path("suivre/membres//", FollowNewContent.as_view(), name="follow"), # request - re_path(r"^requete/(?P\d+)/$", RequestFeaturedContent.as_view(), name="request-featured"), + path("requete//", RequestFeaturedContent.as_view(), name="request-featured"), # content alerts: - re_path(r"^alerter/(?P\d+)/$", SendContentAlert.as_view(), name="alert-content"), - re_path(r"^resoudre/(?P\d+)/$", SolveContentAlert.as_view(), name="resolve-content"), + path("alerter//", SendContentAlert.as_view(), name="alert-content"), + path("resoudre//", SolveContentAlert.as_view(), name="resolve-content"), # typo: - re_path(r"^reactions/typo/$", WarnTypo.as_view(), name="warn-typo"), + path("reactions/typo/", WarnTypo.as_view(), name="warn-typo"), # create: path("nouveau-contenu//", CreateContent.as_view(), name="create-content"), - re_path( - r"^nouveau-conteneur/(?P\d+)/(?P.+)/(?P.+)/$", + path( + "nouveau-conteneur////", CreateContainer.as_view(), name="create-container", ), - re_path(r"^nouveau-conteneur/(?P\d+)/(?P.+)/$", CreateContainer.as_view(), name="create-container"), - re_path( - r"^nouvelle-section/(?P\d+)/(?P.+)/(?P.+)/(?P.+)/$", + path("nouveau-conteneur///", CreateContainer.as_view(), name="create-container"), + path( + "nouvelle-section/////", CreateExtract.as_view(), name="create-extract", ), - re_path( - r"^nouvelle-section/(?P\d+)/(?P.+)/(?P.+)/$", + path( + "nouvelle-section////", CreateExtract.as_view(), name="create-extract", ), - re_path(r"^nouvelle-section/(?P\d+)/(?P.+)/$", CreateExtract.as_view(), name="create-extract"), + path("nouvelle-section///", CreateExtract.as_view(), name="create-extract"), # edit: - re_path( - r"^editer-conteneur/(?P\d+)/(?P.+)/(?P.+)/" r"(?P.+)/$", + path( + "editer-conteneur////" r"/", EditContainer.as_view(), name="edit-container", ), - re_path( - r"^editer-conteneur/(?P\d+)/(?P.+)/(?P.+)/$", + path( + "editer-conteneur////", EditContainer.as_view(), name="edit-container", ), - re_path( - r"^editer-section/(?P\d+)/(?P.+)/(?P.+)/" - r"(?P.+)/(?P.+)/$", + path( + "editer-section//////", EditExtract.as_view(), name="edit-extract", ), - re_path( - r"^editer-section/(?P\d+)/(?P.+)/(?P.+)/(?P.+)/$", + path( + "editer-section/////", EditExtract.as_view(), name="edit-extract", ), - re_path( - r"^editer-section/(?P\d+)/(?P.+)/(?P.+)/$", EditExtract.as_view(), name="edit-extract" - ), - re_path(r"^editer/(?P\d+)/(?P.+)/$", EditContent.as_view(), name="edit"), - re_path(r"^deplacer/$", MoveChild.as_view(), name="move-element"), - re_path(r"^historique/(?P\d+)/(?P.+)/$", DisplayHistory.as_view(), name="history"), - re_path(r"^comparaison/(?P\d+)/(?P.+)/$", DisplayDiff.as_view(), name="diff"), - re_path(r"^ajouter-contributeur/(?P\d+)/$", AddContributorToContent.as_view(), name="add-contributor"), - re_path(r"^enlever-contributeur/(?P\d+)/$", RemoveContributorFromContent.as_view(), name="remove-contributor"), - re_path(r"^ajouter-auteur/(?P\d+)/$", AddAuthorToContent.as_view(), name="add-author"), - re_path(r"^enlever-auteur/(?P\d+)/$", RemoveAuthorFromContent.as_view(), name="remove-author"), + path("editer-section////", EditExtract.as_view(), name="edit-extract"), + path("editer///", EditContent.as_view(), name="edit"), + path("deplacer/", MoveChild.as_view(), name="move-element"), + path("historique///", DisplayHistory.as_view(), name="history"), + path("comparaison///", DisplayDiff.as_view(), name="diff"), + path("ajouter-contributeur//", AddContributorToContent.as_view(), name="add-contributor"), + path("enlever-contributeur//", RemoveContributorFromContent.as_view(), name="remove-contributor"), + path("ajouter-auteur//", AddAuthorToContent.as_view(), name="add-author"), + path("enlever-auteur//", RemoveAuthorFromContent.as_view(), name="remove-author"), # Modify the license - re_path(r"^modifier-licence/(?P\d+)/$", EditContentLicense.as_view(), name="edit-license"), + path("modifier-licence//", EditContentLicense.as_view(), name="edit-license"), # Modify the tags - re_path(r"^modifier-tags/(?P\d+)/$", EditContentTags.as_view(), name="edit-tags"), + path("modifier-tags//", EditContentTags.as_view(), name="edit-tags"), # beta: - re_path(r"^activer-beta/(?P\d+)/(?P.+)/$", ManageBetaContent.as_view(action="set"), name="set-beta"), - re_path( - r"^desactiver-beta/(?P\d+)/(?P.+)/$", + path("activer-beta///", ManageBetaContent.as_view(action="set"), name="set-beta"), + path( + "desactiver-beta///", ManageBetaContent.as_view(action="inactive"), name="inactive-beta", ), - re_path(r"^stats/(?P\d+)/(?P.+)/$", ContentStatisticsView.as_view(), name="stats-content"), - re_path(r"^ajouter-suggestion/(?P\d+)/$", AddSuggestion.as_view(), name="add-suggestion"), - re_path(r"^enlever-suggestion/(?P\d+)/$", RemoveSuggestion.as_view(), name="remove-suggestion"), + path("stats///", ContentStatisticsView.as_view(), name="stats-content"), + path("ajouter-suggestion//", AddSuggestion.as_view(), name="add-suggestion"), + path("enlever-suggestion//", RemoveSuggestion.as_view(), name="remove-suggestion"), # jsfiddle support: - re_path(r"activer-js/", ActivateJSFiddleInContent.as_view(), name="activate-jsfiddle"), + path("activer-js/", ActivateJSFiddleInContent.as_view(), name="activate-jsfiddle"), # delete: - re_path( - r"^supprimer/(?P\d+)/(?P.+)/(?P.+)/(?P.+)/" - r"(?P.+)/$", + path( + "supprimer//////", DeleteContainerOrExtract.as_view(), name="delete", ), - re_path( - r"^supprimer/(?P\d+)/(?P.+)/(?P.+)/(?P.+)/$", + path( + "supprimer/////", DeleteContainerOrExtract.as_view(), name="delete", ), - re_path( - r"^supprimer/(?P\d+)/(?P.+)/(?P.+)/$", DeleteContainerOrExtract.as_view(), name="delete" - ), - re_path(r"^supprimer/(?P\d+)/(?P.+)/$", DeleteContent.as_view(), name="delete"), + path("supprimer////", DeleteContainerOrExtract.as_view(), name="delete"), + path("supprimer///", DeleteContent.as_view(), name="delete"), # markdown import - re_path(r"^importer/archive/nouveau/$", CreateContentFromArchive.as_view(), name="import-new"), - re_path(r"^importer/(?P\d+)/(?P.+)/$", UpdateContentWithArchive.as_view(), name="import"), + path("importer/archive/nouveau/", CreateContentFromArchive.as_view(), name="import-new"), + path("importer///", UpdateContentWithArchive.as_view(), name="import"), # tags - re_path(r"^tags/$", TagsListView.as_view(), name="tags"), - re_path(r"^$", RedirectView.as_view(pattern_name="publication:list", permanent=True), name="list"), + path("tags/", TagsListView.as_view(), name="tags"), + path("", RedirectView.as_view(pattern_name="publication:list", permanent=True), name="list"), # Journal of events - re_path(r"^evenements/(?P\d+)/$", EventsList.as_view(), name="events"), + path("evenements//", EventsList.as_view(), name="events"), ] diff --git a/zds/tutorialv2/urls/urls_opinions.py b/zds/tutorialv2/urls/urls_opinions.py index 4fbe1521b8..c6a53e0ee1 100644 --- a/zds/tutorialv2/urls/urls_opinions.py +++ b/zds/tutorialv2/urls/urls_opinions.py @@ -1,4 +1,4 @@ -from django.urls import path, re_path +from django.urls import path, path from zds.tutorialv2.feeds import LastOpinionsFeedRSS, LastOpinionsFeedATOM from zds.tutorialv2.views.lists import ListOpinions, ContentOfAuthor @@ -7,35 +7,27 @@ urlpatterns = [ # Flux - re_path(r"^flux/rss/$", LastOpinionsFeedRSS(), name="feed-rss"), - re_path(r"^flux/atom/$", LastOpinionsFeedATOM(), name="feed-atom"), + path("flux/rss/", LastOpinionsFeedRSS(), name="feed-rss"), + path("flux/atom/", LastOpinionsFeedATOM(), name="feed-atom"), # View - re_path(r"^(?P\d+)/(?P.+)/$", DisplayOnlineOpinion.as_view(), name="view"), + path("//", DisplayOnlineOpinion.as_view(), name="view"), # downloads: - re_path( - r"^md/(?P\d+)/(?P.+)\.md$", DownloadOnlineOpinion.as_view(requested_file="md"), name="download-md" - ), - re_path( - r"^html/(?P\d+)/(?P.+)\.html$", + path("md//.md", DownloadOnlineOpinion.as_view(requested_file="md"), name="download-md"), + path( + "html//.html", DownloadOnlineOpinion.as_view(requested_file="html"), name="download-html", ), - re_path( - r"^pdf/(?P\d+)/(?P.+)\.pdf$", DownloadOnlineOpinion.as_view(requested_file="pdf"), name="download-pdf" - ), - re_path( - r"^epub/(?P\d+)/(?P.+)\.epub$", + path("pdf//.pdf", DownloadOnlineOpinion.as_view(requested_file="pdf"), name="download-pdf"), + path( + "epub//.epub", DownloadOnlineOpinion.as_view(requested_file="epub"), name="download-epub", ), - re_path( - r"^zip/(?P\d+)/(?P.+)\.zip$", DownloadOnlineOpinion.as_view(requested_file="zip"), name="download-zip" - ), - re_path( - r"^tex/(?P\d+)/(?P.+)\.tex$", DownloadOnlineOpinion.as_view(requested_file="tex"), name="download-tex" - ), + path("zip//.zip", DownloadOnlineOpinion.as_view(requested_file="zip"), name="download-zip"), + path("tex//.tex", DownloadOnlineOpinion.as_view(requested_file="tex"), name="download-tex"), # Listing - re_path(r"^$", ListOpinions.as_view(), name="list"), + path("", ListOpinions.as_view(), name="list"), path( "voir//", ContentOfAuthor.as_view(type="OPINION", context_object_name="opinions", sort="creation"), diff --git a/zds/tutorialv2/urls/urls_publications.py b/zds/tutorialv2/urls/urls_publications.py index 4eb5e89ee5..39e682fd22 100644 --- a/zds/tutorialv2/urls/urls_publications.py +++ b/zds/tutorialv2/urls/urls_publications.py @@ -1,13 +1,13 @@ -from django.urls import re_path +from django.urls import path from zds.tutorialv2.views.lists import ViewPublications from zds.tutorialv2.feeds import LastContentFeedRSS, LastContentFeedATOM urlpatterns = [ # Flux - re_path(r"^flux/rss/$", LastContentFeedRSS(), name="feed-rss"), - re_path(r"^flux/atom/$", LastContentFeedATOM(), name="feed-atom"), - re_path(r"^(?P.+)/(?P.+)/$", ViewPublications.as_view(), name="subcategory"), - re_path(r"^(?P.+)/$", ViewPublications.as_view(), name="category"), - re_path(r"^$", ViewPublications.as_view(), name="list"), + path("flux/rss/", LastContentFeedRSS(), name="feed-rss"), + path("flux/atom/", LastContentFeedATOM(), name="feed-atom"), + path("//", ViewPublications.as_view(), name="subcategory"), + path("/", ViewPublications.as_view(), name="category"), + path("", ViewPublications.as_view(), name="list"), ] diff --git a/zds/tutorialv2/urls/urls_tutorials.py b/zds/tutorialv2/urls/urls_tutorials.py index c930f9b9d4..790025d3fa 100644 --- a/zds/tutorialv2/urls/urls_tutorials.py +++ b/zds/tutorialv2/urls/urls_tutorials.py @@ -1,4 +1,4 @@ -from django.urls import path, re_path +from django.urls import path from django.views.generic.base import RedirectView from zds.tutorialv2.views.contributors import ContentOfContributors @@ -11,57 +11,33 @@ urlpatterns = [ # flux - re_path(r"^flux/rss/$", LastTutorialsFeedRSS(), name="feed-rss"), - re_path(r"^flux/atom/$", LastTutorialsFeedATOM(), name="feed-atom"), + path("flux/rss/", LastTutorialsFeedRSS(), name="feed-rss"), + path("flux/atom/", LastTutorialsFeedATOM(), name="feed-atom"), # view - re_path( - r"^(?P\d+)/(?P.+)/(?P\d+)/(?P.+)/(?P\d+)/(?P.+)/$", + path( + "//////", RedirectContentSEO.as_view(), name="redirect_old_tuto", ), - re_path( - r"^(?P\d+)/(?P.+)/(?P.+)/(?P.+)/$", + path( + "////", DisplayOnlineContainer.as_view(), name="view-container", ), - re_path( - r"^(?P\d+)/(?P.+)/(?P.+)/$", DisplayOnlineContainer.as_view(), name="view-container" - ), - re_path(r"^(?P\d+)/(?P.+)/$", DisplayOnlineTutorial.as_view(), name="view"), + path("///", DisplayOnlineContainer.as_view(), name="view-container"), + path("//", DisplayOnlineTutorial.as_view(), name="view"), # downloads: - re_path( - r"^md/(?P\d+)/(?P.+)\.md$", DownloadOnlineTutorial.as_view(requested_file="md"), name="download-md" - ), - re_path( - r"^html/(?P\d+)/(?P.+)\.html$", - DownloadOnlineTutorial.as_view(requested_file="html"), - name="download-html", - ), - re_path( - r"^pdf/(?P\d+)/(?P.+)\.pdf$", - DownloadOnlineTutorial.as_view(requested_file="pdf"), - name="download-pdf", - ), - re_path( - r"^epub/(?P\d+)/(?P.+)\.epub$", - DownloadOnlineTutorial.as_view(requested_file="epub"), - name="download-epub", - ), - re_path( - r"^zip/(?P\d+)/(?P.+)\.zip$", - DownloadOnlineTutorial.as_view(requested_file="zip"), - name="download-zip", - ), - re_path( - r"^tex/(?P\d+)/(?P.+)\.tex$", - DownloadOnlineTutorial.as_view(requested_file="tex"), - name="download-tex", - ), + path("md//.md", DownloadOnlineTutorial.as_view(requested_file="md"), name="download-md"), + path("html//.html", DownloadOnlineTutorial.as_view(requested_file="html"), name="download-html"), + path("pdf//.pdf", DownloadOnlineTutorial.as_view(requested_file="pdf"), name="download-pdf"), + path("epub//.epub", DownloadOnlineTutorial.as_view(requested_file="epub"), name="download-epub"), + path("zip//.zip", DownloadOnlineTutorial.as_view(requested_file="zip"), name="download-zip"), + path("tex//.tex", DownloadOnlineTutorial.as_view(requested_file="tex"), name="download-tex"), # Old beta url compatibility - re_path(r"^beta/(?P\d+)/(?P.+)/$", RedirectOldBetaTuto.as_view(), name="old-beta-url"), + path("beta///", RedirectOldBetaTuto.as_view(), name="old-beta-url"), # Listing - re_path(r"^$", RedirectView.as_view(pattern_name="publication:list", permanent=True)), - re_path(r"tags/$", TagsListView.as_view(displayed_types=["TUTORIAL"]), name="tags"), + path("", RedirectView.as_view(pattern_name="publication:list", permanent=True)), + path("tags/", TagsListView.as_view(displayed_types=["TUTORIAL"]), name="tags"), path( "voir//", ContentOfAuthor.as_view(type="TUTORIAL", context_object_name="tutorials"), diff --git a/zds/tutorialv2/urls/urls_validations.py b/zds/tutorialv2/urls/urls_validations.py index 2847b2baef..c4d6c71461 100644 --- a/zds/tutorialv2/urls/urls_validations.py +++ b/zds/tutorialv2/urls/urls_validations.py @@ -1,5 +1,4 @@ -from django.urls import re_path - +from django.urls import path from zds.tutorialv2.views.validations_contents import ( AskValidationForContent, ReserveValidation, @@ -23,28 +22,28 @@ ) urlpatterns = [ - re_path(r"^historique/(?P\d+)/(?P.+)/$", ValidationHistoryView.as_view(), name="history"), + path("historique///", ValidationHistoryView.as_view(), name="history"), # VALIDATION BEFORE PUBLICATION # 1. ask validation - re_path(r"^proposer/(?P\d+)/(?P.+)/$", AskValidationForContent.as_view(), name="ask"), + path("proposer///", AskValidationForContent.as_view(), name="ask"), # 2. take (or cancel) validation - re_path(r"^reserver/(?P\d+)/$", ReserveValidation.as_view(), name="reserve"), - re_path(r"^annuler/(?P\d+)/$", CancelValidation.as_view(), name="cancel"), + path("reserver//", ReserveValidation.as_view(), name="reserve"), + path("annuler//", CancelValidation.as_view(), name="cancel"), # 3. accept or reject validation - re_path(r"^refuser/(?P\d+)/$", RejectValidation.as_view(), name="reject"), - re_path(r"^accepter/(?P\d+)/$", AcceptValidation.as_view(), name="accept"), + path("refuser//", RejectValidation.as_view(), name="reject"), + path("accepter//", AcceptValidation.as_view(), name="accept"), # 4. cancel validation after publication - re_path(r"^revoquer/(?P\d+)/(?P.+)/$", RevokeValidation.as_view(), name="revoke"), + path("revoquer///", RevokeValidation.as_view(), name="revoke"), # NO VALIDATION BEFORE PUBLICATION - re_path(r"^publier/(?P\d+)/(?P.+)/$", PublishOpinion.as_view(), name="publish-opinion"), - re_path(r"^depublier/(?P\d+)/(?P.+)/$", UnpublishOpinion.as_view(), name="unpublish-opinion"), - re_path(r"^choisir/(?P\d+)/(?P.+)/$", PickOpinion.as_view(), name="pick-opinion"), - re_path(r"^ignorer/(?P\d+)/(?P.+)/$", DoNotPickOpinion.as_view(), name="ignore-opinion"), - re_path(r"^operation/annuler/(?P\d+)/$", RevokePickOperation.as_view(), name="revoke-ignore-opinion"), - re_path(r"^retirer/(?P\d+)/(?P.+)/$", UnpickOpinion.as_view(), name="unpick-opinion"), - re_path(r"^promouvoir/(?P\d+)/(?P.+)/$", PromoteOpinionToArticle.as_view(), name="promote-opinion"), - re_path(r"^marquer-obsolete/(?P\d+)/$", MarkObsolete.as_view(), name="mark-obsolete"), + path("publier///", PublishOpinion.as_view(), name="publish-opinion"), + path("depublier///", UnpublishOpinion.as_view(), name="unpublish-opinion"), + path("choisir///", PickOpinion.as_view(), name="pick-opinion"), + path("ignorer///", DoNotPickOpinion.as_view(), name="ignore-opinion"), + path("operation/annuler//", RevokePickOperation.as_view(), name="revoke-ignore-opinion"), + path("retirer///", UnpickOpinion.as_view(), name="unpick-opinion"), + path("promouvoir///", PromoteOpinionToArticle.as_view(), name="promote-opinion"), + path("marquer-obsolete//", MarkObsolete.as_view(), name="mark-obsolete"), # VALIDATION VIEWS FOR STAFF - re_path(r"^billets/$", ValidationOpinionListView.as_view(), name="list-opinion"), - re_path(r"^$", ValidationListView.as_view(), name="list"), + path("billets/", ValidationOpinionListView.as_view(), name="list-opinion"), + path("", ValidationListView.as_view(), name="list"), ]