source: WAeUP_SRP/trunk/skins/waeup_utilities/reindexCoursesCatalog.py @ 1498

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

create level respects now passmark if present
reindexCoursesCatalog must be run first, done on uniben-demo

  • Property svn:keywords set to Id
File size: 2.5 KB
Line 
1## Script (Python) "search_pins"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=REQUEST
8##title=
9##
10# $Id: reindexCoursesCatalog.py 1498 2007-02-26 16:00:26Z joachim $
11"""
12list Students for ClearanceOfficers
13"""
14try:
15    from Products.zdb import set_trace
16except:
17    def set_trace():
18        pass
19
20request = context.REQUEST
21session = request.SESSION
22response = request.RESPONSE
23setheader = request.RESPONSE.setHeader
24import logging
25logger = logging.getLogger('fixLevelForNewStudents')
26
27def rwrite(s):
28    response.setHeader('Content-type','text/html; charset=ISO-8859-15')
29    response.write(s)
30
31mtool = context.portal_membership
32member = mtool.getAuthenticatedMember()
33#students_cat = context.students_catalog
34courses_cat = context.courses_catalog
35from Products.AdvancedQuery import Eq, Between, Le,In
36#aq_students = students_cat.evalAdvancedQuery
37aq_portal = context.portal_catalog.evalAdvancedQuery
38students = context.portal_url.getPortalObject().campus.students
39
40count = 0
41##query = Eq('portal_type','Student') & In('review_state',('admitted',
42##                                                         'clearance_requested',
43##                                                         'cleared_and_validated',
44##                                                         'objection_raised',
45##                                                         )
46##res = aq_portal(query)
47query = Eq('portal_type','Course')
48courses = aq_portal(query)
49#set_trace()
50count = 0
51count_full = 0
52commit_count = 0
53logger.info("reindexing of courses_catalog started for %s courses" % len(courses))
54for course_brain in courses:
55    course_doc = course_brain.getObject().getContent()
56    d = {}
57    d['code'] = getattr(course_doc,'code')
58    d['credits'] = getattr(course_doc,'credits')
59    d['level'] = getattr(course_doc,'level')
60    d['passmark'] = getattr(course_doc,'passmark')
61    d['semester'] = getattr(course_doc,'semester')
62    d['title'] = getattr(course_doc,'title')
63    pl = course_brain.getPath().split('/')
64    d['faculty'] = pl[-4]
65    d['department'] = pl[-3]
66    try:
67        courses_cat.modifyRecord(**d)
68    except KeyError:
69        courses_cat.addRecord(**d)
70    count += 1
71    commit_count += 1
72    if commit_count > 1000:
73        context.waeup_tool.doCommit()
74        logger.info("committing %s transactions total %s" % (commit_count,count))
75        rwrite("%s: committed %s <br />" % (count,commit_count))
76        commit_count = 0
77rwrite("finished")
78logger.info("finished  reindexing %s courses" % count)
Note: See TracBrowser for help on using the repository browser.