Example #1
0
def attendee_registration_by_collaborator(request, event_slug):
    event = Event.objects.filter(slug__iexact=event_slug).first()
    if not event:
        return handler404(request)
    attendee = NonRegisteredAttendee()
    form = AttendeeRegistrationByCollaboratorForm(request.POST or None, instance=attendee)
    if request.POST:
        if form.is_valid():
            email = form.cleaned_data["email"]
            if EventUser.objects.filter(event=event, user__email__iexact=email).count() > 0:
                messages.error(request, _("The attendee has registered for this event, use correct form"))
                return HttpResponseRedirect(reverse("attendee_search", args=(event_slug,)))
            if EventUser.objects.filter(event=event, nonregisteredattendee__email__iexact=email).count() > 0:
                form.add_error('email', _("Email already registered for this event"))
            try:
                form.save()
                eventuser = EventUser(event=event, nonregisteredattendee=attendee, assisted=True)
                eventuser.save()
                if form.cleaned_data["is_installing"]:
                    installer = InstallationAttendee(eventUser=eventuser,
                                                     installation_additional_info=form.cleaned_data[
                                                         "installation_additional_info"])
                    installer.save()
                else:
                    attendee = Attendee(eventUser=eventuser)
                    attendee.save()
                messages.success(request, _('The attendee was successfully registered . Happy Hacking!'))
                return HttpResponseRedirect(reverse("attendee_search", args=(event_slug,)))
            except Exception:
                pass
        messages.error(request, _("The attendee couldn't be registered (check form errors)"))
    return render(request, 'registration/attendee/by-collaborator.html', update_event_info(event_slug, request, {'form': form}))
Example #2
0
def attendee_registration_by_collaborator(request, event_slug):
    event = Event.objects.get(slug__iexact=event_slug)
    attendee = NonRegisteredAttendee()
    form = AttendeeRegistrationByCollaboratorForm(request.POST or None, instance=attendee)
    if request.POST:
        if form.is_valid():
            email = form.cleaned_data["email"]
            if EventUser.objects.filter(event=event, user__email__iexact=email).count() > 0:
                messages.error(request, _("The attendee has registered for this event, use correct form"))
                return HttpResponseRedirect(reverse("attendee_search", args=(event_slug,)))
            if EventUser.objects.filter(event=event, nonregisteredattendee__email__iexact=email).count() > 0:
                form.add_error('email', _("Email already registered for this event"))
            try:
                form.save()
                eventuser = EventUser(event=event, nonregisteredattendee=attendee, assisted=True)
                eventuser.save()
                if form.cleaned_data["is_installing"]:
                    installer = InstallationAttendee(eventUser=eventuser,
                                                     installation_additional_info=form.cleaned_data[
                                                         "installation_additional_info"])
                    installer.save()
                else:
                    attendee = Attendee(eventUser=eventuser)
                    attendee.save()
                messages.success(request, _('The attendee was successfully registered . Happy Hacking!'))
                return HttpResponseRedirect(reverse("attendee_search", args=(event_slug,)))
            except Exception:
                pass
        messages.error(request, _("The attendee couldn't be registered (check form errors)"))
    return render(request, 'registration/attendee/by-collaborator.html', update_event_info(event_slug, {'form': form}))
