author | Aurelien Campeas <aurelien.campeas@logilab.fr> |
Mon, 12 Apr 2010 19:36:51 +0200 | |
branch | stable |
changeset 5222 | ed6905d98a5e |
parent 4936 | a4b772a0d801 |
child 5227 | ed1c138299f2 |
permissions | -rw-r--r-- |
4936
a4b772a0d801
Fixed some of the documentation warnings when building the book with sphinx.
Adrien Chauve <adrien.chauve@logilab.fr>
parents:
4751
diff
changeset
|
1 |
.. _primary: |
a4b772a0d801
Fixed some of the documentation warnings when building the book with sphinx.
Adrien Chauve <adrien.chauve@logilab.fr>
parents:
4751
diff
changeset
|
2 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
3 |
The Primary View (:mod:`cubicweb.web.views.primary`) |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
4 |
--------------------------------------------------------------- |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
5 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
6 |
The primary view of an entity is the view called by default when a |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
7 |
single entity is in the result set and needs to be displayed. |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
8 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
9 |
This view is supposed to render a maximum of informations about the |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
10 |
entity. |
4430
0b6a069eb29e
le patch added_tips a été importé
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
3258
diff
changeset
|
11 |
|
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
12 |
Rendering methods and attributes for ``PrimaryView`` |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
13 |
---------------------------------------------------- |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
14 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
15 |
By default, *CubicWeb* provides a primary view that fits every available |
3258
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
16 |
entity type. This is the first view you might be interested in |
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
17 |
modifying. It is also one of the richest and most complex. |
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1714
diff
changeset
|
18 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
19 |
The basic layout of a primary view is as follows. This layout is |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
20 |
actually set up by the `render_entity` method. |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
21 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
22 |
.. aafig:: |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
23 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
24 |
+------------------------------------+ |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
25 |
|"content navigation (top)" | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
26 |
+------------------------------------+ |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
27 |
|"title, toolbox" | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
28 |
+------------------------------------+ |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
29 |
|"metadata" | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
30 |
+----------------------+-------------+ |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
31 |
|"attributes" |"side boxes" | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
32 |
| | | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
33 |
| | | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
34 |
+----------------------+ | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
35 |
|"relations" | | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
36 |
| | | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
37 |
| | | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
38 |
+----------------------+-------------+ |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
39 |
|"content navigation (bottom)" | |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
40 |
+------------------------------------+ |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
41 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
42 |
The methods you may want to modify while customizing a ``PrimaryView`` are: |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
43 |
|
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1714
diff
changeset
|
44 |
*render_entity_title(self, entity)* |
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1714
diff
changeset
|
45 |
Renders the entity title based on the assumption that the method |
3258
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
46 |
``def dc_title(self)`` is implemented for the given entity type. |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
47 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
48 |
*render_entity_metadata(self, entity)* |
3258
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
49 |
Renders the entity metadata by calling the 'metadata' view on the |
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
50 |
entity. This generic view is in cubicweb.views.baseviews. |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
51 |
|
3258
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
52 |
*render_entity_attributes(self, entity)* |
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
53 |
Renders all the attribute of an entity with the exception of |
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
54 |
attribute of type `Password` and `Bytes`. The skip_none class |
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
55 |
attribute controls the display of None valued attributes. |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
56 |
|
3258
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
57 |
*render_entity_relations(self, entity)* |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
58 |
Renders all the relations of the entity in the main section of the page. |
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1714
diff
changeset
|
59 |
|
3258
6536ee4f37f7
update the documentation
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
2545
diff
changeset
|
60 |
*render_side_boxes(self, entity, boxes)* |
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
61 |
Renders relations of the entity in a side box. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
62 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
63 |
The placement of relations in the relations section or in side boxes |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
64 |
can be controlled through the uicfg mechanism. |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
65 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
66 |
*content_navigation_components(self, context)* |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
67 |
This method is applicable only for entity type implementing the interface |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
68 |
`IPrevNext`. This interface is for entities which can be linked to a previous |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
69 |
and/or next entity. This method will render the navigation links between |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
70 |
entities of this type, either at the top or at the bottom of the page |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
71 |
given the context (navcontent{top|bottom}). |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
72 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
73 |
Also, please note that by setting the following attributes in your |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
74 |
subclass, you can already customize some of the rendering: |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
75 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
76 |
*show_attr_label* |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
77 |
Renders the attribute label next to the attribute value if set to True. |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
78 |
Otherwise, does only display the attribute value. |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
79 |
|
2172
cf8f9180e63e
delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
1714
diff
changeset
|
80 |
*show_rel_label* |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
81 |
Renders the relation label next to the relation value if set to True. |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
82 |
Otherwise, does only display the relation value. |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
83 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
84 |
*skip_none* |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
85 |
Does not render an attribute value that is None if set to True. |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
86 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
87 |
*main_related_section* |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
88 |
Renders the relations of the entity if set to True. |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
89 |
|
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
90 |
A good practice is for you to identify the content of your entity type for which |
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
91 |
the default rendering does not answer your need so that you can focus on the specific |
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
92 |
method (from the list above) that needs to be modified. We do not advise you to |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
93 |
overwrite ``render_entity`` unless you want a completely different layout. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
94 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
95 |
Also, a lot of customisation can be achieved using the |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
96 |
`primaryview_section` and `primaryview_display_ctrl` relation tags of |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
97 |
the uicfg module. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
98 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
99 |
Primary view configuration |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
100 |
`````````````````````````` |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
101 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
102 |
If you want to customize the primary view of an entity, overriding the primary |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
103 |
view class may not be necessary. For simple adjustments (attributes or relations |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
104 |
display locations and styles), a much simpler way is to use uicfg. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
105 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
106 |
Attributes/relations display location |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
107 |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
108 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
109 |
In the primary view, there are 3 sections where attributes and relations can be |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
110 |
displayed (represented in pink in the image below): |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
111 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
112 |
* attributes |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
113 |
* relations |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
114 |
* sideboxes |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
115 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
116 |
.. image:: ../../images/primaryview_template.png |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
117 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
118 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
119 |
**Attributes** can only be displayed in the attributes section (default |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
120 |
behavior). They can also be hidden. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
121 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
122 |
For instance, to hide the ``title`` attribute of the ``Blog`` entity: |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
123 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
124 |
.. sourcecode:: python |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
125 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
126 |
from cubicweb.web import uicfg |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
127 |
uicfg.primaryview_section.tag_attribute(('Blog', 'title'), 'hidden') |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
128 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
129 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
130 |
**Relations** can be either displayed in one of the three sections or hidden. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
131 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
132 |
For relations, there are two methods: |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
133 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
134 |
* ``tag_object_of`` for modifying the primary view of the object |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
135 |
* ``tag_subject_of`` for modifying the primary view of the subject |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
136 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
137 |
These two methods take two arguments: |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
138 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
139 |
* a triplet ``(subject, relation_name, object)``, where subject or object can be replaced with ``'*'`` |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
140 |
* the section name or ``hidden`` |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
141 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
142 |
.. sourcecode:: python |
1714
a721966779be
new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff
changeset
|
143 |
|
5222
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
144 |
# hide every relation ``entry_of`` in the ``Blog`` primary view |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
145 |
uicfg.primaryview_section.tag_object_of(('*', 'entry_of', 'Blog'), 'hidden') |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
146 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
147 |
# display ``entry_of`` relations in the ``relations`` section in the ``BlogEntry`` primary view |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
148 |
uicfg.primaryview_section.tag_subject_of(('BlogEntry', 'entry_of', '*'), |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
149 |
'relations') |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
150 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
151 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
152 |
Display content |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
153 |
^^^^^^^^^^^^^^^ |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
154 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
155 |
You can use ``primaryview_display_ctrl`` to customize the display of attributes |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
156 |
or relations. Values of ``primaryview_display_ctrl`` are dictionaries. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
157 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
158 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
159 |
Common keys for attributes and relations are: |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
160 |
* ``vid``: specifies the regid of the view for displaying the attribute or the relation. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
161 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
162 |
If ``vid`` is not specified, the default value depends on the section: |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
163 |
* ``attributes`` section: 'reledit' view |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
164 |
* ``relations`` section: 'autolimited' view |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
165 |
* ``sideboxes`` section: 'sidebox' view |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
166 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
167 |
* ``order``: int used to control order within a section. When not specified, |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
168 |
automatically set according to order in which tags are added. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
169 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
170 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
171 |
Keys for relations only: |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
172 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
173 |
* ``label``: label for the relations section or side box |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
174 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
175 |
* ``showlabel``: boolean telling whether the label is displayed |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
176 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
177 |
* ``limit``: boolean telling if the results should be limited. If so, a link to all results is displayed |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
178 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
179 |
* ``filter``: callback taking the related result set as argument and returning it filtered |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
180 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
181 |
.. sourcecode:: python |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
182 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
183 |
# in ``CWUser`` primary view, display ``created_by`` relations in relations section |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
184 |
uicfg.primaryview_section.tag_object_of(('*', 'created_by', 'CWUser'), 'relations') |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
185 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
186 |
# displays this relation as a list, sets the label, limits the number of results and filters on comments |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
187 |
uicfg.primaryview_display_ctrl.tag_object_of( |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
188 |
('*', 'created_by', 'CWUser'), |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
189 |
{'vid': 'list', 'label': _('latest comment(s):'), 'limit': True, |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
190 |
'filter': lambda rset: rset.filtered_rset(lambda x: x.e_schema == 'Comment')}) |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
191 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
192 |
.. Warning:: with the ``primaryview_display_ctrl`` rtag, the subject or the |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
193 |
object of the relation is ignored for respectively ``tag_object_of`` or |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
194 |
``tag_subject_of``. To avoid warnings during execution, they should be set to |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
195 |
``'*'``. |
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
196 |
|
ed6905d98a5e
[doc/book] more flesh to views/primary view
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
4936
diff
changeset
|
197 |