diff --git a/ippisite/ippidb/forms.py b/ippisite/ippidb/forms.py new file mode 100644 index 0000000000000000000000000000000000000000..6c83082fd0c98373d0ae7fa95909b5e3f4fec84d --- /dev/null +++ b/ippisite/ippidb/forms.py @@ -0,0 +1,31 @@ +from django.forms import ModelForm +from django import forms +from django.db import models +from .models import Bibliography, Protein, ProteinDomainComplex, Ppi + +class IdForm(forms.Form): + id = forms.CharField(label="",max_length=100, widget=forms.TextInput(attrs={'placeholder': 'PubMed ID / DOI / Patent ID'})) + +class BibliographyForm(ModelForm): + class Meta: + model = Bibliography + exclude = ['title','journal_name', 'authors_list', 'biblio_year'] + +class PDBForm(forms.Form): + pdb_id = forms.CharField(label="PDB ID",max_length=100, widget=forms.TextInput(attrs={'placeholder': '123456'})) + +class ProteinForm(ModelForm): + class Meta: + model = Protein + exclude = ['recommended_name_long', 'short_name'] + +class ProteinDomainComplexForm(ModelForm): + class Meta: + model = ProteinDomainComplex + fields = ['protein_id', 'domain_id', 'ppc_copy_nb'] + + +class PpiForm(ModelForm): + class Meta: + model = Ppi + fields = ['complex_id', 'cc_nb', 'pdb_id', 'symmetry_id'] diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py index 74c075d3462c15db8da01c2c28ec61dee668cafd..dedbd0bfb5202b95a73094ae49ebe307b6550a10 100644 --- a/ippisite/ippidb/models.py +++ b/ippisite/ippidb/models.py @@ -1,7 +1,6 @@ from __future__ import unicode_literals from django.db import models -from django.forms import ModelForm from .ws import get_pubmed_info, get_epo_info, get_uniprot_info, get_taxonomy_info, get_go_info, get_pfam_info @@ -41,10 +40,7 @@ class Bibliography(models.Model): class Meta: verbose_name_plural = "bibliographies" -class BibliographyForm(ModelForm): - class Meta: - model = Bibliography - exclude = ['title','journal_name', 'authors_list', 'biblio_year'] + class Taxonomy(models.Model): taxonomy_id = models.DecimalField('NCBI TaxID', unique=True, max_digits=9, decimal_places=0) diff --git a/ippisite/ippidb/static/css/ippidb.css b/ippisite/ippidb/static/css/ippidb.css index a0135c7b5213afe6c62b1fc2d326cccf0dc982fe..152e4d216479f51e8498d0089e6b7e66192dfecd 100644 --- a/ippisite/ippidb/static/css/ippidb.css +++ b/ippisite/ippidb/static/css/ippidb.css @@ -328,6 +328,17 @@ text-align: center; display: inline-block; } +.secondary-nav ul li a:active { + font-size: 11px; + font-family: "BrandonGrotesqueBlk"; + color:#000; + text-transform: uppercase; + text-decoration: none; + padding: 0px 0px; + position: relative; + display: inline-block; +} + .secondary-nav ul li a:focus::after { content: ""; position: absolute; @@ -337,6 +348,7 @@ text-align: center; height: 2px; background: #414144 none repeat scroll 0% 0%; text-decoration: none; + color: #000; } .secondary-nav ul li a:active::after { @@ -348,6 +360,7 @@ text-align: center; height: 2px; background: #414144 none repeat scroll 0% 0%; text-decoration: none; + color: #000; } .secondary-nav ul li a:hover::after { @@ -361,6 +374,7 @@ text-align: center; text-decoration: none; } + /* -- Breadcrumb -- */ @@ -585,6 +599,32 @@ display:block; border: 1px solid; padding: 10px; min-height: 150px; + text-align: center; +} + +form { + width : 400px; +} + +button, input, select, textarea { + line-height: inherit; + font-family: "BrandonGrotesqueReg"; + width: 400px; + border-bottom: 1px solid #2d96fa; + border-top: 1px solid #E3E9EB; + border-left: 1px solid #E3E9EB; + border-right: 1px solid #E3E9EB; + text-align: center; +} + +[type="reset"], [type="submit"], button, html [type="button"] { + -webkit-appearance: button; + margin-top: 5px; + border-radius: 0px; + background-color: #2d96fa; + border: none; + color: #fff; + width: inherit; } /* CONTENT */ diff --git a/ippisite/ippidb/templates/add.html b/ippisite/ippidb/templates/add.html index 9b07f4084a9831e7a526de1b40988a7dedd2a955..b6d14762a71844719191e07966b0d74cbec56524 100644 --- a/ippisite/ippidb/templates/add.html +++ b/ippisite/ippidb/templates/add.html @@ -9,13 +9,13 @@ <div class="inner-wrap"> <ul> <li> - <a hfref="/admin/view">View Content</a> + <a hfref="/admin-session/view">View Content</a> </li> <li> - <a href="/admin/add">Add New Content</a> + <a href="/admin-session/add">Add New Content</a> </li> <li> - <a hfref="/admin/update">Update Content</a> + <a hfref="/admin-session/update">Update Content</a> </li> </ul> </div> @@ -44,7 +44,7 @@ To achieve this process, you need : </br> <ul> <li> Your bibliographic source (PubMed article or Patents), </li> - <li> Its ID number (e.g Pubmed ID), </li> + <li> Its ID number (e.g PubMed ID), </li> <li> And a reference PDB code that contains the structure of the macromolecular complex of the PPI target for which you have data. </li> </ul> E.g for a heterodimer, the structure needs to contain both partners. This will help you to describe the PPI architecture. </br> @@ -56,8 +56,13 @@ <div class="content"> <div class="view-content"> <div id="Form"> - ICI Formulaires + <form action="/admin-session/add" method="post"> + {% csrf_token %} + {{ ID.as_p}} + <input type="submit" value="Next" /> + </form> </div> + </div> </div> </div> diff --git a/ippisite/ippidb/templates/admin-session.html b/ippisite/ippidb/templates/admin-session.html new file mode 100644 index 0000000000000000000000000000000000000000..3b5136cc10cb5664c50228cde8558b25bf37bca9 --- /dev/null +++ b/ippisite/ippidb/templates/admin-session.html @@ -0,0 +1,25 @@ +{% extends "base.html" %} + + +{% block title %}inhibitors of Protein-Protein Interaction Database{% endblock %} + +{% block content %} +<div id="mainnav"> + <nav class="secondary-nav"> + <div class="inner-wrap"> + <ul> + <li> + <a hfref="/admin-session/view">View Content</a> + </li> + <li> + <a href="/admin-session/add">Add New Content</a> + </li> + <li> + <a hfref="/admin-session/update">Update Content</a> + </li> + </ul> + </div> + </nav> +</div> +Here the template of admin session +{% endblock %} diff --git a/ippisite/ippidb/templates/admin.html b/ippisite/ippidb/templates/admin.html deleted file mode 100644 index dc665f102e23d9c440808948bdca1a2579044c2d..0000000000000000000000000000000000000000 --- a/ippisite/ippidb/templates/admin.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "base.html" %} - - -{% block title %}inhibitors of Protein-Protein Interaction Database{% endblock %} - -{% block content %} -Here the template of admin session -{% endblock %} diff --git a/ippisite/ippidb/templates/base.html b/ippisite/ippidb/templates/base.html index f170e24a9391cd5351b9e4589b159f8dc07c854b..a497b809f8a22ac946a3ee26c46dabdaa4bf9749 100644 --- a/ippisite/ippidb/templates/base.html +++ b/ippisite/ippidb/templates/base.html @@ -52,13 +52,13 @@ <a href="/about">About</a> </li> <li> - <a href="/submit">Submit</a> + <a href="/query">Query</a> </li> <li> <a href="/tutorials">Tutorials</a> </li> <li> - <a href="/admin">Admin</a> + <a href="/admin-session">Admin</a> </li> </ul> </div> diff --git a/ippisite/ippidb/templates/submit.html b/ippisite/ippidb/templates/query.html similarity index 100% rename from ippisite/ippidb/templates/submit.html rename to ippisite/ippidb/templates/query.html diff --git a/ippisite/ippidb/templates/wizard_form.html b/ippisite/ippidb/templates/wizard_form.html new file mode 100644 index 0000000000000000000000000000000000000000..db6e3d7c15979b70ec04f6f99ed2830433e30f1d --- /dev/null +++ b/ippisite/ippidb/templates/wizard_form.html @@ -0,0 +1,28 @@ +{% extends "base.html" %} +{% load i18n %} + +{% block head %} +{{ wizard.form.media }} +{% endblock %} + +{% block content %} +<p>Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}</p> +<form action="" method="post">{% csrf_token %} +<table> +{{ wizard.management_form }} +{% if wizard.form.forms %} + {{ wizard.form.management_form }} + {% for form in wizard.form.forms %} + {{ form }} + {% endfor %} +{% else %} + {{ wizard.form }} +{% endif %} +</table> +{% if wizard.steps.prev %} +<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% trans "first step" %}</button> +<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans "prev step" %}</button> +{% endif %} +<input type="submit" value="{% trans "submit" %}"/> +</form> +{% endblock %} \ No newline at end of file diff --git a/ippisite/ippidb/urls.py b/ippisite/ippidb/urls.py index c693854ec388b5ac3a7d541fb7e1fca9b93a219c..d6f3060949c7f89a6eb403f43873ad8752edfd83 100644 --- a/ippisite/ippidb/urls.py +++ b/ippisite/ippidb/urls.py @@ -1,10 +1,12 @@ from django.conf.urls import url from . import views + urlpatterns = [ url(r'^$', views.index, name='index'), url(r'^about$', views.about, name='about'), - url(r'^submit$', views.submit, name='submit'), + url(r'^query$', views.query, name='query'), url(r'^tutorials$', views.tutorials, name='tutorials'), - url(r'^admin/add$', views.add, name='add'), + url(r'^admin-session$', views.adminSession, name='admin-session'), + url(r'^admin-session/add$', views.add, name='add'), ] diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index 00ab3e13808c3587da6cb21247831ea52475991d..e97b18c31000ddadee9ef5262c7ad8fdddc86db9 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -1,18 +1,57 @@ from django.shortcuts import render +from formtools.wizard.views import SessionWizardView +from django.http import HttpResponseRedirect +from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexForm, PpiForm def index(request): return render(request, 'index.html') - def about(request): return render(request, 'about.html') -def submit(request): - return render(request, 'submit.html') +def query(request): + return render(request, 'query.html') def tutorials(request): return render(request, 'tutorials.html') +def adminSession(request): + return render(request, 'admin-session.html') + def add(request): - return render(request, 'add.html') + # if this is a POST request we need to process the form data + if request.method == 'POST': + # create a form instance and populate it with data from the request: + form = IdForm(request.POST) + # check whether it's valid: + if form.is_valid(): + # process the data in form.cleaned_data as required + # ... + # redirect to a new URL: + return HttpResponseRedirect('/admin-session/add') + + # if a GET (or any other method) we'll create a blank form + else: + form = IdForm() + + return render(request, 'add.html', {'ID': form}) + + +# def add(request): +# # if this is a POST request we need to process the form data +# if request.method == 'POST': +# # create a form instance and populate it with data from the request: +# form = BibliographyForm(request.POST) +# # check whether it's valid: +# if form.is_valid(): +# # process the data in form.cleaned_data as required +# # ... +# # redirect to a new URL: +# return HttpResponseRedirect('/admin-session/add') + +# # if a GET (or any other method) we'll create a blank form +# else: +# form = BibliographyForm() + +# return render(request, 'add.html', {'Biblio': form}) diff --git a/ippisite/ippisite/settings.py b/ippisite/ippisite/settings.py index 9eeee7eba8d4d021db2c0d7ee9cc5f495c6d52b5..9d773ace0a72a3d68eff32c1fd58a7e71c147d93 100644 --- a/ippisite/ippisite/settings.py +++ b/ippisite/ippisite/settings.py @@ -39,7 +39,8 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'django_extensions', 'bootstrap3', - 'ippidb' + 'ippidb', + 'formtools', ] MIDDLEWARE = [ diff --git a/ippisite/ippisite/urls.py b/ippisite/ippisite/urls.py index 1cacf0ad280c2d9af7b3f8b1e818d689fc5b6083..188260bbfe48f77b75bee56b8e8051cc486b4dcf 100644 --- a/ippisite/ippisite/urls.py +++ b/ippisite/ippisite/urls.py @@ -18,5 +18,5 @@ from django.contrib import admin urlpatterns = [ url(r'^', include('ippidb.urls')), - url(r'^admin/', admin.site.urls), + url(r'^admin-django/', admin.site.urls), ] diff --git a/ippisite/requirements.txt b/ippisite/requirements.txt index 111a8cdd3e9feeebb95af8e17a1387d492f8b004..21aad8203f53930d07f34c1522a0debcceb6ea28 100644 --- a/ippisite/requirements.txt +++ b/ippisite/requirements.txt @@ -5,3 +5,4 @@ django-extensions pygraphviz pydot pyparsing +django-formtools \ No newline at end of file diff --git a/ippisite/templates/admin/base_site.html b/ippisite/templates/admin-django/base_site.html similarity index 80% rename from ippisite/templates/admin/base_site.html rename to ippisite/templates/admin-django/base_site.html index f8adc2f6ed1b4ea91e5e748bac0213f8c9d34285..71872196ba3e9a1c2e91804beafbcb21eda1dd07 100644 --- a/ippisite/templates/admin/base_site.html +++ b/ippisite/templates/admin-django/base_site.html @@ -1,4 +1,4 @@ -{% extends "admin/base_site.html" %} +{% extends "admin-django/base_site.html" %} {% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} @@ -11,7 +11,7 @@ {% endblock %} {% block branding %} -<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1> +<h1 id="site-name"><a href="{% url 'admin-django:index' %}">{{ site_header|default:_('Django administration') }}</a></h1> {% endblock %} {% block nav-global %}{% endblock %}