##parameters=key=None # $Id: getStudentLevelsVoc.py 2641 2007-11-13 14:07:36Z joachim $ """ Return the levels as an vocabulary # try: from Products.zdb import set_trace except: def set_trace(): pass """ student_id = context.getStudentId() if student_id: end_level = int(context.students_catalog(id = student_id)[0].end_level) else: end_level = 600 if key is None: levels = [l for l in range(100,end_level+200,10) if l % 100 < 30 and l < end_level + 110] voc = [] for l in levels: level_nr,repeat = divmod(l, 100) if level_nr > end_level/100: voc += ("%s" % l,"%s (spillover)" % context.portal_vocabularies.levels.get("%d00" % (level_nr - 1))), elif repeat > 0: voc += ("%s" % l,"%s (on %d. probation)" % (context.portal_vocabularies.levels.get("%d00" % (level_nr)), (repeat // 10))), else: voc += ("%s" % l,"%s" % (context.portal_vocabularies.levels.get("%d00" % (level_nr)))), return voc ikey = int(key) level_nr,repeat = divmod(ikey, 100) l = [] level = context.portal_vocabularies.levels.get("%d00" % level_nr) if level_nr > end_level/100: return "%s (spillover)" % context.portal_vocabularies.levels.get("%d00" % (level_nr - 1)) if repeat > 0: level += " (on %d. probation)" % (repeat // 10) return level