def edit_flags(self): ''' Super ugly code, yes - Edit existing flags in the database ''' flag = Flag.by_uuid(self.get_argument('uuid', '')) if flag is not None: try: name = self.get_argument('name', '') if flag.name != name: if Flag.by_name(name) is None: logging.info("Updated flag name %s -> %s" % (flag.name, name,) ) flag.name = name else: raise ValueError("Flag name already exists") token = self.get_argument('token', '') if flag.token != token: if Flag.by_token(token) is None: logging.info("Updated %s's token %s -> %s" % (flag.name, flag.token, token) ) flag.token = token else: raise ValueError("Token is not unique") description = self.get_argument('description', '') if flag._description != description: logging.info("Updated %s's description %s -> %s" % (flag.name, flag._description, description,) ) flag.description = description flag.value = self.get_argument('value', '') flag.capture_message = self.get_argument('capture_message', '') box = Box.by_uuid(self.get_argument('box_uuid', '')) if box is not None and flag not in box.flags: logging.info("Updated %s's box %d -> %d" % (flag.name, flag.box_id, box.id) ) flag.box_id = box.id elif box is None: raise ValueError("Box does not exist") self.dbsession.add(flag) self.dbsession.commit() self.redirect("/admin/view/game_objects") except ValueError as error: self.render("admin/view/game_objects.html", errors=["%s" % error]) else: self.render("admin/view/game_objects.html", errors=["Flag does not exist"] )