From: yomguy Date: Wed, 21 Mar 2012 13:19:28 +0000 (+0100) Subject: add example, urls, etc.. X-Git-Tag: 0.2~100 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=036103e576fa1812754ff97658808968eb718503;p=teleforma.git add example, urls, etc.. --- diff --git a/__init__.py b/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/example/manage.py b/example/manage.py new file mode 100755 index 00000000..bcdd55e2 --- /dev/null +++ b/example/manage.py @@ -0,0 +1,11 @@ +#!/usr/bin/python +from django.core.management import execute_manager +try: + import settings # Assumed to be in the same directory. +except ImportError: + import sys + sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) + sys.exit(1) + +if __name__ == "__main__": + execute_manager(settings) diff --git a/example/media/items/2012/03/21/CSC_-_Presentation.doc b/example/media/items/2012/03/21/CSC_-_Presentation.doc new file mode 100755 index 00000000..97716c41 Binary files /dev/null and b/example/media/items/2012/03/21/CSC_-_Presentation.doc differ diff --git a/example/media/items/2012/03/21/makingvccall_vcresources_95.pdf b/example/media/items/2012/03/21/makingvccall_vcresources_95.pdf new file mode 100755 index 00000000..9f4aff7f Binary files /dev/null and b/example/media/items/2012/03/21/makingvccall_vcresources_95.pdf differ diff --git a/example/sandbox.sql b/example/sandbox.sql new file mode 100644 index 00000000..bc83a5b4 Binary files /dev/null and b/example/sandbox.sql differ diff --git a/example/settings.py b/example/settings.py new file mode 100644 index 00000000..5513bd96 --- /dev/null +++ b/example/settings.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# Django settings for sandbox project. + +import os + +DEBUG = True +TEMPLATE_DEBUG = DEBUG + +ADMINS = ( + ('Guillaume Pellerin', 'yomguy@parisson.com'), +) + +MANAGERS = ADMINS + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. + 'NAME': 'sandbox.sql', # Or path to database file if using sqlite3. + 'USER': '', # Not used with sqlite3. + 'PASSWORD': '', # Not used with sqlite3. + 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. + 'PORT': '', # Set to empty string for default. Not used with sqlite3. + } +} + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +# On Unix systems, a value of None will cause Django to use the same +# timezone as the operating system. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'Europe/Paris' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +#LANGUAGE_CODE = 'fr_FR' +LANGUAGES = [ ('fr', 'French'), + ('en', 'English'), +] + +SITE_ID = 1 + +# If you set this to False, Django will make some optimizations so as not +# to load the internationalization machinery. +USE_I18N = True + +# If you set this to False, Django will not format dates, numbers and +# calendars according to the current locale +USE_L10N = True + +# Absolute path to the directory that holds media. +# Example: "/home/media/media.lawrence.com/" +MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media/') + +if not os.path.exists(MEDIA_ROOT): + os.mkdir(MEDIA_ROOT) + +# URL that handles the media served from MEDIA_ROOT. Make sure to use a +# trailing slash if there is a path component (optional in other cases). +# Examples: "http://media.lawrence.com", "http://example.com/media/" +MEDIA_URL = '/media/' + +# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a +# trailing slash. +# Examples: "http://foo.com/media/", "/media/". +ADMIN_MEDIA_PREFIX = 'http://localhost/django/media/' + +# Make this unique, and don't share it with anybody. +SECRET_KEY = 'a8l7%06wr2k+3=%#*#@#rvop2mmzko)44%7k(zx%lls^ihm9^5' + +# List of callables that know how to import templates from various sources. +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', +# 'django.template.loaders.eggs.Loader', +) + + +MIDDLEWARE_CLASSES = ( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.locale.LocaleMiddleware', +) + +ROOT_URLCONF = 'example.urls' + +TEMPLATE_DIRS = ( + # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. + '', +) + +INSTALLED_APPS = ( + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.sites', + 'django.contrib.messages', + 'django.contrib.admin', + 'telemeta', + 'jsonrpc', + 'south', + 'teleforma', +) + +TEMPLATE_CONTEXT_PROCESSORS = ( + 'django.core.context_processors.request', + 'django.contrib.auth.context_processors.auth', +) + +TELEMETA_ORGANIZATION = 'Parisson' +TELEMETA_SUBJECTS = ('test', 'telemeta', 'sandbox') +TELEMETA_DESCRIPTION = "Telemeta TEST sandbox" +TELEMETA_GMAP_KEY = 'ABQIAAAArg7eSfnfTkBRma8glnGrlxRVbMrhnNNvToCbZQtWdaMbZTA_3RRGObu5PDoiBImgalVnnLU2yN4RMA' +TELEMETA_CACHE_DIR = MEDIA_ROOT + 'cache' +TELEMETA_EXPORT_CACHE_DIR = TELEMETA_CACHE_DIR + "/export" +TELEMETA_DATA_CACHE_DIR = TELEMETA_CACHE_DIR + "/data" + +TELEMETA_DOWNLOAD_ENABLED = True +TELEMETA_STREAMING_FORMATS = ('mp3', 'webm') +TELEMETA_DOWNLOAD_FORMATS = ('wav', 'mp3', 'webm') +TELEMETA_PUBLIC_ACCESS_PERIOD = 51 +AUTH_PROFILE_MODULE = 'telemeta.userprofile' +SESSION_EXPIRE_AT_BROWSER_CLOSE = False + +EMAIL_HOST = 'localhost' +DEFAULT_FROM_EMAIL = 'webmaster@parisson.com' diff --git a/example/teleforma b/example/teleforma new file mode 120000 index 00000000..f511f2c0 --- /dev/null +++ b/example/teleforma @@ -0,0 +1 @@ +../teleforma/ \ No newline at end of file diff --git a/example/update_schema.sh b/example/update_schema.sh new file mode 100755 index 00000000..05d4a808 --- /dev/null +++ b/example/update_schema.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +./manage.py schemamigration teleforma --auto +./manage.py migrate teleforma + diff --git a/example/urls.py b/example/urls.py new file mode 100644 index 00000000..61390cf6 --- /dev/null +++ b/example/urls.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +from django.conf.urls.defaults import * + +# Uncomment the next two lines to enable the admin: +from django.contrib import admin +admin.autodiscover() + +js_info_dict = { + 'packages': ('telemeta',), +} + +urlpatterns = patterns('', + # Example: + # (r'^sandbox/', include('sandbox.foo.urls')), + + # Uncomment the admin/doc line below and add 'django.contrib.admindocs' + # to INSTALLED_APPS to enable admin documentation: + # (r'^admin/doc/', include('django.contrib.admindocs.urls')), + + # Uncomment the next line to enable the admin: + (r'^admin/django/', include(admin.site.urls)), + + # Telemeta + (r'^telemeta/', include('telemeta.urls')), + + # TeleForma + (r'^', include('teleforma.urls')), + + # Languages + (r'^i18n/', include('django.conf.urls.i18n')), + (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), +) diff --git a/teleforma/admin.py b/teleforma/admin.py new file mode 100644 index 00000000..2fd88619 --- /dev/null +++ b/teleforma/admin.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +from teleforma.models import * +from django.contrib import admin + +class StudentAdmin(admin.ModelAdmin): + search_fields = ['user', 'iej'] + ordering = ['user'] + filter_horizontal = ['courses'] + +admin.site.register(Organization) +admin.site.register(Department) +admin.site.register(Category) +admin.site.register(Course) +admin.site.register(Professor) +admin.site.register(Conference) +admin.site.register(IEJ) +admin.site.register(Student, StudentAdmin) +admin.site.register(Document) +admin.site.register(Video) +admin.site.register(Audio) + + + + + + + + diff --git a/teleforma/templates/teleforma/base.html b/teleforma/templates/teleforma/base.html new file mode 100644 index 00000000..6e2b685b --- /dev/null +++ b/teleforma/templates/teleforma/base.html @@ -0,0 +1,18 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block extra_stylesheets %} + +{% endblock %} + +{% block logo %} +TeleForma +{% endblock %} + +{% block archives %} +
  • {% trans "Courses" %}
  • +{% endblock %} + +{% block geonav %} +
  • {% trans "Messages" %}
  • +{% endblock %} diff --git a/teleforma/urls.py b/teleforma/urls.py new file mode 100644 index 00000000..e7193916 --- /dev/null +++ b/teleforma/urls.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2007-2012 Parisson SARL + +# This software is a computer program whose purpose is to backup, analyse, +# transcode and stream any audio content with its metadata over a web frontend. + +# This software is governed by the CeCILL license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL +# license as circulated by CEA, CNRS and INRIA at the following URL +# "http://www.cecill.info". + +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. + +# In this respect, the user's attention is drawn to the risks associated +# with loading, using, modifying and/or developing or reproducing the +# software by the user in light of its specific status of free software, +# that may mean that it is complicated to manipulate, and that also +# therefore means that it is reserved for developers and experienced +# professionals having in-depth computer knowledge. Users are therefore +# encouraged to load and test the software's suitability as regards their +# requirements in conditions enabling the security of their systems and/or +# data to be ensured and, more generally, to use and operate it in the +# same conditions as regards security. + +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL license and that you accept its terms. +# +# Authors: Guillaume Pellerin + +import os.path +from django.conf.urls.defaults import * +from django.views.generic.simple import redirect_to, direct_to_template +from teleforma.models import * +from teleforma.views import * +from jsonrpc import jsonrpc_site + +htdocs = os.path.dirname(__file__) + '/htdocs' + +urlpatterns = patterns('', + url(r'^$', direct_to_template, {'template': 'teleforma/base.html'}, name="teleforma-home"), + +# CSS+Images (FIXME: for developement only) + url(r'^css/(?P.*)$', 'django.views.static.serve', + {'document_root': htdocs+'/css'}, + name="teleforma-css"), + url(r'images/(?P.*)$', 'django.views.static.serve', + {'document_root': htdocs+'/images'}, + name="teleforma-images"), + url(r'^js/(?P.*)$', 'django.views.static.serve', + {'document_root': htdocs+'/js'}, + name="teleforma-js"), + +# JSON RPC + url(r'json/$', jsonrpc_site.dispatch, name='jsonrpc_mountpoint'), + +)