Skip to content

Commit 5592a72

Browse files
committed
rework for readability
1 parent b4a3506 commit 5592a72

2 files changed

Lines changed: 57 additions & 51 deletions

File tree

src/collective/exportimport/export_other.py

Lines changed: 53 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
class BaseExport(BrowserView):
8787
"""Just DRY"""
8888

89-
show_root_export_option = False
89+
show_portal_export_option = False
9090

9191
def download(self, data):
9292
filename = self.request.form.get("filename")
@@ -429,27 +429,28 @@ def all_translations(self): # noqa: C901
429429
class ExportLocalRoles(BaseExport):
430430
"""Export all local roles"""
431431

432-
show_root_export_option = True
432+
show_portal_export_option = True
433433

434-
def __call__(self, download_to_server=False, exclude_root_settings=False):
434+
def __call__(self, download_to_server=False, exclude_portal_settings=False):
435435
self.title = _(u"Export local roles")
436436
self.download_to_server = download_to_server
437437
if not self.request.form.get("form.submitted", False):
438438
return self.index()
439439

440440
logger.info(u"Exporting local roles...")
441-
data = self.all_localroles(exclude_root_settings)
441+
include_portal_settings = not exclude_portal_settings
442+
data = self.all_localroles(include_portal_settings)
442443
logger.info(u"Exported local roles for %s items", len(data))
443444
self.download(data)
444445

445-
def all_localroles(self, exclude_root_settings=False):
446+
def all_localroles(self, include_portal_settings=True):
446447
self.results = []
447448

448449
portal = api.portal.get()
449450
portal.ZopeFindAndApply(portal, search_sub=True, apply_func=self.get_localroles)
450451

451-
if not exclude_root_settings:
452-
self.get_root_localroles()
452+
if include_portal_settings:
453+
self.get_portal_localroles()
453454

454455
return self.results
455456

@@ -478,7 +479,7 @@ def _get_localroles(self, obj, uid):
478479
return
479480
self.results.append(item)
480481

481-
def get_root_localroles(self):
482+
def get_portal_localroles(self):
482483
site = api.portal.get()
483484
self._get_localroles(site, PORTAL_PLACEHOLDER)
484485

@@ -525,20 +526,21 @@ def get_position_in_parent(obj, path):
525526
class ExportDefaultPages(BaseExport):
526527
"""Export all default_page settings."""
527528

528-
show_root_export_option = True
529+
show_portal_export_option = True
529530

530-
def __call__(self, download_to_server=False, exclude_root_settings=False):
531+
def __call__(self, download_to_server=False, exclude_portal_settings=False):
531532
self.title = _(u"Export default pages")
532533
self.download_to_server = download_to_server
533534
if not self.request.form.get("form.submitted", False):
534535
return self.index()
535536

536537
logger.info(u"Exporting default pages...")
537-
data = self.all_default_pages(exclude_root_settings)
538+
include_portal_settings = not exclude_portal_settings
539+
data = self.all_default_pages(include_portal_settings)
538540
logger.info(u"Exported %s default pages", len(data))
539541
self.download(data)
540542

