Made some changes so that the metadata editing page works well with the updated
authortilly-Q <nattilypigeonfowl@gmail.com>
Mon, 12 May 2014 17:07:11 +0000 (13:07 -0400)
committertilly-Q <nattilypigeonfowl@gmail.com>
Mon, 12 May 2014 17:13:46 +0000 (13:13 -0400)
metadata tools.

mediagoblin/edit/forms.py
mediagoblin/edit/views.py
mediagoblin/templates/mediagoblin/edit/metadata.html
mediagoblin/templates/mediagoblin/utils/metadata_table.html

index 7ddf603ed28796c1a11ecfd6c172b1c206825f5c..c235598059f60efd444c6839d02246909c93f0a3 100644 (file)
@@ -131,6 +131,3 @@ class EditMetaDataForm(wtforms.Form):
     media_metadata = wtforms.FieldList(
         wtforms.FormField(MetaDataForm, label="")
     )
-    context = wtforms.FieldList(
-        wtforms.FormField(MetaDataForm, label="")
-    )
index 4ab3fe01d49b98e8469fa3e78892d0cd3b7ece30..3402125712ea326b1bf5aa7ce64c5e20f64ae300 100644 (file)
@@ -33,6 +33,7 @@ from mediagoblin.decorators import (require_active_login, active_user_from_url,
                             get_user_collection, user_has_privilege,
                             user_not_banned)
 from mediagoblin.tools.crypto import get_timed_signer_url
+from mediagoblin.tools.metadata import compact_and_validate
 from mediagoblin.tools.mail import email_debug_message
 from mediagoblin.tools.response import (render_to_response,
                                         redirect, redirect_obj, render_404)
@@ -441,32 +442,19 @@ def change_email(request):
 def edit_metadata(request, media):
     form = forms.EditMetaDataForm(request.form)
     if request.method == "POST" and form.validate():
-        context = dict([(row['identifier'],row['value'])
-                            for row in form.context.data])
         metadata_dict = dict([(row['identifier'],row['value'])
                             for row in form.media_metadata.data])
-        # TODO VALIDATE THIS BEFORE WE ENTER IT
-        # validate(metadata_dict)
-        # validate(context)
-        json_ld_metadata = jsonld.compact(metadata_dict, context)
-        # media.media_metadata = json_ld_metadata
-        # media.save()
+        json_ld_metadata = compact_and_validate(metadata_dict)
+        media.media_metadata = json_ld_metadata
+        media.save()
         return redirect_obj(request, media)
 
     if media.media_metadata:
-        for row in media.media_metadata.iteritems():
-            if row[0] == "@context": continue
-            identifier = row[0]
-            # TODO Will change when we revert the metadata branch
-            value = row[1]['@value']
+        for identifier, value in media.media_metadata.iteritems():
+            if identifier == "@context": continue
             form.media_metadata.append_entry({
                 'identifier':identifier,
                 'value':value})
-        for row in media.media_metadata['@context'].iteritems():
-            identifier, value = row[0:2]
-            form.context.append_entry({
-                'identifier':identifier,
-                'value':value})
     else:
         form.media_metadata.append_entry({
             'identifier':"",
@@ -474,9 +462,6 @@ def edit_metadata(request, media):
         form.media_metadata.append_entry({
             'identifier':"",
             'value':""})
-        form.context.append_entry({
-            'identifier':"",
-            'value':""})
     return render_to_response(
         request,
         'mediagoblin/edit/metadata.html',
index d5d1fec502065e5b0d0772ec74598e9433411fdc..b5a52e5fbe34a24ae55fcb3ee5df984728795999 100644 (file)
@@ -49,7 +49,6 @@
     }
 
     $(document).ready(function(){
-        var context_lines = {{ form.context | length }};
         var metadata_lines = {{ form.media_metadata | length }};
         $("#add_new_metadata_row").click(function(){
             add_new_row("#metadata_list",
                         'media_metadata-');
             metadata_lines += 1;
         })
-        $("#add_new_context_row").click(function(){
-            add_new_row("#context_list",
-                        context_lines,
-                        'context-');
-            context_lines += 1;
         })
         $("#clear_empty_rows").click(function(){
-            clear_empty_rows("#context_list");
             clear_empty_rows("#metadata_list");
         })
     })
   <h2>{% trans media_name=media.title -%}
     Metadata for "{{ media_name }}"{% endtrans %}</h2>
   <form action="" method="POST" id="metadata_form">
-<!-- This table holds all the information about the metadata's context.
-     visit http:/wwww.json-ld.org for more information. -->
-  <h3>{% trans %}Context{% endtrans %}</h3>
-  <table class="metadata_editor" id="context_list">
-    {{ wtforms_util.render_fieldlist_as_table_rows(form.context) }}
-  </table>
-
-  <table class="metadata_editor" id="buttons_top">
-    <tr>
-      <th></th>
-      <td><input type=button value="{% trans %}Add new Row{% endtrans %}"
-        class="button_action" id="add_new_context_row" /></td>
-      <th></th>
-      <td></td>
-    </tr>
-  </table>
 
 <!-- This table holds all the information about the media entry's metadata -->
   <h3>{% trans %}Data{% endtrans %}</h3>
index 0c67264a1df6c6c50779c0a4f885e744bc0c179f..b4c37dbd7eff1d084770d006905c14b5f9bad581 100644 (file)
   {%- set metadata=media_entry.media_metadata %}
   {%- set metadata_context=metadata['@context'] %}
   {%- if metadata %}
-      <table prefix="{% for p in metadata_context %}{% if not loop.first %}
-                    {% endif %}{{ p }} {{ metadata_context[p] }}{% endfor -%}">
-        {%- for key, value_dict in metadata.iteritems() if not key=='@context' %}
-          {% if value_dict['@value'] -%}
+      <table context="{{ metadata_context }}">
+        {%- for key, value in metadata.iteritems() if not key=='@context' %}
             <tr>
               <td>{{ format_predicate(key) }}</td>
-              <td property="{{ key }}" typeof="{{ value_dict['@type'] }}">
-                {{ value_dict['@value'] }}</td>
+              <td property="{{ key }}" typeof="{{ value }}">
+                {{ value }}</td>
             </tr>
-          {%- endif -%}
         {%- endfor %}
       </table>
   {% endif %}