def editmodules(request): if not request.user.is_authenticated(): return redirect('/login/?next=%s' % request.path) branch = GetBranch(request) branchmodule_formset = modelformset_factory(BranchModule, fields=('module', 'column', 'priority'), can_delete=True) if request.method == 'POST': if 'update' in request.POST: formset = branchmodule_formset(request.POST) if formset.is_valid(): for form in formset: existing_branchmodule = form.save(commit=False) existing_branchmodule.branch = branch if form.cleaned_data: delete = form.cleaned_data.get('DELETE') if delete: existing_branchmodule.delete() else: try: existing_branchmodule.save() except IntegrityError as e: #Module is already in the database #needs DATABASES 'OPTIONS': {'autocommit': True,}, to prevent transaction fail pass elif 'add' in request.POST: module_form = ModuleForm(request.POST) new_module = module_form.save() name = new_module.name module = Module.objects.get(name__iexact=name) new_branchmodule = BranchModule() new_branchmodule.branch = branch new_branchmodule.module = module branchmodule_form = BranchModuleForm(instance=new_branchmodule) newbranchmodule = branchmodule_form.save(commit=False) newbranchmodule.save() #formset = branchmodule_formset(queryset=BranchModule.objects.filter(branch__business__name__iexact=branch.business_name)) formset = branchmodule_formset( queryset=BranchModule.objects.filter(branch__business__name__iexact=branch.business_name)) moduleform = ModuleForm() #noinspection PyUnresolvedReferences return render_to_response('traders/editmodules.html', {"formset": formset, "moduleform": moduleform}, context_instance=RequestContext(request))
def test_branch_module(self): branch = Branch.objects.get(business__name__iexact="Haldi") module = Module.objects.get(name__iexact="Facebook") branch_module = BranchModule(branch=branch, module=module) #self.assertEqual( 'Restaurants') self.assertEqual(branch_module.__unicode__(), 'Haldi' + ' ' + 'Facebook')