class Employee: def __init__(self, id, name, email): self.id = id self.name = name self.email = email @classmethod def from_result(cls, result): id, name, email = result[:3] return cls(id, name, email) def __unicode__(self): return u"{} ({})".format(self.name, self.id) class Timesheet: def __init__(self, week, submitted, approved, employee, approver): self.week = week self.submitted = submitted self.approved = approved self.employee = employee self.approver = approver @classmethod def from_result(cls, result): employee = Employee.from_result(result) week, submitted, approved, approver = result[3:7] return cls(week, submitted, approved, employee, approver) def status(self): return "submitted" if self.is_submitted() else "unsubmitted" def is_submitted(self): return self.submitted == 1 def is_missing(self): return self.submitted is None def is_approved(self): return self.approved == 1 def __str__(self): return self.__unicode__() def __unicode__(self): u"{} ({})".format(self.week, self.status)