add check box to indicate that a wk page should be created
authorymh <ymh.work@gmail.com>
Fri, 21 Jun 2013 15:20:24 +0200
changeset 26 758b9289aa9a
parent 25 40f2e62f92a6
child 27 d5f4dde387a9
add check box to indicate that a wk page should be created
src/core/models/term.py
src/jocondelab/forms.py
src/jocondelab/static/jocondelab/js/jocondelab.js
src/jocondelab/templates/jocondelab/term_edit.html
src/jocondelab/urls.py
src/jocondelab/views.py
--- a/src/core/models/term.py	Tue Jun 18 13:55:59 2013 +0200
+++ b/src/core/models/term.py	Fri Jun 21 15:20:24 2013 +0200
@@ -73,10 +73,15 @@
     validation_date = models.DateTimeField(null=True, blank=True, serialize=False)
     validated = models.BooleanField(default=False, db_index=True)
     validator = models.ForeignKey(User, null=True, blank=True, serialize=False)
+    wikipedia_edition = models.BooleanField(default=False, blank=False, null=False) 
     
     @property
     def alternative_labels_str(self):
-        return " | ".join([l.label for l in self.alternative_labels.all()])
+        return " | ".join([l.label for l in self.alternative_labels.all() if l.label != self.label])
+    
+    @property
+    def alternative_labels_list(self):
+        return [l.label for l in self.alternative_labels.all() if l.label != self.label]
     
     @property
     def wikipedia_revision_permalink(self):
--- a/src/jocondelab/forms.py	Tue Jun 18 13:55:59 2013 +0200
+++ b/src/jocondelab/forms.py	Fri Jun 21 15:20:24 2013 +0200
@@ -12,6 +12,10 @@
 class ValidateTermForm(Form):
     term_id = fields.IntegerField(required=True)
     validation_val = fields.BooleanField(required=False)
+
+class WikipediaEditionForm(Form):
+    term_id = fields.IntegerField(required=True)
+    wikipedia_edition = fields.BooleanField(required=False)
     
 class ModifyWpLinkForm(Form):
     term_id = fields.IntegerField(required=True)
--- a/src/jocondelab/static/jocondelab/js/jocondelab.js	Tue Jun 18 13:55:59 2013 +0200
+++ b/src/jocondelab/static/jocondelab/js/jocondelab.js	Fri Jun 21 15:20:24 2013 +0200
@@ -9,6 +9,20 @@
         }
     });
     
+    $(".wikipedia_edition").click(function(e) {
+        console.log(term_wikipedia_edition_url,$(this),$(this).is(':checked'));
+        $.post(term_wikipedia_edition_url,
+            {
+                csrfmiddlewaretoken:global_csrf_token, 
+                term_id:term_id,
+                wikipedia_edition: $(this).is(':checked')
+            },
+            function(data, textStatus) {
+                window.location.reload(true);
+            }
+        );
+    });
+    
     // Wikipedia search management (new tag)
     $("#wp_search").autocomplete({
         source: function( request, response ) {
--- a/src/jocondelab/templates/jocondelab/term_edit.html	Tue Jun 18 13:55:59 2013 +0200
+++ b/src/jocondelab/templates/jocondelab/term_edit.html	Fri Jun 21 15:20:24 2013 +0200
@@ -14,8 +14,9 @@
     var term_id = {{ term.id }};
     var modify_wp_link_url = "{% url 'modify_wp_link' %}";
     var remove_wp_link_url = "{% url 'remove_wp_link' %}";
+    var term_wikipedia_edition_url = "{% url 'edition_wp_link'%}";
     var validate_term_url = "{% url 'validate_term' %}";
-    var term_list_table_url = "{% url 'term_list_table' %}";
+    var term_list_table_url = "{% url 'term_list_table' %}";    
     
     $(document).ready(function(){
         init_term_events();
@@ -71,6 +72,14 @@
         <td class="{{term.url_status_text}}">{{term.label}}</td>
     </tr>
     <tr>
+        <td>{% trans 'alternative labels' %}</td>
+        <td>
+            {% for label in term.alternative_labels_list %}
+                <div>{{ label }}</div>
+            {% endfor %}
+        </td>    
+    </tr>
+    <tr>
         <td>{% trans 'id' %}</td>
         <td>{{term.id}}</td>       
     </tr>
@@ -86,6 +95,9 @@
             <a href="{{term.wikipedia_url}}" target="_blank"><img src="{{STATIC_URL}}jocondelab/img/arrow_right.png" >&nbsp;{{term.wp_label}}</a>
             {% else %}
             <a href="http://fr.wikipedia.org/w/index.php?search={{term.label}}" target="_blank"><img src="{{STATIC_URL}}jocondelab/img/wikipedia_search.png" ></a>
+            </span>
+            <span>
+            {% trans 'Créer page WK' %}&nbsp;: <input type="checkbox" id="{{term.id}}-wikipedia-edition" class="wikipedia_edition" name="wikipedia_edition" {% if term.wikipedia_edition %}checked="checked"{%endif%} {%if term.validated%}disabled="disabled"{% endif %} alt="{% trans 'Need wikipedia article'%}"/>
             {% endif %}
             </span>
             <span>
--- a/src/jocondelab/urls.py	Tue Jun 18 13:55:59 2013 +0200
+++ b/src/jocondelab/urls.py	Fri Jun 21 15:20:24 2013 +0200
@@ -1,8 +1,9 @@
-from .views import TermListView, TermEditView, TermModifyWpLink, TermRemoveWpLink, TermValidate
+from .views import (TermListView, TermEditView, TermModifyWpLink, 
+    TermRemoveWpLink, TermValidate, TermWikipediaEdition)
 from django.conf.urls import patterns, include, url
 from django.contrib import admin
+from django.contrib.auth import urls as auth_url
 from django.contrib.auth.decorators import login_required
-from django.contrib.auth import urls as auth_url
 from jocondelab.views import TermListTableView
 
 js_info_dict = {
@@ -21,6 +22,7 @@
     url(r'^bo/term/(?P<term_id>\d+)/$', login_required(TermEditView.as_view()), name='term'),
     url(r'^bo/term/modify-wp/$', login_required(TermModifyWpLink.as_view()), name='modify_wp_link'),
     url(r'^bo/term/remove-wp/$', login_required(TermRemoveWpLink.as_view()), name='remove_wp_link'),
+    url(r'^bo/term/edition-wp/$', login_required(TermWikipediaEdition.as_view()), name='edition_wp_link'),
     url(r'^bo/term/validate/$', login_required(TermValidate.as_view()), name='validate_term'),    
 )
 
--- a/src/jocondelab/views.py	Tue Jun 18 13:55:59 2013 +0200
+++ b/src/jocondelab/views.py	Fri Jun 21 15:20:24 2013 +0200
@@ -14,6 +14,7 @@
 from django.http.response import HttpResponse
 from django.views.generic import ListView, DetailView, View
 import logging
+from jocondelab.forms import WikipediaEditionForm
 
 logger = logging.getLogger(__name__)
 
@@ -149,7 +150,20 @@
     def process_term(self, request):
         
         label = self.form_values['label']
-        
+                
         wp_process_term(None, self.term, label)
         
-        return HttpResponse(status=204)
\ No newline at end of file
+        return HttpResponse(status=204)
+
+
+class TermWikipediaEdition(TermUpdateView):    
+    
+    form_class = WikipediaEditionForm
+        
+    def process_term(self, request):
+        
+        self.term.wikipedia_edition = self.form_values['wikipedia_edition']
+        self.term.save()
+        
+        return HttpResponse(status=204)
+    
\ No newline at end of file