Navigation Menu

Skip to content

Commit

Permalink
enable/disable saved_searches & watch_projects
Browse files Browse the repository at this point in the history
  • Loading branch information
ajb committed Apr 6, 2013
1 parent 9138c34 commit 3e0bac0
Show file tree
Hide file tree
Showing 10 changed files with 73 additions and 31 deletions.
4 changes: 3 additions & 1 deletion app/controllers/global_config_controller.rb
Expand Up @@ -69,6 +69,8 @@ def authorize!
end

def global_config_params
params.require(:global_config).permit(:bid_review_enabled, :bid_submission_enabled, :comments_enabled, :questions_enabled, :amendments_enabled)
params.require(:global_config)
.permit(:bid_review_enabled, :bid_submission_enabled, :comments_enabled, :questions_enabled, :amendments_enabled,
:watch_projects_enabled, :save_searches_enabled, :search_projects_enabled)
end
end
1 change: 1 addition & 0 deletions app/controllers/saved_searches_controller.rb
@@ -1,6 +1,7 @@
class SavedSearchesController < ApplicationController
before_filter :authenticate_vendor!
before_filter :saved_search_exists?, only: :destroy
before_filter { |c| c.check_enabled!('save_searches') }

def index
@saved_searches = current_vendor.saved_searches.paginate(page: params[:page])
Expand Down
1 change: 1 addition & 0 deletions app/controllers/watches_controller.rb
Expand Up @@ -2,6 +2,7 @@ class WatchesController < ApplicationController
before_filter :authenticate_user!, only: :post
before_filter :authenticate_vendor!, only: :vendor_projects
before_filter :load_and_authorize_watchable!, only: :post
before_filter only: [:vendor_projects] { |c| c.check_enabled!('watch_projects') }

def post
current_user.send(current_user.watches?(params[:watchable_type], params[:watchable_id]) ? :unwatch! : :watch!,
Expand Down
21 changes: 12 additions & 9 deletions app/models/global_config.rb
Expand Up @@ -2,15 +2,18 @@
#
# Table name: global_configs
#
# id :integer not null, primary key
# bid_review_enabled :boolean default(TRUE)
# bid_submission_enabled :boolean default(TRUE)
# comments_enabled :boolean default(TRUE)
# questions_enabled :boolean default(TRUE)
# event_hooks :text
# created_at :datetime not null
# updated_at :datetime not null
# amendments_enabled :boolean default(TRUE)
# id :integer not null, primary key
# bid_review_enabled :boolean default(TRUE)
# bid_submission_enabled :boolean default(TRUE)
# comments_enabled :boolean default(TRUE)
# questions_enabled :boolean default(TRUE)
# event_hooks :text
# created_at :datetime not null
# updated_at :datetime not null
# amendments_enabled :boolean default(TRUE)
# watch_projects_enabled :boolean default(TRUE)
# save_searches_enabled :boolean default(TRUE)
# search_projects_enabled :boolean default(TRUE)
#

require_dependency 'enum'
Expand Down
15 changes: 15 additions & 0 deletions app/views/global_config/get.html.haml
Expand Up @@ -28,6 +28,21 @@
= f.check_box :amendments_enabled
Amendments

%label.checkbox
.switch
= f.check_box :watch_projects_enabled
Watch Projects

%label.checkbox
.switch
= f.check_box :save_searches_enabled
Save Searches

%label.checkbox
.switch
= f.check_box :search_projects_enabled
Fancy projects page

%h4 Event Hooks

.row-fluid
Expand Down
10 changes: 6 additions & 4 deletions app/views/layouts/_navbar.html.haml
Expand Up @@ -22,10 +22,12 @@
%li
=link_to "My Projects", mine_projects_path
- elsif vendor_signed_in?
%li
=link_to "Watched Projects", vendor_projects_watches_path
%li
=link_to "Saved Searches", saved_searches_path
- if GlobalConfig.instance[:watch_projects_enabled]
%li
=link_to "Watched Projects", vendor_projects_watches_path
- if GlobalConfig.instance[:save_searches_enabled]
%li
=link_to "Saved Searches", saved_searches_path
%li
=link_to "Settings", settings_path

Expand Down
@@ -0,0 +1,7 @@
class AddMoreOnOffToGlobalConfigs < ActiveRecord::Migration
def change
add_column :global_configs, :watch_projects_enabled, :boolean, default: true
add_column :global_configs, :save_searches_enabled, :boolean, default: true
add_column :global_configs, :search_projects_enabled, :boolean, default: true
end
end
19 changes: 11 additions & 8 deletions db/schema.rb
Expand Up @@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.

ActiveRecord::Schema.define(:version => 20130406004215) do
ActiveRecord::Schema.define(:version => 20130406004710) do

create_table "amendments", :force => true do |t|
t.integer "project_id"
Expand Down Expand Up @@ -126,14 +126,17 @@
end

create_table "global_configs", :force => true do |t|
t.boolean "bid_review_enabled", :default => true
t.boolean "bid_submission_enabled", :default => true
t.boolean "comments_enabled", :default => true
t.boolean "questions_enabled", :default => true
t.boolean "bid_review_enabled", :default => true
t.boolean "bid_submission_enabled", :default => true
t.boolean "comments_enabled", :default => true
t.boolean "questions_enabled", :default => true
t.text "event_hooks"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.boolean "amendments_enabled", :default => true
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.boolean "amendments_enabled", :default => true
t.boolean "watch_projects_enabled", :default => true
t.boolean "save_searches_enabled", :default => true
t.boolean "search_projects_enabled", :default => true
end

create_table "impressions", :force => true do |t|
Expand Down
5 changes: 5 additions & 0 deletions lib/tasks/send_saved_search_emails.rake
Expand Up @@ -2,6 +2,11 @@ namespace :send_saved_search_emails do

desc "send all emails"
task all: :environment do
if !GlobalConfig.instance[:save_searches_enabled]
puts "Saved searches are not enabled for your app."
next
end

Vendor.all.each do |vendor|
SavedSearchMailer.search_email(vendor).deliver
end
Expand Down
21 changes: 12 additions & 9 deletions spec/models/global_config_spec.rb
Expand Up @@ -2,15 +2,18 @@
#
# Table name: global_configs
#
# id :integer not null, primary key
# bid_review_enabled :boolean default(TRUE)
# bid_submission_enabled :boolean default(TRUE)
# comments_enabled :boolean default(TRUE)
# questions_enabled :boolean default(TRUE)
# event_hooks :text
# created_at :datetime not null
# updated_at :datetime not null
# amendments_enabled :boolean default(TRUE)
# id :integer not null, primary key
# bid_review_enabled :boolean default(TRUE)
# bid_submission_enabled :boolean default(TRUE)
# comments_enabled :boolean default(TRUE)
# questions_enabled :boolean default(TRUE)
# event_hooks :text
# created_at :datetime not null
# updated_at :datetime not null
# amendments_enabled :boolean default(TRUE)
# watch_projects_enabled :boolean default(TRUE)
# save_searches_enabled :boolean default(TRUE)
# search_projects_enabled :boolean default(TRUE)
#

require 'spec_helper'
Expand Down

0 comments on commit 3e0bac0

Please sign in to comment.