4
4
from urllib .parse import urlparse
5
5
6
6
from crispy_forms .helper import FormHelper
7
- from crispy_forms .layout import Fieldset , Layout , HTML , Submit
7
+ from crispy_forms .layout import HTML , Fieldset , Layout , Submit
8
8
from django import forms
9
9
from django .conf import settings
10
10
from django .contrib .auth .models import User
14
14
from textclassifier .validators import ClassifierValidator
15
15
16
16
from readthedocs .builds .constants import INTERNAL
17
+ from readthedocs .core .mixins import HideProtectedLevelMixin
17
18
from readthedocs .core .utils import slugify , trigger_build
18
19
from readthedocs .core .utils .extend import SettingsOverrideObject
19
20
from readthedocs .integrations .models import Integration
@@ -190,7 +191,7 @@ def clean_tags(self):
190
191
return tags
191
192
192
193
193
- class ProjectAdvancedForm (ProjectTriggerBuildMixin , ProjectForm ):
194
+ class ProjectAdvancedForm (HideProtectedLevelMixin , ProjectTriggerBuildMixin , ProjectForm ):
194
195
195
196
"""Advanced project option form."""
196
197
@@ -203,7 +204,8 @@ class Meta:
203
204
'analytics_disabled' ,
204
205
'show_version_warning' ,
205
206
'single_version' ,
206
- 'external_builds_enabled'
207
+ 'external_builds_enabled' ,
208
+ 'privacy_level' ,
207
209
)
208
210
# These that can be set per-version using a config file.
209
211
per_version_settings = (
@@ -232,17 +234,24 @@ def __init__(self, *args, **kwargs):
232
234
help_text = render_to_string (
233
235
'projects/project_advanced_settings_helptext.html'
234
236
)
235
- self .helper .layout = Layout (
237
+
238
+ per_project_settings = list (self .Meta .per_project_settings )
239
+ if not settings .ALLOW_PRIVATE_REPOS :
240
+ self .fields .pop ('privacy_level' )
241
+ per_project_settings .remove ('privacy_level' )
242
+
243
+ field_sets = [
236
244
Fieldset (
237
245
_ ("Global settings" ),
238
- * self . Meta . per_project_settings ,
246
+ * per_project_settings ,
239
247
),
240
248
Fieldset (
241
249
_ ("Default settings" ),
242
250
HTML (help_text ),
243
251
* self .Meta .per_version_settings ,
244
252
),
245
- )
253
+ ]
254
+ self .helper .layout = Layout (* field_sets )
246
255
self .helper .add_input (Submit ('save' , _ ('Save' )))
247
256
248
257
default_choice = (None , '-' * 9 )
0 commit comments