Remove tracker role

The current tracking section had a few issues:

* When browsing as an admin, this section becomes useless since no
investments are shown
* Browsing investments in the admin section, you're suddenly redirected
to the tracking section, making navigation confusing
* One test related to the officing dashboard failed due to these changes
and had been commented
* Several views and controller methods were copied from other sections,
leading to duplication and making the code harder to maintain
* Tracking routes were defined for proposals and legislation processes,
but in the tracking section only investments were shown
* Probably many more things, since these issues were detected after only
an hour reviewing and testing the code

So we're removing this untested section before releasing version 1.1. We
might add it back afterwards.
This commit is contained in:
Javi Martín
2019-11-01 20:08:46 +01:00
parent 71d9ac20e3
commit ac6d50e06b
76 changed files with 221 additions and 1433 deletions

View File

@@ -212,10 +212,6 @@
<%= link_to t("admin.menu.valuators"), admin_valuators_path %>
</li>
<li <%= "class=is-active" if controller_name == "trackers" %>>
<%= link_to t("admin.menu.trackers"), admin_trackers_path %>
</li>
<li <%= "class=is-active" if controller_name == "managers" %>>
<%= link_to t("admin.menu.managers"), admin_managers_path %>
</li>

View File

@@ -89,16 +89,6 @@
<% end %>
</ul>
</div>
<div class="small-12 column">
<hr>
<%= f.label :tracker_ids, t("admin.budget_investments.edit.assigned_trackers") %>
<ul>
<%= f.collection_check_boxes :tracker_ids, @trackers, :id, :email do |b| %>
<li><%= b.label(title: tracker_label(b.object)) { b.check_box + truncate(b.object.description_or_email, length: 60) } %></li>
<% end %>
</ul>
</div>
</div>
<div class="row expanded margin-top">

View File

