diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py index fa85bfa572d801ee039e08c32f090375a42dddc5..d9387426b51541dbf0960e608a9d4c27d1ea43af 100644 --- a/ippisite/ippidb/forms.py +++ b/ippisite/ippidb/forms.py @@ -90,8 +90,12 @@ class ProteinDomainComplexForm(ModelForm): fields=['protein', 'domain', 'ppc_copy_nb'] -ProteinDomainComplexFormSet = modelformset_factory(ProteinDomainComplex, fields=('protein', 'domain', 'ppc_copy_nb'), max_num=2) +class BaseProteinDomainComplexFormSet(BaseModelFormSet): + def __init__(self, *args, **kwargs): + super(BaseProteinDomainComplexFormSet,self).__init__(*args, **kwargs) + self.queryset = ProteinDomainComplex.objects.none() +ProteinDomainComplexFormSet = modelformset_factory(ProteinDomainComplex, form=ProteinDomainComplexForm, formset=BaseProteinDomainComplexFormSet, extra=2, max_num=2) class PpiForm(ModelForm): diff --git a/ippisite/ippidb/templates/ProteinDomainComplexForm.html b/ippisite/ippidb/templates/ProteinDomainComplexForm.html index 8299ca283da521205dd06fae475a441101da1110..5fb8058e15fc8d816a324a0e5368df54174654b8 100644 --- a/ippisite/ippidb/templates/ProteinDomainComplexForm.html +++ b/ippisite/ippidb/templates/ProteinDomainComplexForm.html @@ -26,26 +26,27 @@ <div class="form_div"> <form action="" method="post"> {% csrf_token %} - {{ wizard.form.errors}} - {{ wizard.form.non_field_errors}} - {{ wizard.management_form }} - {{ ProteinDomainComplexFormSet.management_form }} - {% if wizard.form.forms %} - <table> - <div class="inline_box_complex"> - <div class="inline_label"> Bound complex : </div> - <div class="inline_field"> {{ form.protein }}</div> - <div class="inline_field"> {{ form.domain }}</div> - <div class="inline_field"><div>{{ form.ppc_copy_nb }}</div></div> - </div> - <div class="inline_box_complex"> - <div class="inline_label"> Partner complex : </div> - <div class="inline_field"> {{ form.protein }}</div> - <div class="inline_field"> {{ form.domain }}</div> - <div class="inline_field"><div>{{ form.ppc_copy_nb }}</div></div> - </div> - </table> - {% endif %} + {{ wizard.form.errors}} + {{ wizard.form.non_field_errors}} + {% if wizard.form.forms %} + {{ wizard.form.management_form }} + <table> + {% for form in wizard.form.forms %} + {% if forloop.first %} + <div class="inline_box_complex"> + <div class="inline_label">Bound + {% else %} + <div class="inline_box_complex"> + <div class="inline_label">Partner + {% endif %} + complex : </div> + <div class="inline_field"> {{ form.protein }}</div> + <div class="inline_field"> {{ form.domain }}</div> + <div class="inline_field"><div>{{ form.ppc_copy_nb }}</div></div> + </div> + {% endfor %} + </table> + {% endif %} <input type="submit" value="{% trans "Next step" %}"/> <a href="{% url 'ippidb' %}?reset" class="clear_all">Clear all</a> </form> diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index 7d1f5095243e7ddc95cb59e597f284936090e00c..68bc72efc02474c8e6807c0defd8d0a65b3e03b0 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -97,26 +97,8 @@ class IppiWizard(NamedUrlSessionWizardView): if step == 'ProteinDomainComplexForm': complex_type=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexType') complex_choice=self.storage.get_step_data('ProteinDomainComplexTypeForm').get('ProteinDomainComplexTypeForm-complexChoice') - if complex_type == "Hetero2merAB" and complex_choice == "inhibited": - initial['ppc_copy_nb'] = 1 - elif complex_type == "Homo2merA2" and complex_choice == "inhibited": - initial['ppc_copy_nb'] = 1 - elif complex_type == "Hetero2merAB" and complex_choice == "stabilized": - initial['ppc_copy_nb'] = 1 - elif complex_type == "Homo2merA2" and complex_choice == "stabilized": - initial['ppc_copy_nb'] = 2 - elif complex_type == "HomoLike2mer" and complex_choice == "stabilized": - initial['ppc_copy_nb'] = 2 - elif complex_type == "Homo3merA3" and complex_choice == "stabilized": - initial['ppc_copy_nb'] = 3 - elif complex_type == "Homo3merA2" and complex_choice == "stabilized": - initial['ppc_copy_nb'] = 2 - elif complex_type == "Homo4merA4" and complex_choice == "stabilized": - initial['ppc_copy_nb'] = 4 - elif complex_type == "RingHomo3mer" and complex_choice == "stabilized": - nitial['ppc_copy_nb'] = 3 - elif complex_type == "RingHomo5mer" and complex_choice == "stabilized": - initial['ppc_copy_nb'] = 5 + pks = self.storage.get_step_data('PDBForm').get('pks') + print("Proteins",Protein.objects.filter(id__in=pks), Domain.objects.filter(id__in=pks)) if step == 'PpiForm': initial['pdb_id'] = self.storage.get_step_data('PDBForm').get('PDBForm-pdb_id') return self.initial_dict.get(step, initial) @@ -148,7 +130,7 @@ class IppiWizard(NamedUrlSessionWizardView): p.save() protein_ids.append(p.id) data['pks'] = protein_ids - print(data) + print("test",data) return data def get_form_instance(self, step):