Changeset 361 for WAeUP_SRP/trunk/Students.py
- Timestamp:
- 30 Jul 2006, 06:12:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WAeUP_SRP/trunk/Students.py
r200 r361 13 13 from Products.CPSCore.CPSBase import CPSBaseBTreeFolder as BaseBTreeFolder 14 14 from Products.CPSCore.CPSMembershipTool import CPSUnrestrictedUser 15 ##class StudentsFolder(BaseBTreeFolder): ###( 16 ## """ 17 ## WAeUP container for the various WAeUP containers data 18 ## """ 19 ## meta_type = 'Students Folder' 20 ## portal_type = meta_type 21 ## security = ClassSecurityInfo() 22 ## 23 ## 24 ##InitializeClass(StudentsFolder) 25 26 ##def addStudentsFolder(container, id, REQUEST=None, **kw): 27 ## """Add a Student.""" 28 ## ob = StudentsFolder(id, **kw) 29 ## return CPSBase_adder(container, ob, REQUEST=REQUEST) 30 #####) 15 from Products.WAeUP_SRP.Academics import makeCertificateCode 16 17 class StudentsFolder(CPSDocument): ###( 18 """ 19 WAeUP container for the various WAeUP containers data 20 """ 21 meta_type = 'Students Folder' 22 portal_type = meta_type 23 security = ClassSecurityInfo() 24 25 security.declareProtected(ModifyPortalContent,"loadFullTimeStudentsFromCSV")###( 26 def loadFullTimeStudentsFromCSV(self): 27 """load Fulltime Studentdata from CSV values""" 28 #return 29 name = 'short_full_time' 30 no_import = False 31 logger = logging.getLogger('%s_import' % name) 32 logger.info('Start loading from %s.csv' % name) 33 students_folder = self.portal_catalog({'meta_type': 'StudentsFolder'})[-1].getObject() 34 try: 35 students = csv.DictReader(open("%s/import/%s.csv" % (i_home,name),"rb")) 36 except: 37 logger.error('Error reading %s.csv' % name) 38 return 39 l = self.portal_catalog({'meta_type': "Student"}) 40 studs = {} 41 for s in l: 42 studs[s.id] = s.getObject() 43 l = self.portal_catalog({'meta_type': "Certificate"}) 44 certs = {} 45 for c in l: 46 certs[s.id] = c.getObject() 47 for student in students: 48 logger.info('processing "%(MatricNo)s","%(EntryRegNo)s","%(CurrentSession)s","%(StudentLevel)s","%(fullname)s","%(FirstName)s","%(MiddleName)s","%(Lastname)s","%(FormerSurname)s","%(Sex)s","%(Nationality)s","%(State)s","%(LGA)s","%(PermanentAddress)s","%(PermanentAddressCity)s","%(CampusAddress)s","%(PhoneNumber)s","%(Emailaddress)s","%(Mode)s","%(CourseMajor)s","%(Faculty)s","%(Dept)s"' % student) 49 sid = student.get('MatricNo') 50 certcode = makeCertificateCode(student.get('CourseMajor')) 51 s = studs.get(sid,None) 52 if certcode not in certs.keys(): 53 em = 'Certificate with ID %s %s not found' % (certcode, student.get('CourseMajor')) 54 if not no_import: 55 no_import = open("%s/import/%s_not_imported.csv" % (i_home,name),"w") 56 no_import.write('"MatricNo","EntryRegNo","CurrentSession","StudentLevel","fullname","FirstName","MiddleName","Lastname","FormerSurname","Sex","Nationality","State","LGA","PermanentAddress","PermanentAddressCity","CampusAddress","PhoneNumber","Emailaddress","Mode","CourseMajor","Faculty","Dept"\n') 57 logger.info(em) 58 no_import.write('"%(MatricNo)s","%(EntryRegNo)s","%(CurrentSession)s","%(StudentLevel)s","%(fullname)s","%(FirstName)s","%(MiddleName)s","%(Lastname)s","%(FormerSurname)s","%(Sex)s","%(Nationality)s","%(State)s","%(LGA)s","%(PermanentAddress)s","%(PermanentAddressCity)s","%(CampusAddress)s","%(PhoneNumber)s","%(Emailaddress)s","%(Mode)s","%(CourseMajor)s","%(Faculty)s","%(Dept)s"' % student) 59 continue 60 if s is None: 61 #self.log('Creating Faculty %(id)s = %(Title)s' % faculty) 62 logger.info('Creating Student with ID %(MatricNo)s %(fullname)s' % faculty) 63 students_folder.invokeFactory('Student', sid) 64 s = getattr(self,sid) 65 s.invokeFactory('StudentPersonal','personal') 66 sp = getattr(self,sid) 67 d = {'Title': 'Personal Data'} 68 d['fullname'] = student.get('fullname') 69 d['firstname'] = student.get('FirstName') 70 d['middlename'] = student.get('MiddleName') 71 d['lastname'] = student.get('LastName') 72 d['former_surname'] = student.get('FormerSurname') 73 d['sex'] = student.get('Sex') == 'M' 74 d['nationality'] = student.get('Nationality') 75 d['state'] = student.get('State') 76 d['lga'] = student.get('LGA') 77 d['street'] = student.get('PermanentAddress') 78 d['city'] = student.get('PermanentAddressCity') 79 d['campus_address'] = student.get('CampusAddress') 80 d['phone'] = student.get('PhoneNumber') 81 d['email'] = student.get('EmailAddress') 82 f.getContent().edit(mapping=d) 83 else: 84 em = 'Faculty with ID %(MatricNo)s %(fullname)s already exists' % student 85 if not no_import: 86 no_import = open("%s/import/%s_not_imported.csv" % (i_home,name),"w") 87 no_import.write('"MatricNo","EntryRegNo","CurrentSession","StudentLevel","fullname","FirstName","MiddleName","Lastname","FormerSurname","Sex","Nationality","State","LGA","PermanentAddress","PermanentAddressCity","CampusAddress","PhoneNumber","Emailaddress","Mode","CourseMajor","Faculty","Dept"\n') 88 logger.info(em) 89 no_import.write('"%(MatricNo)s","%(EntryRegNo)s","%(CurrentSession)s","%(StudentLevel)s","%(fullname)s","%(FirstName)s","%(MiddleName)s","%(Lastname)s","%(FormerSurname)s","%(Sex)s","%(Nationality)s","%(State)s","%(LGA)s","%(PermanentAddress)s","%(PermanentAddressCity)s","%(CampusAddress)s","%(PhoneNumber)s","%(Emailaddress)s","%(Mode)s","%(CourseMajor)s","%(Faculty)s","%(Dept)s"' % student) 90 return self.students.folder_contents() 91 ###) 92 93 InitializeClass(StudentsFolder) 94 95 def addStudentsFolder(container, id, REQUEST=None, **kw): 96 """Add a Student.""" 97 ob = StudentsFolder(id, **kw) 98 return CPSBase_adder(container, ob, REQUEST=REQUEST) 99 ###) 31 100 32 101 class Student(CPSDocument): ###(
Note: See TracChangeset for help on using the changeset viewer.