Exemple #1
0
    def sortedEventsBySlots(self, events):
        """Sorted events by slot"""

        mp = getToolByName(self, 'portal_properties')
        special_event_types_pro = mp.monet_calendar_event_properties.special_event_types
        special_event_types = DisplayList()
        for etype in special_event_types_pro:
            special_event_types.add(etype, _(etype))

        sorted_events = {
            'morning': [],
            'afternoon': [],
            'night': [],
            'allday': [],
            'sequence_slots': ['morning', 'afternoon', 'night', 'allday']
        }
        sorted_events_keys = sorted_events.keys()

        for event in events:
            inter = list(
                set(event.getEventType).intersection(set(special_event_types)))
            if inter:
                if not inter[0] in sorted_events['sequence_slots']:
                    sorted_events['sequence_slots'].append(inter[0])
                    sorted_events[inter[0]] = []
                sorted_events[inter[0]].append(event)
                continue
            for key in sorted_events_keys:
                if event.getSlots == key:
                    sorted_events[key].append(event)
        return sorted_events
 def testGetAsDisplayListWithCustomColumns(self):
     lst = DisplayList()
     lst.add('c', 'a')
     lst.add('f', 'd')
     self.assertEqual(
         self.field.getAsDisplayList(self.demo, 'The third', 'column1'),
         lst)
 def getEventTypeVocab(self):
     mp = getToolByName(self, 'portal_properties')
     items = mp.monet_calendar_event_properties.event_types
     vocab = DisplayList()
     for item in items:
         vocab.add(item, _(item))
     return vocab
 def sortedEventsBySlots(self,events):
     """Sorted events by slot"""
     
     mp = getToolByName(self,'portal_properties')
     special_event_types_pro = mp.monet_calendar_event_properties.special_event_types
     special_event_types = DisplayList()
     for etype in special_event_types_pro:
         special_event_types.add(etype,_(etype))
 
     sorted_events = {'morning':[],
                      'afternoon':[],
                      'night':[],
                      'allday':[],
                      'sequence_slots':['morning','afternoon','night','allday']}
     sorted_events_keys = sorted_events.keys()
     
     for event in events:
         inter = list(set(event.getEventType).intersection(set(special_event_types)))
         if inter:
             if not inter[0] in sorted_events['sequence_slots']:
                 sorted_events['sequence_slots'].append(inter[0])
                 sorted_events[inter[0]] = []
             sorted_events[inter[0]].append(event)
             continue
         for key in sorted_events_keys:
             if event.getSlots == key:
                 sorted_events[key].append(event)
     return sorted_events
Exemple #5
0
def getTagsAndTagsCount(results):

    from Products.Archetypes.atapi import Vocabulary, DisplayList
    from Products.Archetypes.utils import unique
    coll = {}

    for o in results:
        lstSubject = []
        try:
            lstSubject = o.Subject
        except AttributeError:
            from p4a.plonecalendar.eventprovider import BrainEvent
            if isinstance(o,BrainEvent):
                lstSubject = o.context.Subject
            else:
                lstSubject = []
        for eSub in lstSubject:
            if coll.get(eSub,None) is None:
                coll[eSub] = {'name':eSub,'count':1}
            else:
                coll[eSub]['count'] = coll.get(eSub)['count'] + 1

    dl = DisplayList()
    collkeys = coll.keys()
    collkeys.sort(lambda x,y: cmp(x.lower(),y.lower()),reverse=False)

    for obj in collkeys:
        dl.add(coll[obj]['name'],coll[obj]['count'])

    return Vocabulary(dl,None,None)
Exemple #6
0
 def testGetAsDisplayListWithCustomColumns(self):
     lst = DisplayList()
     lst.add('c', 'a')
     lst.add('f', 'd')
     self.assertEqual(
         self.field.getAsDisplayList(self.demo, 'The third', 'column1'),
         lst)
