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

« back to all changes in this revision

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

  • Committer: mattgiuca
  • Date: 2008-02-19 08:26:11 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:509
common.db: Rewrote user_authenticate to return 3 values (True, false, None)
    Now returns False if the password did not match, None if the password
    field is NULL (None implying a soft failure, with the possibility of
    validating against LDAP or something else).

auth.authenticate: Rewrote this module with a new plugin interface
    (as discussed with Tom Conway). Allows successive modules to try to
    authenticate the user.
    Changed the authenticate function interface: Now raises an AuthError
    when auth fails, instead of returning None.

dispatch.login: Handle new auth interface (exception catch).
    Auth is now able to provide an error message, in the exception.
    The exception message is displayed as an error to the user.

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}