Пример #1
0
  def get(self):
    self.response.headers['Content-Type'] = 'text/html'
    older_than = int(self.request.get("older_than",
                     datetime.datetime.now().date().toordinal() + 1))
    older_than = datetime.date.fromordinal(older_than)

    body = ""

    oldest = datetime.datetime.now().date().toordinal() + 1

    for e in Entry.all().filter("date <", older_than).order('-date').run(
          limit=20):
      body += e.render()
      oldest = e.date.toordinal()

    nav = """
<div class='row'>
  <div class='span4 offset4'>
    <a href='/?older_than=%d'>Newer</a> -- <a href='/?older_than=%d'>Older</a>
  </div>
</div>""" % (oldest + 41, oldest)

    body = nav + body + nav
    self.response.out.write(indexTemplate.render({
      'title': 'Home',
      'body': body
    }))
Пример #2
0
 def post(self):
   key = self.request.get('key')
   try:
     e = Entry.get(key)
     e.content = self.request.get('content')
     e.put()
     self.redirect("/")
   except Exception as e:
     self.response.out.write(indexTemplate.render({
       'title': 'Append to Entry',
       'body': "Error: No entry for key %s, exception %s" % (key, e)
     }))
Пример #3
0
  def get(self, key):
    e = Entry.get(key)
    body = entryEditTemplate.render({
      'entry_day': e.date.strftime("%A, %d %B"),
      'content': e.content,
      'key': e.key()
    })

    self.response.out.write(indexTemplate.render({
      'title': 'Append to Entry',
      'body': body
    }))
Пример #4
0
 def get(self):
   attachments = ""
   for a in Attachment.all():
     attachments += attachmentTemplate.render({
           'name': a.name,
           'thumbnail': a.thumbnail,
           'key': a.key()
     })
   self.response.out.write(indexTemplate.render({
       'title': 'Attachments',
       'body': attachments,
       'active_page': 'attachments'
   }))
Пример #5
0
  def get(self, ordinal):
    out = ""
    month = date.fromordinal(int(ordinal))
    for e in Entry.all().filter("date >=", month).filter("date <", next_month(month)):
      out += """%s
<form action='/highlights/month/%s' method='POST'>
  <input type='hidden' name='key' value='%s'>
  <input type='submit' value='Pick'>
</form><br><br>""" % (e.render(), ordinal, e.key())

    self.response.out.write(indexTemplate.render({
      'title': 'Highlights - Monthly',
      'body': out,
      'active_page': 'highlights'
    }))
Пример #6
0
  def get(self):
    ideas = []
    for e in Entry.all().order('-date'):
      if "--" in e.content:
        ideas += self.scrape_ideas(e.content)

    body_text = "<ul>\n"
    for idea in ideas:
      body_text += "\t<li>%s</li>\n" % idea
    body_text += "</ul>"

    self.response.out.write(indexTemplate.render({
        'title': 'Ideas',
        'body': body_text,
        'active_page': 'ideas'
    }))
Пример #7
0
  def get(self):
    frequency = 1.0
    if self.request.get('frequency') != '':
      frequency = float(self.request.get('frequency'))

    result = 'no action'
    if random.random() < frequency:
      mail.send_mail(sender='%s <%s>' % (DIARY_NAME, DIARY_EMAIL),
                     to='%s <%s>' % (RECIPIENT_NAME, RECIPIENT_EMAIL),
                     subject='Happiness Check',
                     body='''Please report your current happiness on a scale from 0 to 10, e.g.
7 programming; music
''')
      result = 'happiness check sent'

    self.response.out.write(indexTemplate.render({
        'title': 'Happyness',
        'body': result,
        'active_page': 'happiness'
      }))
Пример #8
0
  def get(self):
    out = ""
    first_entry = Entry.all().order('date').get().date

    month = date(first_entry.year, first_entry.month, 1)
    while month < date.today():
      h = Highlight.all().filter("date =", month).filter("period =", "month").get()

      if h:
        out += "<h2>%s</h2>\n" % month.strftime("%B %Y")
        out += h.entry.render()
      else:
        out += "<a href='/highlights/month/%d'><h2>%s</h2></a>" % (
          month.toordinal(), month.strftime("%B %Y"))
      month = next_month(month)

    self.response.out.write(indexTemplate.render({
      'title': 'Highlights',
      'body': out,
      'active_page': 'highlights'
    }))
Пример #9
0
  def get(self):
    today = datetime.date.today()

    q = Entry.all().filter("date >", today - datetime.timedelta(days=1))
    msg = ""

    if q.count() <= 0:
      q = Entry.all().filter("date =", today - datetime.timedelta(days=30))
      old_entry = ""
      if q.count() > 0:
        old_entry = "\tEntry from 30 days ago\n%s\n\n" % q[0].content

      q = Entry.all().filter("date =", today - datetime.timedelta(days=180))
      if q.count() > 0:
        old_entry += "\tEntry from 180 days ago\n%s\n\n" % q[0].content

      mail.send_mail(sender="%s <%s>" % (DIARY_NAME, DIARY_EMAIL),
                     to="%s <%s>" % (RECIPIENT_NAME, RECIPIENT_EMAIL),
                     subject="Entry reminder for %s" % today.strftime("%b %d"),
                     body="""Don't forget to update your diary!

Remember to include short snippets of important things you did today,
as well as a list of things you are grateful for.

Just respond to this message with todays entry.

%s
-----
diaryentry%dtag
""" % (old_entry, int(time.time())))
      msg = "Reminder sent"
    else:
      msg = "I already have an entry for today"

    self.response.out.write(indexTemplate.render({
        'title': 'Ideas',
        'body': msg,
        'active_page': 'reminder'
    }))
Пример #10
0
  def get(self):
    todos = defaultdict(list)
    for t in ToDo.all().filter('done_time =', None).order('-creation_time'):
      todos[t.category].append(t)
    for t in ToDo.all().filter('done_time >', datetime.datetime.now() -
                               datetime.timedelta(days=7)):
      todos[t.category].append(t)

    body_text = ""
    for category, items in todos.iteritems():
      body_text += "<h2>%s</h2>\n<ul class='todo'>" % category
      for t in items:
        if t.done_time:
          body_text += "\t<li class='done'>%s</li>\n" % t.content
        else:
          body_text += "\t<a href='/todo/finish/%s'><li>%s</li></a>\n" % (
            t.key(), t.content)
      body_text += "</ul>"

    self.response.out.write(indexTemplate.render({
        'title': 'To-Do',
        'body': body_text,
        'active_page': 'todo'
    }))
Пример #11
0
 def get(self):
   self.response.out.write(indexTemplate.render({
     'title': 'Backup',
     'body': backupTemplate.render({'key': BACKUP_KEY}),
     'active_page': 'backup'
   }))