示例#1
0
 def enableSyndication(self, obj):
     """
     Enable syndication for the obj
     """
     if not _checkPermission(ModifyPortalContent, obj):
         raise Unauthorized
     settings = IFeedSettings(obj)
     settings.enabled = True
示例#2
0
 def enableSyndication(self, obj):
     """
     Enable syndication for the obj
     """
     if not _checkPermission(ModifyPortalContent, obj):
         raise Unauthorized
     settings = IFeedSettings(obj)
     settings.enabled = True
 def afterSetUp(self):
     self.syndication = getToolByName(self.portal, 'portal_syndication')
     self.folder.invokeFactory('Document', 'doc1')
     self.folder.invokeFactory('Document', 'doc2')
     self.folder.invokeFactory('File', 'file')
     self.doc1 = self.folder.doc1
     self.doc2 = self.folder.doc2
     self.file = self.folder.file
     #Enable syndication on folder
     registry = getUtility(IRegistry)
     self.site_settings = registry.forInterface(ISiteSyndicationSettings)
     settings = IFeedSettings(self.folder)
     settings.enabled = True
     self.folder_settings = settings
 def __call__(self):
     if self.newsml_enabled(raise404=True):
         settings = IFeedSettings(self.context, None)
         if settings and self.__name__ not in settings.feed_types:
             raise NotFound
         self.request.response.setHeader(
             'Content-Type', 'application/vnd.iptc.g2.newsitem+xml')
         return self.index()
示例#5
0
 def rss_url(self):
     settings = IFeedSettings(self.context)
     types = settings.feed_types
     url = self.context.absolute_url()
     if len(types) == 0:
         return url
     _type = types[0]
     return '%s/%s' % (url, _type)
示例#6
0
 def setUp(self):
     self.portal = self.layer['portal']
     self.syndication = getToolByName(self.portal, 'portal_syndication')
     with api.env.adopt_roles(['Manager']):
         self.portal.invokeFactory('Folder', 'folder')
     self.folder = self.portal.folder
     self.folder.invokeFactory('Document', 'doc1')
     self.folder.invokeFactory('Document', 'doc2')
     self.folder.invokeFactory('File', 'file')
     self.doc1 = self.folder.doc1
     self.doc2 = self.folder.doc2
     self.file = self.folder.file
     # Enable syndication on folder
     registry = getUtility(IRegistry)
     self.site_settings = registry.forInterface(ISiteSyndicationSettings)
     settings = IFeedSettings(self.folder)
     settings.enabled = True
     self.folder_settings = settings
 def setUp(self):
     super(TestRenderBody, self).setUp()
     self.folder.invokeFactory('News Item', 'news1')
     self.folder.invokeFactory('News Item', 'news2')
     self.news1 = self.folder.news1
     self.news1.setTitle('News 1')
     self.news1.setDescription('The news item #1')
     self.news1.setText(BODY_TEXT)
     self.news2 = self.folder.news2
     self.news2.setTitle('News 2')
     self.news2.setText(ROOTED_BODY_TEXT)
     # Enable syndication on folder
     registry = getUtility(IRegistry)
     self.site_settings = registry.forInterface(ISiteSyndicationSettings)
     settings = IFeedSettings(self.folder)
     settings.enabled = True
     settings.render_body = True
     self.folder_settings = settings
 def setUp(self):
     self.portal = self.layer['portal']
     self.syndication = getToolByName(self.portal, 'portal_syndication')
     with api.env.adopt_roles(['Manager']):
         self.portal.invokeFactory('Folder', 'folder')
     self.folder = self.portal.folder
     self.folder.invokeFactory('Document', 'doc1')
     self.folder.invokeFactory('Document', 'doc2')
     self.folder.invokeFactory('File', 'file')
     self.doc1 = self.folder.doc1
     self.doc2 = self.folder.doc2
     self.file = self.folder.file
     # Enable syndication on folder
     registry = getUtility(IRegistry)
     self.site_settings = registry.forInterface(ISiteSyndicationSettings)
     settings = IFeedSettings(self.folder)
     settings.enabled = True
     self.folder_settings = settings
示例#9
0
 def __init__(self, context):
     self.context = context
     self.settings = IFeedSettings(context)
     self.site = getSite()
     self.pm = getToolByName(self.context, 'portal_membership')
     pprops = getToolByName(self.context, 'portal_properties')
     self.site_props = pprops.site_properties
     self.view_action_types = self.site_props.getProperty(
         'typesUseViewActionInListings', ('File', 'Image'))
