Example #1
0
    def get_context_data(self, *args, **kwargs):
        from pretalx.schedule.exporters import ScheduleData
        ctx = super().get_context_data(*args, **kwargs)
        ctx['exporters'] = list(
            exporter(self.request.event) for _, exporter in
            register_data_exporters.send(self.request.event))
        tz = pytz.timezone(self.request.event.timezone)
        if 'schedule' not in ctx:
            return ctx

        ctx['data'] = ScheduleData(event=self.request.event,
                                   schedule=ctx['schedule']).data
        for date in ctx['data']:
            if date.get('first_start') and date.get('last_end'):
                start = date.get('first_start').astimezone(tz).replace(
                    second=0, minute=0)
                end = date.get('last_end').astimezone(tz)
                date['height'] = int((end - start).total_seconds() / 60 * 2)
                date['hours'] = []
                d = start
                while d < end:
                    date['hours'].append(d.strftime('%H:%M'))
                    d += timedelta(hours=1)
                for room in date['rooms']:
                    for talk in room.get('talks', []):
                        talk.top = int((talk.start.astimezone(tz) -
                                        start).total_seconds() / 60 * 2)
                        talk.height = int(talk.duration * 2)
                        talk.is_active = talk.start <= now() <= talk.end
        return ctx
Example #2
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context['exporters'] = list(
         exporter(self.request.event)
         for _, exporter in register_data_exporters.send(self.request.event)
     )
     return context
Example #3
0
    def get_context_data(self, **kwargs):
        from pretalx.schedule.exporters import ScheduleData

        context = super().get_context_data(**kwargs)
        context['exporters'] = list(
            exporter(self.request.event) for _, exporter in
            register_data_exporters.send(self.request.event))
        timezone = pytz.timezone(self.request.event.timezone)
        if 'schedule' not in context:
            return context

        context['data'] = ScheduleData(event=self.request.event,
                                       schedule=context['schedule']).data
        context['search'] = self.request.GET.get('q', '').lower()
        max_rooms = 0
        for date in context['data']:
            if date.get('first_start') and date.get('last_end'):
                start = (date.get('first_start').astimezone(timezone).replace(
                    second=0, minute=0))
                end = date.get('last_end').astimezone(timezone)
                date['height'] = int((end - start).total_seconds() / 60 * 2)
                date['hours'] = []
                step = start
                while step < end:
                    date['hours'].append(step.strftime('%H:%M'))
                    step += timedelta(hours=1)
                max_rooms = max(max_rooms, len(date['rooms']))
                for room in date['rooms']:
                    for talk in room.get('talks', []):
                        talk.top = int((talk.start.astimezone(timezone) -
                                        start).total_seconds() / 60 * 2)
                        talk.height = int(talk.duration * 2)
                        talk.is_active = talk.start <= now() <= talk.real_end
        context['max_rooms'] = max_rooms
        return context
Example #4
0
    def get_exporter(self, request):
        from pretalx.common.signals import register_data_exporters

        url = resolve(request.path_info)
        if url.url_name == 'export':
            exporter = unquote(self.request.GET.get('exporter'))
        else:
            exporter = url.url_name

        responses = register_data_exporters.send(request.event)
        for receiver, response in responses:
            ex = response(request.event)
            if ex.identifier == exporter:
                if ex.public or request.is_orga:
                    return ex
Example #5
0
    def get_exporter(self, request):
        url = resolve(request.path_info)

        if url.url_name == "export":
            exporter = url.kwargs.get("name") or unquote(
                self.request.GET.get("exporter"))
        else:
            exporter = url.url_name

        exporter = (exporter[len("export."):]
                    if exporter.startswith("export.") else exporter)
        responses = register_data_exporters.send(request.event)
        for __, response in responses:
            ex = response(request.event)
            if ex.identifier == exporter:
                if ex.public or request.is_orga:
                    return ex
Example #6
0
    def get_exporter(self, request):
        url = resolve(request.path_info)

        if url.url_name == 'export':
            exporter = url.kwargs.get('name') or unquote(
                self.request.GET.get('exporter'))
        else:
            exporter = url.url_name

        exporter = exporter.lstrip('export.')
        responses = register_data_exporters.send(request.event)
        for sender, response in responses:
            ex = response(request.event)
            if ex.identifier == exporter:
                if ex.public or request.is_orga:
                    return ex
        return None
Example #7
0
 def exporters(self):
     return list(
         exporter(self.request.event) for _, exporter in
         register_data_exporters.send(self.request.event))
Example #8
0
def event_exporter_urls(event):
    for _, exporter in register_data_exporters.send(event):
        if exporter.public:
            yield exporter(event).urls.base
Example #9
0
 def exporters(self):
     return list(
         exporter(self.request.event)
         for _, exporter in register_data_exporters.send(self.request.event)
         if exporter.group != "speaker")