We were filtering by winners investments for finished budget without
having in consideration other filters.
We want the default filter to be `winners` for finished budgets.
Banners were not been shown in certain pages; now
they are.
Spec to check if the banner is been shown correctly
added. Before it was in admins specs, now it has it's
own spec out of admins folder.
Clear instance variable names help understand what's going around when
you're deep 2 or 3 partials. In this case @budget is only used to carry
around the current_budget so @current_budget is more descriptive.
Using `current_budget` directly around would be an alternative, but
maybe not as maintainable in case we want to change which budget is
being shown (for example the drafting one if you're admin).
We only need finished budget's at budget's index "Finished budgets"
section. So we add the `finished` scope to @budgets variable, and rename
it so its clear what it contains.
Also avoid showing the "Finished budgets" section if there is none
Why:
Non-admin users shouldn't be able to access, or know of the existence
of a non-published Budget.
How:
Raising an ActionController::RoutingError (404 error) to simulate the
same behaviour as accesing a non-existing Budget.
We could have used CanCanCan abilities for this but then an user could
be aware of existing but not published Budgets by trying different urls