def update(self): """Update global information """ self.mtool = getToolByName(self.context, 'portal_membership') self.wtool = getToolByName(self.context, 'portal_workflow') self.portal = getToolByName(self.context, 'portal_url').getPortalObject() portal_repository = getToolByName(self.context, 'portal_repository') self.member = self.mtool.getAuthenticatedMember() self.memberid = self.member.getId() self.anonymous = self.mtool.isAnonymousUser() roles = self.member.getRolesInContext(self.context) self.ismanager = self.member.has_role( ('Manager', 'Site Administrator'), self.context) self.isowner = 'Owner' in roles self.iseditor = 'Editor' in roles self.iscontributor = 'Contributor' in roles self.isreviewer = 'Reviewer' in roles self.canreview = not self.anonymous \ and self._checkPermission(self.context, ReviewPortalContent) self.canadd = not self.anonymous \ and self._checkPermission(self.context, AddPortalContent) self.caneditcontainer = not self.anonymous \ and self._checkPermission(self.context, ModifyPortalContent) self.candeletecontents = not self.anonymous \ and self._checkPermission(self.context, DeleteObjects) self.versionable_types = portal_repository.getVersionableContentTypes() self.canaccessversions = not self.anonymous \ and self._checkPermission(self.context, AccessPreviousVersions) self.canaccessreviewhistory = self.canreview or not self.anonymous \ and self._checkPermission(self.context, RequestReview) self.wfpolicy = get_workflow_policy(self.context) externaleditor_schema = IExternalEditorSchema( getUtility(IPloneSiteRoot)) self.canexternaledit = not self.anonymous \ and self.member.getProperty('ext_editor', False) \ and getattr(externaleditor_schema,'ext_editor', False) self.external_editable_types = getattr(externaleditor_schema, 'externaleditor_enabled_types', [])
def update(self): """Update global information """ self.mtool = getToolByName(self.context, 'portal_membership') self.wtool = getToolByName(self.context, 'portal_workflow') self.portal = getToolByName(self.context, 'portal_url').getPortalObject() portal_repository = getToolByName(self.context, 'portal_repository') self.member = self.mtool.getAuthenticatedMember() self.memberid = self.member.getId() self.anonymous = self.mtool.isAnonymousUser() roles = self.member.getRolesInContext(self.context) self.ismanager = self.member.has_role(('Manager', 'Site Administrator'), self.context) self.isowner = 'Owner' in roles self.iseditor = 'Editor' in roles self.iscontributor = 'Contributor' in roles self.isreviewer = 'Reviewer' in roles self.canreview = not self.anonymous \ and self._checkPermission(self.context, ReviewPortalContent) self.canadd = not self.anonymous \ and self._checkPermission(self.context, AddPortalContent) self.caneditcontainer = not self.anonymous \ and self._checkPermission(self.context, ModifyPortalContent) self.candeletecontents = not self.anonymous \ and self._checkPermission(self.context, DeleteObjects) self.versionable_types = portal_repository.getVersionableContentTypes() self.canaccessversions = not self.anonymous \ and self._checkPermission(self.context, AccessPreviousVersions) self.canaccessreviewhistory = self.canreview or not self.anonymous \ and self._checkPermission(self.context, RequestReview) self.wfpolicy = get_workflow_policy(self.context) externaleditor_schema = IExternalEditorSchema(getUtility(IPloneSiteRoot)) self.canexternaledit = not self.anonymous \ and self.member.getProperty('ext_editor', False) \ and getattr(externaleditor_schema,'ext_editor', False) self.external_editable_types = getattr(externaleditor_schema, 'externaleditor_enabled_types', [])
def __init__(self, *args, **kwargs): context = kwargs['context'] del kwargs['context'] super(Table, self).__init__(*args, **kwargs) self.context = context self.mtool = getToolByName(context, 'portal_membership') self.wtool = getToolByName(context, 'portal_workflow') qitool = getToolByName(self.context, 'portal_quickinstaller') portal_url = self.portal_url = getToolByName(context, 'portal_url')() self.icon_edit = portal_url + '/edit.png' self.icon_cut = portal_url + '/cut_icon.png' self.icon_copy = portal_url + '/copy_icon.png' self.icon_delete = portal_url + '/delete_icon.png' self.icon_history = portal_url + '/history.png' self.icon_download = portal_url + '/download_icon.png' self.icon_quickview = portal_url + '/search_icon.png' self.icon_trash = portal_url + '/ecreall-trashcan.png' self.icon_restore = portal_url + '/ecreall-trashcan-restore.png' self.listingrights = context.unrestrictedTraverse('@@edmlistingrights') self.listingrights.update() self.listingoptions = context.unrestrictedTraverse('@@edmlistingoptions') self.plone_view = context.unrestrictedTraverse('@@plone') self.brains = [] self.wf_policy = get_workflow_policy(context) for item in self.items: if not 'brain' in item: # bypass items not in page continue if 'view_url' in item and item['view_url'].endswith('folder_contents'): item['view_url'] = item['view_url'].replace('/folder_contents', '') if 'url_href_title' in item and item['url_href_title'].endswith(': '):# todo: fix it in plone item['url_href_title'] = item['url_href_title'][:-2] if item['brain'].getIcon: item['icon_url'] = '%s/%s' % (self.portal_url, item['brain'].getIcon) else: item['icon_url'] = '' if self.wf_policy and item['brain'].review_state: chain = self._getPlacefulChainForType(item['brain'].portal_type) if chain: workflow = self.wtool[chain[0]] state = workflow.states.get(item['brain'].review_state, None) if state: item['state_title'] = state.title self.brains.append(item['brain']) self.has_ecreall_trashcan = qitool.isProductInstalled('ecreall.trashcan') self.sortable_columns = self.listingoptions.sort_mode == 'auto' self.show_sort_column = not self.sortable_columns and self.listingrights.globally_show_sort() self.show_trashcan_column = self.showTrashcan() suppl_columns = getAdapters((context, self.request, self), IEDMListingSupplColumn) self.suppl_columns = [] for name, column in suppl_columns: if hasattr(column, 'available'): if not column.available(self.brains): continue self.suppl_columns.append(column)