Commit 2217176fdf6670c5558882734afdfade795ffdda

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

Add image for project

Gemfile
... ... @@ -37,7 +37,7 @@ gem 'kalibro_gatekeeper_client', '~> 1.0.0'
37 37 gem "pg", "~> 0.17.0"
38 38  
39 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 42 # Chart generation
43 43 gem "chart-js-rails", "~> 0.0.6"
... ...
Gemfile.lock
1 1 GIT
2   - remote: git://github.com/seyhunak/twitter-bootstrap-rails.git
  2 + remote: https://github.com/seyhunak/twitter-bootstrap-rails.git
3 3 revision: 3edf24de985d946f16a2781644289cfdc51ba95b
4 4 specs:
5 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 22 @project = Project.new(project_params)
23 23 respond_to do |format|
24 24 create_and_redir(format)
  25 + add_image_url(project_params[:image_url], @project.id)
25 26 end
26 27 end
27 28  
... ... @@ -30,16 +31,19 @@ class ProjectsController < ApplicationController
30 31 def show
31 32 set_project
32 33 @project_repositories = @project.repositories
  34 + @project_image = ProjectImage.find_by_project_id(@project.id).image_url
33 35 end
34 36  
35 37 # GET /projects/1/edit
36 38 # GET /projects/1/edit.json
37 39 def edit
38 40 set_project
39   - end
  41 + check_no_image(@project.id)
  42 + end
40 43  
41 44 def update
42 45 set_project
  46 + update_image_url(project_params[:image_url], @project.id)
43 47 if @project.update(project_params)
44 48 redirect_to(project_path(@project.id))
45 49 else
... ... @@ -82,4 +86,26 @@ class ProjectsController < ApplicationController
82 86 format.json { render json: @project.errors, status: :unprocessable_entity }
83 87 end
84 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 111 end
... ...
app/models/module_result.rb
... ... @@ -23,4 +23,4 @@ class ModuleResult < KalibroGatekeeperClient::Entities::ModuleResult
23 23 def find_grade_by_metric_name(metric_results, name)
24 24 metric_results.each { |metric_result| return metric_result.value if metric_result.metric_configuration_snapshot.metric.name == name }
25 25 end
26   -end
27 26 \ No newline at end of file
  27 +end
... ...
app/models/project.rb
... ... @@ -3,7 +3,7 @@ require "validators/kalibro_uniqueness_validator.rb"
3 3 class Project < KalibroGatekeeperClient::Entities::Project
4 4 include KalibroRecord
5 5  
6   - attr_accessor :name
  6 + attr_accessor :name,:image_url
7 7 validates :name, presence: true, kalibro_uniqueness: true
8 8  
9 9 def repositories
... ...
app/models/project_image.rb 0 → 100644
... ... @@ -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 16 <%= f.text_area :description, class: 'text-area form-control' %>
17 17 </div>
18 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 28 </div>
20 29 </div>
21 30 <div class="row margin-left-none" style="margin-top: 20px">
... ...
app/views/projects/edit.html.erb
... ... @@ -2,4 +2,12 @@
2 2 <h1>Edit Project</h1>
3 3 </div>
4 4  
5   -<%= render 'form' %>
6 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 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 13 </div>
4 14  
5 15 <p>
... ... @@ -7,8 +17,6 @@
7 17 <%= @project.description %>
8 18 </p>
9 19  
10   -<hr />
11   -
12 20 <h2>Repositories</h2>
13 21  
14 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 @@
  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
... ...
db/schema.rb
... ... @@ -11,7 +11,7 @@
11 11 #
12 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 16 create_table "mezuro_configuration_ownerships", force: true do |t|
17 17 t.integer "user_id"
... ... @@ -20,6 +20,13 @@ ActiveRecord::Schema.define(version: 20140124124835) do
20 20 t.datetime "updated_at"
21 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 30 create_table "project_ownerships", force: true do |t|
24 31 t.integer "user_id"
25 32 t.integer "project_id"
... ... @@ -27,6 +34,10 @@ ActiveRecord::Schema.define(version: 20140124124835) do
27 34 t.datetime "updated_at"
28 35 end
29 36  
  37 + create_table "projects", force: true do |t|
  38 + t.string "image_url"
  39 + end
  40 +
30 41 create_table "reading_group_ownerships", force: true do |t|
31 42 t.integer "user_id"
32 43 t.integer "reading_group_id"
... ...
spec/factories/project_images.rb 0 → 100644
... ... @@ -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 @@
  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
... ...