示例#10
0
 def context_enabled(self, raise404=False):
     settings = IFeedSettings(self.context, None)
     if not self.context_allowed() or not settings.enabled:
         if raise404:
             raise NotFound
         else:
             return False
     else:
         return True
示例#11
0
 def setUp(self):
     super(TestRenderBody, self).setUp()
     self.folder.invokeFactory('News Item', 'news1')
     self.folder.invokeFactory('News Item', 'news2')
     self.news1 = self.folder.news1
     self.news1.setTitle('News 1')
     self.news1.setDescription('The news item #1')
     self.news1.setText(BODY_TEXT)
     self.news2 = self.folder.news2
     self.news2.setTitle('News 2')
     self.news2.setText(ROOTED_BODY_TEXT)
     # Enable syndication on folder
     registry = getUtility(IRegistry)
     self.site_settings = registry.forInterface(ISiteSyndicationSettings)
     settings = IFeedSettings(self.folder)
     settings.enabled = True
     settings.render_body = True
     self.folder_settings = settings
示例#12
0
 def isSyndicationAllowed(self, obj=None):
     """
     Check whether syndication is enabled for the site.  This
     provides for extending the method to check for whether a
     particular obj is enabled, allowing for turning on only
     specific folders for syndication.
     """
     settings = IFeedSettings(obj)
     return settings.enabled
示例#13
0
    def __getattr__(self, name):
        default = None
        if name in ISiteSyndicationSettings.names():
            default = getattr(self.site_settings, name)
        elif name == 'enabled' and self.site_settings.default_enabled:
            default = True
        elif name in IFeedSettings.names():
            default = IFeedSettings[name].default

        return self._metadata.get(name, default)
示例#14
0
 def newsml_allowed(self):
     util = getMultiAdapter((self.context, self.request),
                            name='syndication-util')
     if not util.site_enabled():
         return False
     elif ISyndicatable.providedBy(self.context):
         settings = IFeedSettings(self.context, None)
         if settings.enabled:
             return True
     return False
示例#15
0
 def allowed_feed_types(self):
     settings = IFeedSettings(self.context)
     factory = getUtility(
         IVocabularyFactory,
         "collective.syndication.vocabularies.SyndicationFeedTypes")
     vocabulary = factory(self.context)
     types = []
     for typ in settings.feed_types:
         types.append(vocabulary.getTerm(typ))
     return [{'path': t.value, 'title': t.title} for t in types]
示例#16
0
 def __call__(self):
     util = getMultiAdapter((self.context, self.request),
                            name='syndication-util')
     if util.context_enabled(raise404=True):
         settings = IFeedSettings(self.context)
         if self.__name__ not in settings.feed_types:
             raise NotFound
         index = self.index()
         self.set_response_header()
         return index
 def afterSetUp(self):
     self.syndication = getToolByName(self.portal, 'portal_syndication')
     self.folder.invokeFactory('Document', 'doc')
     self.folder.invokeFactory('Document', 'doc1')
     self.folder.invokeFactory('News Item', 'news1')
     self.folder.invokeFactory('News Item', 'news2')
     self.folder.invokeFactory('File', 'file')
     self.doc1 = self.folder.doc1
     self.news1 = self.folder.news1
     self.news1.setText(BODY_TEXT)
     self.news2 = self.folder.news2
     self.news2.setText(ROOTED_BODY_TEXT)
     self.file = self.folder.file
     #Enable syndication on folder
     registry = getUtility(IRegistry)
     self.site_settings = registry.forInterface(ISiteSyndicationSettings)
     settings = IFeedSettings(self.folder)
     settings.enabled = True
     self.folder_settings = settings
示例#18
0
 def disableSyndication(self, obj):
     if not _checkPermission(ModifyPortalContent, obj):
         raise Unauthorized
     settings = IFeedSettings(obj)
     settings.enabled = False
示例#19
0
 def disableSyndication(self, obj):
     if not _checkPermission(ModifyPortalContent, obj):
         raise Unauthorized
     settings = IFeedSettings(obj)
     settings.enabled = False
示例#20
0
 def context_enabled(self):
     settings = IFeedSettings(self.context, None)
     if settings and not settings.enabled:
         raise NotFound
     else:
         return True