def addboat(self): payload = {} id = string.upper(self.request.get("id")) name = self.request.get("name") passcode = self.request.get("passcode") action = self.request.get("action") boat = None bpayload = {} if action == "edit" or action == "store": boat = Boat.get_by_key_name(id, parent=self.dbuser) if boat != None: payload["id"] = boat.key().name() payload["name"] = boat.boat_name payload["passcode"] = boat.passcode payload["action"] = "store" bpayload = boat.getPayload() for param in [ "yotreps_enabled", "yotreps_email", "reports_enabled", "reports_email", "reports_body", "facebook_enabled", "facebook_email", ]: if self.request.get(param) != "": payload[param] = self.request.get(param) elif boat != None: if bpayload.has_key(param): payload[param] = bpayload[param] # TODO: enable checkboxes in form if appropriate _enabled is on if action == "edit" or name == "" or id == "" or passcode == "": if action != "edit": for param in ["yotreps_email", "reports_email", "facebook_email"]: if self.request.get(param) == "": payload[param] = self.user.email() return self.render("addboat", payload) if action != "store": logging.info("Adding " + name) boat = Boat(key_name=id, parent=self.dbuser) else: logging.info("Edited " + name) boat.boat_name = name boat.passcode = passcode boat.active = True boat.setPayload(payload) logging.info(boat.payload) boat.put() # TODO: Boat with this boat_id needs to be unique! return self.handler.redirect("/list")