示例#1
0
def clone_into_event(source_event, target_event, cloners):
    """Clone data into an existing event.

    Runs all required cloners.

    :param source_event: The `Event` to clone data from;
    :param target_event: The `Event` to clone data into;
    :param cloners: A set containing the names of all enabled cloners.
    """

    # Run the modular cloning system
    g.importing_event = True
    EventCloner.run_cloners(source_event,
                            target_event,
                            cloners,
                            event_exists=True)
    del g.importing_event
    signals.event.imported.send(target_event, source_event=source_event)
    cloner_classes = {c.name: c for c in get_event_cloners().values()}
    target_event.log(EventLogRealm.event,
                     LogKind.change,
                     'Event',
                     'Data imported',
                     session.user,
                     data={
                         'Modules':
                         ', '.join(
                             orig_string(cloner_classes[c].friendly_name)
                             for c in cloners
                             if not cloner_classes[c].is_internal)
                     })

    return target_event
示例#2
0
def _check_cloners(app, **kwargs):
    # This will raise RuntimeError if the cloner names are not unique
    get_event_cloners()
示例#3
0
def _check_cloners(app, **kwargs):
    # This will raise RuntimeError if the cloner names are not unique
    get_event_cloners()