muck-services 0.1.46 → 0.1.47

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.46
1
+ 0.1.47
@@ -3,7 +3,7 @@ class Admin::Muck::FeedsController < Admin::Muck::BaseController
3
3
  unloadable
4
4
 
5
5
  def index
6
- @feeds = Feed.find(:all, :order => (params[:order] || 'created_at') + (params[:asc] == 'false' ? ' DESC' : ' ASC') + ', title', :include => [:default_language]).paginate(:page => @page, :per_page => @per_page)
6
+ @feeds = Aggregation.global_feeds(params[:order], params[:asc]).paginate(:page => @page, :per_page => @per_page)
7
7
  respond_to do |format|
8
8
  format.html { render :template => 'admin/feeds/index' }
9
9
  format.xml { render :xml => @feeds.to_xml }
@@ -6,7 +6,7 @@ class Muck::FeedsController < ApplicationController
6
6
  before_filter :get_owner, :except => ['index', 'show']
7
7
 
8
8
  def index
9
- @feeds = Feed.find(:all, :conditions => 'status >= 0', :order => (params[:order] || 'title') + (params[:asc] == 'false' ? ' DESC' : ' ASC') + ', title', :include => [:default_language]).paginate(:page => @page, :per_page => @per_page)
9
+ @feeds = Aggregation.global_feeds(params[:order], params[:asc]).paginate(:page => @page, :per_page => @per_page)
10
10
  respond_to do |format|
11
11
  format.html { render :template => 'feeds/index' }
12
12
  format.xml { render :xml => @feeds.to_xml }
@@ -14,18 +14,18 @@ module MuckServicesFeedsHelper
14
14
 
15
15
  def feed_contributor_link(feed)
16
16
  if feed.contributor_id.nil?
17
- admin = Feed.find_by_login('admin')
17
+ # admin = Feed.find_by_login('admin')
18
18
  'unknown'
19
19
  else
20
20
  link_to feed.contributor.display_name, profile_path(feed.contributor)
21
21
  end
22
22
  end
23
23
 
24
- def sort_feeds_link(current_order, current_asc, new_order, admin = false)
24
+ def sort_feeds_url(current_order, current_asc, new_order, admin = false)
25
25
  if admin == true
26
26
  admin_feeds_url(:order => new_order, :asc => (current_order == new_order && (current_asc == 'true' || current_asc == nil)) ? 'false' : 'true')
27
27
  else
28
- feeds_url(:order => new_order, :asc => (current_order == new_order && (current_asc == 'true' || current_asc == nil)) ? 'false' : 'true')
28
+ feeds_url(:order => new_order, :asc => (current_order == new_order && (current_asc == 'false' || current_asc == nil)) ? 'true' : 'false')
29
29
  end
30
30
  end
31
31
 
@@ -30,7 +30,21 @@ class Aggregation < ActiveRecord::Base
30
30
  named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
31
31
  named_scope :newest, :order => "created_at DESC"
32
32
 
33
-
33
+
34
+ def self.global_feeds(order_field = 'title', ascending = 'true')
35
+ allowed_fields = ['languages.english_name','status','entries_count','harvested_from_title','last_harvested_at','created_at','feed_contributor']
36
+ order_direction = (ascending == 'false' ? ' DESC' : ' ASC')
37
+ order_by = allowed_fields.include?(order_field) ? (order_field + order_direction + ', title') : ('title ' + order_direction)
38
+
39
+ Feed.find_by_sql("SELECT users.id feed_contributor_id, users.login feed_contributor, languages.english_name default_language_name, feeds.*, aggregation_id <=> 1 FROM aggregations " +
40
+ "INNER JOIN aggregation_feeds ON aggregations.id = aggregation_feeds.aggregation_id " +
41
+ "RIGHT OUTER JOIN feeds ON aggregation_feeds.feed_id = feeds.id " +
42
+ "INNER JOIN languages ON feeds.default_language_id = languages.id " +
43
+ "LEFT OUTER JOIN users ON feeds.contributor_id = users.id " +
44
+ # "WHERE aggregations.title = 'global_feeds' AND feeds.status >= 0 " +
45
+ "ORDER BY #{order_by}")
46
+ end
47
+
34
48
  # Builds and then adds feeds for a given terms
