source: main/waeup.sirp/trunk/src/waeup/sirp/applicants/container.py @ 6228

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

Convert waeup.local.ApplicationsOfficer? to waeup.ApplicationsOfficer?.
Change and simplify permission settings in application section.
Assign application section permissions to Portal Manager.

Actually we need a Campus Manager (Academics Section Manager) too. Then manageUniversity should be renamed to manageAcademics.

File size: 3.4 KB
Line 
1##
2## container.py
3## Login : <uli@pu.smp.net>
4## Started on  Thu Jan 20 04:33:18 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##
22"""
23Containers for university applicants.
24"""
25import grok
26from waeup.sirp.applicants.interfaces import (
27    IApplicantsContainer, IApplicantsContainerAdd,
28    IApplicantsContainerProvider,
29    )
30from waeup.sirp.utils.helpers import attrs_to_fields
31
32class ApplicantsContainer(grok.Container):
33    """An applicants container contains university applicants.
34    """
35    grok.implements(IApplicantsContainer,IApplicantsContainerAdd)
36    #grok.provides(IApplicantsContainer)
37
38    #: These are 'class-attributes'. Do not fiddle around with it in
39    #: instances of this class.
40    #:
41    #: The title of this container as displayed in add-forms. It should
42    #: give some idea about what kind of container this is (one or two words)
43    container_title = u'Basic'
44
45    #: Another 'class-attribute'. Do not fiddle around with it in instances
46    #: of this class.
47    #:
48    #: The `container_description` gives a short explanation about for what
49    #: purposes this container type serves (a few words only).
50    container_description = u'handles basic applicants'
51
52    @property
53    def local_roles(cls):
54        return ['waeup.ApplicationsOfficer']
55
56    def archive(self, app_ids=None):
57        """Create on-dist archive of applicants stored in this term.
58
59        If app_ids is `None`, all applicants are archived.
60
61        If app_ids contains a single id string, only the respective
62        applicants are archived.
63
64        If app_ids contains a list of id strings all of the respective
65        applicants types are saved to disk.
66        """
67        raise NotImplemented()
68
69    def clear(self, app_ids=None, archive=True):
70        """Remove applicants of type given by 'id'.
71
72        Optionally archive the applicants.
73
74        If id is `None`, all applicants are archived.
75
76        If id contains a single id string, only the respective
77        applicants are archived.
78
79        If id contains a list of id strings all of the respective
80        applicant types are saved to disk.
81
82        If `archive` is ``False`` none of the archive-handling is done
83        and respective applicants are simply removed from the
84        database.
85        """
86        raise NotImplemented()
87
88ApplicantsContainer = attrs_to_fields(ApplicantsContainer)
89
90class ApplicantsContainerProvider(grok.GlobalUtility):
91    """A utility that provides basic applicants containers.
92    """
93    grok.implements(IApplicantsContainerProvider)
94    grok.name('waeup.sirp.applicants.ApplicantsContainer')
95
96    #: The applicants container type this provider provides:
97    #: :class:`ApplicantsContainer`.
98    factory = ApplicantsContainer
Note: See TracBrowser for help on using the repository browser.