author | Sandrine Ribeau <sandrine.ribeau@logilab.fr> |
Mon, 22 Dec 2008 13:54:57 -0800 | |
changeset 272 | 06077d56f2c4 |
parent 229 | 767ff7f5d5a7 |
child 280 | ce829abf7c29 |
permissions | -rw-r--r-- |
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
1 |
.. -*- coding: utf-8 -*- |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
2 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
3 |
Concepts |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
4 |
-------- |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
5 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
6 |
Global architecture |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
7 |
~~~~~~~~~~~~~~~~~~~ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
8 |
.. image:: images/archi_globale.png |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
9 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
10 |
.. note:: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
11 |
For real, the client and server sides are integrated in the same |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
12 |
process and interact directly, without the needs for distants |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
13 |
calls using Pyro. It is important to note down that those two |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
14 |
sides, client/server, are disjointed and it is possible to execute |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
15 |
a couple of calls in distincts processes to balance the load of |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
16 |
your web site on one or more machines. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
17 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
18 |
.. _TermsVocabulary: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
19 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
20 |
Terms and vocabulary |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
21 |
~~~~~~~~~~~~~~~~~~~~~ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
22 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
23 |
*schema* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
24 |
The schema defines the data model of an application based on entities |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
25 |
and relations, modeled with a comprehensive language made of Python |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
26 |
classes based on `yams`_ library. This is the core piece |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
27 |
of an application. It is initially defined in the file system and is |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
28 |
stored in the database at the time an instance is created. `CubicWeb` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
29 |
provides a certain number of system entities included automatically as |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
30 |
it is necessarry for the core of `CubicWeb` and a library of |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
31 |
cubes that can be explicitely included if necessary. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
32 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
33 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
34 |
*entity type* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
35 |
An entity is a set of attributes; the essential attribute of |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
36 |
an entity is its key, named eid |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
37 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
38 |
*relation type* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
39 |
Entities are linked to each others by relations. In `CubicWeb` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
40 |
relations are binary: by convention we name the first item of |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
41 |
a relation the `subject` and the second the `object`. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
42 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
43 |
*final entity type* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
44 |
Final types corresponds to the basic types such as string of characters, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
45 |
integers... Those types have a main property which is that they can |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
46 |
only be used as `object` of a relation. The attributes of an entity |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
47 |
(non final) are entities (finals). |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
48 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
49 |
*final relation type* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
50 |
A relation is said final if its `object` is a final type. This is equivalent |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
51 |
to an entity attribute. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
52 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
53 |
*relation definition* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
54 |
a relation definition is a 3-uple (subject entity type, relation type, object entity type), |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
55 |
with an associated set of property such as cardinality, constraints... |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
56 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
57 |
*repository* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
58 |
This is the RQL server side of `CubicWeb`. Be carefull not to get |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
59 |
confused with a Mercurial repository or a debian repository. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
60 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
61 |
*source* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
62 |
A data source is a container of data (SGBD, LDAP directory, `Google |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
63 |
App Engine`'s datastore ...) integrated in the |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
64 |
`CubicWeb` repository. This repository has at least one source, `system` which |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
65 |
contains the schema of the application, plain-text index and others |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
66 |
vital informations for the system. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
67 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
68 |
*configuration* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
69 |
It is possible to create differents configurations for an instance: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
70 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
71 |
- ``repository`` : repository only, accessible for clients using Pyro |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
72 |
- ``twisted`` : web interface only, access the repository using Pyro |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
73 |
- ``all-in-one`` : web interface and repository in a single process. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
74 |
The repository could be or not accessible using Pyro. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
75 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
76 |
*cube* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
77 |
A cube is a model grouping one or multiple data types and/or views |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
78 |
to provide a specific functionnality or a complete `CubicWeb` application |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
79 |
potentially using other cubes. The available subes are located in the file |
272
06077d56f2c4
[doc] Does not keep mercurial forest as the only reference for path description.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
229
diff
changeset
|
80 |
system at `/path/to/forest/cubicweb/cubes` for a Mercurial forest installation, |
06077d56f2c4
[doc] Does not keep mercurial forest as the only reference for path description.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
229
diff
changeset
|
81 |
for a debian packages installation they will be located in |
06077d56f2c4
[doc] Does not keep mercurial forest as the only reference for path description.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
229
diff
changeset
|
82 |
`/usr/share/cubicweb/cubes`. |
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
83 |
Larger applications can be built faster by importing cubes, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
84 |
adding entities and relationships and overriding the |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
85 |
views that need to display or edit informations not provided by |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
86 |
cubes. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
87 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
88 |
*instance* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
89 |
An instance is a specific installation of a cube. All the required |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
90 |
configuration files necessarry for the well being of your web application |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
91 |
are grouped in an instance. This will refer to the cube(s) your application |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
92 |
is based on. |
229
767ff7f5d5a7
[doc] Replace all : s/by example/for example/
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
93 |
For example logilab.org and our intranet are two instances of a single |
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
94 |
cube jpl, developped internally. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
95 |
The instances are defined in the directory `~/etc/cubicweb.d`. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
96 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
97 |
*application* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
98 |
The term application is sometime used to talk about an instance |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
99 |
and sometimes to talk of a cube depending on the context. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
100 |
So we would like to avoid using this term and try to use *cube* and |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
101 |
*instance* instead. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
102 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
103 |
*result set* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
104 |
This object contains the results of an RQL query sent to the source |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
105 |
and information on the query. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
106 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
107 |
*Pyro* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
108 |
`Python Remote Object`_, distributed objects system similar to Java's RMI |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
109 |
(Remote Method Invocation), which can be used for the dialog between the web |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
110 |
side of the framework and the RQL repository. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
111 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
112 |
*query language* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
113 |
A full-blown query language named RQL is used to formulate requests |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
114 |
to the database or any sources such as LDAP or `Google App Engine`'s |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
115 |
datastore. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
116 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
117 |
*views* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
118 |
A view is applied to a `result set` to present it as HTML, XML, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
119 |
JSON, CSV, etc. Views are implemented as Python classes. There is no |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
120 |
templating language. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
121 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
122 |
*generated user interface* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
123 |
A user interface is generated on-the-fly from the schema definition: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
124 |
entities can be created, displayed, updated and deleted. As display |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
125 |
views are not very fancy, it is usually necessary to develop your |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
126 |
own. Any generated view can be overridden by defining a new one with |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
127 |
the same identifier. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
128 |
|
123
c5dd68070dea
move registry details into their own chapter, add missing classmethod() for __select__ definition
Sylvain Thenault <sylvain.thenault@logilab.fr>
parents:
120
diff
changeset
|
129 |
*rql* |
c5dd68070dea
move registry details into their own chapter, add missing classmethod() for __select__ definition
Sylvain Thenault <sylvain.thenault@logilab.fr>
parents:
120
diff
changeset
|
130 |
XXX |
c5dd68070dea
move registry details into their own chapter, add missing classmethod() for __select__ definition
Sylvain Thenault <sylvain.thenault@logilab.fr>
parents:
120
diff
changeset
|
131 |
|
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
132 |
.. _`Python Remote Object`: http://pyro.sourceforge.net/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
133 |
.. _`yams`: http://www.logilab.org/project/yams/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
134 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
135 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
136 |
`CubicWeb` engine |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
137 |
~~~~~~~~~~~~~~~~~ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
138 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
139 |
The engine in `CubicWeb` is a set of classes managing a set of objects loaded |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
140 |
dynamically at the startup of `CubicWeb` (*appobjects*). Those dynamics objects, based on the schema |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
141 |
or the library, are building the final application. The differents dymanic components are |
229
767ff7f5d5a7
[doc] Replace all : s/by example/for example/
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
142 |
for example: |
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
143 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
144 |
* client and server side |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
145 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
146 |
- entities definition, containing the logic which enables application data manipulation |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
147 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
148 |
* client side |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
149 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
150 |
- *views*, or more specifically |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
151 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
152 |
- boxes |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
153 |
- header and footer |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
154 |
- forms |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
155 |
- page templates |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
156 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
157 |
- *actions* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
158 |
- *controllers* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
159 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
160 |
* server side |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
161 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
162 |
- notification hooks |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
163 |
- notification views |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
164 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
165 |
The components of the engine are: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
166 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
167 |
* a frontal web (only twisted is available so far), transparent for dynamic objects |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
168 |
* an object that encapsulates the configuration |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
169 |
* a `registry` (`cubicweb.cwvreg`) containing the dynamic objects loaded automatically |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
170 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
171 |
Every *appobject* may access to the instance configuration using its *config* attribute |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
172 |
and to the registry using its *vreg* attribute. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
173 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
174 |
API Python/RQL |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
175 |
~~~~~~~~~~~~~~ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
176 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
177 |
Inspired from the standard db-api, with a Connection object having the methods |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
178 |
cursor, rollback and commit essentially. The most important method is |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
179 |
the `execute` method of a cursor : |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
180 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
181 |
`execute(rqlstring, args=None, eid_key=None, build_descr=True)` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
182 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
183 |
:rqlstring: the RQL query to execute (unicode) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
184 |
:args: if the query contains substitutions, a dictionnary containing the values to use |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
185 |
:eid_key: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
186 |
an implementation detail of the RQL queries cache implies that if a substitution |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
187 |
is used to introduce an eid *susceptible to raise the ambiguities in the query |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
188 |
type resolution*, then we have to specify the correponding key in the dictionnary |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
189 |
through this argument |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
190 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
191 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
192 |
The `Connection` object owns the methods `commit` and `rollback`. You *should |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
193 |
never need to use them* during the development of the web interface based on |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
194 |
the `CubicWeb` framework as it determines the end of the transaction depending |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
195 |
on the query execution success. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
196 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
197 |
.. note:: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
198 |
While executing updates queries (SET, INSERT, DELETE), if a query generates |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
199 |
an error related to security, a rollback is automatically done on the current |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
200 |
transaction. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
201 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
202 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
203 |
The `Request` class (`cubicweb.web`) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
204 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
205 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
206 |
A request instance is created when an HTPP request is sent to the web server. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
207 |
It contains informations such as forms parameters, user authenticated, etc. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
208 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
209 |
**Globally, a request represents a user query, either through HTTP or not |
229
767ff7f5d5a7
[doc] Replace all : s/by example/for example/
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
210 |
(we also talk about RQL queries on the server side for example)** |
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
211 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
212 |
An instance of `Request` has the following attributes: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
213 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
214 |
* `user`, instance of `cubicweb.common.utils.User` corresponding to the authenticated |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
215 |
user |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
216 |
* `form`, dictionnary containing the values of a web form |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
217 |
* `encoding`, characters encoding to use in the response |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
218 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
219 |
But also: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
220 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
221 |
:Session data handling: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
222 |
* `session_data()`, returns a dictinnary containing all the session data |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
223 |
* `get_session_data(key, default=None)`, returns a value associated to the given |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
224 |
key or the value `default` if the key is not defined |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
225 |
* `set_session_data(key, value)`, assign a value to a key |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
226 |
* `del_session_data(key)`, suppress the value associated to a key |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
227 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
228 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
229 |
:Cookies handling: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
230 |
* `get_cookie()`, returns a dictionnary containing the value of the header |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
231 |
HTTP 'Cookie' |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
232 |
* `set_cookie(cookie, key, maxage=300)`, adds a header HTTP `Set-Cookie`, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
233 |
with a minimal 5 minutes length of duration by default (`maxage` = None |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
234 |
returns a *session* cookie which will expire when the user closes the browser |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
235 |
window |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
236 |
* `remove_cookie(cookie, key)`, forces a value to expire |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
237 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
238 |
:URL handling: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
239 |
* `url()`, returns the full URL of the HTTP request |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
240 |
* `base_url()`, returns the root URL of the web application |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
241 |
* `relative_path()`, returns the relative path of the request |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
242 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
243 |
:And more...: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
244 |
* `set_content_type(content_type, filename=None)`, adds the header HTTP |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
245 |
'Content-Type' |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
246 |
* `get_header(header)`, returns the value associated to an arbitrary header |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
247 |
of the HTTP request |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
248 |
* `set_header(header, value)`, adds an arbitrary header in the response |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
249 |
* `cursor()` returns a RQL cursor on the session |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
250 |
* `execute(*args, **kwargs)`, shortcut to ``.cursor().execute()`` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
251 |
* `property_value(key)`, properties management (`EProperty`) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
252 |
* dictionnary `data` to store data to share informations between components |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
253 |
*while a request is executed* |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
254 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
255 |
Please note down that this class is abstract and that a concrete implementation |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
256 |
will be provided by the *frontend* web used (in particular *twisted* as of |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
257 |
today). For the views or others that are executed on the server side, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
258 |
most of the interface of `Request` is defined in the session associated |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
259 |
to the client. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
260 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
261 |
The `AppObject` class |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
262 |
~~~~~~~~~~~~~~~~~~~~~ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
263 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
264 |
In general: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
265 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
266 |
* we do not inherit directly from this class but from a more specific |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
267 |
class such as `AnyEntity`, `EntityView`, `AnyRsetView`, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
268 |
`Action`... |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
269 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
270 |
* to be recordable, a subclass has to define its own register (attribute |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
271 |
`__registry__`) and its identifier (attribute `id`). Usually we do not have |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
272 |
to take care of the register, only the identifier `id`. |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
273 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
274 |
We can find a certain number of attributes and methods defined in this class |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
275 |
and so common to all the application objects: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
276 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
277 |
At the recording, the following attributes are dynamically added to |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
278 |
the *subclasses*: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
279 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
280 |
* `vreg`, the `vregistry` of the application |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
281 |
* `schema`, the application schema |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
282 |
* `config`, the application configuration |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
283 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
284 |
We also find on instances, the following attributes: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
285 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
286 |
* `req`, `Request` instance |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
287 |
* `rset`, the *result set* associated to the object if necessarry |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
288 |
* `cursor`, rql cursor on the session |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
289 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
290 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
291 |
:URL handling: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
292 |
* `build_url(method=None, **kwargs)`, returns an absolute URL based on |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
293 |
the given arguments. The *controller* supposed to handle the response |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
294 |
can be specified through the special parameter `method` (the connection |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
295 |
is theoretically done automatically :). |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
296 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
297 |
* `datadir_url()`, returns the directory of the application data |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
298 |
(contains static files such as images, css, js...) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
299 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
300 |
* `base_url()`, shortcut to `req.base_url()` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
301 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
302 |
* `url_quote(value)`, version *unicode safe* of the function `urllib.quote` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
303 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
304 |
:Data manipulation: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
305 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
306 |
* `etype_rset(etype, size=1)`, shortcut to `vreg.etype_rset()` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
307 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
308 |
* `eid_rset(eid, rql=None, descr=True)`, returns a *result set* object for |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
309 |
the given eid |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
310 |
* `entity(row, col=0)`, returns the entity corresponding to the data position |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
311 |
in the *result set* associated to the object |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
312 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
313 |
* `complete_entity(row, col=0, skip_bytes=True)`, is equivalent to `entity` but |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
314 |
also call the method `complete()` on the entity before returning it |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
315 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
316 |
:Data formatting: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
317 |
* `format_date(date, date_format=None, time=False)` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
318 |
* `format_time(time)` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
319 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
320 |
:And more...: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
321 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
322 |
* `external_resource(rid, default=_MARKER)`, access to a value defined in the |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
323 |
configuration file `external_resource` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
324 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
325 |
* `tal_render(template, variables)`, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
326 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
327 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
328 |
.. note:: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
329 |
When we inherit from `AppObject` (even not directly), you *always* have to use |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
330 |
**super()** to get the methods and attributes of the superclasses, and not |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
331 |
use the class identifier. |
229
767ff7f5d5a7
[doc] Replace all : s/by example/for example/
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
332 |
For example, instead of writting: :: |
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
333 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
334 |
class Truc(PrimaryView): |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
335 |
def f(self, arg1): |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
336 |
PrimaryView.f(self, arg1) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
337 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
338 |
You'd better write: :: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
339 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
340 |
class Truc(PrimaryView): |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
341 |
def f(self, arg1): |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
342 |
super(Truc, self).f(arg1) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
343 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
344 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
345 |
Standard structure for a cube |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
346 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
347 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
348 |
A complex cube is structured as follows: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
349 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
350 |
:: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
351 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
352 |
mycube/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
353 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
354 |
|-- schema.py |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
355 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
356 |
|-- entities/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
357 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
358 |
|-- sobjects/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
359 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
360 |
|-- views/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
361 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
362 |
|-- test/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
363 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
364 |
|-- i18n/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
365 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
366 |
|-- data/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
367 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
368 |
|-- migration/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
369 |
| |- postcreate.py |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
370 |
| \- depends.map |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
371 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
372 |
|-- debian/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
373 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
374 |
\-- __pkginfo__.py |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
375 |
|
229
767ff7f5d5a7
[doc] Replace all : s/by example/for example/
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
376 |
We can use simple Python module instead of packages, for example: |
119
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
377 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
378 |
:: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
379 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
380 |
mycube/ |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
381 |
| |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
382 |
|-- entities.py |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
383 |
|-- hooks.py |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
384 |
\-- views.py |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
385 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
386 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
387 |
where : |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
388 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
389 |
* ``schema`` contains the schema definition (server side only) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
390 |
* ``entities`` contains the entities definition (server side and web interface) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
391 |
* ``sobjects`` contains hooks and/or views notifications (server side only) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
392 |
* ``views`` contains the different components of the web interface (web interface only) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
393 |
* ``test`` contains tests specifics to the application (not installed) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
394 |
* ``i18n`` contains the messages catalog for supported languages (server side and |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
395 |
web interface) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
396 |
* ``data`` contains arbitrary data files served statically |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
397 |
(images, css, javascripts files)... (web interface only) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
398 |
* ``migration`` contains the initialization file for new instances |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
399 |
(``postcreate.py``) and in general a file containing the `CubicWeb` dependancies |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
400 |
of the cube depending on its version (``depends.map``) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
401 |
* ``debian`` contains all the files that manages the debian packaging |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
402 |
(you would find there the classical structure with ``control``, ``rules``, |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
403 |
``changelog``... (not installed) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
404 |
* the file ``__pkginfo__.py`` provides meta-data on the cube, especially the |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
405 |
distribution name and the current version (server side and web interface) or |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
406 |
also the sub-cubes used by this cube |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
407 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
408 |
The only required files are: |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
409 |
|
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
410 |
* the file ``__pkginfo__.py`` |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
411 |
* the schema definition |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
412 |
XXX false, we may want to have cubes which are only adding a service, no persistent data (eg embeding for instance) |
7a56ca431d65
[doc] missing file
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
413 |