Beispiel #1
0
    def to_representation(self, instance: OrderPosition):
        res = {}

        ev = instance.subevent or instance.order.event
        # This needs to have some extra performance improvements to avoid creating hundreds of queries when
        # we serialize a list.

        if 'vars' not in self.context:
            self.context['vars'] = get_variables(self.context['request'].event)

        for k, f in self.context['vars'].items():
            res[k] = f['evaluate'](instance, instance.order, ev)

        if not hasattr(ev, '_cached_meta_data'):
            ev._cached_meta_data = ev.meta_data

        for k, v in ev._cached_meta_data.items():
            res['meta:' + k] = v

        return res
Beispiel #2
0
 def get_variables(self):
     return get_variables(self.request.event)
Beispiel #3
0
 def __init__(self, event, override_layout=None, override_background=None):
     self.override_layout = override_layout
     self.override_background = override_background
     self.variables = get_variables(event)
     super().__init__(event)