aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/edit/views.py16
-rw-r--r--mediagoblin/templates/mediagoblin/edit/metadata.html10
2 files changed, 20 insertions, 6 deletions
diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py
index e3dd82ab..496df6b9 100644
--- a/mediagoblin/edit/views.py
+++ b/mediagoblin/edit/views.py
@@ -17,6 +17,7 @@
from datetime import datetime
from itsdangerous import BadSignature
+from pyld import jsonld
from werkzeug.exceptions import Forbidden
from werkzeug.utils import secure_filename
@@ -438,7 +439,20 @@ def change_email(request):
@require_active_login
@get_media_entry_by_id
def edit_metadata(request, media):
- form = forms.EditMetaDataForm()
+ 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()
+ return redirect_obj(request, media)
+
if media.media_metadata:
for row in media.media_metadata.iteritems():
if row[0] == "@context": continue
diff --git a/mediagoblin/templates/mediagoblin/edit/metadata.html b/mediagoblin/templates/mediagoblin/edit/metadata.html
index cbf74106..364cad0d 100644
--- a/mediagoblin/templates/mediagoblin/edit/metadata.html
+++ b/mediagoblin/templates/mediagoblin/edit/metadata.html
@@ -41,7 +41,7 @@
$('table'+list_id+' tr').each(function(row){
id_input = $(this).find('td').find('input');
value_input = $(this).find('td').next().find('input');
- if ((value_input.attr('value') == "") &&
+ if ((value_input.attr('value') == "") &&
(id_input.attr('value') == "")) {
$(this).remove();
}
@@ -52,13 +52,13 @@
var context_lines = {{ form.context | length }};
var metadata_lines = {{ form.media_metadata | length }};
$("#add_new_metadata_row").click(function(){
- add_new_row("#metadata_list",
+ add_new_row("#metadata_list",
metadata_lines,
'media_metadata-');
metadata_lines += 1;
})
$("#add_new_context_row").click(function(){
- add_new_row("#context_list",
+ add_new_row("#context_list",
context_lines,
'context-');
context_lines += 1;
@@ -115,7 +115,7 @@
<td><input type=button value="{% trans %}Add new Row{% endtrans %}"
class="button_action" id="add_new_metadata_row" />
</td>
- <td><input type=submit value="{% trans %}Update Metadata{% endtrans %}"
+ <td><input type=submit value="{% trans %}Update Metadata{% endtrans %}"
class="button_action_highlight" /></td>
</tr>
<tr>
@@ -125,5 +125,5 @@
</table>
{{ csrf_token }}
</form>
-
+
{% endblock mediagoblin_content %}