source: WAeUP_SRP/trunk/skins/waeup_utilities/moveCourseResults.py @ 3784

Last change on this file since 3784 was 2737, checked in by Henrik Bettermann, 17 years ago

move really all (provided that there are no level objects of students < school_fee_paid)

  • Property svn:keywords set to Id
File size: 2.4 KB
Line 
1## Script (Python) "ti_385_resolve"
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: moveCourseResults.py 2737 2007-11-22 09:53:21Z 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','joachim'):
22    return
23
24
25import logging
26import DateTime
27logger = logging.getLogger('Skins.moveCourseResults')
28from Products.AdvancedQuery import Eq, Between, Le,In
29aq_results = context.course_results.evalAdvancedQuery
30aq_students = context.students_catalog.evalAdvancedQuery
31students = context.portal_url.getPortalObject().campus.students
32request = context.REQUEST
33session = request.SESSION
34response = request.RESPONSE
35setheader = request.RESPONSE.setHeader
36#def rwrite(s):
37#    response.setHeader('Content-type','text/html; charset=ISO-8859-15')
38#    response.write("%s<br>\n\r" % s)
39
40#logger.info('')
41
42brains = aq_students(In('review_state',('school_fee_paid','courses_registered','courses_validated')))
43total = len(brains)
44logger.info("found %d students" % (total))
45count = 0
46moved = 0
47cocount = 0
48commit_after = 20
49#moved_sids = context.course_results.uniqueValuesFor('student_id')
50for brain in brains:
51    count += 1
52    #if brain.id in moved_sids:
53    #    continue
54    try:
55        study_level = getattr(getattr(getattr(students,brain.id),
56                                  "study_course")
57                          ,brain.level)
58        results = study_level.objectIds()
59    except:
60        #rwrite('not found %s/study_course/%s' % (brain.id,brain.level))
61        continue
62    if not results:
63        if not count % 100:
64            logger.info("%s students searched" % (count))
65        continue
66        #rwrite('no result objects in %s/study_course/%s' % (brain.id,brain.level))
67    else:
68        #logger.info("moving  results of student %s" % (brain.id))
69        context.course_results.moveResultsHere(study_level,brain.id)
70        moved += 1
71        logger.info("moved results of student %s" % (brain.id))
72        if moved and not moved % commit_after:
73            context.waeup_tool.doCommit()
74            logger.info("Committing %s transactions, total %s" % (commit_after,count))
75            #cocount += 1
76            #if cocount > 2:
77            #    break
78
79msg = "finished moving results of %d students" % (moved)
80logger.info(msg)
81#rwrite(msg)
82
83
Note: See TracBrowser for help on using the repository browser.