source: main/waeup.kofa/trunk/docs/source/userdocs/browsing.rst @ 14627

Last change on this file since 14627 was 13175, checked in by Henrik Bettermann, 9 years ago

Some finetuning.

File size: 5.6 KB
Line 
1.. _browsing_kofa:
2
3
4Browsing Kofa
5*************
6
7The reader may ask: How do officers, applicants and students browse
8the portal? Where are the step-by-step operating instructions on how
9to use Kofa? We are always tempted to answer: The menu navigation
10should be self-explanatory and it's quite easy to follow the menu
11prompts or flash messages which appear above page titles in a green,
12yellow or red box. This answer seems a bit over the top. We must
13indeed describe some browser pages and what their clickable actions
14are doing with the data. The reason is, that a lot of Kofa's
15functionality is embedded in view and utility methods and not only
16provided by the functionality of content components. In the
17following, functionality of pages is described in subchapters called
18'Browser Pages'.
19
20
21.. _page_layout:
22
23Page Layout
24===========
25
26Kofa makes use of two different `Bootstrap`_ layouts. Anonymous
27users, students and applicants do see a single-column theme with
28only a static top navigation bar. Students can navigate to the
29various display form pages of their record by pulling down the 'My
30Data' tab in the navigation bar.
31
32.. _navigation_bar:
33
34The navigation bar for an anonymous user:
35
36.. image:: images/navbar_anon.png
37
38The navigation bar for a student with drop-down menue:
39
40.. image:: images/navbar_student.png
41
42The navigation bar for an officer with lots of permissions:
43
44.. image:: images/navbar_officer.png
45
46Officers see a double-column theme after logging in. The left column
47contains a box (side box) which provides links to the user's
48preferences (My Preferences) and roles (My Roles). It also contains
49links to the various sections of Kofa, depending on the permissions
50the officer has obtained. Possible sections are: 'Portal
51Configuration', 'Officers', 'Data Center', 'Reports' and 'Access
52Codes'. The side box expands, when the officer accesses a student
53record. The box gives direct access to the pages of the student.
54
55.. image:: images/multicolumn.png
56
57
58.. _views_pages:
59
60Views, Pages and Form Pages
61===========================
62
63Views are dealing with request and response objects. Usually a view
64renders (produces) HTML or PDF code to be displayed in a web browser
65or a pdf reader respectively. Very often a view only redirects to
66another view or page and does not render code by itself.
67Views, which render pdf code, are called pdf slips in Kofa.
68
69Kofa pages are 'layout-aware' browser views, which means they know
70about the global page layout and render content inside it.
71
72In Kofa most pages are form pages which means they are layout-aware
73views on data. These pages are either used to submit data (simple form
74page), or to display, edit or add persistant data. The latter three
75are called display, edit or add form pages respectively. Kofa is
76using the `Zope Formlib`_ package to auto-generate these forms.
77
78.. note::
79
80  Briefly, Zope Formlib is wedded to `Zope Schema`_, it provides
81  display and input widgets (= views) for the fields defined in the
82  Zope Schema package. Auto-generation is done with `grok.AutoFields`
83  which takes the fields, declared in an
84  :ref:`interface<kofa_interfaces>`, and renders display or input
85  widgets, according to the schema declaration, for display or edit
86  forms respectively.
87
88Whereas display and add form pages are usually shared by officers
89and students, edit form pages are not. Applicants and students are
90not allowed to edit all of their data all the time. Edit access is
91restricted by workflow states or other conditions. Officers' access
92is much less restricted, and we therefore speak of 'managing'
93instead of 'editing' data. In most cases, Kofa uses two different
94form pages which require different permissions: An `EditFormPage`
95requires the
96:py:class:`HandleApplication<waeup.kofa.applicants.permissions.HandleApplication>`
97/
98:py:class:`HandleStudent<waeup.kofa.students.permissions.HandleStudent>`
99permission and a `ManageFormPage` requires the
100:py:class:`ManageApplication<waeup.kofa.applicants.permissions.ManageApplication>`
101/
102:py:class:`ManageStudent<waeup.kofa.students.permissions.ManageStudent>`
103permission.
104
105
106.. _page_locking:
107
108Page Locking
109============
110
111As mentiond above, the right to use a form depends on the
112permissions the user gained. But this is not sufficient. Applicants
113and students always have the permission to handle their data
114although they are not allowed to edit the data all the time.
115Access to forms has to be further restricted. This is always done in
116the `update` method of a page. If an applicant or student doesn't
117meet the additional conditions defined in this method, s/he is
118immediately thrown out and redirected to another page. In most cases,
119the allowance to modify data depends on the workflow state of an
120applicant or student.
121
122
123.. _action_buttons:
124
125Action Buttons
126==============
127
128There are two kinds of action buttons which appear on pages:
129
130**Link Buttons** appear on top of the page above the page
131title and are decorated with an icon. These
132:py:class:`action
133buttons<waeup.kofa.browser.viewlets.ActionButton>` have a
134link target which means they usually refer to another Kofa
135page and are sending GET requests to open the page. Example:
136
137.. image:: images/link_button.png
138   :scale: 50 %
139
140**Form Buttons** are submit buttons which appear below a form.
141They are HTML form actions which submit data by sending a
142POST request back to the form page. A form page method is
143called and processes the data or simply redirects to
144another Kofa page. Example:
145
146.. image:: images/form_buttons.png
147   :scale: 50 %
148
149
150
151.. _bootstrap: http://getbootstrap.com/
152
153.. _zope schema: http://docs.zope.org/zope.schema
154
155.. _zope formlib: http://bluebream.zope.org/doc/1.0/manual/schema.html#auto-generated-forms-using-the-forms-package
Note: See TracBrowser for help on using the repository browser.