Weeks new and edit

This commit is contained in:
Adrian Hinz 2019-05-15 17:44:22 +02:00
parent bb948f9644
commit 866fb98550
9 changed files with 42 additions and 18 deletions

View File

@ -27,7 +27,8 @@ module Admin
# POST /admin/weeks.json # POST /admin/weeks.json
def create def create
@week = Week.new(admin_week_params) @week = Week.new(admin_week_params)
@course = Course.find(@week.course_id)
params[:course_id] = @course.id
respond_to do |format| respond_to do |format|
if @week.save if @week.save
format.js { collection } format.js { collection }
@ -81,7 +82,7 @@ module Admin
# Never trust parameters from the scary internet, only allow the white list through. # Never trust parameters from the scary internet, only allow the white list through.
def admin_week_params def admin_week_params
params.require(:week).permit(:name, :description) params.require(:week).permit(:name, :description, :course_id)
end end
end end
end end

View File

@ -0,0 +1,30 @@
# frozen_string_literal: true
# ErrorsHelper
module ErrorsHelper
def error_messages(object)
return unless object.errors.any?
content_tag(:div, class: 'card bg-danger p-3 text-white') do
concat error_messages_h4
concat error_messages_ul(object)
end
end
private
def error_messages_h4
content_tag(:h4) do
concat content_tag(:i, '', class: 'fas fa-exclamation-circle')
concat " #{I18n.t('errors_ocurred')}"
end
end
def error_messages_ul(object)
content_tag(:ul, class: 'm-0') do
object.errors.full_messages.each do |message|
concat content_tag(:li, message)
end
end
end
end

View File

@ -1,8 +1,11 @@
# frozen_string_literal: true # frozen_string_literal: true
# Weeks
class Week < ApplicationRecord class Week < ApplicationRecord
belongs_to :course belongs_to :course
validates :name, presence: true
scope :by_course, ->(c_id) { where(course_id: c_id) } scope :by_course, ->(c_id) { where(course_id: c_id) }
scope :name_asc, -> { order('name ASC') } scope :name_asc, -> { order('name ASC') }
scope :name_desc, -> { order('name DESC') } scope :name_desc, -> { order('name DESC') }

View File

@ -1,6 +1,4 @@
<h1 class="h3 mb-1 text-gray-800">Kurs: <strong><%= @course.name %></strong></h1> <h1 class="h3 mb-1 text-gray-800">Kurs: <strong><%= @course.name %></strong> (<%= link_to raw(t('back')), admin_courses_path %>)</h1>
<p class="mb-4"><%= @course.description %></p> <p class="mb-4"><%= @course.description %></p>
<!-- Weeks --> <!-- Weeks -->
<%= render partial: '/admin/weeks/partials/index' %> <%= render partial: '/admin/weeks/partials/index' %>
<%= link_to 'Back', admin_courses_path %>

View File

@ -1,4 +1 @@
<h1 class="h3 mb-1 text-gray-800">Kursy</h1>
<p class="mb-4">Tutaj jakiś opis.</p>
<p id="notice"><%= notice %></p>
<%= render partial: '/admin/weeks/partials/index' %> <%= render partial: '/admin/weeks/partials/index' %>

View File

@ -1,15 +1,8 @@
<%= form_with(model: [:admin, week]) do |form| %> <%= form_with(model: [:admin, week]) do |form| %>
<% if week.errors.any? %> <% if week.errors.any? %>
<div id="error_explanation"> <%= error_messages(week) %>
<h2><%= pluralize(week.errors.count, "error") %> prohibited this admin_week from being saved:</h2>
<ul>
<% week.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %> <% end %>
<%= form.hidden_field :course_id %>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<%= form.label :name %> <%= form.label :name %>

View File

@ -4,7 +4,7 @@
<div class="card shadow mb-4"> <div class="card shadow mb-4">
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between"> <div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
<h6 class="m-0 font-weight-bold text-primary">Lista tygodni</h6> <h6 class="m-0 font-weight-bold text-primary">Lista tygodni</h6>
<%= link_to raw('<i class="fa fa-plus"></i> Dodaj Nowy Tydzien'), new_admin_week_path, { remote: true, class: 'btn btn-sm btn-primary float-right' } %> <%= link_to raw('<i class="fa fa-plus"></i> Dodaj Nowy Tydzien'), new_admin_week_path(course_id: @course.id), { remote: true, class: 'btn btn-sm btn-primary float-right' } %>
</div> </div>
<div class="card-body"> <div class="card-body">
<div id="ajax_form"></div> <div id="ajax_form"></div>

View File

@ -3,6 +3,7 @@ pl:
logout: 'Wyloguj' logout: 'Wyloguj'
login: 'Zaloguj' login: 'Zaloguj'
add: 'Dodaj' add: 'Dodaj'
back: 'Wróc'
actions: 'Akcje' actions: 'Akcje'
information: 'Informacja' information: 'Informacja'
empty_list: 'Nie znaleziono żadnych elementów do wyświetlenia.' empty_list: 'Nie znaleziono żadnych elementów do wyświetlenia.'

View File

@ -16,3 +16,4 @@ pl:
week: week:
name: 'Nazwa' name: 'Nazwa'
description: 'Opis' description: 'Opis'
course: 'Kurs'