Made it so the metadata editting page is only one step away from functioning

correctly.
This commit is contained in:
tilly-Q 2014-05-06 17:19:30 -04:00
parent e80596c80e
commit 9919fb08a4
2 changed files with 20 additions and 6 deletions

View File

@ -17,6 +17,7 @@
from datetime import datetime from datetime import datetime
from itsdangerous import BadSignature from itsdangerous import BadSignature
from pyld import jsonld
from werkzeug.exceptions import Forbidden from werkzeug.exceptions import Forbidden
from werkzeug.utils import secure_filename from werkzeug.utils import secure_filename
@ -438,7 +439,20 @@ def change_email(request):
@require_active_login @require_active_login
@get_media_entry_by_id @get_media_entry_by_id
def edit_metadata(request, media): 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: if media.media_metadata:
for row in media.media_metadata.iteritems(): for row in media.media_metadata.iteritems():
if row[0] == "@context": continue if row[0] == "@context": continue

View File

@ -41,7 +41,7 @@
$('table'+list_id+' tr').each(function(row){ $('table'+list_id+' tr').each(function(row){
id_input = $(this).find('td').find('input'); id_input = $(this).find('td').find('input');
value_input = $(this).find('td').next().find('input'); value_input = $(this).find('td').next().find('input');
if ((value_input.attr('value') == "") && if ((value_input.attr('value') == "") &&
(id_input.attr('value') == "")) { (id_input.attr('value') == "")) {
$(this).remove(); $(this).remove();
} }
@ -52,13 +52,13 @@
var context_lines = {{ form.context | length }}; 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",
metadata_lines, metadata_lines,
'media_metadata-'); 'media_metadata-');
metadata_lines += 1; metadata_lines += 1;
}) })
$("#add_new_context_row").click(function(){ $("#add_new_context_row").click(function(){
add_new_row("#context_list", add_new_row("#context_list",
context_lines, context_lines,
'context-'); 'context-');
context_lines += 1; context_lines += 1;
@ -115,7 +115,7 @@
<td><input type=button value="{% trans %}Add new Row{% endtrans %}" <td><input type=button value="{% trans %}Add new Row{% endtrans %}"
class="button_action" id="add_new_metadata_row" /> class="button_action" id="add_new_metadata_row" />
</td> </td>
<td><input type=submit value="{% trans %}Update Metadata{% endtrans %}" <td><input type=submit value="{% trans %}Update Metadata{% endtrans %}"
class="button_action_highlight" /></td> class="button_action_highlight" /></td>
</tr> </tr>
<tr> <tr>
@ -125,5 +125,5 @@
</table> </table>
{{ csrf_token }} {{ csrf_token }}
</form> </form>
{% endblock mediagoblin_content %} {% endblock mediagoblin_content %}