Example #1
0
    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")