diff --git a/app/views/budgets/investments/_comments.html.erb b/app/views/budgets/investments/_comments.html.erb new file mode 100644 index 000000000..bc5ad6540 --- /dev/null +++ b/app/views/budgets/investments/_comments.html.erb @@ -0,0 +1,41 @@ +<% commentable = comment_tree.commentable %> +<% current_order = comment_tree.order %> + +<% cache [locale_and_user_status, current_order, commentable_cache_key(commentable), comment_tree.comments, comment_tree.comment_authors, commentable.comments_count, comment_flags] do %> +
+
+
+ + <%= render 'shared/wide_order_selector', i18n_namespace: "comments" %> + + <% if user_signed_in? %> + <% if comments_closed_for_commentable?(commentable) %> +
+
+ <%= comments_closed_text(commentable) %> +
+ <% elsif require_verified_resident_for_commentable?(commentable, current_user) %> +
+
+ <%= t("comments.verified_only", verify_account: link_to(t("comments.verify_account"), verification_path )).html_safe %> +
+ <% else %> + <%= render 'comments/form', {commentable: commentable, parent_id: nil, toggeable: false} %> + <% end %> + <% else %> +
+
+ <%= t("debates.show.login_to_comment", + signin: link_to(t("votes.signin"), new_user_session_path), + signup: link_to(t("votes.signup"), new_user_registration_path)).html_safe %> +
+ <% end %> + + <% comment_tree.root_comments.each do |comment| %> + <%= render 'comments/comment', {comment: comment, comment_flags: comment_flags} %> + <% end %> + <%= paginate comment_tree.root_comments %> +
+
+
+<% end %> diff --git a/app/views/budgets/investments/_filter_subnav.html.erb b/app/views/budgets/investments/_filter_subnav.html.erb new file mode 100644 index 000000000..7fc87fc82 --- /dev/null +++ b/app/views/budgets/investments/_filter_subnav.html.erb @@ -0,0 +1,22 @@ +
+
+ +
+
diff --git a/app/views/budgets/investments/_milestones.html.erb b/app/views/budgets/investments/_milestones.html.erb new file mode 100644 index 000000000..36787e0eb --- /dev/null +++ b/app/views/budgets/investments/_milestones.html.erb @@ -0,0 +1,16 @@ +
+
+
+ <% if @investment.milestones.blank? %> +
+ <%= t('budgets.investments.show.no_milestones') %> +
+ <% end %> + + <% @investment.milestones.each do |milestone| %> +

<%= milestone.title %>

+

<%= milestone.description %>

+ <% end %> +
+
+
diff --git a/app/views/budgets/investments/show.html.erb b/app/views/budgets/investments/show.html.erb index 73861697e..dede17d66 100644 --- a/app/views/budgets/investments/show.html.erb +++ b/app/views/budgets/investments/show.html.erb @@ -10,4 +10,11 @@ ballot: @ballot } %> -<%= render partial: '/comments/comment_tree', locals: { comment_tree: @comment_tree, comment_flags: @comment_flags } %> +
+ <%= render "budgets/investments/filter_subnav" %> + <%= render "budgets/investments/milestones" %> + +
+ <%= render partial: 'budgets/investments/comments', locals: { comment_tree: @comment_tree, comment_flags: @comment_flags } %> +
+
diff --git a/config/locales/budgets.en.yml b/config/locales/budgets.en.yml index 905ccce7e..15fb814d6 100644 --- a/config/locales/budgets.en.yml +++ b/config/locales/budgets.en.yml @@ -93,6 +93,9 @@ en: supports: Supports votes: Votes price: Price + comments_tab: Comments + milestones_tab: Milestones + no_milestones: Don't have defined milestones wrong_price_format: Only integer numbers investment: add: Vote @@ -131,4 +134,4 @@ en: price: Cost amount_available: Available budget accepted: "Accepted spending proposal: " - discarded: "Discarded spending proposal: " \ No newline at end of file + discarded: "Discarded spending proposal: " diff --git a/config/locales/budgets.es.yml b/config/locales/budgets.es.yml index 38f8601e8..fce746e39 100644 --- a/config/locales/budgets.es.yml +++ b/config/locales/budgets.es.yml @@ -93,6 +93,9 @@ es: supports: Apoyos votes: Votos price: Coste + comments_tab: Comentarios + milestones_tab: Seguimiento + no_milestones: No hay hitos definidos wrong_price_format: Solo puede incluir caracteres numéricos investment: add: Votar diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb index e131973da..c8ad40bfb 100644 --- a/spec/features/budgets/investments_spec.rb +++ b/spec/features/budgets/investments_spec.rb @@ -389,6 +389,38 @@ feature 'Budget Investments' do expect(page).to have_content(investment.unfeasibility_explanation) end + scenario "Show milestones", :js do + user = create(:user) + login_as(user) + + investment = create(:budget_investment) + milestone = create(:budget_investment_milestone, investment: investment, title: "New text to show") + + visit budget_investment_path(budget_id: investment.budget.id, id: investment.id) + + find("#tab-milestones-label").trigger('click') + + within("#tab-milestones") do + expect(page).to have_content(milestone.title) + expect(page).to have_content(milestone.description) + end + end + + scenario "Show no_milestones text", :js do + user = create(:user) + login_as(user) + + investment = create(:budget_investment) + + visit budget_investment_path(budget_id: investment.budget.id, id: investment.id) + + find("#tab-milestones-label").trigger('click') + + within("#tab-milestones") do + expect(page).to have_content("Don't have defined milestones") + end + end + context "Destroy" do scenario "Admin cannot destroy budget investments" do