def get_context_data(self, **kwargs): event = kwargs['object'] context = super().get_context_data() context['date'] = self.kwargs['date'] date = datetime.strptime(self.kwargs['date'], '%Y-%m-%d') rooms_data = {} rooms = [] for room in event.location.rooms.all().order_by('pk'): rooms_data[room.slugify()] = room rooms.append({ room.slugify(): event.schedules.filter(start__date=date.date(), room=room).order_by('start'), }) context['no_room'] = event.schedules.filter( start__date=date.date(), room=None).order_by('start') context['rooms'] = rooms context['rooms_data'] = rooms_data def daterange(start_date, end_date): for n in range(int((end_date - start_date).days) + 1): yield start_date + timedelta(n) context['interval'] = [] for single_date in daterange(event.date_from, event.date_to): context['interval'].append(single_date) update_event_context(event, context) return context
def event_public_tickets(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() update_event_context(event, context) available_tickets = event.tickettype_set.filter(accessibility=TicketType.PUBLIC)\ .exclude(attendee_type=TicketType.AID).exclude(attendee_type=TicketType.VOLUNTEER)\ .exclude(attendee_type=TicketType.PRESS).order_by('price', 'title') available_tickets = [ t for t in available_tickets if t._get_current_status() in (TicketType.ACTIVE, TicketType.SOLDOUT) ] paginator = Paginator(available_tickets, 10) page = request.GET.get('page') try: available_tickets = paginator.page(page) except PageNotAnInteger: available_tickets = paginator.page(1) except EmptyPage: available_tickets = paginator.page(paginator.num_pages) context['tickets'] = available_tickets context[ 'dispaly_ticket_availability'] = settings.DISPLAY_TICKET_AVAILABILITY return render(request=request, template_name='konfera/event/public_tickets.html', context=context)
def event_public_tickets(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() update_event_context(event, context) available_tickets = event.tickettype_set.filter(accessibility=TicketType.PUBLIC)\ .exclude(attendee_type=TicketType.AID).exclude(attendee_type=TicketType.VOLUNTEER)\ .exclude(attendee_type=TicketType.PRESS) available_tickets = [ t for t in available_tickets if t._get_current_status() == TicketType.ACTIVE ] paginator = Paginator(available_tickets, 10) page = request.GET.get('page') try: available_tickets = paginator.page(page) except PageNotAnInteger: available_tickets = paginator.page(1) except EmptyPage: available_tickets = paginator.page(paginator.num_pages) context['tickets'] = available_tickets return render(request=request, template_name='konfera/event/public_tickets.html', context=context)
def order_payment(request, order_uuid): order = get_object_or_404(Order, uuid=order_uuid) context = dict() if order.status == Order.PAID: return redirect('order_details', order_uuid=str(order.uuid)) if order.status == Order.AWAITING: context['form'] = form = ReceiptForm(request.POST or None, instance=order.receipt_of) if form.is_valid(): form.save() messages.success(request, _('Your order details has been updated.')) if order.event: update_event_context(order.event, context, show_sponsors=False) context['PAYPAL_ADDITIONAL_CHARGE'] = settings.PAYPAL_ADDITIONAL_CHARGE context['order'] = order update_order_status_context(order.status, context) return render(request=request, template_name='payments/order_payment.html', context=context)
def event_sponsors_list_view(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() update_event_context(event, context) return render(request=request, template_name='konfera/event/sponsors.html', context=context)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) update_event_context(self.event, context) context['speaker_form'] = SpeakerForm(self.request.POST or None, prefix='speaker') context['talk_form'] = TalkForm(self.request.POST or None, prefix='talk') return context
def event_speakers_list_view(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() context['talks'] = event.talk_set.filter( status=Talk.APPROVED).order_by('primary_speaker__last_name') update_event_context(event, context) return render(request=request, template_name='konfera/event/speakers.html', context=context)
def event_details_view(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() update_event_context(event, context) if event.event_type == Event.MEETUP: return render(request=request, template_name='konfera/event/details_meetup.html', context=context) return render(request=request, template_name='konfera/event/details_conference.html', context=context)
def event_venue_view(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) if not event.location or not event.location.get_here: raise Http404 context = dict() context['venue'] = event.location.get_here update_event_context(event, context) return render(request=request, template_name='konfera/event/venue.html', context=context)
def event_about_us(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() update_event_context(event, context, show_sponsors=False) if not event.organizer: raise Http404( _('Organizer has not been set for event %s' % event.title)) context['organizer'] = event.organizer return render(request=request, template_name='konfera/event/event_organizer.html', context=context)
def get_context_data(self, **kwargs): context = super().get_context_data() context['order'] = self.object context['allow_receipt_edit'] = self.object.status == Order.AWAITING context['allow_pdf_storage'] = settings.ENABLE_ORDER_PDF_GENERATION context['rendering_pdf'] = False if self.object.event: update_event_context(self.object.event, context, show_sponsors=False) update_order_status_context(self.object.status, context) return context
def event_coc(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) if not event.coc: raise Http404 context = dict() context['coc'] = event.coc context['phone'] = event.coc_phone context['phone2'] = event.coc_phone2 update_event_context(event, context, show_sponsors=False) return render(request=request, template_name='konfera/event/coc.html', context=context)
def event_speakers_list_view(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() context['speakers'] = Speaker.objects.filter( (Q(primary_speaker_talks__event__slug=slug) | Q(secondary_speaker_talks__event__slug=slug)) & (Q(primary_speaker_talks__status=Talk.PUBLISHED) | Q(secondary_speaker_talks__status=Talk.PUBLISHED))).order_by( 'last_name').distinct() update_event_context(event, context) return render(request=request, template_name='konfera/event/speakers.html', context=context)
def event_sponsors_list_view(request, slug): event = get_object_or_404(Event.objects.published(), slug=slug) context = dict() context['sponsors'] = event.sponsors.all().order_by('type', 'title') context['one_last_sponsor'] = (1, 4, 7, 10, 13, 16, 19) context['two_last_sponsor'] = (2, 5, 8, 11, 14, 17, 20) context['supporters'] = Ticket.objects.filter(order__status=Order.PAID)\ .filter(type__attendee_type=TicketType.SUPPORTER)\ .filter(type__event__pk=event.pk)\ .exclude(status=Ticket.CANCELLED) update_event_context(event, context, show_sponsors=False) return render(request=request, template_name='konfera/event/sponsors.html', context=context)
def get_context_data(self, **kwargs): event = kwargs['object'] context = super().get_context_data() context['day'] = int(self.kwargs['day']) date = event.date_from + timedelta(days=context['day']) context['schedule'] = event.schedules.filter( start__date=date.date()).order_by('room', 'start') event_duration = event.date_to - event.date_from context['interval'] = [{ 'day': day, 'date': event.date_from + timedelta(days=day) } for day in range(event_duration.days + 1)] update_event_context(event, context) return context
def event_order_detail(request, order_uuid): order = get_object_or_404(Order, uuid=order_uuid) context = dict() if order.event: update_event_context(order.event, context, show_sponsors=False) if order.status == Order.AWAITING: context['form'] = form = ReceiptForm(request.POST or None, instance=order.receipt_of) if form.is_valid(): form.save() messages.success(request, _('Your order details has been updated.')) context['order'] = order update_order_status_context(order.status, context) return render(request=request, template_name='konfera/order_details.html', context=context)