~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: 2009-04-22 04:56:58 UTC
  • Revision ID: matt.giuca@gmail.com-20090422045658-nnfepg0902n3mwtq
ivle.makeuser: Fixed odd code which would create the home directory, then
    immediately clobber it by restoring the backup.
    This broke in Python 2.6 because the behaviour of shutil.move changed.
    (Commented).

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.base.rest import (XHTMLRESTView, named_operation,
7
 
                                   require_permission)
8
 
 
9
 
from ivle.webapp.errors import NotFound
10
 
 
11
 
class OfferingRESTView(XHTMLRESTView):
12
 
    """REST view for a subject.
13
 
      
14
 
    This view allows for added a ProjectSet to an existing subject."""
15
 
 
16
 
    template = "subject.html"
17
 
 
18
 
    def __init__(self, req, subject, year, semester):
19
 
 
20
 
        self.context = req.store.find(Offering,
21
 
                Offering.subject_id == Subject.id,
22
 
                Subject.short_name == unicode(subject),
23
 
                Offering.semester_id == Semester.id,
24
 
                Semester.year == unicode(year),
25
 
                Semester.semester == unicode(semester)).one()
26
 
 
27
 
        if self.context is None:
28
 
            raise NotFound()
29
 
 
30
 
    def new_project_url(self, projectset):
31
 
        return "/api/subjects/" + str(self.context.subject.id) + "/" +\
32
 
               self.context.semester.year + "/" +\
33
 
               self.context.semester.semester + "/+projectsets/" +\
34
 
               (str(projectset.id)) + "/+projects/+new"
35
 
 
36
 
    @named_operation('edit')
37
 
    def add_projectset(self, req, group_size):
38
 
        """Add a new ProjectSet"""
39
 
        new_projectset = ProjectSet()
40
 
        new_projectset.max_students_per_group = int(group_size)
41
 
        new_projectset.offering = self.context
42
 
 
43
 
        req.store.add(new_projectset)
44
 
        req.store.flush()
45
 
 
46
 
        self.ctx['group_size'] = new_projectset.max_students_per_group
47
 
        self.ctx['projectset_id'] = new_projectset.id
48
 
        self.ctx['projects'] = []
49
 
        self.ctx['new_project_url'] = self.new_project_url(new_projectset)
50
 
 
51
 
        self.template = 'templates/projectset_fragment.html'
52
 
 
53
 
        return {'success': True, 'projectset_id': new_projectset.id}