source: main/waeup.sirp/trunk/src/waeup/sirp/students/payments.py @ 6876

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

Add StudentOnlinePayment? class (including factory) which also implements IStudentNavigation.

  • Property svn:keywords set to Id
File size: 2.6 KB
RevLine 
[6635]1## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
2## This program is free software; you can redistribute it and/or modify
3## it under the terms of the GNU General Public License as published by
4## the Free Software Foundation; either version 2 of the License, or
5## (at your option) any later version.
6##
7## This program is distributed in the hope that it will be useful,
8## but WITHOUT ANY WARRANTY; without even the implied warranty of
9## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10## GNU General Public License for more details.
11##
12## You should have received a copy of the GNU General Public License
13## along with this program; if not, write to the Free Software
14## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15##
16"""
[6860]17Container which contains the (student) payment objects.
[6635]18"""
19import grok
20from grok import index
21from zope.component.interfaces import IFactory
[6875]22from zope.interface import implementedBy
[6860]23from waeup.sirp.students.interfaces import IStudentPaymentsContainer, IStudentNavigation
[6875]24from waeup.sirp.payments import PaymentsContainer, OnlinePayment
25from waeup.sirp.payments.interfaces import IOnlinePayment
[6635]26from waeup.sirp.utils.helpers import attrs_to_fields
27
[6860]28class StudentPaymentsContainer(PaymentsContainer):
[6635]29    """This is a container for student payments.
30    """
[6860]31    grok.implements(IStudentPaymentsContainer, IStudentNavigation)
32    grok.provides(IStudentPaymentsContainer)
[6635]33
34    def __init__(self):
[6860]35        super(StudentPaymentsContainer, self).__init__()
[6635]36        return
37
[6642]38    def getStudent(self):
39        return self.__parent__
40
[6875]41StudentPaymentsContainer = attrs_to_fields(StudentPaymentsContainer)
42
43class StudentOnlinePayment(OnlinePayment):
44    """This is an online payment.
45    """
46    grok.implements(IOnlinePayment, IStudentNavigation)
47    grok.provides(IOnlinePayment)
48
49    def __init__(self):
50        super(StudentOnlinePayment, self).__init__()
51        p_id = None
52        return
53
54    def getStudent(self):
55        return self.__parent__.__parent__
56
57StudentOnlinePayment = attrs_to_fields(StudentOnlinePayment)
58
59# Student online payments must be importable. So we might need a factory.
60class StudentOnlinePaymentFactory(grok.GlobalUtility):
61    """A factory for student online payments.
62    """
63    grok.implements(IFactory)
64    grok.name(u'waeup.StudentOnlinePayment')
65    title = u"Create a new online payment.",
66    description = u"This factory instantiates new online payment instances."
67
68    def __call__(self, *args, **kw):
69        return StudentOnlinePayment()
70
71    def getInterfaces(self):
72        return implementedBy(StudentOnlinePayment)
Note: See TracBrowser for help on using the repository browser.