~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-25 06:17:41 UTC
  • mto: (1099.1.227 exercise-ui)
  • mto: This revision was merged to the branch mainline in revision 1162.
  • Revision ID: chadnickbok@gmail.com-20090225061741-u4fzdxg6aiwyp153
working on making the exercise editor complete

Show diffs side-by-side

added added

removed removed

Lines of Context:
77
77
            raise NotFound()
78
78
 
79
79
    @named_operation('edit')
80
 
    def update_exercise(self, req, name, description, partial, 
 
80
    def edit_exercise(self, req, name, description, partial, 
81
81
                      solution, include, num_rows):
82
82
        
83
83
        self.context.name = unicode(name)
90
90
        return {'result': 'ok'}
91
91
        
92
92
    @named_operation('edit')
93
 
    def add_suite(self, req, description, seq_no, function, stdin):
 
93
    def add_suite(self, req, description, function, stdin):
94
94
        
95
95
        new_suite = TestSuite()
96
 
        new_suite.description = description
97
 
        new_suite.seq_no = seq_no
98
 
        new_suite.function = function
99
 
        new_suite.stdin = stdin
 
96
        new_suite.description = unicode(description)
 
97
        new_suite.seq_no = self.context.test_suites.count()
 
98
        new_suite.function = unicode(function)
 
99
        new_suite.stdin = unicode(stdin)
100
100
        new_suite.exercise = self.context
101
101
        
102
102
        req.store.add(new_suite)
103
103
        
104
104
        return {'result': 'ok'}
105
105
        
106
 
 
107
 
class TestSuiteRESTView():
108
 
    """View for updating Test Suites, adding variable and adding test parts."""
109
 
    
110
 
    def get_permissions(self, user):
111
 
        if user is not None:
112
 
            if user.rolenm in ('admin', 'lecturer'):
113
 
                return set(['edit'])
114
 
            else:
115
 
                return set()
116
 
        else:
117
 
            return set()
118
 
 
119
 
    @named_operation('edit')
120
 
    def edit_testsuite(self, req, suiteid):
121
 
        
122
 
        test_suite = req.store.find(TestSuite, 
123
 
            TestSuite.suite.id == suiteid).one()
124
 
        
125
 
        if test_suite is not None:
126
 
            raise NotFound()
127
 
        
128
 
        return {'result': 'NOT IMPLEMENTED'}
 
106
    @named_operation('edit')
 
107
    def edit_suite(self, req, suiteid, description, function, stdin):
 
108
        
 
109
        suite = req.store.find(TestSuite,
 
110
            TestSuite.suiteid == int(suiteid),
 
111
            TestSuite.exercise_id == self.context.id).one()
 
112
        
 
113
        if suite is None:
 
114
            raise NotFound()
 
115
        
 
116
        suite.description = unicode(description)
 
117
        suite.function = unicode(function)
 
118
        suite.stdin = unicode(stdin)
 
119
        
 
120
        return {'result': 'ok'}
 
121
      
 
122
    @named_operation('edit')
 
123
    def add_var(self, req, suiteid, var_type, var_name, var_val, argno):
 
124
 
 
125
        suite = req.store.find(TestSuite,
 
126
            TestSuite.suiteid == int(suiteid),
 
127
            TestSuite.exercise_id == self.context.id).one()
 
128
        
 
129
        if suite is None:
 
130
            raise NotFound()
 
131
        
 
132
        new_var = TestSuiteVar()
 
133
        new_var.var_type = unicode(var_type)
 
134
        new_var.var_name = unicode(var_name)
 
135
        new_var.var_val = unicode(var_val)
 
136
        new_var.argno = argno
 
137
        new_var.suite = suite
 
138
        
 
139
        req.store.add(new_var)
 
140
        
 
141
        return {'result': 'ok'}