From 85ccf2f482f5099851aea3f8cdcb21c94c17cd4f Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 4 Jan 2026 21:38:56 +0000 Subject: [PATCH] Remove unused 'pending' order status The 'pending' status was not being used in practice. Orders now start with 'paid' (for online payments) or 'unpaid' (for cash payments). Changes: - Remove 'pending' from Order enum and status transitions - Update all views, helpers, and JavaScript to remove 'pending' references - Update OrderCreationService to use 'paid' instead of 'pending' - Update BakeDayDashboard open_orders counter - Update prd.md documentation --- app/helpers/admin/bake_days_helper.rb | 1 - app/helpers/application_helper.rb | 1 - app/javascript/controllers/order_modal_controller.js | 3 +-- app/models/order.rb | 3 --- app/presenters/admin/bake_day_dashboard.rb | 2 +- app/services/order_creation_service.rb | 2 +- app/views/admin/bake_days/show.html.slim | 2 +- app/views/admin/customers/show.html.erb | 3 +-- app/views/admin/orders/edit.html.erb | 1 - app/views/admin/orders/index.html.erb | 4 ++-- app/views/admin/orders/show.html.erb | 2 +- app/views/customers/account/show.html.erb | 2 +- app/views/orders/show.html.erb | 2 +- prd.md | 9 +++++---- 14 files changed, 15 insertions(+), 22 deletions(-) diff --git a/app/helpers/admin/bake_days_helper.rb b/app/helpers/admin/bake_days_helper.rb index 5b096f2..4b523ad 100644 --- a/app/helpers/admin/bake_days_helper.rb +++ b/app/helpers/admin/bake_days_helper.rb @@ -8,7 +8,6 @@ def variant_image_attachment(variant) def status_pill_classes(status) { - "pending" => "bg-yellow-100 text-yellow-800", "unpaid" => "bg-orange-100 text-orange-800", "paid" => "bg-blue-100 text-blue-800", "ready" => "bg-emerald-100 text-emerald-800", diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 30c5dd1..bd6e236 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,7 +1,6 @@ module ApplicationHelper def order_status_label(status) labels = { - "pending" => "En attente", "unpaid" => "Non payée", "paid" => "Payée", "ready" => "Prête", diff --git a/app/javascript/controllers/order_modal_controller.js b/app/javascript/controllers/order_modal_controller.js index 2d182aa..1288a34 100644 --- a/app/javascript/controllers/order_modal_controller.js +++ b/app/javascript/controllers/order_modal_controller.js @@ -125,7 +125,7 @@ export default class extends Controller { // Déterminer la couleur du statut const statusColors = { - 'pending': 'bg-yellow-100 text-yellow-800', + 'unpaid': 'bg-orange-100 text-orange-800', 'paid': 'bg-blue-100 text-blue-800', 'ready': 'bg-green-100 text-green-800', 'picked_up': 'bg-gray-100 text-gray-800', @@ -134,7 +134,6 @@ export default class extends Controller { } const statusLabels = { - 'pending': 'En attente', 'unpaid': 'Non payée', 'paid': 'Payée', 'ready': 'Prête', diff --git a/app/models/order.rb b/app/models/order.rb index 87efbb0..cfe6c57 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -1,6 +1,5 @@ class Order < ApplicationRecord enum :status, { - pending: 0, paid: 1, ready: 2, picked_up: 3, @@ -47,8 +46,6 @@ def unpaid_ready? def can_transition_to?(new_status) case status.to_sym - when :pending - new_status.to_sym == :paid when :paid, :unpaid [:ready, :cancelled].include?(new_status.to_sym) when :ready diff --git a/app/presenters/admin/bake_day_dashboard.rb b/app/presenters/admin/bake_day_dashboard.rb index dc70ab6..f92f931 100644 --- a/app/presenters/admin/bake_day_dashboard.rb +++ b/app/presenters/admin/bake_day_dashboard.rb @@ -85,7 +85,7 @@ def kpis items_count: order_items.sum(&:qty), revenue_cents: total_cents, variants_count: variant_stats.size, - open_orders: orders.count { |order| order.pending? || order.unpaid? }, + open_orders: orders.count { |order| order.unpaid? }, ready_orders: orders.count { |order| order.ready? || order.picked_up? } } end diff --git a/app/services/order_creation_service.rb b/app/services/order_creation_service.rb index 7a81124..3c59ed6 100644 --- a/app/services/order_creation_service.rb +++ b/app/services/order_creation_service.rb @@ -13,7 +13,7 @@ def initialize(customer:, bake_day:, cart_items:, payment_intent_id: nil, paymen def call return false unless valid? - initial_status = @payment_method == 'cash' ? :unpaid : :pending + initial_status = @payment_method == 'cash' ? :unpaid : :paid @order = Order.create!( customer: @customer, diff --git a/app/views/admin/bake_days/show.html.slim b/app/views/admin/bake_days/show.html.slim index 60420fe..68893e8 100644 --- a/app/views/admin/bake_days/show.html.slim +++ b/app/views/admin/bake_days/show.html.slim @@ -274,7 +274,7 @@ .flex.flex-wrap.items-center.gap-2(data-filter-group) button.rounded-full.border.border-indigo-600.bg-indigo-600.px-3.py-1.5.text-xs.font-semibold.text-white type="button" data-filter="all" data-action="dashboard-filter#change" | Toutes - - ['pending', 'unpaid', 'paid', 'ready', 'picked_up', 'cancelled', 'no_show'].each do |order_status| + - ['unpaid', 'paid', 'ready', 'picked_up', 'cancelled', 'no_show'].each do |order_status| button.rounded-full.border.border-slate-300.px-3.py-1.5.text-md.font-semibold.text-slate-600.hover:border-indigo-300.hover:text-indigo-600 type="button" data-filter=order_status data-action="dashboard-filter#change" = order_status_label(order_status) .divide-y.divide-slate-100.overflow-hidden.rounded-2xl.border.border-slate-100 diff --git a/app/views/admin/customers/show.html.erb b/app/views/admin/customers/show.html.erb index 68e3378..626e436 100644 --- a/app/views/admin/customers/show.html.erb +++ b/app/views/admin/customers/show.html.erb @@ -127,13 +127,12 @@ <%= order_status_label(order.status) %> diff --git a/app/views/admin/orders/edit.html.erb b/app/views/admin/orders/edit.html.erb index 1f7f1b5..94116cd 100644 --- a/app/views/admin/orders/edit.html.erb +++ b/app/views/admin/orders/edit.html.erb @@ -160,7 +160,6 @@ Statut de la commande
<% status_options = { - pending: "En attente", unpaid: "Non payée", paid: "Payée", ready: "Prête", diff --git a/app/views/admin/orders/index.html.erb b/app/views/admin/orders/index.html.erb index eabcecd..ca34daa 100644 --- a/app/views/admin/orders/index.html.erb +++ b/app/views/admin/orders/index.html.erb @@ -22,7 +22,7 @@ <%= form_with url: admin_orders_path, method: :get, local: true, class: "flex space-x-2" do |f| %> <%= f.select :status, options_for_select([ ['Tous', ''], - ['En attente', 'pending'], + ['Non payées', 'unpaid'], ['Payées', 'paid'], ['Prêtes', 'ready'], ['Récupérées', 'picked_up'], @@ -69,7 +69,7 @@ <%= number_to_currency(order.total_euros, unit: "€", separator: ",", delimiter: "") %>

Statut