source: main/waeup.sirp/trunk/src/waeup/sirp/applicants/interfaces.py @ 5676

Last change on this file since 5676 was 5676, checked in by Henrik Bettermann, 14 years ago

Rename applications to applicants.

File size: 3.6 KB
RevLine 
[5638]1##
2## interfaces.py
3## Login : <uli@pu.smp.net>
4## Started on  Sun Jan 16 15:30:01 2011 Uli Fouquet
5## $Id$
6##
7## Copyright (C) 2011 Uli Fouquet
8## This program is free software; you can redistribute it and/or modify
9## it under the terms of the GNU General Public License as published by
10## the Free Software Foundation; either version 2 of the License, or
11## (at your option) any later version.
12##
13## This program is distributed in the hope that it will be useful,
14## but WITHOUT ANY WARRANTY; without even the implied warranty of
15## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16## GNU General Public License for more details.
17##
18## You should have received a copy of the GNU General Public License
19## along with this program; if not, write to the Free Software
20## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21##
[5676]22"""Interfaces regarding student applicants and related components.
[5638]23"""
24from zope import schema
25from waeup.sirp.interfaces import IWAeUPObject
26
[5676]27class IApplicantsRoot(IWAeUPObject):
28    """A container for university applicants containers.
[5645]29    """
[5676]30    def addApplicantsContainer(container, name=None):
31        """Add an applicants container.
[5638]32
[5676]33        Adds an applicants container that implements `interface`
[5645]34        under the name `name`.
[5638]35
[5645]36        `container` the container instance to be added. Should
[5676]37          implement :class:`IApplicantsContainer`.
[5645]38
39        `name`
40          the name under which the container will be accessible. We
41          usually use names like ``pume_2011`` to indicate, that the
[5676]42          new container will contain university applicants for a
[5645]43          certain screening type (``pume``) and of the year 2011.
44        """
45
[5676]46class IApplicantsContainer(IWAeUPObject):
47    """An applicants container contains university applicants.
[5645]48
[5638]49    """
50    id = schema.TextLine(
51        title = u'Internal ID',
52        required = True,
53        )
54
[5645]55    title = schema.TextLine(
[5676]56        title = u'Short description of the type of applicants stored here.',
[5645]57        required = True,
58        default = u'Untitled',
59        )
60   
61    description = schema.Text(
62        title = u'Human readable description in reST format',
[5638]63        required = False,
64        default = u'Not set.'
65        )
66
67    startdate = schema.Date(
[5645]68        title = u'Date when the application period starts',
[5638]69        required = False,
70        default = None,
71        )
72
73    enddate = schema.Date(
[5645]74        title = u'Date when the application period ends',
[5638]75        required = False,
76        default = None,
77        )
78
[5645]79    strict_deadline = schema.Bool(
80        title = u'Forbid additions after deadline (enddate)',
81        required = True,
82        default = True,
83        )
[5638]84
85    def archive(id=None):
[5676]86        """Create on-dist archive of applicants stored in this term.
[5638]87
[5676]88        If id is `None`, all applicants are archived.
[5638]89
90        If id contains a single id string, only the respective
[5676]91        applicants are archived.
[5638]92
93        If id contains a list of id strings all of the respective
[5676]94        applicants types are saved to disk.
[5638]95        """
96
97    def clear(id=None, archive=True):
[5676]98        """Remove applicants of type given by 'id'.
[5638]99
[5676]100        Optionally archive the applicants.
[5638]101       
[5676]102        If id is `None`, all applicants are archived.
[5638]103
104        If id contains a single id string, only the respective
[5676]105        applicants are archived.
[5638]106
107        If id contains a list of id strings all of the respective
[5676]108        applicant types are saved to disk.
[5638]109
110        If `archive` is ``False`` none of the archive-handling is done
[5676]111        and respective applicants are simply removed from the
[5638]112        database.
113        """
Note: See TracBrowser for help on using the repository browser.