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()
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))
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))