Пример #1
0
    def get_user_expenses(cls, month, year):
        """

        """
        first_day = date(year, month, 1)
        if month == 12:
            last_day = date(year + 1, 1, 1)
        else:
            last_day = date(year, month + 1, 1)

        logging.info("load user expenses between %s and %s" %
                     (first_day.strftime('%d %b %Y'), last_day.strftime('%d %b %Y')))

        q = Expenses.query(ancestor=expenses_key(month, year))
        q.filter(ndb.AND(Expenses.date >= first_day, Expenses.date < last_day))

        #query for old data that had no ancestor (before migration to High Replication Datastore)
        q_old = Expenses.query(ndb.AND(Expenses.date >= first_day, Expenses.date < last_day))

        users_expenses = dict()
        keys = set()
        if users_helper.is_autorized():
            # always start with the current user
            currentUser = users.get_current_user().nickname()
            users_expenses[currentUser] = UserExpenses(currentUser)

            x = 0
            #TODO Hem refactor this ugly code
            for exp in q.fetch(500):
                exp.update_urlsafe()
                keys.add(exp.urlsafe)
                user_nickname = exp.user.nickname()
                if user_nickname not in users_expenses.keys():
                    users_expenses[user_nickname] = UserExpenses(user_nickname)
                users_expenses[user_nickname].add(exp)
                x += 1
            logging.info('%d expenses with ancestor', x)

            x = 0
            for exp in q_old.fetch(500):
                exp.update_urlsafe()
                if exp.urlsafe not in keys:
                    user_nickname = exp.user.nickname()
                    if user_nickname not in users_expenses.keys():
                        users_expenses[user_nickname] = UserExpenses(user_nickname)
                    users_expenses[user_nickname].add(exp)
                    x += 1
            logging.info('%d expenses with no ancestor', x)

        for usr in users_expenses.keys():
            users_expenses[usr].taxratio = cls.get_tax_ratio(usr, year)
            users_expenses[usr].expenses = sorted(users_expenses[usr].expenses, key=lambda e: e.date)

        return users_expenses.values()
Пример #2
0
 def get(self):
     logging.info("coucou")
     if users_helper.is_autorized():
         urlsafe = self.request.get("urlsafe")
         if urlsafe != "" and urlsafe is not None:
             try:
                 key = ndb.Key(urlsafe=urlsafe)
                 logging.info(key)
                 if key is not None:
                     key.delete()
             except:
                 logging.error("ouch... this %s is not a valid value for urlsafe" % urlsafe)
         month = self.request.get("mois")
         year = self.request.get("annee")
         self.redirect("/comptes?mois=%s&annee=%s" % (month, year))
Пример #3
0
 def get(self):
     if users_helper.is_autorized():
         cookie = self.getCookieValue()
         month = cookie["month"]
         year = cookie["year"]
         template_values = {
             'allbalances': self.getAllBalances(),
             'selectedmonth': month,
             'selectedyear': year,
             'debtor': self.debtor,
             'incredit': self.incredit,
             'balance': self.balance,
             'logouturl': users.create_logout_url("/"),
             'currentuser': users.get_current_user().nickname()
         }
         path = os.path.join(os.path.dirname(__file__), '../templates/bilan.html')
         self.response.out.write(template.render(path, template_values))
     else:
         self.redirect(users.create_login_url(self.request.uri))