예제 #1
0
    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))
예제 #2
0
 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')
예제 #3
0
    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')
예제 #4
0
 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