1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
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(unicode(self.name,"ISO-8859-1"), 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 status_summary(self):
status = u"[OK]"
if self.is_missing():
status = u"[Missing]"
elif not self.is_submitted():
status = u"[Unsubmitted]"
elif not self.is_approved():
status = u"[Not approved]"
return u"{} {}".format(status, self.employee)
def __unicode__(self):
u"{} ({})".format(self.week, self.status)
|