def sequence(request, pk, spk): seq = Sequence.objects.get(pk=spk) form = SequenceForm( instance=seq, # sn = seq.sequenceName, initial={ 'organism': seq.getOrganism(), 'sequenceName': seq.sequenceName }) form.organism = seq.getOrganism() featureFormDic = {} qualifierFormDic = {} for f in seq.feature_set.all(): featureFormDic[f] = FeatureForm(instance=f, mt=seq.moltype, initial={'featureKey': f.featureKey}) qualifierFormList = [] for q in f.qualifier_set.all(): qualifierFormList.append( QualifierForm(feature=f, instance=q, initial={'qualifierName': q.qualifierName})) qualifierFormDic[f] = qualifierFormList return render( request, 'sequencelistings/sequence.html', { 'form': form, 'seq': seq, 'featureFormDic': featureFormDic, 'qualifierFormDic': qualifierFormDic, })
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 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): 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, })