app/models/dorsale/flyboy/folder.rb in dorsale-3.0.3 vs app/models/dorsale/flyboy/folder.rb in dorsale-3.1.0
- old
+ new
@@ -1,77 +1,73 @@
require "dorsale/search"
require "dorsale/polymorphic_id"
-module Dorsale
- module Flyboy
- class Folder < ActiveRecord::Base
- self.table_name = "dorsale_flyboy_folders"
+class Dorsale::Flyboy::Folder < ActiveRecord::Base
+ self.table_name = "dorsale_flyboy_folders"
- include AASM
- include ::Dorsale::Search
+ include AASM
+ include ::Dorsale::Search
- paginates_per 50
+ paginates_per 50
- aasm(column: "status", whiny_transitions: false) do
- state :open, initial: true
- state :closed
+ aasm(column: "status", whiny_transitions: false) do
+ state :open, initial: true
+ state :closed
- event :close, if: :no_undone_tasks? do
- transitions from: [:open], to: :closed
- end
+ event :close, if: :no_undone_tasks? do
+ transitions from: [:open], to: :closed
+ end
- event :open do
- transitions from: [:closed], to: :open
- end
- end
+ event :open do
+ transitions from: [:closed], to: :open
+ end
+ end
- belongs_to :folderable, polymorphic: true
- has_many :tasks, dependent: :destroy, as: :taskable
+ belongs_to :folderable, polymorphic: true
+ has_many :tasks, dependent: :destroy, as: :taskable
- validates :name, presence: true
- validates :status, inclusion: {
- in: proc { ::Dorsale::Flyboy::Folder.aasm.states.map(&:to_s) }
- }
+ validates :name, presence: true
+ validates :status, inclusion: {
+ in: proc { ::Dorsale::Flyboy::Folder.aasm.states.map(&:to_s) }
+ }
- def initialize(*args)
- super
- self.progress = 0 if progress.nil?
- end
+ def initialize(*args)
+ super
+ self.progress = 0 if progress.nil?
+ end
- def no_undone_tasks?
- tasks.where(done: false).count == 0
- end
+ def no_undone_tasks?
+ tasks.where(done: false).count == 0
+ end
- def revision
- "#{tracking} #{version}"
- end
+ def revision
+ "#{tracking} #{version}"
+ end
- before_create :create_tracking
+ before_create :create_tracking
- def create_tracking
- dailycounter = Folder.where("DATE(created_at) = ?", Time.zone.now.to_date).count + 1
- self.tracking = "#{Time.zone.now.strftime("%y%m%d")}-#{dailycounter}"
- end
+ def create_tracking
+ dailycounter = self.class.where("DATE(created_at) = ?", Time.zone.now.to_date).count + 1
+ self.tracking = "#{Time.zone.now.strftime("%y%m%d")}-#{dailycounter}"
+ end
- before_save :update_version
+ before_save :update_version
- def update_version
- self.version = 0 if self.version.nil?
- self.version = self.version + 1
- end
+ def update_version
+ self.version = 0 if self.version.nil?
+ self.version = self.version + 1
+ end
- def update_progress
- if tasks.count.zero?
- self.progress = 0
- else
- self.progress = tasks.sum(:progress) / tasks.count
- end
- end
-
- def update_progress!
- update_progress
- save
- end
-
+ def update_progress
+ if tasks.count.zero?
+ self.progress = 0
+ else
+ self.progress = tasks.sum(:progress) / tasks.count
end
end
+
+ def update_progress!
+ update_progress
+ save
+ end
+
end