diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb index e7dc453e0142754dc24d1e50711dc21c8c665af3..99e2d5313236ae22d42307e2ee5b28e7f4d50d4d 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 ecc8069a7f644a3d7886a0f8469927985b7fc35e..3a7eaa566ce19d3db07f15bd855039567a2b4f01 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 c121c02930f8f98bfc044b70100169cccc710644..76e10d79253e000bf91f7a893d6469dec22a3bf7 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 96eb55b717ea2c4eb741e6ad30f304d42a7bc9ec..8e5f7286f934199a020bb0f286728d3b4e46b193 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