35
49
  # user: User to be associated with each feed. Default is nil which makes each feed global.
36
50
  # service_ids: An array of service ids. Nil will generate a feed for every available service.
@@ -7,14 +7,15 @@
7
7
  </p>
8
8
  <table class="feeds">
9
9
  <tr>
10
- <th><%= link_to t('muck.services.approval_status'), sort_feeds_link(params[:order], params[:asc], 'status', true) %></th>
11
- <th><%= link_to t('muck.services.status'), sort_feeds_link(params[:order], params[:asc], 'status', true) %></th>
12
- <th><%= link_to t('muck.services.default_language'), sort_feeds_link(params[:order], params[:asc], 'languages.english_name', true) %></th>
13
- <th><%= link_to t('muck.services.entries_count'), sort_feeds_link(params[:order], params[:asc], 'entries_count', true) %></th>
14
- <th><%= link_to t('muck.services.repository'), sort_feeds_link(params[:order], params[:asc], 'harvested_from_title', true) %></th>
15
- <th><%= link_to t('muck.services.title'), sort_feeds_link(params[:order], params[:asc], 'title', true) %></th>
16
- <th><%= link_to t('muck.services.harvested_at'), sort_feeds_link(params[:order], params[:asc], 'last_harvested_at', true) %></th>
17
- <th><%= link_to t('muck.services.added_date'), sort_feeds_link(params[:order], params[:asc], 'created_at', true) %></th>
10
+ <th><%= link_to t('muck.services.approval_status'), sort_feeds_url(params[:order], params[:asc], 'status', true) %></th>
11
+ <th><%= link_to t('muck.services.entries_count'), sort_feeds_url(params[:order], params[:asc], 'entries_count', true) %></th>
12
+ <th><%= link_to t('muck.services.title'), sort_feeds_url(params[:order], params[:asc], 'title', true) %></th>
13
+ <th><%= link_to t('muck.services.contributor'), sort_feeds_url(params[:order], params[:asc], 'feed_contributor', true) %></th>
14
+ <th width="70px"><%= link_to t('muck.services.added_date'), sort_feeds_url(params[:order], params[:asc], 'created_at', true) %></th>
15
+ <th width="120px"><%= link_to t('muck.services.harvested_at'), sort_feeds_url(params[:order], params[:asc], 'last_harvested_at', true) %></th>
16
+ <th><%= link_to t('muck.services.default_language'), sort_feeds_url(params[:order], params[:asc], 'languages.english_name', true) %></th>
17
+ <th><%= link_to t('muck.services.repository'), sort_feeds_url(params[:order], params[:asc], 'harvested_from_title', true) %></th>
18
+ <th><%= link_to t('muck.services.status'), sort_feeds_url(params[:order], params[:asc], 'status') %></th>
18
19
  </tr>
19
20
  <%= render :partial => 'feeds/feed_row', :collection => @feeds, :locals => { :show_admin => true } %>
20
21
  </table>
@@ -7,10 +7,10 @@
7
7
  </p>
8
8
  <table class="feeds">
9
9
  <tr>
