Nouveau mécanisme pour gérer les publications importées de l'ancien système
authorEric Mc Sween <eric.mcsween@gmail.com>
Mon, 6 Dec 2010 21:38:46 +0000 (16:38 -0500)
committerEric Mc Sween <eric.mcsween@gmail.com>
Mon, 6 Dec 2010 21:38:46 +0000 (16:38 -0500)
Demande #792

auf_savoirs_en_partage/chercheurs/forms.py
auf_savoirs_en_partage/chercheurs/models.py
auf_savoirs_en_partage/media/css/global.css
auf_savoirs_en_partage/media/js/chercheur_edit.js
auf_savoirs_en_partage/templates/chercheurs/chercheur_form.html

index 77d9020..b03736c 100644 (file)
@@ -220,7 +220,7 @@ class GroupesForm(forms.Form):
 class PublicationForm(forms.ModelForm):
     class Meta:
         model = Publication
-        fields = ('auteurs', 'titre', 'revue', 'annee', 'editeur', 'lieu_edition', 'nb_pages', 'url', 'publication_affichage')
+        fields = ('auteurs', 'titre', 'revue', 'annee', 'editeur', 'lieu_edition', 'nb_pages', 'url')
         
 PublicationFormSet = inlineformset_factory(Chercheur, Publication, form=PublicationForm, extra=1)
 
index d51a9a8..e7e15e8 100644 (file)
@@ -245,6 +245,14 @@ class Publication(models.Model):
     def __unicode__(self):
         return self.titre or '(Aucun)'
         
+    def save(self):
+        if self.publication_affichage and (self.auteurs or self.titre or
+                                           self.revue or self.annee or
+                                           self.editeur or self.lieu_edition
+                                           or self.nb_pages or self.url):
+            self.publication_affichage = ''
+        super(Publication, self).save()
+
 class These(models.Model):
     chercheur = models.OneToOneField(Chercheur, primary_key=True)
     titre = models.CharField(max_length=255, verbose_name='Titre de la thèse ou du mémoire')
index 9528da4..ace60dd 100644 (file)
@@ -111,6 +111,7 @@ form ul.errorlist li { list-style:none; }
 
 .delete-row { font-size: 90%; position:absolute; top:5px; right:5px }
 .add-row { font-size: 90%; float:right; margin-right:16px }
+.edit-publication { font-size: 90%; position: absolute; bottom: 5px; right: 5px; cursor: pointer; }
 
 /* Tables */
 
index 9714c81..16ff92c 100644 (file)
                 );
             }
         });
+        var $edit_publication_link = $('<a class="edit-publication">éditer cette publication</a>');
+        var $additional_fields = $('.publication_affichage').next();
+        $additional_fields.after($edit_publication_link).hide();
+        $edit_publication_link.click(function() { $additional_fields.show(); $(this).hide(); });
     });
 
 })();
index f5860e1..7831ed9 100644 (file)
     {{ forms.publications.management_form }}
     {% for form in forms.publications.forms %}
     <fieldset>
+        {% if form.instance.publication_affichage %}
+        <p class="publication_affichage"><strong>Renseignements préalablement enregistrés:</strong><br />
+        {{ form.instance.publication_affichage }}</p>
+        {% endif %}
         <table>
-            {% if form.initial.publication_affichage %}
-            {% form_field form.publication_affichage %}
-            {% else %}
             {% form_field form.auteurs %}
             {% form_field form.titre %}
             {% form_field form.revue %}
             {% form_field form.lieu_edition %}
             {% form_field form.nb_pages %}
             {% form_field form.url %}
-            {% endif %}
         </table>
         {{ form.id }}
         {{ form.DELETE }}