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

« back to all changes in this revision

Viewing changes to ivle/database.py

MergedĀ fromĀ trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
 
30
30
from storm.locals import create_database, Store, Int, Unicode, DateTime, \
31
31
                         Reference, ReferenceSet, Bool, Storm, Desc
 
32
from storm.exceptions import NotOneError
32
33
 
33
34
import ivle.conf
34
35
from ivle.worksheet.rst import rst
236
237
    state = Unicode()
237
238
 
238
239
    offerings = ReferenceSet(id, 'Offering.semester_id')
 
240
    enrolments = ReferenceSet(id,
 
241
                              'Offering.semester_id',
 
242
                              'Offering.id',
 
243
                              'Enrolment.offering_id')
239
244
 
240
245
    __init__ = _kwarg_init
241
246
 
291
296
                perms.add('edit')
292
297
        return perms
293
298
 
 
299
    def get_enrolment(self, user):
 
300
        try:
 
301
            enrolment = self.enrolments.find(user=user).one()
 
302
        except NotOneError:
 
303
            enrolment = None
 
304
 
 
305
        return enrolment
 
306
 
294
307
class Enrolment(Storm):
295
308
    __storm_table__ = "enrolment"
296
309
    __storm_primary__ = "user_id", "offering_id"