#10902: New collections (merged plip)
---------------------+------------------------------------------------------
 Reporter:  elvix    |       Owner:  elvix
     Type:  PLIP     |      Status:  new  
 Priority:  minor    |   Milestone:  4.1  
Component:  Unknown  |    Keywords:       
---------------------+------------------------------------------------------
 == Motivation ==

 Collections in Plone are the most powerful tool content editors and site
 managers have to construct navigation and site sections. They do, however
 create somewhat of a mess in their current form and are still hard to use.

 This proposal is for supplying a replacement type for collections, using
 ajax/javascript to make a simpler, more sane and streamlined user
 experience for using collections and having a more lightweight backend
 that does not depend on many nested criteria types.

 The criteria (i.e the internal implementation details) of old style
 collections are implemented as Archetypes content types. This has a number
 of unfortunate side-effects:

 * Performance. Content objects take a long time to save and are
 heavyweight objects. Using many of these for internal structure causes
 large overhead.

 * UI pain. These internal types pop up in a lot of lists and preference
 screens designed for managing content. It is currently necessary for
 developers to maintain lots of exceptions and filters and double lists to
 not show these non-types to users.

 * The user-interface forms for collections have also proven to be almost
 impossible for normal users to use. THey must be modernised and improved.



 == Assumptions ==

 This work will not touch existing ATTopic, but replace it with an
 alternative implementation. To avoid massive migration headaches, we will
 leave ATTopics in place and just add a new type for new collections. A
 migration path is outside the scope of this PLIP.

 == Proposal & Implementation ==

 Implement a new content type that can replace ATTopic. Use a lightweight
 backend for storing the query (currently uses a string) instead of using
 criteria subobjects.

 An interactive JS/AJAX-driven form where the user can add one line (i.e
 one clause to the query) at a time. Adding a clause/line will narrow the
 resultset immediately. If the user changes or adds criteria, the bottom
 area will update a tally of how many results are found immediately. — and
 also a preview list of the first few results.

 Adding a line/clause/criteria will be a simple one-step process, not the
 current two step process where users first save their criteria type, then
 return to the form to fill data. The current form process is extremely
 confusing to users.

 See attached screenshot for example of a way the criteria form can look.

 == Deliverables ==

  * reusable query code (can be used for portlets, tiles, advanced search
 etc)
  * content type with query form UI
  * tests
  * i18n

 == Risks ==

  * A rather big implementation job, but most of the work is already
 complete.
  * Introduces dependencies (plone.app.registry)
  * Possible confusion for people migrating existing sites that we leave
 old collections in place, and introduce new ones with new UI. Must be
 solved by documentation.


 This PLIP is a combination of the previously approved yet not completed
 PLIPs #9295 and #9283

-- 
Ticket URL: <http://dev.plone.org/plone/ticket/10902>
Plone <http://plone.org>
Plone Content Management System
_______________________________________________
PLIP-Advisories mailing list
plip-advisor...@lists.plone.org
http://lists.plone.org/mailman/listinfo/plip-advisories

Reply via email to