@@ -50,15 +50,6 @@
<% end %>
</p>
<p id="assigned_trackers">
<strong><%= t("admin.budget_investments.show.assigned_trackers") %>:</strong>
<% if @investment.trackers.any? %>
<%= @investment.trackers.collect(&:name_and_email).join(", ") %>
<% else %>
<%= t("admin.budget_investments.show.undefined") %>
<% end %>
</p>
<p>
<%= link_to t("admin.budget_investments.show.edit_classification"),
edit_admin_budget_budget_investment_path(@budget, @investment,
@@ -77,4 +68,4 @@
<%= render "admin/change_logs/change_log", logs: @logs %>
<%= render "tracking/milestones/milestones", milestoneable: @investment %>
<%= render "admin/milestones/milestones", milestoneable: @investment %>

View File

@@ -22,7 +22,7 @@
</div>
<div class="margin-top">
<% %w[administrators valuators trackers].each do |staff| %>
<% %w[administrators valuators].each do |staff| %>
<div class="small-12 medium-4 column end">
<%= link_to t("admin.budgets.edit.#{staff}", count: @budget.send(staff).count),
"#",
@@ -35,7 +35,6 @@
<div class="margin-top">
<%= render "/admin/budgets/association", assignable_type: "administrators", assignables: @admins, form: f %>
<%= render "/admin/budgets/association", assignable_type: "valuators", assignables: @valuators, form: f %>
<%= render "/admin/budgets/association", assignable_type: "trackers", assignables: @trackers, form: f %>
</div>
<% if @budget.phases.present? %>

View File

@@ -9,4 +9,4 @@
<%= render "admin/legislation/processes/subnav", process: @process, active: "milestones" %>
<%= render "summary_form", process: @process %>
<%= render "tracking/milestones/milestones", milestoneable: @process %>
<%= render "admin/milestones/milestones", milestoneable: @process %>

View File

@@ -1,14 +1,14 @@
<%= render "shared/globalize_locales", resource: @milestone %>
<%= translatable_form_for [:tracking, *resource_hierarchy_for(@milestone)] do |f| %>
<%= translatable_form_for [:admin, *resource_hierarchy_for(@milestone)] do |f| %>
<div class="row">
<div class="small-12 medium-6 margin-bottom column">
<%= f.select :status_id,
@statuses.collect { |s| [s.name, s.id] },
{ include_blank: @statuses.any? ? "" : t("tracking.milestones.form.no_statuses_defined") },
{ include_blank: @statuses.any? ? "" : t("admin.milestones.form.no_statuses_defined") },
{ disabled: @statuses.blank? } %>
<%= link_to t("tracking.milestones.form.admin_statuses"),
<%= link_to t("admin.milestones.form.admin_statuses"),
admin_milestone_statuses_path %>
</div>
</div>

View File

@@ -1,7 +1,7 @@
<h2 class="inline-block"><%= t("tracking.milestones.index.milestone") %></h2>
<h2 class="inline-block"><%= t("admin.milestones.index.milestone") %></h2>
<%= link_to t("tracking.progress_bars.manage"),
polymorphic_path([:tracking, *resource_hierarchy_for(milestoneable.progress_bars.new)]),
<%= link_to t("admin.progress_bars.manage"),
polymorphic_path([:admin, *resource_hierarchy_for(milestoneable.progress_bars.new)]),
class: "button hollow float-right" %>
<% if milestoneable.milestone_tag_list.any? %>
@@ -16,14 +16,14 @@
<table>
<thead>
<tr>
<th><%= t("tracking.milestones.index.table_id") %></th>
<th><%= t("tracking.milestones.index.table_title") %></th>
<th><%= t("tracking.milestones.index.table_description") %></th>
<th><%= t("tracking.milestones.index.table_publication_date") %></th>
<th><%= t("tracking.milestones.index.table_status") %></th>
<th><%= t("tracking.milestones.index.image") %></th>
<th><%= t("tracking.milestones.index.documents") %></th>
<th><%= t("tracking.milestones.index.table_actions") %></th>
<th><%= t("admin.milestones.index.table_id") %></th>
<th><%= t("admin.milestones.index.table_title") %></th>
<th><%= t("admin.milestones.index.table_description") %></th>
<th><%= t("admin.milestones.index.table_publication_date") %></th>
<th><%= t("admin.milestones.index.table_status") %></th>
<th><%= t("admin.milestones.index.image") %></th>
<th><%= t("admin.milestones.index.documents") %></th>
<th><%= t("admin.milestones.index.table_actions") %></th>
</tr>
</thead>
<tbody>
@@ -32,7 +32,7 @@
<td class="text-center"><%= milestone.id %></td>
<td>
<%= link_to milestone.title,
polymorphic_path([:tracking, *resource_hierarchy_for(milestone)],
polymorphic_path([:admin, *resource_hierarchy_for(milestone)],
action: :edit) %>
</td>
<td class="small small-5"><%= milestone.description %></td>
@@ -43,7 +43,7 @@
<%= milestone.status.present? ? milestone.status.name : "" %>
</td>
<td class="small">
<%= link_to t("tracking.milestones.index.show_image"),
<%= link_to t("admin.milestones.index.show_image"),
milestone.image_url(:large),
target: :_blank if milestone.image.present? %>
</td>
@@ -58,8 +58,8 @@
<% end %>
</td>
<td class="small-2">
<%= link_to t("tracking.milestones.index.delete"),
polymorphic_path([:tracking, *resource_hierarchy_for(milestone)]),
<%= link_to t("admin.milestones.index.delete"),
polymorphic_path([:admin, *resource_hierarchy_for(milestone)]),
method: :delete,
class: "button hollow alert expanded" %>
</td>
@@ -68,12 +68,12 @@
</tbody>
</table>
<% else %>
<p><%= t("tracking.milestones.index.no_milestones") %></p>
<p><%= t("admin.milestones.index.no_milestones") %></p>
<% end %>
<p>
<%= link_to t("tracking.milestones.index.new_milestone"),
polymorphic_path([:tracking, *resource_hierarchy_for(milestoneable.milestones.new)],
<%= link_to t("admin.milestones.index.new_milestone"),
polymorphic_path([:admin, *resource_hierarchy_for(milestoneable.milestones.new)],
action: :new),
class: "button hollow" %>
</p>

View File

@@ -1,6 +1,6 @@
<%= back_link_to milestoneable_path %>
<h2><%= t("tracking.milestones.edit.title") %></h2>
<h2><%= t("admin.milestones.edit.title") %></h2>
<div class="milestone-edit">
<%= render "form" %>

View File

@@ -3,7 +3,7 @@
<div class="small-12 column">
<%= back_link_to milestoneable_path %>
<h1><%= t("tracking.milestones.new.creating") %></h1>
<h1><%= t("admin.milestones.new.creating") %></h1>
<%= render "form" %>
</div>

View File

@@ -1,6 +1,6 @@
<%= render "shared/globalize_locales", resource: @progress_bar %>
<%= translatable_form_for [:tracking, *resource_hierarchy_for(@progress_bar)] do |f| %>
<%= translatable_form_for [:admin, *resource_hierarchy_for(@progress_bar)] do |f| %>
<div class="row">
<div class="small-12 medium-6 column">

View File

@@ -1,8 +1,8 @@
<h2 class="inline-block"><%= t("tracking.progress_bars.index.title") %></h2>
<h2 class="inline-block"><%= t("admin.progress_bars.index.title") %></h2>
<%= link_to t("tracking.progress_bars.index.new_progress_bar"),
<%= link_to t("admin.progress_bars.index.new_progress_bar"),
polymorphic_path(
[:tracking, *resource_hierarchy_for(ProgressBar.new(progressable: progressable))],
[:admin, *resource_hierarchy_for(ProgressBar.new(progressable: progressable))],
action: :new
),
class: "button float-right" %>
@@ -11,10 +11,10 @@
<table>
<thead>
<tr>
<th><%= t("tracking.progress_bars.index.table_id") %></th>
<th><%= t("tracking.progress_bars.index.table_kind") %></th>
<th><%= t("tracking.progress_bars.index.table_title") %></th>
<th class="text-center"><%= t("tracking.progress_bars.index.table_percentage") %></th>
<th><%= t("admin.progress_bars.index.table_id") %></th>
<th><%= t("admin.progress_bars.index.table_kind") %></th>
<th><%= t("admin.progress_bars.index.table_title") %></th>
<th class="text-center"><%= t("admin.progress_bars.index.table_percentage") %></th>
<th><%= t("admin.actions.actions") %></th>
</tr>
</thead>
@@ -29,7 +29,7 @@
<% if progress_bar.title.present? %>
<%= progress_bar.title %>
<% else %>
<strong><%= t("tracking.progress_bars.index.primary") %></strong>
<strong><%= t("admin.progress_bars.index.primary") %></strong>
<% end %>
</td>
<td class="text-center">
@@ -37,12 +37,12 @@
</td>
<td>
<%= link_to t("admin.actions.edit"),
polymorphic_path([:tracking, *resource_hierarchy_for(progress_bar)],
polymorphic_path([:admin, *resource_hierarchy_for(progress_bar)],
action: :edit),
class: "button hollow" %>
<%= link_to t("admin.actions.delete"),
polymorphic_path([:tracking, *resource_hierarchy_for(progress_bar)]),
polymorphic_path([:admin, *resource_hierarchy_for(progress_bar)]),
method: :delete,
class: "button hollow alert" %>
</td>
@@ -52,6 +52,6 @@
</table>
<% else %>
<div class="callout primary">
<%= t("tracking.progress_bars.index.no_progress_bars") %>
<%= t("admin.progress_bars.index.no_progress_bars") %>
</div>
<% end %>

View File

@@ -0,0 +1,15 @@
<% if @progress_bar.primary? %>
<% bar_title = t("admin.progress_bars.edit.title.primary") %>
<% else %>
<% bar_title = t("admin.progress_bars.edit.title.secondary", title: @progress_bar.title) %>
<% end %>
<% provide :title do %>
<%= "#{t("admin.header.title")} - #{bar_title}" %>
<% end %>
<%= back_link_to progress_bars_index %>
<h2><%= bar_title %></h2>
<%= render "form" %>

View File

@@ -0,0 +1,9 @@
<% provide :title do %>
<%= "#{t("admin.header.title")} - #{t("admin.progress_bars.index.title")}" %>
<% end %>
<%= back_link_to polymorphic_path([:admin, *resource_hierarchy_for(@progressable)]) %>
<div class="clear"></div>
<%= render "admin/progress_bars/progress_bars", progressable: @progressable %>

View File

@@ -0,0 +1,9 @@
<% provide :title do %>
<%= "#{t("admin.header.title")} - #{t("admin.progress_bars.new.creating")}" %>
<% end %>
<%= back_link_to progress_bars_index %>
<h2><%= t("admin.progress_bars.new.creating") %></h2>
<%= render "form" %>

View File

@@ -32,4 +32,4 @@
<hr>
</div>
<%= render "tracking/milestones/milestones", milestoneable: @proposal %>
<%= render "admin/milestones/milestones", milestoneable: @proposal %>

View File

@@ -1,15 +0,0 @@
<%= back_link_to admin_trackers_path %>
<h2><%= t("admin.trackers.form.edit_title") %></h2>
<div class="callout highlight">
<strong><%= @tracker.name %></strong><br>
<%= @tracker.email %>
</div>
<div class="margin-top">
<%= form_for [:admin, @tracker] do |f| %>
<%= f.text_field :description %>
<%= f.submit t("admin.trackers.form.update"), class: "button success" %>
<% end %>
</div>

View File

@@ -1,48 +0,0 @@
<h2 class="inline-block"><%= t("admin.trackers.index.title") %></h2>
<%= render "admin/shared/user_search", url: search_admin_trackers_path %>
<div id="trackers">
<% if @trackers.any? %>
<h3 class="margin"><%= page_entries_info @trackers %></h3>
<table>
<thead>
<th scope="col"><%= t("admin.trackers.index.name") %></th>
<th scope="col"><%= t("admin.trackers.index.email") %></th>
<th scope="col"><%= t("admin.valuators.index.description") %></th>
<th scope="col" class="small-3"><%= t("admin.actions.actions") %></th>
</thead>
<tbody>
<% @trackers.each do |tracker| %>
<tr>
<td><%= link_to tracker.name, admin_tracker_path(tracker) %></td>
<td><%= tracker.email %></td>
<td>
<% if tracker.description.present? %>
<%= tracker.description %>
<% else %>
<%= t("admin.trackers.index.no_description") %>
<% end %>
</td>
<td>
<%= link_to t("admin.actions.edit"),
edit_admin_tracker_path(tracker),
class: "button hollow" %>
<%= link_to t("admin.valuators.valuator.delete"),
admin_tracker_path(tracker),
method: :delete,
class: "button hollow alert" %>
</td>
</tr>
<% end %>
</tbody>
</table>
<%= paginate @trackers %>
<% else %>
<div class="callout primary">
<%= t("admin.trackers.index.no_trackers") %>
</div>
<% end %>
</div>

View File

@@ -1,58 +0,0 @@
<h2><%= t("admin.trackers.search.title") %></h2>
<%= render "admin/shared/user_search", url: search_admin_trackers_path %>
<div id="trackers">
<% if @users.any? %>
<h3 class="margin"><%= page_entries_info @users %></h3>
<table>
<thead>
<th scope="col"><%= t("admin.trackers.index.name") %></th>
<th scope="col"><%= t("admin.trackers.index.email") %></th>
<th scope="col"><%= t("admin.trackers.index.description") %></th>
<th scope="col"><%= t("admin.shared.actions") %></th>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
<td>
<% if user.tracker %>
<% if user.tracker.description.present? %>
<%= user.tracker.description %>
<% else %>
<%= t("admin.trackers.index.no_description") %>
<% end %>
<% else %>
<%= t("admin.trackers.index.no_description") %>
<% end %>
<td>
<% if user.tracker? %>
<%= link_to t("admin.actions.edit"),
edit_admin_tracker_path(user.tracker),
class: "button hollow" %>
<%= link_to t("admin.valuators.valuator.delete"),
admin_tracker_path(user.tracker),
method: :delete,
class: "button hollow alert" %>
<% else %>
<%= form_for Tracker.new(user: user), url: admin_trackers_path do |f| %>
<%= f.hidden_field :user_id %>
<%= f.submit t("admin.trackers.tracker.add"),
class: "button success expanded" %>
<% end %>
<% end %>
</td>
</tr>
<% end %>
</tbody>
</table>
<% else %>
<div class="callout alert margin">
<%= t("admin.shared.no_search_results") %>
</div>
<% end %>
</div>

View File

@@ -1,22 +0,0 @@
<%= back_link_to admin_trackers_path %>
<%= link_to t("admin.actions.edit"), edit_admin_tracker_path(@tracker), class: "button hollow float-right" %>
<div class="clear"></div>
<h2><%= @tracker.name %></h2>
<div class="callout highlight">
<p>
<strong><%= t("admin.trackers.show.email") %></strong><br>
<%= @tracker.email %>
</p>
<p>
<strong><%= t("admin.trackers.show.description") %></strong><br>
<% if @tracker.description.present? %>
<%= @tracker.description %>
<% else %>
<%= t("admin.trackers.show.no_description") %>
<% end %>
</p>
</div>

View File

@@ -21,13 +21,6 @@
</li>
<% end %>
<% if (feature?(:budgets)) &&
(current_user.administrator? || current_user.tracker?) %>
<li>
<%= link_to t("layouts.header.tracking"), tracking_root_path %>
</li>
<% end %>
<% if current_user.administrator? || current_user.manager? %>
<li>
<%= link_to t("layouts.header.management"), management_sign_in_path %>

View File

@@ -1,17 +0,0 @@
<nav class="admin-sidebar">
<ul id="valuation_menu">
<li>
<%= link_to t("tracking.menu.title"), tracking_root_path %>
</li>
<% if feature?(:budgets) %>
<li <%= "class=is-active" if controller_name == "budget_investments" %>>
<%= link_to tracking_budgets_path do %>
<span class="icon-budget"></span>
<%= t("tracking.menu.budgets") %>
<% end %>
</li>
<% end %>
</ul>
</nav>

View File

@@ -1,12 +0,0 @@
<%= link_to tracking_budget_budget_investment_path(@budget, @investment), class: "back" do %>
<span class="icon-angle-left"></span>
<%= "#{t("tracking.budget_investments.show.title")} #{@investment.id}" %>
<% end %>
<br>
<h1><%= @investment.title %></h1>
<%= auto_link_already_sanitized_html wysiwyg(@investment.description) %>
<%= render "tracking/milestones/milestones", milestoneable: @investment %>

View File

@@ -1,58 +0,0 @@
<h2>
<%= @budget.name %> - <%= t("tracking.budget_investments.index.title") %>
<small><%= t("tracking.budget_investments.index.assigned_to", tracker: current_user.name) %></small>
</h2>
<div class="row expanded collapse margin-bottom">
<% @heading_filters.each_slice(8) do |slice| %>
<div class="small-12 medium-4 column select-heading">
<% slice.each do |filter| %>
<%= link_to tracking_budget_budget_investments_path(budget_id: @budget.id, heading_id: filter[:id]),
class: "#{"is-active" if params[:heading_id].to_s == filter[:id].to_s}" do %>
<%= filter[:name] %> (<%= filter[:count] %>)
<% end %>
<% end %>
</div>
<% end %>
</div>
<% if @investments.any? %>
<h3><%= page_entries_info @investments %></h3>
<table>
<thead>
<tr>
<th><%= t("tracking.budget_investments.index.table_id") %></th>
<th><%= t("tracking.budget_investments.index.table_title") %></th>
<th><%= t("tracking.budget_investments.index.table_heading_name") %></th>
<th><%= t("tracking.budget_investments.index.table_actions") %></th>
</tr>
</thead>
<tbody>
<% @investments.each do |investment| %>
<tr id="<%= dom_id(investment) %>" class="budget_investment">
<td>
<strong><%= investment.id %></strong>
</td>
<td>
<%= link_to investment.title, tracking_budget_budget_investment_path(@budget, investment) %>
</td>
<td class="small">
<%= investment.heading.name %>
</td>
<td class="small">
<%= link_to t("tracking.budget_investments.index.edit"),
edit_tracking_budget_budget_investment_path(@budget, investment),
class: "button hollow expanded" %>
</td>
</tr>
<% end %>
</tbody>
</table>
<%= paginate @investments %>
<% else %>
<div class="callout primary">
<%= t("tracking.budget_investments.index.no_investments") %>
</div>
<% end %>

View File

@@ -1,47 +0,0 @@
<%= back_link_to tracking_budget_budget_investments_path %>
<h2><%= t("tracking.budget_investments.show.title") %> <%= @investment.id %> </h2>
<h1><%= @investment.title %></h1>
<%= auto_link_already_sanitized_html wysiwyg(@investment.description) %>
<% if @investment.external_url.present? %>
<p><%= sanitize_and_auto_link @investment.external_url %></p>
<% end %>
<h2><%= t("tracking.budget_investments.show.info") %></h2>
<p><strong><%= t("tracking.budget_investments.show.by") %>:</strong>
<%= @investment.author.name %>
</p>
<p><strong><%= t("tracking.budget_investments.show.heading") %>:</strong>
<%= @investment.heading.name %>
</p>
<p><strong><%= t("tracking.budget_investments.show.sent") %>:</strong>
<%= l @investment.created_at, format: :datetime %>
</p>
<h2><%= t("tracking.budget_investments.show.responsibles") %></h2>
<p><strong><%= t("tracking.budget_investments.show.assigned_admin") %>:</strong>
<% if @investment.administrator.present? %>
<%= @investment.administrator.name_and_email %>
<% else %>
<%= t("tracking.budget_investments.show.undefined") %>
<% end %>
</p>
<p><strong><%= t("trackers.budget_investments.show.assigned_trackers") %>:</strong></p>
<div id="assigned_trackers">
<ul>
<% @investment.trackers.each do |tracker| %>
<li><%= tracker.name_and_email %></li>
<% end %>
<% if @investment.trackers.empty? %>
<li><%= t("tracking.budget_investments.show.undefined") %></li>
<% end %>
</ul>
</div>

View File

@@ -1,36 +0,0 @@
<h2 class="inline-block"><%= t("tracking.budgets.index.title") %></h2>
<% if @budget.present? %>
<table>
<thead>
<tr>
<th><%= t("tracking.budgets.index.table_name") %></th>
<th><%= t("tracking.budgets.index.table_phase") %></th>
<th><%= t("tracking.budgets.index.table_assigned_investments_tracking_open") %></th>
<th><%= t("tracking.budgets.index.table_actions") %></th>
</tr>
</thead>
<tbody>
<tr id="<%= dom_id(@budget) %>" class="budget">
<td>
<%= @budget.name %>
</td>
<td>
<%= t("budgets.phase.#{@budget.phase}") %>
</td>
<td>
<%= @investments.count %>
</td>
<td>
<%= link_to t("tracking.budgets.index.tracking"),
tracking_budget_budget_investments_path(budget_id: @budget.id),
class: "button hollow expanded" %>
</td>
</tr>
</tbody>
</table>
<% else %>
<div class="callout primary clear">
<%= t("tracking.budgets.index.no_budgets") %>
</div>
<% end %>

View File

@@ -1,15 +0,0 @@
<% if @progress_bar.primary? %>
<% bar_title = t("tracking.progress_bars.edit.title.primary") %>
<% else %>
<% bar_title = t("tracking.progress_bars.edit.title.secondary", title: @progress_bar.title) %>
<% end %>
<% provide :title do %>
<%= "#{t("tracking.header.title")} - #{bar_title}" %>
<% end %>
<%= back_link_to progress_bars_index %>
<h2><%= bar_title %></h2>
<%= render "form" %>

View File

@@ -1,9 +0,0 @@
<% provide :title do %>
<%= "#{t("admin.header.title")} - #{t("tracking.progress_bars.index.title")}" %>
<% end %>
<%= back_link_to tracker_back_path(@progressable) %>
<div class="clear"></div>
<%= render "tracking/progress_bars/progress_bars", progressable: @progressable %>

View File

@@ -1,9 +0,0 @@
<% provide :title do %>
<%= "#{t("admin.header.title")} - #{t("tracking.progress_bars.new.creating")}" %>
<% end %>
<%= back_link_to progress_bars_index %>
<h2><%= t("tracking.progress_bars.new.creating") %></h2>
<%= render "form" %>