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

« back to all changes in this revision

Viewing changes to ivle/database.py

Allow hiding of worksheets from students, and hiding of worksheet marks out of 5. Also add column for per-offering worksheet cutoff date, as yet unimplemented.

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')
435
437
            newws.identifier = worksheet.identifier
436
438
            newws.name = worksheet.name
437
439
            newws.assessable = worksheet.assessable
 
440
            newws.published = worksheet.published
438
441
            newws.data = worksheet.data
439
442
            newws.format = worksheet.format
440
443
            newws.offering = self
958
961
    identifier = Unicode()
959
962
    name = Unicode()
960
963
    assessable = Bool()
 
964
    published = Bool()
961
965
    data = Unicode()
962
966
    seq_no = Int()
963
967
    format = Unicode()
995
999
            WorksheetExercise.worksheet == self).remove()
996
1000
 
997
1001
    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:
 
1002
        offering_perms = self.offering.get_permissions(user, config)
 
1003
 
 
1004
        perms = set()
 
1005
 
 
1006
        # Anybody who can view an offering can view a published
 
1007
        # worksheet.
 
1008
        if 'view' in offering_perms and self.published:
 
1009
            perms.add('view')
 
1010
 
 
1011
        # Any worksheet editors can both view and edit.
 
1012
        if 'edit_worksheets' in offering_perms:
 
1013
            perms.add('view')
1003
1014
            perms.add('edit')
1004
 
        else:
1005
 
            perms.discard('edit')
 
1015
 
1006
1016
        return perms
1007
1017
 
1008
1018
    def get_xml(self):