~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/webapp/tutorial/exercise_service.py

  • Committer: Nick Chadwick
  • Date: 2009-02-26 02:50:42 UTC
  • mto: (1099.1.227 exercise-ui)
  • mto: This revision was merged to the branch mainline in revision 1162.
  • Revision ID: chadnickbok@gmail.com-20090226025042-0e0ktnnfoa7zupiv
added in extra parts to the exercise edit view. Now almost all
parts of an exercise can be edited.

In addition, added a warning message to the exercise view to warn
users it is not currently ready for consumption

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
    #Only lecturers and admins can add exercises
33
33
    def get_permissions(self, user):
34
34
        if user is not None:
35
 
            if user.rolenm in ('admin', 'lecturer'):
 
35
            if user.admin:
 
36
                return set(['save'])
 
37
            elif user in set((e.role for e in req.user.active_enrolments)):
36
38
                return set(['save'])
37
39
            else:
38
40
                return set()
61
63
    
62
64
    def get_permissions(self, user):
63
65
        if user is not None:
64
 
            if user.rolenm in ('admin', 'lecturer'):
65
 
                return set(['edit'])
 
66
            if user.admin:
 
67
                return set([u'edit'])
 
68
            elif user in set((e.role for e in req.user.active_enrolments)):
 
69
                return set([u'edit'])
66
70
            else:
67
71
                return set()
68
72
        else:
76
80
        if self.context is None:
77
81
            raise NotFound()
78
82
 
79
 
    @named_operation('edit')
 
83
    @named_operation(u'edit')
80
84
    def edit_exercise(self, req, name, description, partial, 
81
85
                      solution, include, num_rows):
82
86
        
86
90
        self.context.solution = unicode(solution)
87
91
        self.context.include = unicode(include)
88
92
        self.context.num_rows = int(num_rows)
89
 
        
90
 
        return {'result': 'ok'}
91
 
        
92
 
    @named_operation('edit')
 
93
        return {'result': 'moo'}
 
94
        
 
95
    @named_operation(u'edit')
93
96
    def add_suite(self, req, description, function, stdin):
94
97
        
95
98
        new_suite = TestSuite()
103
106
        
104
107
        return {'result': 'ok'}
105
108
        
106
 
    @named_operation('edit')
 
109
    @named_operation(u'edit')
107
110
    def edit_suite(self, req, suiteid, description, function, stdin):
108
111
        
109
112
        suite = req.store.find(TestSuite,
119
122
        
120
123
        return {'result': 'ok'}
121
124
      
122
 
    @named_operation('edit')
 
125
    @named_operation(u'edit')
123
126
    def add_var(self, req, suiteid, var_type, var_name, var_val, argno):
124
127
 
125
128
        suite = req.store.find(TestSuite,
140
143
        
141
144
        return {'result': 'ok'}
142
145
 
143
 
    @named_operation('edit')
 
146
    @named_operation(u'edit')
144
147
    def edit_var(self, req, suiteid, varid, var_type, var_name, var_val, argno):
145
148
        var = req.store.find(TestSuiteVar,
146
149
            TestSuiteVar.varid == int(varid),
157
160
        
158
161
        return {'result': 'ok'}
159
162
    
160
 
    @named_operation
161
 
    def add_testcase(): pass
 
163
    @named_operation(u'edit')
 
164
    def add_testcase(self, req, suiteid, passmsg, failmsg, default):
 
165
        
 
166
        suite = req.store.find(TestSuite,
 
167
            TestSuite.suiteid == int(suiteid),
 
168
            TestSuite.exercise_id == self.context.id).one()
 
169
        
 
170
        if suite is None:
 
171
            raise NotFound()
 
172
        
 
173
        new_case = TestCase()
 
174
        new_case.passmsg = unicode(passmsg)
 
175
        new_case.failmsg = unicode(failmsg)
 
176
        new_case.default = unicode(default)
 
177
        new_case.seq_no = suite.test_cases.count()
 
178
        suite.test_cases.add(new_case)
 
179
        
 
180
        req.store.add(new_case)
 
181
        
 
182
        return {'result': 'ok'}