def create_badge_type(badge_key, badge_name, badge_des, account, badge_theme, img_type, imgbuf=None, blob_info=None, perm="private", btype="free", stype="blob", is_enabled="yes"): """ Storage is either using a BadgeImage or through the blobstore api for faster and cheaper serving of images """ blob_key = None storage_type = "blob" badge_image = None download_link = "" if imgbuf: storage_type = "db" badge_image = create_badge_image(badge_key, perm, account, imgbuf, img_type) download_link = get_full_link("badge/d?bk=" + badge_key) elif blob_info: storage_type = "blob" blob_key = blob_info.key() download_link = images.get_serving_url(str(blob_key)) else: logging.error( "Create badge type error: No image to save for badge type") raise badge = Badges(key_name=badge_key, name=badge_name, altText=badge_des, description=badge_des, setType=btype, isEnabled=is_enabled, creator=account, permissions=perm, storageType=storage_type, imageKey=badge_image, blobKey=blob_key, downloadLink=download_link, theme=badge_theme) # Store it as a badge image memcache_db.save_entity(badge, badge_key) return badge