]> git.parisson.com Git - telemeta.git/commitdiff
fix instrument table edit and update
authoryomguy <yomguy@parisson.com>
Thu, 31 Mar 2011 11:33:48 +0000 (13:33 +0200)
committeryomguy <yomguy@parisson.com>
Thu, 31 Mar 2011 11:33:48 +0000 (13:33 +0200)
telemeta/htdocs/images/plots.png
telemeta/templates/telemeta/instrument_edit.html [new file with mode: 0644]
telemeta/templates/telemeta/instrument_edit_value.html [new file with mode: 0644]
telemeta/templates/telemeta_default/enumeration_edit.html
telemeta/templates/telemeta_default/enumeration_edit_value.html
telemeta/templates/telemeta_default/instrument_edit.html [new file with mode: 0644]
telemeta/templates/telemeta_default/instrument_edit_value.html [new file with mode: 0644]
telemeta/templates/telemeta_default/mediaitem_detail.html
telemeta/urls.py
telemeta/web/base.py

index e8504dff03eddd02e05e3ade27694471cb84f89c..311c95e1da0c26a2c720d0f455cca145882f9990 100644 (file)
Binary files a/telemeta/htdocs/images/plots.png and b/telemeta/htdocs/images/plots.png differ
diff --git a/telemeta/templates/telemeta/instrument_edit.html b/telemeta/templates/telemeta/instrument_edit.html
new file mode 100644 (file)
index 0000000..a612c3f
--- /dev/null
@@ -0,0 +1 @@
+{% extends "telemeta_default/instrument_edit.html" %}
diff --git a/telemeta/templates/telemeta/instrument_edit_value.html b/telemeta/templates/telemeta/instrument_edit_value.html
new file mode 100644 (file)
index 0000000..247ec96
--- /dev/null
@@ -0,0 +1 @@
+{% extends "telemeta_default/instrument_edit_value.html" %}
index 01f41c77d8a57b85a7a3f73495fd58885cb1cab5..de1a2385f70e9e948ed6ff77c93e5ddfa71e42b1 100644 (file)
@@ -6,7 +6,7 @@
 {% block tabcontents %}
  <h4>{% trans "Enumeration" %}: {{ enumeration_name|capfirst }}</h4>
 
- <form class="addnew" id="addenum" method="post"
+ <form class="addnew" id="_addenum" method="POST"
         action="{% url telemeta-enumeration-add enumeration_id %}">{% csrf_token %}
   <fieldset>
    <legend>{% trans "Add entry" %}</legend>
    <div class="buttons">
     <br />
     <a href="#" class="component_icon button icon_add"
-      onclick="document.getElementById('addenum').submit(); return false;">{% trans "Add" %}</a>
+      onclick="document.getElementById('_addenum').submit(); return false;">{% trans "Add" %}</a>
    </div>
   </fieldset>
  </form>
  {% if enumeration_values %}
- <form method="POST" id="editenum" action="{% url telemeta-enumeration-update enumeration_id %}">{% csrf_token %}
+ <form id="_updateenum" method="POST" action="{% url telemeta-enumeration-update enumeration_id %}">{% csrf_token %}
   <table class="listing">
    <thead>
     <tr><th class="sel">&nbsp;</th><th>{% trans "Value"%}</th>
@@ -31,7 +31,7 @@
    </thead><tbody>
     {% for record in enumeration_values %}
     <tr>
-     <td><input type="checkbox" name="sel" value="{{instrument.id}}" /></td>
+     <td><input type="checkbox" name="sel" value="{{record.id}}" /></td>
      <td><a href="{% url telemeta-enumeration-record-edit enumeration_id,record.id %}">
         {{record.value}}</a></td>
     </tr>
@@ -41,7 +41,7 @@
   <div class="buttons">
    <br />
    <a href="#" class="component_icon button icon_cancel"
-      onclick="document.getElementById('editenum').submit(); return false;">{% trans "Remove selected items" %}</a>
+      onclick="document.getElementById('_updateenum').submit(); return false;">{% trans "Remove selected items" %}</a>
   </div>
  </form>
  {% else %}
