Made some changes so that the metadata editing page works well with the updated

metadata tools.
This commit is contained in:
tilly-Q 2014-05-12 13:07:11 -04:00
parent 7bcb3e100c
commit 6b6b1b076b
4 changed files with 10 additions and 54 deletions

View File

@ -131,6 +131,3 @@ class EditMetaDataForm(wtforms.Form):
media_metadata = wtforms.FieldList( media_metadata = wtforms.FieldList(
wtforms.FormField(MetaDataForm, label="") wtforms.FormField(MetaDataForm, label="")
) )
context = wtforms.FieldList(
wtforms.FormField(MetaDataForm, label="")
)

View File

@ -33,6 +33,7 @@ from mediagoblin.decorators import (require_active_login, active_user_from_url,
get_user_collection, user_has_privilege, get_user_collection, user_has_privilege,
user_not_banned) user_not_banned)
from mediagoblin.tools.crypto import get_timed_signer_url 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.mail import email_debug_message
from mediagoblin.tools.response import (render_to_response, from mediagoblin.tools.response import (render_to_response,
redirect, redirect_obj, render_404) redirect, redirect_obj, render_404)
@ -441,32 +442,19 @@ def change_email(request):
def edit_metadata(request, media): def edit_metadata(request, media):
form = forms.EditMetaDataForm(request.form) form = forms.EditMetaDataForm(request.form)
if request.method == "POST" and form.validate(): 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']) metadata_dict = dict([(row['identifier'],row['value'])
for row in form.media_metadata.data]) for row in form.media_metadata.data])
# TODO VALIDATE THIS BEFORE WE ENTER IT json_ld_metadata = compact_and_validate(metadata_dict)
# validate(metadata_dict) media.media_metadata = json_ld_metadata
# validate(context) media.save()
json_ld_metadata = jsonld.compact(metadata_dict, context)
# media.media_metadata = json_ld_metadata
# media.save()
return redirect_obj(request, media) return redirect_obj(request, media)
if media.media_metadata: if media.media_metadata:
for row in media.media_metadata.iteritems(): for identifier, value in media.media_metadata.iteritems():
if row[0] == "@context": continue if identifier == "@context": continue
identifier = row[0]
# TODO Will change when we revert the metadata branch
value = row[1]['@value']
form.media_metadata.append_entry({ form.media_metadata.append_entry({
'identifier':identifier, 'identifier':identifier,
'value':value}) 'value':value})
for row in media.media_metadata['@context'].iteritems():
identifier, value = row[0:2]
form.context.append_entry({
'identifier':identifier,
'value':value})
else: else:
form.media_metadata.append_entry({ form.media_metadata.append_entry({
'identifier':"", 'identifier':"",
@ -474,9 +462,6 @@ def edit_metadata(request, media):
form.media_metadata.append_entry({ form.media_metadata.append_entry({
'identifier':"", 'identifier':"",
'value':""}) 'value':""})
form.context.append_entry({
'identifier':"",
'value':""})
return render_to_response( return render_to_response(
request, request,
'mediagoblin/edit/metadata.html', 'mediagoblin/edit/metadata.html',

View File

@ -49,7 +49,6 @@
} }
$(document).ready(function(){ $(document).ready(function(){
var context_lines = {{ form.context | length }};
var metadata_lines = {{ form.media_metadata | length }}; var metadata_lines = {{ form.media_metadata | length }};
$("#add_new_metadata_row").click(function(){ $("#add_new_metadata_row").click(function(){
add_new_row("#metadata_list", add_new_row("#metadata_list",
@ -57,14 +56,8 @@
'media_metadata-'); 'media_metadata-');
metadata_lines += 1; 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").click(function(){
clear_empty_rows("#context_list");
clear_empty_rows("#metadata_list"); clear_empty_rows("#metadata_list");
}) })
}) })
@ -74,22 +67,6 @@
<h2>{% trans media_name=media.title -%} <h2>{% trans media_name=media.title -%}
Metadata for "{{ media_name }}"{% endtrans %}</h2> Metadata for "{{ media_name }}"{% endtrans %}</h2>
<form action="" method="POST" id="metadata_form"> <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 --> <!-- This table holds all the information about the media entry's metadata -->
<h3>{% trans %}Data{% endtrans %}</h3> <h3>{% trans %}Data{% endtrans %}</h3>

View File

@ -20,16 +20,13 @@
{%- set metadata=media_entry.media_metadata %} {%- set metadata=media_entry.media_metadata %}
{%- set metadata_context=metadata['@context'] %} {%- set metadata_context=metadata['@context'] %}
{%- if metadata %} {%- if metadata %}
<table prefix="{% for p in metadata_context %}{% if not loop.first %} <table context="{{ metadata_context }}">
{% endif %}{{ p }} {{ metadata_context[p] }}{% endfor -%}"> {%- for key, value in metadata.iteritems() if not key=='@context' %}
{%- for key, value_dict in metadata.iteritems() if not key=='@context' %}
{% if value_dict['@value'] -%}
<tr> <tr>
<td>{{ format_predicate(key) }}</td> <td>{{ format_predicate(key) }}</td>
<td property="{{ key }}" typeof="{{ value_dict['@type'] }}"> <td property="{{ key }}" typeof="{{ value }}">
{{ value_dict['@value'] }}</td> {{ value }}</td>
</tr> </tr>
{%- endif -%}
{%- endfor %} {%- endfor %}
</table> </table>
{% endif %} {% endif %}