10
- <th><%= link_to t('muck.services.status'), sort_feeds_link(params[:order], params[:asc], 'status', true) %></th>
11
- <th><%= link_to t('muck.services.default_language'), sort_feeds_link(params[:order], params[:asc], 'languages.english_name', true) %></th>
12
- <th><%= link_to t('muck.services.title'), sort_feeds_link(params[:order], params[:asc], 'title', true) %></th>
13
- <th><%= link_to t('muck.services.added_date'), sort_feeds_link(params[:order], params[:asc], 'created_at', true) %></th>
10
+ <th><%= link_to t('muck.services.status'), sort_feeds_url(params[:order], params[:asc], 'status', true) %></th>
11
+ <th><%= link_to t('muck.services.default_language'), sort_feeds_url(params[:order], params[:asc], 'languages.english_name', true) %></th>
12
+ <th><%= link_to t('muck.services.title'), sort_feeds_url(params[:order], params[:asc], 'title', true) %></th>
13
+ <th><%= link_to t('muck.services.added_date'), sort_feeds_url(params[:order], params[:asc], 'created_at', true) %></th>
14
14
  </tr>
15
15
  <%= render :partial => 'oai_endpoints/oai_endpoint_row', :collection => @oai_endpoints, :locals => { :show_admin => true } %>
16
16
  </table>
@@ -7,13 +7,14 @@
7
7
  </p>
8
8
  <table class="feeds">
9
9
  <tr>
10
- <th><%= link_to t('muck.services.status'), sort_feeds_link(params[:order], params[:asc], 'status') %></th>
11
- <th><%= link_to t('muck.services.default_language'), sort_feeds_link(params[:order], params[:asc], 'languages.english_name') %></th>
12
- <th><%= link_to t('muck.services.entries_count'), sort_feeds_link(params[:order], params[:asc], 'entries_count') %></th>
13
- <th><%= link_to t('muck.services.repository'), sort_feeds_link(params[:order], params[:asc], 'harvested_from_title') %></th>
14
- <th><%= link_to t('muck.services.title'), sort_feeds_link(params[:order], params[:asc], 'title') %></th>
15
- <th><%= link_to t('muck.services.harvested_at'), sort_feeds_link(params[:order], params[:asc], 'last_harvested_at') %></th>
16
- <th><%= link_to t('muck.services.added_date'), sort_feeds_link(params[:order], params[:asc], 'created_at') %></th>
10
+ <th><%= link_to t('muck.services.entries_count'), sort_feeds_url(params[:order], params[:asc], 'entries_count') %></th>
11
+ <th><%= link_to t('muck.services.title'), sort_feeds_url(params[:order], params[:asc], 'title') %></th>
12
+ <th><%= link_to t('muck.services.contributor'), sort_feeds_url(params[:order], params[:asc], 'feed_contributor') %></th>
13
+ <th width="70px"><%= link_to t('muck.services.added_date'), sort_feeds_url(params[:order], params[:asc], 'created_at') %></th>
14
+ <th width="120px"><%= link_to t('muck.services.harvested_at'), sort_feeds_url(params[:order], params[:asc], 'last_harvested_at') %></th>
15
+ <th><%= link_to t('muck.services.default_language'), sort_feeds_url(params[:order], params[:asc], 'languages.english_name') %></th>
16
+ <th><%= link_to t('muck.services.repository'), sort_feeds_url(params[:order], params[:asc], 'harvested_from_title') %></th>
17
+ <th><%= link_to t('muck.services.status'), sort_feeds_url(params[:order], params[:asc], 'status') %></th>
17
18
  </tr>
18
19
  <%= render :partial => 'feeds/feed_row', :collection => @feeds %>
19
20
  </table>
