Añadido campo para introducir el coste de la compra.
authordanigm <dani@danigm.net>
Wed, 11 Nov 2009 21:03:12 +0000 (22:03 +0100)
committerdanigm <dani@danigm.net>
Wed, 11 Nov 2009 21:03:12 +0000 (22:03 +0100)
Nueva página para mostrar todas las compras realizadas.

compra.py
db.py
templates/list.html
templates/purchase.html [new file with mode: 0644]
view/items.py

index 2db010f..2402496 100755 (executable)
--- a/compra.py
+++ b/compra.py
@@ -13,6 +13,7 @@ urls = (
         '/delete/(.*)', 'view.items.Delete',
         '/delete', 'view.items.Delete',
         '/update', 'view.items.Update', 
+        '/purchase', 'view.items.Purchase',
         '/prefs', 'view.login.Prefs',
         '/(.*)', 'view.items.List')
 
diff --git a/db.py b/db.py
index b5a1792..3f4e5de 100755 (executable)
--- a/db.py
+++ b/db.py
@@ -10,6 +10,19 @@ from hashlib import sha256 as sha
 Base = declarative_base()
 metadata = Base.metadata
 
+class Purchase(Base):
+    __tablename__ = 'purchase'
+
+    id = Column(Integer, primary_key=True)
+    cost = Column(Numeric)
+    atime = Column(DateTime(), nullable=False, default=datetime.now)
+    items = Column(String(1024), default="")
+
+    def __init__(self, cost, items):
+        self.cost = cost
+        self.items = "|".join(items)
+
+
 class Item(Base):
     __tablename__ = 'item'
 
index 93596c4..8018fce 100644 (file)
@@ -4,7 +4,7 @@ $var title: Lista
 $var cssfiles: /static/css/list.css
 $var jsfiles: /static/js/list.js
 
-<a href="/prefs">prefs</a> | <a href="/logout">salir</a>
+<a href="/purchase">compras</a> | <a href="/prefs">prefs</a> | <a href="/logout">salir</a>
 
 <h2>Lista</h2>
 
@@ -34,6 +34,10 @@ $var jsfiles: /static/js/list.js
             <td><a href="/delete/$item.name">x</a></td>
         </tr>
     </table>
+    <div class="cost">
+        <label for="cost">gastado: </label>
+        <input type="text" id="cost" name="cost"/>
+    </div>
     </div>
 
     <div class="normal">
diff --git a/templates/purchase.html b/templates/purchase.html
new file mode 100644 (file)
index 0000000..6872582
--- /dev/null
@@ -0,0 +1,14 @@
+$def with (purchase)
+
+$var title: Compras
+$var cssfiles: /static/css/list.css
+
+<a href="/">index</a> | <a href="/prefs">prefs</a> | <a href="/logout">salir</a>
+
+<h2>Compras</h2>
+
+<div id="add">
+    $for p in purchase:
+        $p.atime ## $p.cost ## $p.items
+</div>
+
index 5ff5389..06c04f0 100644 (file)
@@ -57,6 +57,7 @@ class Update:
         input = web.input()
         tobuy = [i[6:] for i in input.keys() if i.startswith("tobuy_")]
         bougth = [i[7:] for i in input.keys() if i.startswith("bought_")]
+        cost = input['cost']
 
         orm = web.ctx.orm
         def update(list, value):
@@ -71,5 +72,19 @@ class Update:
         update(tobuy, True)
         update(bougth, False)
 
+        if cost:
+            cost = cost.replace(',','.')
+            purchase = db.Purchase(float(cost), bougth)
+            orm.add(purchase)
+
         raise web.seeother("/")
 
+class Purchase:
+    @login.authenticated
+    def GET(self):
+        orm = web.ctx.orm
+        purchases = orm.query(db.Purchase).all()
+        
+        return web.ctx.render.purchase(purchases)
+
+