diff --git a/app/assets/javascripts/management.js b/app/assets/javascripts/management.js
index 18dfb4b228f40b77cbd57316bdbd77150eb614cf..4f0fe00313a423f28ab33a651fd3ea1da2186065 100644
--- a/app/assets/javascripts/management.js
+++ b/app/assets/javascripts/management.js
@@ -35,8 +35,18 @@ $(document).ready(function(){
     var data_users = dataUsers(teachers,curators,admins);
   }
 
+    if(document.getElementById("lcomplaints") != null) {
 
-    var charts = ["colections","users","learning_objects","accesses"];
+      false_user = document.getElementById("lcomplaints").value;
+      agressive_user = document.getElementById("lcomplaints_false").value;
+      offensive_object = document.getElementById("lcomplaints_offensive").value;
+      violates_copyright = document.getElementById("lcomplaints_violates").value;
+
+      var data_complaints = dataComplaints(false_user,agressive_user,offensive_object,violates_copyright);
+  }
+
+
+    var charts = ["colections","users","learning_objects","accesses","complaints"];
 
     for(i=0;i<charts.length;i++) {
       if ( document.getElementById(charts[i]) ) {
@@ -58,6 +68,10 @@ $(document).ready(function(){
              new Chart(ctx).Line(data_accesses,line_options);
              var accesses_chart = new Chart(ctx).Line(data_accesses);
              break;
+           case "complaints":
+             new Chart(ctx).Pie(data_complaints,pie_options);
+             var complaints_chart = new Chart(ctx).Pie(data_complaints);
+             break;
 
            default:  null;
              break;
diff --git a/app/assets/javascripts/management/complaints.js b/app/assets/javascripts/management/complaints.js
new file mode 100644
index 0000000000000000000000000000000000000000..c86edd8190206abdae0a338a3a79534d81c798c9
--- /dev/null
+++ b/app/assets/javascripts/management/complaints.js
@@ -0,0 +1,69 @@
+
+
+//confurações dos gráficos de linha
+//mais infos: www.chartjs.org/docs/
+
+
+
+//var visual = document.getElementById("object").value;
+//alert(visual);
+function dataComplaints(false_user,agressive_user,offensive_object,violates_copyright) {
+  var data = [
+      {
+        value: false_user,
+        color:"#68F000",
+        highlight: "#a9ff67",
+        label: "Usuários Falsos"
+      },
+      {
+        value: agressive_user,
+        color: "#F55858",
+        highlight: "#FC8787",
+        label: "Usuários Ofensivos/Agressivos"
+      },
+      {
+        value: offensive_object,
+        color: "#F9D60A",
+        highlight: "#fbe357",
+        label: "Objetos contém conteúdo Ofensivo/Abusivo"
+      },
+      {
+        value: violates_copyright,
+        color: "#46BFBD",
+        highlight: "#5AD3D1",
+        label: "Objeto viola direitos Autorais"
+      },
+
+    ];
+  return data;
+}
+
+var pie_options = {
+    //Boolean - Whether we should show a stroke on each segment
+    segmentShowStroke : true,
+
+    //String - The colour of each segment stroke
+    segmentStrokeColor : "#fff",
+
+    //Number - The width of each segment stroke
+    segmentStrokeWidth : 2,
+
+    //Number - The percentage of the chart that we cut out of the middle
+    percentageInnerCutout : 0, // This is 0 for Pie charts
+
+    //Number - Amount of animation steps
+    animationSteps : 100,
+
+    //String - Animation easing effect
+    animationEasing : "easeOutBounce",
+
+    //Boolean - Whether we animate the rotation of the Doughnut
+    animateRotate : true,
+
+    //Boolean - Whether we animate scaling the Doughnut from the centre
+    animateScale : false,
+
+    //String - A legend template
+    legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<segments.length; i++){%><li><span style=\"background-color:<%=segments[i].fillColor%>\"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>"
+
+};
diff --git a/app/controllers/management/complaints_controller.rb b/app/controllers/management/complaints_controller.rb
index 97499cf9bf1054a169890850d4e44725b927f1c6..82dc018da6bcae8348757f34e96d6c027c7e4ef0 100644
--- a/app/controllers/management/complaints_controller.rb
+++ b/app/controllers/management/complaints_controller.rb
@@ -3,9 +3,31 @@ class Management::ComplaintsController < ManagementController
   before_action :set_complaint, only: :destroy
 
   def index
-    @complaints = Complaint.includes(:complaint_reason, :complaintable, :user)
+    @date = params[:period]
+    @date_limit  = case @date.to_i
+      when 1 then
+        Date.today
+      when 2 then
+        Date.yesterday
+      when 3 then
+        1.week.ago
+      when 4 then
+        1.month.ago
+      when 5 then
+        6.month.ago
+      when 7 then
+        1.year.ago
+      else
+        10.year.ago
+    end
+
+    @complaints = Complaint.all
+    @complaints_in_period = @complaints.select{ |complaint| complaint.created_at >= @date_limit}
+    @complaints_objs = @complaints_in_period.uniq{|x| x.complaintable.name}.size
+
   end
 
+
   def destroy
     Complaint.destroy @complaint
 
diff --git a/app/controllers/management/statistics_controller.rb b/app/controllers/management/statistics_controller.rb
index a2b32010c871c2ac8f53c744fc2f319300f56ef0..f52676287a3d768351ca07f9d0e714c8b5f96e84 100644
--- a/app/controllers/management/statistics_controller.rb
+++ b/app/controllers/management/statistics_controller.rb
@@ -1,23 +1,18 @@
 class Management::StatisticsController < ManagementController
   include RepositoriesProxy
-  #before_action :set_statistics
+  before_action :set_statistics
   before_action :authenticate_user!, except: [:index, :show, :like]
 
   #inicialização, primeira query
   @@flag = 0
 
   def index
-    #a cada novo login atualiza as estatísticas
-    if @@flag == 0 || @@user != current_user
-      @@user =  current_user
-      set_statistics
-      @@flag = 1
-    end
-
+    set_statistics
     @n_users = @@n_users
     @n_collections = @@n_collections
     @n_non_visualised = @@n_non_visualised
     @n_learning_objects = @@n_learning_objects
+    @n_complaints == @@n_complaints
     @total_accesses= User.sum("sign_in_count")
   end
 
@@ -30,43 +25,51 @@ class Management::StatisticsController < ManagementController
   end
 
   def accesses
-    #usar o logstash e kibana
-    #enquanto isso, uso o sign_in_count do ActiveRecord
     @total_accesses= User.sum("sign_in_count")
-
-
   end
 
   def collections
-    if @@flag == 0 || @@user != current_user
-      @@user =  current_user
-      set_statistics
-      @@flag = 1
-    end
     @n_collections = @@n_collections || []
   end
 
 
   def learning_objects
-    if @@flag == 0 || @@user != current_user
-      @@user =  current_user
-      @@flag = 1
-      set_statistics
-    end
     @n_learning_objects = @@n_learning_objects
     @most_visualised = @@most_visualised
     @n_non_visualised = @@n_non_visualised
 
   end
 
+  def complaints
+    @complaints = Complaint.all
+    @n_complaints = @@n_complaints
+    @complaints_objs = @@complaints_objs
+    @complaints_per_message = @@complaints_per_message
+  end
+
 
   def set_statistics
-    @@n_users = User.count
-    @@n_collections = Collection.all.size
-    @@n_learning_objects = LearningObject.all.size
-    @@n_non_visualised = LearningObject.where(views_count: 0).size
-    @@most_visualised = LearningObject.order(:views_count)
-    @@n_views = LearningObject.sum(:views_count)
+
+    Rails.cache.fetch("cache/management_statistics", expires_in: 1.hours) do
+      @complaints = Complaint.all
+      @@n_users = User.count
+      @@n_collections = Collection.all.size
+      @@n_learning_objects = LearningObject.all.size
+      @@n_non_visualised = LearningObject.where(views_count: 0).size
+      @@most_visualised = LearningObject.order(:views_count)
+      @@n_views = LearningObject.sum(:views_count)
+      @@n_complaints = Complaint.all.size
+      @@complaints_per_message = Hash.new(0)
+      @@complaints_objs = Hash.new(0)
+
+      @complaints.map{ |complaint| complaint.reason }.each do |message|
+        @@complaints_per_message[message] += 1
+      end
+
+      @complaints.map{ |complaint| complaint.complaintable }.each do |object|
+        @@complaints_objs[object] += 1
+      end
+    end
    end
 
   def views
diff --git a/app/views/management/complaints/index.html.erb b/app/views/management/complaints/index.html.erb
index 8fec592834e1440f070463db171b7562e8036ab0..30845f6ee9553eeebdf191654f7860a693bb43d4 100644
--- a/app/views/management/complaints/index.html.erb
+++ b/app/views/management/complaints/index.html.erb
@@ -1,3 +1,5 @@
+
+
 <h1 class="ls-title-intro ls-ico-stats">Denúncias</h1>
 
 <div class="ls-box-filter">
@@ -11,12 +13,13 @@
 
       <div class="ls-custom-select">
         <select name="period" id="select_period" class="ls-select">
-          <option>Hoje</option>
-          <option>Ontem</option>
-          <option>Última semana</option>
-          <option>Últimos 30 dias</option>
-          <option>Últimos 6 meses</option>
-          <option>Últimos 12 meses</option>
+          <option value=6>Últimos 12 meses</option>
+          <option value=1>Hoje</option>
+          <option value=2>Ontem</option>
+          <option value=3>Última semana</option>
+          <option value=4>Últimos 30 dias</option>
+          <option value=5>Últimos 6 meses</option>
+
         </select>
       </div>
     </label>
@@ -27,6 +30,7 @@
 </div>
 
 
+
 <h2 class="ls-title-4">Relatório de Denúncias</h2>
 
 <div class="row">
@@ -46,8 +50,7 @@
           <h6 class="ls-title-4">Total de denúncias</h6>
         </div>
         <div class="ls-box-body">
-          <strong>80</strong>
-          <small>spam</small>
+          <strong><%= @complaints_in_period.size %></strong>
         </div>
       </div>
     </div>
@@ -55,66 +58,88 @@
     <div class="col-sm-12 col-lg-7">
       <div class="ls-box">
         <div class="ls-box-head">
-          <h6 class="ls-title-4">Percentual comparado ao último mês</h6>
+          <h6 class="ls-title-4">Total de objetos denunciados</h6>
         </div>
         <div class="ls-box-body">
-          <div class="col-lg-offset-3 col-lg-3 col-xs-6">
-            <strong class="ls-color-theme" data-prefix="%">-3,60</strong>
-            <small>usuário falso</small>
-          </div>
-          <div class="col-lg-3 col-xs-6">
-            <strong class="ls-color-danger" data-prefix="%">+0,90</strong>
-            <small>direitos autorais</small>
-          </div>
-          <div class="col-lg-3 col-xs-6">
-            <strong class="ls-color-danger" data-prefix="%">+32</strong>
-            <small>conteúdo ofensivo</small>
-          </div>
+          <strong class="ls-color-theme"><%= @complaints_objs %></strong>
         </div>
       </div>
     </div>
+
   </div>
 
 
   <div class="ls-tabs-container" id="awesome-tab-content">
     <div id="infoAll" class="ls-tab-content" role="tabpanel" style="display: block;">
-      <% @complaints.each do |complaint| %>
-
+      <% (@complaints.sort{|x,y| x.created_at <=> y.created_at}.reverse.uniq{ |x| x.complaintable.name}).each do |complaint| %>
+        <% if Date.parse(complaint.created_at.to_s) >= @date_limit %>
           <div class="ls-list">
             <header class="ls-list-header">
-              <div class="ls-list-title col-md-9">
-                <strong><%= complaint.complaintable.name %></strong>
-                <small><%= complaint.reason %></small>
-
-                <% if !complaint.description.blank? %>
-                    <p><%= complaint.description %></p>
-                <% end %>
-
-              </div>
+                <div class="ls-list-title col-md-9">
+                  <strong><%= complaint.complaintable.name %></strong>
+                  <small><%= @complaints.select{ |x| x.complaintable.name == complaint.complaintable.name}.map{|x| x.reason }.each_with_object(Hash.new(0)){ |frequency,message| message[frequency] += 1 }.sort_by{ |k,v| v }.reverse.each{|x| x}.map{ |k,v| "#{k}(#{v})"}.join(",")%></small>
+
+                  <div data-ls-module="collapse" data-target="#<%= complaint.complaintable.name.tr('^A-Za-z0-9', '') %>" class="ls-collapse ">
+                    <a href="#" class="ls-collapse-header"><h5 class="ls-collapse-title"><strong>Descrições</strong></h5></a>
+                      <div class="ls-collapse-body" id="<%= complaint.complaintable.name.tr('^A-Za-z0-9', '') %>">
+                        <% @complaints.sort {|left, right| left.description.length <=> right.description.length}.reverse.select{ |x| x.complaintable.name == complaint.complaintable.name }.each do |complaint_description| %>
+                            <table class="ls-table ls-no-hover ls-table-striped">
+                              <thead>
+                                <tr>
+                                  <th><%= complaint_description.user.name %>(<%= complaint_description.description %>)</th>
+                                </tr>
+                              </thead>
+                              <tbody>
+                                <tr>
+                                  <td class="hidden-xs"><%= complaint_description.description %></td>
+                                </tr>
+                              </tbody>
+                            </table>
+                          <%end%>
+                      </div>
+                  </div>
+                </div>
               <div class="col-md-3 ls-txt-right">
                 <div data-ls-module="dropdown" class="ls-dropdown ls-pos-right">
                   <a href="#" class="ls-btn-primary" aria-expanded="false" role="combobox">Administrar</a>
                   <ul class="ls-dropdown-nav" aria-hidden="true">
                     <li><a href="#" role="option" title="Funcionalidade em desenvolvimento!">Suspender conteúdo</a></li>
                     <li>
-                      <%= link_to 'Ignorar denúncia', management_complaint_path(id: complaint.id), {method: :delete, data: {confirm: 'Tem certeza que deseja ignorar esta denúncia?'}, title: 'Ignorar denúncia', class: 'ls-btn ls-btn-sm', role: 'option'} %>
+                      <% @complaints.select{ |x| x.complaintable.name == complaint.complaintable.name }.each do |complaint_ignore| %>
+                        <%= link_to 'Ignorar denúncia de ' + complaint_ignore.user.name , management_complaint_path(id: complaint_ignore.id), {method: :delete, data: {confirm: 'Tem certeza que deseja ignorar esta denúncia?'}, title: 'Ignorar denúncia', class: 'ls-btn ls-btn-sm', role: 'option'} %>
+                      <% end %>
                     </li>
                   </ul>
                 </div>
               </div>
+
             </header>
             <div class="ls-list-content ">
               <div class="col-xs-12 col-md-6">
-                <span class="ls-list-label">Denunciado por</span>
-                <strong><%= complaint.user.name unless complaint.user.nil?%></strong>
+
+                <div data-ls-module="collapse" data-target="#<%= complaint.complaintable.name.tr('^A-Za-z0-9', '') + "complaint"%>" class="ls-collapse ">
+                  <a href="#" class="ls-collapse-header"><strong class="ls-collapse-title">Denunciado por</strong></a>
+                    <div class="ls-collapse-body" id="<%= complaint.complaintable.name.tr('^A-Za-z0-9', '') + "complaint" %>">
+                      <% @complaints.select{ |x| x.complaintable.name == complaint.complaintable.name}.map{|x| x.user }.each do |user| %>
+                          <table class="ls-table ls-no-hover ls-table-striped">
+                            <tbody>
+                              <tr>
+                                <td><a href="#"><%= user.name %></a></td>
+                              </tr>
+                            </tbody>
+                          </table>
+                        <%end%>
+                    </div>
+                </div>
               </div>
               <div class="col-xs-12 col-md-6">
-                <span class="ls-list-label">Data</span>
+                <span class="ls-list-label">Data da última denúncia</span>
                 <strong><%= complaint.created_at %></strong>
               </div>
             </div>
           </div>
-
+        </div>
+        <% end %>
       <% end %>
     </div>
   </div>
diff --git a/app/views/management/statistics/complaints.html.erb b/app/views/management/statistics/complaints.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..086c8219b7041332e59be768fc8519abc1683478
--- /dev/null
+++ b/app/views/management/statistics/complaints.html.erb
@@ -0,0 +1,59 @@
+
+
+<ol class="ls-breadcrumb">
+  <li><%= link_to  "Início", management_root_path %></li>
+  <li><%= link_to "Estatísticas", management_statistics_path %></li>
+  <li> Usuários </li>
+</ol>
+
+<body>
+<div class="ls-box ls-board-box">
+  <header class="ls-info-header">
+    <h2 class="ls-title-3">Denúncias</h2>
+    <p class="ls-float-right ls-float-none-xs ls-small-info">Apurado em <strong><%= Date.today.to_s %></strong></p>
+  </header>
+  <div id="sending-stats" class="row">
+    <div class="col-sm-6 col-md-12">
+      <div class="ls-box">
+        <h6 class="ls-title-6">Total</h6>
+          <strong class="ls-color-theme"><%=@n_complaints%></strong>
+      </div>
+    </div>
+
+
+    <% @complaints.map{|x| x.reason}.uniq.each  do |message| %>
+    <div class="col-sm-6 col-md-3">
+      <div class="ls-box">
+        <h6 class="ls-title-4"><%= message %></h6>
+          <strong class="ls-color-theme"><%= @complaints_per_message[message] %></strong>
+      </div>
+    </div>
+
+    <% end %>
+
+  </div>
+</div>
+
+<input type="hidden" id="lcomplaints" value="<%= @complaints_per_message["Usuário falso"] %>"/>
+<input type="hidden" id="lcomplaints_false" value="<%= @complaints_per_message["Usuário ofensivo/agressivo"] %>"/>
+<input type="hidden" id="lcomplaints_offensive" value="<%= @complaints_per_message["Objeto contém conteúdo ofensivo/abusivo"] %>"/>
+<input type="hidden" id="lcomplaints_violates" value="<%= @complaints_per_message["Objeto viola direitos autorais"] %>"/>
+
+<div align="right" >
+</div>
+
+<div>
+  <div style="float: left; margin-left: 85px; margin-top: 100px">
+    <canvas id="complaints" width="700" height="600"></canvas>
+  </div>
+
+</div>
+<div style="margin-left: 900px">
+  <h3><th><b>10 Mais denunciados </b></th></h3><br>
+  <div class="row learning-object-columns">
+    <% @complaints_objs.sort_by{|name,frequency| frequency }.reverse.first(10).each do |object| %>
+      <li><%= link_to object[0].name + '->' + object[1].to_s + ' denúncia(s)' , learning_object_path(object[0].id)  %></li><BR>
+    <%end %>
+  </div>
+</div>
+</body>
diff --git a/app/views/management/statistics/learning_objects.html.erb b/app/views/management/statistics/learning_objects.html.erb
index 68d09eb00dcedd06336bfd4407b71b3145727a05..d80c432fc9b07c5cd48b08a7862b53716fa80ebd 100644
--- a/app/views/management/statistics/learning_objects.html.erb
+++ b/app/views/management/statistics/learning_objects.html.erb
@@ -51,7 +51,7 @@
   <div style="margin-left: 900px">
     <h3><th><b> 10 mais visualisados </b></th></h3><br>
     <div class="row learning-object-columns">
-      <% @most_visualised.each do |most| %>
+      <% @most_visualised.first(10).each do |most| %>
         <%#= render_learning_object("vertical", most) %>
         <li><%= link_to most["name"], learning_object_path(most["id"]) %></li><BR>
       <% end %>
diff --git a/app/views/shared/management/_nav_menu.html.erb b/app/views/shared/management/_nav_menu.html.erb
index 91e1b4206b675da9cbeeb7ca00451b64926105bd..63ab58f6fd496591d2e8eac7b5e749d8aa3d896d 100644
--- a/app/views/shared/management/_nav_menu.html.erb
+++ b/app/views/shared/management/_nav_menu.html.erb
@@ -11,6 +11,7 @@
         <li><%= link_to "Coleções", collections_management_statistics_path, class: 'ls-submenu-item' %></li>
         <li><%= link_to "Objetos", learning_objects_management_statistics_path, class: 'ls-submenu-item' %></li>
         <li><%= link_to "Acessos", accesses_management_statistics_path, class: 'ls-submenu-item' %></li>
+        <li><%= link_to "Denúncias", complaints_management_statistics_path, class: 'ls-submenu-item' %></li>
       </ul>
     </li>
     <li><%= link_to "Instituições", management_institutions_path, class: 'ls-submenu-item' %></li>
@@ -25,7 +26,7 @@
     <li><%= link_to "Denúncias", management_complaints_path, class: 'ls-ico-bullhorn' %>
     <li>
   </ul>
-  
+
     <li> <%= link_to "Voltar ao Portal", root_path %> </li>
 
 
diff --git a/config/routes.rb b/config/routes.rb
index f5a3db21c2ed045ea6813c6447df56b12d71790d..901caf7ad79087e03c4e6f8b20dee6f65a9710bf 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -25,6 +25,7 @@ Rails.application.routes.draw do
         get :collections
         get :accesses
         get :learning_objects
+        get :complaints
       end
     end