diff --git a/app/models/environment.rb b/app/models/environment.rb index 24d35e4..9675024 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -474,7 +474,8 @@ class Environment < ActiveRecord::Base end def custom_person_fields - self.settings[:custom_person_fields].nil? ? {} : self.settings[:custom_person_fields] + self.settings[:custom_person_fields] = {} if self.settings[:custom_person_fields].nil? + self.settings[:custom_person_fields] end def custom_person_fields=(values) diff --git a/lib/noosfero/api/entities.rb b/lib/noosfero/api/entities.rb index 5f8636f..095dcb6 100644 --- a/lib/noosfero/api/entities.rb +++ b/lib/noosfero/api/entities.rb @@ -30,10 +30,30 @@ module Noosfero end end + class CategoryBase < Entity + root 'categories', 'category' + expose :name, :id, :slug + end + + class Category < CategoryBase + root 'categories', 'category' + expose :full_name do |category, options| + category.full_name + end + expose :parent, :using => CategoryBase, if: { parent: true } + expose :children, :using => CategoryBase, if: { children: true } + expose :image, :using => Image + end + + class Region < Category + root 'regions', 'region' + end + class Profile < Entity expose :identifier, :name, :id expose :created_at, :format_with => :timestamp expose :image, :using => Image + expose :region, :using => Region end class UserBasic < Entity @@ -55,21 +75,6 @@ module Noosfero expose :description end - class CategoryBase < Entity - root 'categories', 'category' - expose :name, :id, :slug - end - - class Category < CategoryBase - root 'categories', 'category' - expose :full_name do |category, options| - category.full_name - end - expose :parent, :using => CategoryBase, if: { parent: true } - expose :children, :using => CategoryBase, if: { children: true } - expose :image, :using => Image - end - class ArticleBase < Entity root 'articles', 'article' expose :id diff --git a/lib/noosfero/api/helpers.rb b/lib/noosfero/api/helpers.rb index b3f4df1..c3850db 100644 --- a/lib/noosfero/api/helpers.rb +++ b/lib/noosfero/api/helpers.rb @@ -103,8 +103,8 @@ require 'grape' present articles, :with => Entities::Article, :fields => params[:fields] end - def find_articles(asset) - articles = select_filtered_collection_of(asset, 'articles', params) + def find_articles(asset, method = 'articles') + articles = select_filtered_collection_of(asset, method, params) if current_person.present? articles = articles.display_filter(current_person, nil) else diff --git a/lib/noosfero/api/v1/articles.rb b/lib/noosfero/api/v1/articles.rb index 7bf9f7b..393f0f2 100644 --- a/lib/noosfero/api/v1/articles.rb +++ b/lib/noosfero/api/v1/articles.rb @@ -95,9 +95,8 @@ module Noosfero #TODO make tests for this situation votes_order = params.delete(:order) if params[:order]=='votes_score' - articles = select_filtered_collection_of(article, 'children', params) - articles = articles.display_filter(current_person, article.profile) + articles = find_articles(article, 'children') #TODO make tests for this situation if votes_order diff --git a/plugins/juventude b/plugins/juventude index b8cd738..08b594d 160000 --- a/plugins/juventude +++ b/plugins/juventude @@ -1 +1 @@ -Subproject commit b8cd73843df709c6e039e042d93b0bba843f58ec +Subproject commit 08b594d907791da12c9097f355d8ee6a715bd14a -- libgit2 0.21.2