From a8911fd1ad27a7e3be09b4478f8ff83c15b13790 Mon Sep 17 00:00:00 2001 From: yomguy Date: Thu, 3 Mar 2011 16:19:42 +0100 Subject: [PATCH] add instruments admin, improve read from cache --- telemeta/admin.py | 6 +++++- telemeta/cache.py | 6 +++--- .../templates/telemeta/admin_instruments.html | 1 + telemeta/templates/telemeta_default/admin.html | 4 ++++ .../telemeta_default/admin_enumerations.html | 18 +++--------------- .../telemeta_default/admin_instruments.html | 17 +++++++++++++++++ telemeta/urls.py | 1 + telemeta/web/base.py | 11 ++++++++++- 8 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 telemeta/templates/telemeta/admin_instruments.html create mode 100644 telemeta/templates/telemeta_default/admin_instruments.html diff --git a/telemeta/admin.py b/telemeta/admin.py index d72b1dae..dc803b23 100644 --- a/telemeta/admin.py +++ b/telemeta/admin.py @@ -1,7 +1,11 @@ -from telemeta.models.media import MediaCollection, MediaItem +from telemeta.models.media import * +from telemeta.models.instrument import * from telemeta.models.system import User from django.contrib import admin admin.site.register(MediaCollection) admin.site.register(MediaItem) +admin.site.register(MediaPart) +admin.site.register(Playlist) +admin.site.register(Instrument) diff --git a/telemeta/cache.py b/telemeta/cache.py index d52e08d7..2f879e98 100644 --- a/telemeta/cache.py +++ b/telemeta/cache.py @@ -73,15 +73,15 @@ class TelemetaCache(object): def read_stream_bin(self, file): path = self.dir + os.sep + file - chunk_size = 0xFFFF + chunk_size = 0xFFFFF f = open(path, 'r') while True: chunk = f.read(chunk_size) if not len(chunk): + f.close() break yield chunk -# f.close() - + def write_stream_bin(self, chunk, file_object): file_object.write(chunk) diff --git a/telemeta/templates/telemeta/admin_instruments.html b/telemeta/templates/telemeta/admin_instruments.html new file mode 100644 index 00000000..dd7e9600 --- /dev/null +++ b/telemeta/templates/telemeta/admin_instruments.html @@ -0,0 +1 @@ +{% extends "telemeta_default/admin_instruments.html" %} diff --git a/telemeta/templates/telemeta_default/admin.html b/telemeta/templates/telemeta_default/admin.html index 59a5edcb..ed307093 100644 --- a/telemeta/templates/telemeta_default/admin.html +++ b/telemeta/templates/telemeta_default/admin.html @@ -12,8 +12,12 @@ +{% block tab %} +{% endblock tab %} +
{% block tabcontents %} {% endblock %} diff --git a/telemeta/templates/telemeta_default/admin_enumerations.html b/telemeta/templates/telemeta_default/admin_enumerations.html index 1b04a383..238f5b81 100644 --- a/telemeta/templates/telemeta_default/admin_enumerations.html +++ b/telemeta/templates/telemeta_default/admin_enumerations.html @@ -1,15 +1,6 @@ {% extends "telemeta/admin.html" %} -{% block content %} -

Administration

-
- - +{% block tab %}
{% if enumerations %}
    @@ -24,9 +15,6 @@
{% endif %}
+{% endblock tab %} + -
- {% block tabcontents %} - {% endblock %} -
-{% endblock %} diff --git a/telemeta/templates/telemeta_default/admin_instruments.html b/telemeta/templates/telemeta_default/admin_instruments.html new file mode 100644 index 00000000..13c30f5e --- /dev/null +++ b/telemeta/templates/telemeta_default/admin_instruments.html @@ -0,0 +1,17 @@ +{% extends "telemeta/admin.html" %} + +{% block tab %} +
+{% if instruments %} +
    + {% for instrument in instruments %} +
  • {{ instrument|capfirst }}
  • + {% endfor %} +
+{% else %} +No intruments +{% endif %} +
+{% endblock tab %} + + diff --git a/telemeta/urls.py b/telemeta/urls.py index f8c1d244..35c539a5 100644 --- a/telemeta/urls.py +++ b/telemeta/urls.py @@ -124,6 +124,7 @@ urlpatterns = patterns('', url(r'^admin/$', web_view.admin_index, name="telemeta-admin"), url(r'^admin/general/$', web_view.admin_general, name="telemeta-admin-general"), url(r'^admin/enumerations/$', web_view.admin_enumerations, name="telemeta-admin-enumerations"), + url(r'^admin/instruments/$', web_view.admin_instruments, name="telemeta-admin-instruments"), # enumerations administration url(r'^admin/enumerations/(?P[0-9a-z]+)/$', diff --git a/telemeta/web/base.py b/telemeta/web/base.py index a18d5b2e..dec536d7 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -55,7 +55,7 @@ from django.core.context_processors import csrf from django.forms.models import modelformset_factory from telemeta.models import MediaItem, Location, MediaCollection, EthnicGroup, MediaCollectionForm, MediaItemForm -from telemeta.models import dublincore, Enumeration, MediaItemMarker +from telemeta.models import dublincore, Enumeration, MediaItemMarker, Instrument import telemeta.models import telemeta.interop.oai as oai from telemeta.interop.oaidatasource import TelemetaOAIDataSource @@ -477,6 +477,15 @@ class WebView(object): def admin_enumerations(self, request): return render(request, 'telemeta/admin_enumerations.html', self.__get_admin_context_vars()) + @method_decorator(login_required) + def admin_instruments(self, request): + objects = Instrument.objects.all() + instruments = [] + for instrument in objects: + instruments.append(instrument.name) + instruments.sort() + return render(request, 'telemeta/admin_instruments.html', {'instruments': instruments}) + def __get_enumeration(self, id): from django.db.models import get_models models = get_models(telemeta.models) -- 2.39.5