Index: main/waeup.aaue/trunk/src/waeup/aaue/interfaces.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/interfaces.py	(revision 14697)
+++ main/waeup.aaue/trunk/src/waeup/aaue/interfaces.py	(revision 14700)
@@ -21,7 +21,13 @@
 from zc.sourcefactory.basic import BasicSourceFactory
 from waeup.kofa.interfaces import (SimpleKofaVocabulary,
-    ISessionConfiguration, academic_sessions_vocab)
+    ISessionConfiguration, academic_sessions_vocab,
+    ContextualDictSourceFactoryBase)
 
 _ = MessageFactory = zope.i18nmessageid.MessageFactory('waeup.aaue')
+
+class EnableScoreEditingGroupSource(ContextualDictSourceFactoryBase):
+    """A source for filtering groups of students
+    """
+    DICT_NAME = 'ENABLE_SCORE_EDITING_GROUP_DICT'
 
 # It's recommended to replicate all fields from the base package here.
@@ -254,4 +260,13 @@
         )
 
+    score_editing_enabled = schema.List(
+        title = _(u'Score editing enabled'),
+        value_type = schema.Choice(
+            source = EnableScoreEditingGroupSource(),
+            ),
+        required = False,
+        defaultFactory=list,
+        )
+
 
     def getSessionString():
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py	(revision 14697)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/browser.py	(revision 14700)
@@ -815,4 +815,19 @@
     grok.template('editscorespage')
 
+    def _searchCatalog(self, session):
+        cat = queryUtility(ICatalog, name='coursetickets_catalog')
+        coursetickets = cat.searchResults(
+            session=(session, session),
+            code=(self.context.code, self.context.code)
+            )
+        try:
+            score_editing_enabled = grok.getSite()[
+                'configuration'][str(session)].score_editing_enabled
+        except KeyError:
+            return []
+        coursetickets_list = [
+            i for i in coursetickets
+            if i.student.current_mode in score_editing_enabled]
+        return coursetickets_list
 
     def _extract_uploadfile(self, uploadfile):
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py	(revision 14697)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py	(revision 14700)
@@ -218,5 +218,4 @@
 
     def test_for_instalment_payments(self):
-
         configuration_1 = createObject('waeup.SessionConfiguration')
         configuration_1.academic_session = 2015
@@ -364,4 +363,5 @@
         # set value to change from
         self.student['studycourse']['100']['COURSE1'].score = 55
+        self.app['configuration']['2004'].score_editing_enabled = ['ug_ft']
         self.browser.open(self.edit_scores_url)
         upload_ctrl = self.browser.getControl(name='uploadfile:file')
@@ -381,4 +381,8 @@
         self.browser.open(self.edit_prev_scores_url)
         self.assertTrue('No student found' in self.browser.contents)
+        configuration = createObject('waeup.SessionConfiguration')
+        configuration.academic_session = 2003
+        self.app['configuration'].addSessionConfiguration(configuration)
+        self.app['configuration']['2003'].score_editing_enabled = ['ug_ft']
         self.student['studycourse']['100'].level_session = 2003
         notify(grok.ObjectModifiedEvent(self.student['studycourse']['100']['COURSE1']))
@@ -407,4 +411,5 @@
         self.student['studycourse']['100']['COURSE1'].score = 55
         self.student['studycourse']['100']['COURSE1'].ca = 11
+        self.app['configuration']['2004'].score_editing_enabled = ['ug_ft']
         pdf_url = '%s/coursetickets.pdf' % self.course_url
         self.browser.open(pdf_url)
@@ -415,4 +420,16 @@
         open(path, 'wb').write(self.browser.contents)
         print "Sample PDF coursetickets.pdf written to %s" % path
+
+    def test_lecturers_do_only_see_selected_students(self):
+        # A course ticket slip can be downloaded
+        self.login_as_lecturer()
+        self.student['studycourse']['100']['COURSE1'].score = 55
+        self.student['studycourse']['100']['COURSE1'].ca = 11
+        self.browser.open(self.edit_scores_url)
+        self.assertTrue('No student found' in self.browser.contents)
+        self.app['configuration']['2004'].score_editing_enabled = ['ug_ft']
+        self.browser.open(self.edit_scores_url)
+        self.assertFalse('No student found' in self.browser.contents)
+        self.assertTrue('TESTER, Anna' in self.browser.contents)
 
     def test_transcripts(self):
@@ -1119,4 +1136,5 @@
         self.app['faculties']['fac1']['dep1'].score_editing_disabled = False
         self.app['configuration'].current_academic_session = 2004
+        self.app['configuration']['2004'].score_editing_enabled = ['ug_ft']
         IWorkflowState(self.student).setState('courses validated')
         self.browser.open(
Index: main/waeup.aaue/trunk/src/waeup/aaue/utils/utils.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/utils/utils.py	(revision 14697)
+++ main/waeup.aaue/trunk/src/waeup/aaue/utils/utils.py	(revision 14700)
@@ -162,4 +162,6 @@
         'ijmbe': 'IJMBE Preparation',
         }
+
+    ENABLE_SCORE_EDITING_GROUP_DICT = STUDY_MODES_DICT
 
     VERDICTS_DICT = {
