#-*- mode: python; mode: fold -*- # $Id: Students.py 200 2006-05-10 06:58:10Z joachim $ from Globals import InitializeClass from AccessControl import ClassSecurityInfo from AccessControl.SecurityManagement import newSecurityManager from Products.CMFCore.utils import UniqueObject, getToolByName from Products.CMFCore.permissions import View from Products.CMFCore.permissions import ModifyPortalContent from Products.CPSCore.CPSBase import CPSBase_adder, CPSBaseFolder #from Products.CPSCore.CPSBase import CPSBaseDocument as BaseDocument from Products.CPSDocument.CPSDocument import CPSDocument from Products.CPSCore.CPSBase import CPSBaseBTreeFolder as BaseBTreeFolder from Products.CPSCore.CPSMembershipTool import CPSUnrestrictedUser ##class StudentsFolder(BaseBTreeFolder): ###( ## """ ## WAeUP container for the various WAeUP containers data ## """ ## meta_type = 'Students Folder' ## portal_type = meta_type ## security = ClassSecurityInfo() ## ## ##InitializeClass(StudentsFolder) ##def addStudentsFolder(container, id, REQUEST=None, **kw): ## """Add a Student.""" ## ob = StudentsFolder(id, **kw) ## return CPSBase_adder(container, ob, REQUEST=REQUEST) #####) class Student(CPSDocument): ###( """ WAeUP Student container for the various student data """ meta_type = 'Student' portal_type = meta_type security = ClassSecurityInfo() security.declareProtected(View,"Title") def Title(self): """compose title""" reg_nr = self.getId()[1:] data = getattr(self,'PERSONAL',None) if data is None: data = getattr(self,'JAMB',None) if data: content = data.getContent() return "%s %s" % (content.firstname,content.lastname) return self.title def Description(self): """compose description""" data = getattr(self,'PERSONAL',None) if data is None: return "none" if data: content = data.getContent() return "%s" % (content.description) return self.description security.declareProtected(View,"setScratchCardData") def setScratchCardData(self,ident,ds): """set this data """ dict = {'%s_sc_pin' % ident : ds.get('sc_pin'), '%s_sc_id' % ident : ds.get('sc_id'), '%s_sc_value' % ident : ds.get('sc_value'), '%s_date' % ident : ds.get('sc_date'), } old_user = self.portal_membership.getAuthenticatedMember() if self.portal_membership.isAnonymousUser(): tmp_user = CPSUnrestrictedUser('s%(jamb_id)s' % ds, '', ['StudentManager'], '') tmp_user = tmp_user.__of__(self.acl_users) newSecurityManager(None, tmp_user) #print str(dict) self.edit(mapping=dict) newSecurityManager(None, old_user) security.declareProtected(View,"memberIsOwner") def memberIsOwner(self): """is the current user the owner""" member = self.portal_membership.getAuthenticatedMember() #print member, self.getId(),self.aq_parent.getId() if self.aq_parent.getId() == str(member): return True return False security.declareProtected(View,"accommodationIsBooked") def accommodationIsBooked(self): """is the accommodation booked""" if self.accommodation_sc_pin != '': return True return False security.declareProtected(View,"accommodationIsPayed") def accommodationIsPayed(self): """is the accommodation payed""" if self.hostel_fee_sc_pin != '': return True return False security.declareProtected(View,"isRegisteredForCurrentLevel") def isRegisteredForCurrentLevel(self): """is the student registered for the current level""" for l in self.aq_parent.objectValues(): if l.portal_type == 'StudyLevel': return True return False InitializeClass(Student) def addStudent(container, id, REQUEST=None, **kw): """Add a Student.""" ob = Student(id, **kw) return CPSBase_adder(container, ob, REQUEST=REQUEST) ###) class StudentPersonal(CPSDocument): ###( """ WAeUP Student container for the various student data """ meta_type = 'StudentPersonal' portal_type = meta_type security = ClassSecurityInfo() security.declareProtected(View,"Title") def Title(self): """compose title""" content = self.getContent() return "Personal Data for %s %s" % (content.firstname,content.lastname) InitializeClass(StudentPersonal) def addStudentPersonal(container, id, REQUEST=None, **kw): """Add a Students personal data.""" ob = StudentPersonal(id, **kw) return CPSBase_adder(container, ob, REQUEST=REQUEST) ###) class StudentEligibility(CPSDocument): ###( """ WAeUP Student container for the various student data """ meta_type = 'StudentEligibility' portal_type = meta_type security = ClassSecurityInfo() security.declareProtected(View,"Title") def Title(self): """compose title""" return "Eligibility Data" InitializeClass(StudentEligibility) def addStudentEligibility(container, id, REQUEST=None, **kw): """Add a Students eligibility data.""" ob = StudentEligibility(id, **kw) return CPSBase_adder(container, ob, REQUEST=REQUEST) ###) class StudentDocuments(CPSDocument): ###( """ WAeUP Student container for the various student data """ meta_type = 'StudentDocuments' portal_type = meta_type security = ClassSecurityInfo() security.declareProtected(View,"Title") def Title(self): """compose title""" content = self.getContent() return "Scanned Documents" InitializeClass(StudentDocuments) def addStudentDocuments(container, id, REQUEST=None, **kw): """Add a Students documents""" ob = StudentDocuments(id, **kw) return CPSBase_adder(container, ob, REQUEST=REQUEST) ###) class Jamb(CPSDocument): ###( """ WAeUP Jamb containing the courses and students """ meta_type = 'Jamb' portal_type = meta_type security = ClassSecurityInfo() security.declareProtected(View,"Title") def Title(self): """compose title""" content = self.getContent() return "JAMB Data for %s %s" % (content.firstname,content.lastname) security.declareProtected(View,"setOwnership") def setOwnership(self,member_id): """set ownership""" pm = getattr(self,'portal_membership') member = pm.getMemberById(member_id) self.changeOwnership(member) InitializeClass(Jamb) def addJamb(container, id, REQUEST=None, **kw): """Add a Jamb.""" ob = Jamb(id, **kw) return CPSBase_adder(container, ob, REQUEST=REQUEST) ###) class StudyLevel(CPSDocument): ###( """ WAeUP StudyLevel containing the courses and students """ meta_type = 'StudyLevel' portal_type = meta_type security = ClassSecurityInfo() InitializeClass(StudyLevel) def addStudyLevel(container, id, REQUEST=None, **kw): """Add a StudyLevel.""" ob = StudyLevel(id, **kw) return CPSBase_adder(container, ob, REQUEST=REQUEST) ###) class Semester(CPSDocument): ###( """ WAeUP Semester containing the courses and students """ meta_type = 'Semester' portal_type = meta_type security = ClassSecurityInfo() InitializeClass(Semester) def addSemester(container, id, REQUEST=None, **kw): """Add a Semester.""" ob = Semester(id, **kw) return CPSBase_adder(container, ob, REQUEST=REQUEST) ###)