Esempio n. 1
0
def edit_metadata(request, media):
    # If media is not processed, return NotFound.
    if not media.state == 'processed':
        return render_404(request)

    form = forms.EditMetaDataForm(request.method == 'POST' and request.form
                                  or None)
    if request.method == "POST" and form.validate():
        metadata_dict = {
            row['identifier']: row['value']
            for row in form.media_metadata.data
        }
        json_ld_metadata = None
        json_ld_metadata = compact_and_validate(metadata_dict)
        media.media_metadata = json_ld_metadata
        media.save()
        return redirect_obj(request, media)

    if len(form.media_metadata) == 0:
        for identifier, value in media.media_metadata.items():
            if identifier == "@context": continue
            form.media_metadata.append_entry({
                'identifier': identifier,
                'value': value
            })

    return render_to_response(request, 'mediagoblin/edit/metadata.html', {
        'form': form,
        'media': media
    })
Esempio n. 2
0
def edit_metadata(request, media):
    form = forms.EditMetaDataForm(request.form)
    if request.method == "POST" and form.validate():
        metadata_dict = dict([(row['identifier'], row['value'])
                              for row in form.media_metadata.data])
        json_ld_metadata = None
        json_ld_metadata = compact_and_validate(metadata_dict)
        media.media_metadata = json_ld_metadata
        media.save()
        return redirect_obj(request, media)

    if len(form.media_metadata) == 0:
        for identifier, value in media.media_metadata.iteritems():
            if identifier == "@context": continue
            form.media_metadata.append_entry({
                'identifier': identifier,
                'value': value
            })

    return render_to_response(request, 'mediagoblin/edit/metadata.html', {
        'form': form,
        'media': media
    })