Transformé le formulaire de financement en un formulaire AJAX
authorNicolas Cadou <ncadou@cadou.ca>
Thu, 24 Mar 2011 01:12:39 +0000 (21:12 -0400)
committerNicolas Cadou <ncadou@cadou.ca>
Thu, 24 Mar 2011 01:12:39 +0000 (21:12 -0400)
project/dae/templates/dae/financement-full.html [new file with mode: 0644]
project/dae/templates/dae/financement.html
project/dae/templates/dae/poste.html
project/dae/views.py

diff --git a/project/dae/templates/dae/financement-full.html b/project/dae/templates/dae/financement-full.html
new file mode 100644 (file)
index 0000000..132dc93
--- /dev/null
@@ -0,0 +1,9 @@
+{% extends 'base.html' %}
+
+{% block title %}
+  Formulaire financement
+{% endblock %}
+
+{% block main %}
+  {% include 'dae/financement.html' %}
+{% endblock %}
index 158e307..06d3ed7 100644 (file)
@@ -1,19 +1,11 @@
-{% extends 'base.html' %}
+<h2>Financement</h2>
 
-{% block title %}
-  Formulaire financement
-{% endblock %}
-
-{% block main %}
-  <h2>Financement</h2>
-
-  <form action="" method="post">
-    <table cellspacing="0">
-      {{ form.as_table }}
-    </table>
-    <input type="submit" name="save" value="Sauvegarder" />
-    {% if not new %}
-      <input type="submit" name="delete" value="Supprimer" />
-    {% endif %}
-  </form>
-{% endblock %}
+<form action="{% url financement poste_key financement_id %}" method="post">
+  <table cellspacing="0" width="100%">
+    {{ form.as_table }}
+  </table>
+  <input type="submit" name="save" value="Sauvegarder" />
+  {% if not new %}
+    <input type="submit" name="delete" value="Supprimer" />
+  {% endif %}
+</form>
index 8648787..4784db9 100644 (file)
@@ -1,8 +1,12 @@
 {% extends 'base.html' %}
 
 {% block extrahead %}
-  <script type="text/javascript"
-          src="{{ MEDIA_URL }}js/jquery-1.5.1.min.js"></script>
+  <script src="{{ MEDIA_URL }}js/jquery-1.5.1.min.js"
+          type="text/javascript"></script>
+  <script src="{{ MEDIA_URL }}js/jquery-ui-1.8.11.custom.min.js"
+          type="text/javascript"></script>
+  <link href="{{ MEDIA_URL }}/css/redmond/jquery-ui-1.8.11.custom.css"
+        rel="stylesheet" />
 {% endblock %}
 
 {% block title %}
     <input type="submit" name="save" value="Sauvegarder" />
   </form>
 
-  <script type="text/javascript">
-    $('#id_poste').change(function() {
-        window.location = '{% url poste %}/' + $(this).val();
-    });
-  </script>
-
   <h2>Financement</h2>
 
-  <table cellspacing="0">
+  <table cellspacing="0" id="financing">
     <tr>
       <th>Type</th>
       <th>Montant</th>
     {% endfor %}
   </table>
   {% if not new %}
-    <a href="{% url financement poste_key %}">
+    <a href="{% url financement poste_key %}" class="new">
       Ajouter une source de financement
     </a>
   {% endif %}
+
+  <div id="financing-form"></div>
+
+  <script type="text/javascript">
+    $('#id_poste').change(function() {
+        window.location = '{% url poste %}/' + $(this).val();
+    });
+    $('#financing a, a.new').click(function() {
+        $('#financing-form').load($(this).attr('href') + '?ajax=1')
+                            .dialog({
+                                modal: true,
+                                height: 460,
+                                width: 500
+                            });
+        return false;
+    });
+  </script>
 {% endblock %}
index 93efeeb..d5ea303 100644 (file)
@@ -62,11 +62,13 @@ def financement(request, key=None, id=None):
 
     if key:
         type, poste_id = key.split('-')
+        vars['poste_key'] = key
         if type == 'dae':
             poste = get_object_or_404(dae.Poste, pk=poste_id)
             if id:
                 # Financement existant
                 financement = get_object_or_404(dae.PosteFinancement, pk=id)
+                vars['financement_id'] = id
             else:
                 # Nouveau financement
                 financement = dae.PosteFinancement(poste_id=poste_id)
@@ -87,5 +89,8 @@ def financement(request, key=None, id=None):
 
     vars.update(dict(form=form, financement=financement))
 
-    return render_to_response('dae/financement.html', vars,
-                              RequestContext(request))
+    if 'ajax' in request.GET:
+        template = 'dae/financement.html'
+    else:
+        template = 'dae/financement-full.html'
+    return render_to_response(template, vars, RequestContext(request))