Exemple #7
0
def to_display_list(pairs, sort_by="key", allow_empty=True):
    """Create a Plone DisplayList from list items

    :param pairs: list of key, value pairs
    :param sort_by: Sort the items either by key or value
    :param allow_empty: Allow to select an empty value
    :returns: Plone DisplayList
    """
    dl = DisplayList()

    if isinstance(pairs, basestring):
        pairs = [pairs, pairs]
    for pair in pairs:
        # pairs is a list of lists -> add each pair
        if isinstance(pair, (tuple, list)):
            dl.add(*pair)
        # pairs is just a single pair -> add it and stop
        if isinstance(pair, basestring):
            dl.add(*pairs)
            break

    # add the empty option
    if allow_empty:
        dl.add("", "")

    # sort by key/value
    if sort_by == "key":
        dl = dl.sortedByKey()
    elif sort_by == "value":
        dl = dl.sortedByValue()

    return dl
 def getEventTypeVocab(self):
     mp = getToolByName(self,'portal_properties')
     items = mp.monet_calendar_event_properties.event_types
     vocab = DisplayList()
     for item in items:
         vocab.add(item,_(item))
     return vocab
 def getEventTypeName(self,key):
     mp = getToolByName(self,'portal_properties')
     event_types_pro = mp.monet_calendar_event_properties.event_types
     event_types = DisplayList()
     for etype in event_types_pro:
         event_types.add(etype,_(etype))
     
     return event_types.getValue(key)
Exemple #10
0
    def getEventTypeName(self, key):
        mp = getToolByName(self, 'portal_properties')
        event_types_pro = mp.monet_calendar_event_properties.event_types
        event_types = DisplayList()
        for etype in event_types_pro:
            event_types.add(etype, _(etype))

        return event_types.getValue(key)
 def makeVocab(self,list):
     """Takes in a list (of keywords) and returns a Vocabulary without a
     translation domain.
     """
     dl = DisplayList()
     for i in list:
         dl.add(i,i)
     return Vocabulary(dl,None,None)
 def makeVocab(self, list):
     """Takes in a list (of keywords) and returns a Vocabulary without a
     translation domain.
     """
     dl = DisplayList()
     for i in list:
         dl.add(i, i)
     return Vocabulary(dl, None, None)
 def makeVocab(self,list):
     """Takes in a list (of keywords) and returns a display list that
     is expected by the Vocabulary machinery.
     """
     dl = DisplayList()
     for i in list:
         dl.add(i,i)
     return Vocabulary(dl, None, None)
Exemple #14
0
 def getAvailableSelfCertificationCriteriaAsDisplayList(self):
     """Get self-certification criteria in DisplayList form."""
     try:
         return DisplayList([
             (item, item)
             for item in self.getAvailableSelfCertificationCriteria()
         ])
     except:
         return DisplayList([('no', 'criteria')])
 def getSlotsName(self,key):
     mp = getToolByName(self,'portal_properties')
     
     special_event_types_pro = mp.monet_calendar_event_properties.special_event_types
     special_event_types = DisplayList()
     for etype in special_event_types_pro:
         special_event_types.add(etype,_(etype))
     
     return (key in special_event_types) and special_event_types.getValue(key) or SlotsVocab[key]
Exemple #16
0
 def getAvailableIssueTransitions(self):
     """
     Get the available transitions for the issue.
     """
     wftool = getToolByName(self, "portal_workflow")
     transitions = DisplayList()
     transitions.add("", "No change")
     for tdef in wftool.getTransitionsFor(self):
         transitions.add(tdef["id"], tdef["title_or_id"])
     return transitions
Exemple #17
0
 def getTagsVocab(self):
     """
     Get the available areas as a DispayList.
     """
     tracker = self.getTracker()
     tags = tracker.getTagsInUse()
     vocab = DisplayList()
     for t in tags:
         vocab.add(t, t)
     return vocab
Exemple #18
0
 def getAvailableIssueTransitions(self):
     """
     Get the available transitions for the issue.
     """
     wftool = getToolByName(self, 'portal_workflow')
     transitions = DisplayList()
     transitions.add('', 'No change')
     for tdef in wftool.getTransitionsFor(self):
         transitions.add(tdef['id'], tdef['title_or_id'])
     return transitions
