Merge pull request #3152 from NahiaSolutions/add_image_to_legislation_processes
Add image to legislation processes and banner colors
This commit is contained in:
@@ -23,11 +23,6 @@
|
|||||||
&.light {
|
&.light {
|
||||||
background: #ecf0f1;
|
background: #ecf0f1;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1,
|
|
||||||
p {
|
|
||||||
color: $text;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.lead {
|
.lead {
|
||||||
|
|||||||
@@ -66,8 +66,11 @@ class Admin::Legislation::ProcessesController < Admin::Legislation::BaseControll
|
|||||||
:result_publication_enabled,
|
:result_publication_enabled,
|
||||||
:published,
|
:published,
|
||||||
:custom_list,
|
:custom_list,
|
||||||
|
:background_color,
|
||||||
|
:font_color,
|
||||||
translation_params(::Legislation::Process),
|
translation_params(::Legislation::Process),
|
||||||
documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]
|
documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy],
|
||||||
|
image_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy]
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -37,4 +37,8 @@ module LegislationHelper
|
|||||||
"milestones" => admin_legislation_process_milestones_path(process)
|
"milestones" => admin_legislation_process_milestones_path(process)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def banner_color?
|
||||||
|
@process.background_color.present? && @process.font_color.present?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ class Legislation::Process < ActiveRecord::Base
|
|||||||
include ActsAsParanoidAliases
|
include ActsAsParanoidAliases
|
||||||
include Taggable
|
include Taggable
|
||||||
include Milestoneable
|
include Milestoneable
|
||||||
|
include Imageable
|
||||||
include Documentable
|
include Documentable
|
||||||
documentable max_documents_allowed: 3,
|
documentable max_documents_allowed: 3,
|
||||||
max_file_size: 3.megabytes,
|
max_file_size: 3.megabytes,
|
||||||
@@ -43,6 +44,8 @@ class Legislation::Process < ActiveRecord::Base
|
|||||||
validates :allegations_end_date, presence: true, if: :allegations_start_date?
|
validates :allegations_end_date, presence: true, if: :allegations_start_date?
|
||||||
validates :proposals_phase_end_date, presence: true, if: :proposals_phase_start_date?
|
validates :proposals_phase_end_date, presence: true, if: :proposals_phase_start_date?
|
||||||
validate :valid_date_ranges
|
validate :valid_date_ranges
|
||||||
|
validates :background_color, format: { allow_blank: true, with: /\A#?(?:[A-F0-9]{3}){1,2}\z/i }
|
||||||
|
validates :font_color, format: { allow_blank: true, with: /\A#?(?:[A-F0-9]{3}){1,2}\z/i }
|
||||||
|
|
||||||
scope :open, -> { where("start_date <= ? and end_date >= ?", Date.current, Date.current)
|
scope :open, -> { where("start_date <= ? and end_date >= ?", Date.current, Date.current)
|
||||||
.order('id DESC') }
|
.order('id DESC') }
|
||||||
|
|||||||
@@ -201,6 +201,35 @@
|
|||||||
<hr>
|
<hr>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="images small-12 column">
|
||||||
|
<%= render 'images/nested_image', imageable: @process, f: f %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="small-12 column">
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="small-12 column">
|
||||||
|
<h3><%= t("admin.legislation.processes.form.banner_title") %></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="small-3 column">
|
||||||
|
<%= f.label :sections, t("admin.legislation.processes.form.banner_background_color") %>
|
||||||
|
<%= color_field(:process, :background_color, id: 'banner_background_color_picker') %>
|
||||||
|
<%= f.text_field :background_color, label: false, id: 'banner_background_color' %>
|
||||||
|
</div>
|
||||||
|
<div class="small-3 column end">
|
||||||
|
<%= f.label :sections, t("admin.legislation.processes.form.banner_font_color") %>
|
||||||
|
<%= color_field(:process, :font_color, id: 'banner_font_color_picker') %>
|
||||||
|
<%= f.text_field :font_color, label: false, id: 'banner_font_color' %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="small-12 column">
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
|
||||||
<%= f.translatable_fields do |translations_form| %>
|
<%= f.translatable_fields do |translations_form| %>
|
||||||
<div class="small-12 medium-9 column">
|
<div class="small-12 medium-9 column">
|
||||||
<%= translations_form.text_field :title,
|
<%= translations_form.text_field :title,
|
||||||
|
|||||||
@@ -1,7 +1,17 @@
|
|||||||
<div class="legislation-hero jumbo">
|
<div class="legislation-hero jumbo" <% if banner_color? %>
|
||||||
|
style="background:<%= process.background_color %>; color:<%= process.font_color %>;"
|
||||||
|
<% end %>>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="small-12 medium-9 column">
|
<div class="small-12 medium-9 column">
|
||||||
<%= back_link_to legislation_processes_path %>
|
|
||||||
|
<% if banner_color? %>
|
||||||
|
<%= link_to t("shared.back"), legislation_processes_path,
|
||||||
|
class: "icon-angle-left",
|
||||||
|
style: "color:#{process.font_color};" %>
|
||||||
|
<% else %>
|
||||||
|
<%= back_link_to legislation_processes_path %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<h2><%= @process.title %></h2>
|
<h2><%= @process.title %></h2>
|
||||||
|
|
||||||
<% if header == :small %>
|
<% if header == :small %>
|
||||||
@@ -35,6 +45,11 @@
|
|||||||
description: @process.title
|
description: @process.title
|
||||||
} %>
|
} %>
|
||||||
|
|
||||||
|
<% if @process.image.present? %>
|
||||||
|
<hr>
|
||||||
|
<%= image_tag(@process.image_url(:large), alt: @process.title, id:'image') %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<% if process.draft_publication.enabled? %>
|
<% if process.draft_publication.enabled? %>
|
||||||
<div class="sidebar-divider"></div>
|
<div class="sidebar-divider"></div>
|
||||||
<p class="sidebar-title">
|
<p class="sidebar-title">
|
||||||
|
|||||||
@@ -10,7 +10,10 @@
|
|||||||
<%= markdown @process.additional_info if @process.additional_info %>
|
<%= markdown @process.additional_info if @process.additional_info %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a class="button" data-toggle="additional_info">
|
<a class="button" data-toggle="additional_info"
|
||||||
|
<% if banner_color? %>
|
||||||
|
style="background:<%= process.font_color %>; color:<%= process.background_color %>;"
|
||||||
|
<% end %>>
|
||||||
<%= t("legislation.processes.header.additional_info") %>
|
<%= t("legislation.processes.header.additional_info") %>
|
||||||
</a>
|
</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -438,6 +438,9 @@ en:
|
|||||||
homepage: Description
|
homepage: Description
|
||||||
homepage_description: Here you can explain the content of the process
|
homepage_description: Here you can explain the content of the process
|
||||||
homepage_enabled: Homepage enabled
|
homepage_enabled: Homepage enabled
|
||||||
|
banner_title: Banner colors
|
||||||
|
banner_background_color: Background colour
|
||||||
|
banner_font_color: Font colour
|
||||||
index:
|
index:
|
||||||
create: New process
|
create: New process
|
||||||
delete: Delete
|
delete: Delete
|
||||||
|
|||||||
@@ -439,6 +439,9 @@ es:
|
|||||||
homepage: Descripción
|
homepage: Descripción
|
||||||
homepage_description: Aquí puedes explicar el contenido del proceso
|
homepage_description: Aquí puedes explicar el contenido del proceso
|
||||||
homepage_enabled: Homepage activada
|
homepage_enabled: Homepage activada
|
||||||
|
banner_title: Colores del banner
|
||||||
|
banner_background_color: Color de fondo
|
||||||
|
banner_font_color: Color del texto
|
||||||
index:
|
index:
|
||||||
create: Nuevo proceso
|
create: Nuevo proceso
|
||||||
delete: Borrar
|
delete: Borrar
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
class AddHeaderColorSettingsToLegislationProcesses < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :legislation_processes, :background_color, :text
|
||||||
|
add_column :legislation_processes, :font_color, :text
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -666,6 +666,8 @@ ActiveRecord::Schema.define(version: 20190103132925) do
|
|||||||
t.date "draft_end_date"
|
t.date "draft_end_date"
|
||||||
t.boolean "draft_phase_enabled", default: false
|
t.boolean "draft_phase_enabled", default: false
|
||||||
t.boolean "homepage_enabled", default: false
|
t.boolean "homepage_enabled", default: false
|
||||||
|
t.text "background_color"
|
||||||
|
t.text "font_color"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "legislation_processes", ["allegations_end_date"], name: "index_legislation_processes_on_allegations_end_date", using: :btree
|
add_index "legislation_processes", ["allegations_end_date"], name: "index_legislation_processes_on_allegations_end_date", using: :btree
|
||||||
|
|||||||
@@ -131,6 +131,28 @@ feature 'Admin legislation processes' do
|
|||||||
expect(page).not_to have_content 'Summary of the process'
|
expect(page).not_to have_content 'Summary of the process'
|
||||||
expect(page).not_to have_content 'Describing the process'
|
expect(page).not_to have_content 'Describing the process'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "Create a legislation process with an image", :js do
|
||||||
|
visit new_admin_legislation_process_path()
|
||||||
|
fill_in 'Process Title', with: 'An example legislation process'
|
||||||
|
fill_in 'Summary', with: 'Summary of the process'
|
||||||
|
|
||||||
|
base_date = Date.current
|
||||||
|
fill_in 'legislation_process[start_date]', with: base_date.strftime("%d/%m/%Y")
|
||||||
|
fill_in 'legislation_process[end_date]', with: (base_date + 5.days).strftime("%d/%m/%Y")
|
||||||
|
imageable_attach_new_file(create(:image), Rails.root.join('spec/fixtures/files/clippy.jpg'))
|
||||||
|
|
||||||
|
click_button 'Create process'
|
||||||
|
|
||||||
|
expect(page).to have_content 'An example legislation process'
|
||||||
|
expect(page).to have_content 'Process created successfully'
|
||||||
|
|
||||||
|
click_link 'Click to visit'
|
||||||
|
|
||||||
|
expect(page).to have_content 'An example legislation process'
|
||||||
|
expect(page).not_to have_content 'Summary of the process'
|
||||||
|
expect(page).to have_css("img[alt='#{Legislation::Process.last.title}']")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Update' do
|
context 'Update' do
|
||||||
|
|||||||
31
spec/helpers/legislation_helper_spec.rb
Normal file
31
spec/helpers/legislation_helper_spec.rb
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe LegislationHelper do
|
||||||
|
let(:process) { build(:legislation_process) }
|
||||||
|
|
||||||
|
it "is valid" do
|
||||||
|
expect(process).to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "banner colors presence" do
|
||||||
|
it "background and font color exist" do
|
||||||
|
@process = build(:legislation_process, background_color: "#944949", font_color: "#ffffff")
|
||||||
|
expect(banner_color?).to eq(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "background color exist and font color not exist" do
|
||||||
|
@process = build(:legislation_process, background_color: "#944949", font_color: "")
|
||||||
|
expect(banner_color?).to eq(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "background color not exist and font color exist" do
|
||||||
|
@process = build(:legislation_process, background_color: "", font_color: "#944949")
|
||||||
|
expect(banner_color?).to eq(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "background and font color not exist" do
|
||||||
|
@process = build(:legislation_process, background_color: "", font_color: "")
|
||||||
|
expect(banner_color?).to eq(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -177,4 +177,24 @@ describe Legislation::Process do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "banner colors" do
|
||||||
|
it "valid banner colors" do
|
||||||
|
process1 = create(:legislation_process, background_color: "123", font_color: "#fff")
|
||||||
|
process2 = create(:legislation_process, background_color: "#fff", font_color: "123")
|
||||||
|
process3 = create(:legislation_process, background_color: "", font_color: "")
|
||||||
|
process4 = create(:legislation_process, background_color: "#abf123", font_color: "fff123")
|
||||||
|
expect(process1).to be_valid
|
||||||
|
expect(process2).to be_valid
|
||||||
|
expect(process3).to be_valid
|
||||||
|
expect(process4).to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "invalid banner colors" do
|
||||||
|
expect {
|
||||||
|
process1 = create(:legislation_process, background_color: "#123ghi", font_color: "#fff")
|
||||||
|
process2 = create(:legislation_process, background_color: "#ffffffff", font_color: "#123")
|
||||||
|
}.to raise_error(ActiveRecord::RecordInvalid, "Validation failed: Background color is invalid")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user