Changeset 13168 for main/waeup.kofa/trunk
- Timestamp:
- 14 Jul 2015, 20:17:10 (9 years ago)
- Location:
- main/waeup.kofa/trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/docs/source/userdocs/applicants/interfaces.rst
r13104 r13168 1 1 .. _applicants_interfaces: 2 2 3 Parent Containers 4 ================= 3 Parent Containers Interfaces 4 ============================ 5 5 6 6 `IApplicantsRoot` … … 81 81 <certificate>`. 82 82 83 Applicant 84 ========= 83 Applicant Interfaces 84 ==================== 85 85 86 86 As already mentioned, the applicant objects contains all information … … 117 117 components only, it does not instantiate applicant objects. 118 118 119 Applicant Payment 120 ================= 119 Applicant Payment Interfaces 120 ============================ 121 121 122 122 `IApplicantOnlinePayment` -
main/waeup.kofa/trunk/docs/source/userdocs/hostels.rst
r13167 r13168 21 21 ========== 22 22 23 `IHostelsContainer` 24 ------------------- 25 26 The unique hostels container serves also as a configuration object. It defines for which academic session booking is enabled. The student's `current_session` must match `accommodation_session`. It also defines the booking period and the registration workflow states for which booking is allowed, see :ref:`bed_tickets`. The only property attribute is `expired` which returns True if the current datetime is within the booking period. 23 27 24 28 .. literalinclude:: ../../../src/waeup/kofa/hostels/interfaces.py 25 29 :pyobject: IHostelsContainer 26 30 31 `IHostel` 32 --------- 33 34 The hostels container contains the various `Hostel` objects. Hostels are buildings with blocks, floors rooms and beds. When adding a hostel, the form page is requesting the hostel's name. The `hostel_id` is derived from the name by applying :code:`lower().replace(' ','-').replace('_','-')` to it. As usual, the id will be omitted in manage forms and can thus not be changed after hostel creation. 35 36 The add and manage form pages let us define the 'dimensions' of the hostel and and configure blocks with their assignment to either female or male students. And they are requesting the number of floors per block as well as the number of rooms per floor. All blocks have the same number of floors with a fixed number of rooms and a fixed number of beds per room. If beds or even entire rooms do not exist on a floor, these beds must be later marked reserved, so that they are skipped during the automatic allocation process, see below. 37 38 .. note:: 39 40 Blocks for either female or male students? Does Kofa's hostel management accommodate girls and boys strictly separately? No, it doesn't. Blocks are not necessarily real buildings. They can be used as virtual subunits. If the entire hostel has only one block, then yes, either only female or only male students can be hosted in such a hostel. If two blocks are configured (one for male and one for female students), beds of the same room can be assigned to either the female or the male block, which means - even though very uncommon - girls and boys would be accommodated in the same room. 41 27 42 .. literalinclude:: ../../../src/waeup/kofa/hostels/interfaces.py 28 43 :pyobject: IHostel 29 44 45 Beds can be dedicated to pre-study students, fresh students (`entry_session` and the hostels container's `accommodation_session` correspond), final-year students (`current_level` and the certificate's `end_level` correspond, or is even higher) and returning students (non-fresh and non-final-year students). Or they can be made bookable for all students (beds without category). The latter bed type can be configured but is not being used in the base package by :py:meth:`getAccommodationDetails<waeup.kofa.students.utils.StudentsUtils.getAccommodationDetails>`, the method which determines the appropriate bed type of the student. 46 47 Usually, not every student can be accommodated in every hostel. Faculties are sometimes far apart and do manage their own student hostels. These hostels require a 'special handling' in :py:meth:`getAccommodationDetails<waeup.kofa.students.utils.StudentsUtils.getAccommodationDetails>`. The special handling code must be set on the add and manage form pages of hostels. 48 49 The interface defines also two schema invariants (invariant-decorated methods). These methods validate one or more depending schema fields. In our case, the methods take care that blocks and beds are not assigned twice. 50 51 All the parameters above define the construction rules for beds when filling the hostel with beds, which is done by the `updateBeds` method described further below. 52 53 `IBed` 54 ------ 55 30 56 .. literalinclude:: ../../../src/waeup/kofa/hostels/interfaces.py 31 57 :pyobject: IBed 58 59 The `bed_id` contains the 'coordinates' of the bed. It tells us precisely in which hostel, in which block, on which floor and in which room the bed can be found. The bed id is composed as follows: ``[hostel id]_[block letter]_[room number]_[bed letter]``. The room number contains the floor level: :code:`room_nr = floor*100 + room`. Example: ``hall-1_A_101_C`` means, the bed is located in Hostel 1, block A, 1st floor, room 101 (or 1) and labelled with 'C'. 60 61 The `bed_type` attribute is similarly being constructed. It describes which kind of student can be allocated: ``[special handling code]_[sex]_[stage]``. Example: ``regular_female_re`` means, this bed can be booked by regular female returning students. Other stages are: ``fr`` (fresh), ``pr`` (pre-study), ``fi`` (final-year) and ``all`` (all students). -
main/waeup.kofa/trunk/docs/source/userdocs/students/browser.rst
r13103 r13168 308 308 =========== 309 309 310 Allocation 311 ---------- 312 310 313 Students can obtain a bed ticket if a series of conditions is met: 311 314 -
main/waeup.kofa/trunk/docs/source/userdocs/students/interfaces.rst
r13078 r13168 1 1 .. _students_interfaces: 2 2 3 Student 4 ======= 3 Student Interfaces 4 ================== 5 5 6 6 The `Student` class is a container class which means, there are not … … 171 171 :pyobject: IStudentNavigation 172 172 173 Student Study Course 174 ==================== 173 Student Study Course Interfaces 174 =============================== 175 175 176 176 All data related to an individual course of study are stored with … … 302 302 to replace them by new tickets. 303 303 304 Student Payment 305 =============== 304 Student Payment Interfaces 305 ========================== 306 306 307 307 `IStudentOnlinePayment` … … 320 320 :pyobject: IStudentOnlinePayment 321 321 322 Student Accommodation 323 ===================== 322 Student Accommodation Interfaces 323 ================================ 324 324 325 325 `IBedTicket` -
main/waeup.kofa/trunk/src/waeup/kofa/hostels/hostel.py
r13166 r13168 114 114 bt = 're' 115 115 bt = u'%s_%s_%s' % (self.special_handling,sex,bt) 116 uid = u'%s_%s_%d_%s' % (self.hostel_id,block,room_nr,bed) 116 uid = u'%s_%s_%d_%s' % ( 117 self.hostel_id,block,room_nr,bed) 117 118 if uid in self: 118 119 bed = self[uid] -
main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
r13129 r13168 2065 2065 if bed.__parent__.__parent__ is None: 2066 2066 self.flash(_( 2067 'System error: Please contact the admin sitrator.'),2067 'System error: Please contact the administrator.'), 2068 2068 type="warning") 2069 2069 self.context.writeLogMessage( -
main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/accommodationmanagepage.pt
r11432 r13168 9 9 <th i18n:translate="">Booking Date</th> 10 10 <th i18n:translate="">Bed Coordinates</th> 11 <th i18n:translate="">Bed Category</th>11 <th i18n:translate="">Bed Type</th> 12 12 </tr> 13 13 </thead>
Note: See TracChangeset for help on using the changeset viewer.