doc/book/en/B021-schema-stdlib.en.txt
author Sandrine Ribeau <sandrine.ribeau@logilab.fr>
Tue, 23 Dec 2008 13:38:02 -0800
changeset 291 87c8d96f6173
parent 271 e150b92237d9
permissions -rw-r--r--
[doc] Renaming for advanced thematic.

.. -*- coding: utf-8 -*-

Pre-defined schemas in the library
----------------------------------

The library defines a set of entities schemas that are required by the system
or commonly used in `CubicWeb` applications.
Of course, you can extend those schemas if necessarry.


System schemas
``````````````
The system entities available are :

* `EUser`, system users
* `EGroup`, users groups
* `EEType`, entity type
* `ERType`, relation type

* `State`, workflow state
* `Transition`, workflow transition
* `TrInfo`, record of a transition trafic for an entity 

* `EmailAddress`, email address, used by the system to send notifications
  to the users and also used by others optionnals schemas

* `EProperty`, used to configure the application
* `EPermission`, used to configure the security of the application

* `Card`, generic documenting card
* `Bookmark`, an entity type used to allow a user to customize his links within
  the application

Cubes available
```````````````

An application is based on several basic cubes. In the set of available
basic cubes we can find for example :

* `comment`, provides an entity type for `Comment` allowing us to comment others
  site's entities

* `mailinglist`, provides an entity type for `Mailinglist` which groups informations
  in a discussion list

* `file`, provides entity types for `File` et `Image` used to represent
  files (text or binary) with additionnal informations such as MIME type or
  encoding.
  
* `link`, provides an entity type for hypertext link (`Link`)

* `blog`, provides an entity type weblog (`Blog`)

* `person`, provides an entity type for a person (`Person`)

* `addressbook`, provides an entity type used to represent phone 
  numbers (`PhoneNumber`) and mailing address (`PostalAddress`)
  
* `classtags`, categorization system based on tags (`Tag`)

* `classfolders`, categorization system based on folders hierarchy in order 
  to create navigation sections (`Folder`)

* `email`, archiving management for emails (`Email`, `Emailpart`,
  `Emailthread`)

* `basket`, basket management (`Basket`) allowing to group entities

To declare the use of a component, once installed, add the name of the component
to the variable `__use__` in the file `__pkginfo__.py` of your own component.

.. note::
  The listed cubes above are available as debian-packages on `CubicWeb's forge`_.

.. _`CubicWeb's forge`: http://www.cubicweb.org/project?vtitle=All%20cubicweb%20projects