Exemple #19
0
 def getTagsVocab(self):
     """
     Get the available areas as a DispayList.
     """
     tracker = self.getTracker()
     tags = tracker.getTagsInUse()
     vocab = DisplayList()
     for t in tags:
         vocab.add(t, t)
     return vocab
Exemple #20
0
    def getSlotsName(self, key):
        mp = getToolByName(self, 'portal_properties')

        special_event_types_pro = mp.monet_calendar_event_properties.special_event_types
        special_event_types = DisplayList()
        for etype in special_event_types_pro:
            special_event_types.add(etype, _(etype))

        return (key in special_event_types
                ) and special_event_types.getValue(key) or SlotsVocab[key]
 def getMembersVocab(self):
     """Get the members available as a DisplayList."""
     m_tool = getToolByName(self, 'portal_membership')
     users = m_tool.searchForMembers()
     vocab = DisplayList()
     vocab.add('', 'N/A')
     for user in users:
         user_id = user.getId()
         user_name = user.getProperty('fullname')
         vocab.add(user_id, user_name)
     return vocab
Exemple #22
0
 def getReleasesVocab(self):
     """
     Get the vocabulary of available releases, including the item
     (UNASSIGNED) to denote that a release is not yet assigned.
     """
     vocab = DisplayList()
     vocab.add("(UNASSIGNED)", _(u"None"))
     tracker = self.getTracker()
     trackerVocab = tracker.getReleasesVocab()
     for k in trackerVocab.keys():
         vocab.add(k, trackerVocab.getValue(k), trackerVocab.getValue(k))
     return vocab
 def getPaperMembersVocab(self):
     """Return the members of the paper manager group, as a display list"""
     group_tool = getToolByName(self, 'portal_groups')
     if not self.getPaperManagerGroup():
         return self.getMembersVocab()
     portal_group = group_tool.getGroupById(self.getPaperManagerGroup())
     group_members = portal_group.getGroupMembers()
     vocab = DisplayList()
     for member in group_members:
         if member.getProperty('fullname'):
             vocab.add(member.getProperty('id'),member.getProperty('fullname'))
         else:
             vocab.add(member.getProperty('id'),member.getProperty('id'))
     return vocab
Exemple #24
0
    def getManagersVocab(self, strict=False):
        """
        Get the managers available as a DisplayList. The first item is 'None',
        with a key of '(UNASSIGNED)'.

        Note, we now also allow Technicians here, unless we are called
        with 'strict' is True.
        """
        tracker = self.getTracker()
        vocab = DisplayList()
        vocab.add('(UNASSIGNED)', _(u'None'))
        mtool = getToolByName(self, 'portal_membership')
        for item in tracker.getManagers():
            user = mtool.getMemberById(item)
            if user:
                fullname = user.getProperty('fullname', item) or item
            else:
                fullname = item

            vocab.add(item, fullname)
        if not strict:
            for item in tracker.getTechnicians():
                user = mtool.getMemberById(item)
                if user:
                    fullname = user.getProperty('fullname', item) or item
                else:
                    fullname = item

                vocab.add(item, fullname)
            return vocab
    def _getTestsDisplayList(self, backend=None):
        """
        Returns a display list of all available tests for a backend.
        """
        result = DisplayList(())

        if (backend == None):
            backend = self.backend

        ecaab_utils = getToolByName(self, config.ECS_NAME)
        tests = ecaab_utils.getBackendTestFields(backend)

        [result.add(key, tests[key]) for key in tests]
             
        return result
