======================================
CPSPortlets - portlet override (draft)
======================================

:Author: Jean-Marc Orliaguet <jmo@ita.chalmers.se>
:Revision: $Id: portlet-override.txt 30520 2005-12-12 19:49:21Z dkuhlman $

.. sectnum::    :depth: 4
.. contents::   :depth: 4


Background
==========

The portlets located in a folder are by default visible in all
sub-folders. It means that the amount of portlets tends to
increase as one goes deeper into the site structure.

It can sometimes be useful to control the visibility of the
portlets located in the parent folders.

The solution is to allow users to override portlets.


Implementation
==============

The implementation is based on a dialogue between the manager(s)
of a given folder and the manager(s) of sub-folders:

- Portlets can be overridden be default unless the
  ``disable_override`` flag is set.

- If a portlet located in a given folder has the ``slot_override``
  flag set then only the portlets of the same slot located in the
  folder and in the folders below will be visible. All portlets
  above except the ones with the ``disable_override`` flag on will
  be invisible.

- Only visible portlets may override other portlets.


Example
=======

::

    Portlet A1 in /workspaces               Portlet A2 in /workspaces
    in SLOT1                                in SLOT1
    -------------------------               -------------------------
    disable_override: YES                   disable_override: NO


    Portlet B in /workspaces/members/user
    in SLOT1
    -------------------------------------
    slot_override: YES


Notes:

- Visible in /workspaces (SLOT1): A1, A2

- Visible in /workspaces/members/user (SLOT1): A1, B
  (A2 is overridden, A1 cannot be overridden)
