Ejemplo n.º 1
0
def become_installer(request, sede_url):
    forms = []
    errors = []
    installer = None

    if request.POST:
        collaborator = Collaborator.objects.get(user=request.user)
        installer_form = InstallerRegistrationFromCollaboratorForm(request.POST,
                                                                   instance=Installer(collaborator=collaborator))
        forms = [installer_form]
        if installer_form.is_valid():
            try:
                installer = installer_form.save()
                collaborator.user = add_collaborator_perms(collaborator.user)
                collaborator.save()
                installer.save()
                messages.success(request, _("You've became an installer!"))
                return HttpResponseRedirect('/sede/' + sede_url)
            except Exception as e:
                if installer is not None:
                    Installer.delete(installer)
        messages.error(request, _("You not became an installer (check form errors)"))
        errors = get_forms_errors(forms)

    else:
        installer_form = InstallerRegistrationFromCollaboratorForm(instance=Installer())
        forms = [installer_form]

    return render(request,
                  'registration/become_installer.html',
                  update_sede_info(sede_url, {'forms': forms, 'errors': errors, 'multipart': False}))
Ejemplo n.º 2
0
def installer_registration(request, sede_url):
    errors = []
    user, collaborator, installer = None, None, None
    user_form = UserRegistrationForm(request.POST or None)

    if request.POST:
        collaborator_form = CollaboratorRegistrationForm(request.POST)
        installer_form = InstallerRegistrationForm(request.POST)
        forms = [user_form, collaborator_form, installer_form]
        if user_form.is_valid():
            try:
                user = user_form.save()
                if collaborator_form.is_valid():
                    collaborator = collaborator_form.save()
                    if installer_form.is_valid():
                        installer = installer_form.save()
                        collaborator.user = add_collaborator_perms(user)
                        collaborator.save()
                        installer.collaborator = collaborator
                        installer.save()
                        messages.success(request, _("You've been registered successfully!"))
                        return HttpResponseRedirect('/sede/' + sede_url)
            except Exception:
                pass
        if user is not None:
            User.delete(user)
        if collaborator is not None:
            Collaborator.delete(collaborator)
        if installer is not None:
            Installer.delete(installer)
        messages.error(request, _("You haven't been registered successfully (check form errors)"))
        errors = get_forms_errors(forms)

    else:
        sede = Sede.objects.get(url__iexact=sede_url)
        installer = Installer()
        collaborator = Collaborator(sede=sede)
        collaborator_form = CollaboratorRegistrationForm(instance=collaborator)
        installer_form = InstallerRegistrationForm(instance=installer)
        forms = [user_form, collaborator_form, installer_form]

    return render(request,
                  'registration/installer-registration.html',
                  update_sede_info(sede_url, {'forms': forms, 'errors': errors, 'multipart': False}))