Exemple #26
0
 def listItemEvents(self):
     config = self.config()
     allEvents = config.listItemEvents()
     selectedEvents = config.getMailItemEvents()
     # From the list of all events that are selectable in the config
     # (=configItemEvents), the user may only (de)activate events
     # that are selected in the config (=selectedEvents). Among
     # selectedEvents, the user may only (de)activate events that make sense
     # (ie, if the user is not an adviser, it has no sense to propose him to
     # (de)activate events sent to an adviser).
     res = []
     # We must know if the user is a MeetingManager, an item creator or
     # adviser
     tool = config.getParentNode()
     isMeetingManager = tool.isManager(config)
     isCreator = tool.userIsAmong(['creators'])
     isAdviser = tool.userIsAmong(['advisers'])
     for event in selectedEvents:
         keepIt = False
         if (event in ('lateItem', 'annexAdded', 'askDiscussItem')) and \
            isMeetingManager:
             keepIt = True
         elif event in ('itemPresented', 'itemUnpresented', 'itemDelayed',
                        'itemClonedToThisMC') and isCreator:
             keepIt = True
         elif event in ('adviceToGive', 'adviceInvalidated') and isAdviser:
             keepIt = True
         elif event == 'adviceEdited':
             keepIt = True  # This event requires permission "View".
         if keepIt:
             res.append((event, allEvents.getValue(event)))
     return DisplayList(tuple(res))
    def getWfTransitionsDisplayList(self, wfName=config.ECA_WORKFLOW_ID):
        """
        @return a DisplayList containing all transition keys and titles in 
                assignment's workflow
        """
        dl = DisplayList(())

        #wtool = self.portal_workflow
        #wf = wtool.getWorkflowById(wfName)

        for transition in self.getWfTransitions():
            # FIXME: not sure if this works with the result 
            # from getWfTransitions
            dl.add(transition.id, transition.actbox_name)

        return dl.sortedByValue()
Exemple #28
0
 def _ct_vocabularyPossibleTypes(self):
     """Get a DisplayList of types which may be added (id -> title)
     """
     typelist = [(fti.title_or_id(), fti.getId())
                 for fti in self.getDefaultAddableTypes()]
     typelist.sort()
     return DisplayList([(id, title) for title, id in typelist])
Exemple #29
0
    def listMetaDataFields(self, exclude=True):
        """Return a list of metadata fields from catalog.
        """
        #tool = getToolByName(self, ATCT_TOOLNAME)
        #original_list = tool.getMetadataDisplay(exclude)

        return DisplayList((
            ('getAnalysisCategory', _p('Analysis Category')),
            ('getAnalysisService', _p('Analysis Service')),
            ('getAnalysts', _('Analyst')),
            ('getClientOrderNumber', _('Client Order')),
            ('getClientReference', _('Client Reference')),
            ('getClientSampleID', _('Client Sample ID')),
            ('getClientTitle', _('Client')),
            ('getContactTitle', _('Contact')),
            ('Creator', _p('Creator')),
            ('created', _('Date Created')),
            ('getDatePublished', _('Date Published')),
            ('getDateReceived', _('Date Received')),
            ('getDateSampled', _('Date Sampled')),
            ('getProfileTitle', _('Analysis Profile')),
            ('getRequestID', _('Request ID')),
            ('getSampleID', _('Sample ID')),
            ('getSamplePointTitle', _('Sample Point')),
            ('getSampleTypeTitle', _('Sample Type')),
            ('review_state', _p('Review state')),
        ))
Exemple #30
0
 def getSuppliers(self):
     bsc = getToolByName(self, 'bika_setup_catalog')
     items = [(c.UID, c.getName)
              for c in bsc(portal_type='Supplier',
                           inactive_state='active')]
     items.sort(lambda x, y: cmp(x[1], y[1]))
     return DisplayList(items)
    def getWfTransitionsDisplayList(self, wfName=config.ECA_WORKFLOW_ID):
        """
        @return a DisplayList containing all transition keys and titles in 
                assignment's workflow
        """
        dl = DisplayList(())

        #wtool = self.portal_workflow
        #wf = wtool.getWorkflowById(wfName)

        for transition in self.getWfTransitions():
            # FIXME: not sure if this works with the result
            # from getWfTransitions
            dl.add(transition.id, transition.actbox_name)

        return dl.sortedByValue()