index a4f1d9a270d9ed0b8321742d7d37c769ab71c13f..bdaefc09d7415a8023aa9091d3600e04cb98f8e5 100644 (file)
     <label>{% trans "Value" %}: <input type="text" name="value" value="{{enumeration_record.value}}" /></label>
 
    </div>
+   <br />
    <div class="buttons">
-    <input type="submit" name="save" value="{% trans 'Save' %}">
-    <input type="submit" name="cancel" value="{% trans 'Cancel' %}">
+        <a href="#" class="component_icon button icon_save"
+   onclick="document.getElementById('addenum').submit(); return false;">{% trans "Save" %}</a>
+        <a href="{% url telemeta-enumeration-edit enumeration_id %}"
+           class="component_icon button icon_cancel">{% trans "Cancel" %}</a>
    </div>
   </fieldset>
  </form>
diff --git a/telemeta/templates/telemeta_default/instrument_edit.html b/telemeta/templates/telemeta_default/instrument_edit.html
new file mode 100644 (file)
index 0000000..dce8389
--- /dev/null
@@ -0,0 +1,52 @@
+{% extends "telemeta/admin.html" %}
+{% load i18n %}
+
+{% block head_title %}{% trans "Instruments" %} - {{ block.super }}{% endblock %}
+
+{% block tabcontents %}
+ <h4>{% trans "Instruments" %}</h4>
+
+ <form class="addnew" id="_addinstru" method="POST"
+        action="{% url telemeta-instrument-add %}">{% csrf_token %}
+  <fieldset>
+   <legend>{% trans "Add entry" %}</legend>
+   <div class="field">
+    <label>{% trans "Name" %}: <input type="text" name="value"></label>
+
+   </div>
+   <div class="buttons">
+    <br />
+    <a href="#" class="component_icon button icon_add"
+      onclick="document.getElementById('_addinstru').submit(); return false;">{% trans "Add" %}</a>
+   </div>
+  </fieldset>
+ </form>
+ {% if instruments %}
+ <form id="_updateinstru" method="POST" action="{% url telemeta-instrument-update %}">{% csrf_token %}
+  <table class="listing">
+   <thead>
+    <tr><th class="sel">&nbsp;</th><th>{% trans "Name"%}</th>
+
+    </tr>
+   </thead><tbody>
+    {% for record in instruments %}
+    <tr>
+     <td><input type="checkbox" name="sel" value="{{record.id}}" /></td>
+     <td><a href="{% url telemeta-instrument-record-edit record.id %}">
+        {{record.name}}</a></td>
+    </tr>
+    {% endfor %}
+    </tbody>
+  </table>
+  <div class="buttons">
+   <br />
+   <a href="#" class="component_icon button icon_cancel"
+      onclick="document.getElementById('_updateinstru').submit(); return false;">{% trans "Remove selected items" %}</a>
+  </div>
+ </form>
+ {% else %}
+    <p class="help">{% trans "This instrument list is empty" %}</p>
+ {% endif %}
+
+  <br style="clear: right"/>
+{% endblock %}
diff --git a/telemeta/templates/telemeta_default/instrument_edit_value.html b/telemeta/templates/telemeta_default/instrument_edit_value.html
new file mode 100644 (file)
index 0000000..2fcf707
--- /dev/null
@@ -0,0 +1,28 @@
+{% extends "telemeta/admin.html" %}
+{% load i18n %}
+
+{% block head_title %}{% trans "Instruments" %} - {{ block.super }}{% endblock %}
+
+{% block tabcontents %}
+ <h4>{% trans "Instruments" %}</h4>
+
+ <form class="mod" id="addinstru" method="post"
+    action="{% url telemeta-instrument-record-update instrument.id %}">{% csrf_token %}
+  <fieldset>
+   <legend>{% trans "Modify an entry" %}</legend>
+   <div class="field">
+    <label>{% trans "Name" %}: <input type="text" name="value" value="{{instrument.name}}" /></label>
+
+   </div>
+   <br />
+   <div class="buttons">
+        <a href="#" class="component_icon button icon_save"
+   onclick="document.getElementById('addinstru').submit(); return false;">{% trans "Save" %}</a>
+        <a href="{% url telemeta-instrument-edit %}"
+           class="component_icon button icon_cancel">{% trans "Cancel" %}</a>
+   </div>
+  </fieldset>
+ </form>
+  <br style="clear: right"/>
+
+{% endblock %}
index ec42812b32e77fc2eb27e955bff0b80663e15a54..7b598c3906733d024114788dbcb34028ee51e38f 100644 (file)
                             {{v.name}}</option>
                     {% endfor %}
                 </select>
