source: WAeUP_SRP/base/skins/waeup_utilities/moveCourseResults.py @ 2504

Last change on this file since 2504 was 2502, checked in by joachim, 18 years ago

created script moveCourseResults.py for #385

  • Property svn:keywords set to Id
File size: 2.1 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 2502 2007-11-02 12:38:08Z joachim $
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
29#aq_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
36def 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',('courses_registered','courses_validated')))
43total = len(brains)
44logger.info("found %d students" % (total))
45count = 0
46moved = 0
47cocount = 0
48commit_after = 5
49for brain in brains:
50    count += 1
51    if moved and not moved % commit_after:
52        context.waeup_tool.doCommit()
53        logger.info("Committing %s transactions, total %s" % (commit_after,count))
54        cocount += 1
55        if cocount > 3:
56            break
57    try:
58        study_level = getattr(getattr(getattr(students,brain.id),
59                                  "study_course")
60                          ,brain.level)
61        results = study_level.objectIds()
62    except:
63        rwrite('not found %s/study_course/%s' % (brain.id,brain.level))
64        continue
65    if not results:
66        rwrite('no courses %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))
72msg = "finished moving  results of %d students" % (moved)
73logger.info(msg)
74rwrite(msg)
Note: See TracBrowser for help on using the repository browser.