Beispiel #1
0
    def get_context_data(self, **kwargs):
        try:
            application = utils.get_session_application(self.request.session)
        except Exception as e:
            messages.error(self.request, str(e))
            return redirect('wl_applications:new_application')

        kwargs['application'] = application

        profile_exists = application.applicant.profiles.count() > 0

        if application.applicant_profile is not None:
            kwargs['profile_selection_form'] = ProfileSelectionForm(
                user=application.applicant,
                selected_profile=application.applicant_profile)
        else:
            if profile_exists:
                kwargs['profile_selection_form'] = ProfileSelectionForm(
                    user=application.applicant)

        if profile_exists:
            kwargs['profile_creation_form'] = ProfileForm(
                user=application.applicant)
        else:
            kwargs['profile_creation_form'] = ProfileForm(
                initial_display_name='Default',
                initial_email=application.applicant.email,
                user=application.applicant)

        kwargs['address_form'] = AddressForm(user=application.applicant)

        return super(CreateSelectProfileView, self).get_context_data(**kwargs)
Beispiel #2
0
    def post(self, request, *args, **kwargs):
        try:
            application = utils.get_session_application(request.session)
        except Exception as e:
            messages.error(self.request, str(e))
            return redirect('wl_applications:new_application')

        if 'select' in request.POST:
            profile_selection_form = ProfileSelectionForm(
                request.POST, user=application.applicant)

            if profile_selection_form.is_valid():
                application.applicant_profile = profile_selection_form.cleaned_data.get(
                    'profile')
                application.save()
            else:
                return render(
                    request, self.template_name, {
                        'licence_type': application.licence_type,
                        'profile_selection_form': profile_selection_form,
                        'profile_creation_form': ProfileForm(),
                        'address_form': AddressForm(user=application.applicant)
                    })
        elif 'create' in request.POST:
            profile_form = ProfileForm(request.POST)
            address_form = AddressForm(request.POST)

            if profile_form.is_valid() and address_form.is_valid():
                profile = profile_form.save(commit=False)
                profile.postal_address = address_form.save()
                profile.save()

                application.applicant_profile = profile
                application.save()
                application.log_user_action(
                    ApplicationUserAction.ACTION_CREATE_PROFILE_.format(
                        profile), request)
            else:
                return render(
                    request, self.template_name, {
                        'licence_type':
                        application.licence_type,
                        'profile_selection_form':
                        ProfileSelectionForm(user=request.user),
                        'profile_creation_form':
                        profile_form,
                        'address_form':
                        address_form
                    })

        return redirect('wl_applications:enter_details')