541-
def all_default_pages(self, exclude_root_settings=False):
543+
def all_default_pages(self, include_portal_settings=True):
542544
results = []
543545
catalog = api.portal.get_tool("portal_catalog")
544546
for brain in catalog.unrestrictedSearchResults(
@@ -553,11 +555,11 @@ def all_default_pages(self, exclude_root_settings=False):
553555
logger.error(u"brain.getObject() is None %s", brain.getPath())
554556
continue
555557
if IPloneSiteRoot.providedBy(obj):
556-
# Site root is handled below (in Plone 6 it is returned by a catalog search)
558+
# Portal is handled below (in Plone 6 it is returned by a catalog search)
557559
continue
558560

559561
try:
560-
data = self.get_default_page_info(obj)
562+
data = get_default_page_info(obj)
561563
except Exception:
562564
logger.info(
563565
u"Error exporting default_page for %s",
@@ -570,40 +572,43 @@ def all_default_pages(self, exclude_root_settings=False):
570572
results.append(data)
571573

572574
# handle portal
573-
if not exclude_root_settings:
575+
if include_portal_settings:
574576
portal = api.portal.get()
575577
try:
576-
data = self.get_default_page_info(portal)
577-
if data:
578-
data["uuid"] = config.SITE_ROOT
579-
results.append(data)
578+
portal_data = get_default_page_info(portal)
579+
if portal_data:
580+
portal_data["uuid"] = config.SITE_ROOT
581+
results.append(portal_data)
580582
except Exception:
581583
logger.info(u"Error exporting default_page for portal", exc_info=True)
582-
583584
return results
584585

585586
def get_default_page_info(self, obj):
586-
uid = IUUID(obj, None)
587+
return get_default_page_info(obj)
587588

588-
# We use a simplified method to only get index_html
589-
# and the property default_page on the object.
590-
# We don't care about other cases
591-
# 1. obj is folderish, check for a index_html in it
592-
if "index_html" in obj:
593-
default_page = "index_html"
594-
else:
595-
# 2. Check attribute 'default_page'
596-
default_page = getattr(aq_base(obj), "default_page", [])
597-
598-
if default_page and default_page in obj:
599-
default_page_obj = obj.get(default_page)
600-
if default_page_obj:
601-
default_page_uid = IUUID(default_page_obj, None)
602-
return {
603-
"uuid": uid,
604-
"default_page": default_page,
605-
"default_page_uuid": default_page_uid,
606-
}
589+
590+
def get_default_page_info(obj):
591+
uid = IUUID(obj, None)
592+
593+
# We use a simplified method to only get index_html
594+
# and the property default_page on the object.
595+
# We don't care about other cases
596+
# 1. obj is folderish, check for a index_html in it
597+
if "index_html" in obj:
598+
default_page = "index_html"
599+
else:
600+
# 2. Check attribute 'default_page'
601+
default_page = getattr(aq_base(obj), "default_page", [])
602+
603+
if default_page and default_page in obj:
604+
default_page_obj = obj.get(default_page)
605+
if default_page_obj:
606+
default_page_uid = IUUID(default_page_obj, None)
607+
return {
608+
"uuid": uid,
609+
"default_page": default_page,
610+
"default_page_uuid": default_page_uid,
611+
}
607612

608613

609614
if HAS_DISCUSSION: # noqa: C901
@@ -651,28 +656,29 @@ def all_discussions(self):
651656

652657
class ExportPortlets(BaseExport):
653658

654-
show_root_export_option = True
659+
show_portal_export_option = True
655660

656-
def __call__(self, download_to_server=False, exclude_root_settings=False):
661+
def __call__(self, download_to_server=False, exclude_portal_settings=False):
657662
self.title = _(u"Export portlets")
658663
self.download_to_server = download_to_server
659664
if not self.request.form.get("form.submitted", False):
660665
return self.index()
661666

662667
logger.info(u"Exporting portlets...")
663-
data = self.all_portlets(exclude_root_settings)
668+
include_portal_settings = not exclude_portal_settings
669+
data = self.all_portlets(include_portal_settings)
664670
logger.info(u"Exported info for %s items with portlets", len(data))
665671
self.download(data)
666672

667-
def all_portlets(self, exclude_root_settings=False):
673+
def all_portlets(self, include_portal_settings=True):
668674
self.results = []
669675
portal = api.portal.get()
670676
portal.ZopeFindAndApply(
671677
self.context, search_sub=True, apply_func=self.get_portlets
672678
)
673679

674-
if not exclude_root_settings:
675-
self.get_root_portlets()
680+
if include_portal_settings:
681+
self.get_portal_portlets()
676682

677683
return self.results
678684

@@ -698,7 +704,7 @@ def _get_portlets(self, obj, uid):
698704
self.results.append(obj_results)
699705
return
700706

701-
def get_root_portlets(self):
707+
def get_portal_portlets(self):
702708
site = api.portal.get()
703709
self._get_portlets(site, PORTAL_PLACEHOLDER)
704710
return

src/collective/exportimport/templates/export_other.pt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
</h1>
1414

1515
<form action="@@export_other" tal:attributes="action request/URL" method="post" enctype="multipart/form-data">
16-
<div class="field mb-3" tal:condition="python: getattr(view, 'show_root_export_option', False)">
16+
<div class="field mb-3" tal:condition="python: getattr(view, 'show_portal_export_option', False)">
1717
<div class="form-check">
18-
<input class="form-check-input" type="checkbox" name="exclude_root_settings:boolean" id="exclude_root">
19-
<label for="exclude_root" class="form-check-label" i18n:translate="">
18+
<input class="form-check-input" type="checkbox" name="exclude_portal_settings:boolean" id="exclude_portal">
19+
<label for="exclude_portal" class="form-check-label" i18n:translate="">
2020
Do not export portal settings.
2121
<span class="formHelp" i18n:translate="">
2222
When you have exported a folder, instead of the entire portal.
@@ -26,7 +26,7 @@
2626
<hr>
2727
</div>
2828

29-
<div class="field mb-3">
29+
<div class="field mb-3">
3030
<div class="form-check">
3131
<input class="form-check-input" type="radio" name="download_to_server:int" value="0" id="download_local" checked="checked">
3232
<label for="download_local" class="form-check-label" i18n:translate="">

0 commit comments

Comments
 (0)