desactivation lien W dans la fiche
authorymh <ymh.work@gmail.com>
Fri, 08 Jul 2011 03:12:59 +0200
changeset 69 3b4a2c79524e
parent 68 17a1c2a67c50
child 70 c86fa4a358d7
desactivation lien W dans la fiche
web/hdabo/management/commands/import_csv.py
web/hdabo/models.py
web/hdabo/views.py
web/hdabo/wp_utils.py
--- 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: