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

« back to all changes in this revision

Viewing changes to ivle/database.py

  • Committer: William Grant
  • Date: 2009-12-09 09:24:45 UTC
  • mto: This revision was merged to the branch mainline in revision 1396.
  • Revision ID: grantw@unimelb.edu.au-20091209092445-3351kawijoxhnbd1
Add note about the _check_code string->function eval hack.

Show diffs side-by-side

added added

removed removed

Lines of Context:
234
234
        they may do everything. Otherwise they may do nothing.
235
235
        """
236
236
        if user and user.admin or user is self:
237
 
            return set(['view', 'edit', 'submit_project'])
 
237
            return set(['view_public', 'view', 'edit', 'submit_project'])
238
238
        else:
239
 
            return set()
 
239
            return set(['view_public'])
240
240
 
241
241
# SUBJECTS AND ENROLMENTS #
242
242
 
375
375
            if (enrolment and enrolment.role in (u'tutor', u'lecturer')) \
376
376
               or user.admin:
377
377
                perms.add('edit')
 
378
                # XXX Bug #493945 -- should tutors have these permissions?
 
379
                # Potentially move into the next category (lecturer & admin)
 
380
                perms.add('enrol')          # Can see enrolment screen at all
 
381
                perms.add('enrol_student')  # Can enrol students
 
382
            if (enrolment and enrolment.role in (u'lecturer')) or user.admin:
 
383
                perms.add('enrol_tutor')    # Can enrol tutors
 
384
            if user.admin:
 
385
                perms.add('enrol_lecturer') # Can enrol lecturers
378
386
        return perms
379
387
 
380
388
    def get_enrolment(self, user):
391
399
                Enrolment.user_id == User.id,
392
400
                Enrolment.offering_id == self.id,
393
401
                Enrolment.role == role
394
 
                )
 
402
                ).order_by(User.login)
395
403
 
396
404
    @property
397
405
    def students(self):
457
465
        return self.offering.get_permissions(user)
458
466
 
459
467
    @property
 
468
    def is_group(self):
 
469
        return self.max_students_per_group is not None
 
470
 
 
471
    @property
460
472
    def assigned(self):
461
473
        """Get the entities (groups or users) assigned to submit this project.
462
474
 
463
475
        This will be a Storm ResultSet.
464
476
        """
465
477
        #If its a solo project, return everyone in offering
466
 
        if self.max_students_per_group is None:
 
478
        if self.is_group:
 
479
            return self.project_groups
 
480
        else:
467
481
            return self.offering.students
468
 
        else:
469
 
            return self.project_groups
470
482
 
471
483
class Project(Storm):
472
484
    """A student project for which submissions can be made."""