Add a printer job queue via the printer plugin

This commit is contained in:
Patrick Gansterer 2019-02-02 12:40:57 +01:00
parent 63e1541aa3
commit c955a6ee40
24 changed files with 561 additions and 1 deletions

View file

@ -0,0 +1,26 @@
module FoodsoftPrinter
class Engine < ::Rails::Engine
def navigation(primary, context)
return unless FoodsoftPrinter.enabled?
unless primary[:orders].nil?
sub_nav = primary[:orders].sub_navigation
sub_nav.items <<
SimpleNavigation::Item.new(primary, :printer_jobs, I18n.t('navigation.orders.printer_jobs'), context.printer_jobs_path)
end
end
def default_foodsoft_config(cfg)
cfg[:use_printer] = false
end
initializer 'foodsoft_printer.order_printer_jobs' do |app|
if Rails.configuration.cache_classes
OrderPrinterJobs.install
else
ActionDispatch::Reloader.to_prepare do
OrderPrinterJobs.install
end
end
end
end
end

View file

@ -0,0 +1,26 @@
module FoodsoftPrinter
module OrderPrinterJobs
def self.included(base) # :nodoc:
base.class_eval do
has_many :printer_jobs, dependent: :destroy
alias foodsoft_printer_orig_finish! finish!
def finish!(user)
foodsoft_printer_orig_finish!(user)
unless finished?
printer_jobs.unfinished.each do |job|
job.add_update! 'ready'
end
end
end
end
end
def self.install
Order.send :include, self
end
end
end

View file

@ -0,0 +1,3 @@
module FoodsoftPrinter
VERSION = "0.0.1"
end