Skip to content

Commit 8d22aef

Browse files
committed
clean networks
1 parent b95beee commit 8d22aef

File tree

10 files changed

+5
-499
lines changed

10 files changed

+5
-499
lines changed

app/controllers/networks_controller.rb

Lines changed: 4 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,12 @@
11
class NetworksController < ApplicationController
22
include ProtipsHelper
3-
before_action :lookup_network, only: [:show, :members, :join, :leave, :destroy, :add_tag, :remove_tag, :update_tags, :mayor, :expert, :tag, :current_mayor]
4-
before_action :access_required, only: [:new, :create, :edit, :update, :destroy]
5-
before_action :require_admin!, only: [:new, :create, :edit, :update, :destroy, :add_tag, :remove_tag, :update_tags]
6-
before_action :limit_results, only: [:index, :members, :show, :tag]
7-
before_action :set_search_params, only: [:show, :mayor, :expert, :expert, :tag]
8-
before_action :redirect_to_search, only: [:show, :tag]
3+
before_action :lookup_network, only: [:show, :join, :leave]
4+
before_action :limit_results, only: [:index, :show]
5+
before_action :set_search_params, only: [:show]
6+
before_action :redirect_to_search, only: [:show]
97
respond_to :html, :json, :js
108
cache_sweeper :follow_sweeper, only: [:join, :leave]
119

12-
def new
13-
@network = Network.new
14-
end
15-
16-
def create
17-
@network = Network.new(params[:network].permit(:name))
18-
respond_to do |format|
19-
if @network.save
20-
format.html { redirect_to networks_path, notice: "#{@network.name} Network was successfully created." }
21-
else
22-
format.html { render action: 'new' }
23-
end
24-
end
25-
end
26-
2710
def index
2811
@index_networks_params = params.permit(:sort, :action)
2912

@@ -35,83 +18,6 @@ def index
3518
end
3619
end
3720

38-
def members
39-
render :show
40-
end
41-
42-
def show
43-
@protips = []
44-
@topics = @network.tag_list
45-
46-
if (params[:sort].blank? && params[:filter].blank?) || params[:sort] == 'upvotes'
47-
@protips = @network.most_upvoted_protips(@per_page, @page)
48-
@query = 'sort:upvotes desc'
49-
params[:sort] = 'upvotes'
50-
elsif params[:sort] == 'new'
51-
@protips = @network.new_protips(@per_page, @page)
52-
@query = 'sort:created_at desc'
53-
elsif params[:filter] == 'featured'
54-
@protips = @network.featured_protips(@per_page, @page)
55-
@query = 'sort:featured desc'
56-
elsif params[:filter] == 'flagged'
57-
ensure_admin!
58-
@protips = @network.flagged_protips(@per_page, @page)
59-
@query = 'sort:flagged desc'
60-
elsif params[:sort] == 'trending'
61-
@protips = @network.highest_scored_protips(@per_page, @page, :trending_score)
62-
@query = 'sort:trending_score desc'
63-
elsif params[:sort] == 'hn'
64-
@protips = @network.highest_scored_protips(@per_page, @page, :trending_hn_score)
65-
@query = 'sort:trending_hn_score desc'
66-
elsif params[:sort] == 'popular'
67-
@protips = @network.highest_scored_protips(@per_page, @page, :popular_score)
68-
@query = 'sort:popular_score desc'
69-
end
70-
end
71-
72-
def tag
73-
redirect_to network_path(@network.slug) unless @network.nil? || params[:id]
74-
@networks = [@network] unless @network.nil?
75-
tags_array = params[:tags].nil? ? [] : params[:tags].split('/')
76-
@query = 'sort:score desc'
77-
@protips = Protip.search_trending_by_topic_tags(@query, tags_array, @page, @per_page)
78-
@topics = tags_array
79-
@topic = tags_array.join(' + ')
80-
@topic_user = nil
81-
@networks = tags_array.flat_map { |tag| Network.networks_for_tag(tag) }.uniq if @networks.nil?
82-
end
83-
84-
def mayor
85-
@protips = @network.mayor_protips(@per_page, @page)
86-
render :show
87-
end
88-
89-
def expert
90-
@protips = @network.expert_protips(@per_page, @page)
91-
render :show
92-
end
93-
94-
def featured
95-
featured_networks = Network.featured
96-
if featured_networks.any?
97-
@networks = featured_networks
98-
else
99-
@networks = Network.most_protips.first(7)
100-
end
101-
render :index
102-
end
103-
104-
def user
105-
redirect_to_signup_if_unauthenticated(request.referer, 'You must login/signup to view your networks') do
106-
user = current_user
107-
user = User.find_by_username(params[:username]) if is_admin?
108-
@networks = user.networks
109-
@user = user
110-
@index_networks_params = params.permit(:sort, :action)
111-
render :index
112-
end
113-
end
114-
11521
def join
11622
redirect_to_signup_if_unauthenticated(request.referer, 'You must login/signup to join a network') do
11723
return leave if current_user.member_of?(@network)
@@ -132,62 +38,6 @@ def leave
13238
end
13339
end
13440

