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
|