-                <input type="submit" value="Set" />
+                <input style="visibility: hidden;" type="submit" value="Set" />
             </form>
 
             <!--
index 72380f5c75ee050b278f97fcdcd1e33cbf1afb23..19f1ff77d5ad178d226c1c7e1230ac4283d7190c 100644 (file)
@@ -134,12 +134,27 @@ urlpatterns = patterns('',
     # administration        
     url(r'^admin/$', web_view.admin_index, name="telemeta-admin"),        
     url(r'^admin/general/$', web_view.admin_general, name="telemeta-admin-general"),        
-    url(r'^admin/enumerations/$', web_view.admin_enumerations, name="telemeta-admin-enumerations"),        
-    url(r'^admin/instruments/$', web_view.admin_instruments, name="telemeta-admin-instruments"),        
+    url(r'^admin/enumerations/$', web_view.admin_enumerations, name="telemeta-admin-enumerations"),       
     
     # instruments administration
-    url(r'^admin/instruments/(?P<instrument_id>[0-9]+)/edit/$', web_view.admin_instrument_edit, name="telemeta-admin-instruments-edit"), 
-    
+    url(r'^admin/instruments/$', 
+        web_view.edit_instrument ,
+        name="telemeta-instrument-edit"),        
+    url(r'^admin/instruments/add/$', 
+        web_view.add_to_instrument,
+        name="telemeta-instrument-add"),        
+    url(r'^admin/instruments/update/$', 
+        web_view.update_instrument,
+        name="telemeta-instrument-update"),        
+    url(r'^admin/instruments/'
+        + r'(?P<value_id>[0-9]+)/$',
+        web_view.edit_instrument_value,
+        name="telemeta-instrument-record-edit"),   
+    url(r'^admin/instruments/'
+        + r'(?P<value_id>[0-9]+)/update/$',
+        web_view.update_instrument_value, 
+        name="telemeta-instrument-record-update"),   
+        
     # enumerations administration
     url(r'^admin/enumerations/(?P<enumeration_id>[0-9a-z]+)/$', 
         web_view.edit_enumeration ,
index cbf73aafeae188e577af03dc41a6757371b47cce..779387df5126cda55d8c053dfaf045bf6db3c1d8 100644 (file)
@@ -626,6 +626,25 @@ class WebView(object):
             extra_context={'criteria': criteria, 'collections_num': collections.count(), 
                 'items_num': items.count(), 'type' : type})
 
+
+
+
+    # ADMIN
+
+    @method_decorator(permission_required('sites.change_site'))
+    def admin_index(self, request):
+        return render(request, 'telemeta/admin.html', self.__get_admin_context_vars())
+
+    @method_decorator(permission_required('sites.change_site'))
+    def admin_general(self, request):
+        return render(request, 'telemeta/admin_general.html', self.__get_admin_context_vars())
+    
+    @method_decorator(permission_required('sites.change_site'))
+    def admin_enumerations(self, request):
+        return render(request, 'telemeta/admin_enumerations.html', self.__get_admin_context_vars())
+
+    
+    # ENUMERATIONS
     def __get_enumerations_list(self):
         from django.db.models import get_models
         models = get_models(telemeta.models)
@@ -643,29 +662,6 @@ class WebView(object):
     def __get_admin_context_vars(self):
         return {"enumerations": self.__get_enumerations_list()}
     
-    @method_decorator(permission_required('sites.change_site'))
-    def admin_index(self, request):
-        return render(request, 'telemeta/admin.html', self.__get_admin_context_vars())
-
-    @method_decorator(permission_required('sites.change_site'))
-    def admin_general(self, request):
-        return render(request, 'telemeta/admin_general.html', self.__get_admin_context_vars())
-    
-    @method_decorator(permission_required('sites.change_site'))
-    def admin_enumerations(self, request):
-        return render(request, 'telemeta/admin_enumerations.html', self.__get_admin_context_vars())
-
-    @method_decorator(permission_required('sites.change_site'))
-    def admin_instruments(self, request):
-        instruments = Instrument.objects.all().order_by('name')
-        return render(request, 'telemeta/admin_instruments.html', {'instruments': instruments})
-
-    @method_decorator(permission_required('telemeta.change_instrument'))
-    def admin_instrument_edit(self, request, instrument_id):
-        instrument = Instrument.objects.get(pk=instrument_id)
-        vars = self.__get_admin_context_vars()
-        render(request, 'telemeta/enumeration_edit_value.html', vars)
-        
     def __get_enumeration(self, id):
         from django.db.models import get_models
         models = get_models(telemeta.models)
@@ -709,8 +705,8 @@ class WebView(object):
         enumeration  = self.__get_enumeration(enumeration_id)
         if enumeration == None:
             raise Http404
-
-        if request.POST.has_key("remove"):
+        
+        if request.method == 'POST':
             enumeration.objects.filter(id__in=request.POST.getlist('sel')).delete()
 
         return self.edit_enumeration(request, enumeration_id)
@@ -731,7 +727,7 @@ class WebView(object):
     @method_decorator(permission_required('telemeta.change_keyword'))
     def update_enumeration_value(self, request, enumeration_id, value_id):        
 
-        if request.POST.has_key("save"):
+        if request.method == 'POST':
             enumeration  = self.__get_enumeration(enumeration_id)
             if enumeration == None:
                 raise Http404
@@ -742,6 +738,50 @@ class WebView(object):
 
         return self.edit_enumeration(request, enumeration_id)
   
+  
+    
+    # INSTRUMENTS
+    @method_decorator(permission_required('telemeta.change_instrument'))
+    def edit_instrument(self, request):        
+        
+        instruments = Instrument.objects.all().order_by('name')
+        if instruments == None:
+            raise Http404
+        return render(request, 'telemeta/instrument_edit.html', {'instruments': instruments})
+
+    @method_decorator(permission_required('telemeta.add_instrument'))
+    def add_to_instrument(self, request):        
+
+        if request.method == 'POST':
+            instrument = Instrument(name=request.POST['value'])
+            instrument.save()
+
+        return self.edit_instrument(request)
+
+    @method_decorator(permission_required('telemeta.change_instrument'))
+    def update_instrument(self, request):        
+        
+        if request.method == 'POST':
+            Instrument.objects.filter(id__in=request.POST.getlist('sel')).delete()
+
+        return self.edit_instrument(request)
+
+    @method_decorator(permission_required('telemeta.change_instrument'))
+    def edit_instrument_value(self, request, value_id):        
+        instrument = Instrument.objects.get(id__exact=value_id)
+        
+        return render(request, 'telemeta/instrument_edit_value.html', {'instrument': instrument})
+
+    @method_decorator(permission_required('telemeta.change_instrument'))
+    def update_instrument_value(self, request, value_id):        
+
+        if request.method == 'POST':       
+            instrument = Instrument.objects.get(id__exact=value_id)
+            instrument.name = request.POST["value"]
+            instrument.save()
+
+        return self.edit_instrument(request)
+        
     def collection_playlist(self, request, public_id, template, mimetype):
         try:
             collection = MediaCollection.objects.get(public_id=public_id)