## ## applicants.py ## Login : ## Started on Fri Jul 16 11:46:55 2010 Uli Fouquet ## $Id$ ## ## Copyright (C) 2010 Uli Fouquet ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## import grok from zope.component.interfaces import IFactory from zope.schema.fieldproperty import FieldProperty from waeup.sirp.interfaces import IWAeUPSIRPPluggable from waeup.sirp.jambtables.interfaces import ( IResultEntry, IApplicant, IApplicantContainer ) class ResultEntry(grok.Context): grok.implements(IResultEntry) def __init__(self, subject=None, score=None): self.subject = subject self.score = score class Applicant(grok.Context): grok.implements(IApplicant) fst_sit_results = FieldProperty(IApplicant['fst_sit_results']) def __init__(self): self.reg_no = None self.access_code = None self.serial = None self.course1 = None self.course2 = None self.course3 = None self.firstname = None self.middlenames = None self.lastname = None self.jamb_age = None self.date_of_birth = None self.jamb_state = None self.jamb_lga = None self.lga = None self.sex = None self.email = None self.phone = None self.passport = False self.aos = None self.subj1 = None self.subj2 = None self.subj3 = None self.hq_matric_no = None self.hq_type = None self.hq_grade = None self.hq_school = None self.hq_session = None self.hq_disc = None self.fst_sit_fname = None self.fst_sit_no = None self.fst_sit_date = None self.fst_sit_type = None #self.fst_sit_results = [] self.fst_sit_results = None #self.fst_sit_results = ResultEntry() self.scd_sit_fname = None self.scd_sit_no = None self.scd_sit_date = None self.scd_sit_type = None self.scd_sit_results = None self.eng_score = None self.subj1score = None self.subj2score = None self.subj3score = None self.application_date = None self.status = None self.screening_date = None self.screening_type = None self.screening_score = None self.screening_venue = None self.total_score = None self.course_admitted = None self.department = None self.faculty = None self.entry_session = None self.notice = None self.student_id = None self.import_record_no = None self.imported_by = None self.import_date = None self.import_from = None class ApplicantFactory(grok.GlobalUtility): """A factory for faculty containers. """ grok.implements(IFactory) grok.name(u'waeup.Applicant') title = u"Create a new applicant.", description = u"This factory instantiates new applicant instances." def __call__(self, *args, **kw): return Applicant() def getInterfaces(self): return implementedBy(Appliant) class ApplicantContainer(grok.Container): grok.implements(IApplicantContainer) class ApplicantsPlugin(grok.GlobalUtility): """A WAeUPSIRPPlugin that creates an applications folder in portal. """ grok.name('applications') grok.implements(IWAeUPSIRPPluggable) def setup(self, site, name, logger): site['applications'] = ApplicantContainer() logger.info('Installed application container.') return def update(self, site, name, logger): if not 'applications' in site.keys(): logger.info('Updating site at %s. Installing applications.' % ( site,)) self.setup(site, name, logger) else: logger.info( 'ApplicantsPlugin: Updating site at %s: Nothing to do.' % ( site, )) return