3737)
3838from djangocms_versioning .models import Version
3939
40-
4140VERSIONING_MENU_IDENTIFIER = "version"
4241CMS_SUPPORTS_DELETING_TRANSLATIONS = version .Version (cms_version ) > version .Version ("4.1.4" )
4342CMS_ADDS_PREVIEW_BUTTON = version .Version (cms_version ) >= version .Version ("4.2" )
@@ -56,9 +55,7 @@ def _is_versioned(self):
5655 versioning
5756 """
5857 versioning_extension = apps .get_app_config ("djangocms_versioning" ).cms_extension
59- return versioning_extension .is_content_model_versioned (
60- self .toolbar .obj .__class__
61- )
58+ return versioning_extension .is_content_model_versioned (self .toolbar .obj .__class__ )
6259
6360 def _get_proxy_model (self ):
6461 """Helper method to get the proxy model class for the content
@@ -67,8 +64,7 @@ def _get_proxy_model(self):
6764 return self ._get_versionable ().version_model_proxy
6865
6966 def _add_publish_button (self ):
70- """Helper method to add a publish button to the toolbar
71- """
67+ """Helper method to add a publish button to the toolbar"""
7268 # Check if object is registered with versioning otherwise don't add
7369 if not self ._is_versioned ():
7470 return
@@ -100,8 +96,7 @@ def add_edit_button(self):
10096 self ._add_unlock_button ()
10197
10298 def _add_edit_button (self , disabled = False ):
103- """Helper method to add an edit button to the toolbar
104- """
99+ """Helper method to add an edit button to the toolbar"""
105100 item = ButtonList (side = self .toolbar .RIGHT )
106101 proxy_model = self ._get_proxy_model ()
107102 version = Version .objects .get_for_content (self .toolbar .obj )
@@ -110,9 +105,9 @@ def _add_edit_button(self, disabled=False):
110105 f"admin:{ proxy_model ._meta .app_label } _{ proxy_model .__name__ .lower ()} _edit_redirect" ,
111106 args = (version .pk ,),
112107 )
113- pks_for_grouper = version .versionable .for_content_grouping_values (
114- version . content
115- ). values_list ( "pk" , flat = True )
108+ pks_for_grouper = version .versionable .for_content_grouping_values (version . content ). values_list (
109+ "pk" , flat = True
110+ )
116111 content_type = ContentType .objects .get_for_model (version .content )
117112 draft_exists = Version .objects .filter (
118113 object_id__in = pks_for_grouper , content_type = content_type , state = DRAFT
@@ -126,8 +121,7 @@ def _add_edit_button(self, disabled=False):
126121 self .toolbar .add_item (item )
127122
128123 def _add_unlock_button (self ):
129- """Helper method to add an edit button to the toolbar
130- """
124+ """Helper method to add an edit button to the toolbar"""
131125 if LOCK_VERSIONS and self ._is_versioned ():
132126 item = ButtonList (side = self .toolbar .RIGHT )
133127 proxy_model = self ._get_proxy_model ()
@@ -165,8 +159,7 @@ def _add_lock_message(self):
165159 self .toolbar .add_item (lock_message , position = 0 )
166160
167161 def _add_revert_button (self , disabled = False ):
168- """Helper method to add a revert button to the toolbar
169- """
162+ """Helper method to add a revert button to the toolbar"""
170163 # Check if object is registered with versioning otherwise don't add
171164 if not self ._is_versioned ():
172165 return
@@ -187,8 +180,7 @@ def _add_revert_button(self, disabled=False):
187180 self .toolbar .add_item (item )
188181
189182 def _add_versioning_menu (self ):
190- """ Helper method to add version menu in the toolbar
191- """
183+ """Helper method to add version menu in the toolbar"""
192184 # Check if object is registered with versioning otherwise don't add
193185 if not self ._is_versioned ():
194186 return
@@ -216,13 +208,15 @@ def _add_versioning_menu(self):
216208 proxy_model = self ._get_proxy_model ()
217209 url = reverse (
218210 f"admin:{ proxy_model ._meta .app_label } _{ proxy_model .__name__ .lower ()} _compare" ,
219- args = (version .source .pk ,)
211+ args = (version .source .pk ,),
220212 )
221213
222- url += "?" + urlencode ({
223- "compare_to" : version .pk ,
224- "back" : self .toolbar .request_path ,
225- })
214+ url += "?" + urlencode (
215+ {
216+ "compare_to" : version .pk ,
217+ "back" : self .toolbar .request_path ,
218+ }
219+ )
226220 versioning_menu .add_link_item (name , url = url )
227221 # Discard changes menu entry (wrt to source)
228222 if version .check_discard .as_bool (self .request .user ): # pragma: no cover
@@ -231,26 +225,22 @@ def _add_versioning_menu(self):
231225 _ ("Discard Changes" ),
232226 url = reverse (
233227 f"admin:{ proxy_model ._meta .app_label } _{ proxy_model .__name__ .lower ()} _discard" ,
234- args = (version .pk ,)
235- )
228+ args = (version .pk ,),
229+ ),
236230 )
237231
238232 def _get_published_page_version (self ):
239- """Returns a published page if one exists for the toolbar object
240- """
233+ """Returns a published page if one exists for the toolbar object"""
241234 language = self .current_lang
242235
243236 # Exit the current toolbar object is not a Page / PageContent instance
244237 if not isinstance (self .toolbar .obj , PageContent ) or not self .page :
245238 return
246239
247- return PageContent .objects .filter (
248- page = self .page , language = language
249- ).select_related ("page" ).first ()
240+ return PageContent .objects .filter (page = self .page , language = language ).select_related ("page" ).first ()
250241
251242 def _add_view_published_button (self ):
252- """Helper method to add a publish button to the toolbar
253- """
243+ """Helper method to add a publish button to the toolbar"""
254244 # Check if object is registered with versioning otherwise don't add
255245 if not self ._is_versioned ():
256246 return
@@ -361,20 +351,10 @@ def change_language_menu(self):
361351 return None
362352
363353 languages = get_language_dict (self .current_site .pk )
364- remove = [
365- (code , languages .get (code , code ))
366- for code in self .page .get_languages ()
367- if code in languages
368- ]
369- add = [
370- code
371- for code in languages .items ()
372- if code not in remove
373- ]
354+ remove = [(code , languages .get (code , code )) for code in self .page .get_languages () if code in languages ]
355+ add = [code for code in languages .items () if code not in remove ]
374356 copy = [
375- (code , name )
376- for code , name in languages .items ()
377- if code != self .current_lang and (code , name ) in remove
357+ (code , name ) for code , name in languages .items () if code != self .current_lang and (code , name ) in remove
378358 ]
379359
380360 if add :
@@ -387,9 +367,7 @@ def change_language_menu(self):
387367 page_add_url = admin_reverse ("cms_pagecontent_add" )
388368
389369 for code , name in add :
390- url = add_url_parameters (
391- page_add_url , cms_page = self .page .pk , language = code
392- )
370+ url = add_url_parameters (page_add_url , cms_page = self .page .pk , language = code )
393371 add_plugins_menu .add_modal_item (name , url = url )
394372
395373 if remove and ALLOW_DELETING_VERSIONS and CMS_SUPPORTS_DELETING_TRANSLATIONS :
@@ -405,8 +383,13 @@ def change_language_menu(self):
405383 on_close = REFRESH_PAGE
406384 if self .toolbar .get_object () == pagecontent and not disabled :
407385 other_content = next (
408- (self .page .get_admin_content (lang ) for lang in self .page .get_languages ()
409- if lang != pagecontent .language and lang in languages ), None )
386+ (
387+ self .page .get_admin_content (lang )
388+ for lang in self .page .get_languages ()
389+ if lang != pagecontent .language and lang in languages
390+ ),
391+ None ,
392+ )
410393 on_close = get_object_preview_url (other_content )
411394 remove_plugins_menu .add_modal_item (name , url = url , disabled = disabled , on_close = on_close )
412395
@@ -423,9 +406,11 @@ def change_language_menu(self):
423406 if page_content : # Only offer to copy if content for source language exists
424407 page_copy_url = admin_reverse ("cms_pagecontent_copy_language" , args = (page_content .pk ,))
425408 copy_plugins_menu .add_ajax_item (
426- title % name , action = page_copy_url ,
409+ title % name ,
410+ action = page_copy_url ,
427411 data = {"source_language" : code , "target_language" : self .current_lang },
428- question = question % name , on_success = self .toolbar .REFRESH_PAGE
412+ question = question % name ,
413+ on_success = self .toolbar .REFRESH_PAGE ,
429414 )
430415 item_added = True
431416 if not item_added : # pragma: no cover
@@ -454,11 +439,9 @@ def add_language_menu(self):
454439 return # No need to show the language menu if there is only one language
455440
456441 if len (page_languages ) < 2 :
457- return # No need to show language menu if current page has one language
442+ return # No need to show language menu if current page has one language
458443
459- language_menu = self .toolbar .get_or_create_menu (
460- LANGUAGE_MENU_IDENTIFIER , _ ("Languages" ), position = - 1
461- )
444+ language_menu = self .toolbar .get_or_create_menu (LANGUAGE_MENU_IDENTIFIER , _ ("Languages" ), position = - 1 )
462445 for code , name in languages :
463446 # Get the page content, it could be draft too!
464447 page_content = self .page .get_admin_content (language = code )
@@ -472,8 +455,7 @@ def replace_toolbar(old, new):
472455 new_name = "." .join ((new .__module__ , new .__name__ ))
473456 old_name = "." .join ((old .__module__ , old .__name__ ))
474457 toolbar_pool .toolbars = OrderedDict (
475- (new_name , new ) if name == old_name else (name , toolbar )
476- for name , toolbar in toolbar_pool .toolbars .items ()
458+ (new_name , new ) if name == old_name else (name , toolbar ) for name , toolbar in toolbar_pool .toolbars .items ()
477459 )
478460
479461
0 commit comments