Module: Labimotion::GenericKlassRevisions

Extended by:
ActiveSupport::Concern
Included in:
DatasetKlass, ElementKlass, SegmentKlass
Defined in:
lib/labimotion/models/concerns/generic_klass_revisions.rb

Instance Method Summary collapse

Instance Method Details

#create_klasses_revision(user_id = 0) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/labimotion/models/concerns/generic_klass_revisions.rb', line 10

def create_klasses_revision(user_id=0)
  properties_release = properties_template

  # (properties_release['layers'] || {}).keys.each do |key|
  #   properties_release['layers'][key]['layer'] = properties_release['layers'][key]['key']
  # end

  if properties_release['flow'].present?
    elements = (properties_release['flow']['elements'] || []).map do |el|
      if el['data'].present? && el['data']['lKey'].present?
        layer = properties_release['layers'][el['data']['lKey']]
        el['data']['layer'] = layer if layer.present?
      end
      el
    end
    properties_release['flow']['elements'] = elements
  end

  self.update!({ uuid: properties_template['uuid'], properties_release: properties_release, released_at: DateTime.now })
  reload
  attributes = {
    released_by: user_id,
    uuid: uuid,
    properties_release: properties_release,
    released_at: released_at
  }
  attributes["#{self.class.name.underscore}_id"] = id
  "#{self.class.name}esRevision".constantize.create(attributes)
end