Ran into this issue tonight and thought I should share my diagnosis in case it helps others...
When the Control Panel has issues in DNN7 and wont allow you to go into Edit mode, add modules, or select various other options it is usually because there are problems with the AJAX service requests that the Control Panel needs to make to perform those actions. If you hit f12 in your browser you may even see a bunch of Javascript errors that are being generated by the page when it attempts to make the service calls. This would lead you to believe it is a client-side problem, so you may try doing a browser refresh or incrementing the Version in Client Resource Management. But if you login to another browser you will notice that the problem still exists... so it is clearly a server-side issue.
In my particular case it was caused by a custom HTTP Module. Since HTTP Modules run on every request, there need to be written very carefully so that they only affect certain types of requests. If they are not careful, they can affect the behavior of AJAX service requests. In my case the HTTP Module was throwing errors for service requests because many of these requests do not have DNN Context ( ie. PortalSettings ). And in many cases the unhandled errors in HTTP Modules will simply be swallowed by the system and never written to the Event Log. This leads to phantom problems which are very difficult to diagnose.
In my case I had to remove the registration for the HTTP Module from my web.config and immediately my Control Panel began to work perfectly again. Then I was able to review the code of my custom HTTP Module, identify the problem, and ensure it only processed requests for "default.aspx" that had valid DNN Context.
The common solution I have seen is to set unAllManagedModulesForAllRequests="true" - and although this can resolve the problem in some cases, it is a bit like ingesting all of the medicine in your medicine cabinet to fight a common cold. It is generally better practice to identify the specific problem and resolve it so that the rest of the system is not affected.