13 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
14 |
14 |
15 from pyramid.httpexceptions import HTTPSeeOther |
15 from pyramid.httpexceptions import HTTPSeeOther |
16 |
16 |
17 from pyams_content.shared.site import ISiteElementNavigation |
17 from pyams_content.shared.site import ISiteElementNavigation |
18 from pyams_content.shared.site.interfaces import FOLDER_REDIRECT_DISPLAY_MODE, ISiteFolder |
18 from pyams_content.shared.site.interfaces import SITE_CONTAINER_REDIRECT_MODE, ISiteFolder |
19 from pyams_default_theme.interfaces import IContentSummaryInfo |
19 from pyams_default_theme.interfaces import IContentSummaryInfo |
20 from pyams_i18n.interfaces import II18n |
20 from pyams_i18n.interfaces import II18n |
21 from pyams_pagelet.pagelet import pagelet_config |
21 from pyams_pagelet.pagelet import pagelet_config |
22 from pyams_portal.views import PortalContextIndexPage, PortalContextPreviewPage |
22 from pyams_portal.views import PortalContextIndexPage, PortalContextPreviewPage |
23 from pyams_skin.layer import IPyAMSUserLayer |
23 from pyams_skin.layer import IPyAMSUserLayer |
63 @pagelet_config(name='', context=ISiteFolder, layer=IPyAMSUserLayer) |
63 @pagelet_config(name='', context=ISiteFolder, layer=IPyAMSUserLayer) |
64 class SiteFolderIndexPage(PortalContextIndexPage): |
64 class SiteFolderIndexPage(PortalContextIndexPage): |
65 """Site folder index page""" |
65 """Site folder index page""" |
66 |
66 |
67 def __call__(self, **kwargs): |
67 def __call__(self, **kwargs): |
68 if self.context.navigation_mode == FOLDER_REDIRECT_DISPLAY_MODE: |
68 if self.context.navigation_mode == SITE_CONTAINER_REDIRECT_MODE: |
69 target = next(self.context.get_visible_items(self.request), None) |
69 target = next(self.context.get_visible_items(self.request), None) |
70 if target is not None: |
70 if target is not None: |
71 return HTTPSeeOther(relative_url(target, request=self.request)) |
71 return HTTPSeeOther(relative_url(target, request=self.request)) |
72 return super(SiteFolderIndexPage, self).__call__(**kwargs) |
72 return super().__call__(**kwargs) |
73 |
73 |
74 |
74 |
75 @pagelet_config(name='preview.html', context=ISiteFolder, layer=IPyAMSUserLayer, permission=VIEW_SYSTEM_PERMISSION) |
75 @pagelet_config(name='preview.html', context=ISiteFolder, layer=IPyAMSUserLayer, |
|
76 permission=VIEW_SYSTEM_PERMISSION) |
76 class SiteFolderPreviewPage(PortalContextPreviewPage): |
77 class SiteFolderPreviewPage(PortalContextPreviewPage): |
77 """Site folder preview page""" |
78 """Site folder preview page""" |
78 |
79 |
79 def __call__(self, **kwargs): |
80 def __call__(self, **kwargs): |
80 if self.context.navigation_mode == FOLDER_REDIRECT_DISPLAY_MODE: |
81 if self.context.navigation_mode == SITE_CONTAINER_REDIRECT_MODE: |
81 target = next(self.context.get_visible_items(self.request), None) |
82 target = next(self.context.get_visible_items(self.request), None) |
82 if target is not None: |
83 if target is not None: |
83 return HTTPSeeOther(relative_url(target, request=self.request, view_name='preview.html')) |
84 return HTTPSeeOther(relative_url(target, request=self.request, |
84 return super(SiteFolderPreviewPage, self).__call__(**kwargs) |
85 view_name='preview.html')) |
|
86 return super().__call__(**kwargs) |