Exemple #1
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')])
Exemple #2
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
Exemple #3
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 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
Exemple #5
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')),
        ))
    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')),
        ))
Exemple #7
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)
 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)
Exemple #9
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
Exemple #10
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)
Exemple #11
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 #12
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 #13
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 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)
 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 getSlotsVocab(self):
     vocab = DisplayList()
     vocab.add('', _(u'-- Unspecified --'))
     vocab.add('morning', _(u'Morning'))
     vocab.add('afternoon', _(u'Afternoon'))
     vocab.add('night', _(u'Evening'))
     vocab.add('allday', _(u'All day long'))
     return vocab
Exemple #17
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)
 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])
 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]))
Exemple #20
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)
Exemple #21
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 #22
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))
Exemple #23
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')
Exemple #24
0
 def getDisplayList(self, instance):
     """getDisplayList
     """
     voc_fact = queryUtility(IVocabularyFactory,
                             OrganisationsVocabulary)
     items = [(t.value, t.title or t.token) for t in voc_fact(instance)]
     items.insert(0, ('', ''))
     vocabulary = DisplayList(items)
     return vocabulary
Exemple #25
0
 def available_assignees(self):
     """Get the tracker assignees.
     """
     # get vocab from issue
     context = aq_inner(self.context)
     if not self.memship.checkPermission(permissions.ModifyIssueAssignment,
                                         context):
         return DisplayList()
     return possibleAssignees(context)
Exemple #26
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'')
Exemple #27
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)
Exemple #28
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 #29
0
 def available_releases(self):
     """Get the releases from the project.
     """
     # get vocab from issue
     context = aq_inner(self.context)
     if not self.memship.checkPermission(
             permissions.ModifyIssueTargetRelease, context):
         return DisplayList()
     return possibleTargetReleases(context)
Exemple #30
0
 def getMetadataDisplay(self, enabled=True):
     """ Return DisplayList of Metadata and their friendly names """
     if enabled:
         meta_names = self.getAllMetadata(True)
     else:
         meta_names = self.getAllMetadata()
     meta_dict = self.topic_metadata
     meta = [meta_dict[i] for i in meta_names]
     field_list = [(f.index, f.friendlyName or f.index) for f in meta]
     return DisplayList(field_list)