• Vice Squad

  • Fwd: plone.marquis now quills.syndication

    from "Derek Richardson" on Dec 12, 2007 08:17 PM
    ---------- Forwarded message ----------
    From: Derek Richardson <plone@...>
    Date: Dec 12, 2007 8:17 PM
    Subject: plone.marquis now quills.syndication
    To: Quills Developer List <quills-dev@...>
    
    
    As of r55428. Still in the collective.
    
    https://svn.plone.org/svn/collective/quills.syndication/trunk
    
    Derek
    
    Thread Outline:
  • Re: Fwd: plone.marquis now quills.syndication

    from Tim Hicks on Dec 13, 2007 06:01 AM
    Derek Richardson wrote:
    > ---------- Forwarded message ----------
    > From: Derek Richardson <plone@...>
    > Date: Dec 12, 2007 8:17 PM
    > Subject: plone.marquis now quills.syndication
    > To: Quills Developer List <quills-dev@...>
    > 
    > 
    > As of r55428. Still in the collective.
    > 
    > https://svn.plone.org/svn/collective/quills.syndication/trunk
    
    Derek,
    
    Thanks very much for doing that.  Sorry I didn't get the chance to work
    on it myself.
    
    Having just looked at the code in the quills.syndication.adapters
    module, I'm wondering if you might consider providing a mixin class in
    plone.app.syndication that makes it easier to write adapters.  For
    example, the code pasted below might be useful (as well as the
    equivalent for a FeedItemMixin).  Just a thought.
    
    
    Tim
    
    
    class FeedMixin:
    
        __name__ = __parent__ = None
    
        def __init__(self, context, feed_id, item_adapter_name):
            self.context = context
            self.feed_id = feed_id
            self.item_adapter_name = item_adapter_name
    
        @property
        def description(self):
            """See IFeed.
            """
            return self.context.description
    
        @property
        def modified(self):
            """See IFeed.
            """
            return self.context.modified()
    
        @property
        def modifiedString(self):
            return RFC3339(self.modified)
    
        @property
        def name(self):
            """See IFeed.
            """
            return self.context.__name__
    
        @property
        def title(self):
            """See IFeed.
            """
            return self.context.title
    
        @property
        def UID(self):
            """See IFeed.
            """
            u = IFeedUUID(self)
            return u.UUID
    
        @property
        def config(self):
            s = IFeedConfigs(self.context)
            return s.findConfigByID(self.feed_id)
    
    • Fwd: plone.marquis now quills.syndication

      from "Derek Richardson" on Dec 13, 2007 10:19 AM
      I tend to write the hard way and then refactor when I know what I can
      reuse. In this case, I just didn't get back to refactor. They aren't
      really mixins, but there are base classes for Feed and FeedItems in
      Vice. Look at ATFeedBase and ATFeedItemBase in:
      
      http://dev.plone.org/collective/browser/Vice/trunk/plone.app.syndication.outbound/plone/app/syndication/outbound/adapters/atct.py?rev=51617
      
      More importantly, Tim, I need your input on what to do with the
      portlet. Remove it? Move it to quills.syndication and hook it up to
      Vice? If the latter, could I request you do the move, since that's
      your code and you'd be best at it (plus, I'm leery of deleting from
      Quills)?
      
      I need quills.syndication usable by next Wedensday, when I have a site
      going live in production.
      
      Derek
      
      On Dec 13, 2007 6:01 AM, Tim Hicks <tim@...> wrote:
      [snip]
      
      > Having just looked at the code in the quills.syndication.adapters
      > module, I'm wondering if you might consider providing a mixin class in
      > plone.app.syndication that makes it easier to write adapters.  For
      > example, the code pasted below might be useful (as well as the
      > equivalent for a FeedItemMixin).  Just a thought.
      >
      >
      > Tim
      >
      >
      > class FeedMixin:
      >
      >     __name__ = __parent__ = None
      >
      >     def __init__(self, context, feed_id, item_adapter_name):
      >         self.context = context
      >         self.feed_id = feed_id
      >         self.item_adapter_name = item_adapter_name
      >
      >     @property
      >     def description(self):
      >         """See IFeed.
      >         """
      >         return self.context.description
      >
      >     @property
      >     def modified(self):
      >         """See IFeed.
      >         """
      >         return self.context.modified()
      >
      >     @property
      >     def modifiedString(self):
      >         return RFC3339(self.modified)
      >
      >     @property
      >     def name(self):
      >         """See IFeed.
      >         """
      >         return self.context.__name__
      >
      >     @property
      >     def title(self):
      >         """See IFeed.
      >         """
      >         return self.context.title
      >
      >     @property
      >     def UID(self):
      >         """See IFeed.
      >         """
      >         u = IFeedUUID(self)
      >         return u.UUID
      >
      >     @property
      >     def config(self):
      >         s = IFeedConfigs(self.context)
      >         return s.findConfigByID(self.feed_id)
      >
      >
      > --
      > Archive: http://www.openplans.org/projects/vice/lists/vice-squad/archive/2007/12/1197543700636
      > To unsubscribe send an email with subject unsubscribe to vice-dev@....  Please contact vice-dev-manager@... for questions.
      >
      
      • Re: Fwd: plone.marquis now quills.syndication

        from Tim Hicks on Dec 14, 2007 03:24 PM
        Derek Richardson wrote:
        > I tend to write the hard way and then refactor when I know what I can
        > reuse. In this case, I just didn't get back to refactor. They aren't
        > really mixins, but there are base classes for Feed and FeedItems in
        > Vice. Look at ATFeedBase and ATFeedItemBase in:
        > 
        > http://dev.plone.org/collective/browser/Vice/trunk/plone.app.syndication.outbound/plone/app/syndication/outbound/adapters/atct.py?rev=51617
        
        Ah, cool.  It might make sense to rename/move some of those to places
        where it's clearer that they can be usefully subclassed.  I wouldn't
        mind doing that myself, but as I'm not very familiar with the code and
        haven't checked-in on Vice before, I think I'll wait for the nod from
        you... :).
        
        > More importantly, Tim, I need your input on what to do with the
        > portlet.
        
        Presumably you mean the 'quillslinks' portlet at
        <http://dev.plone.org/collective/browser/quills.app/trunk/quills/app/portlets/quillslinks.py>
        (and associated template).
        
        > Remove it?
        
        Only if Vice is already providing something equivalent, which I don't
        think it is... yet.
        
        > Move it to quills.syndication and hook it up to
        > Vice?
        
        I think the first step should probably be moving to quills.syndication.
         However, this seems like a useful portlet for general users of outbound
        syndication in Plone.  As such, it may well make sense for it to move
        all the way into plone.app.syndication.outbound.
        
        I think to do so would require some modifications to the portlet
        implementation, and possibly to Vice code.  Specifically, presumably it
        is easy enough to use a Vice api to get hold of a list of feed urls and
        names/titles/whatever for a content object, and then have the portlet
        display them.  However, is there a way to recurse/acquire up the object
        hierarchy to find the appropriate content object for which to fetch
        feeds?  That is, for Quills, we require that when viewing an
        IWeblogEntry, feeds are displayed for the containing IWeblog object.  I
        guess the question is: is there a generalizable way of getting hold of
        appropriate feed listings from an arbitrary context?  Hopefully that
        makes sense.
        
        > If the latter, could I request you do the move, since that's
        > your code and you'd be best at it (plus, I'm leery of deleting from
        > Quills)?
        
        I'm happy to help with this once it's clear what needs doing.
        
        > I need quills.syndication usable by next Wedensday, when I have a site
        > going live in production.
        
        Ok.  I can't make promises to have things done by then, I'm afraid.
        Presumably the current state of the code would allow you to launch, though.
        
        
        Cheers,
        
        
        Tim
        
        • Re: Fwd: plone.marquis now quills.syndication

          from Tim Hicks on Dec 22, 2007 03:17 PM
          Tim Hicks wrote:
          
          >> More importantly, Tim, I need your input on what to do with the
          >> portlet.
          > 
          > Presumably you mean the 'quillslinks' portlet at
          > <http://dev.plone.org/collective/browser/quills.app/trunk/quills/app/portlets/quillslinks.py>
          > (and associated template).
          > 
          >> Remove it?
          > 
          > Only if Vice is already providing something equivalent, which I don't
          > think it is... yet.
          > 
          >> Move it to quills.syndication and hook it up to
          >> Vice?
          > 
          > I think the first step should probably be moving to quills.syndication.
          >  However, this seems like a useful portlet for general users of outbound
          > syndication in Plone.  As such, it may well make sense for it to move
          > all the way into plone.app.syndication.outbound.
          > 
          > I think to do so would require some modifications to the portlet
          > implementation, and possibly to Vice code.  Specifically, presumably it
          > is easy enough to use a Vice api to get hold of a list of feed urls and
          > names/titles/whatever for a content object, and then have the portlet
          > display them.  However, is there a way to recurse/acquire up the object
          > hierarchy to find the appropriate content object for which to fetch
          > feeds?  That is, for Quills, we require that when viewing an
          > IWeblogEntry, feeds are displayed for the containing IWeblog object.  I
          > guess the question is: is there a generalizable way of getting hold of
          > appropriate feed listings from an arbitrary context?  Hopefully that
          > makes sense.
          
          Thinking out loud...
          
          How about a portlet (in Vice) has a configuration option for a list
          (LinesField, in AT parlance) of TAL statements that return objects for
          which all available feeds should be displayed.  By default, this would
          simply be 'context'.  For Quills' WeblogEntry objects, this would be
          something along the lines of 'context/getWeblog'.
          
          Thoughts?
          
          
          Tim
          
    • Re: Fwd: plone.marquis now quills.syndication

      from "Derek Richardson" on Dec 22, 2007 06:14 PM
      I tend to write the hard way and then refactor when I know what I can
      reuse. In this case, I just didn't get back to refactor. They aren't
      really mixins, but there are base classes for Feed and FeedItems in
      Vice. Look at ATFeedBase and ATFeedItemBase in:
      
      http://dev.plone.org/collective/browser/Vice/trunk/plone.app.syndication.outbound/plone/app/syndication/outbound/adapters/atct.py?rev=51617
      
      More importantly, Tim, I need your input on what to do with the
      portlet. Remove it? Move it to quills.syndication and hook it up to
      Vice? If the latter, could I request you do the move, since that's
      your code and you'd be best at it (plus, I'm leery of deleting from
      Quills)?
      
      I need quills.syndication usable by next Wedensday, when I have a site
      going live in production.
      
      Derek
      
      On Dec 13, 2007 6:01 AM, Tim Hicks <tim@...> wrote:
      [snip]
      > Having just looked at the code in the quills.syndication.adapters
      > module, I'm wondering if you might consider providing a mixin class in
      > plone.app.syndication that makes it easier to write adapters.  For
      > example, the code pasted below might be useful (as well as the
      > equivalent for a FeedItemMixin).  Just a thought.
      >
      >
      > Tim
      >
      >
      > class FeedMixin:
      >
      >     __name__ = __parent__ = None
      >
      >     def __init__(self, context, feed_id, item_adapter_name):
      >         self.context = context
      >         self.feed_id = feed_id
      >         self.item_adapter_name = item_adapter_name
      >
      >     @property
      >     def description(self):
      >         """See IFeed.
      >         """
      >         return self.context.description
      >
      >     @property
      >     def modified(self):
      >         """See IFeed.
      >         """
      >         return self.context.modified()
      >
      >     @property
      >     def modifiedString(self):
      >         return RFC3339(self.modified)
      >
      >     @property
      >     def name(self):
      >         """See IFeed.
      >         """
      >         return self.context.__name__
      >
      >     @property
      >     def title(self):
      >         """See IFeed.
      >         """
      >         return self.context.title
      >
      >     @property
      >     def UID(self):
      >         """See IFeed.
      >         """
      >         u = IFeedUUID(self)
      >         return u.UUID
      >
      >     @property
      >     def config(self):
      >         s = IFeedConfigs(self.context)
      >         return s.findConfigByID(self.feed_id)
      >
      >
      > --
      > Archive: http://www.openplans.org/projects/vice/lists/vice-squad/archive/2007/12/1197543700636
      > To unsubscribe send an email with subject unsubscribe to vice-dev@....  Please contact vice-dev-manager@... for questions.
      >
      
      • Fwd: Fwd: plone.marquis now quills.syndication

        from "Derek Richardson" on Dec 29, 2007 03:33 PM
        I've been mulling this over. The difficulty is that Vice is more
        flexible than the current Quills links portlet can display. With Vice,
        you can have an arbitrary number of named feeds of arbitrary formats.
        For instance, you might have no rss 1 feed and two atom feeds, say one
        of which requires authentication and the other doesn't. I wouldn't
        mind having a portlet that displays all the available feeds on a
        specified object - in fact, that's a very good idea that we hadn't
        thought of. However, I like the snazzy graphics in the Quills links
        portlet but I'm having trouble figuring out how to reconcile the
        static nature of images with the dynamic, flexible Vice feeds config.
        Ideas?
        
        Derek
        
        
        On Dec 22, 2007 3:17 PM, Tim Hicks <tim@...> wrote:
        >
        > Tim Hicks wrote:
        >
        > >> More importantly, Tim, I need your input on what to do with the
        > >> portlet.
        > >
        > > Presumably you mean the 'quillslinks' portlet at
        > > <http://dev.plone.org/collective/browser/quills.app/trunk/quills/app/portlets/quillslinks.py>
        > > (and associated template).
        > >
        > >> Remove it?
        > >
        > > Only if Vice is already providing something equivalent, which I don't
        > > think it is... yet.
        > >
        > >> Move it to quills.syndication and hook it up to
        > >> Vice?
        > >
        > > I think the first step should probably be moving to quills.syndication.
        > >  However, this seems like a useful portlet for general users of outbound
        > > syndication in Plone.  As such, it may well make sense for it to move
        > > all the way into plone.app.syndication.outbound.
        > >
        > > I think to do so would require some modifications to the portlet
        > > implementation, and possibly to Vice code.  Specifically, presumably it
        > > is easy enough to use a Vice api to get hold of a list of feed urls and
        > > names/titles/whatever for a content object, and then have the portlet
        > > display them.  However, is there a way to recurse/acquire up the object
        > > hierarchy to find the appropriate content object for which to fetch
        > > feeds?  That is, for Quills, we require that when viewing an
        > > IWeblogEntry, feeds are displayed for the containing IWeblog object.  I
        > > guess the question is: is there a generalizable way of getting hold of
        > > appropriate feed listings from an arbitrary context?  Hopefully that
        > > makes sense.
        >
        > Thinking out loud...
        >
        > How about a portlet (in Vice) has a configuration option for a list
        > (LinesField, in AT parlance) of TAL statements that return objects for
        > which all available feeds should be displayed.  By default, this would
        > simply be 'context'.  For Quills' WeblogEntry objects, this would be
        > something along the lines of 'context/getWeblog'.
        >
        > Thoughts?
        >
        >
        > Tim
        >
        >
        > --
        > Archive: http://www.openplans.org/projects/vice/lists/vice-squad/archive/2007/12/1198354673204
        >
        > To unsubscribe send an email with subject unsubscribe to vice-dev@....  Please contact vice-dev-manager@... for questions.
        >
        
        • Re: Fwd: Fwd: plone.marquis now quills.syndication

          from Tim Hicks on Dec 29, 2007 07:09 PM
          Derek Richardson wrote:
          > I've been mulling this over. The difficulty is that Vice is more
          > flexible than the current Quills links portlet can display. With Vice,
          > you can have an arbitrary number of named feeds of arbitrary formats.
          > For instance, you might have no rss 1 feed and two atom feeds, say one
          > of which requires authentication and the other doesn't.
          
          Ooh!  I didn't realise that you could have some authenticated and some
          not :).  That sounds gooood.
          
          > I wouldn't
          > mind having a portlet that displays all the available feeds on a
          > specified object - in fact, that's a very good idea that we hadn't
          > thought of.
          
          Good.
          
          > However, I like the snazzy graphics in the Quills links
          > portlet but I'm having trouble figuring out how to reconcile the
          > static nature of images with the dynamic, flexible Vice feeds config.
          > Ideas?
          
          Hmm.  I still don't know the Vice code very well.  Presumably there is a
          way to get a list of all outbound feeds, and from each feed to get
          identify what format it is in.  Presumably we can setup the portlet to
          loop over all feeds, generate an href for each, and optionally embed the
          appropriate image for the feed format.  The alt attribute should
          probably then have the feed title.
          
          If you have lots of slightly different (say) atom feeds setup for an
          object, a portlet of this sort might not be very good for visually
          distinguishing between them, but as a default implementation, it doesn't
          sound too bad to me.
          
          If that sounds ok, I'm willing to implement this based on the current
          Quills implementation.
          
          
          Tim
          
          • Re: Fwd: Fwd: plone.marquis now quills.syndication

            from "Derek Richardson" on Dec 29, 2007 10:37 PM
            On Dec 29, 2007 7:09 PM, Tim Hicks <tim@...> wrote:
            > Derek Richardson wrote:
            > > I've been mulling this over. The difficulty is that Vice is more
            > > flexible than the current Quills links portlet can display. With Vice,
            > > you can have an arbitrary number of named feeds of arbitrary formats.
            > > For instance, you might have no rss 1 feed and two atom feeds, say one
            > > of which requires authentication and the other doesn't.
            >
            > Ooh!  I didn't realise that you could have some authenticated and some
            > not :).  That sounds gooood.
            
            Well, RSS readers use basic auth, so you have it to have it set up
            correctly. But we're doing this at gatech using CAS authentication and
            the 'published url' field.
            
            > > I wouldn't
            > > mind having a portlet that displays all the available feeds on a
            > > specified object - in fact, that's a very good idea that we hadn't
            > > thought of.
            >
            > Good.
            >
            > > However, I like the snazzy graphics in the Quills links
            > > portlet but I'm having trouble figuring out how to reconcile the
            > > static nature of images with the dynamic, flexible Vice feeds config.
            > > Ideas?
            >
            > Hmm.  I still don't know the Vice code very well.  Presumably there is a
            > way to get a list of all outbound feeds, and from each feed to get
            > identify what format it is in.  Presumably we can setup the portlet to
            > loop over all feeds, generate an href for each, and optionally embed the
            > appropriate image for the feed format.  The alt attribute should
            > probably then have the feed title.
            
            Yep. Look at the code in p.a.s.o in the browser directory that
            displays feeds. I think it is viewfeed.py and view_feed.pt.
            
            > If you have lots of slightly different (say) atom feeds setup for an
            > object, a portlet of this sort might not be very good for visually
            > distinguishing between them, but as a default implementation, it doesn't
            > sound too bad to me.
            
            As a default impl, it sounds fine to me, too.
            
            > If that sounds ok, I'm willing to implement this based on the current
            > Quills implementation.
            
            w00t! Have at it! We'll roll it into Vice 1.0a4. ;)
            
            Derek
            
            • Re: Fwd: Fwd: plone.marquis now quills.syndication

              from Tim Hicks on Jan 01, 2008 04:05 PM
              Derek Richardson wrote:
              > On Dec 29, 2007 7:09 PM, Tim Hicks <tim@...> wrote:
              >> Derek Richardson wrote:
              >>> I've been mulling this over. The difficulty is that Vice is more
              >>> flexible than the current Quills links portlet can display. With Vice,
              >>> you can have an arbitrary number of named feeds of arbitrary formats.
              >>> For instance, you might have no rss 1 feed and two atom feeds, say one
              >>> of which requires authentication and the other doesn't.
              >> Ooh!  I didn't realise that you could have some authenticated and some
              >> not :).  That sounds gooood.
              > 
              > Well, RSS readers use basic auth, so you have it to have it set up
              > correctly. But we're doing this at gatech using CAS authentication and
              > the 'published url' field.
              
              What does the published_url field do?
              
              [...]
              
              >> If that sounds ok, I'm willing to implement this based on the current
              >> Quills implementation.
              > 
              > w00t! Have at it! We'll roll it into Vice 1.0a4. ;)
              
              See my checkin at <http://dev.plone.org/collective/changeset/56326>.
              Advice on appropriate tests would be welcome.
              
              
              Tim