class AcceptedOffer < ActiveRecord::Base include Workflow belongs_to :customer belongs_to :offer mount_uploader :devis, DevisUploader validates :customer, :presence => true validates :offer, :presence => true workflow_column :state workflow do state :waiting_devis do event :upload_devis, :transitions_to => :devis_available end state :devis_available do event :download_devis, :transitions_to => :devis_downloaded end state :devis_downloaded do event :receive_devis, :transitions_to => :devis_received end state :devis_received end def human_state case state when 'waiting_devis' "Création du devis en cours..." when 'devis_available' "Devis disponible" when 'devis_downloaded' "En attente de réception du devis signé" when 'devis_received' "Devis reçu et signé" end end def human_admin_state case state when 'waiting_devis' "En attente de création du devis" when 'devis_available' "Devis disponible pour le client mais pas encore téléchargé" when 'devis_downloaded' "Dévis téléchargé par le client, en attente de réception du devis signé" when 'devis_received' "Devis reçu et signé" end end end