adds settings area to admin
This commit is contained in:
17
app/controllers/admin/settings_controller.rb
Normal file
17
app/controllers/admin/settings_controller.rb
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
class Admin::SettingsController < Admin::BaseController
|
||||||
|
|
||||||
|
def index
|
||||||
|
@settings = Setting.all
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@setting = Setting.find(params[:id])
|
||||||
|
@setting.update(settings_params)
|
||||||
|
redirect_to admin_settings_path, notice: t("admin.settings.flash.updated")
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def settings_params
|
||||||
|
params.require(:setting).permit(:value)
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<ul id="admin_menu">
|
<ul id="admin_menu">
|
||||||
|
<li><%= link_to t('admin.menu.settings'), admin_settings_path %></li>
|
||||||
<li><%= link_to t('admin.menu.debate_topics'), admin_tags_path %></li>
|
<li><%= link_to t('admin.menu.debate_topics'), admin_tags_path %></li>
|
||||||
<li><%= link_to t('admin.menu.hidden_debates'), admin_debates_path %></li>
|
<li><%= link_to t('admin.menu.hidden_debates'), admin_debates_path %></li>
|
||||||
<li><%= link_to t('admin.menu.hidden_comments'), admin_comments_path %></li>
|
<li><%= link_to t('admin.menu.hidden_comments'), admin_comments_path %></li>
|
||||||
<li><%= link_to t('admin.officials.index.title'), admin_officials_path %></li>
|
<li><%= link_to t('admin.menu.officials'), admin_officials_path %></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<% @officials.each do |official| %>
|
<% @officials.each do |official| %>
|
||||||
<%= link_to official.name, edit_admin_official_path(official) %>
|
<%= link_to official.name, edit_admin_official_path(official) %>
|
||||||
<%= official.official_position %>
|
<%= official.official_position %>
|
||||||
<%= official.official_level %>
|
<%= t("admin.officials.level_#{official.official_level}") %>
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<% @users.each do |user| %>
|
<% @users.each do |user| %>
|
||||||
<%= link_to user.name, edit_admin_official_path(user) %>
|
<%= link_to user.name, edit_admin_official_path(user) %>
|
||||||
<%= user.official_position %>
|
<%= user.official_position %>
|
||||||
<%= user.official_level %>
|
<%= t("admin.officials.level_#{user.official_level}") %>
|
||||||
<%= link_to user.official? ? t("admin.officials.search.edit_official") : t("admin.officials.search.make_official"), edit_admin_official_path(user) %>
|
<%= link_to user.official? ? t("admin.officials.search.edit_official") : t("admin.officials.search.make_official"), edit_admin_official_path(user) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
15
app/views/admin/settings/index.html.erb
Normal file
15
app/views/admin/settings/index.html.erb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<h1><%= t("admin.settings.index.title") %></h1>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<% @settings.each do |setting| %>
|
||||||
|
<li>
|
||||||
|
<strong><%= setting.key.classify %></strong>
|
||||||
|
|
||||||
|
<%= form_for(setting, url: admin_setting_path(setting), html: { id: "edit_#{dom_id(setting)}"}) do |f| %>
|
||||||
|
<%= f.text_field :value, label: false, id: dom_id(setting) %>
|
||||||
|
<%= f.submit(class: "button radius tiny") %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
@@ -1,12 +1,19 @@
|
|||||||
en:
|
en:
|
||||||
admin:
|
admin:
|
||||||
|
settings:
|
||||||
|
index:
|
||||||
|
title: Global settings
|
||||||
|
flash:
|
||||||
|
updated: 'Setting updated!'
|
||||||
dashboard:
|
dashboard:
|
||||||
index:
|
index:
|
||||||
title: Administration
|
title: Administration
|
||||||
menu:
|
menu:
|
||||||
|
settings: Global settings
|
||||||
debate_topics: Debate topics
|
debate_topics: Debate topics
|
||||||
hidden_debates: Hidden debates
|
hidden_debates: Hidden debates
|
||||||
hidden_comments: Hidden comments
|
hidden_comments: Hidden comments
|
||||||
|
officials: Officials
|
||||||
actions:
|
actions:
|
||||||
hide: Hide
|
hide: Hide
|
||||||
restore: Restore
|
restore: Restore
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
es:
|
es:
|
||||||
admin:
|
admin:
|
||||||
|
settings:
|
||||||
|
index:
|
||||||
|
title: Configuración global
|
||||||
|
flash:
|
||||||
|
updated: 'Valor actualizado'
|
||||||
dashboard:
|
dashboard:
|
||||||
index:
|
index:
|
||||||
title: Administración
|
title: Administración
|
||||||
menu:
|
menu:
|
||||||
|
settings: Configuración global
|
||||||
debate_topics: Temas de debate
|
debate_topics: Temas de debate
|
||||||
hidden_debates: Debates ocultos
|
hidden_debates: Debates ocultos
|
||||||
hidden_comments: Comentarios ocultos
|
hidden_comments: Comentarios ocultos
|
||||||
|
officials: Cargos públicos
|
||||||
actions:
|
actions:
|
||||||
hide: Ocultar
|
hide: Ocultar
|
||||||
restore: Permitir
|
restore: Permitir
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ Rails.application.routes.draw do
|
|||||||
resources :officials, only: [:index, :edit, :update, :destroy] do
|
resources :officials, only: [:index, :edit, :update, :destroy] do
|
||||||
collection { get :search}
|
collection { get :search}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
resources :settings, only: [:index, :update]
|
||||||
end
|
end
|
||||||
|
|
||||||
namespace :moderation do
|
namespace :moderation do
|
||||||
|
|||||||
@@ -55,4 +55,9 @@ FactoryGirl.define do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
factory :setting do
|
||||||
|
sequence(:key) { |n| "setting key number #{n}" }
|
||||||
|
sequence(:value) { |n| "setting number #{n} value" }
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
30
spec/features/admin/settings_spec.rb
Normal file
30
spec/features/admin/settings_spec.rb
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
feature 'Admin settings' do
|
||||||
|
|
||||||
|
background do
|
||||||
|
@setting1 = create(:setting)
|
||||||
|
@setting2 = create(:setting)
|
||||||
|
@setting3 = create(:setting)
|
||||||
|
login_as(create(:administrator).user)
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'Index' do
|
||||||
|
visit admin_settings_path
|
||||||
|
|
||||||
|
expect(page).to have_content @setting1.key.classify
|
||||||
|
expect(page).to have_content @setting2.key.classify
|
||||||
|
expect(page).to have_content @setting3.key.classify
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'Update' do
|
||||||
|
visit admin_settings_path
|
||||||
|
|
||||||
|
within("#edit_setting_#{@setting2.id}") do
|
||||||
|
fill_in "setting_#{@setting2.id}", with: 'Super Users of level 2'
|
||||||
|
click_button 'Update Setting'
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(page).to have_content 'Setting updated!'
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user