version inicial de la aplicacion de gestion de compras
[compra.git] / view / items.py
1 import web
2 import db
3 import login
4
5 import datetime
6
7 class List:
8     @login.authenticated
9     def GET(self, *args):
10         orm = web.ctx.orm
11         session = web.ctx.session
12
13         tobuy = orm.query(db.Item).filter(db.Item.tobuy==True).all()
14         items = orm.query(db.Item).filter(db.Item.tobuy==False).all()
15         for i in tobuy:
16             i.date = i.atime.ctime()
17         for i in items:
18             i.date = i.atime.ctime()
19
20         return web.ctx.render.list(tobuy, items)
21
22 class Add:
23     @login.authenticated
24     def GET(self, item):
25         self.logic(item)
26
27     @login.authenticated
28     def POST(self):
29         item = web.input().get("item", "")
30         self.logic(item)
31     
32     def logic(self, item):
33         orm = web.ctx.orm
34         item = db.Item(item)
35         orm.add(item)
36         raise web.seeother("/")
37
38 class Delete:
39     @login.authenticated
40     def GET(self, item):
41         self.logic(item)
42
43     @login.authenticated
44     def POST(self):
45         item = web.input().get("item", "")
46         self.logic(item)
47     
48     def logic(self, item):
49         orm = web.ctx.orm
50         item = orm.query(db.Item).filter(db.Item.name == item).one()
51         orm.delete(item)
52         raise web.seeother("/")
53
54 class Update:
55     @login.authenticated
56     def POST(self):
57         input = web.input()
58         tobuy = [i[6:] for i in input.keys() if i.startswith("tobuy_")]
59         bougth = [i[7:] for i in input.keys() if i.startswith("bought_")]
60
61         orm = web.ctx.orm
62         def update(list, value):
63             for i in list:
64                 item = orm.query(db.Item).filter(db.Item.name == i).one()
65                 item.tobuy = value
66                 if not value:
67                     item.atime = datetime.datetime.now()
68
69                 orm.add(item)
70
71         update(tobuy, True)
72         update(bougth, False)
73
74         raise web.seeother("/")
75