doc/book/fr/20-04-develop-views.fr.txt
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Wed, 23 Jun 2010 13:54:02 +0200
branchstable
changeset 5857 1a24c62aefc5
parent 2789 39712da6f397
permissions -rw-r--r--
[bfss] fix file update to ensure file's content is available on the fs asap... and not only at commit time. So it's consistent with entity creation behaviour. The new file is created at assignement time and removed if the commit is rollbacked.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     1
.. -*- coding: utf-8 -*-
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     2
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     3
Définir l'interface utilisateur avec des vues
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     4
=============================================
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     5
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     6
`LAX` provides out-of-the-box a web interface that is generated from
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     7
the schema definition: entities can be created, displayed, updated and
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     8
deleted. As display views are not very fancy, it is usually necessary
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
     9
to develop your own.
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    10
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    11
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    12
With `LAX`, views are defined by Python classes. A view includes :
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    13
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    14
- an identifier (all objects in `LAX` are entered in a registry
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    15
  and this identifier will be used as a key)
2789
39712da6f397 R propagate deprecation of AppObject.entity()
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 108
diff changeset
    16
43
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    17
- a filter to select the resulsets it can be applied to
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    18
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    19
`LAX` provides a lot of standard views, for a complete list, you
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    20
will have to read the code in directory views (XXX improve doc).
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    21
For example, the view named ``primary`` is the one used to display
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    22
a single entity.
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    23
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    24
If you want to change the way a ``BlogEntry`` is displayed, just
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    25
override the view ``primary`` in ``BlogDemo/views.py`` ::
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    26
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    27
  from ginco.web.views import baseviews
2789
39712da6f397 R propagate deprecation of AppObject.entity()
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 108
diff changeset
    28
43
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    29
  class BlogEntryPrimaryView(baseviews.PrimaryView):
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    30
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    31
      accepts = ('BlogEntry',)
2789
39712da6f397 R propagate deprecation of AppObject.entity()
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 108
diff changeset
    32
43
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    33
      def cell_call(self, row, col):
2789
39712da6f397 R propagate deprecation of AppObject.entity()
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 108
diff changeset
    34
          entity = self.rset.get_entity(row, col)
43
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    35
          self.w(u'<h1>%s</h1>' % entity.title)
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    36
          self.w(u'<div>%s</div>' % entity.publish_date)
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    37
          self.w(u'<div>%s</div>' % entity.category)
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    38
          self.w(u'<div>%s</div>' entity.content)
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    39
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    40
[WRITE ME]
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    41
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    42
* Defining views with selection/views
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    43
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    44
* implementing interfaces, calendar for blog entries
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    45
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    46
* show that a calendar view can export data to ical
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    47
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    48
* create view "blogentry table" with title, publish_date, category
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    49
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    50
* in view blog, select blogentries and apply view "blogentry table"
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    51
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    52
* demo ajax by filtering blogentry table on category
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    53
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    54
Components
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    55
===========
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    56
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    57
[WRITE ME]
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    58
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    59
* explain the component architecture
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    60
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    61
* add comments to the blog by importing the comments component
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    62
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    63
MainTemplate
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    64
============
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    65
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    66
[WRITE ME]
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    67
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    68
* customize MainTemplate and show that everything in the user
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    69
  interface can be changed
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    70
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    71
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    72
RSS Channel
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    73
===========
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    74
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    75
[WRITE ME]
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    76
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    77
* show that the RSS view can be used to display an ordered selection
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    78
  of blog entries, thus providing a RSS channel
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    79
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    80
* show that a different selection (by category) means a different channel
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    81
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    82
RQL
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    83
====
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    84
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    85
[WRITE ME]
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    86
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    87
* talk about the Relation Query Language
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    88
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    89
URL Rewriting
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    90
=============
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    91
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    92
[WRITE ME]
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    93
2789
39712da6f397 R propagate deprecation of AppObject.entity()
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 108
diff changeset
    94
* show how urls are mapped to selections and views and explain URLRewriting
43
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    95
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    96
Security
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    97
=========
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    98
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
    99
[WRITE ME]
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
   100
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
   101
* talk about security access rights and show that security is defined
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
   102
  using RQL
c1a51436db9c Add references chapter and lax-book-fr but this is temporary, until content is sorted.
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents:
diff changeset
   103