summaryrefslogtreecommitdiff
path: root/model.py
blob: 903797bf17c4712bc2d7b9ee356a5fbcef3f8eb8 (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
import elixir
from elixir import has_field, belongs_to, has_many, using_options, using_options_defaults
from sqlalchemy import types as T

from functools import partial

elixir.metadata.bind = "sqlite:///test.sqlite"
elixir.metadata.bind.echo = True

has_req_field = partial(has_field, required = True)

class Entity (elixir.Entity):
    using_options(abstract = True)

    using_options_defaults(shortnames = True)

class Category (Entity):
    
    has_field('name', T.String(50), unique = True)

    def __repr__ (self):
        return '<Category "%s">' % self.name

class Expense (Entity):
    using_options(inheritance='multi')

    has_field('description', T.String(50))
    has_req_field('expense', T.Numeric(scale = 2))

    belongs_to('category', of_kind = 'Category', required = True)

class SingleExpense (Expense):
    using_options(inheritance='multi')

    has_req_field('date', T.Date)

class ConstExpense (Expense):
    using_options(inheritance='multi')

    has_req_field('months', T.Integer)
    has_req_field('start', T.Date)
    has_req_field('end', T.Date)

elixir.setup_all()

session = elixir.session

if __name__ == "__main__":
    elixir.create_all()
added dialogs.py; extended some commentsnecoro9-125/+293 2006-10-08Made the testing stuff working too ... I hope ^^ ... removed obsolete-dirnecoro7-145/+113 2006-10-05Added first support for the masking stuff ... and hoping that it is going to ...necoro5-79/+135 2006-10-05Changed changelog / added config-filenecoro2-0/+10 2006-10-05Added preference windownecoro4-49/+155 2006-10-02Corrected comments, structure, bad algorithms etcnecoro4-176/+209 2006-10-02Corrected indention in commentnecoro1-8/+6 2006-10-010.3.3necoro1-0/+6 2006-10-01Implemented an internal db; removed unmerge-bugnecoro2-26/+43 2006-09-30Implemented some new backend functions which speed up the package-list-creati...necoro2-12/+37 2006-09-300.3.2 release; changed font in terminal; added new "masking"-dialognecoro3-11/+36 2006-09-29fixed bugsnecoro4-13/+23 2006-09-29Corrected setup.pynecoro1-1/+1