Skip to content

Commit ba22f16

Browse files
authored
Merge pull request #7595 from readthedocs/agj/add-version-create-url
Add separate version create view and create view URL
2 parents 924699c + 7b18370 commit ba22f16

File tree

6 files changed

+30
-8
lines changed

6 files changed

+30
-8
lines changed

readthedocs/api/v3/tests/responses/projects-builds-detail.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"urls": {
1414
"build": "https://readthedocs.org/projects/project/builds/1/",
1515
"project": "https://readthedocs.org/projects/project/",
16-
"version": "https://readthedocs.org/dashboard/project/version/v1.0/"
16+
"version": "https://readthedocs.org/dashboard/project/version/v1.0/edit/"
1717
},
1818
"project": "project",
1919
"state": {

readthedocs/api/v3/tests/responses/projects-detail.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"urls": {
3030
"build": "https://readthedocs.org/projects/project/builds/1/",
3131
"project": "https://readthedocs.org/projects/project/",
32-
"version": "https://readthedocs.org/dashboard/project/version/v1.0/"
32+
"version": "https://readthedocs.org/dashboard/project/version/v1.0/edit/"
3333
},
3434
"project": "project",
3535
"state": {

readthedocs/api/v3/tests/responses/projects-versions-builds-list_POST.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"urls": {
1515
"build": "https://readthedocs.org/projects/project/builds/2/",
1616
"project": "https://readthedocs.org/projects/project/",
17-
"version": "https://readthedocs.org/dashboard/project/version/v1.0/"
17+
"version": "https://readthedocs.org/dashboard/project/version/v1.0/edit/"
1818
},
1919
"project": "project",
2020
"state": {

readthedocs/projects/urls/private.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Project URLs for authenticated users."""
22

3+
from django.conf import settings
34
from django.conf.urls import url
45
from django.contrib.auth.decorators import login_required
56
from django.views.generic.base import RedirectView
@@ -39,6 +40,7 @@
3940
ProjectUsersCreateList,
4041
ProjectUsersDelete,
4142
ProjectVersionDeleteHTML,
43+
ProjectVersionCreate,
4244
ProjectVersionDetail,
4345
RegexAutomationRuleCreate,
4446
RegexAutomationRuleUpdate,
@@ -81,7 +83,7 @@
8183
name='project_version_delete_html',
8284
),
8385
url(
84-
r'^(?P<project_slug>[-\w]+)/version/(?P<version_slug>[^/]+)/$',
86+
r'^(?P<project_slug>[-\w]+)/version/(?P<version_slug>[^/]+)/edit/$',
8587
ProjectVersionDetail.as_view(),
8688
name='project_version_detail',
8789
),
@@ -145,6 +147,18 @@
145147
),
146148
]
147149

150+
# TODO move this up to the list above when it's not a conditional URL.
151+
# Currently, this is only used by the new theme, we don't allow for "create" in
152+
# our current templates.
153+
if settings.RTD_EXT_THEME_ENABLED:
154+
urlpatterns.append(
155+
url(
156+
r'^(?P<project_slug>[-\w]+)/version/create/$',
157+
ProjectVersionCreate.as_view(),
158+
name='project_version_create',
159+
),
160+
)
161+
148162
domain_urls = [
149163
url(
150164
r'^(?P<project_slug>[-\w]+)/domains/$',

readthedocs/projects/views/private.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,7 @@ def get_success_url(self):
191191
)
192192

193193

194-
class ProjectVersionDetail(ProjectVersionMixin, UpdateView):
195-
196-
template_name = 'projects/project_version_detail.html'
194+
class ProjectVersionEditMixin(ProjectVersionMixin):
197195

198196
def get_queryset(self):
199197
return Version.internal.public(
@@ -221,6 +219,16 @@ def form_valid(self, form):
221219
return HttpResponseRedirect(self.get_success_url())
222220

223221

222+
class ProjectVersionCreate(ProjectVersionEditMixin, CreateView):
223+
224+
template_name = 'projects/project_version_detail.html'
225+
226+
227+
class ProjectVersionDetail(ProjectVersionEditMixin, UpdateView):
228+
229+
template_name = 'projects/project_version_detail.html'
230+
231+
224232
class ProjectVersionDeleteHTML(ProjectVersionMixin, GenericModelView):
225233

226234
http_method_names = ['post']

readthedocs/rtd_tests/tests/test_views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def test_version_delete_html(self):
100100
self.assertRedirectToLogin(response)
101101

102102
def test_version_detail(self):
103-
response = self.client.get('/dashboard/pip/version/0.8.1/')
103+
response = self.client.get('/dashboard/pip/version/0.8.1/edit/')
104104
self.assertRedirectToLogin(response)
105105

106106
def test_project_delete(self):

0 commit comments

Comments
 (0)