Skip to content
Snippets Groups Projects
Commit 56db2009 authored by Giovanne Marcelo's avatar Giovanne Marcelo
Browse files

Merge branch 'add-complained' into 'master'

Add complained

See merge request !344
parents 8a11d181 3cc79d85
No related branches found
No related tags found
No related merge requests found
......@@ -4,4 +4,9 @@ module Complainable
included do
has_many :complaints, as: :complainable
end
def complained?(user)
!complaints.where(user: user).blank?
end
end
......@@ -5,6 +5,10 @@ module Reviewable
has_many :reviews, as: :reviewable, dependent: :destroy
end
def reviewed?(user)
!reviews.where(user: user).blank?
end
def review_ratings_average
array = reviews.map(&:rating_average)
return 0.0 if array.size.zero?
......
class CollectionMinSerializer < ActiveModel::Serializer
cache key: 'collection', expires_in: 4.hours, except: [:likes_count, :liked]
cache key: 'collection', expires_in: 4.hours, except: [:likes_count, :liked, :reviewed, :complained]
def liked
object.liked? current_user
end
def reviewed
object.reviewed? current_user
end
def complained
object.complained? current_user
end
attributes :id, :name, :owner, :created_at, :updated_at, :description, :privacy, :score, :likes_count, :liked, :review_average, :thumbnail
attributes :id, :name, :owner, :created_at, :updated_at, :description, :privacy, :score, :likes_count, :liked, :reviewed, :complained :review_average, :thumbnail
has_many :tags
has_many :subjects
has_many :educational_stages
......
class CollectionSerializer < ActiveModel::Serializer
cache key: 'collection', expires_in: 4.hours, except: [:likes_count, :liked]
cache key: 'collection', expires_in: 4.hours, except: [:likes_count, :liked, :reviewed, :complained]
def liked
object.liked? current_user
end
attributes :id, :name, :owner, :created_at, :updated_at, :description, :privacy, :score, :likes_count, :liked, :review_average, :thumbnail
def reviewed
object.reviewed? current_user
end
def complained
object.complained? current_user
end
attributes :id, :name, :owner, :created_at, :updated_at, :description, :privacy, :score, :likes_count, :liked, :reviewed, :complained, :review_average, :thumbnail
has_many :tags
has_many :subjects
has_many :educational_stages
......
class LearningObjectSerializer < ActiveModel::Serializer
cache key: 'learning_object', expires_in: 4.hours, except: [:likes_count, :liked]
cache key: 'learning_object', expires_in: 4.hours, except: [:likes_count, :liked, :reviewed, :complained]
def default_location
object_type == ("Vídeo" || "Áudio") ? object.default_attachment.try(:retrieve_cache_link) : object.default_attachment.try(:retrieve_url)
......@@ -25,6 +25,14 @@ class LearningObjectSerializer < ActiveModel::Serializer
object.liked? current_user
end
def reviewed
object.reviewed? current_user
end
def complained
object.complained? current_user
end
attributes :id,
:name,
:description,
......@@ -44,6 +52,8 @@ class LearningObjectSerializer < ActiveModel::Serializer
:license,
:liked,
:likes_count,
:reviewed,
:complained,
:shares_count,
:created_at,
:updated_at
......
class UserSerializer < ActiveModel::Serializer
cache key: 'user', expires_in: 4.hours
attributes :id, :email, :provider, :name, :description, :role_ids, :institution_ids, :avatar, :likes_count, :follows_count, :learning_objects_count, :collections_count, :created_at, :updated_at
cache key: 'user', expires_in: 4.hours, except: [ :complained ]
def complained
object.complained? current_user
end
attributes :id, :email, :provider, :name, :description, :role_ids, :institution_ids, :avatar, :likes_count, :complained, :follows_count, :learning_objects_count, :collections_count, :created_at, :updated_at
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