include CommonApiTemplate
include WhitelistUpdate
- belongs_to :container, foreign_key: :container_uuid, primary_key: :uuid
- belongs_to :requesting_container, {
- class_name: 'Container',
- foreign_key: :requesting_container_uuid,
- primary_key: :uuid,
- }
+ belongs_to :container,
+ foreign_key: 'container_uuid',
+ primary_key: 'uuid',
+ optional: true
+ belongs_to :requesting_container,
+ class_name: 'Container',
+ foreign_key: 'requesting_container_uuid',
+ primary_key: 'uuid',
+ optional: true
# Posgresql JSONB columns should NOT be declared as serialized, Rails 5
# already know how to properly treat them.
end
elsif state == Committed
# Behave as if the container is cancelled
- update_attributes!(state: Final)
+ update!(state: Final)
end
return true
end
end
end
end
- update_attributes!(state: Final)
+ update!(state: Final)
end
def update_collections(container:, collections: ['log', 'output'])
+
+ # Check if parent is frozen or trashed, in which case it isn't
+ # valid to create new collections in the project, so return
+ # without creating anything.
+ owner = Group.find_by_uuid(self.owner_uuid)
+ return if owner && !owner.admin_change_permitted
+
collections.each do |out_type|
pdh = container.send(out_type)
next if pdh.nil?
end
def set_priority_zero
- self.update_attributes!(priority: 0) if self.priority > 0 && self.state != Final
+ self.update!(priority: 0) if self.priority > 0 && self.state != Final
end
protected
def update_priority
return unless saved_change_to_state? || saved_change_to_priority? || saved_change_to_container_uuid?
- act_as_system_user do
- Container.
- where('uuid in (?)', [container_uuid_before_last_save, self.container_uuid].compact).
- map(&:update_priority!)
- end
+ update_priorities container_uuid_before_last_save if !container_uuid_before_last_save.nil? and container_uuid_before_last_save != self.container_uuid
+ update_priorities self.container_uuid if self.container_uuid
end
def set_requesting_container_uuid