# HG changeset patch # User ymh # Date 1308313069 -7200 # Node ID e0812bc3ef44d4ff29d9f84283b9624e2b4ea499 # Parent 861a78f74a371f13456222f20c529685f7f4045c update model and fixture - wikipedia_activated - Categories Add check existing tag on datasheet diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/fixtures/datasheet_10.yaml.bz2 Binary file web/hdabo/fixtures/datasheet_10.yaml.bz2 has changed diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/fixtures/datasheet_347.yaml.bz2 Binary file web/hdabo/fixtures/datasheet_347.yaml.bz2 has changed diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/fixtures/datasheet_all.yaml.bz2 Binary file web/hdabo/fixtures/datasheet_all.yaml.bz2 has changed diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/management/commands/querywikipedia.py --- a/web/hdabo/management/commands/querywikipedia.py Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/management/commands/querywikipedia.py Fri Jun 17 14:17:49 2011 +0200 @@ -29,7 +29,6 @@ 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 diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/models.py --- a/web/hdabo/models.py Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/models.py Fri Jun 17 14:17:49 2011 +0200 @@ -67,6 +67,15 @@ def __unicode__(self): return unicode(self.label) + +class TagCategory(models.Model): + label = models.CharField(max_length=512, unique=True, blank=False, null=False) + + def __unicode__(self): + return unicode(self.label) + + class Meta: + verbose_name_plural = "TagCategories" class Tag(models.Model): TAG_URL_STATUS_CHOICES = ( @@ -86,11 +95,11 @@ label = models.CharField(max_length=1024, unique=False, blank=False, null=False) original_label = models.CharField(max_length=1024, unique=True, 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) wikipedia_pageid = models.BigIntegerField(unique=False, blank=True, null=True) url_status = models.IntegerField(choices=TAG_URL_STATUS_CHOICES, blank=True, null=True, default=None) dbpedia_uri = models.URLField(verify_exists=False, max_length=2048, blank=True, null=True) - wikipedia_activated = models.BooleanField(default=False) @Property def url_status_text(): #@NoSelf @@ -98,14 +107,7 @@ return self.TAG_URL_STATUS_CHOICES[self.url_status][1] return locals() - - -class TagCategory(models.Model): - label = models.CharField(max_length=512, unique=True, blank=False, null=False) - - def __unicode__(self): - return unicode(self.label) - + class Location(models.Model): name = models.CharField(max_length=512, unique=False, blank=False, null=False) insee = models.CharField(max_length=5, unique=True, blank=False, null=False) @@ -271,8 +273,6 @@ tag = models.ForeignKey(Tag) original_order = models.IntegerField(default=0) order = models.IntegerField(default=0) - index_note = models.FloatField(default=0.0) - categories = models.ManyToManyField(TagCategory) + index_note = models.FloatField(default=0.0) - diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/static/hdabo/js/hdabo.js --- a/web/hdabo/static/hdabo/js/hdabo.js Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/static/hdabo/js/hdabo.js Fri Jun 17 14:17:49 2011 +0200 @@ -7,23 +7,6 @@ }); // Tag simple operations : activate/unactivate wp link, reset wp info, remove wp link, remove tag from list - $(".activate_wp_cb").click(function(e){ - new_checked = $(this).is(':checked'); - if(new_checked){ - question = "Confirmez-vous l'activation du lien Wikipédia pour le tag \"" + $(this).attr('alt') + "\" ?"; - } else { - question = "Confirmez-vous la désactivation du lien Wikipédia pour le tag \"" + $(this).attr('alt') + "\" ?"; - } - if(confirm(question)){ - //validate_wp_link(this); - update_tag(this); - } - else{ - // Since the click event is dispatched after the checked changed, we change the checked changed if confirm is false. - e.preventDefault(); // unvalidates user's click - $(this).attr('checked', !new_checked); - } - }); $(".reset_wp_info").click(function(e){ if(confirm("Confirmez-vous le rétablissement du label original de ce tag ?")){ update_tag(this); @@ -196,11 +179,6 @@ var url = remove_wp_link_url; var id_tag = $(btn).attr('id'); } - else if ($(btn).is(".activate_wp_cb")) { - var url = validate_wp_link_url; - var id_tag = $(btn).attr('id'); - new_checked = $(btn).is(':checked'); - } // 2 cases : // - ordered tag for one datasheet : $('#datasheet_id') is not null @@ -272,6 +250,10 @@ // And scroll to the bottom $("html").animate({ scrollTop: $(document).height() }, 500); }, + error: function(jqXHR, textStatus, errorThrown) { + resp = $.parseJSON(jqXHR.responseText); + alert(resp.message); + }, complete: function(){ // We empty the input and hide the ok button $("#wp_search").val(""); diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/templates/all_tags.html --- a/web/hdabo/templates/all_tags.html Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/templates/all_tags.html Fri Jun 17 14:17:49 2011 +0200 @@ -15,7 +15,6 @@ 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 %}"; var add_tag_url = "{% url hdabo.views.add_tag %}"; diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/templates/list_for_orga.html --- a/web/hdabo/templates/list_for_orga.html Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/templates/list_for_orga.html Fri Jun 17 14:17:49 2011 +0200 @@ -16,7 +16,6 @@ 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_datasheet %}"; var reset_wp_info_url = "{% url hdabo.views.reset_wikipedia_info %}"; var add_tag_url = "{% url hdabo.views.add_tag %}"; diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/templates/partial/all_tags_table.html --- a/web/hdabo/templates/partial/all_tags_table.html Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/templates/partial/all_tags_table.html Fri Jun 17 14:17:49 2011 +0200 @@ -5,7 +5,6 @@ {% comment %}original_label{% endcomment %} Lien W Facette - Lien W activé Supprimer
le lien W Alias {% for tag in tags %} @@ -27,7 +26,6 @@ - {{tag.label}} {% if tag.alias %}{{tag.alias}}{% endif %} {% endfor %} diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/urls.py --- a/web/hdabo/urls.py Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/urls.py Fri Jun 17 14:17:49 2011 +0200 @@ -22,7 +22,6 @@ url(r'^list/(?P[\w-]+)/(?P[\w-]+)/(?P[\w-]+)/(?P[\w-]+)/$', 'hdabo.views.list_for_orga', name='list_for_orga'), url(r'^tagupdown$', 'hdabo.views.tag_up_down'), url(r'^removetagfromlist$', 'hdabo.views.remove_tag_from_list'), - url(r'^validatewplink$', 'hdabo.views.validate_wp_link'), url(r'^modifytag$', 'hdabo.views.modify_tag'), url(r'^modifytagds$', 'hdabo.views.modify_tag_datasheet'), url(r'^resetwpinfo$', 'hdabo.views.reset_wikipedia_info'), diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/views.py --- a/web/hdabo/views.py Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/views.py Fri Jun 17 14:17:49 2011 +0200 @@ -206,27 +206,6 @@ #@login_required -def validate_wp_link(request=None): - # 2 cases : - # - ordered tag for one datasheet : POST["datasheet_id"] is not null - # - 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"] - 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() - - if u"datasheet_id" in request.POST : - return get_tag_table(request=request, ds_id=request.POST["datasheet_id"], valid=0) - else : - return get_all_tags_table(request=request, num_page=request.POST["num_page"], nb_by_page=request.POST["nb_by_page"]) - - -#@login_required def modify_tag(request): tag_id = request.POST["id"] @@ -245,10 +224,8 @@ 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 @@ -307,7 +284,6 @@ #reset tag info tag.wikipedia_url = None tag.wikipedia_pageid = None - tag.wikipedia_activated = False process_tag(site, tag, 0) @@ -322,11 +298,16 @@ ds_id = request.POST["datasheet_id"] tag_label = request.POST["value"] + + ds = Datasheet.objects.get(id=ds_id) + if tag_label.lower() in [t.label.lower() for t in ds.tags.all()]: + return HttpResponseBadRequest(json.dumps({'error': 'duplicate_tag', 'message': u"Le tag %s existe déjà pour cette fiche." % (tag_label)}), mimetype="application/json") + tag, created = get_or_create_tag(tag_label) # 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.get(id=ds_id) + 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 @@ -343,7 +324,6 @@ # - 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.filter(id=tag_id)[0] - tag.wikipedia_activated = False tag.wikipedia_url = None tag.wikipedia_pageid = None tag.url_status = 0; diff -r 861a78f74a37 -r e0812bc3ef44 web/hdabo/wp_utils.py --- a/web/hdabo/wp_utils.py Fri Jun 17 02:09:37 2011 +0200 +++ b/web/hdabo/wp_utils.py Fri Jun 17 14:17:49 2011 +0200 @@ -69,10 +69,8 @@ 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