Better tab table management. Ajax request to move up or down the tag order.
--- a/web/hdabo/static/hdabo/css/style.css Tue May 31 11:49:24 2011 +0200
+++ b/web/hdabo/static/hdabo/css/style.css Wed Jun 01 19:13:42 2011 +0200
@@ -10,6 +10,9 @@
min-width:750px;
text-align: justify;
}
+body p {
+ margin: 2px;
+}
a img,a:link img, a:active img, a:visited img, a:hover img {
border:0px;
@@ -32,7 +35,7 @@
/*border-bottom-width: 1px;
border-bottom-style: dashed;
border-bottom-color: #2c8084;
- /*font-weight: bold;*/
+ font-weight: bold;*/
}
a:visited {
color: #50a4a3;
@@ -48,7 +51,7 @@
#header
{
- padding: .5em;
+ padding: .2em;
border-bottom: 1px solid gray;
border-left: 1px solid gray;
}
@@ -63,7 +66,7 @@
{
padding: 0px;
max-width: 8em;
- font-size: 40px;
+ font-size: 30px;
font-weight : bold;
text-align: left;
text-transform: uppercase;
@@ -216,12 +219,17 @@
}
#toolbar {
- margin-top: 10px;
- border-bottom: 3px solid #707070;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ border-bottom: 2px solid #707070;
+}
+#toolbar p {
+ margin-top: 5px;
+ margin-bottom: 5px;
}
#inner_content {
- padding: 40px 0px 50px 0px;
+ padding: 5px 0px 50px 0px;
}
#loginstate {
@@ -278,7 +286,7 @@
.errorlist
{
color: red;
- font-size:12px
+ font-size:12px;
}
tr.hdabooddline {
@@ -299,4 +307,20 @@
font-weight : bold;
}
+#tag_table {
+ width: 100%;
+ border-spacing: 0px;
+}
+#tag_table td, th {
+ /*border: thin solid #6495ed;*/
+ padding: 3px;
+}
+.updown_td {
+ width: 12px;
+}
+.sheet_title {
+ font-size: 14px;
+}
+
+
--- a/web/hdabo/templates/hdabo_base.html Tue May 31 11:49:24 2011 +0200
+++ b/web/hdabo/templates/hdabo_base.html Wed Jun 01 19:13:42 2011 +0200
@@ -12,6 +12,7 @@
<link rel="SHORTCUT ICON" href="{{STATIC_URL}}hdabo/img/favicon.ico" />
<title>{% block title %}HDA-BO{% endblock %}</title>
{% block js_import %}
+ <script type="text/javascript" src="{{STATIC_URL}}hdabo/js/hdabo.js"></script>
<script type="text/javascript" src="{{STATIC_URL}}hdabo/js/jquery.min.js"></script>
<script type="text/javascript" src="{{STATIC_URL}}hdabo/js/jquery.nyroModal.min.js"></script>
<!--[if IE 6]>
@@ -36,42 +37,27 @@
{% endblock %}
{% block js_declaration %}
- <script type="text/javascript">
- $(document).ready(function() {
-
- $("#version").css('visibility','hidden');
-
- $("#versionwrapper").hover(
- function(event) {
- $("#version",event.target).css('visibility','visible');
- },
- function(event) {
- $("#version",event.target).css('visibility','hidden');
- }
- );
-
- });
- </script>
{% endblock %}
+
{% endblock %}
</head>
<body>
{% block body %}
<div class="container">
-<div id="header" class="span-24 last">
+<div id="header">
{% block header %}
- <div id="header_left" class="span-24 last">
+ <div id="header_left">
<p><a href="{% url hdabo.views.home %}">HDA<span class="hda_blue">BO</span></a></p>
</div>
{% endblock %}
</div>
<div id="content" class="span-24 last">
- <div id="toolbar" class="span-24 last">
+ <div id="toolbar">
{% block toolbar %}
<p><a href="{% url hdabo.views.home %}">home</a></p>
{% endblock %}
</div>
- <div id="inner_content" class="span-24 last">
+ <div id="inner_content">
{% block content %}
{% endblock %}
</div>
--- a/web/hdabo/templates/partial/list_for_orga.html Tue May 31 11:49:24 2011 +0200
+++ b/web/hdabo/templates/partial/list_for_orga.html Wed Jun 01 19:13:42 2011 +0200
@@ -1,9 +1,24 @@
{% extends "hdabo_base.html" %}
{% block title %}HDA - BO : Fiches pour {{ orga_name }}{% endblock %}
+ {% block js_declaration %}
+ {{block.super}}
+ {% if valid != "2" %}
+ <script type="text/javascript">
+
+ var global_csrf_token = "{{ csrf_token }}";
+ var tag_up_down_url = "{% url hdabo.views.tag_up_down %}";
+
+ $(document).ready(function(){
+ init_tags_events();
+ });
+ </script>
+ {% endif %}
+ {% endblock %}
+
{% block content %}
{{block.super}}
- <p>Fiche(s) pour l'organisation <b>{{ orga_name }}</b> : {{nb_sheets}} fiche(s) ({{valid}}/{{start_index}})</p>
+ <p>Fiche(s) pour l'organisation <b>{{ orga_name }}</b> : {{nb_sheets}} fiche(s)</p>
{% if valid != "2" %}
<div id="count_nav_top">
<p><a href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=0 %}"><<</a>
--- a/web/hdabo/templates/partial/one_sheet.html Tue May 31 11:49:24 2011 +0200
+++ b/web/hdabo/templates/partial/one_sheet.html Wed Jun 01 19:13:42 2011 +0200
@@ -1,8 +1,10 @@
{% block one_sheet %}
<table>
-<tr><td><b>title</b></td><td>{{ds.title}}</td></tr>
+{% csrf_token %}
+<input type="hidden" name="datasheet_id" value="{{ds.id}}" id="datasheet_id" />
+<tr><td><b>title</b></td><td><p class="sheet_title">{{ds.title}}</p></td></tr>
<tr><td><b>description</b></td><td>{{ds.description}}</td></tr>
-<tr><td><b>url</b></td><td>{{ds.url}}</td></tr>
+<tr><td><b>url</b></td><td><a href="{{ds.url}}" target="_blank">{{ds.url}}</a></td></tr>
<tr><td><b>domain_text</b></td><td>{{ds.domain_text}}</td></tr>
<tr><td><b>primary_periods_text</b></td><td>{{ds.primary_periods_text}}</td></tr>
<tr><td><b>college_periods_text</b></td><td>{{ds.college_periods_text}}</td></tr>
@@ -18,35 +20,11 @@
<tr><td><b>validation_date</b></td><td>{{ds.validation_date}}</td></tr>
<tr><td><b>validated</b></td><td>{{ds.validated}}</td></tr>
<tr><td><b>validator</b></td><td>{{ds.validator}}</td></tr>
-<tr><td><b>tag_list</b></td><td>{{ds.tag_list}}</td></tr>
<tr>
<td><b>tags</b></td>
- <td><table>
- <th><td>id</td>
- <td>label</td>
- {% comment %}<td>original_label</td>{% endcomment %}
- <td>alias</td>
- <td>wikipedia_url</td>
- <td>url_status</td>
- <td>dbpedia_uri</td>
- <td>wikipedia_activated</td></th>
- {% for t in ds.tags.all %}
- <tr><td>{{t.label}}</td><td>{{t.label}}</td>
- {% comment %}<td>{{t.original_label}}</td>{% endcomment %}
- <td>{{t.alias}}</td>
- <td>{{t.wikipedia_url}}</td>
- <td>{{t.url_status}}</td>
- <td>{{t.dbpedia_uri}}</td>
- <td>{{t.wikipedia_activated}}</td></tr>
-
- {% comment %}
- <tr><td><b>original_order</b></td><td>{{t.original_order}}</td></tr>
- <tr><td><b>order</b></td><td>{{t.order}}</td></tr>
- <tr><td><b>index_note</b></td><td>{{t.index_note}}</td></tr>
- <tr><td><b>categories</b></td><td>{{t.categories}}</td></tr>
- {% endcomment %}
- {% endfor %}
- </table></td>
+ <td id="tag_table_container">
+ {% include "partial/tag_table.html" %}
+ </td>
</tr>
</table>
{% endblock %}
--- a/web/hdabo/templates/partial/organisation_list.html Tue May 31 11:49:24 2011 +0200
+++ b/web/hdabo/templates/partial/organisation_list.html Wed Jun 01 19:13:42 2011 +0200
@@ -11,12 +11,21 @@
<th class="contenttitle">Fiches validées</th>
<th class="contenttitle">Toutes les fiches</th>
</tr>
- {% for organisation in organisations %}
+ {% for item in organisations %}
<tr class="imageline {% cycle 'hdabooddline' 'hdaboevenline'%}">
- <td class="contenttitle">{{ organisation.name|default:"_" }} (<a href="{{organisation.website}}" target="_blank">lien</a>)</td>
- <td class="contenttitle"><a class="contenttitlelink" href="{% url hdabo.views.list_for_orga orga_id=organisation.id valid=0 %}">Voir</a></td>
- <td class="contenttitle"><a class="contenttitlelink" href="{% url hdabo.views.list_for_orga orga_id=organisation.id valid=1 %}">Voir</a></td>
- <td class="contenttitle"><a class="contenttitlelink" href="{% url hdabo.views.list_for_orga orga_id=organisation.id valid=2 %}">Voir</a></td>
+ <td class="contenttitle">{{ item.organisation.name|default:"_" }} (<a href="{{item.organisation.website}}" target="_blank">lien</a>)</td>
+ <td class="contenttitle">
+ {% if item.nb_unval > 0 %}
+ <a class="contenttitlelink" href="{% url hdabo.views.list_for_orga orga_id=item.organisation.id valid=0 %}">{{item.nb_unval}}</a>
+ {% else %}0{% endif %}</td>
+ <td class="contenttitle">
+ {% if item.nb_val > 0 %}
+ <a class="contenttitlelink" href="{% url hdabo.views.list_for_orga orga_id=item.organisation.id valid=1 %}">{{item.nb_val}}</a>
+ {% else %}0{% endif %}</td>
+ <td class="contenttitle">
+ {% if item.nb_all > 0 %}
+ <a class="contenttitlelink" href="{% url hdabo.views.list_for_orga orga_id=item.organisation.id valid=2 %}">{{item.nb_all}}</a>
+ {% else %}0{% endif %}</td>
</tr>
{% endfor %}
</table>
--- a/web/hdabo/urls.py Tue May 31 11:49:24 2011 +0200
+++ b/web/hdabo/urls.py Wed Jun 01 19:13:42 2011 +0200
@@ -15,9 +15,9 @@
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'hdabo.views.home', name='home'),
- #url(r'^list/(?P<orga_id>.*)/(?P<start_index>.*)/(?P<valid>.*)/$', '', name='list_for_orga'),
url(r'^list/(?P<orga_id>[\w-]+)$', 'hdabo.views.list_for_orga'),
url(r'^list/(?P<orga_id>[\w-]+)/(?P<valid>[\w-]+)/$', 'hdabo.views.list_for_orga'),
url(r'^list/(?P<orga_id>[\w-]+)/(?P<valid>[\w-]+)/(?P<start_index>[\w-]+)/$', 'hdabo.views.list_for_orga'),
url(r'^list/(?P<orga_id>[\w-]+)/(?P<valid>[\w-]+)/(?P<start_index>[\w-]+)/(?P<length>[\w-]+)/$', 'hdabo.views.list_for_orga'),
+ url(r'^tagupdown$', 'hdabo.views.tag_up_down'),
)
--- a/web/hdabo/views.py Tue May 31 11:49:24 2011 +0200
+++ b/web/hdabo/views.py Wed Jun 01 19:13:42 2011 +0200
@@ -9,14 +9,23 @@
from django.shortcuts import (render_to_response, get_object_or_404,
get_list_or_404)
from django.template import RequestContext
-from models import Organisation, Datasheet
+from models import Organisation, Datasheet, TaggedSheet, Tag
#@login_required
def home(request):
# Get all organisations
- org_list = Organisation.objects.all()
+ orgas = Organisation.objects.all()
+ # Count all validated, unvalidated sheets for each organisation
+ org_list = []
+ for orga in orgas :
+ all_datasheets = Datasheet.objects.filter(organisation=orga)
+ nb_all = len(all_datasheets)
+ nb_val = len(all_datasheets.filter(validated=True))
+ nb_unval = len(all_datasheets.filter(validated=False))
+ org_list.append({'organisation':orga, 'nb_all':nb_all, 'nb_val':nb_val, 'nb_unval':nb_unval})
+
return render_to_response("partial/organisation_list.html",
{'organisations':org_list},
@@ -28,11 +37,6 @@
orga = Organisation.objects.get(id=orga_id)
orga_name = orga.name
- # If valid = 0, we search unvalidated sheets
- # If valid = 1, we search validated sheets
- # If valid = 2, we search AND DISPLAY all sheets
- all_datasheets = Datasheet.objects.filter(organisation=orga)
- nb_sheets = len(all_datasheets)
if start_index :
try:
@@ -42,20 +46,29 @@
else :
start_index = 0
+ # If valid = 0, we search unvalidated sheets
+ # If valid = 1, we search validated sheets
+ # If valid = 2, we search AND DISPLAY all sheets
if valid == "1" :
# We count all the validated sheets
- datasheets = all_datasheets.filter(validated=True)
+ datasheets = Datasheet.objects.filter(organisation=orga).filter(validated=True)
nb_sheets = len(datasheets)
# And select the current one
datasheets = [datasheets[start_index]]
elif valid != "2":
# We count all the validated sheets
- datasheets = all_datasheets.filter(validated=False)
+ datasheets = Datasheet.objects.filter(organisation=orga).filter(validated=False)
nb_sheets = len(datasheets)
# And select the current one
datasheets = [datasheets[start_index]]
else :
- datasheets = all_datasheets
+ datasheets = Datasheet.objects.filter(organisation=orga)
+ nb_sheets = len(datasheets)
+
+ # We get the ORDERED tags if we display one sheet (case valid = 0 and 1)
+ ordered_tags = None
+ if valid != "2" :
+ ordered_tags = TaggedSheet.objects.filter(datasheet=datasheets[0]).order_by('order')
displayed_index = start_index + 1;
prev_index = max(start_index - 1, 0);
@@ -64,8 +77,48 @@
return render_to_response("partial/list_for_orga.html",
{'datasheets':datasheets, 'orga_name':orga_name,
- 'nb_sheets':nb_sheets,'orga_id':orga_id,
+ 'nb_sheets':nb_sheets,'orga_id':orga_id, 'ordered_tags':ordered_tags,
'prev_index':prev_index, 'next_index':next_index, 'last_index':last_index,
'start_index':start_index, 'displayed_index':displayed_index, 'valid':valid},
context_instance=RequestContext(request))
+#@login_required
+def tag_up_down(request):
+ ds_id = request.POST["datasheet_id"]
+ tag_id = request.POST["tag_id"]
+ # move can be "u" or "d", for up and down
+ move = request.POST["move"]
+ # First we get the datasheet's TaggedSheets
+ ds_tags = TaggedSheet.objects.filter(datasheet=Datasheet.objects.filter(id=ds_id)[0])
+ # We get the current TaggedSheet ans its's order
+ ts = ds_tags.filter(tag=Tag.objects.filter(id=tag_id))[0]
+ tag_order = ts.order
+ if move == "u" :
+ next_order = tag_order - 1
+ elif move == "d" :
+ next_order = tag_order + 1
+ else :
+ next_order = None
+ # We get the other TaggedSheet that will be moved
+ other_ts = ds_tags.filter(order=next_order)[0]
+ # We switch the orders
+ ts.order = next_order
+ other_ts.order = tag_order
+ ts.save()
+ other_ts.save()
+
+ return get_tag_table(request=request, ds_id=ds_id, valid=0)
+
+
+
+#@login_required
+def get_tag_table(request=None, ds_id=None, valid=None):
+
+ ordered_tags = TaggedSheet.objects.filter(datasheet=Datasheet.objects.filter(id=ds_id)[0]).order_by('order')
+
+ return render_to_response("partial/tag_table.html",
+ {'ordered_tags':ordered_tags, 'valid':valid},
+ context_instance=RequestContext(request))
+
+
+