author | Adrien Di Mascio <Adrien.DiMascio@logilab.fr> |
Fri, 30 Jan 2009 16:57:20 +0100 | |
changeset 543 | c0f2b6378f70 |
parent 383 | 66804d97b919 |
child 1191 | 216141cf47a3 |
permissions | -rw-r--r-- |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
1 |
.. -*- coding: utf-8 -*- |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
2 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
3 |
Frequently Asked Questions |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
4 |
========================== |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
5 |
|
310
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
6 |
[XXX 'copy answer from forum' means reusing text from |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
7 |
http://groups.google.com/group/google-appengine/browse_frm/thread/c9476925f5f66ec6 |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
8 |
and |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
9 |
http://groups.google.com/group/google-appengine/browse_frm/thread/d791ce17e2716147/eb078f8cfe8426e0 |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
10 |
and |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
11 |
http://groups.google.com/group/google-appengine/browse_frm/thread/f48cf6099973aef5/c28cd6934dd72457 |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
12 |
] |
cdd2b1247c50
[doc] add links to google-appengine forum
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
306
diff
changeset
|
13 |
|
306
1ed1da008e50
[doc] Removes references to LAX.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
199
diff
changeset
|
14 |
* Why does not CubicWeb have a template language ? |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
15 |
|
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
16 |
There are enough template languages out there. You can use your |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
17 |
preferred template language if you want. [explain how to use a |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
18 |
template language] |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
19 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
20 |
`CubicWeb` does not define its own templating language as this was |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
21 |
not our goal. Based on our experience, we realized that |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
22 |
we could gain productivity by letting designers use design tools |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
23 |
and developpers develop without the use of the templating language |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
24 |
as an intermediary that could not be anyway efficient for both parties. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
25 |
Python is the templating language that we use in `CubicWeb`, but again, |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
26 |
it does not prevent you from using a templating language. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
27 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
28 |
The reason template languages are not used in this book is that |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
29 |
experience has proved us that using pure python was less cumbersome. |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
30 |
|
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
31 |
* Why do you think using pure python is better than using a template language ? |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
32 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
33 |
Python is an Object Oriented Programming language and as such it |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
34 |
already provides a consistent and strong architecture and syntax |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
35 |
a templating language would not reach. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
36 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
37 |
When doing development, you need a real language and template |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
38 |
languages are not real languages. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
39 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
40 |
Using Python enables developing applications for which code is |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
41 |
easier to maintain with real functions/classes/contexts |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
42 |
without the need of learning a new dialect. By using Python, |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
43 |
we use standard OOP techniques and this is a key factor in a |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
44 |
robust application. |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
45 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
46 |
* Why do you use the GPL license to prevent me from doing X ? |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
47 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
48 |
GPL means that *if* you redistribute your application, you need to |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
49 |
redistribute it *and* the changes you made *and* the code _linked_ |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
50 |
to it under the GPL licence. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
51 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
52 |
Publishing a web site has nothing to do with redistributing |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
53 |
source code. A fair amount of companies use modified GPL code |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
54 |
for internal use. And someone could publish a `CubicWeb` component |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
55 |
under a BSD licence for others to plug into a GPL framework without |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
56 |
any problem. The only thing we are trying to prevent here is someone |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
57 |
taking the framework and packaging it as closed source to his own |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
58 |
clients. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
59 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
60 |
|
306
1ed1da008e50
[doc] Removes references to LAX.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
199
diff
changeset
|
61 |
* CubicWeb looks pretty recent. Is it stable ? |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
62 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
63 |
It is constantly evolving, piece by piece. The framework has |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
64 |
evolved over the past seven years and data has been migrated from |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
65 |
one schema to the other ever since. There is a well-defined way to |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
66 |
handle data and schema migration. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
67 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
68 |
* Why is the RQL query language looking similar to X ? |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
69 |
|
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
70 |
It may remind you of SQL but it is higher level than SQL, more like |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
71 |
SPARQL. Except that SPARQL did not exist when we started the project. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
72 |
Having SPARQL has a query language has been in our backlog for years. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
73 |
|
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
74 |
That RQL language is what is going to make a difference with django- |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
75 |
like frameworks for several reasons. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
76 |
|
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
77 |
1. accessing data is *much* easier with it. One can write complex |
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
78 |
queries with RQL that would be tedious to define and hard to maintain |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
79 |
using an object/filter suite of method calls. |
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
80 |
|
344
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
81 |
2. it offers an abstraction layer allowing your applications to run |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
82 |
on multiple back-ends. That means not only various SQL backends |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
83 |
(postgresql, sqlite, mysql), but also multiple databases at the |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
84 |
same time, and also non-SQL data stores like LDAP directories and |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
85 |
subversion/mercurial repositories (see the `vcsfile` |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
86 |
component). Google App Engine is yet another supported target for |
e0d5879a613e
tweak the faq a bit
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
337
diff
changeset
|
87 |
RQL. |
337
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
88 |
|
eb329d0db467
[doc] FAQ improvements based on posts in forums.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
335
diff
changeset
|
89 |
[copy answer from forum, explain why similar to sparql and why better |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
90 |
than django and SQL] |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
91 |
|
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
92 |
* which ajax library |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
93 |
|
317
cf1c6178b322
we've been using jquery for a while now
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
310
diff
changeset
|
94 |
[we use jquery and things on top of that] |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
95 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
96 |
* `Error while publishing rest text ...` |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
97 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
98 |
While modifying the description of an entity, you get an error message in |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
99 |
the application `Error while publishing ...` for Rest text and plain text. |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
100 |
The server returns a traceback like as follows :: |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
101 |
|
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
102 |
2008-10-06 15:05:08 - (erudi.rest) ERROR: error while publishing ReST text |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
103 |
Traceback (most recent call last): |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
104 |
File "/home/sandrine/src/blogdemo/ginco/common/rest.py", line 217, in rest_publish |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
105 |
File "/usr/lib/python2.5/codecs.py", line 817, in open |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
106 |
file = __builtin__.open(filename, mode, buffering) |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
107 |
TypeError: __init__() takes at most 3 arguments (4 given) |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
108 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
109 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
110 |
This can be fixed by applying the patch described in : |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
111 |
http://code.google.com/p/googleappengine/issues/detail?id=48 |
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
112 |
|
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
113 |
* What are hooks used for? |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
114 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
115 |
Hooks are executed around (actually before or after) events. The |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
116 |
most common events are data creation, update and deletion. They |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
117 |
permit additional constraint checking (those not expressible at the |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
118 |
schema level), pre and post computations depending on data |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
119 |
movements. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
120 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
121 |
As such, they are a vital part of the framework. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
122 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
123 |
Other kinds of hooks, called Operations, are available |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
124 |
for execution just before commit. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
125 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
126 |
* When should you define an HTML template rather than define a graphical component? |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
127 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
128 |
An HTML template cannot contain code, hence it is only about static |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
129 |
content. A component is made of code and operations that apply on a |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
130 |
well defined context (request, result set). It enables much more |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
131 |
dynamic views. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
132 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
133 |
* What is the difference between `AppRsetObject` and `AppObject` ? |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
134 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
135 |
`AppRsetObject` instances are selected on a request and a result |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
136 |
set. `AppObject` instances are directly selected by id. |
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
137 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
138 |
HOW TO |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
139 |
====== |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
140 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
141 |
[TO COMPLETE] |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
142 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
143 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
144 |
* How to update a database after a schema modification? |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
145 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
146 |
It depends on what has been modified in the schema. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
147 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
148 |
* Update of a non final relation. |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
149 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
150 |
* Update of a final relation. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
151 |
|
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
152 |
|
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
153 |
* How to create an anonymous user? |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
154 |
|
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
155 |
This allows to bypass authentication for your site. In the |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
156 |
``all-in-one.conf`` file of your instance, define the anonymous user |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
157 |
as follows :: |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
158 |
|
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
159 |
# login of the Erudi user account to use for anonymous user (if you want to |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
160 |
# allow anonymous) |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
161 |
anonymous-user=anon |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
162 |
|
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
163 |
# password of the Erudi user account matching login |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
164 |
anonymous-password=anon |
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
165 |
|
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
166 |
You also must ensure that this `anon` user is a registered user of |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
167 |
the DB backend. This could be the admin account (for development |
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
168 |
purposes, of course). |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
169 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
170 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
171 |
* How to change the application logo? |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
172 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
173 |
There are two ways of changing the logo. |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
174 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
175 |
1. The easiest way to use a different logo is to replace the existing |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
176 |
``logo.png`` in ``myapp/data`` by your prefered icon and refresh. |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
177 |
By default all application will look for a ``logo.png`` to be |
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
178 |
rendered in the logo section. |
93
9c919a47e140
[doc] total file reorganisation - phase 1 complete
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
diff
changeset
|
179 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
180 |
.. image:: images/lax-book.06-main-template-logo.en.png |
116
e2303f9b5bfa
[doc] more merging and reorg
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
113
diff
changeset
|
181 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
182 |
2. In your cube directory, you can specify which file to use for the logo. |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
183 |
This is configurable in ``mycube/data/external_resources``: :: |
345
31f88b2e3500
more translation and complements
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
344
diff
changeset
|
184 |
|
199
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
185 |
LOGO = DATADIR/path/to/mylogo.gif |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
186 |
|
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
187 |
where DATADIR is ``mycubes/data``. |
c603087373cd
[doc] Inserted content from LAX book about templates.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
127
diff
changeset
|
188 |
|
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
189 |
* How to configure LDAP source? |
335
643db91242b1
[doc] Integration of card http://intranet.logilab.fr/intra/card/eid/3355 to the book.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
317
diff
changeset
|
190 |
|
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
191 |
Your instance's sources are defined in ``/etc/cubicweb.d/myapp/sources``. |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
192 |
Configuring an LDAP source is about declaring that source in your |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
193 |
instance configuration file such as: :: |
335
643db91242b1
[doc] Integration of card http://intranet.logilab.fr/intra/card/eid/3355 to the book.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
317
diff
changeset
|
194 |
|
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
195 |
[ldapuser] |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
196 |
adapter=ldapuser |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
197 |
# ldap host |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
198 |
host=myhost |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
199 |
# base DN to lookup for usres |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
200 |
user-base-dn=ou=People,dc=mydomain,dc=fr |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
201 |
# user search scope |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
202 |
user-scope=ONELEVEL |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
203 |
# classes of user |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
204 |
user-classes=top,posixAccount |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
205 |
# attribute used as login on authentication |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
206 |
user-login-attr=uid |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
207 |
# name of a group in which ldap users will be by default |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
208 |
user-default-group=users |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
209 |
# map from ldap user attributes to erudi attributes |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
210 |
user-attrs-map=gecos:email,uid:login |
335
643db91242b1
[doc] Integration of card http://intranet.logilab.fr/intra/card/eid/3355 to the book.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
317
diff
changeset
|
211 |
|
358
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
212 |
Any change applied to configuration file requires to restart your |
e7347a1e3659
[doc] Added a cook book as advised and moved ldap import scripts in the cook book. Started a howto about configuring LDAP but it will have to be reviewed by experts.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
345
diff
changeset
|
213 |
application. |
383
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
214 |
|
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
215 |
* I get NoSelectableObject exceptions: how do I debug selectors ? |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
216 |
|
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
217 |
You just need to put the appropriate context manager around view/component |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
218 |
selection: :: |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
219 |
|
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
220 |
from cubicweb.common.selectors import traced_selection |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
221 |
with traced_selection(): |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
222 |
comp = self.vreg.select_object('contentnavigation', 'wfhistory', |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
223 |
self.req, rset, context='navcontentbottom') |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
224 |
|
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
225 |
This will yield additional WARNINGs, like this: :: |
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
226 |
|
66804d97b919
[FAQ] debugging selectors : a new faq entry
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
358
diff
changeset
|
227 |
2009-01-09 16:43:52 - (cubicweb.selectors) WARNING: selector one_line_rset returned 0 for <class 'cubicweb.web.views.basecomponents.WFHistoryVComponent'> |