--- a/web/hdabo/management/commands/import_csv.py Fri Jul 08 02:10:01 2011 +0200
+++ b/web/hdabo/management/commands/import_csv.py Fri Jul 08 03:12:59 2011 +0200
@@ -184,7 +184,16 @@
if len(tag) == 0:
continue
tag_label = normalize_tag(tag)
- tag_obj, created = Tag.objects.get_or_create(label__iexact=tag_label, defaults={'label':tag_label, 'original_label':tag}) #@UnusedVariable
+ tag_obj = None
+ for t in Tag.objects.filter(label__iexact=tag_label):
+ if tag_obj is None or t.url_status != Tag.TAG_URL_STATUS_DICT['null_result']:
+ tag_obj = t
+ if tag_obj.url_status != Tag.TAG_URL_STATUS_DICT['null_result']:
+ break
+
+ if tag_obj is None:
+ tag_obj = Tag(label=tag_label, original_label=tag)
+
tagged_ds = TaggedSheet(datasheet=datasheet, tag=tag_obj, original_order=i + 1, order=i + 1)
tagged_ds.save()
--- a/web/hdabo/models.py Fri Jul 08 02:10:01 2011 +0200
+++ b/web/hdabo/models.py Fri Jul 08 03:12:59 2011 +0200
@@ -94,7 +94,7 @@
}
label = models.CharField(max_length=1024, unique=False, blank=False, null=False, db_index=True)
- original_label = models.CharField(max_length=1024, unique=True, blank=False, null=False, editable=False)
+ original_label = models.CharField(max_length=1024, unique=False, blank=False, null=False, editable=False)
alias = models.CharField(max_length=1024, unique=False, blank=True, null=True)
category = models.ForeignKey(TagCategory, null=True, blank=True)
wikipedia_url = models.URLField(verify_exists=False, max_length=2048, blank=True, null=True)
--- a/web/hdabo/views.py Fri Jul 08 02:10:01 2011 +0200
+++ b/web/hdabo/views.py Fri Jul 08 03:12:59 2011 +0200
@@ -458,13 +458,23 @@
# - all tags list : POST["datasheet_id"] is null and POST["num_page"] and POST["nb_by_page"] are not null
tag_id = request.POST["tag_id"]
tag = Tag.objects.get(id=tag_id)
- tag.wikipedia_url = None
- tag.wikipedia_pageid = None
- tag.dbpedia_uri = None
- tag.url_status = 0;
- tag.save()
+
- TaggedSheet.objects.filter(tag=tag).update(wikipedia_revision_id=None)
+ if u"datasheet_id" in request.POST :
+ #create another tag almost identical, without the W info
+ new_tag, created = Tag.objects.get_or_create(label=tag.label, original_label=tag.original_label, url_status=Tag.TAG_URL_STATUS_DICT['null_result'], #@UnusedVariable
+ defaults={'label':tag.label, 'original_label': tag.original_label, 'url_status':Tag.TAG_URL_STATUS_DICT['null_result'], 'wikipedia_url': None, 'wikipedia_pageid': None, 'dbpedia_uri': None, 'category':tag.category, 'alias':tag.alias, 'popularity':tag.popularity})
+
+ TaggedSheet.objects.filter(tag=tag, datasheet__hda_id=request.POST["datasheet_id"]).update(tag=new_tag, wikipedia_revision_id=None)
+
+ else:
+ tag.wikipedia_url = None
+ tag.wikipedia_pageid = None
+ tag.dbpedia_uri = None
+ tag.url_status = Tag.TAG_URL_STATUS_DICT['null_result']
+ tag.save()
+
+ TaggedSheet.objects.filter(tag=tag).update(wikipedia_revision_id=None)
if u"datasheet_id" in request.POST :
return get_tag_table(request=request, ds_id=request.POST["datasheet_id"], valid=0)
--- a/web/hdabo/wp_utils.py Fri Jul 08 02:10:01 2011 +0200
+++ b/web/hdabo/wp_utils.py Fri Jul 08 03:12:59 2011 +0200
@@ -101,8 +101,19 @@
# We get the wikipedia references for the tag_label
# We get or create the tag object
- tag, created = Tag.objects.get_or_create(label__iexact=tag_label_normalized, defaults={'label':tag_label_normalized, 'original_label':tag_label})
-
+ tag = None
+ for t in Tag.objects.filter(label__iexact=tag_label_normalized):
+ if tag is None or t.url_status != Tag.TAG_URL_STATUS_DICT['null_result']:
+ tag = t
+ if tag.url_status != Tag.TAG_URL_STATUS_DICT['null_result']:
+ break
+
+ if tag is None:
+ tag = Tag(label=tag_label_normalized, original_label=tag_label)
+ created = True
+ else:
+ created = False
+
site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable
if created: