app/models/feature.rb in usman-0.1.4 vs app/models/feature.rb in usman-0.1.5dev

- old
+ new

@@ -1,10 +1,7 @@ class Feature < Usman::ApplicationRecord - require 'import_error_handler.rb' - extend Usman::ImportErrorHandler - # Constants UNPUBLISHED = "unpublished" PUBLISHED = "published" DISABLED = "disabled" @@ -45,50 +42,28 @@ scope :unpublished, -> { where(status: UNPUBLISHED) } scope :published, -> { where(status: PUBLISHED) } scope :disabled, -> { where(status: DISABLED) } - def self.save_row_data(row, base_path) + def self.save_row_data(row) - image_base_path = base_path + "images/" - row.headers.each{ |cell| row[cell] = row[cell].to_s.strip } return if row[:name].blank? feature = Feature.find_by_name(row[:name]) || Feature.new feature.name = row[:name] feature.status = Feature::UNPUBLISHED # Initializing error hash for displaying all errors altogether - error_object = Usman::ErrorHash.new + error_object = Kuppayam::Importer::ErrorHash.new - ## Adding a profile picture - begin - image_path = image_base_path + "features/#{feature.name.parameterize}.png" - image_path = image_base_path + "features/#{feature.name.parameterize}}.jpg" unless File.exists?(image_path) - if File.exists?(image_path) - feature.build_feature_image - feature.feature_image.image = File.open(image_path) - else - summary = "Feature Image not found for feature: #{feature.name}" - details = "#{image_path}/png doesn't exists" - error_object.warnings << { summary: summary, details: details } - end - rescue => e - summary = "Error during processing: #{$!}" - details = "Feature: #{feature.name}, Image Path: #{image_path}" - stack_trace = "Backtrace:\n\t#{e.backtrace.join("\n\t")}" - error_object.errors << { summary: summary, details: details, stack_trace: stack_trace } - end if feature.feature_image.blank? - - if feature.valid? && (feature.feature_image.blank? || feature.feature_image.valid?) + if feature.valid? feature.save! else summary = "Error while saving feature: #{feature.name}" details = "Error! #{feature.errors.full_messages.to_sentence}" - details << ", #{feature.feature_image.errors.full_messages.to_sentence}" if feature.feature_image error_object.errors << { summary: summary, details: details } end return error_object end @@ -151,8 +126,20 @@ self.update_attribute(:status, DISABLED) end def can_be_destroyed? return true + end + + def can_be_published? + unpublished? or disabled? + end + + def can_be_unpublished? + published? or disabled? + end + + def can_be_removed? + published? or unpublished? or disabled? end end \ No newline at end of file