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
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
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
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
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
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
def exporters(self): return list( exporter(self.request.event) for _, exporter in register_data_exporters.send(self.request.event))
def event_exporter_urls(event): for _, exporter in register_data_exporters.send(event): if exporter.public: yield exporter(event).urls.base
def exporters(self): return list( exporter(self.request.event) for _, exporter in register_data_exporters.send(self.request.event) if exporter.group != "speaker")