Exemple #32
0
 def getInstrumentTypes(self):
     bsc = getToolByName(self, 'bika_setup_catalog')
     items = [(c.UID, c.Title)
              for c in bsc(portal_type='InstrumentType',
                           inactive_state='active')]
     items.sort(lambda x, y: cmp(x[1], y[1]))
     return DisplayList(items)
    def listMetaDataFields(self, exclude=True):
        """Return a list of metadata fields from catalog
        """

        return DisplayList((
            ('getRequestID', _('Request ID')),
            ('getClientTitle', _('Client Name')),
            ('getContactTitle', _('Contact Name')),
            ('getProfileTitle', _('Analysis Profile')),
            ('getClientOrderNumber', _('Client Order')),
            ('getInvoiced', _('Invoiced')),
            ('review_state', _p('Review state')),
            ('getAnalysisCategory', _p('Analysis Category')),
            ('getAnalysisService', _p('Analysis Service')),
            ('getAnalyst', _('Analyst')),
            ('getClientReference', _('Client Reference')),
            ('getClientSampleID', _('Client Sample ID')),
            ('getSampleTypeTitle', _('Sample Type')),
            ('getSamplePointTitle', _('Sample Point')),
            ('getDateSampled', _('Date Sampled')),
            ('created', _('Date Created')),
            ('getDateReceived', _('Date Received')),
            ('getDatePublished', _('Date Published')),
            ('Creator', _p('Creator')),
        ))
    def test_referenceFieldVocab(self):
        dummy = makeContent(self.folder, portal_type="Refnode", id="dummy")
        test123 = makeContent(self.folder, portal_type="Refnode",
                              id="Test123")
        test124 = makeContent(self.folder, portal_type="Refnode",
                              id="Test124")
        test125 = makeContent(self.folder, portal_type="Refnode",
                              id="Test125")

        field = dummy.Schema()['adds']

        expected = DisplayList([
            (test123.UID(), test123.getId()),
            (test124.UID(), test124.getId()),
            (test125.UID(), test125.getId()),
            (dummy.UID(), dummy.getId()),
            ])

        got = field.Vocabulary(dummy)
        self.assertEqual(got, expected)

        # We should have the option of nothing
        field = field.copy()
        field.required = 0
        field.multiValued = 0

        expected = DisplayList([
            (test123.UID(), test123.getId()),
            (test124.UID(), test124.getId()),
            (test125.UID(), test125.getId()),
            (dummy.UID(), dummy.getId()),
            ('', u'label_no_reference'),
            ])
        self.assertEqual(field.Vocabulary(dummy), expected)

        field = field.copy()
        field.vocabulary_display_path_bound = 1
        expected = DisplayList([
            (test123.UID(), test123.getId()),
            (test124.UID(), test124.getId()),
            (test125.UID(), test125.getId()),
            (dummy.UID(), dummy.getId()),
            ('', u'label_no_reference'),
            ])
        self.assertNotEqual(field.Vocabulary(dummy), expected)
        field.vocabulary_display_path_bound = -1
        self.assertEqual(field.Vocabulary(dummy), expected)
Exemple #35
0
    def getRecurrenceDisplayList(self):
        """
        Returns a display list of recurrence types.
        """
        dl = DisplayList(())
        
        dl.add(NO_RECURRENCE, _(u'once', default=u'once'))
        dl.add(DAILY, _(u'daily', default=u'daily'))
        dl.add(WEEKLY, _(u'weekly', default=u'weekly'))
        dl.add(MONTHLY, _(u'monthly',default=u'monthly'))
        #dl.add(YEARLY, _(u'yearly', default=u'yearly'))

        return dl
Exemple #36
0
 def listMeetingEvents(self):
     config = self.config()
     allEvents = config.listMeetingEvents()
     # On an archive site, there may be no transition defined on a meeting.
     if not allEvents.keys():
         return DisplayList()
     selectedEvents = config.getMailMeetingEvents()
     res = []
     # Here, I could only keep transitions for which the user has the
     # permission to View the meeting at its end state. But in most cases,
     # meeting-related events can be seen by everyone.
     for event in selectedEvents:
         eventValue = allEvents.getValue(event)
         if not eventValue:
             continue
         res.append((event, eventValue))
     return DisplayList(tuple(res))
    def getAsDisplayList(self, instance, keyCol=None, valueCol=None):
        """Get two columns of each row as a DisplayList - the key columns is
        keyCol, and the value column is valueCol. If these are not given,
        use the first two columns, respectively.
        """
        data = self.get(instance)

        if keyCol is None:
            keyCol = self.getColumnIds()[0]
        if valueCol is None:
            valueCol = self.getColumnIds()[1]

        lst = DisplayList()
        for r in data:
            lst.add(r[keyCol], r[valueCol])

        return lst
Exemple #38
0
 def getInstrumentLocations(self):
     bsc = getToolByName(self, 'bika_setup_catalog')
     items = [(c.UID, c.Title)
              for c in bsc(portal_type='InstrumentLocation', is_active=True)
              ]
     items.sort(lambda x, y: cmp(x[1], y[1]))
     items.insert(0, ('', t(_('None'))))
     return DisplayList(items)
Exemple #39
0
    def test_factory_vocabulary(self):
        dummy = self.makeDummy()
        field = dummy.Schema().fields()[0]

        # Default
        self.assertEqual(field.Vocabulary(dummy), DisplayList())

        expected = DisplayList([('value1', 'title1'), ('v2', 't2')])

        # # Vocabulary factory
        field.vocabulary = ()
        field.vocabulary_factory = 'archetypes.tests.dummyvocab'
        getSiteManager().registerUtility(component=DummyVocabFactory,
                                         name='archetypes.tests.dummyvocab')
        self.assertEqual(field.Vocabulary(dummy), expected)
        getSiteManager().unregisterUtility(component=DummyVocabFactory,
                                           name='archetypes.tests.dummyvocab')
 def __init__(self, values):
     """ @values - simple list of values """
     if isinstance(values, (StringType, UnicodeType)):
         # fallback for DGF <1.7 - this is not really working, just don't
         # fail if user does not use DGF < 1.7
         values = [values]
     self._values = values
     self._values_dl = DisplayList(([(key, key) for key in values]))
 def getReleasesVocab(self):
     """Get the releases available to the tracker as a DisplayList."""
     catalog = getToolByName(self, 'portal_catalog')
     releases = catalog.searchResults(
                     portal_type='PSCRelease',
                     path='/'.join(self.getPhysicalPath()[:-1]),
                     )
     return DisplayList([(r.UID, r.getId) for r in releases])
Exemple #42
0
    def listReflectoCacheRules(self):
        if not HAS_CACHESETUP:
            return []

        pcs=getToolByName(self, CACHE_TOOL_ID, None)
        if pcs is None:
            return []
        rules=[(rule.getId(), rule.Title())
                for rule in pcs.getRules().objectValues("ContentCacheRule")
                    if "ReflectoFile" in rule.getContentTypes()]
        rules.sort(key=lambda x: x[1])

        vocab=DisplayList()
        vocab.add("", "Default browser caching")
        vocab+=DisplayList(rules)

        return vocab
Exemple #43
0
    def getManagersVocab(self, strict=False):
        """
        Get the managers available as a DisplayList. The first item is 'None',
        with a key of '(UNASSIGNED)'.

        Note, we now also allow Technicians here, unless we are called
        with 'strict' is True.
        """
        vocab = DisplayList()
        vocab.add(
            '(UNASSIGNED)', _(
                u"not_assigned", default=u'(Not assigned)'))
        mtool = getToolByName(self, 'portal_membership')
        for item in self.getManagers():
            user = mtool.getMemberById(item)
            if user:
                fullname = user.getProperty('fullname', item) or item
            else:
                fullname = item

            vocab.add(item, fullname)
        if not strict:
            for item in self.getTechnicians():
                user = mtool.getMemberById(item)
                if user:
                    fullname = user.getProperty('fullname', item) or item
                else:
                    fullname = item

                vocab.add(item, fullname)
            return vocab
    def getWfStatesDisplayList(self, wfName=config.ECA_WORKFLOW_ID):
        """
        @return a DisplayList containing all state keys and state titles in 
                assignment's workflow
        """
        #LOG.info('xxx: getWfStatesDisplayList')

        dl = DisplayList(())

        wtool = self.portal_workflow
        wf = wtool.getWorkflowById(wfName)
        stateKeys = self.getWfStates(wfName)

        for key in stateKeys:
            dl.add(key, wf.states[key].title)

        #return dl.sortedByValue()
        return dl
