def test_qualifierForm(self): """ Test the qualifier form. """ print 'Running %s ...' % getName() s1 = self.sequenceListingFixture.create_sequence_instance( self.sequenceListing) f1 = Feature.objects.create(sequence=s1, featureKey='modified_base', location='7') qf1 = QualifierForm(feature=f1, data={ 'qualifierName': 'note', 'qualifierValue': 'test for value' }) self.assertTrue(qf1.is_valid()) self.assertEqual('note', qf1.cleaned_data['qualifierName']) qf2 = QualifierForm(feature=f1, data={ 'qualifierName': 'xxx', 'qualifierValue': 'test for xxx value' }) self.assertTrue(qf2.is_valid())
def test_qualifierForm(self): """ Test the qualifier form. """ print 'Running %s ...' % getName() s1 = self.sequenceListingFixture.create_sequence_instance(self.sequenceListing) f1 = Feature.objects.create(sequence=s1, featureKey='modified_base', location='7') qf1 = QualifierForm(feature=f1, data={'qualifierName': 'note', 'qualifierValue':'test for value'}) self.assertTrue(qf1.is_valid()) self.assertEqual('note', qf1.cleaned_data['qualifierName']) qf2 = QualifierForm(feature=f1, data={'qualifierName': 'xxx', 'qualifierValue':'test for xxx value'}) self.assertTrue(qf2.is_valid())
def add_qualifier(request, pk, spk, fpk): # print 'add_qualifier invoked' f = Feature.objects.get(pk=fpk) if request.method == 'POST': form = QualifierForm(request.POST, feature=f) if form.is_valid(): qn = request.POST.get('qualifierName') qv = request.POST.get('qualifierValue') q = Qualifier.objects.create(feature=f, qualifierName=qn, qualifierValue=qv) q.save() return HttpResponseRedirect(reverse('sequencelistings:detail', args=(pk,))) else: form = QualifierForm(feature=f) return render(request, 'sequencelistings/add_qualifier.html', {'form': form, 'pk': pk, 'spk': spk, 'fpk': fpk})
def add_qualifier(request, pk, spk, fpk): f = Feature.objects.get(pk=fpk) if request.method == 'POST': form = QualifierForm(request.POST, feature=f) if form.is_valid(): qn = request.POST.get('qualifierName') qv = request.POST.get('qualifierValue') q = Qualifier.objects.create(feature=f, qualifierName=qn, qualifierValue=qv) q.save() return HttpResponseRedirect( reverse('sequencelistings:edit_seql', args=(pk, ))) else: form = QualifierForm(feature=f) return render(request, 'sequencelistings/add_qualifier.html', { 'form': form, 'pk': pk, 'spk': spk, 'fpk': fpk, 'feature': f })
def qualifier_form(request, shortcode, qualifier_pk=None): user_account = get_object_or_404(request.user.accounts.all(), account__shortcode=shortcode) account = user_account.account if qualifier_pk: qualifier = get_object_or_404(account.qualifiers.all(), pk=qualifier_pk) permissions = qualifier.permissions.all() else: qualifier = None permissions = [{ "feature": feature, "boolean_permission": False, "limit_permission": None, } for feature in account.features.all()] if request.method == "POST": form = QualifierForm(request.POST, instance=qualifier) form_is_valid = form.is_valid() if form_is_valid: qualifier = form.save(commit=False) qualifier.account = account qualifier._no_auto_save_permissions = True qualifier.save() # Save permissions for k in request.POST.keys(): if k.startswith("permission-"): value = request.POST[k] feature_id = int(k.split("-")[-1]) feature = account.features.get(id=feature_id) if feature.permission_type == Feature.TYPE_BOOLEAN: value = {"": None, "true": True, "false": False}[value] elif feature.permission_type == Feature.TYPE_LIMIT: value = int(value) if value else None qualifier.set_permission(feature.name, value) return HttpResponseRedirect( reverse("account_view", args=(shortcode, ))) else: form = QualifierForm(instance=qualifier) permissions = [] for feature in account.features.order_by("name"): if qualifier: permission_value = qualifier.get_permission_value_only_if_set( feature.name) else: permission_value = None permissions.append({ "feature": feature, "permission_value": permission_value, "is_set": permission_value is not None, }) return render( request, "qualifier_form.html", { "form": form, "qualifier": qualifier, "account": account, "permissions": permissions, #"permissions_formset": permissions_formset, })