Add category, subcategory and measure ids to the page. Finishes #179986325

pull/1/head
Nelson Jovel 4 years ago
parent cacc853518
commit 2753888f11

@ -23,6 +23,17 @@
box-shadow: 0 0 6px rgba($black, 0.25); box-shadow: 0 0 6px rgba($black, 0.25);
} }
.construct-id {
@extend .font-cabin;
@extend .weight-700;
text-transform: uppercase;
letter-spacing: 0.1em;
font-size: 14px;
color: $gray-1;
line-height: 18px;
}
.subcategory-section { .subcategory-section {
@extend .mt-5; @extend .mt-5;
@extend .bg-color-white; @extend .bg-color-white;

@ -3,6 +3,10 @@ class CategoryPresenter
@category = category @category = category
end end
def id
@category.category_id
end
def name def name
@category.name @category.name
end end

@ -5,6 +5,10 @@ class MeasurePresenter
@school = school @school = school
end end
def id
@measure.measure_id
end
def name def name
@measure.name @measure.name
end end

@ -5,6 +5,10 @@ class SubcategoryPresenter
@school = school @school = school
end end
def id
@subcategory.subcategory_id
end
def name def name
@subcategory.name @subcategory.name
end end

@ -1,4 +1,5 @@
<div class="measure-section mx-4"> <div class="measure-section mx-4">
<p class="construct-id">Measure <%= measure_presenter.id %></p>
<h3 class="measure-description sub-header-4 mb-5 "><%= measure_presenter.name %></h3> <h3 class="measure-description sub-header-4 mb-5 "><%= measure_presenter.name %></h3>
<div> <div>
<%= render partial: "gauge_graph", locals: { gauge: measure_presenter.gauge_presenter, gauge_class: 'gauge-graph-sm', font_class: 'weight-700' } %> <%= render partial: "gauge_graph", locals: { gauge: measure_presenter.gauge_presenter, gauge_class: 'gauge-graph-sm', font_class: 'weight-700' } %>

@ -1,6 +1,6 @@
<section class="subcategory-section"> <section class="subcategory-section">
<div class="p-7"> <div class="p-7">
<p class="construct-id">Subcategory <%= subcategory.id %></p>
<h2 class="sub-header-2 font-bitter mb-7"><%= subcategory.name %></h2> <h2 class="sub-header-2 font-bitter mb-7"><%= subcategory.name %></h2>
<div class="d-flex justify-content-between align-items-end"> <div class="d-flex justify-content-between align-items-end">

@ -10,7 +10,7 @@
<% end %> <% end %>
</nav> </nav>
<% end %> <% end %>
<p class="construct-id">Category <%= @category.id %></p>
<h1 class="sub-header font-bitter color-red"><%= @category.name %></h1> <h1 class="sub-header font-bitter color-red"><%= @category.name %></h1>
<p class="col-8 body-large"><%= @category.description %></p> <p class="col-8 body-large"><%= @category.description %></p>

@ -5,7 +5,7 @@ describe CategoryPresenter do
subcategory1 = Subcategory.new(name: 'A subcategory') subcategory1 = Subcategory.new(name: 'A subcategory')
subcategory2 = Subcategory.new(name: 'Another subcategory') subcategory2 = Subcategory.new(name: 'Another subcategory')
category = Category.new(name: 'Some Category', subcategories: [subcategory1, subcategory2], description: 'A description for some Category', short_description: 'A short description for some Category') category = Category.new(name: 'Some Category', subcategories: [subcategory1, subcategory2], description: 'A description for some Category', short_description: 'A short description for some Category', category_id: '1')
return CategoryPresenter.new(category: category) return CategoryPresenter.new(category: category)
end end
@ -38,10 +38,11 @@ describe CategoryPresenter do
DatabaseCleaner.clean DatabaseCleaner.clean
end end
it 'returns the name and description of the category' do it 'returns the name, id and description of the category' do
expect(category_presenter.name).to eq 'Some Category' expect(category_presenter.name).to eq 'Some Category'
expect(category_presenter.description).to eq 'A description for some Category' expect(category_presenter.description).to eq 'A description for some Category'
expect(category_presenter.short_description).to eq 'A short description for some Category' expect(category_presenter.short_description).to eq 'A short description for some Category'
expect(category_presenter.id).to eq '1'
end end
it 'maps subcategories to subcategory presenters' do it 'maps subcategories to subcategory presenters' do

@ -6,6 +6,10 @@ describe MeasurePresenter do
let(:measure) { create(:measure, measure_id: 'measure-id') } let(:measure) { create(:measure, measure_id: 'measure-id') }
let(:measure_presenter) { MeasurePresenter.new(measure: measure, academic_year: academic_year, school: school) } let(:measure_presenter) { MeasurePresenter.new(measure: measure, academic_year: academic_year, school: school) }
it 'returns the id of the measure' do
expect(measure_presenter.id).to eq 'measure-id'
end
it 'has an id for use in the data item accordions' do it 'has an id for use in the data item accordions' do
expect(measure_presenter.data_item_accordion_id).to eq 'data-item-accordion-measure-id' expect(measure_presenter.data_item_accordion_id).to eq 'data-item-accordion-measure-id'
end end

@ -3,7 +3,7 @@ require 'rails_helper'
describe SubcategoryPresenter do describe SubcategoryPresenter do
let(:academic_year) { create(:academic_year, range: '1989-90') } let(:academic_year) { create(:academic_year, range: '1989-90') }
let(:school) { create(:school, name: 'Best School') } let(:school) { create(:school, name: 'Best School') }
let(:subcategory) { create(:subcategory, name: 'A great subcategory', description: 'A great description') } let(:subcategory) { create(:subcategory, name: 'A great subcategory', subcategory_id: 'A', description: 'A great description') }
let(:subcategory_presenter) do let(:subcategory_presenter) do
measure1 = create(:measure, watch_low_benchmark: 4, growth_low_benchmark: 4.25, approval_low_benchmark: 4.5, ideal_low_benchmark: 4.75, subcategory: subcategory) measure1 = create(:measure, watch_low_benchmark: 4, growth_low_benchmark: 4.25, approval_low_benchmark: 4.5, ideal_low_benchmark: 4.75, subcategory: subcategory)
survey_item1 = create(:teacher_survey_item, measure: measure1) survey_item1 = create(:teacher_survey_item, measure: measure1)
@ -31,6 +31,10 @@ describe SubcategoryPresenter do
expect(subcategory_presenter.description).to eq 'A great description' expect(subcategory_presenter.description).to eq 'A great description'
end end
it 'returns the id of the subcategory' do
expect(subcategory_presenter.id).to eq 'A'
end
it 'returns a gauge presenter responsible for the aggregate survey item response likert scores' do it 'returns a gauge presenter responsible for the aggregate survey item response likert scores' do
expect(subcategory_presenter.gauge_presenter.title).to eq 'Growth' expect(subcategory_presenter.gauge_presenter.title).to eq 'Growth'
end end

Loading…
Cancel
Save