Skip to content

Commit

Permalink
steps admin panel (#610)
Browse files Browse the repository at this point in the history
* steps admin panel

* remove old tests

* remove old controller

* remove private method in career step controllers

* fix

* fix

* redisign routs and controller step

* fix flash maessages

* fix
  • Loading branch information
usernaimandrey committed Jul 5, 2023
1 parent 71b6a76 commit 5f74437
Show file tree
Hide file tree
Showing 23 changed files with 202 additions and 93 deletions.
31 changes: 16 additions & 15 deletions app/controllers/web/admin/careers/steps_controller.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
# frozen_string_literal: true

class Web::Admin::Careers::StepsController < Web::Admin::Careers::ApplicationController
def index
query = { s: 'created_at desc' }.merge(params.permit![:q] || {})
@q = Career::Step.ransack(query)
@steps = @q.result.page(params[:page])
end

def show
@step = Career::Step.find(params[:id])
@careers = @step.careers
end

def new
Expand All @@ -11,37 +18,31 @@ def new

def edit
@step = Career::Step.find(params[:id])
@careers = @step.careers
end

def create
form = Web::Admin::Career::StepForm.new(career_step_params)
@step = Career::StepMutator.create(resource_career, form.attributes)
if @step.persisted?
@step = Web::Admin::Career::StepForm.new(params[:career_step])
if @step.save
f(:success)
redirect_to admin_career_path(resource_career)
redirect_to admin_step_path(@step)
else
f(:error)
render :new, status: :unprocessable_entity
end
end

def update
@step = Career::Step.find(params[:id])
step = @step.becomes(Web::Admin::Career::StepForm)
step = Career::Step.find(params[:id])
@step = step.becomes(Web::Admin::Career::StepForm)

if step.update(career_step_params)
if @step.update(params[:career_step])
f(:success)
redirect_to admin_career_path(resource_career)
redirect_to admin_step_path(@step)
else
@step = step.becomes(Web::Admin::Career::StepForm)
@careers = @step.careers
f(:error)
render :edit, status: :unprocessable_entity
end
end

private

def career_step_params
params.require(:career_step)
end
end
2 changes: 1 addition & 1 deletion app/controllers/web/admin/careers_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def index

def show
@career = Career.find(params[:id])
@steps = @career.steps.ordered
@career_steps = @career.steps.ordered
@users = @career.users.distinct
end

Expand Down
1 change: 1 addition & 0 deletions app/views/layouts/web/admin/application.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ html.h-100 lang="#{I18n.locale}"
= sidebar_menu_item t('.all_vacancies'), 'bi-briefcase', admin_vacancies_path
= sidebar_menu_divider t('.career_track')
= sidebar_menu_item t('.all_career_tracks'), 'bi-graph-up-arrow', admin_careers_path
= sidebar_menu_item t('.all_career_steps'), 'bi bi-bar-chart-steps', admin_steps_path
.col-md-10
- if content_for?(:header)
h1.h2.mb-4 = yield :header
Expand Down
2 changes: 1 addition & 1 deletion app/views/web/admin/careers/_item_step_fields.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
= f.input :order, hint: t('.order')
.col-md-3
- if f.object.career_step
= link_to edit_admin_career_step_path(@career, f.object.career_step), class: 'btn btn-outline-primary me-1', title: t('.edit') do
= link_to edit_admin_step_path(f.object.career_step), class: 'btn btn-outline-primary me-1', title: t('.edit') do
span.bi.bi-gear-fill
= link_to_remove_association f, class: 'btn btn-xs btn-danger', title: t('.remove_field') do
span.bi.bi-trash3-fill
10 changes: 4 additions & 6 deletions app/views/web/admin/careers/_steps.html.slim
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
h3.my-4.me-3 = t('.steps_career')

= link_to t('.add_new_step'), new_admin_career_step_path(career), class: 'btn btn-primary'

table.table
thead
tr
th = han('career/step', 'name')
th = han('career/step', 'created_at')
th = t('actions')
tbody
- steps.each do |step|
- career_steps.each do |step|
tr
td = link_to step.name, admin_career_step_path(career, step), class: 'text-decoration-none'
td = link_to step.name, admin_step_path(step), class: 'text-decoration-none'
td = l step.created_at, format: :long
td
.btn-group[role='group' aria-label="#{t('action_buttons')}"]
= link_to admin_career_step_path(career, step), class: 'btn btn-outline-primary btn-sm', title: t('.show_step') do
= link_to admin_step_path(career, step), class: 'btn btn-outline-primary btn-sm', title: t('.show_step') do
span.bi.bi-eye-fill
= link_to edit_admin_career_step_path(career, step), class: 'btn btn-outline-primary btn-sm', title: t('.edit') do
= link_to edit_admin_step_path(step), class: 'btn btn-outline-primary btn-sm', title: t('.edit') do
span.bi.bi-gear-fill
3 changes: 3 additions & 0 deletions app/views/web/admin/careers/index.html.slim
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
- content_for :header do
= t('.career')

= render 'menu', career: nil

table.table
Expand Down
2 changes: 1 addition & 1 deletion app/views/web/admin/careers/show.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ ul.nav.nav-tabs[role='tablist']
= render 'users', users: @users, career: @career

.tab-pane[id='steps' role='tabpanel']
= render 'steps', steps: @steps, career: @career
= render 'steps', career_steps: @career_steps, career: @career
21 changes: 21 additions & 0 deletions app/views/web/admin/careers/steps/_careers.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
.h4
= t('.attached')

- if careers.any?
table.table id='attached'
thead
tr
th = han('career', 'name')
th = t('.actions')
tbody
- careers.each do |career|
tr
td = career.name
td
.btn-group[role='group' aria-label="#{t('action_buttons')}"]
= link_to admin_career_path(career), class: 'btn btn-outline-primary btn-sm', title: t('.show') do
span.bi.bi-eye-fill
= link_to edit_admin_career_path(career), class: 'btn btn-outline-primary btn-sm me-1', title: t('.edit') do
span.bi.bi-gear-fill
- else
= render 'web/shared/empty_list'
5 changes: 5 additions & 0 deletions app/views/web/admin/careers/steps/_menu.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ul.nav.nav-tabs.mb-4
= menu_item t('.list'), admin_steps_path
= menu_item t('.new'), new_admin_step_path
- if @step&.persisted?
= menu_item @step.name, edit_admin_step_path(@step)
14 changes: 12 additions & 2 deletions app/views/web/admin/careers/steps/edit.html.slim
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
- content_for :header do
= t('steps')
= t('.step', name: @step.name)

= render 'web/admin/careers/steps/form', step: @step, url: admin_career_step_path(resource_career, @step)
= render 'menu'

- if @careers.any?
.mb-2
span.me-3
= t('.attached_careers')
span
- @careers.each do |career|
= link_to career.name, admin_career_path(career), class: 'badge rounded-pill bg-success me-1'

= render 'form', step: @step, url: admin_step_path(@step)
24 changes: 24 additions & 0 deletions app/views/web/admin/careers/steps/index.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
- content_for :header do
= t('career_steps')

= render 'menu'

table.table
thead
tr
th = sort_link(@q, 'name')
th = sort_link(@q, 'locale')
th = sort_link(@q, 'created_at')
th = t('.action')
tbody
- @steps.each do |step|
tr
td = step.name
td = step.locale
td = l step.created_at, format: :short
td
.btn-group[role='group' aria-label="#{t('action_buttons')}"]
= link_to admin_step_path(step), class: 'btn btn-outline-primary btn-sm', title: t('.show') do
span.bi.bi-eye-fill
= link_to edit_admin_step_path(step), class: 'btn btn-outline-primary btn-sm me-1', title: t('.edit') do
span.bi.bi-gear-fill
6 changes: 4 additions & 2 deletions app/views/web/admin/careers/steps/new.html.slim
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
- content_for :header do
= t('steps')
= t('.new_step')

= render 'web/admin/careers/steps/form', step: @step, url: admin_career_steps_path
= render 'menu'

= render 'form', step: @step, url: admin_steps_path
43 changes: 17 additions & 26 deletions app/views/web/admin/careers/steps/show.html.slim
Original file line number Diff line number Diff line change
@@ -1,28 +1,19 @@
- content_for :header do
= t('.step', step_name: @step.name)
= link_to t('.back'), url_for(:back), class: 'btn btn-secondary me-1'
= link_to edit_admin_step_path(@step), class: 'btn btn-primary', title: t('.edit') do
span.bi.bi-gear-fill.me-1
= t('.edit')

= link_to t('.back'), url_for(:back), class: 'btn btn-secondary'
.row.my-1
.col-lg-12
.my-1
.h3
= @step.name
.bg-light.rounded.py-2.px-3
== markdown2html(@step.description)
.my-1
.h4
= t('.tasks')
.bg-light.rounded.py-2.px-3
== markdown2html(@step.tasks_text)

.row.mb-3
.col-sm-3
b = han('career/step', 'name')
.col-sm-9
= @step.name

.row.mb-3
.col-sm-3
b = han('career/step', 'description')
.col-sm-9.hexlet-cv-content
== markdown2html @step.description

.row.mb-3
.col-sm-3
b = han('career/step', 'tasks_text')
.col-sm-9
== markdown2html @step.tasks_text

.row.mb-3
.col-sm-3
b = han('career/step', 'locale')
.col-sm-9
= @step.locale_text
= render 'careers', careers: @careers
21 changes: 7 additions & 14 deletions config/locales/admin/en.flash.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,23 @@ en:
create:
success: User added to career track
error: Error! Failed to assign career track to user!
steps:
create:
error: Correct the mistakes
success: Step created successfully
update:
error: Correct the mistakes
success: Step updated
update:
success: Career track successfully updated!
error: Error! Check form fields
steps:
update:
success: Step successfully updated
error: Error! Check form fields
create:
success: Step created successfully
error: Error! Check form fields
career_members:
destroy:
success: Career track canceled successfully
error: Error! Failed to unassign career track!
create:
error: Error! Failed to assign career track to user!
success: Career track successfully assigned
steps:
update:
success: Step successfully updated
error: Error! Check form fields
create:
success: Step created successfully
error: Error! Check form fields
resumes:
archive:
success: Resume archived successfully
Expand Down
1 change: 1 addition & 0 deletions config/locales/admin/en.layouts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ en:
all_vacancies: Jobs
all_career_tracks: Career Tracks
career_track: Career Track
all_career_steps: Steps
26 changes: 26 additions & 0 deletions config/locales/admin/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@ en:
remove_field: Delete step
edit: Edit step
index:
career: Career tracks
edit: Edit
edit:
cancel: Cancel
career: Career track
items: Career track steps
steps: Steps
Expand Down Expand Up @@ -73,6 +75,30 @@ en:
question: Are you sure you want to remove the user from the career track?
add_user: Add student
no_date: Not finished
steps:
edit:
step: 'Step: %{name}'
index:
edit: Edit
show: Show
action: Actions
form:
cancel: Отменить
menu:
list: List
new: New
show:
attached: Attached to Careers
tasks: Tasks
actions: Actions
edit: Edit
show: Show
back: Back
careers:
edit: Edit
attached: Step related career tracks
actions: Action
show: Show
users:
in_career_path:
started_at: Started
Expand Down
21 changes: 7 additions & 14 deletions config/locales/admin/ru.flash.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,23 @@ ru:
create:
success: Пользователь добавлен в карьерный трек
error: Ошибка! Не удалось назначить карьерный трек пользователю!
steps:
create:
error: Исправьте ошибки
success: Шаг успешно создан
update:
error: Исправьте ошибки
success: Шаг обновлен
update:
success: Карьерный трек успешно обновлен!
error: Ошибка! Проверьте поля формы
steps:
update:
success: Шаг успешно обнавлен
error: Ошибка! Проверьте поля формы
create:
success: Шаг успешно создан
error: Ошибка! Проверьте поля формы
career_members:
destroy:
success: Карьерный трек успешно отменен
error: Ошибка! Не удалось оменит назначение карьерного трека!
create:
error: Ошибка! Не удалось назначить карьерный трек пользователю!
success: Карьерный трек успешно назначен
steps:
update:
success: Шаг успешно обнавлен
error: Ошибка! Проверьте поля формы
create:
success: Шаг успешно создан
error: Ошибка! Проверьте поля формы
resumes:
archive:
success: Резюме успешно архивировано
Expand Down
1 change: 1 addition & 0 deletions config/locales/admin/ru.layouts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ ru:
all_vacancies: Вакансии
all_career_tracks: Карьерные треки
career_track: Карьерный трек
all_career_steps: Шаги

0 comments on commit 5f74437

Please sign in to comment.