/
Dmitry-F
/
cbt_tool
Обзор
Документация
Войти
/
Dmitry-F
/
cbt_tool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
bin/fix_all_counters
173 строки
7 KB
Dmitriy-Filatov
🧹 ФИНАЛЬНАЯ ЧИСТКА ИНТЕРФЕЙСА
13 мар 2026, 13:24
13 мар 2026, 13:24
86e73bf
Код
Авторство
О чём код?
#!/bin/bash echo "=========================================" echo "🔧 МАССОВОЕ ИСПРАВЛЕНИЕ СЧЁТЧИКОВ" echo "=========================================" echo "" # ========================================= # 1. entries_controller.rb (движок) # ========================================= echo "📁 1. Исправляем entries_controller.rb..." # update с Turbo Stream sed -i '' '/def update/,/end/c\ def update\ if @entry.update(entry_params)\ respond_to do |format|\ format.turbo_stream do\ render turbo_stream: [\ turbo_stream.replace("smer_entries_list", partial: "smer_diary/entries/entry", collection: @entry.client.smer_diary_entries.order(occurred_at: :desc).limit(5), as: :entry),\ turbo_stream.replace("client_stats_card", partial: "clients/stats_card", locals: { client: @entry.client }),\ turbo_stream.replace("client_left_stats_card", partial: "clients/left_stats_card", locals: { client: @entry.client })\ ]\ end\ format.html { redirect_to main_app.client_path(@entry.client_id), notice: "✅ Запись обновлена" }\ end\ else\ render :edit, status: :unprocessable_entity\ end\ end' engines/smer_diary/app/controllers/smer_diary/entries_controller.rb # destroy с Turbo Stream sed -i '' '/def destroy/,/end/c\ def destroy\ client = @entry.client\ @entry.destroy\ \ respond_to do |format|\ format.turbo_stream do\ render turbo_stream: [\ turbo_stream.remove(@entry),\ turbo_stream.replace("smer_entries_list", partial: "smer_diary/entries/entry", collection: client.smer_diary_entries.order(occurred_at: :desc).limit(5), as: :entry),\ turbo_stream.replace("client_stats_card", partial: "clients/stats_card", locals: { client: client }),\ turbo_stream.replace("client_left_stats_card", partial: "clients/left_stats_card", locals: { client: client })\ ]\ end\ format.html { redirect_to main_app.client_path(client.id), notice: "🗑️ Запись удалена" }\ end\ end' engines/smer_diary/app/controllers/smer_diary/entries_controller.rb echo " ✅ entries_controller исправлен" # ========================================= # 2. sessions_controller.rb (основное приложение) # ========================================= echo "📁 2. Исправляем sessions_controller.rb..." # Проверяем, есть ли файл if [ -f app/controllers/sessions_controller.rb ]; then # create с Turbo Stream sed -i '' '/def create/,/end/c\ def create\ @session = current_therapist.sessions.build(session_params)\ if @session.save\ respond_to do |format|\ format.turbo_stream do\ render turbo_stream: [\ turbo_stream.prepend("sessions_list", partial: "sessions/session", locals: { session: @session }),\ turbo_stream.replace("client_left_stats_card", partial: "clients/left_stats_card", locals: { client: @session.client })\ ]\ end\ format.html { redirect_to client_path(@session.client), notice: "✅ Сессия создана" }\ end\ else\ render :new, status: :unprocessable_entity\ end\ end' app/controllers/sessions_controller.rb # destroy с Turbo Stream sed -i '' '/def destroy/,/end/c\ def destroy\ client = @session.client\ @session.destroy\ \ respond_to do |format|\ format.turbo_stream do\ render turbo_stream: [\ turbo_stream.remove(@session),\ turbo_stream.replace("client_left_stats_card", partial: "clients/left_stats_card", locals: { client: client })\ ]\ end\ format.html { redirect_to client_path(client), notice: "🗑️ Сессия удалена" }\ end\ end' app/controllers/sessions_controller.rb echo " ✅ sessions_controller исправлен" else echo " ⚠️ sessions_controller не найден" fi # ========================================= # 3. clients_controller.rb # ========================================= echo "📁 3. Исправляем clients_controller.rb..." # update с Turbo Stream sed -i '' '/def update/,/end/c\ def update\ if @client.update(client_params)\ respond_to do |format|\ format.turbo_stream do\ render turbo_stream: turbo_stream.replace("client_left_stats_card", partial: "clients/left_stats_card", locals: { client: @client })\ end\ format.html { redirect_to client_path(@client), notice: "Данные обновлены" }\ end\ else\ render :edit, status: :unprocessable_entity\ end\ end' app/controllers/clients_controller.rb echo " ✅ clients_controller исправлен" # ========================================= # 4. Создаём недостающие паршалы # ========================================= echo "📁 4. Проверяем паршалы..." # Паршал для сессии в ленте mkdir -p app/views/sessions if [ ! -f app/views/sessions/_session.html.erb ]; then cat > app/views/sessions/_session.html.erb << 'SESSION_EOF' <div id="<%= dom_id(session) %>" class="px-6 py-4 hover:bg-calm-beige/30 transition flex items-center justify-between"> <div class="flex items-center gap-4"> <span class="text-xs font-medium text-slate-400"><%= session.session_date.strftime("%d %b") %></span> <span class="text-sm text-slate-700"><%= session.topic %></span> </div> <%= link_to "Открыть", client_session_path(session.client, session), data: { turbo_frame: "active_module" }, class: "text-xs text-primary" %> </div> SESSION_EOF echo " ✅ создан _session.html.erb" fi # ========================================= # 5. Добавляем id для списка сессий в show.html.erb # ========================================= echo "📁 5. Проверяем show.html.erb..." if grep -q "sessions_list" app/views/clients/show.html.erb; then echo " ✅ id для сессий уже есть" else sed -i '' 's/<div class="divide-y divide-slate-50">/<div class="divide-y divide-slate-50" id="sessions_list">/' app/views/clients/show.html.erb echo " ✅ добавлен id=\"sessions_list\"" fi # ========================================= # 6. Итог # ========================================= echo "" echo "=========================================" echo "✅ ВСЕ ИСПРАВЛЕНИЯ ПРИМЕНЕНЫ" echo "=========================================" echo "" echo "📌 Что исправлено:" echo " - entries#update (обновление СМЭР) → лево, право, лента" echo " - entries#destroy (удаление СМЭР) → лево, право, лента" echo " - sessions#create (новая сессия) → лево, лента" echo " - sessions#destroy (удаление сессии) → лево, лента" echo " - clients#update (редактирование клиента) → лево" echo "" echo "🚀 Перезапусти сервер: ./bin/dev" echo ""