Example #3
0
def generic_registration(request, event_slug, registration_model, registration_form, msg_success, msg_error, template):
    event = Event.objects.filter(slug__iexact=event_slug).first()
    if not event:
        return handler404(request)

    if not event.registration_is_open:
        return render(request, 'registration/closed-registration.html', update_event_info(event_slug, request))

    errors = []
    eventUser = EventUser.objects.filter(event=event, user=request.user).first()
    if not eventUser:
        eventUser = EventUser(event=event, user=request.user)

    registration = registration_model.objects.filter(eventUser=eventUser)

    # FIXME: Chanchada
    installation = InstallationAttendee.objects.filter(eventUser=eventUser)

    if registration or installation:
        # Ya esta registrado con ese "rol"
        messages.error(request, _("You are already registered for this event"))
        return HttpResponseRedirect(reverse("index", args=(event_slug,)))

    registration = registration_model(eventUser=eventUser)
    if request.POST:
        eventUser_form = EventUserRegistrationForm(request.POST, instance=eventUser)
        registration_form = registration_form(request.POST, instance=registration)
        forms = [eventUser_form, registration_form]
        if eventUser_form.is_valid() and registration_form.is_valid():
            try:
                eventUser = eventUser_form.save()
                # FIXME: Chanchada
                if registration_model is Attendee and registration_form.cleaned_data["is_installing"]:
                    installation = InstallationAttendee(eventUser=eventUser,
                                                        installation_additional_info=registration_form.cleaned_data[
                                                            "installation_additional_info"])
                    installation.save()
                else:
                    registration = registration_form.save()
                    registration.eventUser = eventUser
                    registration.save()

                if not eventUser.ticket:
                    try:
                        send_event_ticket(eventUser, request.META.get('LANG'))
                        eventUser.ticket = True
                        eventUser.save()
                        msg_success += unicode(_(". Please check your email for the corresponding ticket."))
                    except Exception:
                        msg_success += unicode(
                            _(" but we couldn't send you your ticket. Please, check it out from the menu."))
                messages.success(request, msg_success)
                return HttpResponseRedirect('/event/' + event_slug)
            except Exception:
                pass
        messages.error(request, msg_error)
    else:
        eventUser_form = EventUserRegistrationForm(instance=eventUser)
        registration_form = registration_form(instance=registration)
        forms = [eventUser_form, registration_form]

    return render(request,
                  template,
                  update_event_info(event_slug, request, {'forms': forms, 'errors': errors, 'multipart': False}))
Example #4
0
def generic_registration(request, event_slug, registration_model, registration_form, msg_success, msg_error, template):
    event = Event.objects.get(slug__iexact=event_slug)

    if not event.registration_is_open:
        return render(request, 'registration/closed-registration.html', update_event_info(event_slug))

    errors = []
    eventUser = EventUser.objects.filter(event=event, user=request.user).first()
    if not eventUser:
        eventUser = EventUser(event=event, user=request.user)

    registration = registration_model.objects.filter(eventUser=eventUser)

    # FIXME: Chanchada
    installation = InstallationAttendee.objects.filter(eventUser=eventUser)

    if registration or installation:
        # Ya esta registrado con ese "rol"
        messages.error(request, _("You are already registered for this event"))
        return HttpResponseRedirect(reverse("index", args=(event_slug,)))

    registration = registration_model(eventUser=eventUser)
    if request.POST:
        eventUser_form = EventUserRegistrationForm(request.POST, instance=eventUser)
        registration_form = registration_form(request.POST, instance=registration)
        forms = [eventUser_form, registration_form]
        if eventUser_form.is_valid() and registration_form.is_valid():
            try:
                eventUser = eventUser_form.save()
                # FIXME: Chanchada
                if registration_model is Attendee and registration_form.cleaned_data["is_installing"]:
                    installation = InstallationAttendee(eventUser=eventUser,
                                                        installation_additional_info=registration_form.cleaned_data[
                                                            "installation_additional_info"])
                    installation.save()
                else:
                    registration = registration_form.save()
                    registration.eventUser = eventUser
                    registration.save()

                if not eventUser.ticket:
                    try:
                        send_event_ticket(eventUser, request.META.get('LANG'))
                        eventUser.ticket = True
                        eventUser.save()
                        msg_success += unicode(_(". Please check your email for the corresponding ticket."))
                    except Exception:
                        msg_success += unicode(_(" but we couldn't send you your ticket. Please, check it out from the menu."))
                messages.success(request, msg_success)
                return HttpResponseRedirect('/event/' + event_slug)
            except Exception:
                pass
        messages.error(request, msg_error)
    else:
        eventUser_form = EventUserRegistrationForm(instance=eventUser)
        registration_form = registration_form(instance=registration)
        forms = [eventUser_form, registration_form]

    return render(request,
                  template,
                  update_event_info(event_slug, {'forms': forms, 'errors': errors, 'multipart': False}))