doc/book/en/B021-schema-stdlib.en.txt
author Nicolas Chauvat <nicolas.chauvat@logilab.fr>
Mon, 22 Dec 2008 19:54:30 +0100
changeset 268 0575e7973c5e
parent 229 767ff7f5d5a7
child 271 e150b92237d9
permissions -rw-r--r--
[doc] trying to improve the tutorial

.. -*- 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 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.