Commit 2217176fdf6670c5558882734afdfade795ffdda

Authored by Thiago Ribeiro
Committed by Rafael Manzo
1 parent 6347d197

Add image for project

@@ -37,7 +37,7 @@ gem 'kalibro_gatekeeper_client', '~> 1.0.0' @@ -37,7 +37,7 @@ gem 'kalibro_gatekeeper_client', '~> 1.0.0'
37 gem "pg", "~> 0.17.0" 37 gem "pg", "~> 0.17.0"
38 38
39 # Twitter Bootstrap for layout 39 # Twitter Bootstrap for layout
40 -gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git' 40 +gem 'twitter-bootstrap-rails', :git => 'https://github.com/seyhunak/twitter-bootstrap-rails.git'
41 41
42 # Chart generation 42 # Chart generation
43 gem "chart-js-rails", "~> 0.0.6" 43 gem "chart-js-rails", "~> 0.0.6"
1 GIT 1 GIT
2 - remote: git://github.com/seyhunak/twitter-bootstrap-rails.git 2 + remote: https://github.com/seyhunak/twitter-bootstrap-rails.git
3 revision: 3edf24de985d946f16a2781644289cfdc51ba95b 3 revision: 3edf24de985d946f16a2781644289cfdc51ba95b
4 specs: 4 specs:
5 twitter-bootstrap-rails (3.2.0) 5 twitter-bootstrap-rails (3.2.0)
app/assets/images/no-image-available.png 0 → 100644

17.4 KB

app/controllers/projects_controller.rb
@@ -22,6 +22,7 @@ class ProjectsController < ApplicationController @@ -22,6 +22,7 @@ class ProjectsController < ApplicationController
22 @project = Project.new(project_params) 22 @project = Project.new(project_params)
23 respond_to do |format| 23 respond_to do |format|
24 create_and_redir(format) 24 create_and_redir(format)
  25 + add_image_url(project_params[:image_url], @project.id)
25 end 26 end
26 end 27 end
27 28
@@ -30,16 +31,19 @@ class ProjectsController < ApplicationController @@ -30,16 +31,19 @@ class ProjectsController < ApplicationController
30 def show 31 def show
31 set_project 32 set_project
32 @project_repositories = @project.repositories 33 @project_repositories = @project.repositories
  34 + @project_image = ProjectImage.find_by_project_id(@project.id).image_url
33 end 35 end
34 36
35 # GET /projects/1/edit 37 # GET /projects/1/edit
36 # GET /projects/1/edit.json 38 # GET /projects/1/edit.json
37 def edit 39 def edit
38 set_project 40 set_project
39 - end 41 + check_no_image(@project.id)
  42 + end
40 43
41 def update 44 def update
42 set_project 45 set_project
  46 + update_image_url(project_params[:image_url], @project.id)
43 if @project.update(project_params) 47 if @project.update(project_params)
44 redirect_to(project_path(@project.id)) 48 redirect_to(project_path(@project.id))
45 else 49 else
@@ -82,4 +86,26 @@ class ProjectsController < ApplicationController @@ -82,4 +86,26 @@ class ProjectsController < ApplicationController
82 format.json { render json: @project.errors, status: :unprocessable_entity } 86 format.json { render json: @project.errors, status: :unprocessable_entity }
83 end 87 end
84 end 88 end
  89 +
  90 + def add_image_url url,project_id
  91 + if url.blank?
  92 + url = "no-image-available.png"
  93 + end
  94 + ProjectImage.create(image_url: url,project_id: project_id )
  95 + end
  96 +
  97 + def update_image_url url,project_id
  98 + if url.blank?
  99 + url = "no-image-available.png"
  100 + end
  101 + ProjectImage.find_by_project_id(project_id).update(image_url: url)
  102 + end
  103 +
  104 + def check_no_image project_id
  105 + @project_image = ProjectImage.find_by_project_id(project_id).image_url
  106 + if @project_image == "no-image-available.png"
  107 + @project_image = ""
  108 + end
  109 + end
  110 +
85 end 111 end
app/models/module_result.rb
@@ -23,4 +23,4 @@ class ModuleResult < KalibroGatekeeperClient::Entities::ModuleResult @@ -23,4 +23,4 @@ class ModuleResult < KalibroGatekeeperClient::Entities::ModuleResult
23 def find_grade_by_metric_name(metric_results, name) 23 def find_grade_by_metric_name(metric_results, name)
24 metric_results.each { |metric_result| return metric_result.value if metric_result.metric_configuration_snapshot.metric.name == name } 24 metric_results.each { |metric_result| return metric_result.value if metric_result.metric_configuration_snapshot.metric.name == name }
25 end 25 end
26 -end  
27 \ No newline at end of file 26 \ No newline at end of file
  27 +end
app/models/project.rb
@@ -3,7 +3,7 @@ require "validators/kalibro_uniqueness_validator.rb" @@ -3,7 +3,7 @@ require "validators/kalibro_uniqueness_validator.rb"
3 class Project < KalibroGatekeeperClient::Entities::Project 3 class Project < KalibroGatekeeperClient::Entities::Project
4 include KalibroRecord 4 include KalibroRecord
5 5
6 - attr_accessor :name 6 + attr_accessor :name,:image_url
7 validates :name, presence: true, kalibro_uniqueness: true 7 validates :name, presence: true, kalibro_uniqueness: true
8 8
9 def repositories 9 def repositories
app/models/project_image.rb 0 → 100644
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
  1 +class ProjectImage < ActiveRecord::Base
  2 +
  3 + belongs_to :project
  4 +
  5 +end
