Fixes final ticket logging bugs (#4643)

This commit is contained in:
Erki
2018-04-19 23:42:43 +03:00
committed by Werner
parent e7cf7cf49c
commit be323e7fac
2 changed files with 25 additions and 3 deletions

View File

@@ -0,0 +1,6 @@
--
-- Fixes a bug by allowing the "Taken by" admin to be null.
--
ALTER TABLE `ss13_tickets`
MODIFY `taken_by` VARCHAR(32) NULL DEFAULT NULL;

View File

@@ -135,14 +135,30 @@ var/global/list/ticket_panels = list()
if (!establish_db_connection(dbcon))
return
var/DBQuery/Q = dbcon.NewQuery("INSERT INTO ss13_tickets (game_id, message_count, admin_count, admin_list, opened_by, taken_by, closed_by, response_delay, opened_at, closed_at) VALUES (:g_id:, :m_count:, :a_count:, :a_list:, :opened_by:, :taken_by, :closed_by:, :delay:, :opened_at:, :closed_at:)")
Q.Execute(list("g_id" = game_id, "m_count" = length(msgs), "a_count" = length(assigned_admins), "a_list" = json_encode(assigned_admins), "opened_by" = owner, "taken_by" = assigned_admins[1], "closed_by" = closed_by, "delay" = response_time, "opened_at" = SQLtime(opened_rt), "closed_at" = SQLtime(closed_rt)))
var/DBQuery/Q = dbcon.NewQuery({"INSERT INTO ss13_tickets
(game_id, message_count, admin_count, admin_list, opened_by, taken_by,
closed_by, response_delay, opened_at, closed_at)
VALUES
(:g_id:, :m_count:, :a_count:, :a_list:, :opened_by:, :taken_by:,
:closed_by:, :delay:, :opened_at:, :closed_at:)"})
Q.Execute(list(
"g_id" = game_id,
"m_count" = length(msgs),
"a_count" = length(assigned_admins),
"a_list" = json_encode(assigned_admins),
"opened_by" = owner,
"taken_by" = length(assigned_admins) ? assigned_admins[1] : null,
"closed_by" = closed_by,
"delay" = response_time || -1,
"opened_at" = SQLtime(opened_rt),
"closed_at" = SQLtime(closed_rt)
))
/datum/ticket/proc/append_message(m_from, m_to, msg)
msgs += new /datum/ticket_msg(m_from, m_to, msg)
if (!response_time && m_from != owner)
response_time = round((world.time - opened_time) SECONDS)
response_time = round((world.time - opened_time) / 10)
update_ticket_panels()