Package: django-infuse
Django Infuse=============Series of Class based mixins.  Requires Django 1.4s use of PermissionDenied exception.Installation------------pip install django-infuseCurrently Supported Mixins--------------------------* Permission Required* Staff Required* Super User required* Login Required* Group RequiredUsage-----### Login Required MixinInherit the mixin you want to use and add any additional (optional) params.from infuse.auth.permissions import LoginRequiredMixinclass MyLoginProtectedView(LoginRequiredMixin, ListView):# If login_url is not the url you want to redirect# users to, set one here.login_url = "/my/new/url/"# Do the rest of your stuff.....### Group Required MixinThe only other different one is GroupRequiredMixinfrom infuse.auth.permissions import GroupRequiredMixinclass MyGroupRequiredView(GroupRequiredMixin, ListView):# Uses login_required, so you can optionally pass in# a url just like LoginRequired.# You MUST set a group, Infuse will throw an exception# if you do not.group = "My Awesome Group"### Permission Required MixinOriginal work by Kenneth Love and Chris Jones.  Modified to always raise PermissionDeniedfrom infuse.auth.permissions import PermissionRequiredMixinclass PermissionRequiredView(PermissionRequiredMixin, ListView):# Permission to requirepermssion_required = 'model.can_do_something'### Save and Continue Form WizardThis mixin is still very much in a alpha status.  The django form wizard does not support the concept of 'Finish Later' or anybuilt in ability to save the form 'half done'.  This mixin provides a way for developers to add a 'Finish Later' functionalityto their form wizard.In order to use the 'Finish Later' functionality you must add a button/input element on your form wizard templates and name it 'save_only'<input type='submit' name='save_only' value='Finish Later'>Next inherit the SaveAndContinue Mixinfrom infuse.wizard.mixins import SaveAndContinueWizardclass MyFinishLaterWizard(SaveAndContinueWizard):# This url is where the user will be redirected to when# they click the 'Finish Later' buttonsave_only_url = reverse_lazy('wheretogowhenuserssaves')In addition to the ``save_only_url`` that you are required to set, you may also provide the following methods:def post_save_only(self):passdef process_wizard_goto_step(self, wizard_goto_step):if wizard_goto_step and wizard_goto_step in self.get_form_list():self.storage.current_step = wizard_goto_stepform = self.get_form(data=self.storage.get_step_data(self.steps.current),files=self.storage.get_step_files(self.steps.current))return self.render(form)def pre_process(self, form):passdef additional_file_processing(self):pass* ``post_save_only`` - Called when save_only is executed.  Provides a way to hook into the save_only processor* ``pre_process`` - Do any pre processing before forms are attempted to save.  Can be used to setup formsets.* ``additional_file_processing`` - Do any additional file processing.  I use this to make sure that files saved to AWS are savedwith the correct file name.* ``process_wizard_goto_step`` - Allows you to override the default behaviour of going between steps.This particular mixin is extreamly powerful, but is in a constantly changing state.  If you are using it, please provide some feedback of how and what your using it for, as well as any improvements you have.