Improve admin budgets form structure
Co-Authored-By: Javi Martín <javim@elretirao.net>
This commit is contained in:
20
app/assets/stylesheets/admin/budgets/form.scss
Normal file
20
app/assets/stylesheets/admin/budgets/form.scss
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
.admin .budgets-form {
|
||||||
|
|
||||||
|
> fieldset {
|
||||||
|
border-top: 4px solid $admin-border-color;
|
||||||
|
clear: both;
|
||||||
|
margin-top: $line-height * 1.5;
|
||||||
|
|
||||||
|
legend {
|
||||||
|
color: $admin-text;
|
||||||
|
font-size: $small-font-size;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-right: $line-height / 2;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.globalize-languages {
|
||||||
|
max-width: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
@include has-fa-icon(quote-right, solid, after);
|
@include has-fa-icon(quote-right, solid, after);
|
||||||
background: $table-header;
|
background: $table-header;
|
||||||
border-radius: rem-calc(6);
|
border-radius: rem-calc(6);
|
||||||
|
clear: both;
|
||||||
color: $admin-text;
|
color: $admin-text;
|
||||||
margin-bottom: $line-height;
|
margin-bottom: $line-height;
|
||||||
padding: $padding;
|
padding: $padding;
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
<% if assignables.nil? || assignables.empty? %>
|
<% if assignables.nil? || assignables.empty? %>
|
||||||
<p><%= t("admin.budgets.edit.empty_#{assignable_type}") %></p>
|
<p><%= t("admin.budgets.edit.empty_#{assignable_type}") %></p>
|
||||||
<% else %>
|
<% else %>
|
||||||
<h3><%= t("admin.budgets.edit.#{assignable_type}", count: 0) %></h3>
|
<fieldset>
|
||||||
<% field = "#{assignable_type.chomp("s")}_ids" %>
|
<legend><%= t("admin.budgets.edit.#{assignable_type}", count: 0) %></legend>
|
||||||
<%= form.collection_check_boxes field, assignables, :id, :name do |box| %>
|
<% field = "#{assignable_type.chomp("s")}_ids" %>
|
||||||
<%= box.label { box.check_box + box.text } %>
|
<%= form.collection_check_boxes field, assignables, :id, :name do |box| %>
|
||||||
<% end %>
|
<%= box.label { box.check_box + box.text } %>
|
||||||
|
<% end %>
|
||||||
|
</fieldset>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,21 +1,16 @@
|
|||||||
<%= render "shared/globalize_locales", resource: @budget %>
|
<%= translatable_form_for [:admin, @budget], html: { class: "budgets-form" } do |f| %>
|
||||||
|
<fieldset>
|
||||||
|
<legend><%= t("admin.budgets.edit.info.budget_settings") %></legend>
|
||||||
|
<%= render "shared/globalize_locales", resource: @budget %>
|
||||||
|
<%= render "shared/errors", resource: @budget %>
|
||||||
|
|
||||||
<%= translatable_form_for [:admin, @budget] do |f| %>
|
|
||||||
|
|
||||||
<%= render "shared/errors", resource: @budget %>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<%= f.translatable_fields do |translations_form| %>
|
<%= f.translatable_fields do |translations_form| %>
|
||||||
<div class="small-12 medium-9 column end">
|
<div class="small-12 medium-9 column end">
|
||||||
<%= translations_form.text_field :name, maxlength: Budget.title_max_length %>
|
<%= translations_form.text_field :name,
|
||||||
|
maxlength: Budget.title_max_length,
|
||||||
|
hint: t("admin.budgets.edit.name_description") %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row margin-top">
|
|
||||||
<div class="small-12 medium-6 column">
|
|
||||||
<%= f.select :phase, budget_phases_select_options %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="small-12 medium-4 column">
|
<div class="small-12 medium-4 column">
|
||||||
<%= f.select :voting_style, budget_voting_styles_select_options %>
|
<%= f.select :voting_style, budget_voting_styles_select_options %>
|
||||||
@@ -24,9 +19,11 @@
|
|||||||
<div class="small-12 medium-2 column end">
|
<div class="small-12 medium-2 column end">
|
||||||
<%= f.select :currency_symbol, budget_currency_symbol_select_options %>
|
<%= f.select :currency_symbol, budget_currency_symbol_select_options %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend><%= t("admin.budgets.edit.info.staff_settings") %></legend>
|
||||||
|
|
||||||
<div class="row margin-top">
|
|
||||||
<% %w[administrators valuators].each do |staff| %>
|
<% %w[administrators valuators].each do |staff| %>
|
||||||
<div class="small-12 medium-4 column end">
|
<div class="small-12 medium-4 column end">
|
||||||
<%= link_to t("admin.budgets.edit.#{staff}", count: @budget.send(staff).count),
|
<%= link_to t("admin.budgets.edit.#{staff}", count: @budget.send(staff).count),
|
||||||
@@ -35,91 +32,88 @@
|
|||||||
data: { toggle: "#{staff}_list", texts: t("admin.budgets.edit.#{staff}") } %>
|
data: { toggle: "#{staff}_list", texts: t("admin.budgets.edit.#{staff}") } %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row margin-top">
|
|
||||||
<%= render "/admin/budgets/association", assignable_type: "administrators", assignables: @admins, form: f %>
|
<%= 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: "valuators", assignables: @valuators, form: f %>
|
||||||
</div>
|
</fieldset>
|
||||||
|
|
||||||
<%= render Admin::Budgets::HelpComponent.new("budget_phases") %>
|
<fieldset>
|
||||||
|
<legend><%= t("admin.budgets.edit.info.phases_settings") %></legend>
|
||||||
<% if @budget.phases.present? %>
|
<div class="small-12 medium-6 column">
|
||||||
<div class="row">
|
<%= f.select :phase, budget_phases_select_options %>
|
||||||
<div class="small-12 column">
|
|
||||||
<table id="budget-phases-table" class="table-for-mobile">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th><%= t("admin.budgets.edit.phase") %></th>
|
|
||||||
<th><%= t("admin.budgets.edit.dates") %></th>
|
|
||||||
<th class="text-center"><%= t("admin.budgets.edit.enabled") %></th>
|
|
||||||
<th><%= t("admin.budgets.edit.actions") %></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<% @budget.phases.order(:id).each do |phase| %>
|
|
||||||
<tr id="<%= dom_id(phase) %>" class="phase">
|
|
||||||
<td>
|
|
||||||
<%= t("budgets.phase.#{phase.kind}") %>
|
|
||||||
<% if @budget.current_phase == phase %>
|
|
||||||
<span class="label success"><strong><%= t("admin.budgets.edit.active") %></strong></span>
|
|
||||||
<% end %>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<% if phase.starts_at.present? || phase.ends_at.present? %>
|
|
||||||
<%= l(phase.starts_at.to_date) if phase.starts_at.present? %>
|
|
||||||
-
|
|
||||||
<%= l(phase.ends_at.to_date) if phase.ends_at.present? %>
|
|
||||||
<% else %>
|
|
||||||
<em><%= t("admin.budgets.edit.blank_dates") %></em>
|
|
||||||
<% end %>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<span class="budget-phase-enabled <%= phase.enabled? ? "enabled" : "disabled" %>"></span>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<%= render Admin::TableActionsComponent.new(phase,
|
|
||||||
actions: [:edit],
|
|
||||||
edit_text: t("admin.budgets.edit.edit_phase")
|
|
||||||
) %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="small-12 column">
|
|
||||||
<%= render "admin/shared/show_results_fields", form: f %>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="small-12 column">
|
<%= render Admin::Budgets::HelpComponent.new("budget_phases") %>
|
||||||
<div class="clear small-12 medium-4 large-3 inline-block">
|
|
||||||
<%= f.submit nil, class: "button success" %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="float-right">
|
<% if @budget.phases.present? %>
|
||||||
<% if display_calculate_winners_button?(@budget) %>
|
<table id="budget-phases-table" class="table-for-mobile">
|
||||||
<%= link_to calculate_winner_button_text(@budget),
|
<thead>
|
||||||
calculate_winners_admin_budget_path(@budget),
|
<tr>
|
||||||
method: :put,
|
<th><%= t("admin.budgets.edit.phase") %></th>
|
||||||
class: "button hollow" %>
|
<th><%= t("admin.budgets.edit.dates") %></th>
|
||||||
<% end %>
|
<th class="text-center"><%= t("admin.budgets.edit.enabled") %></th>
|
||||||
|
<th><%= t("admin.budgets.edit.actions") %></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
<% if @budget.has_winning_investments? %>
|
<% @budget.phases.order(:id).each do |phase| %>
|
||||||
<%= link_to t("budgets.show.see_results"),
|
<tr id="<%= dom_id(phase) %>" class="phase">
|
||||||
budget_results_path(@budget),
|
<td>
|
||||||
class: "button hollow margin-left" %>
|
<%= t("budgets.phase.#{phase.kind}") %>
|
||||||
|
<% if @budget.current_phase == phase %>
|
||||||
|
<span class="label success"><strong><%= t("admin.budgets.edit.active") %></strong></span>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<% if phase.starts_at.present? || phase.ends_at.present? %>
|
||||||
|
<%= l(phase.starts_at.to_date) if phase.starts_at.present? %>
|
||||||
|
-
|
||||||
|
<%= l(phase.ends_at.to_date) if phase.ends_at.present? %>
|
||||||
|
<% else %>
|
||||||
|
<em><%= t("admin.budgets.edit.blank_dates") %></em>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<span class="budget-phase-enabled <%= phase.enabled? ? "enabled" : "disabled" %>"></span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= render Admin::TableActionsComponent.new(phase,
|
||||||
|
actions: [:edit],
|
||||||
|
edit_text: t("admin.budgets.edit.edit_phase")
|
||||||
|
) %>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if @budget.persisted? %>
|
</table>
|
||||||
<%= link_to t("admin.budgets.edit.delete"),
|
<% end %>
|
||||||
admin_budget_path(@budget),
|
</fieldset>
|
||||||
method: :delete,
|
|
||||||
class: "delete float-right margin-left" %>
|
<%= render "admin/shared/show_results_fields", form: f %>
|
||||||
<% end %>
|
|
||||||
</div>
|
<div class="small-12 column">
|
||||||
|
<div class="clear small-12 medium-4 large-3 inline-block">
|
||||||
|
<%= f.submit nil, class: "button success" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="float-right">
|
||||||
|
<% if display_calculate_winners_button?(@budget) %>
|
||||||
|
<%= link_to calculate_winner_button_text(@budget),
|
||||||
|
calculate_winners_admin_budget_path(@budget),
|
||||||
|
method: :put,
|
||||||
|
class: "button hollow" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% if @budget.has_winning_investments? %>
|
||||||
|
<%= link_to t("budgets.show.see_results"),
|
||||||
|
budget_results_path(@budget),
|
||||||
|
class: "button hollow margin-left" %>
|
||||||
|
<% end %>
|
||||||
|
<% if @budget.persisted? %>
|
||||||
|
<%= link_to t("admin.budgets.edit.delete"),
|
||||||
|
admin_budget_path(@budget),
|
||||||
|
method: :delete,
|
||||||
|
class: "delete float-right margin-left" %>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
<%= back_link_to admin_budgets_path %>
|
<%= back_link_to admin_budgets_path %>
|
||||||
|
|
||||||
<div class="row">
|
<h2><%= t("admin.budgets.edit.title") %></h2>
|
||||||
<div class="small-12 column">
|
|
||||||
<h2><%= t("admin.budgets.edit.title") %></h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= render "/admin/budgets/form" %>
|
<%= render "/admin/budgets/form" %>
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
<fieldset class="fieldset">
|
<fieldset aria-describedby="results_and_stats_reminder">
|
||||||
<legend><%= t("admin.shared.show_results_and_stats") %></legend>
|
<legend><%= t("admin.shared.show_results_and_stats") %></legend>
|
||||||
|
|
||||||
|
<p class="help-text" id="results_and_stats_reminder">
|
||||||
|
<%= t("admin.shared.results_and_stats_reminder") %>
|
||||||
|
</p>
|
||||||
|
|
||||||
<%= form.check_box :results_enabled %>
|
<%= form.check_box :results_enabled %>
|
||||||
<%= form.check_box :stats_enabled %>
|
<%= form.check_box :stats_enabled %>
|
||||||
<%= form.check_box :advanced_stats_enabled %>
|
<%= form.check_box :advanced_stats_enabled %>
|
||||||
<p class="small"><%= t("admin.shared.results_and_stats_reminder") %></p>
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -102,6 +102,11 @@ en:
|
|||||||
other: "%{count} valuators selected"
|
other: "%{count} valuators selected"
|
||||||
empty_administrators: "There are no administrators"
|
empty_administrators: "There are no administrators"
|
||||||
empty_valuators: "There are no valuators"
|
empty_valuators: "There are no valuators"
|
||||||
|
name_description: "This is the name of the participatory budget used on the header and cards whenever it is active"
|
||||||
|
info:
|
||||||
|
budget_settings: "General participatory budget settings"
|
||||||
|
phases_settings: "Phases settings"
|
||||||
|
staff_settings: "Administrators and Valuators assigned to the budget"
|
||||||
destroy:
|
destroy:
|
||||||
success_notice: Budget deleted successfully
|
success_notice: Budget deleted successfully
|
||||||
unable_notice: You cannot delete a budget that has associated investments
|
unable_notice: You cannot delete a budget that has associated investments
|
||||||
|
|||||||
@@ -102,6 +102,11 @@ es:
|
|||||||
other: "%{count} evaluadores seleccionados"
|
other: "%{count} evaluadores seleccionados"
|
||||||
empty_administrators: "No hay administradores"
|
empty_administrators: "No hay administradores"
|
||||||
empty_valuators: "No hay evaluadores"
|
empty_valuators: "No hay evaluadores"
|
||||||
|
name_description: "Este es el nombre del presupuesto participativo usado en la cabecera y tarjetas cuando éste está activo"
|
||||||
|
info:
|
||||||
|
budget_settings: "Configuración genérica del presupuesto participativo"
|
||||||
|
phases_settings: "Configuración de las fases"
|
||||||
|
staff_settings: "Administradores y Evaluadores asigandos al presupuesto"
|
||||||
destroy:
|
destroy:
|
||||||
success_notice: Presupuesto eliminado correctamente
|
success_notice: Presupuesto eliminado correctamente
|
||||||
unable_notice: No se puede eliminar un presupuesto con proyectos asociados
|
unable_notice: No se puede eliminar un presupuesto con proyectos asociados
|
||||||
|
|||||||
Reference in New Issue
Block a user