From: olivier <> Date: Fri, 12 Feb 2010 12:25:46 +0000 (+0000) Subject: allow to override flatpages in the project telemeta-pages/ subdirectory ; turn defaut... X-Git-Tag: 1.1~546 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=31f17b4f6a27eda4b58ed251bc50657e606f5dcd;p=telemeta.git allow to override flatpages in the project telemeta-pages/ subdirectory ; turn defaut home text into a generic one --- diff --git a/INSTALL b/INSTALL index 11db013d..3f517d34 100644 --- a/INSTALL +++ b/INSTALL @@ -14,7 +14,7 @@ The following third party applications or libraries are required: libsndfile1 (>= 1.0.17), python-numpy, python-ctypes (>= 1.0.1), python-scikits-audiolab (>= 0.10), python-setuptools (>= 0.6b3), python-support (>= 0.3), python-scipy, lame (>= 3.98.2), - geopy >= 0.93 (http://code.google.com/p/geopy) + python-docutils (>= 0.5), geopy >= 0.93 (http://code.google.com/p/geopy) :optional: ecasound, festival, par2 diff --git a/telemeta/htdocs/css/telemeta.css b/telemeta/htdocs/css/telemeta.css index a9708264..abd74b7a 100644 --- a/telemeta/htdocs/css/telemeta.css +++ b/telemeta/htdocs/css/telemeta.css @@ -621,7 +621,15 @@ table.listing tbody tr:hover { background: #f7f8fa !important } margin-top: 0.8em; } -img.home-image { - margin: 0 1.5em 1.5em 0; +.rst-content img { + margin: 0 1.5em 1.5em 1.5em; float: left; } + +.rst-content img.align-left { + margin-left: 0 +} + +.rst-content img.align-right { + margin-right: 0 +} diff --git a/telemeta/pages/default/parts/home.rst b/telemeta/pages/default/parts/home.rst index 76d944e2..091f6db1 100644 --- a/telemeta/pages/default/parts/home.rst +++ b/telemeta/pages/default/parts/home.rst @@ -1,16 +1,23 @@ -=================================================== -Archives du Centre de Recherche en Ethnomusicologie -=================================================== +====================================================================================================== +Telemeta : a web frontend to backup, analyse, transcode and stream any audio content with its metadata +====================================================================================================== -Le Centre de Recherche en Ethnomusicologie fait partie du Laboratoire d'Ethnologie et de Sociologie Comparative (UMR 7186). Il se consacre à l'étude des pratiques et des savoirs musicaux, conçus autant comme processus de différentiation socio-culturelle que comme forme d'expression commune à l'Homme. +Telemeta is a web audio archiving program which introduces useful and secure methods to backup, index, transcode, analyse and publish any digitalized audio file with its metadata. It is dedicated to professionnals who wants to easily backup and publish documented sounds from collections of vinyls, magnetic tapes or audio CDs over a strong database, in accordance with open standards. -Cette approche, fondée sur un recueil raisonné des données musicales et un travail simultané d'enquête ethnographique, s'inscrit dans une anthropologie du fait musical envisagé dans ses dimensions socio-culturelles, esthétiques, formelles, acoustiques, kinésiques et finalement cognitives. +Here are the main features of Telemeta: -.. image:: home_img.jpg - :class: home-image +* Secure archiving, editing and publishing of audio files over internet. +* User friendly web frontend including workflows and high level search methods +* Smart dynamical and skinnable audio player (thanks to Timeside and soundmanager2) +* "On the fly" analyzing, transcoding and metadata embedding based on an easy plugin architecture +* Multi-format support : FLAC, OGG, MP3, WAV and more +* GEO Navigator for audio geolocalization +* DublinCore compatibility +* OAI-PMH data provider +* XML serialized backup +* Strong SQL backend -Le Centre investit par ailleurs de nouveaux objets encore peu explorés de la discipline comme le geste musical et chorégraphique, la construction culturelle et cognitive de l'émotion, ou encore les représentations du sonore. Les thématiques développées par les chercheurs, soit individuellement, soit dans le cadre de groupes de recherche, sont régulièrement exposées dans le cadre d'un séminaire interne. +The Telemeta data model is based on 'collections' and 'items'. A collection is described by its metadata and includes original audio items (sounds) and its own metadata. This existing model has been designed to fit the one of the French Centre of Etnomusicology (CREM) but could be easily adapted/overrided to suit other data structures. -Le CREM gère un vaste fonds documentaire (archives musicales et livres) de la plus haute valeur patrimoniale et consulté par un public international. Il est éditeur d'une importante collection de disques. diff --git a/telemeta/pages/default/parts/home_img.jpg b/telemeta/pages/default/parts/home_img.jpg deleted file mode 100644 index 83738342..00000000 Binary files a/telemeta/pages/default/parts/home_img.jpg and /dev/null differ diff --git a/telemeta/pages/fr/parts/home.rst b/telemeta/pages/fr/parts/home.rst deleted file mode 100644 index 76d944e2..00000000 --- a/telemeta/pages/fr/parts/home.rst +++ /dev/null @@ -1,16 +0,0 @@ -=================================================== -Archives du Centre de Recherche en Ethnomusicologie -=================================================== - -Le Centre de Recherche en Ethnomusicologie fait partie du Laboratoire d'Ethnologie et de Sociologie Comparative (UMR 7186). Il se consacre à l'étude des pratiques et des savoirs musicaux, conçus autant comme processus de différentiation socio-culturelle que comme forme d'expression commune à l'Homme. - -Cette approche, fondée sur un recueil raisonné des données musicales et un travail simultané d'enquête ethnographique, s'inscrit dans une anthropologie du fait musical envisagé dans ses dimensions socio-culturelles, esthétiques, formelles, acoustiques, kinésiques et finalement cognitives. - -.. image:: home_img.jpg - :class: home-image - -Le Centre investit par ailleurs de nouveaux objets encore peu explorés de la discipline comme le geste musical et chorégraphique, la construction culturelle et cognitive de l'émotion, ou encore les représentations du sonore. Les thématiques développées par les chercheurs, soit individuellement, soit dans le cadre de groupes de recherche, sont régulièrement exposées dans le cadre d'un séminaire interne. - -Le CREM gère un vaste fonds documentaire (archives musicales et livres) de la plus haute valeur patrimoniale et consulté par un public international. Il est éditeur d'une importante collection de disques. - - diff --git a/telemeta/web/base.py b/telemeta/web/base.py index 3f5154c6..d40cc8d6 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -69,7 +69,7 @@ class WebView(Component): """Render the homepage""" template = loader.get_template('telemeta/index.html') - context = Context({'page_content': pages.get_page_content(request, 'parts/home', True)}) + context = Context({'page_content': pages.get_page_content(request, 'parts/home', ignore_slash_issue=True)}) return HttpResponse(template.render(context)) def collection_detail(self, request, public_id, template=''): diff --git a/telemeta/web/pages.py b/telemeta/web/pages.py index 930b4324..ee091fbd 100644 --- a/telemeta/web/pages.py +++ b/telemeta/web/pages.py @@ -1,10 +1,10 @@ from django.conf import settings import re +import os import telemeta -from os import path import mimetypes -PAGES_ROOT = path.join(path.dirname(telemeta.__file__), 'pages') +PAGES_ROOT = os.path.join(os.path.dirname(telemeta.__file__), 'pages') class PageTextContent(object): def __init__(self, filename, path): @@ -49,35 +49,47 @@ def language_code(request=None): code = cut[0] return code.lower() -def resolve_page_file(language_code, relative_path, ignore_slash_issue=False): - root = path.realpath(path.join(PAGES_ROOT, language_code)) +def project_dir(): + import settings as settings_mod + if '__init__.py' in settings_mod.__file__: + p = os.path.dirname(settings_mod.__file__) + else: + p = settings_mod.__file__ + project_directory, settings_filename = os.path.split(p) + if project_directory == os.curdir or not project_directory: + project_directory = os.getcwd() + + return project_directory + +def resolve_page_file(root, relative_path, ignore_slash_issue=False): + root = os.path.realpath(root) filename = None current = root is_attachment = False for node in relative_path.split('/'): if not node: continue - current = path.join(current, node) + current = os.path.join(current, node) rst = current + '.rst' - if path.isfile(rst): + if os.path.isfile(rst): filename = rst break - elif path.isfile(current): + elif os.path.isfile(current): filename = current is_attachment = True - elif not path.isdir(current): + elif not os.path.isdir(current): break - if not filename and path.isdir(current): - rst = path.join(current, 'index.rst') - if path.isfile(rst): + if not filename and os.path.isdir(current): + rst = os.path.join(current, 'index.rst') + if os.path.isfile(rst): if not ignore_slash_issue and relative_path[-1:] != '/': - raise MalformedPagePath("The relative page path must end with a slash when " + raise MalformedPagePath("The relative page os.path must end with a slash when " "resolving an implicit directory index") filename = rst if filename: - filename = path.realpath(filename) + filename = os.path.realpath(filename) if filename.index(root) != 0: filename = None @@ -91,7 +103,15 @@ def resolve_page_file(language_code, relative_path, ignore_slash_issue=False): def get_page_content(request, relative_path, ignore_slash_issue=False): lang = language_code(request) - return resolve_page_file(lang, relative_path) or resolve_page_file('default', relative_path) + userroot = os.path.join(project_dir(), 'telemeta-pages') + rootlist = [os.path.join(userroot, lang), os.path.join(userroot, 'default'), + os.path.join(PAGES_ROOT, lang), os.path.join(PAGES_ROOT, 'default')] + for root in rootlist: + content = resolve_page_file(root, relative_path, ignore_slash_issue=ignore_slash_issue) + if content: + return content + + return None class MalformedPagePath(Exception): pass