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

« back to all changes in this revision

Viewing changes to ivle/database.py

Semesters now have separate URL name, display name and code attributes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
150
150
            Offering.semester_id == Semester.id,
151
151
            Offering.subject_id == Subject.id).order_by(
152
152
                Desc(Semester.year),
153
 
                Desc(Semester.semester),
 
153
                Desc(Semester.display_name),
154
154
                Desc(Subject.code)
155
155
            )
156
156
 
298
298
        """
299
299
        return self.offerings.find(Offering.semester_id == Semester.id,
300
300
                               Semester.year == unicode(year),
301
 
                               Semester.semester == unicode(semester)).one()
 
301
                               Semester.url_name == unicode(semester)).one()
302
302
 
303
303
class Semester(Storm):
304
304
    """A semester in which subjects can be run."""
307
307
 
308
308
    id = Int(primary=True, name="semesterid")
309
309
    year = Unicode()
310
 
    semester = Unicode()
 
310
    code = Unicode()
 
311
    url_name = Unicode()
 
312
    display_name = Unicode()
311
313
    state = Unicode()
312
314
 
313
315
    offerings = ReferenceSet(id, 'Offering.semester_id')
319
321
    __init__ = _kwarg_init
320
322
 
321
323
    def __repr__(self):
322
 
        return "<%s %s/%s>" % (type(self).__name__, self.year, self.semester)
 
324
        return "<%s %s/%s>" % (type(self).__name__, self.year, self.code)
323
325
 
324
326
class Offering(Storm):
325
327
    """An offering of a subject in a particular semester."""
744
746
        path = 'groups/%s_%s_%s_%s' % (
745
747
                self.project_set.offering.subject.short_name,
746
748
                self.project_set.offering.semester.year,
747
 
                self.project_set.offering.semester.semester,
 
749
                self.project_set.offering.semester.url_name,
748
750
                self.name
749
751
                )
750
752
        return urlparse.urljoin(url, path)