diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py index 097c57b65e495c86f3aa05c87a2f77e1f1851e65..c89307d7d35ac780450b70186257398a7e408752 100644 --- a/ippisite/ippidb/forms.py +++ b/ippisite/ippidb/forms.py @@ -107,13 +107,18 @@ class ComplexCompositionForm(forms.Form): complex_domain=forms.ModelChoiceField(queryset=Domain.objects.all(), required=True,widget=forms.Select(attrs={'class':'form-control'}),empty_label=None) ppc_copy_nb=forms.IntegerField(initial=1,required=True,widget=forms.TextInput(attrs={'class':'form-control'})) - def __init__(self,*args,**kwargs): + def __init__(self,pks=None,*args,**kwargs): super(ComplexCompositionForm, self).__init__(*args, **kwargs) """ TODO : Filter based on submited PDBid""" + #pks = kwargs.pop("prot") + print("<<<<<<<<<<") + print(args,kwargs) + print(">>>>>>>>>>") self.fields['complex_protein'].queryset=Protein.objects.filter(pk__in=[569,570]) + self.fields['complex_domain'].queryset=Domain.objects.filter(pk__in=[73,73]) -ComplexCompositionFormSet = formset_factory(ComplexCompositionForm, extra=2) +ComplexCompositionFormSet = formset_factory(ComplexCompositionForm, extra=3) formset= ComplexCompositionFormSet() #print(formset.is_valid()) @@ -164,7 +169,7 @@ class BaseCompoundFormSet(BaseFormSet): form.fields["molecule"] = forms.CharField(widget=forms.RadioSelect(choices=TYPE_MOLECULE, attrs={'class':'form-control'})) form.fields["molecule_comp"] = forms.CharField(widget=forms.TextInput(attrs={'required':'required', 'class':'form-control'})) -CompoundFormSet = formset_factory(CompoundForm, formset=BaseCompoundFormSet, max_num=500, can_delete=True) +CompoundFormSet = formset_factory(CompoundForm, formset=BaseCompoundFormSet, extra=2, can_delete=True) formset = CompoundFormSet() """ Step 8 : TestsForm """ diff --git a/ippisite/ippidb/templates/BibliographyForm.html b/ippisite/ippidb/templates/BibliographyForm.html index 1cb7263bdde8a066512551c4456988a7bf98e312..49c55236b047ed5cb914007dabc78e56a97bab26 100644 --- a/ippisite/ippidb/templates/BibliographyForm.html +++ b/ippisite/ippidb/templates/BibliographyForm.html @@ -53,7 +53,7 @@ {{ wizard.form.journal_name }} </div> <p> This publication contains :<br/></p> - <div id="ck-button"> + <div > <label> <input type="checkbox"><span>{{ wizard.form.cytotox.label }}</span> </label> diff --git a/ippisite/ippidb/templates/CompoundForm.html b/ippisite/ippidb/templates/CompoundForm.html index 57d74efaf3c14433acfbefc934af44199415b307..011f784972c1d57f5463026643fa48ebb8fa591b 100644 --- a/ippisite/ippidb/templates/CompoundForm.html +++ b/ippisite/ippidb/templates/CompoundForm.html @@ -32,42 +32,7 @@ {{ wizard.form.management_form }} <div class="compound"> {% for form in wizard.form.forms %} - <div id="compound_{{ form.compound_name.id_for_label }}"> - <div id="type_title"> - <h1 id="Name_{{ form.compound_name.id_for_label }}">Compound</h1> - <h2>Name your compound</h2> - </div> - <div class="compound_input form-group"> - {{ form.common_name }} - <label class="form-control-placeholder">Common name</label> - </div> - <div class="compound_input form-group"> - {{ form.compound_name }} - <label class="form-control-placeholder">Name in biblio</label> - </div> - <div id="type_title"> - <h2>Choose a format to import your molecule</h2> - </div> - <div id="compound_mol"> - {% for radio in form.molecule %} - <div class="compound_radio_{{ radio.choice_label }}"> - {{ radio.tag }} - <label for="{{ radio.id_for_label }}"> - <span>{{ radio.choice_label }}</span> - </label> - </div> - {% endfor %} - </div> - <div class="compound_input form-group" id="molecule_comp_{{ form.molecule.id_for_label }}"> - {{form.molecule_comp}} - <label class="form-control-placeholder">Molecule composition</label> - </div> - <div id="ck-button-long"> - <label>{{ form.is_macrocycle}}<span>{{ form.is_macrocycle.label }}</span></label> - </div> - </div> - <input type="button" id="ck-button-long" class="add_button" onclick="addComp('{{ form.compound_name.id_for_label }}');" value="Add Compound"> - </input> + {{form}} {% endfor %} </div> diff --git a/ippisite/ippidb/templates/ProteinDomainComplexForm.html b/ippisite/ippidb/templates/ProteinDomainComplexForm.html index 3dea930312c0975e543435981efeb9ce41fb0538..c1348605fd121f3157a513007d247502222a3d4e 100644 --- a/ippisite/ippidb/templates/ProteinDomainComplexForm.html +++ b/ippisite/ippidb/templates/ProteinDomainComplexForm.html @@ -34,19 +34,19 @@ {{ wizard.form.management_form }} {% for form in wizard.form.forms %} <div class="inline_box_complex_long"> - <div class="input_field form-group"> + <div class="input_field form-group"> {{ form.complex_type }} <label class="form-control-placeholder">Complex type</label> </div> - <div class="input_field form-group"> + <div class="input_field form-group"> {{ form.complex_protein }} <label class="form-control-placeholder">Protein</label> </div> - <div class="input_field form-group"> + <div class="input_field form-group"> {{ form.complex_domain }} <label class="form-control-placeholder">Domain</label> </div> - <div class="input_field form-group"> + <div class="input_field form-group"> {{ form.ppc_copy_nb }} <label class="form-control-placeholder">Number of copies of the protein in the complex</label> </div> diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index d152175e00fc54b42d9d895e8bde6da2ec7125cc..f7d25908dda73cede7e78128a96032592ababad0 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -73,14 +73,14 @@ TEMPLATES = {"IdForm": "IdForm.html", "PDBForm": "PDBForm.html", "ProteinDomainComplexTypeForm": "ProteinDomainComplexTypeForm.html", "ProteinDomainComplexForm": "ProteinDomainComplexForm.html", - "PpiForm": "PpiForm.html", + "PpiForm": "PpiForm.html", "CompoundForm":"CompoundForm.html", "TestsForm":"TestsForm.html", } class IppiWizard(NamedUrlSessionWizardView): - + def get_context_data(self, **kwargs): context=super(IppiWizard, self).get_context_data(**kwargs) if self.steps.current == 'BibliographyForm': @@ -95,18 +95,22 @@ class IppiWizard(NamedUrlSessionWizardView): context['complex_choice']=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexChoice') context['complex_type']=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexType') context['pdb_id']=self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id') - return context + return context - def get_form_initial(self, step): + def get_form_initial(self, step): + # Works for form.forms initial = {} # Pre-fill fields with data from a previous form if step == 'ProteinDomainComplexForm': - pks = self.storage.get_step_data('PDBForm').get('pks') - print("Proteins",Protein.objects.filter(id__in=pks)) + pks = self.storage.get_step_data('PDBForm').get('pks') + #initial['pks']=pks + #return {'pks':pks} + #form = ComplexCompositionForm(prot=pks) if step == 'PpiForm': initial['pdb_id'] = self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id') + print(self.initial_dict) return self.initial_dict.get(step, initial) - + def process_step(self, form): """ This method overrides the one used to postprocess the form data. @@ -135,8 +139,9 @@ class IppiWizard(NamedUrlSessionWizardView): protein_ids.append(p.id) data['pks'] = protein_ids return data - + def get_form_instance(self, step): + # Works only for Modelform if self.steps.current == 'BibliographyForm': pk = self.storage.get_step_data('IdForm').get('pk') return Bibliography.objects.get(pk=pk) @@ -162,7 +167,7 @@ class IppiWizard(NamedUrlSessionWizardView): def biblio_list(request): bibliographies = Bibliography.objects.all() - return render(request, 'biblio_list.html', {'bibliographies':bibliographies}) + return render(request, 'biblio_list.html', {'bibliographies':bibliographies}) def biblio_card(request, source, id_source): try: @@ -170,10 +175,10 @@ def biblio_card(request, source, id_source): except Bibliography.DoesNotExist: raise Http404("No bibliography data for %s:%s" % (source, id_source)) refs = RefCompoundBiblio.objects.filter(bibliography_id = bibliography.id) - tad_ppis = TestActivityDescription.objects.filter(biblio__source=source,biblio__id_source=id_source).select_related() + tad_ppis = TestActivityDescription.objects.filter(biblio__source=source,biblio__id_source=id_source).select_related() return render(request, 'biblio_card.html', {'bibliography': bibliography, 'compound_biblios': refs, - 'tad_ppis': tad_ppis}) + 'tad_ppis': tad_ppis}) def process_cutoff_value(name, context, request): context[name+'_max'] = str(int(math.ceil(float(Compound.objects.all().aggregate(Max(name))[name + '__max'])))) @@ -241,8 +246,8 @@ def compound_list(request): for sort_by_option_id in sort_by_option_ids: sort_by_options[sort_by_option_id] = {'name': compound_fields[sort_by_option_id], 'order':'ascending', 'id': sort_by_option_id} sort_by_options['-'+sort_by_option_id] = {'name': compound_fields[sort_by_option_id], 'order':'descending', 'id': sort_by_option_id} - - fields = request.GET.getlist('fields',['id', 'common_name', 'molecular_weight', 'a_log_p', 'compound_action_pdb_ids', 'biblio_refs']) + + fields = request.GET.getlist('fields',['id', 'common_name', 'molecular_weight', 'a_log_p', 'compound_action_pdb_ids', 'biblio_refs']) if 'id' not in fields: fields.append('id') context['selected_ppis'] = selected_ppis @@ -265,7 +270,7 @@ def compound_card(request, compound_id): compound = Compound.objects.get(id=int(compound_id)) except Compound.DoesNotExist: raise Http404("No compound data for %s:%s" % (compound_id)) - le_lle_biplot_data = LeLleBiplotData.objects.get().le_lle_biplot_data + le_lle_biplot_data = LeLleBiplotData.objects.get().le_lle_biplot_data pca_biplot = json.loads(PcaBiplotData.objects.get().pca_biplot_data) pca_biplot_data = json.dumps(pca_biplot['data']) pca_biplot_cc = pca_biplot['correlation_circle']