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

« back to all changes in this revision

Viewing changes to ivle/database.py

  • Committer: Matt Giuca
  • Date: 2010-02-25 06:52:48 UTC
  • mto: This revision was merged to the branch mainline in revision 1731.
  • Revision ID: matt.giuca@gmail.com-20100225065248-p1t8oys3olxtwdlg
project-form no longer assumes the type of context; pass an extra projectset value.

Show diffs side-by-side

added added

removed removed

Lines of Context:
325
325
    semester = Reference(semester_id, Semester.id)
326
326
    description = Unicode()
327
327
    url = Unicode()
 
328
    show_worksheet_marks = Bool()
 
329
    worksheet_cutoff = DateTime()
328
330
    groups_student_permissions = Unicode()
329
331
 
330
332
    enrolments = ReferenceSet(id, 'Enrolment.offering_id')
393
395
                perms.add('view_project_submissions')
394
396
                perms.add('admin_groups')
395
397
                perms.add('edit_worksheets')
 
398
                perms.add('view_worksheet_marks')
396
399
                perms.add('edit')           # Can edit projects & details
397
400
                perms.add('enrol')          # Can see enrolment screen at all
398
401
                perms.add('enrol_student')  # Can enrol students
435
438
            newws.identifier = worksheet.identifier
436
439
            newws.name = worksheet.name
437
440
            newws.assessable = worksheet.assessable
 
441
            newws.published = worksheet.published
438
442
            newws.data = worksheet.data
439
443
            newws.format = worksheet.format
440
444
            newws.offering = self
958
962
    identifier = Unicode()
959
963
    name = Unicode()
960
964
    assessable = Bool()
 
965
    published = Bool()
961
966
    data = Unicode()
962
967
    seq_no = Int()
963
968
    format = Unicode()
995
1000
            WorksheetExercise.worksheet == self).remove()
996
1001
 
997
1002
    def get_permissions(self, user, config):
998
 
        # Almost the same permissions as for the offering itself
999
 
        perms = self.offering.get_permissions(user, config)
1000
 
        # However, "edit" permission is derived from the "edit_worksheets"
1001
 
        # permission of the offering
1002
 
        if 'edit_worksheets' in perms:
 
1003
        offering_perms = self.offering.get_permissions(user, config)
 
1004
 
 
1005
        perms = set()
 
1006
 
 
1007
        # Anybody who can view an offering can view a published
 
1008
        # worksheet.
 
1009
        if 'view' in offering_perms and self.published:
 
1010
            perms.add('view')
 
1011
 
 
1012
        # Any worksheet editors can both view and edit.
 
1013
        if 'edit_worksheets' in offering_perms:
 
1014
            perms.add('view')
1003
1015
            perms.add('edit')
1004
 
        else:
1005
 
            perms.discard('edit')
 
1016
 
1006
1017
        return perms
1007
1018
 
1008
1019
    def get_xml(self):
1080
1091
 
1081
1092
    def __repr__(self):
1082
1093
        return "<%s %s by %s at %s>" % (type(self).__name__,
1083
 
            self.exercise.name, self.user.login, self.date.strftime("%c"))
 
1094
            self.worksheet_exercise.exercise.name, self.user.login,
 
1095
            self.date.strftime("%c"))
1084
1096
 
1085
1097
class ExerciseAttempt(ExerciseSave):
1086
1098
    """An attempt at solving an exercise.