source: main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py @ 6701

Last change on this file since 6701 was 6699, checked in by Henrik Bettermann, 13 years ago

Add SetPassword? page which uses an PWD access code as password for first-time login (admission checking).

Remove password from schema. This makes things much easier to handle.

  • Property svn:keywords set to Id
File size: 3.9 KB
RevLine 
[6621]1##
2## interfaces.py
[6637]3from zope.interface import Interface, Attribute
[6621]4from zope import schema
5from waeup.sirp.interfaces import IWAeUPObject
[6648]6from waeup.sirp.students.vocabularies import (
7  year_range, lgas_vocab, CertificateSource, GenderSource,
8  )
[6621]9
[6692]10class IStudentsContainer(IWAeUPObject):
11    """An students container contains university students.
12
13    """
14
15    def addStudent(student):
16        """Add an IStudent object and subcontainers.
17
18        """
19
20    def archive(id=None):
21        """Create on-dist archive of students.
22
23        If id is `None`, all students are archived.
24
25        If id contains a single id string, only the respective
26        students are archived.
27
28        If id contains a list of id strings all of the respective
29        students types are saved to disk.
30        """
31
32    def clear(id=None, archive=True):
33        """Remove students of type given by 'id'.
34
35        Optionally archive the students.
36
37        If id is `None`, all students are archived.
38
39        If id contains a single id string, only the respective
40        students are archived.
41
42        If id contains a list of id strings all of the respective
43        student types are saved to disk.
44
45        If `archive` is ``False`` none of the archive-handling is done
46        and respective students are simply removed from the
47        database.
48        """
49
[6642]50class IStudentNavigation(IWAeUPObject):
51    """Interface needed for student navigation.
52    """
53
54    def getStudent():
55        """Return student object.
56        """
57
[6631]58class IStudentBase(IWAeUPObject):
59    """Representation of student base data.
[6621]60    """
[6637]61    history = Attribute('Object history, a list of messages.')
62    state = Attribute('Returns the registration state of a student')
[6694]63    #student_id = Attribute('Randomly generated id')
[6699]64    password = Attribute('Encrypted password of a student')
[6637]65
66    def loggerInfo(ob_class, comment):
67        """Adds an INFO message to the log file
68        """
69
[6665]70    student_id = schema.TextLine(
71        title = u'Student ID',
72        required = True,
73        )
74
[6621]75    name = schema.TextLine(
[6631]76        title = u'Full Name',
[6621]77        default = u'Nobody',
78        required = True,
79        )
80
[6696]81    reg_number = schema.TextLine(
82        title = u'Registration Number',
83        default = u'',
84        required = True,
85        readonly = False,
86        )
87
[6631]88class IStudentClearance(IWAeUPObject):
89    """Representation of student clearance data.
90    """
[6622]91
[6631]92    date_of_birth = schema.Date(
93        title = u'Date of Birth',
94        required = True,
95        )
96
[6695]97    clearance_locked = schema.Bool(
98        title = u'Clearance form locked',
99        default = False,
100        )
101
[6631]102class IStudentPersonal(IWAeUPObject):
103    """Representation of student personal data.
104    """
105
[6651]106    perm_address = schema.Text(
[6631]107        title = u'Permanent Address',
108        required = False,
109        )
110
111class IStudent(IStudentBase,IStudentClearance,IStudentPersonal):
112    """Representation of a student.
113    """
114
[6633]115class IStudentStudyCourse(IWAeUPObject):
116    """A container for student study levels.
117
118    """
119
[6648]120    certificate = schema.Choice(
121        title = u'Certificate',
122        source = CertificateSource(),
123        default = None,
[6633]124        required = True,
125        )
[6635]126
127class IStudentAccommodation(IWAeUPObject):
128    """A container for student accommodation objects.
129
130    """
131
132class IStudentPayments(IWAeUPObject):
133    """A container for student payment objects.
134
135    """
136
[6694]137# Interfaces for students only
138
139class IStudentBaseEdit(IStudentBase):
140    """Interface needed for editing of student base data by students.
141    """
142
143    name = schema.TextLine(
144        title = u'Full Name',
145        default = u'Nobody',
146        required = True,
147        readonly = True,
148        )
149
150IStudentBaseEdit['name'].order =  IStudentBase['name'].order
151
152class IStudentClearanceEdit(IStudentClearance):
153    """Interface needed for restricted editing of student clearance data.
154    """
155
156class IStudentPersonalEdit(IStudentPersonal):
157    """Interface needed for restricted editing of student personal data.
158    """
Note: See TracBrowser for help on using the repository browser.