.. -*- coding: utf-8 -*-
Pre-defined schemas in the library
----------------------------------
The library defines a set of entity schemas that are required by the system
or commonly used in `CubicWeb` applications.
Of course, you can extend those schemas if necessary.
System schemas
``````````````
The available system entities 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
(The first 'E' in some of the names is the first letter of 'Erudi',
`CubicWeb`'s old name; it might be changed/removed some day.)
Available cubes
```````````````
An application is based on several basic cubes. In the set of available
basic cubes we can find for example :
* addressbook_: PhoneNumber and PostalAddress
* basket_: Basket (like a shopping cart)
* blog_: Blog (a *very* basic blog)
* comment_: Comment (to attach comment threads to entities)
* email_: archiving management for emails (`Email`, `Emailpart`,
`Emailthread`)
* event_: Event (define events, display them in calendars)
* file_: File (to allow users to upload and store binary or text files)
* folder_: Folder (to organize things but grouping them in folders)
* keyword_: Keyword (to define classification schemes)
* link_: Link (to collect links to web resources)
* mailinglist_: MailingList (to reference a mailing-list and the URLs
for its archives and its admin interface)
* person_: Person (easily mixed with addressbook)
* tag_: Tag (to tag anything)
* task_: Task (something to be done between start and stop date)
* zone_: Zone (to define places within larger places, for example a
city in a state in a country)
.. _addressbook: http://www.cubicweb.org/project/cubicweb-addressbook
.. _basket: http://www.cubicweb.org/project/cubicweb-basket
.. _blog: http://www.cubicweb.org/project/cubicweb-blog
.. _comment: http://www.cubicweb.org/project/cubicweb-comment
.. _email: http://www.cubicweb.org/project/cubicweb-email
.. _event: http://www.cubicweb.org/project/cubicweb-event
.. _file: http://www.cubicweb.org/project/cubicweb-file
.. _folder: http://www.cubicweb.org/project/cubicweb-folder
.. _keyword: http://www.cubicweb.org/project/cubicweb-keyword
.. _link: http://www.cubicweb.org/project/cubicweb-link
.. _mailinglist: http://www.cubicweb.org/project/cubicweb-mailinglist
.. _person: http://www.cubicweb.org/project/cubicweb-person
.. _tag: http://www.cubicweb.org/project/cubicweb-tag
.. _task: http://www.cubicweb.org/project/cubicweb-task
.. _zone: http://www.cubicweb.org/project/cubicweb-zone
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