@@ -77,121 +77,136 @@ def command_linked_model(self, match) -> str:
77
77
78
78
try :
79
79
80
- from core . models . ticket . ticket_linked_items import TicketLinkedItem
80
+ model , item_type = self . get_model ( model_type )
81
81
82
- if model_type == 'cluster' :
82
+ if not model :
83
83
84
- from itim . models . clusters import Cluster
84
+ return str ( match . string [ match . start (): match . end ()])
85
85
86
- model = Cluster
87
86
88
- item_type = TicketLinkedItem . Modules . CLUSTER
87
+ if str ( self . _meta . verbose_name ). lower () == 'ticket' :
89
88
90
- elif model_type == 'config_group' :
89
+ ticket = self
91
90
92
- from config_management . models . groups import ConfigGroups
91
+ elif str ( self . _meta . verbose_name ). lower () == 'ticket comment' :
93
92
94
- model = ConfigGroups
93
+ ticket = self . ticket
95
94
96
- item_type = TicketLinkedItem .Modules .CONFIG_GROUP
97
95
98
- elif model_type == 'device' :
96
+ if model :
99
97
100
- from itam .models .device import Device
98
+ item = model .objects .get (
99
+ pk = model_id
100
+ )
101
101
102
- model = Device
102
+ from core . serializers . ticket_linked_item import TicketLinkedItemModelSerializer
103
103
104
- item_type = TicketLinkedItem .Modules .DEVICE
104
+ serializer = TicketLinkedItemModelSerializer (
105
+ data = {
106
+ 'organization' : ticket .organization ,
107
+ 'ticket' : ticket .id ,
108
+ 'item_type' : item_type ,
109
+ 'item' : item .id
110
+ }
111
+ )
105
112
106
- elif model_type == 'kb' :
113
+ if serializer . is_valid () :
107
114
108
- from assistance . models . knowledge_base import KnowledgeBase
115
+ serializer . save ()
109
116
110
- model = KnowledgeBase
117
+ return None
111
118
112
- item_type = TicketLinkedItem . Modules . KB
119
+ return str ( match . string [ match . start (): match . end ()])
113
120
114
- elif model_type == 'operating_system' :
121
+ except Exception as e :
115
122
116
- from itam . models . operating_system import OperatingSystem
123
+ return str ( match . string [ match . start (): match . end ()])
117
124
118
- model = OperatingSystem
125
+ return None
119
126
120
- item_type = TicketLinkedItem .Modules .OPERATING_SYSTEM
121
127
122
- elif model_type == 'organization' :
128
+ def get_model ( self , model_type ) -> tuple () :
123
129
124
- from access . models import Organization
130
+ model = None
125
131
126
- model = Organization
132
+ item_type = None
127
133
128
- item_type = TicketLinkedItem . Modules . ORGANIZATION
134
+ from core . models . ticket . ticket_linked_items import TicketLinkedItem
129
135
130
- elif model_type == 'service ' :
136
+ if model_type == 'cluster ' :
131
137
132
- from itim .models .services import Service
138
+ from itim .models .clusters import Cluster
133
139
134
- model = Service
140
+ model = Cluster
135
141
136
- item_type = TicketLinkedItem .Modules .SERVICE
142
+ item_type = TicketLinkedItem .Modules .CLUSTER
137
143
138
- elif model_type == 'software ' :
144
+ elif model_type == 'config_group ' :
139
145
140
- from itam .models .software import Software
146
+ from config_management .models .groups import ConfigGroups
141
147
142
- model = Software
148
+ model = ConfigGroups
143
149
144
- item_type = TicketLinkedItem .Modules .SOFTWARE
150
+ item_type = TicketLinkedItem .Modules .CONFIG_GROUP
145
151
146
- elif model_type == 'team ' :
152
+ elif model_type == 'device ' :
147
153
148
- from access .models import Team
154
+ from itam .models . device import Device
149
155
150
- model = Team
156
+ model = Device
151
157
152
- item_type = TicketLinkedItem .Modules .TEAM
158
+ item_type = TicketLinkedItem .Modules .DEVICE
153
159
154
- else :
160
+ elif model_type == 'kb' :
155
161
156
- return str ( match . string [ match . start (): match . end ()])
162
+ from assistance . models . knowledge_base import KnowledgeBase
157
163
164
+ model = KnowledgeBase
158
165
159
- if str ( self . _meta . verbose_name ). lower () == 'ticket' :
166
+ item_type = TicketLinkedItem . Modules . KB
160
167
161
- ticket = self
168
+ elif model_type == 'operating_system' :
162
169
163
- elif str ( self . _meta . verbose_name ). lower () == 'ticket comment' :
170
+ from itam . models . operating_system import OperatingSystem
164
171
165
- ticket = self . ticket
172
+ model = OperatingSystem
166
173
174
+ item_type = TicketLinkedItem .Modules .OPERATING_SYSTEM
167
175
168
- if model :
176
+ elif model_type == 'organization' :
169
177
170
- item = model .objects .get (
171
- pk = model_id
172
- )
178
+ from access .models import Organization
173
179
174
- from core . serializers . ticket_linked_item import TicketLinkedItemModelSerializer
180
+ model = Organization
175
181
176
- serializer = TicketLinkedItemModelSerializer (
177
- data = {
178
- 'organization' : ticket .organization ,
179
- 'ticket' : ticket .id ,
180
- 'item_type' : item_type ,
181
- 'item' : item .id
182
- }
183
- )
182
+ item_type = TicketLinkedItem .Modules .ORGANIZATION
184
183
185
- if serializer . is_valid () :
184
+ elif model_type == 'service' :
186
185
187
- serializer . save ()
186
+ from itim . models . services import Service
188
187
189
- return None
188
+ model = Service
190
189
191
- return str ( match . string [ match . start (): match . end ()])
190
+ item_type = TicketLinkedItem . Modules . SERVICE
192
191
193
- except Exception as e :
192
+ elif model_type == 'software' :
194
193
195
- return str ( match . string [ match . start (): match . end ()])
194
+ from itam . models . software import Software
196
195
197
- return None
196
+ model = Software
197
+
198
+ item_type = TicketLinkedItem .Modules .SOFTWARE
199
+
200
+ elif model_type == 'team' :
201
+
202
+ from access .models import Team
203
+
204
+ model = Team
205
+
206
+ item_type = TicketLinkedItem .Modules .TEAM
207
+
208
+
209
+ return tuple ([
210
+ model ,
211
+ item_type
212
+ ])
0 commit comments