Exemple #45
0
 def test_translate_empty(self):
     vocab = DisplayList((('one', 'One'),
                          ('two', 'Two'), ))
     utilsView = getMultiAdapter((self.portal, self.portal.REQUEST), name='at_utils')
     self.assertEqual(utilsView.translate(vocab, value=''), u'')
     self.assertEqual(utilsView.translate(vocab, value=None), u'')
     self.assertEqual(utilsView.translate(vocab, value=[]), u'')
     self.assertEqual(utilsView.translate(vocab, value=()), u'')
     self.assertEqual(utilsView.translate(vocab, value=set()), u'')
    def getWfStatesDisplayList(self, wfName=config.ECA_WORKFLOW_ID):
        """
        @return a DisplayList containing all state keys and state titles in 
                assignment's workflow
        """
        #LOG.info('xxx: getWfStatesDisplayList')
        
        dl = DisplayList(())

        wtool = self.portal_workflow
        wf = wtool.getWorkflowById(wfName)
        stateKeys = self.getWfStates(wfName)
        
        for key in stateKeys:
            dl.add(key, wf.states[key].title)

        #return dl.sortedByValue()
        return dl
Exemple #47
0
 def available_managers(self):
     """Get the tracker managers.
     """
     # get vocab from issue
     context = aq_inner(self.context)
     if not self.memship.checkPermission(
             permissions.ModifyIssueAssignment, context):
         return DisplayList()
     return context.getManagersVocab()
Exemple #48
0
 def getLabContacts(self):
     bsc = getToolByName(self, 'bika_setup_catalog')
     # fallback - all Lab Contacts
     pairs = []
     for contact in bsc(portal_type='LabContact',
                        inactive_state='active',
                        sort_on='sortable_title'):
         pairs.append((contact.UID, contact.Title))
     return DisplayList(pairs)
    def related_features_vocab(self):
        """Get list of PLIPs possible to add to this release."""
        catalog = getToolByName(self, 'portal_catalog')
        projectPath = self.context.getPhysicalPath()[:-2]
        if len(projectPath) > 1 and projectPath[-1] == 'portal_factory':
            projectPath = projectPath[:-2]

        search = catalog.searchResults(portal_type = 'PSCImprovementProposal',
                                       path = '/'.join(projectPath))

        items = [s for s in search]
        items.sort(lambda x, y: cmp(int(x.getId), int(y.getId)))
        lst = DisplayList()
        for i in items:
            title = i.Title
            if len(title) > 40:
                title = title[:40] + '...'

            lst.add(i.UID, title)
        return lst
