From 691738c46fe30d82ae62962a37129094aa065415 Mon Sep 17 00:00:00 2001 From: Matheus Agio Nerone <man13@inf.ufpr.br> Date: Mon, 9 Nov 2015 11:18:15 -0200 Subject: [PATCH] adding learning objects but not relating them to the user yet Signed-off-by: Matheus Agio Nerone <man13@inf.ufpr.br> --- app/controllers/learning_objects_controller.rb | 14 +++++++++++--- app/controllers/users_controller.rb | 1 + app/models/learning_object.rb | 3 ++- .../orient_db/learning_object_repository.rb | 13 +++++++++---- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb index e7dc453e..99e2d531 100644 --- a/app/controllers/learning_objects_controller.rb +++ b/app/controllers/learning_objects_controller.rb @@ -29,12 +29,20 @@ class LearningObjectsController < ApplicationController # POST /learning_objects # POST /learning_objects.json def create - p params - gvghv + subjects = [] + learning_object_params[:subjects].each do |subject| + subjects << subject_repository.find_by_name(subject) + end @learning_object = LearningObject.new(learning_object_params) + @learning_object.subjects = subjects + @learning_object.created_at = Time.now + @learning_object.type = 'video' + @learning_object.author = current_user.name + @learning_object.publisher = current_user respond_to do |format| - if learning_object_repository.save @learning_object + if learning_object_repository.create @learning_object + learning_object_repository.create_relations(@learning_object) format.html { redirect_to me_users_path, notice: 'Learning object was successfully created.' } else format.html { render :new } diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index ecc8069a..3a7eaa56 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -19,6 +19,7 @@ class UsersController < ApplicationController end def me + asd @objects = current_user.learning_objects @bookmarks = current_user.bookmarks @groups = [ diff --git a/app/models/learning_object.rb b/app/models/learning_object.rb index c121c029..76e10d79 100644 --- a/app/models/learning_object.rb +++ b/app/models/learning_object.rb @@ -5,7 +5,8 @@ class LearningObject attr_accessor :id, :id_dspace, :rid, :name, :author, :description, :published_at, :thumbnail, :created_at, :last_modified, :type, :grade_level, :bitstreams, :metadata, :likes, :views, - :downloads, :subjects, :attributes, :score, :publisher + :downloads, :subjects, :attributes, :score, :publisher, + :school_level validates_presence_of :name, :created_at, :type, :likes, :views, :downloads validates_numericality_of :likes, greater_than_or_equal_to: 0 diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb index 96eb55b7..8e5f7286 100644 --- a/app/repositories/orient_db/learning_object_repository.rb +++ b/app/repositories/orient_db/learning_object_repository.rb @@ -115,7 +115,7 @@ module OrientDb result = get_edges_end("PublishedBy", "out", learning_object.id) result = result.first - unless result.empty? + unless result.blank? if result["@class"] == "Institution" institution_repository.build_object(result) else @@ -167,9 +167,14 @@ module OrientDb unless learning_object.attributes.empty? edges << create_edges_from_array("HasAttr", learning_object.id, learning_object.attributes, true) end - - if !learning_object.publisher.nil? && !edge_exists?("PublishedBy", learning_object.id, learning_object.publisher.id) - edges << create_edge("PublishedBy", learning_object.id, learning_object.publisher.id) + p_id = '' + if learning_object.publisher.class.name == 'User' + p_id = learning_object.publisher.rid + else + p_id = learning_object.publisher.id + end + if !learning_object.publisher.nil? && !edge_exists?("PublishedBy", learning_object.id, p_id) + edges << create_edge("PublishedBy", learning_object.id, p_id) end edges.flatten end -- GitLab