Changeset 10627
- Timestamp:
- 20 Sep 2013, 12:17:39 (11 years ago)
- Location:
- main/waeup.kofa/trunk/src/waeup/kofa
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py
r10451 r10627 642 642 ) 643 643 644 current_academic_session = schema.Choice( 645 title = _(u'Current Academic Session'), 646 source = academic_sessions_vocab, 647 default = None, 648 required = False, 649 readonly = False, 650 ) 651 644 652 class ISessionConfiguration(IKofaObject): 645 653 """A session configuration object. -
main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
r10531 r10627 146 146 return None 147 147 148 def score_editing_disabled_message(student): 149 config = grok.getSite()['configuration'] 150 if student.current_session != config.current_academic_session: 151 return _('Score editing is disabled for this session.') 152 return None 148 153 149 154 def addCourseTicket(view, course=None): … … 3044 3049 return list(set(hitlist)) 3045 3050 3051 class EditScoresPage(KofaPage): 3052 """Page that filters and lists students. 3053 """ 3054 grok.context(ICourse) 3055 grok.require('waeup.manageStudent') 3056 grok.name('edit_scores') 3057 grok.template('editscorespage') 3058 pnav = 1 3059 3060 def label(self): 3061 session = academic_sessions_vocab.getTerm( 3062 self.current_academic_session).title 3063 return 'Students registered for %s in academic session %s' % ( 3064 self.context.longtitle(), session) 3065 3066 def _searchCatalog(self, session): 3067 cat = queryUtility(ICatalog, name='coursetickets_catalog') 3068 coursetickets = cat.searchResults( 3069 session=(session, session), 3070 code=(self.context.code, self.context.code) 3071 ) 3072 return list(coursetickets) 3073 3074 def update(self, *args, **kw): 3075 form = self.request.form 3076 ob_class = self.__implemented__.__name__.replace('waeup.kofa.','') 3077 self.current_academic_session = grok.getSite()[ 3078 'configuration'].current_academic_session 3079 datatable.need() 3080 self.tickets = self._searchCatalog(self.current_academic_session) 3081 if not self.tickets: 3082 self.flash(_('No student found.')) 3083 return 3084 if 'UPDATE' in form: 3085 tno = 0 3086 error = '' 3087 for ticket in self.tickets: 3088 score = ticket.score 3089 try: 3090 score = int(form['scores'][tno]) 3091 except ValueError: 3092 error += '%s, ' % ticket.student.display_fullname 3093 if ticket.score != score: 3094 ticket.score = score 3095 ticket.student.__parent__.logger.info( 3096 '%s - %s %s/%s score updated (%s)' % 3097 (ob_class, ticket.student.student_id, 3098 ticket.level, ticket.code, score)) 3099 #notify(grok.ObjectModifiedEvent(ticket)) 3100 tno += 1 3101 if error: 3102 self.flash(_('Error: Score(s) of %s have not be updated. ' 3103 'Only integers are allowed.' % error.strip(', '))) 3104 return 3105 3046 3106 class ExportJobContainerOverview(KofaPage): 3047 3107 """Page that lists active student data export jobs and provides links
Note: See TracChangeset for help on using the changeset viewer.