Beispiel #1
0
    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', [])
Beispiel #3
0
    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)