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 {
|
||||
background: #ecf0f1;
|
||||
}
|
||||
|
||||
h1,
|
||||
p {
|
||||
color: $text;
|
||||
}
|
||||
}
|
||||
|
||||
.lead {
|
||||
|
||||
@@ -66,8 +66,11 @@ class Admin::Legislation::ProcessesController < Admin::Legislation::BaseControll
|
||||
:result_publication_enabled,
|
||||
:published,
|
||||
:custom_list,
|
||||
:background_color,
|
||||
:font_color,
|
||||
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
|
||||
|
||||
|
||||
@@ -37,4 +37,8 @@ module LegislationHelper
|
||||
"milestones" => admin_legislation_process_milestones_path(process)
|
||||
}
|
||||
end
|
||||
|
||||
def banner_color?
|
||||
@process.background_color.present? && @process.font_color.present?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,6 +2,7 @@ class Legislation::Process < ActiveRecord::Base
|
||||
include ActsAsParanoidAliases
|
||||
include Taggable
|
||||
include Milestoneable
|
||||
include Imageable
|
||||
include Documentable
|
||||
documentable max_documents_allowed: 3,
|
||||
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 :proposals_phase_end_date, presence: true, if: :proposals_phase_start_date?
|
||||
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)
|
||||
.order('id DESC') }
|
||||
|
||||
@@ -201,6 +201,35 @@
|
||||
<hr>
|
||||
</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| %>
|
||||
<div class="small-12 medium-9 column">
|
||||
<%= 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="small-12 medium-9 column">
|
||||
|
||||
<% 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>
|
||||
|
||||
<% if header == :small %>
|
||||
@@ -35,6 +45,11 @@
|
||||
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? %>
|
||||
<div class="sidebar-divider"></div>
|
||||
<p class="sidebar-title">
|
||||
|
||||
@@ -10,7 +10,10 @@
|
||||
<%= markdown @process.additional_info if @process.additional_info %>
|
||||
</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") %>
|
||||
</a>
|
||||
<% end %>
|
||||
|
||||
@@ -438,6 +438,9 @@ en:
|
||||
homepage: Description
|
||||
homepage_description: Here you can explain the content of the process
|
||||
homepage_enabled: Homepage enabled
|
||||
banner_title: Banner colors
|
||||
banner_background_color: Background colour
|
||||
banner_font_color: Font colour
|
||||
index:
|
||||
create: New process
|
||||
delete: Delete
|
||||
|
||||
@@ -439,6 +439,9 @@ es:
|
||||
homepage: Descripción
|
||||
homepage_description: Aquí puedes explicar el contenido del proceso
|
||||
homepage_enabled: Homepage activada
|
||||
banner_title: Colores del banner
|
||||
banner_background_color: Color de fondo
|
||||
banner_font_color: Color del texto
|
||||
index:
|
||||
create: Nuevo proceso
|
||||
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.boolean "draft_phase_enabled", default: false
|
||||
t.boolean "homepage_enabled", default: false
|
||||
t.text "background_color"
|
||||
t.text "font_color"
|
||||
end
|
||||
|
||||
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 'Describing the process'
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user