So what is your proposal in this case?

I don't like 'is_shown' because the method doe's not return if the widget is on the dashbord, but that it should be there. Also there are other cases where this method returns True, but the Widgets is not on the dashboard. For Example when it is deactivated in the session.

I also don't like 'is_enabled' because this sounds more, that the widget is enabled by the user in the session.

I don't like 'is_displayed' neither. Here are the same arguments then is_shown. It is not displayed when the method is called and and when it was deactivated be the user, it is not displayed, even when 'is_displayed' returns True.

What the method does (according to your docstring) is to check if the user is allowed to see the widget. A synonym for that is, that the user has the permission to see the Widget. So I still like the name 'has_permission'. You had two counter arguments. First, it's sound like the Widget has some permissions. But the name is just a shortcut for the docstring and you always can misunderstand a function name without reading the docstring. The second argument is, that some Widgets use the method for other thinks. But they should only use it according to the docstring. ```bool(self.get_context())``` has nothing to do with the question, if the user is allowed to see the widget. So the widget should find another way to implement this, or you should extend the API for that case.