-{% extends "telemeta/base.html" %}\r
-{% load telemeta_utils %}\r
-{% load i18n %}\r
-\r
-{% block head_title %}{% trans "Item" %}{{item|prepend:': '}} - {{ block.super }}{% endblock %}\r
-\r
-{% block stylesheets %}\r
-{{ block.super }}\r
-<link rel="stylesheet" type="text/css" href="{% url telemeta-timeside "css/timeside.css" %}" />\r
- <link rel="stylesheet" type="text/css" href="{% url telemeta-timeside "skins/lab/style.css" %}" />\r
- <link rel="stylesheet" type="text/css" href="{% url telemeta-css "player.css" %}" />\r
- {% endblock %}\r
- {% block extra_javascript %}\r
-\r
-<script src="{% url telemeta-js "wz_jsgraphics.js" %}" type="text/javascript"></script>\r
-<script src="{% url telemeta-js "soundmanager2.js" %}" type="text/javascript"></script>\r
-<script src="{% url telemeta-timeside "src/timeside.js" %}" type="text/javascript"></script>\r
-<script src="{% url telemeta-js "playerUtils.js" %}" type="text/javascript"></script>\r
-\r
-<script type="text/javascript">\r
- soundManager.url = '{% url telemeta-swf "./" %}';\r
- soundManager.flashVersion = 9;\r
- soundManager.useMovieStar = true; // enable MP4/M4A/AAC\r
- soundManager.debugMode = false;\r
- set_player_image_url('{% url telemeta-item-visualize item.public_id,visualizer_id,"WIDTH","HEIGHT" %}');\r
- load_player({{ item.approx_duration.as_seconds }});\r
-</script>\r
-\r
-{% endblock %}\r
-\r
-\r
-{% if item %}\r
-{% block submenu %}\r
- <div>\r
- <a href="{% url telemeta-item-detail item.public_id %}"><button>EXIT</button></a>\r
- <a href="{% url telemeta-item-dublincore item.public_id %}">Dublin Core</a>\r
- </div>\r
-{% endblock %}\r
-\r
-{% block content %}\r
-<h3>Item : {{ item }}</h3>\r
-<div class="{% if item.file %}with-rightcol{% endif %}">\r
-\r
- {% if item.file %}\r
- <div id="player_maximized" class="ts-skin-lab">\r
- <a href="#" class="toggle">Minimize</a>\r
- <div class="wazing"></div>\r
- </div>\r
- <div id="rightcol">\r
- <div id="player_minimized" class="ts-skin-lab">\r
- <a href="#" class="toggle">Maximize</a>\r
- <div class="wazing"></div>\r
- <div id="player" class="ts-player">\r
- <div class="ts-viewer">\r
- <div class="ts-wave">\r
- <div class="ts-image-container">\r
- <a href="{% url telemeta-item-export item.public_id,"mp3" %}">\r
- <img class="ts-image" src="{% url telemeta-item-visualize item.public_id,visualizer_id,360,130 %}"\r
- alt="" /></a>\r
- </div>\r
- </div>\r
- </div>\r
- </div>\r
- </div>\r
-\r
- <div class="markers_div" id="markers_div_id"></div>\r
- <div id="item_edit">\r
- <div class="item_visualization" id="item_markers_id">\r
- </div>\r
- <div class="item_visualization" id="item_visualization_id">\r
- <form id="visualizer_id_form" method="get" action="#">\r
- <!--\r
- <select name="visualizer_id" onchange="this.form.submit()">\r
- {% for v in visualizers %}\r
- <option value="{{ v.id }}" {% ifequal v.id visualizer_id %} selected="selected" {% endifequal %}>\r
- {{v.name}}</option>\r
- {% endfor %}\r
- </select>\r
- -->\r
- <select id="visualizer_id" name="visualizer_id">\r
- {% for v in visualizers %}\r
- <option value="{% url telemeta-item-visualize item.public_id,v.id,"WIDTH","HEIGHT" %}">\r
- {{v.name}}</option>\r
- {% endfor %}\r
- </select>\r
- <input type="submit" value="Set" />\r
- </form>\r
-\r
- <div class="analyzer">\r
- <table width="100%">\r
- <tr class="analyzer-title">\r
- <td>Property</td>\r
- <td>Value</td>\r
- <td>Unit</td>\r
- </tr>\r
- {% for analyser in analysers %}\r
- <tr class="analyzer-line">\r
- <td>\r
- {{ analyser.name }}\r
- </td>\r
- <td>\r
- {{ analyser.value }}\r
- </td>\r
- <td>\r
- {{ analyser.unit }}\r
- </td>\r
- </tr>\r
- {% endfor %}\r
- </table>\r
- </div>\r
- <!--\r
- <form method="get" action="#">\r
- <p> Vamp plugin analysis</p>\r
- <select name="vamp_id">\r
- {% for plugin in vamp_plugins %}\r
- <option value="{{ plugin }}" {% ifequal plugin vamp_id %} selected="selected" {% endifequal %}>\r
- {{ plugin }}</option>\r
- {% endfor %}\r
- </select>\r
- <input type="submit" value="Get" />\r
- </form>\r
- -->\r
- </div>\r
- </div>\r
- {% if audio_export_enabled %}\r
- <div class="exporter">\r
- <p>{% trans "Download:" %}\r
- {% for format in export_formats %}\r
- <a href="{% url telemeta-item-export item.public_id,format.extension %}">{{ format.name }}</a>\r
- {% endfor %}</p>\r
- </div>\r
- {% endif %}\r
-\r
- </div>\r
- {% endif %}\r
-\r
-<div class="infos">\r
- <form method="POST" action="">{% csrf_token %}\r
- <table>\r
- {{ formset }}\r
- </table>\r
- <input type="submit" value="save">\r
- </form>\r
-</div>\r
-\r
-</div> <!-- with-rightcol -->\r
-\r
-{% endblock %}\r
-\r
-{% else %}\r
- <p>No such item</p>\r
-{% endif %}\r
+{% extends "telemeta/base.html" %}
+{% load telemeta_utils %}
+{% load i18n %}
+
+{% block head_title %}{% trans "Item" %}{{item|prepend:': '}} - {{ block.super }}{% endblock %}
+
+{% block stylesheets %}
+{{ block.super }}
+<link rel="stylesheet" type="text/css" href="{% url telemeta-timeside "css/timeside.css" %}" />
+ <link rel="stylesheet" type="text/css" href="{% url telemeta-timeside "skins/lab/style.css" %}" />
+ <link rel="stylesheet" type="text/css" href="{% url telemeta-css "player.css" %}" />
+ {% endblock %}
+ {% block extra_javascript %}
+
+<script src="{% url telemeta-js "wz_jsgraphics.js" %}" type="text/javascript"></script>
+<script src="{% url telemeta-js "soundmanager2.js" %}" type="text/javascript"></script>
+<script src="{% url telemeta-timeside "src/timeside.js" %}" type="text/javascript"></script>
+<script src="{% url telemeta-js "playerUtils.js" %}" type="text/javascript"></script>
+
+<script type="text/javascript">
+ soundManager.url = '{% url telemeta-swf "./" %}';
+ soundManager.flashVersion = 9;
+ soundManager.useMovieStar = true; // enable MP4/M4A/AAC
+ soundManager.debugMode = false;
+ set_player_image_url('{% url telemeta-item-visualize item.public_id,visualizer_id,"WIDTH","HEIGHT" %}');
+ load_player({{ item.approx_duration.as_seconds }});
+</script>
+
+{% endblock %}
+
+
+{% if item %}
+{% block submenu %}
+ <div>
+ <a href="{% url telemeta-item-detail item.public_id %}"><button>EXIT</button></a>
+ <a href="{% url telemeta-item-dublincore item.public_id %}">Dublin Core</a>
+ </div>
+{% endblock %}
+
+{% block content %}
+<h3>Item : {{ item }}</h3>
+<div class="{% if item.file %}with-rightcol{% endif %}">
+
+ {% if item.file %}
+ <div id="player_maximized" class="ts-skin-lab">
+ <a href="#" class="toggle">Minimize</a>
+ <div class="wazing"></div>
+ </div>
+ <div id="rightcol">
+ <div id="player_minimized" class="ts-skin-lab">
+ <a href="#" class="toggle">Maximize</a>
+ <div class="wazing"></div>
+ <div id="player" class="ts-player">
+ <div class="ts-viewer">
+ <div class="ts-wave">
+ <div class="ts-image-container">
+ <a href="{% url telemeta-item-export item.public_id,"mp3" %}">
+ <img class="ts-image" src="{% url telemeta-item-visualize item.public_id,visualizer_id,360,130 %}"
+ alt="" /></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="markers_div" id="markers_div_id"></div>
+ <div id="item_edit">
+ <div class="item_visualization" id="item_markers_id">
+ </div>
+ <div class="item_visualization" id="item_visualization_id">
+ <form id="visualizer_id_form" method="get" action="#">
+ <!--
+ <select name="visualizer_id" onchange="this.form.submit()">
+ {% for v in visualizers %}
+ <option value="{{ v.id }}" {% ifequal v.id visualizer_id %} selected="selected" {% endifequal %}>
+ {{v.name}}</option>
+ {% endfor %}
+ </select>
+ -->
+ <select id="visualizer_id" name="visualizer_id">
+ {% for v in visualizers %}
+ <option value="{% url telemeta-item-visualize item.public_id,v.id,"WIDTH","HEIGHT" %}">
+ {{v.name}}</option>
+ {% endfor %}
+ </select>
+ <input type="submit" value="Set" />
+ </form>
+
+ <div class="analyzer">
+ <table width="100%">
+ <tr class="analyzer-title">
+ <td>Property</td>
+ <td>Value</td>
+ <td>Unit</td>
+ </tr>
+ {% for analyser in analysers %}
+ <tr class="analyzer-line">
+ <td>
+ {{ analyser.name }}
+ </td>
+ <td>
+ {{ analyser.value }}
+ </td>
+ <td>
+ {{ analyser.unit }}
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ </div>
+ <!--
+ <form method="get" action="#">
+ <p> Vamp plugin analysis</p>
+ <select name="vamp_id">
+ {% for plugin in vamp_plugins %}
+ <option value="{{ plugin }}" {% ifequal plugin vamp_id %} selected="selected" {% endifequal %}>
+ {{ plugin }}</option>
+ {% endfor %}
+ </select>
+ <input type="submit" value="Get" />
+ </form>
+ -->
+ </div>
+ </div>
+ {% if audio_export_enabled %}
+ <div class="exporter">
+ <p>{% trans "Download:" %}
+ {% for format in export_formats %}
+ <a href="{% url telemeta-item-export item.public_id,format.extension %}">{{ format.name }}</a>
+ {% endfor %}</p>
+ </div>
+ {% endif %}
+
+ </div>
+ {% endif %}
+
+<div class="infos">
+ <form method="POST" action="">{% csrf_token %}
+ <table>
+ {{ form }}
+ </table>
+ <input type="submit" value="save">
+ </form>
+</div>
+
+</div> <!-- with-rightcol -->
+
+{% endblock %}
+
+{% else %}
+ <p>No such item</p>
+{% endif %}
from django.core.context_processors import csrf
from django.forms.models import modelformset_factory
-from telemeta.models import MediaItem, Location, MediaCollection, EthnicGroup
+from telemeta.models import MediaItem, Location, MediaCollection, EthnicGroup, MediaCollectionForm, MediaItemForm
from telemeta.models import dublincore, Enumeration, MediaItemMarker
import telemeta.interop.oai as oai
from telemeta.interop.oaidatasource import TelemetaOAIDataSource
graphers = timeside.core.processors(timeside.api.IGrapher)
decoders = timeside.core.processors(timeside.api.IDecoder)
- encoders= timeside.core.processors(timeside.api.IEncoder)
+ encoders = timeside.core.processors(timeside.api.IEncoder)
analyzers = timeside.core.processors(timeside.api.IAnalyzer)
cache = TelemetaCache(settings.TELEMETA_DATA_CACHE_DIR)
cache_export = TelemetaCache(settings.TELEMETA_EXPORT_CACHE_DIR)
def collection_detail_edit(self, request, public_id, template='telemeta/collection_detail_edit.html'):
collection = MediaCollection.objects.get(public_id=public_id)
- MediaCollectionFormSet = modelformset_factory(MediaCollection)
if request.method == 'POST':
- formset = MediaCollectionFormSet(request.POST, request.FILES, queryset=MediaCollection.objects.filter(code=public_id))
- if formset.is_valid():
- formset.save()
+ form = MediaCollectionForm(request.POST, request.FILES, instance=collection)
+ if form.is_valid():
+ form.save()
else:
- formset = MediaCollectionFormSet(queryset=MediaCollection.objects.filter(code=public_id))
- return render(request, template, {'collection': collection, "formset": formset,})
+ form = MediaCollectionForm(instance=collection)
+
+ return render(request, template, {'collection': collection, "form": form,})
def item_previous_next(self, item):
# Get previous and next items
previous, next = self.item_previous_next(item)
analyzers = self.item_analyze(item)
- MediaItemFormSet = modelformset_factory(MediaItem)
if request.method == 'POST':
- formset = MediaItemFormSet(request.POST, request.FILES, queryset=MediaItem.objects.filter(code=public_id))
- if formset.is_valid():
- formset.save()
+ form = MediaItemForm(request.POST, request.FILES, instance=item)
+ if form.is_valid():
+ form.save()
else:
- formset = MediaItemFormSet(queryset=MediaItem.objects.filter(code=public_id))
+ form = MediaItemForm(instance=item)
return render(request, template,
{'item': item, 'export_formats': formats,
'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers, #FIXME analysers
- 'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), "formset": formset,
+ 'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), "form": form,
'previous' : previous, 'next' : next,
})