def _handler(self, post=False): user = users.get_current_user() if user: if post: form = IncomeForm(user, data=self.request.POST) if form.is_valid(): transaction = form.save(commit=False) transaction.account = transaction.customer.account transaction.user = user transaction.income = True transaction.put() self.redirect(self.request.uri) else: form = IncomeForm(user) start, end = get_start_end_range(self.request) account_key = self.request.get('account', None) filter_form = FilterForm(user) filter_form.fields['start'].initial = start filter_form.fields['end'].initial = end filter_form.fields['account'].initial = account_key incomes = Transaction.all()\ .filter('user ='******'income =', True)\ .filter('date >=', start)\ .filter('date <=', end) if account_key: incomes = incomes.filter('account =', Account.get(account_key)) incomes = incomes.order('-date').fetch(1000) prefetch_refprops(incomes, Transaction.account, Transaction.customer) path = os.path.join(os.path.dirname(__file__), 'templates/incomes.html') self.response.out.write(template.render(path, { 'start': start, 'end': end, 'filter_form': filter_form, 'incomes': incomes, 'form': form, 'user': user, 'js_data': calc_expenses_js_data(incomes), 'total': sum([income.value for income in incomes]), 'logout_url': users.create_logout_url("/") })) else: self.redirect(users.create_login_url(self.request.uri))
def post(self): profile = self.get_profile() nickname = self.request.get('nickname') if nickname: profile.nickname = nickname profile.put() ledger_title = self.request.get('title') clicked_btn = self.request.get('accept', None) if clicked_btn is None: clicked_btn = self.request.get('decline', None) if ledger_title and clicked_btn in ('accept', 'decline'): models.prefetch_refprops(profile.invite_set, models.LedgerInvites.ledger) for invite in profile.invite_set: if invite.ledger.title == ledger_title: if clicked_btn == 'accept': models.LedgerParticipants(profile=profile, ledger=invite.ledger).put() invite.delete() self.redirect_to('profile')
def add_purchase_values(self, purchase=False): """Add products and default products associated with this purchase (if given) to the template. Kwargs: purchase entity""" products = models.Product.all().fetch(1000) self.template_values.update({'products': products, 'purchase': True}) if purchase: #add default items if they are already in purchase purchase_items = [x for x in purchase.items] if purchase_items: purchase_items = models.prefetch_refprops( purchase_items, models.PurchaseItem.product) default_products = [] for purchase_item in purchase_items: #product_key = models.PurchaseItem.product.get_value_for_datastore(purchase_item) for product in self.template_values['products']: if purchase_item.product.key() == product.key(): #if product_key == product.key(): #check product key from PurchaseItem with product keys in list self.template_values['products'].remove(product) default_products.append(purchase_item.product) self.template_values.update( {'default_products': default_products}) return