diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/compliance_check_set.rb | 4 | ||||
| -rw-r--r-- | app/models/concerns/iev_interfaces/task.rb | 12 | ||||
| -rw-r--r-- | app/models/import/base.rb | 9 | ||||
| -rw-r--r-- | app/models/import/gtfs.rb | 13 | ||||
| -rw-r--r-- | app/models/import/resource.rb | 29 | ||||
| -rw-r--r-- | app/models/workgroup.rb | 9 | 
6 files changed, 39 insertions, 37 deletions
| diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb index eb0e23d82..f29ff4de5 100644 --- a/app/models/compliance_check_set.rb +++ b/app/models/compliance_check_set.rb @@ -26,6 +26,10 @@ class ComplianceCheckSet < ApplicationModel      %w(successful failed warning aborted canceled)    end +  def successful? +    status.to_s == "successful" +  end +    def self.abort_old      where(        'created_at < ? AND status NOT IN (?)', diff --git a/app/models/concerns/iev_interfaces/task.rb b/app/models/concerns/iev_interfaces/task.rb index 3e4dd52ca..70250b3c0 100644 --- a/app/models/concerns/iev_interfaces/task.rb +++ b/app/models/concerns/iev_interfaces/task.rb @@ -31,6 +31,16 @@ module IevInterfaces::Task      before_save :initialize_fields, on: :create      after_save :notify_parent + +    status.values.each do |s| +      define_method "#{s}!" do +        update status: s +      end + +      define_method "#{s}?" do +        status&.to_s == s +      end +    end    end    module ClassMethods @@ -117,9 +127,11 @@ module IevInterfaces::Task    def call_boiv_iev      Rails.logger.error("Begin IEV call for import") +    running!      Net::HTTP.get iev_callback_url      Rails.logger.error("End IEV call for import")    rescue Exception => e +    aborted!      logger.error "IEV server error : #{e.message}"      logger.error e.backtrace.inspect    end diff --git a/app/models/import/base.rb b/app/models/import/base.rb index baa25c3df..dcd710e58 100644 --- a/app/models/import/base.rb +++ b/app/models/import/base.rb @@ -44,15 +44,6 @@ class Import::Base < ApplicationModel    private -  def failed! -    update status: :failed -  end - -  def aborted! -    Rails.logger.info "=== aborted ===" -    update status: :aborted -  end -    def initialize_fields      super      self.token_download ||= SecureRandom.urlsafe_base64 diff --git a/app/models/import/gtfs.rb b/app/models/import/gtfs.rb index 4f0dde9d1..520cc88e9 100644 --- a/app/models/import/gtfs.rb +++ b/app/models/import/gtfs.rb @@ -14,9 +14,8 @@ class Import::Gtfs < Import::Base      @resource ||= parent.resources.find_or_create_by(name: self.name, resource_type: "referential", reference: self.name)    end -  def notify_parent -    super -    main_resource.update_status_from_importer self.status +  def next_step +    main_resource.next_step    end    def create_message args @@ -336,10 +335,10 @@ class Import::Gtfs < Import::Base    end    def notify_parent -    return unless parent.present? -    return if notified_parent_at -    parent.child_change -    update_column :notified_parent_at, Time.now +    if super +      main_resource.update_status_from_importer self.status +      next_step +    end    end  end diff --git a/app/models/import/resource.rb b/app/models/import/resource.rb index e88f03088..343eb9b7d 100644 --- a/app/models/import/resource.rb +++ b/app/models/import/resource.rb @@ -20,17 +20,11 @@ class Import::Resource < ApplicationModel        return unless netex_import&.successful? -      if workbench.import_compliance_control_set_id.present? && workbench_import_check_set.nil? -        ComplianceControlSetCopyWorker.perform_async workbench.import_compliance_control_set_id, referential_id -        return -      end - -      return if workbench_import_check_set && !workbench_import_control_set.successful? -      workgroup.import_compliance_control_set_ids.each_with_index do |id, index| -        compliance_check_set = workgroup_import_check_set[index] -        return if compliance_check_set && !compliance_check_set.successful? +      workbench.workgroup.import_compliance_control_sets.map do |key, label| +        next unless (control_set = workbench.compliance_control_set(key)).present? +        compliance_check_set = workbench_import_check_set key          if compliance_check_set.nil? -          ComplianceControlSetCopyWorker.perform_async id, referential_id +          ComplianceControlSetCopyWorker.perform_async control_set.id, referential_id          end        end      end @@ -49,17 +43,10 @@ class Import::Resource < ApplicationModel      import.children.where(name: self.reference).last    end -  def workbench_import_check_set -    return unless referential.present? -    return unless referential.workbench.import_compliance_control_set_id.present? -    referential.compliance_check_sets.where(compliance_control_set_id: referential.workbench.import_compliance_control_set_id, referential_id: referential_id).last -  end - -  def workgroup_import_check_set(index) +  def workbench_import_check_set key      return unless referential.present? -    return unless referential.workbench.workgroup.import_compliance_control_set_ids.present? -    cs = referential.workbench.workgroup.import_compliance_control_sets[index] -    return unless cs -    referential.compliance_check_sets.where(compliance_control_set_id: cs.id, referential_id: referential_id).last +    control_set = referential.workbench.compliance_control_set(key) +    return unless control_set.present? +    referential.compliance_check_sets.where(compliance_control_set_id: control_set.id, referential_id: referential_id).last    end  end diff --git a/app/models/workgroup.rb b/app/models/workgroup.rb index b1cdde2c1..499441cd3 100644 --- a/app/models/workgroup.rb +++ b/app/models/workgroup.rb @@ -39,6 +39,15 @@ class Workgroup < ApplicationModel        h      end    end +  def import_compliance_control_sets +    %i( +      import +      workbench +    ).inject({}) do |h, k| +      h[k] = "workgroups.available_compliance_control_sets.#{k}".t.capitalize +      h +    end +  end    # XXX    # def import_compliance_control_sets | 
