예제 #1
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))