def save_or_update(request): req = request.REQUEST try: e = fromParams(req) except ValidationError, e: data = '{"success":false, "msg": "%s"}' % ("".join(e.messages)) return data values = {'text':e.text,'date':req['date'], 'amount': float(e.amount)} if e.id: data = '{"success":true, "msg": "%s"}' % (_('Updated expense <b>%(text)s</b> $ %(amount).2f [<b>%(date)s</b>].') % values) else: data = '{"success":true, "msg": "%s"}' % (_('Created expense <b>%(text)s</b> $ %(amount).2f [<b>%(date)s</b>].') % values) try: e.save() except _mysql_exceptions.Warning: pass except Exception, e1: data = '{"success":false, "msg": "%s"}' % (e1.args) return data @json_response def delete(request): e = Expense(pk=request.REQUEST['id']) try: e.delete() data = '{"success":true}' except Exception, e1: data = '{"success":false, "msg": "%s"}' % (e1.args)
from django.conf import settings class SyncServiceClass(object): def __init__(self): self.server = xmlrpclib.ServerProxy(settings.RPC_HOST).app def sync_expenses(self): try: data = self.server.getData() except Exception, e: raise else: if data: for e in data: expense = Expense() s = SubCategory.objects.get(pk=e['subCategory']) p = PaymentType.objects.get(pk=e['paymentType']) if e['text']: expense.text = e['text'] else: expense.text = s.name expense.subCategory=s expense.paymentType=p expense.date=e['date'] expense.amount=e['amount'] expense.save() return len(data) else: return 0