]> asedeno.scripts.mit.edu Git - bluechips.git/commitdiff
default to an even split among residents again
authorScott Torborg <scott@crookedmedia.com>
Wed, 4 Nov 2009 07:14:40 +0000 (21:14 -1000)
committerScott Torborg <scott@crookedmedia.com>
Wed, 4 Nov 2009 07:14:40 +0000 (21:14 -1000)
bluechips/controllers/spend.py
bluechips/templates/spend/index.mako

index 3d5f82abc0ed178fbe8b3e7c4e242250539bf393..57c07b80f2718d93f3a0537e32b7b6824cda5e35 100644 (file)
@@ -47,6 +47,18 @@ class SpendController(BaseController):
             c.title = 'Add a New Expenditure'
             c.expenditure = model.Expenditure()
             c.expenditure.spender_id = request.environ['user'].id
+
+            num_residents = meta.Session.query(model.User).\
+                    filter_by(resident=True).count()
+            # Pre-populate split percentages for an even split.
+            c.values = {}
+            for ii, user_row in enumerate(c.users):
+                user_id, user = user_row
+                if user.resident:
+                    val = Decimal(100) / Decimal(num_residents)
+                else:
+                    val = 0
+                c.values['shares-%d.amount' % ii] = val
         else:
             c.title = 'Edit an Expenditure'
             c.expenditure = meta.Session.query(model.Expenditure).get(id)
index 6198b0fe7531f973db62b8d5246dd95a13123834..dc2f606070dd8a4cd8164164092674fd23ab16d7 100644 (file)
         try:
             percent = c.values['shares-%d.amount' % ii]
         except TypeError:
-            if c.id != '':
-                try:
-                    share = [s.share for s in c.expenditure.splits if s.user == user][0]
-                    percent = (Decimal(100) * Decimal(int(share)) / Decimal(int(c.expenditure.amount))).quantize(Decimal("0.001"))
-                except IndexError:
-                    percent = 0
-            else:
-                if user == request.environ['user']:
-                    percent = 1
-                else:
-                    percent = 0
+            try:
+                share = [s.share for s in c.expenditure.splits if s.user == user][0]
+                percent = (Decimal(100) * Decimal(int(share)) / Decimal(int(c.expenditure.amount))).quantize(Decimal("0.001"))
+            except IndexError:
+                percent = 0
       %>
       <tr>
         <th>