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

« back to all changes in this revision

Viewing changes to ivle/webapp/admin/offeringservice.py

  • Committer: Matt Giuca
  • Date: 2010-02-11 07:39:15 UTC
  • Revision ID: matt.giuca@gmail.com-20100211073915-rirq98zg3sanvf09
Submit view: The projects list is now identical (except for radio buttons) to the view on the subjects page. It is much clearer and contains more info. The code is somewhat different, because it's a table, not a list, so I didn't abstract it. Moved a function out of subject.py to ivle.util, as it is shared by both views.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
import ivle.database
 
4
from ivle.database import ProjectSet, Subject, Semester, Offering
 
5
 
 
6
from ivle.webapp.admin.projectservice import ProjectSetRESTView
 
7
from ivle.webapp.groups import GroupsView
 
8
from ivle.webapp.base.rest import (XHTMLRESTView, named_operation,
 
9
                                   require_permission)
 
10
from ivle.webapp.errors import NotFound
 
11
 
 
12
class OfferingRESTView(XHTMLRESTView):
 
13
    """REST view for a subject.
 
14
      
 
15
    This view allows for added a ProjectSet to an existing subject."""
 
16
 
 
17
    template = "subject.html"
 
18
 
 
19
    @named_operation('edit')
 
20
    def add_projectset(self, req, group_size):
 
21
        """Add a new ProjectSet"""
 
22
        new_projectset = ProjectSet()
 
23
        if group_size == '':
 
24
            new_projectset.max_students_per_group = None
 
25
        else:
 
26
            new_projectset.max_students_per_group = int(group_size)
 
27
        new_projectset.offering = self.context
 
28
 
 
29
        req.store.add(new_projectset)
 
30
        req.store.flush()
 
31
 
 
32
        self.ctx['req'] = req
 
33
        self.ctx['projectset'] = new_projectset
 
34
        self.ctx['projects'] = []
 
35
        self.ctx['GroupsView'] = GroupsView
 
36
        self.ctx['ProjectSetRESTView'] = ProjectSetRESTView
 
37
 
 
38
        self.template = 'templates/projectset_fragment.html'
 
39
 
 
40
        return {'success': True, 'projectset_id': new_projectset.id}