source: main/waeup.kofa/trunk/docs/source/userdocs/applicants/interfaces.rst @ 13082

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

More docs.

File size: 4.7 KB
Line 
1.. _applicants_interfaces:
2
3Parent Containers
4=================
5
6`IApplicantsRoot`
7-----------------
8
9Much like ``academics`` and ``students``, also ``applicants`` is a
10unique container (of type `ApplicantsRoot`) located in the
11`IUniversity` instance. It is the counterpart of the students
12(section) container. The root container has a `description` schema
13field attribute which contains human readable, multi-lingual
14information about the application procedure in HTML format. This
15description can be seen by anonymous users, when they enter the
16applicants section (by pressing the 'Application' tab in the
17navigation bar).
18
19.. _multilingual:
20
21.. note::
22
23  A multi-lingual or localized text is a sequence of human-readable
24  text strings in different languages. The languages must be separated
25  by ``>>xy<<``, whereas ``xy`` is the language code. Text parts
26  without correct leading language separator - usually the first part
27  has no language descriptor - are interpreted as texts in the
28  portal's language. The text strings can be either HTML or
29  reStructuredText (REST) formatted.
30
31.. literalinclude:: ../../../../src/waeup/kofa/applicants/interfaces.py
32   :pyobject: IApplicantsRoot
33
34`IApplicantsContainer`
35----------------------
36
37The applicants root contains the various `ApplicantsContainer`
38objects.
39
40.. literalinclude:: ../../../../src/waeup/kofa/applicants/interfaces.py
41   :pyobject: IApplicantsContainer
42
43`statistics` and `expired` are read-only property attributes.
44`description_dict` contains the same information as the
45`description`, but the sequence of language translations has been
46split up and copied into a dictionary for faster processing. In the
47base package, `local_roles` is an empty list which means, no local
48role can be assigned at applicants container level.
49
50Crucial for application are the `prefix`, `year`, `mode` and
51`application_category` schema fields. The `prefix` atribute can only
52be set when adding a container. It cannot be edited afterwards. The
53attribute determines the application type and automatically sets the
54prefix of the container code and of all applicant ids inside the
55container. The prefix is supplied by the `ApplicationTypeSource`
56(see `application types of base package
57<https://kofa-demo.waeup.org/sources#collapseAppTypes>`_). It is
58followed by the year of entry. Thus, the identifiers of applicants
59containers and the applicants inside the containers start with the
60same prefix-year sequence. Example: ``app2015`` which translates
61into 'General Studies 2015/2016'. Consequently, **applicants cannot
62be moved from one container to another.**
63
64The application category is supplied by the
65`ApplicationCategorySource` (see `application categories of base
66package <https://kofa-demo.waeup.org/sources#collapseAppCats>`_) and
67refers to a group of study programmes (certificates) which the
68applicant can apply for, read also chapter on :ref:`Certificates
69<certificate>`.
70
71Applicant
72=========
73
74As already mentioned, the applicant objects contains all information
75necessary for application, except for the payment ticket data. The
76base set of the applicant's 'external behaviour' is described by the
77following interface.
78
79`IApplicantBaseData`
80--------------------
81
82.. literalinclude:: ../../../../src/waeup/kofa/applicants/interfaces.py
83   :pyobject: IApplicantBaseData
84
85As usual, the interface lists attributes first. Except for the
86last two attributes (`password` and `application_date`), they are all
87read-only property attributes, i.e. attributes with a getter method
88only. These properties are computed dynamically and can't be set.
89
90In the base package `IApplicant` is derived from `IApplicantBaseData`
91and only two methods are added:
92
93`IApplicant`
94------------
95
96.. literalinclude:: ../../../../src/waeup/kofa/applicants/interfaces.py
97   :pyobject: IApplicant
98
99In custom packages we have furthermore interfaces for undergraduate
100and postgraduate students, both derived from `IApplicantBaseData`.
101
102Then there is a customized interface `ISpecialApplicant` for former
103students or students who are not users of the portal but have to pay
104supplementary fees. This reduced interface is used in browser
105components only, it does not instantiate applicant objects.
106
107Applicant Payment
108=================
109
110`IApplicantOnlinePayment`
111-------------------------
112
113Instances of this interface are called applicant payment tickets.
114They contain the data which confirm that the applicant has paid the
115application fee.
116`waeup.kofa.students.interfaces.IStudentOnlinePayment` inherits from
117`waeup.kofa.payments.interfaces.IOnlinePayment` and promises three
118additional methods which process the applicant data after successful
119or approved payment.
120
121.. literalinclude:: ../../../../src/waeup/kofa/applicants/interfaces.py
122   :pyobject: IApplicantOnlinePayment
Note: See TracBrowser for help on using the repository browser.