Пример #1
0
    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))
Пример #2
0
 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)
Пример #3
0
    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))