3
4
5
6
7
8
9
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
39
40 
     | 
    
      # File 'backend/app/model/mixins/transferable.rb', line 3
def transfer_to_repository(repository, transfer_group = [])
  events_to_clone = []
  Event.find_relationship(:event_link).who_participates_with(self).each do |event|
    linked_records = event.related_records(:event_link)
    if linked_records.length == 1
      
      
      event.transfer_to_repository(repository, transfer_group + [self])
    else
      event_json = Event.to_jsonmodel(event)
      event_role = event_json.linked_records.find {|link| link['ref'] == self.uri}['role']
      events_to_clone << {:event => event_json, :role => event_role}
    end
  end
  
  super
  
  if !events_to_clone.empty?
    RequestContext.open(:repo_id => repository.id) do
      events_to_clone.each do |to_clone|
        event = to_clone[:event].to_hash(:trusted).
                                 merge('linked_records' => [{
                                                              'ref' => self.uri,
                                                              'role' => to_clone[:role]
                                                            }])
        Event.create_from_json(JSONModel(:event).from_hash(event),
                               :repo_id => repository.id)
      end
    end
  end
end
     |