135-
def destroy
136-
@network.destroy
137-
respond_to do |format|
138-
format.json { head :ok }
139-
end
140-
end
141-
142-
def add_tag
143-
tag = params[:tag]
144-
@network.tag_list.add(tag)
145-
146-
respond_to do |format|
147-
if @network.save
148-
format.html { redirect_to network_path(@network.slug) }
149-
format.json { head :ok }
150-
else
151-
format.html { redirect_to network_path(@network.slug) }
152-
format.json { head :unprocessable_entity }
153-
end
154-
end
155-
end
156-
157-
def remove_tag
158-
tag = params[:tag]
159-
@network.tag_list.remove(tag)
160-
161-
respond_to do |format|
162-
if @network.save
163-
format.html { redirect_to network_path(@network.slug) }
164-
format.json { head :ok }
165-
else
166-
format.html { redirect_to network_path(@network.slug) }
167-
format.json { head :unprocessable_entity }
168-
end
169-
end
170-
end
171-
172-
def update_tags
173-
tags = params[:tags][:tags]
174-
@network.tag_list = tags.split(',').map(&:strip).select { |tag| Tag.exists?(name: tag) }
175-
176-
respond_to do |format|
177-
if @network.save
178-
format.html { redirect_to network_path(@network.slug) }
179-
format.json { head :ok }
180-
else
181-
format.html { redirect_to network_path(@network.slug) }
182-
format.json { head :unprocessable_entity }
183-
end
184-
end
185-
end
186-
187-
def current_mayor
188-
@mayor = @network.try(:mayor)
189-
end
190-
19141
private
19242

19343
def lookup_network
@@ -206,14 +56,6 @@ def set_search_params
20656
@per_page = params[:per_page] || 15
20757
end
20858

209-
def featured_from_env
210-
ENV['FEATURED_NETWORKS'].split(',').map(&:strip) unless ENV['FEATURED_NETWORKS'].nil?
211-
end
212-
213-
def ensure_admin!
214-
redirect_to networks_path unless is_admin?
215-
end
216-
21759
def redirect_to_search
21860
tags = @network.try(:slug).try(:split) || (params[:tags] && params[:tags].split('/')) || []
21961
tags = tags.map { |tag| "##{tag}" }.join(' ')

app/models/network.rb

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,12 @@ class Network < ActiveRecord::Base
3232

3333
acts_as_taggable
3434
acts_as_followable
35-
attr_accessor :resident_expert
36-
has_many :network_experts, autosave: true, dependent: :destroy
3735

3836
validates :slug, uniqueness: true
3937

4038
before_validation :create_slug!
4139
after_validation :tag_with_name!
4240

43-
before_save :assign_mayor!
4441
before_save :correct_tags
4542
before_save :cache_counts!
4643
after_create :assign_members
@@ -118,39 +115,11 @@ def potential_tags
118115
self.protips_tags_with_count.map(&:name).uniq
119116
end
120117

121-
def mayor
122-
@mayor ||= self.network_experts.where(designation: 'mayor').last.try(:user)
123-
end
124-
125-
def assign_mayor!
126-
127-
candidate = self.in_line_to_the_throne.first
128-
unless candidate.nil?
129-
Rails.logger.debug "finding a mayor among: #{self.tag_list}" if ENV['DEBUG']
130-
person_with_most_upvoted_protips_on_topic = User.find(candidate.user_id)
131-
Rails.logger.debug "mayor for #{name} found: #{person_with_most_upvoted_protips_on_topic.username}" if ENV['DEBUG']
132-
133-
#if self.mayor && person_with_most_upvoted_protips_on_topic && person_with_most_upvoted_protips_on_topic.id != self.mayor.id
134-
# enqueue(GenerateEvent, :new_mayor, Hash[*[Audience.network(self.id), Audience.admin].map(&:to_a).flatten(2)], self.to_event_hash(:mayor => person_with_most_upvoted_protips_on_topic), 30.minutes)
135-
#end
136-
137-
self.network_experts.build(user: person_with_most_upvoted_protips_on_topic, designation: :mayor)
138-
end
139-
end
140-
141118
def to_event_hash(options={})
142119
{ user: { username: options[:mayor] && options[:mayor].try(:username) },
143120
network: { name: self.name, url: Rails.application.routes.url_helpers.network_path(self.slug) } }
144121
end
145122

146-
def resident_expert
147-
@resident ||= self.network_experts.where(designation: 'resident_expert').last.try(:user)
148-
end
149-
150-
def resident_expert=(user)
151-
self.network_experts.build(designation: 'resident_expert', user_id: user.id)
152-
end
153-
154123
def to_indexed_json
155124
to_public_hash.to_json
156125
end
@@ -218,22 +187,6 @@ def new_members(limit = nil, offset = 0)
218187
User.where(id: Follow.for_followable(self).where('follows.created_at > ?', 1.week.ago).pluck(:follower_id)).limit(limit).offset(offset)
219188
end
220189

221-
def ranked_members(limit = 15)
222-
self.in_line_to_the_throne.limit(limit).map(&:user)
223-
end
224-
225-
def in_line_to_the_throne
226-
self.protips.select('protips.user_id, SUM(protips.score) AS total_score').group('protips.user_id').order('SUM(protips.score) DESC').where('upvotes_value_cache > 0')
227-
end
228-
229-
def resident_expert_from_env
230-
ENV['RESIDENT_EXPERTS'].split(",").each do |expert_config|
231-
network, resident_expert = expert_config.split(/:/).map(&:strip)
232-
return User.find_by_username(resident_expert) if network == self.slug
233-
end unless ENV['RESIDENT_EXPERTS'].nil?
234-
nil
235-
end
236-
237190
def assign_members
238191
Skill.where(name: self.tag_list).select('DISTINCT(user_id)').map(&:user).each do |member|
239192
member.join(self)

app/models/network_expert.rb

Lines changed: 0 additions & 20 deletions
This file was deleted.

app/views/networks/current_mayor.html.haml

Lines changed: 0 additions & 34 deletions
This file was deleted.

app/views/networks/index.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
A - Z
2929
- if @index_networks_params[:action] == 'index'
3030
%li.add-network
31-
=link_to('Add Network', add_network_url, class: '')
31+
=link_to('Add Network', 'mailto:support@coderwall.com?subject=Request for a new network')
3232

3333
%ol.networks-list
3434
- if @networks.blank?

app/views/networks/new.html.haml

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)