Ejemplo n.º 1
0
    def dx_schedule_indexer(context):
        assignable = IBehaviorAssignable(context, None)
        if assignable is None or not assignable.supports(IFeedControl):
            return

        date = getattr(context, "feedSchedule", None)
        if date is None:
            assignable = IBehaviorAssignable(context, None)
            if assignable is not None:
                if assignable.supports(IDublinCore):
                    return context.effective_date

        return DateTime(
            date.year,
            date.month,
            date.day
            )
Ejemplo n.º 2
0
 def dx_feed_indexer(context):
     assignable = IBehaviorAssignable(context, None)
     if assignable is not None:
         if assignable.supports(IFeedControl):
             try:
                 return tuple(context.feeds)
             except TypeError:
                 return tuple()
Ejemplo n.º 3
0
 def dx_feed_indexer(context):
     assignable = IBehaviorAssignable(context, None)
     if assignable is not None:
         if assignable.supports(IFeedControl):
             try:
                 return tuple(context.feeds)
             except TypeError:
                 return tuple()
Ejemplo n.º 4
0
    def dx_schedule_indexer(context):
        assignable = IBehaviorAssignable(context, None)
        if assignable is None or not assignable.supports(IFeedControl):
            return

        date = getattr(context, "feedSchedule", None)
        if date is None:
            assignable = IBehaviorAssignable(context, None)
            if assignable is not None:
                if assignable.supports(IDublinCore):
                    return context.effective_date

        return DateTime(
            date.year,
            date.month,
            date.day
            )
Ejemplo n.º 5
0
 def test_member_behaviors(self):
     behaviors = [INameFromFullName, IReferenceable,
                  metadata.ICategorization, metadata.IPublication,
                  metadata.IOwnership, IMembraneUser, IProvidePasswords]
     member = self._createType(
         self.layer['portal'], 'dexterity.membrane.member', 'les')
     assignable = IBehaviorAssignable(member)
     for b in behaviors:
         self.assertTrue(assignable.supports(b),
                         "member type should support %s behavior" % b)
Ejemplo n.º 6
0
 def test_member_behavior_blacklist(self):
     # Some behaviors should definitely NOT be provided.
     black_list = [metadata.IDublinCore, metadata.IBasic]
     # Note that we would want INameFromTitle in the black list as
     # well, but it cannot be, as it gets pulled in as base class
     # of INameFromFullName.
     member = self._createType(self.layer["portal"], "dexterity.membrane.organizationmember", "les")
     assignable = IBehaviorAssignable(member)
     for b in black_list:
         self.assertFalse(assignable.supports(b), "member type should NOT support %s behavior" % b)
Ejemplo n.º 7
0
 def test_member_behaviors(self):
     behaviors = [INameFromFullName, IReferenceable,
                  metadata.ICategorization, metadata.IPublication,
                  metadata.IOwnership, IMembraneUser, IProvidePasswords]
     member = self._createType(
         self.layer['portal'], 'dexterity.membrane.organizationmember', 'les')
     assignable = IBehaviorAssignable(member)
     for b in behaviors:
         self.assertTrue(assignable.supports(b),
                         "member type should support %s behavior" % b)
Ejemplo n.º 8
0
 def test_member_behavior_blacklist(self):
     # Some behaviors should definitely NOT be provided.
     black_list = [metadata.IDublinCore, metadata.IBasic]
     # Note that we would want INameFromTitle in the black list as
     # well, but it cannot be, as it gets pulled in as base class
     # of INameFromFullName.
     member = self._createType(self.layer['portal'],
                               'dexterity.membrane.member', 'les')
     assignable = IBehaviorAssignable(member)
     for b in black_list:
         self.assertFalse(assignable.supports(b),
                          "member type should NOT support %s behavior" % b)
Ejemplo n.º 9
0
 def __call__(self, context):
     assignable = IBehaviorAssignable(context, None)
     if assignable is None:
         return None
     if not assignable.supports(self.behavior.interface):
         return None
     if self.behavior.factory is not None:
         adapted = self.behavior.factory(context)
     else:
         # When no factory is specified the object should provide the
         # behavior directly
         adapted = context
     return adapted
Ejemplo n.º 10
0
 def __call__(self, context):
     assignable = IBehaviorAssignable(context, None)
     if assignable is None:
         return None
     if not assignable.supports(self.behavior.interface):
         return None
     if self.behavior.factory is not None:
         adapted = self.behavior.factory(context)
     else:
         # When no factory is specified the object should provide the
         # behavior directly
         adapted = context
     return adapted
    def test_has_behavior(self):
        """ Test behavior and assignable works nicely.
        """

        self.loginAsPortalOwner()
        self.portal.invokeFactory("Document", "doc")
        doc = self.portal.doc

        # Check assignable works
        from plone.behavior.interfaces import IBehaviorAssignable
        assignable = IBehaviorAssignable(doc, None)

        self.assertTrue(assignable.supports(IMobileBehavior))
        self.assertNotEqual(assignable, None)


        # Check behavior works
        self.assertTrue(IMobileContentish.providedBy(doc))
        behavior = IMobileBehavior(doc)

        self.assertNotEquals(behavior, None)
    def make_some_evil_site_content(self):
        """ Test behavior and assignable works nicely.
        """

        self.loginAsPortalOwner()
        self.portal.invokeFactory("Document", "doc")
        doc = self.portal.doc
        doc.processForm()

        # Check assignable works
        from plone.behavior.interfaces import IBehaviorAssignable
        assignable = IBehaviorAssignable(doc, None)

        self.assertTrue(assignable.supports(IMultiChannelBehavior))
        self.assertNotEqual(assignable, None)


        # Check behavior works
        self.assertTrue(IMobileContentish.providedBy(doc))
        behavior = IMultiChannelBehavior(doc)
        behavior.contentMedias = ContentMediaOption.BOTH
        behavior.save()
Ejemplo n.º 13
0
 def dx_category_indexer(context):
     assignable = IBehaviorAssignable(context, None)
     if assignable is not None:
         if assignable.supports(IFeedControl):
             return getattr(context, "feedCategory", None)