Exemple #50
0
    def getGroupsDisplayList(self):
        """
        Return all available groups as a display list.
        """
        dl = DisplayList(())
        dl.add(NO_GROUP, '----')

        # portal_groups.listGroups is deprecated and will be removed in 
        # Plone 3.5. Use PAS searchGroups instead.
        #pas = getToolByName(self, 'acl_users')
        #groups = pas.searchGroups() 
        
        groups_tool = getToolByName(self, 'portal_groups')
        groups = groups_tool.listGroups()

        #LOG.debug('getGroupsDisplayList: groups: %s' % groups)

        for group in groups:
            dl.add(group.getGroupId(), group.getGroupName())
        
        return dl
    def getAvailableBackendsDL(self):
        """
        Returns a display list of all (actually) available backends.
        """
        #LOG.debug("xdebug: getAvailableBackendsDL")

        dl = DisplayList(())
        
        # get all available backends from spooler setup utily 
        backends = self._getAvailableBackends()
        
        #LOG.debug('xdebug: backends: ' + repr(backends))
        
        for key in backends.keys():
            id = key
            label = '%s (%s)' % (backends[key].get('name', '?'), 
                                 backends[key].get('version', '?'))
            
            dl.add(id, label)
             
        return dl
 def getPortalGroupsVocab(self):
     """Return the portal groups, as a display list"""
     group_tool = getToolByName(self, 'portal_groups')
     portal_groups = group_tool.listGroups()
     vocab = DisplayList()
     vocab.add('', 'Use all portal Members')
     for group in portal_groups:
         if group.getProperty('title'):
             vocab.add(group.getProperty('id'),group.getProperty('title'))
         else:
             vocab.add(group.getProperty('id'),group.getProperty('id'))
     return vocab
    def getSelectedBackendsDL(self, withNone=True):
        """Returns a display list of all backends selected for this site.
        """
        #LOG.debug("Getting all selected backends as Archetypes.utils.DisplayList...")

        dl = DisplayList(())
        
        if withNone:
            # set a value for no testing
            value = BACKEND_NONE
            dl.add(value, '----')
        
        for backend in self.getSelectedBackends():

            if backend != None:
                isCached = self.backendValueCache.has_key(backend)
                #LOG.debug("Backend '%s' is cached: %s" % (backend, isCached))
                
                if not isCached:
                    isCached = self._cacheBackend(backend) 
                    #LOG.debug("xdebug: backend '%s' is cached: %s" % (backend, isCached))
                # end if

                if isCached:
                    #LOG.debug("xdebug: Adding backend '%s' to display list" % backend)
                    dl.add(backend, '%s (%s)' % 
                           (self.backendValueCache[backend].get('name', '?'),
                            self.backendValueCache[backend].get('version', '?'))
                           )
                else:
                    LOG.warn("Cannot add backend '%s' to display list "
                             "because it is not cached" % backend)
                # end if
            # end if
        # end for
             
        return dl
Exemple #54
0
 def getManagersVocab(self):
     """
     Get the managers available as a DisplayList. The first item is 'None',
     with a key of '(UNASSIGNED)'.
     """
     tracker = self.getTracker()
     items = tracker.getManagers()
     vocab = DisplayList()
     vocab.add("(UNASSIGNED)", _(u"None"), "poi_vocab_none")
     vocab.add("(AREAMANAGER)", _(u"Area Manager"), "poi_vocab_area_manager")
     for item in items:
         vocab.add(item, item)
     return vocab
Exemple #55
0
    def getManagersVocab(self, strict=False):
        """
        Get the managers available as a DisplayList. The first item is 'None',
        with a key of '(UNASSIGNED)'.

        Note, we now also allow Technicians here, unless we are called
        with 'strict' is True.
        """
        tracker = self.getTracker()
        vocab = DisplayList()
        vocab.add("(UNASSIGNED)", _(u"None"))
        for item in tracker.getManagers():
            vocab.add(item, item)
        if not strict:
            for item in tracker.getTechnicians():
                vocab.add(item, item)
        return vocab
Exemple #56
0
    def getManagersVocab(self, strict=False):
        """
        Get the managers available as a DisplayList. The first item is 'None',
        with a key of '(UNASSIGNED)'.

        Note, we now also allow Technicians here, unless we are called
        with 'strict' is True.
        """
        tracker = self.getTracker()
        vocab = DisplayList()
        #vocab.add('(UNASSIGNED)', _(u'None'))
        for item in tracker.getManagers():
            vocab.add(item, item)
        if not strict:
            for item in tracker.getTechnicians():
                vocab.add(item, item)

        L = []
        for iten in vocab:
            L.append({'id':iten,'label':vocab.getValue(iten)})

        return L
 def testGetAsDisplayList(self):
     lst = DisplayList()
     lst.add('a', 'b')
     lst.add('d', 'e')
     self.assertEqual(self.field.getAsDisplayList(self.demo), lst)