source: WAeUP_SRP/base/skins/waeup_student/add_course_result.py @ 2451

Last change on this file since 2451 was 2451, checked in by joachim, 17 years ago

new getNextInfo used in pay_by_sc

  • Property svn:keywords set to Id
File size: 3.1 KB
Line 
1## Script (Python) "add_course_result"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=REQUEST=None, action_after_validate=''
8##title=
9##
10# $Id: add_course_result.py 2451 2007-10-27 14:26:41Z joachim $
11"""
12add a StudentCourseResult object
13"""
14
15import logging
16logger = logging.getLogger('Skins.add_course_result')
17
18from urllib import urlencode
19try:
20    from Products.zdb import set_trace
21except:
22    def set_trace():
23        pass
24request = context.REQUEST
25course_cat = context.courses_catalog
26from Products.AdvancedQuery import Eq, Between, Le,In
27try:
28    aq_portal = context.portal_catalog.evalAdvancedQuery
29except:
30    aq_portal = context.portal_catalog_real.evalAdvancedQuery
31course_id = request.get('course_id')
32mtool = context.portal_membership
33member = mtool.getAuthenticatedMember()
34
35
36d = context.getCourseInfo(course_id)
37args = {}
38err = ''
39d['core_or_elective'] = True
40while True:
41    if not course_id:
42        err = "Empty course id!"
43        break
44    if d['title'] == 'unknown':
45        err = "No such course!"
46        #logger.info('%s tried to add StudentCourseResult object %s for non-existing course' % (member,course_id))
47        break
48    if context.hasObject(course_id):
49        err = "Course already exists!"
50        #logger.info('%s tried to add StudentCourseResult object %s which is already in course list' % (member,course_id))
51        break
52    if context.hasObject("%s_co" % course_id):
53        err = "Course already exists as carryover course!"
54        #logger.info('%s tried to add StudentCourseResult object %s which already exists as carryover course' % (member,course_id))
55        break
56    break
57
58if err:
59    args['course_id'] = course_id
60    #args['error'] = err
61    args['portal_status_message'] = err
62    url = context.absolute_url() + '/' + action_after_validate + '?' + urlencode(args)
63    return request.RESPONSE.redirect(url)
64
65
66# cr_id = context.invokeFactory('StudentCourseResult',course_id)
67# cr = getattr(context,cr_id)
68# context.portal_workflow.doActionFor(cr,'open')
69# cr.getContent().edit(mapping=d)
70d['course_id'] = course_id
71d['student_id'] = student_id = context.getStudentId()
72d['level_id'] = level_id = context.getId()
73session_id = context.getLevelSession(context.getContent(),student_id,level_id)
74d['session_id'] = session_id
75d['key'] = "%s|%s|%s" % (student_id,level_id,course_id)
76
77context.course_results.addRecord(**d)
78#context.portal_workflow.doActionFor(cr,'close')
79#args['course_id'] = course_id
80
81logger.info('%s added StudentCourseResult object %s at level %s for %s' % (member,
82                                                                           course_id,
83                                                                           level_id,
84                                                                           student_id))
85
86psm = "You successfully added course %s!" % course_id
87args['portal_status_message'] = psm
88if action_after_validate:
89    url = context.absolute_url() + '/' + action_after_validate + '?' + urlencode(args)
90else:
91    url = context.absolute_url() + '?' + urlencode(args)
92return REQUEST.RESPONSE.redirect(url)
Note: See TracBrowser for help on using the repository browser.