Example #1
0
 def _habit_status(self):
     habits = Habit.All(self.user)
     today = self.user.local_time().date()
     habitday_keys = [
         ndb.Key('HabitDay', HabitDay.ID(h, today), parent=self.user.key)
         for h in habits
     ]
     habitdays = ndb.get_multi(habitday_keys)
     n_habits_done = 0
     habits_committed_undone = []
     habits_done = []
     for hd in habitdays:
         if hd:
             habit = hd.habit.get()
             if hd.committed and not hd.done:
                 if habit:
                     habits_committed_undone.append(habit.name)
             if hd.done:
                 habits_done.append(habit.name)
                 n_habits_done += 1
     if habits:
         if n_habits_done:
             text = "Good work on doing %d %s (%s)!" % (
                 n_habits_done, tools.pluralize('habit', n_habits_done),
                 tools.english_list(habits_done))
         else:
             text = "No habits done yet."
         if habits_committed_undone:
             text += " Don't forget you've committed to %s." % tools.english_list(
                 habits_committed_undone)
     else:
         text = "You haven't added any habits yet. Try saying 'add habit run'"
     return text
Example #2
0
 def list(self, d):
     habits = Habit.All(self.user)
     self.set_response({
         'habits': [habit.json() for habit in habits]
     }, success=True)