thecore_print_commons 2.1.3 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3d14d2d7122107560e3483a45aaab2f69efb513fae2f2c4368f996e79b61067
4
- data.tar.gz: 69c327df788227be6659c6a6dd7ddcfda0af077bc18b82fb177b20ae3046a8f2
3
+ metadata.gz: ff7cb53138fab8c991338c6f585d2bc547ea34dd6c4458ce4d2fda798980db9b
4
+ data.tar.gz: b3d1a389e3019373b61c5776747909ccacd309294b0b3ed3e9fa94a850845237
5
5
  SHA512:
6
- metadata.gz: 9841914519bfb9b77f1dd53c2f4ffcc344e411f083830a5104101be69b5ee4821636203d0c9a77cd09a7d39209b43a43098b4965236fa1f823ee6a365501c6f1
7
- data.tar.gz: 826d5bd6e22ef43312e244b63ce864b6223b836f0f3ae4612516d555943b6760385b6839735f8445f96f90694bd5390c5980dbf8a42b0be87847b787aa7fc809
6
+ metadata.gz: cecd2553a802eb1cf908730bc636e3987c651bdbbf1cda33e0c521c26ff9e40c4397101688c1ee331b7faf2946d21b2d4687f614a3348ede4a705039a8654518
7
+ data.tar.gz: 0f9b85e7ea6019c63a5115f2e53d9a335710b796b539155e5354933b4792c55340b8883388640f09bf98026081e17aa531c18001ff6664eb6566cb4efd998927
@@ -34,11 +34,14 @@ module Api::Printer
34
34
  # single_text = "#{printer.print_template.template.gsub("%DESCRIPTION%", item.description)}"
35
35
  # text = single_text * params[:quantity].to_i
36
36
  # # Preso l'ordine mi recupero l'item e ne stampo la quantità richiesta
37
- # ::PrintWorker.perform_async(printer.ip, text)
37
+ # ::PrintWorker.perform_async('192.168.0.1', 9100, "We all love DJ")
38
38
 
39
39
  printer = Printer.find(params[:id])
40
- text = printer.print_template.template.gsub(printer.print_template.translation_matrix.lines.first, params[:barcode])
41
- ::PrintWorker.perform_async(printer.ip, printer.port, text)
40
+ base_template = printer.print_template.template.dup
41
+ result = printer.print_template.translation_matrix.lines.map(&:strip).inject(base_template) do |base_template, replacement|
42
+ base_template.gsub("$#{replacement}", params[replacement]) unless replacement.blank? && params[replacement].blank?
43
+ end
44
+ ::PrintWorker.perform_async(printer.ip, printer.port, result)
42
45
  { info: "Print job sent in background to #{printer.ip} on port #{printer.port}" }
43
46
  end
44
47
 
@@ -1,52 +1,8 @@
1
1
  class Printer < ApplicationRecord
2
2
  include Api::Printer
3
3
  include RailsAdmin::Printer
4
- #serialize :translation, Hash
5
-
6
- # before_save :check_if_unique_default
7
- # validates :qty, presence: true, numericality: { only_integer: true, greater_than: 0 }
8
- # validates :translation, presence: true
9
-
10
- # def template_enum
11
- # PrintTemplate.descendants
12
- # end
13
- #
14
- # # Array holding all the roles
15
- # USED = %i[
16
- # bundle
17
- # commission
18
- # ]
19
- #
20
- # def used_in_enum
21
- # # Do not EDIT below this line
22
- # USED.each_with_index.map {|a,i| [I18n.t("used_in.#{a.to_sym}"), (i+1).to_s]}
23
- # end
24
- # def has_section? section
25
- # # example called from cancan's app/models/ability.rb
26
- # # if user.has_role? :admin
27
- #
28
- # # for roles array stored in db... take each value, see if it matches the second column in the roles_enum array, if so, retu the 1st col of the enum as a uprcase,space_to_underscore,symbol .
29
- # USED[self.used_in.to_i - 1].to_s == section.to_s
30
- # end
31
- #
32
- # def self.assigned_to section
33
- # where(used_in: (USED.index(section.to_sym) + 1))
34
- # end
35
-
36
- # Usable with CUPS (STUB)
37
- # def ip_enum
38
- # # Getting from CUPS the list of configured printers
39
- # if Settings.ns(:printer_commons).cups_server.blank? || ['127.0.0.1', 'localhost'].include?(Settings.ns(:printer_commons).cups_server)
40
- # # Local Cups server
41
- # CupsPrinter.get_all_printer_names
42
- # else
43
- # # Remote Cups server
44
- # CupsPrinter.get_all_printer_names hostname: Settings.ns(:printer_commons).cups_server
45
- # end
46
- # end
47
4
 
48
5
  belongs_to :print_template, inverse_of: :printers
49
- has_many :print_jobs, dependent: :destroy, inverse_of: :printer
50
6
 
51
7
  validates :name, presence: true
52
8
  validates :ip, presence: true
@@ -2,18 +2,12 @@ require 'ipaddr'
2
2
  require 'socket'
3
3
  class PrintWorker
4
4
  include Sidekiq::Worker
5
- sidekiq_options retry: false
5
+ sidekiq_options retry: false, queue: "#{ENV["COMPOSE_PROJECT_NAME"]}_default"
6
6
 
7
7
  # ZPL print
8
8
  def perform ip, port, text
9
- @pjob = PrintJob.create(printer_id: Printer.find_by(ip: ip), finished: false, iserror: false, total: 0, printed: 0)
10
9
  streamSock = Socket.tcp ip, port, connect_timeout: 0.5
11
10
  streamSock.send text, 0
12
11
  streamSock.close