data/lib/muck_services.rb CHANGED
@@ -20,3 +20,4 @@ ActiveRecord::Base.class_eval { include ActiveRecord::Acts::MuckAggregationOwner
20
20
  ActiveRecord::Base.class_eval { include ActiveRecord::Acts::MuckRecommendations }
21
21
 
22
22
  I18n.load_path += Dir[ File.join(File.dirname(__FILE__), '..', 'locales', '*.{rb,yml}') ]
23
+ MuckEngine.add_muck_admin_nav_item('Feeds', '/admin/feeds')
data/locales/en.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  en:
3
3
  muck:
4
+ admin:
5
+ feeds: Feeds
4
6
  services:
5
7
  get_recommendations: Get Recommendations
6
8
  generate_new_topic: Generate a new topic
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{muck-services}
8
- s.version = "0.1.46"
8
+ s.version = "0.1.47"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joel Duffin", "Justin Ball"]
12
- s.date = %q{2010-09-13}
12
+ s.date = %q{2010-10-21}
13
13
  s.description = %q{This gem contains the rails specific code for dealing with feeds, aggregations and recommendations. It is meant to work with the muck-raker gem.}
14
14
  s.email = %q{justin@tatemae.com}
15
15
  s.extra_rdoc_files = [
@@ -23,7 +23,6 @@ Gem::Specification.new do |s|
23
23
  "README.rdoc",
24
24
  "Rakefile",
25
25
  "VERSION",
26
- "VERSION.orig",
27
26
  "app/controllers/admin/muck/feeds_controller.rb",
28
27
  "app/controllers/admin/muck/oai_endpoints_controller.rb",
29
28
  "app/controllers/muck/aggregation_feeds_controller.rb",
@@ -529,7 +528,6 @@ Gem::Specification.new do |s|
529
528
  "test/rails_root/test/unit/feed_test.rb",
530
529
  "test/rails_root/test/unit/identity_feed_test.rb",
531
530
  "test/rails_root/test/unit/oai_endpoint_test.rb",
532
- "test/rails_root/test/unit/one_test.rb",
533
531
  "test/rails_root/test/unit/personal_recommendation_test.rb",
534
532
  "test/rails_root/test/unit/recommendation_test.rb",
535
533
  "test/rails_root/test/unit/service_category_test.rb",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muck-services
3
3
  version: !ruby/object:Gem::Version
4
- hash: 71
4
+ hash: 69
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 46
10
- version: 0.1.46
9
+ - 47
10
+ version: 0.1.47
11
11
  platform: ruby
12
12
  authors:
13
13
  - Joel Duffin
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-09-13 00:00:00 -06:00
19
+ date: 2010-10-21 00:00:00 -06:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -203,7 +203,6 @@ files:
203
203
  - README.rdoc
204
204
  - Rakefile
205
205
  - VERSION
206
- - VERSION.orig
207
206
  - app/controllers/admin/muck/feeds_controller.rb
208
207
  - app/controllers/admin/muck/oai_endpoints_controller.rb
209
208
  - app/controllers/muck/aggregation_feeds_controller.rb
@@ -701,7 +700,6 @@ files:
701
700
  - test/rails_root/test/unit/feed_test.rb
702
701
  - test/rails_root/test/unit/identity_feed_test.rb
703
702
  - test/rails_root/test/unit/oai_endpoint_test.rb
704
- - test/rails_root/test/unit/one_test.rb
705
703
  - test/rails_root/test/unit/personal_recommendation_test.rb
706
704
  - test/rails_root/test/unit/recommendation_test.rb
707
705
  - test/rails_root/test/unit/service_category_test.rb
@@ -844,7 +842,6 @@ test_files:
844
842
  - test/rails_root/test/unit/feed_test.rb
845
843
  - test/rails_root/test/unit/identity_feed_test.rb
846
844
  - test/rails_root/test/unit/oai_endpoint_test.rb
847
- - test/rails_root/test/unit/one_test.rb
848
845
  - test/rails_root/test/unit/personal_recommendation_test.rb
849
846
  - test/rails_root/test/unit/recommendation_test.rb
850
847
  - test/rails_root/test/unit/service_category_test.rb
data/VERSION.orig DELETED
@@ -1,5 +0,0 @@
1
- <<<<<<< HEAD
2
- 0.1.40
3
- =======
4
- 0.1.42
5
- >>>>>>> 97d29b7a4de0792aa8744d745f5f6774266b01c8
@@ -1,13 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class OneTest < ActiveSupport::TestCase
4
- context "entry instance" do
5
- setup do
6
- @entry = Factory(:entry)
7
- end
8
-
9
- subject { @entry }
10
-
11
-
12
- end
13
- end