예제 #1
0
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,
        })
예제 #2
0
파일: views.py 프로젝트: sadrians/new_auth
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})
예제 #3
0
    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())
예제 #4
0
파일: tests.py 프로젝트: sadrians/st26proto
   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())
       
예제 #5
0
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
    })
예제 #6
0
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,
        })