13
- # '~hs alla posizione 56 per 8 caratteri la quantità di etichette rimaste'
14
- total = text.scan(/~PQ(\d+)/).last.first.to_i rescue 0
15
- @pjob.update(printed: total) # Se risultato true, allora ha stampato tutto, altrimenti non ha stampato nulla
16
- @pjob.update(total: total) # In realtà è inutile, ora manda tutto quello che può alla stampante, solo lei può andare storta
17
- @pjob.update(finished: true)
18
12
  end
19
13
  end
@@ -2,21 +2,7 @@ module Abilities
2
2
  class ThecorePrintCommon
3
3
  include CanCan::Ability
4
4
  def initialize user
5
- cannot [:destroy, :create, :update, :show], [PrintJob]
6
- # if user
7
- # cannot :edi
8
- # # if the user is logged in, it can do certain tasks regardless his role
9
- # if user.admin?
10
- # # if the user is an admin, it can do a lot of things, usually
11
- # end
12
-
13
- # if user.has_role? :role
14
- # # a specific role, brings specific powers
15
- # end
16
- # end
17
5
  end
18
6
  end
19
7
  end
20
8
 
21
- # # include the extension
22
- # TheCoreAbilities.send(:include, ThecorePrintCommonAbilitiesConcern)
data/db/seeds.rb CHANGED
@@ -1,2 +1 @@
1
1
  puts "Loading ThecorePrintCommons seeds"
2
- Settings.ns(:printer_commons).cups_server = 'localhost'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thecore_print_commons
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriele Tassoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-21 00:00:00.000000000 Z
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thecore_background_jobs
@@ -35,13 +35,10 @@ files:
35
35
  - README.md
36
36
  - Rakefile
37
37
  - app/assets/config/thecore_print_commons_manifest.js
38
- - app/models/concerns/api/print_job.rb
39
38
  - app/models/concerns/api/print_template.rb
40
39
  - app/models/concerns/api/printer.rb
41
- - app/models/concerns/rails_admin/print_job.rb
42
40
  - app/models/concerns/rails_admin/print_template.rb
43
41
  - app/models/concerns/rails_admin/printer.rb
44
- - app/models/print_job.rb
45
42
  - app/models/print_template.rb
46
43
  - app/models/printer.rb
47
44
  - app/workers/print_worker.rb
@@ -53,8 +50,6 @@ files:
53
50
  - config/locales/telnet_print.it.yml
54
51
  - config/routes.rb
55
52
  - db/migrate/20160323152041_create_printers.rb
56
- - db/migrate/20160407141529_create_print_jobs.rb
57
- - db/migrate/20160407152547_add_fields_to_print_job.rb
58
53
  - db/migrate/20160413115407_add_temperature_to_printer.rb
59
54
  - db/migrate/20160519093702_create_print_templates.rb
60
55
  - db/migrate/20160519124051_add_print_template_id_to_printer.rb
@@ -1,30 +0,0 @@
1
- module Api::PrintJob
2
- extend ActiveSupport::Concern
3
-
4
- included do
5
- # Use @@json_attrs to drive json rendering for
6
- # API model responses (index, show and update ones).
7
- # For reference:
8
- # https://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html
9
- # The object passed accepts only these keys:
10
- # - only: list [] of model fields to be shown in JSON serialization
11
- # - except: exclude these fields from the JSON serialization, is a list []
12
- # - methods: include the result of some method defined in the model
13
- # - include: include associated models, it's an object {} which also accepts the keys described here
14
- cattr_accessor :json_attrs
15
- @@json_attrs = ::ModelDrivenApi.smart_merge (json_attrs || {}), {}
16
-
17
- # Here you can add custom actions to be called from the API
18
- # The action must return an serializable (JSON) object.
19
- # Here you can find an example, in the API could be called like:
20
- #
21
- # GET /api/v2/:model/:id?do=test&custom_parameter=hello
22
- #
23
- # Please uncomment it to test with a REST client.
24
- # Please take note on the fact that, if the do params is test, the custom
25
- # action definition must be, like below self.custom_action_test.
26
- # def self.custom_action_test id=nil, params=nil
27
- # { test: [ :first, :second, :third ], id: id, params: params}
28
- # end
29
- end
30
- end
@@ -1,19 +0,0 @@
1
- module RailsAdmin::PrintJob
2
- extend ActiveSupport::Concern
3
- included do
4
- # Here You can define the RailsAdmin DSL
5
- rails_admin do
6
- # rails_admin do
7
- navigation_label I18n.t("admin.settings.label")
8
- navigation_icon 'fa fa-check-square'
9
- parent Printer
10
-
11
- field :printer
12
- field :created_at
13
- field :description
14
- list do
15
- field :printed_on_total
16
- end
17
- end
18
- end
19
- end
@@ -1,10 +0,0 @@
1
- class PrintJob < ApplicationRecord
2
- include Api::PrintJob
3
- include RailsAdmin::PrintJob
4
-
5
- belongs_to :printer, inverse_of: :print_jobs
6
-
7
- def printed_on_total
8
- "#{printed}/#{total}"
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- class CreatePrintJobs < ActiveRecord::Migration[4.2]
2
- def change
3
- create_table :print_jobs do |t|
4
- t.boolean :finished, default: false
5
- t.references :printer, index: true, foreign_key: true
6
-
7
- t.timestamps null: false
8
- end
9
- end
10
- end
@@ -1,9 +0,0 @@
1
- class AddFieldsToPrintJob < ActiveRecord::Migration[4.2]
2
- def change
3
- add_column :print_jobs, :iserror, :boolean, default: false
4
- add_column :print_jobs, :description, :string
5
- add_index :print_jobs, :description
6
- add_column :print_jobs, :printed, :integer
7
- add_column :print_jobs, :total, :integer
8
- end
9
- end