]> asedeno.scripts.mit.edu Git - bluechips.git/blob - bluechips/controllers/transfer.py
brought up to date with latest sqlalchemy conventions
[bluechips.git] / bluechips / controllers / transfer.py
1 """
2 Handle transfers
3 """
4
5 import logging
6
7 from bluechips.lib.base import *
8 from bluechips.widgets import transfer
9
10 from pylons import request
11
12 log = logging.getLogger(__name__)
13
14 class TransferController(BaseController):
15     def index(self):
16         c.title = 'Add a New Transfer'
17         
18         c.transfer = dict()
19         c.transfer['debtor'] = request.environ['user']
20         
21         return render('/transfer/index.mako')
22     
23     def edit(self, id):
24         c.title = 'Edit a Transfer'
25         
26         c.transfer = meta.Session.query(model.Transfer).get(id)
27         
28         return render('/transfer/index.mako')
29     
30     @validate(form=transfer.new_transfer_form, error_handler='index')
31     def update(self, id=None):
32         # Validate the submission
33         if not valid(self, transfer.new_transfer_form):
34             if id is None:
35                 return self.index()
36             else:
37                 return self.edit(id)
38         
39         if id is None:
40             t = model.Transfer()
41             meta.Session.add(t)
42         else:
43             t = meta.Session.query(model.Transfer).get(id)
44         
45         update_sar(t, self.form_result)
46         meta.Session.commit()
47         
48         h.flash('Transfer recorded.')
49         
50         return h.redirect_to('/')