Skip to content
Snippets Groups Projects
Commit da5bcde4 authored by Dmitry Mantis's avatar Dmitry Mantis Committed by Robert Habermann
Browse files

Fix bug with ticket_id not passing to _send_request in ticket_get_by_id, which…

parent 3f997212
No related branches found
No related tags found
No related merge requests found
......@@ -498,17 +498,10 @@ class Ticket(object):
"""
def __init__(self, dct):
# store OTRS Top Level fields
fields = {}
for key, value in dct.items():
fields.update({key: dct[key]})
try:
self.tid = int(fields.get("TicketID"))
except TypeError:
self.tid = 0
self.fields = fields
self.fields = {}
self.fields.update(dct)
self.tid = int(self.fields.get("TicketID", 0))
self.articles = self._parse_articles()
self.fields.pop("Article", None)
......@@ -516,26 +509,20 @@ class Ticket(object):
self.fields.pop("DynamicField", None)
def __repr__(self):
if self.tid is not 0:
if self.tid:
return "<{0}: {1}>".format(self.__class__.__name__, self.tid)
else:
return "<{0}>".format(self.__class__.__name__)
def _parse_articles(self):
"""parse Article from Ticket and return as **list** of **Article** objects"""
lst = self.fields.get("Article")
if lst:
return [Article(item) for item in lst]
else:
return []
lst = self.fields.get("Article", [])
return [Article(item) for item in lst]
def _parse_dynamic_fields(self):
"""parse DynamicField from Ticket and return as **list** of **DynamicField** objects"""
lst = self.fields.get("DynamicField")
if lst:
return [DynamicField.from_dct(item) for item in lst]
else:
return []
lst = self.fields.get("DynamicField", [])
return [DynamicField.from_dct(item) for item in lst]
def to_dct(self,
articles=True,
......@@ -565,9 +552,7 @@ class Ticket(object):
"""
dct = {}
if self.fields:
dct.update(self.fields)
dct.update(self.fields)
if articles:
try:
......@@ -598,11 +583,8 @@ class Ticket(object):
**Article** or **None**
"""
result = [x for x in self.articles if x.field_get("ArticleID") == "{0}".format(aid)]
if result:
return result[0]
else:
return None
result = [x for x in self.articles if x.field_get("ArticleID") == str(aid)]
return result[0] if result else None
def dynamic_field_get(self, df_name):
"""dynamic_field_get
......@@ -614,11 +596,8 @@ class Ticket(object):
**DynamicField** or **None**
"""
result = [x for x in self.dynamic_fields if x.name == "{0}".format(df_name)]
if result:
return result[0]
else:
return None
result = [x for x in self.dynamic_fields if x.name == df_name]
return result[0] if result else None
def field_get(self, f_name):
return self.fields.get(f_name)
......@@ -1159,7 +1138,7 @@ class Client(object):
if not self.session_id_store.value:
raise SessionNotCreated("Call session_create() or "
"session_restore_or_set_up_new() first")
self.operation = "TicketGetList"
self.operation = "TicketGet"
payload = {
"SessionID": self.session_id_store.value,
......@@ -1170,7 +1149,8 @@ class Client(object):
"HTMLBodyAsAttachment": int(html_body_as_attachment),
}
if not self._parse_and_validate_response(self._send_request(payload)):
response = self._send_request(payload, ticket_id)
if not self._parse_and_validate_response(response):
return False
else:
return self.result[0]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment