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}))
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}))
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}))
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}))