Skip to content
Snippets Groups Projects
Commit 44e90bae authored by Alexandre Peres Arias's avatar Alexandre Peres Arias
Browse files

adding complaint integratio with orientDB

parent 2cc6efc0
No related branches found
No related tags found
No related merge requests found
......@@ -5,4 +5,4 @@ $ ->
$('#create_collection_popover_content').html()
title: ->
$('#create_collection_popover_title').html()
return
\ No newline at end of file
return
......@@ -69,6 +69,16 @@ a, a:focus, a:hover {
}
.collection_popover{
max-width: 800px;
width:30px;
height:15px;
}
.popover-title {
background-color: #2178f5;
align-content: center;
......
class ComplaintsController < ApplicationController
before_action :set_complaint, only: [:show, :update, :destroy, :like]
# GET /complaints
# GET /complaints.json
# GET /complaints/1
# GET /complaints/1.json
def show
end
# POST /complaints/1/like
# POST /complaints
# POST /complaints.json
def create
@complaint = complaint.new(complaint_params)
@complaint = Complaint.new(complaint_params)
@messages = [
Complaint.copyrights,
Complaint.ofensive_content,
Complaint.ofensive_user,
Complaint.fake_user
]
respond_to do |format|
if complaint_repository.save @complaint
if complaint_repository.report @complaint
format.html { redirect_to @complaint, notice: 'complaint was successfully created.' }
else
format.html { render :new }
......@@ -26,18 +22,6 @@ class ComplaintsController < ApplicationController
end
end
# PATCH/PUT /complaints/1
# PATCH/PUT /complaints/1.json
def update
respond_to do |format|
if complaint_repository.update(complaint_params)
format.html { redirect_to @complaint, notice: 'complaint was successfully updated.' }
else
format.html { render :edit }
end
end
end
# DELETE /complaints/1
# DELETE /complaints/1.json
def destroy
......@@ -49,22 +33,6 @@ class ComplaintsController < ApplicationController
end
def self.copyrights
"Objeto viola direitos autorais"
end
def self.ofensive_content
"Objeto contém conteúdo ofensivo/abusivo"
end
def self.ofensive_user
"Usuário ofensivo/agressivo"
end
def self.fake_user
"Usuário falso"
end
private
def set_complaint
......@@ -73,7 +41,7 @@ class ComplaintsController < ApplicationController
# Never trust parameters from the scary internet, only allow the white list through.
def complaint_params
params.require(:complaint).permit(:name, :privacy, learning_objects: [])
params.require(:complaint).permit(:object, :message, :description)
end
end
class Complaint
include ActiveModel::Model
attr_accessor :user,:object,:message,:description
validates_presence_of :user,:object,:message
def self.copyrights
"Objeto viola direitos autorais"
end
def self.ofensive_content
"Objeto contém conteúdo ofensivo/abusivo"
end
def self.ofensive_user
"Usuário ofensivo/agressivo"
end
def self.fake_user
"Usuário falso"
end
end
......@@ -60,7 +60,7 @@ class OrientDb::Base
raise NoMethodError, "You must implement this method"
end
private
protected
def odb_class
raise NoMethodError, "You must implement this method"
......
module OrientDb
class LearningObjectRepository < Base
include OrientDb::Methods::EdgeMethods
include RepositoriesProxy
def report(complaint)
if edge_exists? (odb_class, complaint.user.id, complaint.object.id)
raise "The user has already been reported"
end
connection.command "CREATE EDGE Complaint FROM #{complaint.user.id} TO #{complaint.object.id} SET message = #{complaint.message}, description = #{complaint.description}"
end
def destroy(object)
if !edge_exists? (odb_class, complaint.user.id, complaint.object.id)
raise "The user has not already been reported"
end
connection.command "DELETE EDGE Complaint FROM #{complaint.user.id} TO #{complaint.object.id}"
end
def build_object(args={})
Complaint.new(args)
end
protected
def odb_class
"Complaint"
end
end
end
......@@ -15,10 +15,6 @@ module OrientDb
create_edge "Likes", user.rid, learning_object.id
end
def report(user,object,message,description)
connection.command "CREATE EDGE Complaint FROM #{user.id} TO #{object.id} SET message = #{message}, description = #{description}"
end
# Example:
# list = repository.for(:learning_objects).all
# list.each do |learning_object|
......
......@@ -18,6 +18,10 @@ module RepositoriesProxy
application_repository.for(:collection)
end
def complaint_repository
application_repository.for(:complaint)
end
def institution_repository
application_repository.for(:institution)
end
......
......@@ -3,5 +3,5 @@
</button>
<div id="complaints_list_popover" style="display: none; z-index: 999;">
<%= render 'complaints_form' %>
<%= render 'form' %>
</div>
<body>
<%= form_tag(:action => "report_object", :method => "get") do %>
<%= form_tag @complaint do |f| %>
<fieldset>
<div class="ls-label " align="center">
......@@ -8,36 +6,21 @@
<h4 class="ls-title-4"><p><b>Escolha a razão da denúncia:</b></p></h4>
<br><br>
<div class="checkbox">
<input type="checkbox" name="message" >
<%= ComplaintsController.copyrights %>
</div>
<div class="checkbox">
<input type="checkbox" name="message" >
<%= ComplaintsController.ofensive_content %>
</div>
<div class="checkbox">
<input type="checkbox" name="message">
<%= ComplaintsController.ofensive_user %>
</div>
<div class="checkbox">
<input type="checkbox" name="message" >
<%= ComplaintsController.fake_user %>
</div>
<%= f.collection_radio_buttons :message, @messages, :message, :message do |m| %>
<div class="radio">
<%= m.label { m.radio_button } %>
</div>
<% end %>
<br><br>
<div align="center">
<%= text_area_tag :description,'', placeholder: "mais informações", rows: "10", cols: "30" %>
<%= m.text_area :description, placeholder: "mais informações", rows: "10", cols: "30" %>
</div>
</div>
</fieldset>
<div align="center" class="ls-actions-btn">
<%= submit_tag "Salvar", class: "ls-btn" %>
<%= f.submit "Salvar", class: "ls-btn" %>
<%= link_to "Cancelar", {}, class: "ls-btn-alert" %>
</div>
<%end%>
</body>
......@@ -37,13 +37,14 @@ Rails.application.routes.draw do
resources :learning_objects do
member do
post :like
post :report_object
end
end
resources :institutions
resources :collections
resources :subjects, only: [:index, :show]
resources :complaints, only: [:create, :destroy]
resources :users, only: [:show] do
collection do
......@@ -54,6 +55,5 @@ Rails.application.routes.draw do
get '/faq' => 'welcome#faq'
get '/contact' => 'welcome#contact', as: 'contact'
get '/complaint' => 'welcome#complaint', as: 'complaint'
get '/search' => 'search#index', as: 'search'
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