示例#1
0
def get_entries_by_date(uid):
    """Given a user, get the user's entries by date."""
    from ec import et
    entries = get_entries_for_user(uid)
    by_date = {}
    for entry in entries:
        by_date.setdefault(entry.date, [])
        by_date[entry.date].append(entry)
        entry['exercise_type'] = et.get_exercise_type(entry.exercise_type_id)
        entry['data_points'] = get_data_points_for_entry(entry.id)
        for data_point in entry['data_points']:
            data_point['measure'] = et.get_measure(data_point.measure_id)

    return sorted(by_date.items(), reverse=True)
示例#2
0
    def _on_get_user(self, user, error=None):
        if error:
            self.render("templates/error-page.html", error=error)
            return

        exercise_type = et.get_exercise_type(
            int(self.get_argument("et")))

        date = datetime.datetime.strptime(
            self.get_argument('date'),
            "%Y-%m-%d")

        comment = self.get_argument("comment","")
        share = self.get_argument("share", None) == "share"

        self.entry_id = ec.entries.create_entry(
            self.current_user.id,
            date,
            exercise_type.id,
            comment)

        measures = et.get_measures_for_exercise_type(exercise_type.id)
        txt = []
        for measure in measures:
            value = self.get_argument("measure-%s-value" % measure.id, None)
            if value:
                ec.entries.create_data_point(
                    self.entry_id, measure.id, value)
                txt.append('%s %s' % (value, measure.unit))
        description = '{0[first_name]} just did some {1.name}'.format(user, exercise_type)
        description += ' (%s) for the Exercise Challenge!' % ', '.join(txt)

        if share:
            link = "http://www.exercisechallenge.org/users/%s/entries/%s" % (
                self.current_user.fbid, self.entry_id)

            fb.publish(self.current_user.fbid,
                       self.current_user,
                       self.async_callback(self._on_share),
                       message=comment,
                       link=link,
                       description=description,
                       name="Exercise Challenge")
        else:
            self.redirect('/home')
示例#3
0
 def render(self, date, entries, can_delete=False):
     if entries:
         user = ec.users.get_user(entries[0].user_id)
     else:
         user = None
     for entry in entries:
         if 'exercise_type' not in entry:
             entry['exercise_type'] = et.get_exercise_type(entry.exercise_type_id)
         if 'data_points' not in entry:
             entry['data_points'] = ec.entries.get_data_points_for_entry(entry.id)
         for data_point in entry['data_points']:
             if 'measure' not in data_point:
                 data_point['measure'] = et.get_measure(data_point.measure_id)
     return super(EntriesBox, self).render(
         legend=date.strftime("%B %d"),
         content=self.render_string(
             "templates/ui/entries-list.html",
             entries=entries,
             user=user,
             can_delete=can_delete))