summaryrefslogtreecommitdiff
path: root/maconomy/models.py
blob: e9044abae636d7442cde25dd07db2bad8da49ca5 (plain)
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
52
53

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 is_done(self):
        return self.is_submitted() and self.is_approved()
    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)