doc/book/en/04-01-schema-stdlib.en.txt
author Sandrine Ribeau <sandrine.ribeau@logilab.fr>
Wed, 19 Nov 2008 17:47:27 -0800
changeset 106 fa179de1a787
parent 101 c9138325b89f
permissions -rw-r--r--
[doc] Adjust TOC for this particular chapter to get the content and not list of links.

.. -*- 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 in the library
````````````````````

An application is based on several basic cubes. In the set of available
basic cubes we can find by 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.