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

« back to all changes in this revision

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

  • Committer: David Coles
  • Date: 2010-07-28 10:52:48 UTC
  • mfrom: (1791.2.10 mediahandlers)
  • Revision ID: coles.david@gmail.com-20100728105248-zvbn9g72v1nsskvd
A series of HTML5 based media handlers using the <audio> and <video> tags.  
This replaces the previous page that just showed a download link (which is 
already available on the menu).

Also solves issue where media files were downloaded by the client twice (once 
in an AJAX request intended only for text).

Known issues:
    * Bug #588285: External BHO will not be able to play media due to not
      having IVLE cookie.
    * Bug #610745: Does not correctly preview revisions
    * Bug #610780: Ogg media does not work in Chromium

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}