Skip to content

Commit 6d9921c

Browse files
committed
make field readonly
1 parent 0986866 commit 6d9921c

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

readthedocs/projects/forms.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,13 @@ def __init__(self, *args, **kwargs):
241241
)
242242

243243
active_versions = self.get_all_active_versions()
244-
self.fields['default_version'].widget = forms.Select(
245-
choices=active_versions,
246-
)
244+
245+
if active_versions:
246+
self.fields['default_version'].widget = forms.Select(
247+
choices=active_versions,
248+
)
249+
else:
250+
self.fields['default_version'].widget.attrs['readonly'] = True
247251

248252
def clean_conf_py_file(self):
249253
filename = self.cleaned_data.get('conf_py_file', '').strip()
@@ -269,7 +273,7 @@ def get_all_active_versions(self):
269273
version_qs = sort_version_aware(version_qs)
270274
all_versions = [(version.slug, version.verbose_name) for version in version_qs]
271275
return all_versions
272-
return [()]
276+
return None
273277

274278

275279
class UpdateProjectForm(

readthedocs/rtd_tests/tests/test_project_forms.py

+11
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,17 @@ def test_list_all_versions_on_default_branch(self):
270270
},
271271
)
272272

273+
def test_default_version_field_if_no_active_version(self):
274+
project_1 = get(Project)
275+
project_1.versions.filter(active=True).update(active=False)
276+
277+
# No active versions of project exists
278+
self.assertFalse(project_1.versions.filter(active=True).exists())
279+
280+
form = ProjectAdvancedForm(instance=project_1)
281+
self.assertTrue(form.fields['default_version'].widget.attrs['readonly'])
282+
self.assertEqual(form.fields['default_version'].initial, 'latest')
283+
273284

274285
class TestTranslationForms(TestCase):
275286

0 commit comments

Comments
 (0)