--- a/.settings/org.eclipse.core.resources.prefs Tue Jun 14 12:58:53 2011 +0200
+++ b/.settings/org.eclipse.core.resources.prefs Tue Jun 14 13:08:22 2011 +0200
@@ -1,10 +1,11 @@
-#Tue Jun 14 01:30:55 CEST 2011
+#Tue Jun 14 10:02:51 CEST 2011
eclipse.preferences.version=1
encoding//virtualenv/web/env/hdabo/lib/python2.6/site-packages/haystack/backends/__init__.py=utf-8
encoding//virtualenv/web/env/hdabo/lib/python2.6/site-packages/sortedm2m/fields.py=utf-8
encoding//virtualenv/web/env/hdabo/lib/python2.6/site-packages/sortedm2m/forms.py=utf-8
encoding//virtualenv/web/env/hdabo/lib/python2.6/site-packages/sortedm2m/tests.py=utf-8
encoding//virtualenv/web/env/hdabo/lib/python2.6/site-packages/whoosh/analysis.py=utf8
+encoding//virtualenv/web/env/hdabo/lib/python2.6/site-packages/wikitools/wiki.py=utf-8
encoding//web/hdabo/fields.py=utf-8
encoding//web/hdabo/forms.py=utf-8
encoding//web/hdabo/management/commands/importcsv.py=utf-8
--- a/web/hdabo/management/commands/importcsv.py Tue Jun 14 12:58:53 2011 +0200
+++ b/web/hdabo/management/commands/importcsv.py Tue Jun 14 13:08:22 2011 +0200
@@ -11,6 +11,7 @@
from django.db import transaction
from hdabo.models import (Author, Datasheet, DocumentFormat, Domain, Organisation,
Tag, TaggedSheet, TimePeriod, Location)
+from hdabo.wp_utils import normalize_tag
from optparse import make_option
import csv
import datetime
@@ -82,15 +83,6 @@
sys.stdout.write("\n")
sys.stdout.flush()
-
- def normalize_tag(self, tag):
- if len(tag) == 0:
- return tag
- tag = tag.strip()
- tag = tag.replace("_", " ")
- tag = " ".join(tag.split())
- tag = tag[0].upper() + tag[1:]
- return tag
def create_domain_period(self, row_value, klass, school_period):
res_list = []
@@ -191,7 +183,7 @@
for i, tag in enumerate([t.strip() for t in row[u'Tag'].split(u";")]):
if len(tag) == 0:
continue
- tag_label = self.normalize_tag(tag)
+ tag_label = normalize_tag(tag)
tag_objs = Tag.objects.filter(label__iexact=tag_label)
if len(tag_objs) == 0:
tag_obj = Tag(label=tag_label, original_label=tag)
--- a/web/hdabo/management/commands/querywikipedia.py Tue Jun 14 12:58:53 2011 +0200
+++ b/web/hdabo/management/commands/querywikipedia.py Tue Jun 14 13:08:22 2011 +0200
@@ -15,6 +15,28 @@
import math
import sys
+
+def process_tag(site, tag, verbosity):
+ new_label, status, url, pageid, response = query_wikipedia_title(site, tag.label)
+
+ if verbosity >= 2 :
+ print "response from query to %s with parameters %s :" % (site.apibase, repr(new_label))
+ print repr(response)
+
+ if new_label is not None:
+ tag.label = new_label
+ if status is not None:
+ tag.url_status = status
+ if url is not None:
+ tag.wikipedia_url = url
+ tag.wikipedia_activated = True
+ if pageid is not None:
+ tag.wikipedia_pageid = pageid
+
+ tag.save()
+
+
+
class Command(NoArgsCommand):
'''
query and update wikipedia for tag title.
@@ -166,23 +188,7 @@
print "processing tag %s (%d/%d)" % (tag.label, i + 1, count)
else:
self.show_progress(i + 1, count, tag.label, 60)
-
- new_label, status, url, pageid, response = query_wikipedia_title(site, tag.label)
-
- if verbosity >= 2 :
- print "response from query to %s with parameters %s :" % (site_url, repr(new_label))
- print repr(response)
- if new_label is not None:
- tag.label = new_label
- if status is not None:
- tag.url_status = status
- if url is not None:
- tag.wikipedia_url = url
- tag.wikipedia_activated = True
- if pageid is not None:
- tag.wikipedia_pageid = pageid
-
- tag.save()
+ process_tag(site, tag, verbosity)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/hdabo/templates/partial/list_for_orga.html Tue Jun 14 13:08:22 2011 +0200
@@ -0,0 +1,84 @@
+{% extends "hdabo_base.html" %}
+ {% block title %}HDA - BO : Fiches pour {{ orga_name }}{% endblock %}
+
+ {% block js_import %}
+ {{block.super}}
+ <script type="text/javascript" src="{{STATIC_URL}}hdabo/js/jquery-ui.min.js"></script>
+ <script type="text/javascript" src="{{STATIC_URL}}hdabo/js/jquery.jeditable.js"></script>
+ {% endblock %}
+
+ {% block js_declaration %}
+ {{block.super}}
+ {% if valid != "2" %}
+ <script type="text/javascript">
+
+ var global_csrf_token = "{{ csrf_token }}";
+ var static_url = "{{STATIC_URL}}";
+ var tag_up_down_url = "{% url hdabo.views.tag_up_down %}";
+ var remove_tag_from_list_url = "{% url hdabo.views.remove_tag_from_list %}";
+ var validate_wp_link_url = "{% url hdabo.views.validate_wp_link %}";
+ var modify_tag_url = "{% url hdabo.views.modify_tag %}";
+ var reset_wp_info_url = "{% url hdabo.views.reset_wikipedia_info %}";
+
+ $(document).ready(function(){
+ $.editable.addInputType('autocomplete', {
+ element : $.editable.types.text.element,
+ plugin : function(settings, original) {
+ $('input', this).autocomplete(settings.autocomplete);
+ }
+ });
+ init_tags_events();
+ });
+ </script>
+ {% endif %}
+ {% endblock %}
+
+ {% block css_import %}
+ {{block.super}}
+ <link rel="stylesheet" href="{{STATIC_URL}}hdabo/css/smoothness/jquery-ui-1.8.13.custom.css" type="text/css"/>
+ {% endblock %}
+
+ {% block css_declaration %}
+ {{block.super}}
+ <style type="text/css">
+ .ui-autocomplete {
+ max-height: 100px;
+ overflow-y: auto;
+ /* prevent horizontal scrollbar */
+ overflow-x: hidden;
+ /* add padding to account for vertical scrollbar */
+ padding-right: 20px;
+ }
+ </style>
+ {% endblock %}
+
+
+ {% block content %}
+ {{block.super}}
+ <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 href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=prev_index %}"><</a>
+ {{displayed_index}}/{{nb_sheets}}
+ <a href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=next_index %}">></a>
+ <a href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=last_index %}">>></a></p>
+ </div>
+ {% endif %}
+ <table>
+ {% for ds in datasheets %}
+ <tr class="imageline {% cycle 'hdaboevenline' 'hdabooddline' %}"><td>
+ {% include "partial/one_sheet.html" %}
+ </td></tr>
+ {% endfor %}
+ </table>
+ {% if valid != "2" %}
+ <div id="count_nav_bottom">
+ <p><a href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=0 %}"><<</a>
+ <a href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=prev_index %}"><</a>
+ {{displayed_index}}/{{nb_sheets}}
+ <a href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=next_index %}">></a>
+ <a href="{% url hdabo.views.list_for_orga orga_id=orga_id, valid=valid, start_index=last_index %}">>></a></p>
+ </div>
+ {% endif %}
+ {% endblock %}
--- a/web/hdabo/templates/partial/tag_table.html Tue Jun 14 12:58:53 2011 +0200
+++ b/web/hdabo/templates/partial/tag_table.html Tue Jun 14 13:08:22 2011 +0200
@@ -23,7 +23,7 @@
<td class="updown_td">{% if not forloop.first %}<img src="{{STATIC_URL}}hdabo/img/arrow_up.png" class="up" alt="up" id={{t.tag.id}} pos="{{forloop.counter0}}">{% endif %}</td>
<td class="updown_td">{% if not forloop.last %}<img src="{{STATIC_URL}}hdabo/img/arrow_down.png" class="down" alt="down" id={{t.tag.id}} pos="{{forloop.counter0}}">{% endif %}</td>
{% endif %}
- <td>{{t.tag.id}}</td>
+ <td class="reset_wp_info">{{t.tag.id}}</td>
<td class="{{t.tag.url_status_text}} wikipediatag" id="{{t.tag.id}}" >{{t.tag.label}}</td>
{% comment %}<td>{{t.tag.original_label}}</td>{% endcomment %}
<td class="text_centered">
--- a/web/hdabo/urls.py Tue Jun 14 12:58:53 2011 +0200
+++ b/web/hdabo/urls.py Tue Jun 14 13:08:22 2011 +0200
@@ -24,5 +24,6 @@
url(r'^removetagfromlist$', 'hdabo.views.remove_tag_from_list'),
url(r'^validatelink$', 'hdabo.views.validate_wp_link'),
url(r'^modifytag$', 'hdabo.views.modify_tag'),
+ url(r'^resetwpinfo$', 'hdabo.views.reset_wikipedia_info'),
url(r'^addtag$', 'hdabo.views.add_tag'),
)
--- a/web/hdabo/views.py Tue Jun 14 12:58:53 2011 +0200
+++ b/web/hdabo/views.py Tue Jun 14 13:08:22 2011 +0200
@@ -1,212 +1,201 @@
-from django.conf import settings
-from django.contrib.auth.decorators import login_required #@UnusedImport
-from django.db.models import Max
-from django.http import HttpResponse
-from django.shortcuts import render_to_response
-from django.template import RequestContext
-from hdabo.wp_utils import query_wikipedia_title
-from models import Organisation, Datasheet, TaggedSheet, Tag
-from wikitools import wiki
-
-
-#@login_required
-def home(request):
-
- # Get all organisations
- 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("organisation_list.html",
- {'organisations':org_list},
- context_instance=RequestContext(request))
-
-
-#@login_required
-def list_for_orga(request, orga_id=None, valid=None, start_index=None):
-
- orga = Organisation.objects.get(id=orga_id)
- orga_name = orga.name
-
- if start_index :
- try:
- start_index = int(start_index)
- except :
- start_index = 0
- 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 = 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 = Datasheet.objects.filter(organisation=orga).filter(validated=False)
- nb_sheets = len(datasheets)
- # And select the current one
- datasheets = [datasheets[start_index]]
- else :
- 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);
- next_index = min(nb_sheets - 1, start_index + 1);
- last_index = max(nb_sheets - 1, 0);
-
- return render_to_response("list_for_orga.html",
- {'datasheets':datasheets, 'orga_name':orga_name,
- '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"]
- # tag_pos indicates the position (from 0) of the tag in the list. NB : it is different from the TagSheet.order in the database.
- tag_pos = int(request.POST["tag_pos"])
- # move can be "u" or "d", for up and down
- move = request.POST["move"]
- # First we get the datasheet's TaggedSheets
- ordered_tags = TaggedSheet.objects.filter(datasheet=Datasheet.objects.filter(id=ds_id)[0]).order_by('order')
- # We get the current TaggedSheet and its's order
- #ts = ordered_tags.filter(tag=Tag.objects.filter(id=tag_id))[0]
- ts = ordered_tags[tag_pos]
- tag_order = ts.order
- # We get the other TaggedSheet that will be moved
- if move == "u" :
- other_ts = ordered_tags[tag_pos - 1]
- elif move == "d" :
- other_ts = ordered_tags[tag_pos + 1]
- else :
- other_ts = None
- # We switch the orders
- if other_ts :
- ts.order = other_ts.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))
-
-
-#@login_required
-def remove_tag_from_list(request=None):
-
- ds_id = request.POST["datasheet_id"]
- tag_id = request.POST["tag_id"]
- # 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 and we delete it
- ts = ds_tags.filter(tag=Tag.objects.filter(id=tag_id))[0]
- ts.delete()
-
- return get_tag_table(request=request, ds_id=ds_id, valid=0)
-
-
-#@login_required
-def validate_wp_link(request=None):
-
- ds_id = request.POST["datasheet_id"]
- tag_id = request.POST["tag_id"]
- if request.POST["activated"] != "false" :
- wp_activ = True
- else :
- wp_activ = False
- # First we get the tag object
- tag = Tag.objects.filter(id=tag_id)[0]
- tag.wikipedia_activated = wp_activ
- tag.save()
-
- return get_tag_table(request=request, ds_id=ds_id, valid=0)
-
-#@login_required
-def modify_tag(request):
-
- tag_id = request.POST["id"]
- tag_label = request.POST["value"]
- ds_id = request.POST["datasheet_id"]
-
- site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable
-
- new_label, status, url, pageid, response = query_wikipedia_title(site, tag_label) #@UnusedVariable
-
- tag = Tag.objects.get(id=tag_id)
-
- if new_label is not None:
- tag.label = new_label
- if status is not None:
- tag.url_status = status
- if url is not None:
- tag.wikipedia_url = url
- tag.wikipedia_activated = True
- if pageid is not None:
- tag.wikipedia_pageid = pageid
-
- tag.save()
-
- return get_tag_table(request=request, ds_id=ds_id, valid=0)
-
-
-#@login_required
-def add_tag(request=None):
-
- ds_id = request.POST["datasheet_id"]
- tag_label = request.POST["value"]
- # We get the wikipedia references for the tag_label
- site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable
- new_label, status, url, pageid, response = query_wikipedia_title(site, tag_label) #@UnusedVariable
- # We get or create the tag object
- tag, created = Tag.objects.get_or_create(label=new_label)
- # We save the datas
- if new_label is not None:
- tag.label = new_label
- tag.original_label = new_label
- if status is not None:
- tag.url_status = status
- if url is not None:
- tag.wikipedia_url = url
- tag.wikipedia_activated = True
- if pageid is not None:
- tag.wikipedia_pageid = pageid
- tag.save()
- # We put the tag at the bottom of the datasheet's tag list
- # if the tag is created or if the tag is not in the list
- ds = Datasheet.objects.filter(id=ds_id)[0]
- list_ts = TaggedSheet.objects.filter(datasheet=ds)
- if created or len(list_ts.filter(tag=tag))==0 :
- new_order = list_ts.aggregate(Max('order'))['order__max'] + 1
- ts = TaggedSheet.objects.create(datasheet=ds, tag=tag, original_order=new_order, order=new_order)
- ts.save()
-
- return get_tag_table(request=request, ds_id=ds_id, valid=0)
+from django.conf import settings
+from django.contrib.auth.decorators import login_required #@UnusedImport
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from hdabo.management.commands.querywikipedia import process_tag
+from hdabo.wp_utils import normalize_tag, query_wikipedia_title
+from models import Organisation, Datasheet, TaggedSheet, Tag
+from wikitools import wiki
+
+
+#@login_required
+def home(request):
+
+ # Get all organisations
+ 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},
+ context_instance=RequestContext(request))
+
+
+#@login_required
+def list_for_orga(request, orga_id=None, valid=None, start_index=None):
+
+ orga = Organisation.objects.get(id=orga_id)
+ orga_name = orga.name
+
+ if start_index :
+ try:
+ start_index = int(start_index)
+ except :
+ start_index = 0
+ 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 = 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 = Datasheet.objects.filter(organisation=orga).filter(validated=False)
+ nb_sheets = len(datasheets)
+ # And select the current one
+ datasheets = [datasheets[start_index]]
+ else :
+ 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);
+ next_index = min(nb_sheets - 1, start_index + 1);
+ last_index = max(nb_sheets - 1, 0);
+
+ return render_to_response("partial/list_for_orga.html",
+ {'datasheets':datasheets, 'orga_name':orga_name,
+ '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"]
+ # tag_pos indicates the position (from 0) of the tag in the list. NB : it is different from the TagSheet.order in the database.
+ tag_pos = int(request.POST["tag_pos"])
+ # move can be "u" or "d", for up and down
+ move = request.POST["move"]
+ # First we get the datasheet's TaggedSheets
+ ordered_tags = TaggedSheet.objects.filter(datasheet=Datasheet.objects.filter(id=ds_id)[0]).order_by('order')
+ # We get the current TaggedSheet and its's order
+ #ts = ordered_tags.filter(tag=Tag.objects.filter(id=tag_id))[0]
+ ts = ordered_tags[tag_pos]
+ tag_order = ts.order
+ # We get the other TaggedSheet that will be moved
+ if move == "u" :
+ other_ts = ordered_tags[tag_pos - 1]
+ elif move == "d" :
+ other_ts = ordered_tags[tag_pos + 1]
+ else :
+ other_ts = None
+ # We switch the orders
+ if other_ts :
+ ts.order = other_ts.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))
+
+
+#@login_required
+def remove_tag_from_list(request=None):
+
+ ds_id = request.POST["datasheet_id"]
+ tag_id = request.POST["tag_id"]
+ # 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 and we delete it
+ ts = ds_tags.filter(tag=Tag.objects.filter(id=tag_id))[0]
+ ts.delete()
+
+ return get_tag_table(request=request, ds_id=ds_id, valid=0)
+
+
+#@login_required
+def validate_wp_link(request=None):
+
+ ds_id = request.POST["datasheet_id"]
+ tag_id = request.POST["tag_id"]
+ if request.POST["activated"] != "false" :
+ wp_activ = True
+ else :
+ wp_activ = False
+ # First we get the tag object
+ tag = Tag.objects.filter(id=tag_id)[0]
+ tag.wikipedia_activated = wp_activ
+ tag.save()
+
+ return get_tag_table(request=request, ds_id=ds_id, valid=0)
+
+#@login_required
+def modify_tag(request):
+
+ tag_id = request.POST["id"]
+ tag_label = request.POST["value"]
+ ds_id = request.POST["datasheet_id"]
+
+ tag = Tag.objects.get(id=tag_id)
+
+ if tag.label != tag_label:
+
+
+ tag.label = tag_label
+
+ site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable
+ new_label, status, url, pageid, response = query_wikipedia_title(site, tag_label) #@UnusedVariable
+
+ if status is not None:
+ tag.url_status = status
+ if url is not None:
+ tag.wikipedia_url = url
+ tag.wikipedia_activated = True
+ else:
+ tag.wikipedia_url = None
+ tag.wikipedia_activated = False
+
+ if pageid is not None:
+ tag.wikipedia_pageid = pageid
+ else:
+ tag.wikipedia_pageid = None
+
+ tag.save()
+
+ return get_tag_table(request=request, ds_id=ds_id, valid=0)
+
+
+#@login_required
+def reset_wikipedia_info(request):
+
+ tag_id = request.POST["tag_id"]
+ ds_id = request.POST["datasheet_id"]
+
+ tag = Tag.objects.get(id=tag_id)
+ site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable
+
+ tag.label = normalize_tag(tag.original_label)
+
+ process_tag(site, tag, 0)
+
+ return get_tag_table(request=request, ds_id=ds_id, valid=0)
--- a/web/hdabo/wp_utils.py Tue Jun 14 12:58:53 2011 +0200
+++ b/web/hdabo/wp_utils.py Tue Jun 14 13:08:22 2011 +0200
@@ -39,3 +39,11 @@
return new_label, status, url, pageid, response
+def normalize_tag(tag):
+ if len(tag) == 0:
+ return tag
+ tag = tag.strip()
+ tag = tag.replace("_", " ")
+ tag = " ".join(tag.split())
+ tag = tag[0].upper() + tag[1:]
+ return tag