merge cubicweb-version-3_0_2
authorsylvain.thenault@logilab.fr
Wed, 14 Jan 2009 13:26:04 +0100
changeset 406 221886d8e3c8
parent 402 e0cb1579eba2 (current diff)
parent 405 295f3cd70915 (diff)
child 407 68783684ec2f
child 410 18d3e56c1de4
merge
--- a/doc/book/en/A03a-concepts.en.txt	Wed Jan 14 13:25:38 2009 +0100
+++ b/doc/book/en/A03a-concepts.en.txt	Wed Jan 14 13:26:04 2009 +0100
@@ -385,7 +385,7 @@
 Standard structure for a cube
 `````````````````````````````
 
-A complex cube is structured as follows:
+A cube is structured as follows:
 
 ::
   
@@ -426,7 +426,7 @@
   |
   |-- site_cubicweb.py
   |
-  |-- sobjects.py
+  |-- hooks.py
   |
   |-- test/
   |   |-- data/
@@ -438,7 +438,8 @@
   `-- views.py
 
     
-We can use simple Python module instead of packages, for example: 
+We can use subpackages instead of python modules for ``views.py``, ``entities.py``,
+``schema.py`` or ``hooks.py``. For example, we could have:
 
 ::
   
@@ -446,8 +447,11 @@
   |
   |-- entities.py
   |-- hooks.py
-  \-- views.py
-    
+  `-- views/
+      |-- forms.py
+      |-- primary.py
+      `-- widgets.py
+  
 
 where :
 
@@ -486,32 +490,47 @@
 
 The available application entities are:
 
-* addressbook: PhoneNumber and PostalAddress
+* addressbook_: PhoneNumber and PostalAddress
 
-* basket: Basket (like a shopping cart)
+* basket_: Basket (like a shopping cart)
 
-* blog: Blog (a *very* basic blog)
+* blog_: Blog (a *very* basic blog)
 
-* classfolder: Folder (to organize things but grouping them in folders)
+* comment_: Comment (to attach comment threads to entities)
+
+* event_: Event (define events, display them in calendars)
 
-* classtags: Tag (to tag anything)
+* file_: File (to allow users to upload and store binary or text files)
 
-* file: File (to allow users to upload and store binary or text files)
+* folder_: Folder (to organize things but grouping them in folders)
 
-* link: Link (to collect links to web resources)
+* keyword_: Keyword (to define classification schemes)
 
-* mailinglist: MailingList (to reference a mailing-list and the URLs
+* 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)
+* person_: Person (easily mixed with addressbook)
+
+* tag_: Tag (to tag anything)
 
-* task: Task (something to be done between start and stop date)
+* task_: Task (something to be done between start and stop date)
 
-* zone: Zone (to define places within larger places, for example a
+* zone_: Zone (to define places within larger places, for example a
   city in a state in a country)
 
-The available system entities are:
-
-* comment: Comment (to attach comment threads to entities)
-
-
+.. _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
+.. _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
--- a/doc/book/en/C040-rql.en.txt	Wed Jan 14 13:25:38 2009 +0100
+++ b/doc/book/en/C040-rql.en.txt	Wed Jan 14 13:26:04 2009 +0100
@@ -108,22 +108,22 @@
 - *Looking for people working for eurocopter interested in training*
    ::
 
-        Person P WHERE
-        P work_for P, S name 'Eurocopter'
+        Any P WHERE
+        P is Person, P work_for P, S name 'Eurocopter'
         P interested_by T, T name 'training'
 
 - *Search note less than 10 days old written by jphc or ocy*
    ::
 
-        Note N WHERE
-        N written_on D, D day> (today -10),
+        Any N WHERE
+        N is Note, N written_on D, D day> (today -10),
         N written_by P, P name 'jphc' or P name 'ocy'
 
 - *Looking for people interested in training or living in Paris*
    ::
 
-        Person P WHERE
-        (P interested_by T, T name 'training') or
+        Any P WHERE
+        P is Person, (P interested_by T, T name 'training') OR
         (P city 'Paris')
 
 - *The name and surname of all people*
@@ -158,7 +158,7 @@
 - *Insert a new person named 'foo'*
    ::
 
-        INSERT Person X: X name 'widget'
+        INSERT Person X: X name 'foo'
 
 - *Insert a new person named 'foo', another called 'nice' and a 'friend' relation
   between them*
@@ -211,6 +211,56 @@
         DELETE X friend Y WHERE X is Person, X name 'foo'
 
 
+Undocumented (yet) type of queries
+----------------------------------
+
+**Limit / offset**
+::
+    
+    Any P ORDERBY N LIMIT 5 OFFSET 10 WHERE P is Person, P firstname N
+
+**Function calls**
+::
+    
+    Any UPPER(N) WHERE P firstname N
+
+**Exists**
+::
+    
+    Any X ORDERBY PN,N
+    WHERE X num N, X version_of P, P name PN, 
+          EXISTS(X in_state S, S name IN ("dev", "ready"))
+          OR EXISTS(T tags X, T name "priority")
+
+**Left outer join**
+::
+
+    Any T,P,V WHERE T is Ticket, T concerns P, T done_in V?
+    
+    
+**Having**
+::
+    
+    Any X GROUPBY X WHERE X knows Y HAVING COUNT(Y) > 10
+
+**Simple union**
+::
+
+    (Any X WHERE X is Person) UNION (Any X WHERE X is Company)
+    
+**Complex union**
+::
+
+     DISTINCT Any W, REF
+        WITH W, REF BEING 
+            (
+	      (Any W, REF WHERE W is Workcase, W ref REF, 
+                                 W concerned_by D, D name "Logilab")
+               UNION 
+              (Any W, REF WHERE W is Workcase, W ref REF, '
+                                W split_into WP, WP name "WP1")
+            )
+
 
 Language definition
 ===================
@@ -222,10 +272,11 @@
 ::
 
      DISTINCT, INSERT, SET, DELETE,
-     WHERE, AND, OR, NOT
-     IN, LIKE,
-     TRUE, FALSE, NULL, TODAY, NOW
-     GROUPBY, ORDERBY, ASC, DESC
+     WHERE, AND, OR, NOT, EXISTS,
+     IN, LIKE, UNION, WITH, BEING,
+     TRUE, FALSE, NULL, TODAY, NOW,
+     LIMIT, OFFSET,
+     HAVING, GROUPBY, ORDERBY, ASC, DESC
 
 
 Variables and Typing