def post(self): user = users.get_current_user() if user is None: self.return_unauthorized() if 'associate' in self.request.POST: current_reader = self.find_current_reader() if current_reader is None: reader_key = self.post_str('reader_key') reader = Reader.get_reader(reader_key) if reader.proposed_email == user.email(): reader.proposed_email = '' reader.emails.append(user.email()) reader.put() self.add_flash( "The email address " + user.email() + " has been successfully associated with this reader.") self.return_see_other( '/view_reader?reader_key=' + str(reader.key())) else: self.return_ok( messages=[ "Can't associate " + user.email() + " with the account " + reader.name + """ because the email address you're signed in with doesn't match the proposed email address."""]) else: self.return_bad_request( messages=[ "The email address " + user.email() + """ is already associated with an account."""]) else: self.return_see_other('/')
def get(self): reader_key = self.get_str("reader_key") reader = Reader.get_reader(reader_key) current_reader = self.require_current_reader() if current_reader.key() != reader.key(): self.return_forbidden() self.return_ok(self.page_fields(reader))
def get(self): reader_key = self.get_str('reader_key') reader = Reader.get_reader(reader_key) current_reader = self.require_current_reader() if current_reader.key() != reader.key(): self.return_forbidden() self.return_ok( { 'reader': reader, 'meters': Meter.gql( "where reader = :1", current_reader).fetch(10)})
def post(self): try: current_reader = self.require_current_reader() reader_key = self.post_str("reader_key") reader = Reader.get_reader(reader_key) if current_reader.key() != reader.key(): self.return_forbidden() if 'remove_email' in self.request.POST: email = self.get_str('email') if email in reader.emails: reader.emails.remove(email) reader.put() fields = self.page_fields(reader) fields['message'] = "Successfully removed email address." self.return_ok(fields) else: raise HTTPBadRequest("""That email isn't associated with the reader.""") elif 'proposed_email' in self.request.POST: proposed_email = self.post_str('proposed_email') reader.proposed_email = proposed_email.strip() reader.put() if len(proposed_email) == 0: message = """Proposed email address successfully set to blank.""" else: message = """Proposed email address set successfully. Now sign out and then sign in using the proposed email address""" self.return_ok(self.page_fields(reader, message)) elif 'delete' in self.request.POST: for meter in Meter.gql("where reader = :1", reader): meter.delete_meter() reader.delete() self.send_found('/welcome') else: name = self.post_str('name') reader.name = name reader.put() self.add_flash('Settings updated successfully.') self.return_see_other( '/view_reader?reader_key=' + str(reader.key())) except HTTPBadRequest as e: self.return_bad_request(self.page_fields(reader, str(e)))