コード例 #1
0
    def saveDebt(self, serializedFormValues):
        from tuition.utils.manager import AppManager
        from tuition.tools.forms import DebtForm
        from tuition.tools.models import Debt, Expenses

        modelsToPut = []
        savedExpenseKey = None
        savedDebtKey = None
        form = DebtForm(data=serializedFormValues)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        if form.is_valid():
            dictToSave = {
                'user': loggedInEmployee.key(),
                'type': form.cleaned_data['type'],
                'amount': form.cleaned_data['amount'],
                'incurredDate': form.cleaned_data['incurredDate'],
                'returnDate': form.cleaned_data['returnDate'],
                'expenseOfMonth': form.cleaned_data['expenseOfMonth'],
                'hasReturned': form.cleaned_data['hasReturned'],
                'comments': form.cleaned_data['comments']
            }
            newDebt = Debt(**dictToSave)
            modelsToPut.append(newDebt)

            if form.cleaned_data['hasReturned']:
                dictToSave = {
                    'user': loggedInEmployee.key(),
                    'type': 'Debt Return',
                    'amount': newDebt.amount,
                    'dateOfExpense': form.cleaned_data['expenseOfMonth'],
                    'comments': ''
                }
                newExpense = Expenses(**dictToSave)
                modelsToPut.append(newExpense)

            if len(modelsToPut) > 1:
                savedDebtKey, savedExpenseKey = db.put(modelsToPut)
            elif len(modelsToPut) == 1:
                savedDebtKey = db.put(modelsToPut)
            return self.respond(isSaved=True,
                                savedDebtKey=str(savedDebtKey),
                                savedExpenseKey=str(savedExpenseKey),
                                savedDebt=newDebt.toDict)
        else:
            return self.respond(isSaved=False, errors=form.errors)