The @event/accept can now be used without parameters to see all events to be accepted
This commit is contained in:
parent
93c7b25fc4
commit
f0d5bec05f
2 changed files with 64 additions and 1 deletions
|
|
@ -367,6 +367,41 @@ class CmdEvent(COMMAND_DEFAULT_CLASS):
|
||||||
obj = self.obj
|
obj = self.obj
|
||||||
event_name = self.event_name
|
event_name = self.event_name
|
||||||
parameters = self.parameters
|
parameters = self.parameters
|
||||||
|
|
||||||
|
# If no object, display the list of events to be checked
|
||||||
|
if obj is None:
|
||||||
|
table = EvTable("ID", "Type", "Object", "Name", "Updated by",
|
||||||
|
"On", width=78)
|
||||||
|
table.reformat_column(0, align="r")
|
||||||
|
now = datetime.now()
|
||||||
|
for obj, name, number in self.handler.db.to_valid:
|
||||||
|
events = self.handler.db.events.get(obj, {}).get(name)
|
||||||
|
if events is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
event = events[number]
|
||||||
|
except IndexError:
|
||||||
|
continue
|
||||||
|
|
||||||
|
type_name = obj.typeclass_path.split(".")[-1]
|
||||||
|
by = event.get("updated_by")
|
||||||
|
by = by.key if by else "|gUnknown|n"
|
||||||
|
updated_on = event.get("updated_on")
|
||||||
|
if updated_on is None:
|
||||||
|
updated_on = event.get("created_on")
|
||||||
|
|
||||||
|
if updated_on:
|
||||||
|
updated_on = time_format(
|
||||||
|
(now - updated_on).total_seconds(), 1)
|
||||||
|
else:
|
||||||
|
updated_on = "|gUnknown|n"
|
||||||
|
|
||||||
|
table.add_row(obj.id, type_name, obj, name, by, updated_on)
|
||||||
|
self.msg(table)
|
||||||
|
return
|
||||||
|
|
||||||
|
# An object was specified
|
||||||
events = self.handler.get_events(obj)
|
events = self.handler.get_events(obj)
|
||||||
types = self.handler.get_event_types(obj)
|
types = self.handler.get_event_types(obj)
|
||||||
|
|
||||||
|
|
@ -400,7 +435,7 @@ class CmdEvent(COMMAND_DEFAULT_CLASS):
|
||||||
if event["valid"]:
|
if event["valid"]:
|
||||||
self.msg("This event has already been accepted.")
|
self.msg("This event has already been accepted.")
|
||||||
else:
|
else:
|
||||||
event["valid"] = True
|
self.handler.accept_event(obj, event_name, parameters)
|
||||||
self.msg("The event {} {} of {} has been accepted.".format(
|
self.msg("The event {} {} of {} has been accepted.".format(
|
||||||
event_name, parameters, obj))
|
event_name, parameters, obj))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ class EventHandler(DefaultScript):
|
||||||
|
|
||||||
# Permanent data to be stored
|
# Permanent data to be stored
|
||||||
self.db.events = {}
|
self.db.events = {}
|
||||||
|
self.db.to_valid = []
|
||||||
|
|
||||||
def at_start(self):
|
def at_start(self):
|
||||||
"""Set up the event system."""
|
"""Set up the event system."""
|
||||||
|
|
@ -95,6 +96,11 @@ class EventHandler(DefaultScript):
|
||||||
"code": code,
|
"code": code,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# If not valid, set it in 'to_valid'
|
||||||
|
if not valid:
|
||||||
|
self.db.to_valid.append((obj, event_name, len(events) - 1))
|
||||||
|
|
||||||
|
# Build the definition to return (a dictionary)
|
||||||
definition = dict(events[-1])
|
definition = dict(events[-1])
|
||||||
definition["obj"] = obj
|
definition["obj"] = obj
|
||||||
definition["name"] = event_name
|
definition["name"] = event_name
|
||||||
|
|
@ -135,6 +141,28 @@ class EventHandler(DefaultScript):
|
||||||
"code": code,
|
"code": code,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# If not valid, set it in 'to_valid'
|
||||||
|
if not valid and (obj, event_name, number) not in self.db.to_valid:
|
||||||
|
self.db.to_valid.append((obj, event_name, number))
|
||||||
|
|
||||||
|
def accept_event(self, obj, event_name, number):
|
||||||
|
"""
|
||||||
|
Valid an event.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
obj (Object): the object containing the event.
|
||||||
|
event_name (str): the name of the event.
|
||||||
|
number (int): the number of the event.
|
||||||
|
|
||||||
|
"""
|
||||||
|
obj_events = self.db.events.get(obj, {})
|
||||||
|
events = obj_events.get(event_name, [])
|
||||||
|
|
||||||
|
# Accept and connect the event
|
||||||
|
events[number].update({"valid": True})
|
||||||
|
if (obj, event_name, number) in self.db.to_valid:
|
||||||
|
self.db.to_valid.remove((obj, event_name, number))
|
||||||
|
|
||||||
def call_event(self, obj, event_name, *args):
|
def call_event(self, obj, event_name, *args):
|
||||||
"""
|
"""
|
||||||
Call the event.
|
Call the event.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue