Skip to main content

A simple application with some classes and scripts for wizard implementation.

Detailed documentation is in the “docs” directory.

Quick start

  1. Add wizard app to project app list in project settings:

    INSTALLED_APPS = [
        ...
        'simple_wizard'
    ]
  2. Add wizard modal to base template:

    {% include 'simple_wizard/wizard_modal.html' %}
  3. Construct management view with steps like this:

    class WizardManagementView(WizardBaseView):
        """
        View for creating wizard with 3 steps
        """
    
        management_url_pattern = 'test_app:wizard_management'
        common_title = 'Common Title'  # for steps without own title
    
        class FirstStep(WizardModalStepMixin, TemplateView):
            """
            First step - simple modal with text message and continue button.
            """
    
            unique_name = 'message_step'
            template_name = 'simple_wizard/wizard_modal_message.html'
            message = 'Simple message step'
            cache_step = False  # step doesn't ask server on repeat show (if it already fetched)
            buttons = [
                LoadWizardStepButton(
                    load_step='form_step',  # next step (get request)
                    title='Continue',
                    css_classes=['btn btn-primary']
                )
            ]
    
        class SecondStep(WizardModalStepWithFormMixin, FormView):
            """
            Second step - modal with form (can be form or model form), validation supported.
            """
    
            unique_name = 'form_step'
            template_name = 'simple_wizard/wizard_modal_form.html'
            form_class = SecondStepForm
            redirect_to_step_if_valid = 'third_step'
            buttons = [
                LoadWizardStepPostButton(
                    load_step='form_step',
                    title='Continue',
                    css_classes=['btn btn-primary']
                )
            ]
    
            def form_valid(self, form):
                test_model = TestModel.objects.filter(pk=self.kwargs.ger('pk')).first()
                test_model.field_1 = form.cleaned_data.get('field_1')
                test_model.save()
    
            return super().form_valid(self, form):
    
        class ThirdStep(WizardModalStepWithFormMixin, TemplateView):
            """
            Third step - just a template modal
            """
    
            unique_name = 'third_step'
            template_name = 'third_step.html'
            buttons = [
                CloseWizardModalButton(
                    title='Finish',
                    css_classes=['btn btn-primary']
                )
            ]
  4. Setups urls:

    app_name = 'test_app'
    
    ...
    
    urlpatterns = [
        ...
        path('wizard-management/<step_to_load>/<int:pk>/', WizardManagementView.as_view(), name='wizard_management')
    ]
  5. Add static files for wizard work:

    <script src="{% static 'simple_wizard/wizard.js' %}"></script>
  6. Initialize wizard handler:

    $(document).ready(function () {
        const django_modal_wizard = new DjangoModalWizard(
            '#wizard-modal',
            '.js-wizard_modal_content',
            '.js-load_wizard',
            '.js-close_wizard'
        );
        django_modal_wizard.initSignals();
    });

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

btc-simple-wizard-0.4.tar.gz (8.5 kB view details)

Uploaded Source

File details

Details for the file btc-simple-wizard-0.4.tar.gz.

File metadata

  • Download URL: btc-simple-wizard-0.4.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.14

File hashes

Hashes for btc-simple-wizard-0.4.tar.gz
Algorithm Hash digest
SHA256 c972fa05fdf9b64132f75c004da2dac4806bc77b9dc4d82f0af25670ff57474e
MD5 ee4070026579b8fff481a8bb2181e4a4
BLAKE2b-256 a869372429fe377d2db9c27c5ecc07982f1462afd1ded7361ee670ec83c009fc

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4 This release

1 file

0.3

1 file

0.2

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page