app/views/projects/_form.html.erb
@@ -16,6 +16,15 @@ @@ -16,6 +16,15 @@
16 <%= f.text_area :description, class: 'text-area form-control' %> 16 <%= f.text_area :description, class: 'text-area form-control' %>
17 </div> 17 </div>
18 </div> 18 </div>
  19 +
  20 + <div class="form-row">
  21 + <div class="field-container">
  22 + <%= f.label "Image url", class: 'control-label' %><br>
  23 + <%= f.text_field :image_url, class: 'text-area', value: @project_image %>
  24 + </div>
  25 + </div>
  26 +
  27 +
19 </div> 28 </div>
20 </div> 29 </div>
21 <div class="row margin-left-none" style="margin-top: 20px"> 30 <div class="row margin-left-none" style="margin-top: 20px">
app/views/projects/edit.html.erb
@@ -2,4 +2,12 @@ @@ -2,4 +2,12 @@
2 <h1>Edit Project</h1> 2 <h1>Edit Project</h1>
3 </div> 3 </div>
4 4
5 -<%= render 'form' %>  
6 \ No newline at end of file 5 \ No newline at end of file
  6 +<%= render 'form' %>
  7 +
  8 +<div class="page-header">
  9 + <div class="media">
  10 + <a class="pull-left">
  11 + <%= image_tag "#{@project_image}", size:"64x64" %>
  12 + </a>
  13 + </div>
  14 +</div>
app/views/projects/show.html.erb
  1 +
1 <div class="page-header"> 2 <div class="page-header">
2 - <h1><%= @project.name %></h1> 3 + <div class="media">
  4 + <a class="pull-left">
  5 + <%= image_tag "#{@project_image}", size:"64x64" %>
  6 + </a>
  7 + <div class="media-body">
  8 + <h4 class="media-heading">
  9 + <h1 class="col-md-1"><%= @project.name %></h1>
  10 + </h4>
  11 + </div>
  12 + </div>
3 </div> 13 </div>
4 14
5 <p> 15 <p>
@@ -7,8 +17,6 @@ @@ -7,8 +17,6 @@
7 <%= @project.description %> 17 <%= @project.description %>
8 </p> 18 </p>
9 19
10 -<hr />  
11 -  
12 <h2>Repositories</h2> 20 <h2>Repositories</h2>
13 21
14 <% if project_owner? @project.id %><%= link_to 'New Repository', new_project_repository_path(@project,), class: 'btn btn-primary' %><% end %> 22 <% if project_owner? @project.id %><%= link_to 'New Repository', new_project_repository_path(@project,), class: 'btn btn-primary' %><% end %>
db/migrate/20141006232631_create_project_images.rb 0 → 100644
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +class CreateProjectImages < ActiveRecord::Migration
  2 + def change
  3 + create_table :project_images do |t|
  4 + t.belongs_to :project
  5 + t.string :image_url
  6 +
  7 + t.timestamps
  8 + end
  9 + end
  10 +end
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 # 11 #
12 # It's strongly recommended that you check this file into your version control system. 12 # It's strongly recommended that you check this file into your version control system.
13 13
14 -ActiveRecord::Schema.define(version: 20140124124835) do 14 +ActiveRecord::Schema.define(version: 20141009000324) do
15 15
16 create_table "mezuro_configuration_ownerships", force: true do |t| 16 create_table "mezuro_configuration_ownerships", force: true do |t|
17 t.integer "user_id" 17 t.integer "user_id"
@@ -20,6 +20,13 @@ ActiveRecord::Schema.define(version: 20140124124835) do @@ -20,6 +20,13 @@ ActiveRecord::Schema.define(version: 20140124124835) do
20 t.datetime "updated_at" 20 t.datetime "updated_at"
21 end 21 end
22 22
  23 + create_table "project_images", force: true do |t|
  24 + t.integer "project_id"
  25 + t.string "image_url"
  26 + t.datetime "created_at"
  27 + t.datetime "updated_at"
  28 + end
  29 +
23 create_table "project_ownerships", force: true do |t| 30 create_table "project_ownerships", force: true do |t|
24 t.integer "user_id" 31 t.integer "user_id"
25 t.integer "project_id" 32 t.integer "project_id"
@@ -27,6 +34,10 @@ ActiveRecord::Schema.define(version: 20140124124835) do @@ -27,6 +34,10 @@ ActiveRecord::Schema.define(version: 20140124124835) do
27 t.datetime "updated_at" 34 t.datetime "updated_at"
28 end 35 end
29 36
  37 + create_table "projects", force: true do |t|
  38 + t.string "image_url"
  39 + end
  40 +
30 create_table "reading_group_ownerships", force: true do |t| 41 create_table "reading_group_ownerships", force: true do |t|
31 t.integer "user_id" 42 t.integer "user_id"
32 t.integer "reading_group_id" 43 t.integer "reading_group_id"
spec/factories/project_images.rb 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +# Read about factories at https://github.com/thoughtbot/factory_girl
  2 +
  3 +FactoryGirl.define do
  4 + factory :project_image do
  5 + image_url "MyString"
  6 + end
  7 +end
spec/models/project_image_spec.rb 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +require 'rails_helper'
  2 +
  3 +RSpec.describe ProjectImage, :type => :model do
  4 + describe 'associations' do
  5 + it { is_expected.to belong_to(:project) }
  6 + end
  7 +end