MCPcopy Index your code
hub / github.com/diffgram/diffgram / attach_element

Method attach_element

shared/database/discussion/discussion.py:63–112  ·  view source on GitHub ↗
(self, session: object, element: dict, add_to_session = True, flush_session = True)

Source from the content-addressed store, hash-verified

61 return
62
63 def attach_element(self, session: object, element: dict, add_to_session = True, flush_session = True):
64 element_id = element.get('id')
65 if element_id is None:
66 return
67 issue_relation = None
68 if element_id is None:
69 logger.error('Missing ID for element attach to issue {}. Element: '.format(self.id, str(element)))
70 return
71 if element['type'] == 'instance':
72 issue_relation = discussion_relation_models.DiscussionRelation.new(
73 session,
74 instance_id = element_id,
75 type = element['type'],
76 discussion_id = self.id
77 )
78 elif element['type'] == 'file':
79 issue_relation = discussion_relation_models.DiscussionRelation.new(
80 session,
81 file_id = element_id,
82 type = element['type'],
83 discussion_id = self.id
84 )
85 elif element['type'] == 'job':
86 issue_relation = discussion_relation_models.DiscussionRelation.new(
87 session,
88 job_id = element_id,
89 type = element['type'],
90 discussion_id = self.id
91 )
92 elif element['type'] == 'task':
93 issue_relation = discussion_relation_models.DiscussionRelation.new(
94 session,
95 task_id = element_id,
96 type = element['type'],
97 discussion_id = self.id
98 )
99 elif element['type'] == 'project':
100 issue_relation = discussion_relation_models.DiscussionRelation.new(
101 session,
102 project_id = element_id,
103 type = element['type'],
104 discussion_id = self.id
105 )
106 else:
107 raise Exception('Invalid IssueRelation type')
108 if add_to_session:
109 session.add(issue_relation)
110 if flush_session:
111 session.flush()
112 return issue_relation
113
114 def update_attached_instances(self,
115 session: object,

Callers 13

newMethod · 0.95
create_discussionFunction · 0.95
test_attach_elementMethod · 0.80
test_serializeMethod · 0.80
test_task_next_issueMethod · 0.80
test_issue_list_webMethod · 0.80
test_issue_detail_webMethod · 0.80

Calls 3

getMethod · 0.45
newMethod · 0.45
addMethod · 0.45