Esempio n. 1
0
def collaborator_registration(request, sede_url):
    errors = []
    user_form = UserRegistrationForm(request.POST or None)

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

    else:
        sede = Sede.objects.get(url=sede_url)
        collaborator = Collaborator(sede=sede)
        collaborator_form = CollaboratorRegistrationForm(instance=collaborator)
        forms = [user_form, collaborator_form]

    return render(request,
                  'registration/collaborator-registration.html',
                  update_sede_info(sede_url, {'forms': forms, 'errors': errors, 'multipart': False}))
Esempio n. 2
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}))