Skip to content
Snippets Groups Projects
Commit 4d77d146 authored by Clarissa's avatar Clarissa
Browse files

Merge branch 'master' of gitlab.c3sl.ufpr.br:portalmec/portalmec into issue/281

parents 1e485ab4 b5493c32
No related branches found
No related tags found
No related merge requests found
......@@ -33,24 +33,22 @@ class V1::FeedController < ApplicationController
private
def activities_followed
query = ""
query = "privacy = 'public' and ("
values = [""]
# builds a query string to find all relevant activities
current_user.watching.each do |watching|
if !watching.respond_to?(:state) || watching.state == "published"
# Activities that are made by, owned by, or change the object you follow should be found
query += " (trackable_type = ? and trackable_id = ?) or (owner_type = ? and owner_id = ?) or (recipient_type = ? and recipient_id = ?) or"
values << watching.class.to_s
values << watching.id
values << watching.class.to_s
values << watching.id
if !watching.respond_to?(:state) || watching.state == "published"
# Activities that are made by, owned by, or change the object you follow should be found
query += " (trackable_type = ? and trackable_id = ?) or (owner_type = ? and owner_id = ?) or (recipient_type = ? and recipient_id = ?) or"
3.times do
values << watching.class.to_s
values << watching.id
end
end
end
values[0] = query[0..-3] # remove trailing "or" on the query
values[0] = query[0..-3]+")" # remove trailing "or" on the query
return PublicActivity::Activity.where(key: activities_filter).where(values).order(created_at: :desc)
end
......
......@@ -39,7 +39,7 @@ class V1::LearningObjectsController < ApplicationController
before_action :set_paper_trail_whodunnit, except: [:index, :show]
def index
learning_objects = paginate LearningObject.includes(:tags, :publisher, :language, :license, :subjects, :educational_stages, :reviews)
learning_objects = paginate policy_scope(LearningObject).includes(:tags, :publisher, :language, :license, :subjects, :educational_stages, :reviews).order(score: :desc)
serializer = params[:obaa].nil? ? LearningObjectSerializer : LearningObjectObaaSerializer
http_cache_forever do
render json: learning_objects, each_serializer: serializer
......
......@@ -69,6 +69,7 @@ module Trackable
end
def activity_privacy
proc { |_controller, model| model.try(:privacy) || 'public' }
proc { |_controller, model| model.try(:privacy) || model.try(:recipient).try(:privacy) || 'public' }
end
end
......@@ -179,4 +179,9 @@ class LearningObject < ApplicationRecord
def ignore_changes
super + %w(score views_count downloads_count likes_count shares_count attachment_id)
end
def privacy
return "public" if self.published?
return "private"
end
end
......@@ -31,7 +31,7 @@ class ActivityPolicy < ApplicationPolicy
if user_can_edit?
scope.includes(:owner,:recipient).order('created_at DESC').all
else
scope.includes(:owner,:recipient).where("privacy = 'public'").where(key: activities_filter).order('created_at DESC').all
scope.includes(:owner,:recipient).where(privacy: 'public').where(key: activities_filter).order('created_at DESC').all
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment