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 }))
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) }))
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 }))
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' }))
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' }))
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' }))
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' }))
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' }))
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' }))
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' }))
def get(self): self.response.out.write(indexTemplate.render({ 'title': 'Backup', 'body': backupTemplate.render({'key': BACKUP_KEY}), 'active_page': 'backup' }))