source: WAeUP_SRP/trunk/skins/waeup_utilities/fill_session_in_course_results.py @ 5168

Last change on this file since 5168 was 5144, checked in by Henrik Bettermann, 15 years ago

fix schools #17

  • Property svn:keywords set to Id
File size: 1.8 KB
Line 
1## Script (Python) "fill_session"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=
8##title=
9##
10# $Id: fill_session_in_course_results.py 5144 2010-04-13 07:27:13Z henrik $
11"""
12"""
13try:
14    from Products.zdb import set_trace
15except:
16    def set_trace():
17        pass
18
19mtool = context.portal_membership
20member = mtool.getAuthenticatedMember()
21if str(member) not in ('admin',):
22    return
23
24
25import logging
26import DateTime
27logger = logging.getLogger('fill_session_in_course_results')
28from Products.AdvancedQuery import Eq, Between, Le,In
29
30course_results = context.course_results
31students = context.portal_url.getPortalObject().campus.students
32
33
34brains = course_results()
35total = len(brains)
36edited = 0
37for brain in brains:
38    #set_trace()
39    if not brain.session_id:
40        data = {}
41        data['key'] = brain.key
42       
43        if not students.hasObject(brain.student_id):
44            logger.info("no student %s" % student_id)
45            continue
46        student = getattr(students, brain.student_id)       
47        if not student.hasObject("study_course"):
48            logger.info("%s: no study_course" % brain.student_id)
49            continue
50        study_course = student.study_course
51        if not study_course.hasObject(brain.level_id):
52            logger.info("%s: no level %s" % (brain.student_id,brain.level_id))
53            continue
54        level_obj = getattr(study_course, brain.level_id)   
55        level_doc = level_obj.getContent()   
56        #set_trace()
57        session_id = level_doc.session
58        data['session_id'] = session_id
59        course_results.modifyRecord(**data)
60        logger.info("%s: session %s filled" % (brain.key,session_id))
61        edited += 1
62    #else:
63    #    logger.info("%s: %s" % (brain.student_id,brain.session_id))
64       
65logger.info("edited %d course results of %s total" % (edited,total))
Note: See TracBrowser for help on using the repository browser.