cubicweb logo

Table Of Contents

Previous topic

1.2. Steps for creating your cube

Next topic

1.10. Templates

This Page

1.9. Cubes

1.9.1. Standard library

A library of standard cubes are available from CubicWeb Forge Cubes provide entities and views.

The available application entities in standard cubes are:

  • addressbook: PhoneNumber and PostalAddress
  • basket: Basket (like a shopping cart)
  • blog: Blog (a very basic blog)
  • classfolder: Folder (to organize things but grouping them in folders)
  • classtags: Tag (to tag anything)
  • comment: Comment (to attach comment threads to entities)
  • file: File (to allow users to upload and store binary or text files)
  • 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)
  • 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)

1.9.2. Adding comments to BlogDemo

To import a cube in your instance just change the line in the __pkginfo__.py file and verify that the cube you are planning to use is listed by the command cubicweb-ctl list. For example:

__use__ = ('comment',)

will make the Comment entity available in your BlogDemo cube.

Change the schema to add a relationship between BlogEntry and Comment and you are done. Since the comment cube defines the comments relationship, adding the line:

comments = ObjectRelation('Comment', cardinality='1*', composite='object')

to the definition of a BlogEntry will be enough.

1.9.3. Synchronize the data model

Once you modified your data model, you need to synchronize the database with your model. For this purpose, CubicWeb provides a very useful command cubicweb-ctl shell blogdemo which launches an interactive shell where you can enter migration commands (see cubicweb-ctl tool for more details)). As you added the cube named comment, you need to run:

add_cube('comment')

You can now start your instance and comment your blog entries.