def get(self, name=None): user = users.get_current_user() if user and (user.email() in ACTIVE_USER_EMAILS or users.is_current_user_admin()): if name is None: # generic reminders page - list all reminders reminders = Reminders.all().fetch(50) template_values = { 'page':{'title':"Reminders"}, 'user':user, 'active_tab':"reminders", 'user_emails': ACTIVE_USER_EMAILS, 'users': ACTIVE_USERS, 'reminders':reminders } template = JINJA_ENVIRONMENT.get_template('reminders/index.html') self.response.write(template.render(template_values)) pass else: # individual reminder reminder = Reminders.get_or_insert(key_name=name) template_values = { 'page':{'title':reminder.description}, 'user':user, 'active_tab':"reminders", 'reminder':reminder } template = JINJA_ENVIRONMENT.get_template('reminders/reminder.html') self.response.write(template.render(template_values)) elif (user): template_values = {'logout_url': users.create_logout_url("/")} template = JINJA_ENVIRONMENT.get_template('403.html') self.response.write(template.render(template_values)) else: self.redirect(users.create_login_url(self.request.uri))
def get(self): reminders = Reminders.gql("WHERE lastdismissed < :1", datetime.datetime.today().replace(day=1, hour=0, minute=0, second=0, microsecond=0)).fetch(50) mail_html = "" email_outputs = "" if(not reminders == None): template = JINJA_EMAIL_ENVIRONMENT.get_template('template.html') css_fh = open("email-templates/css/bootstrap-email.min.css", "r") bootstrap_for_email_css = css_fh.read() css_fh.close() reminder_template = JINJA_EMAIL_ENVIRONMENT.get_template('reminder_template.html') for reminder in reminders: reminder_template_values = { 'reminder':reminder, 'reminder_url':self.request.host_url + "/reminders/" + reminder.key().id_or_name(), } email_body = reminder_template.render(reminder_template_values) template_values = { 'email_title':'Rent Payment Reminder', 'bootstrap_for_email_css': bootstrap_for_email_css, 'website_title':'3 Idiots Flat', 'home_url':self.request.host_url, 'login_url': self.request.host_url + users.create_login_url(self.request.host_url), 'email_body':email_body, 'email_copy_right': '@copyright: 3 Idiots Flat' } mail_html = template.render(template_values) text_email_body = re.sub(r'<[^>]*?>', '', email_body) # #TODO: change email address mail.send_mail(sender=SENDER_EMAIL, to=",".join(ACTIVE_USER_EMAILS), subject="Rent Payment Reminder", body=text_email_body, html=mail_html) email_outputs += text_email_body self.response.write(email_outputs)
def post(self, name=None): user = users.get_current_user() if user and (user.email() in ACTIVE_USER_EMAILS or users.is_current_user_admin()): if name is None: # Create New Reminder title = self.request.get("title") if title == None or title == "": self.response.write("Title cannot be empty or None") return # TODO: allow selective reminders existing_reminder = Reminders.get_by_key_name(title) if(existing_reminder == None): reminder = Reminders(key_name=title) reminder.description = self.request.get("description") reminder.put() self.redirect("/reminders/" + title) else: self.response.write("Key Already Exists") else: # name is available, individual reminder reminder = Reminders.get_by_key_name(name) if(reminder == None): template = JINJA_ENVIRONMENT.get_template('404.html') self.response.write(template.render({})) else: # update the reminder if(self.request.get("do") == "Mark Completed"): # complete the reminder reminder.lastdismissed = datetime.datetime.now() reminder.lastupdated = datetime.datetime.now() reminder.snooze = None reminder.save() reminderhistory = ReminderHistory(reminder=reminder) reminderhistory.remarks = self.request.get("remarks") reminderhistory.updatedby = user reminderhistory.update = ReminderHistory.UPDATE_DISMISS reminderhistory.put() self.redirect(self.request.uri) elif(self.request.get("do") == "Snooze"): # update the reminder reminder.lastupdated = datetime.datetime.now() reminder.snooze = int(self.request.get("snooze")) reminder.save() reminderhistory = ReminderHistory(reminder=reminder) reminderhistory.remarks = self.request.get("remarks") reminderhistory.updatedby = user reminderhistory.update = ReminderHistory.UPDATE_SNOOZE reminderhistory.put() self.redirect(self.request.uri) else: template = JINJA_ENVIRONMENT.get_template('error.html') self.response.write(template.render({})) elif (user): template_values = {'logout_url': users.create_logout_url("/")} template = JINJA_ENVIRONMENT.get_template('403.html') self.response.write(template.render(template_values)) else: self.redirect(users.create_login_url(self.request.uri))