'Publishes the subtree under location from the draft branch to the published branch
Returns the newly published item.'

def publish(self, location, user_id, blacklist=None, **kwargs):

    super(DraftVersioningModuleStore, self).copy(user_id, location.course_key.replace(branch=ModuleStoreEnum.BranchName.draft), location.course_key.replace(branch=ModuleStoreEnum.BranchName.published, version_guid=None), [location], blacklist=blacklist)
    self._flag_publish_event(location.course_key)
    return self.get_item(location.for_branch(ModuleStoreEnum.BranchName.published), **kwargs)
