.installed.cfg
.directory
*.e4p
+select2-4.0.5
# Installer logs
pip-log.txt
setuptools
uwsgi
django==1.6.11
-telemeta
south
django-pagination
django-postman
else:
return queryset
+class MediaTranscodedInline(admin.TabularInline):
+ model = MediaTranscoded
+
class MediaAdmin(admin.ModelAdmin):
exclude = ['readers']
search_fields = ['id', 'title', 'course__title', 'course__code']
list_filter = (ConferenceDateBeginFilter, )
+ inlines = [MediaTranscodedInline]
+
class ConferenceAdmin(admin.ModelAdmin):
exclude = ['readers']
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load pagination_tags %}
{% extends "exam/scores.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% load thumbnail %}
-{% load i18n %}{% load telemeta_utils %}{% load teleforma_tags %}{% autoescape off %}Bonjour,
+{% load i18n %}{% load teleforma_tags %}{% autoescape off %}Bonjour,
Votre copie soumise le {{ script.date_added }} en {{ script.course }} pour la séance {{ script.session }} a été rejetée par erreur.
-{% load i18n %}{% load telemeta_utils %}{% load teleforma_tags %}{% autoescape off %}Bonjour,
+{% load i18n %}{% load teleforma_tags %}{% autoescape off %}Bonjour,
Votre copie soumise le {{ script.date_added }} en {{ script.course }} pour la séance {{ script.session }} a été corrigée.
-{% load i18n %}{% load telemeta_utils %}{% load teleforma_tags %}{% autoescape off %}Bonjour,
+{% load i18n %}{% load teleforma_tags %}{% autoescape off %}Bonjour,
Votre copie soumise le {{ script.date_added }} en {{ script.course }} pour la séance {{ script.session }} a été rejetée pour le motif suivant : {% trans script.reject_reason %}.
{% extends "exam/scripts.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% extends "exam/scores.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% load thumbnail %}
{% extends "exam/scripts.html" %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load static %}
{% load nvd3_tags %}
{% extends "teleforma/course_detail.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% load static %}
--- /dev/null
+{% extends "teleforma/course_detail.html" %}
+{% load teleforma_tags %}
+{% load i18n %}
+{% load static %}
+{% load webviewer %}
+{% load thumbnail %}
+
+{% block extra_javascript %}
+ <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
+ <script src="//code.jquery.com/jquery-1.10.2.js"></script>
+ <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
+ <script src="/static/exam/js/exam.js"></script>
+ <!--<script src='{% static "WebViewer/lib/html5/external/jquery-3.2.1.min.js" %}'></script>-->
+ <script src='{% static "WebViewer/lib/WebViewer.min.js" %}'></script>
+ <script>
+ // increase the default animation speed to exaggerate the effect
+ {% if script.comments %}
+ $(window).ready(function(){
+ $( "#dialog_comments" ).dialog( "open");
+ });
+ {% endif %}
+ </script>
+
+
+{% endblock extra_javascript %}
+
+{% block content %}
+
+{% block course %}
+<div class="course">
+
+<div class="course_title">
+
+ <a href="{% url teleforma-desk-period-course period.id script.course.id %}">{{ script.title }}</a>
+
+ <div style="float: right; font-size: 0.9em;">
+ {% if topic.file %}
+ <a id="topic" href="{% url teleforma-document-download topic.id %}" class="component_icon button icon_download"> {% trans "Topic" %}</a>
+ {% endif %}
+ {% if script.score %}
+ <a id="score" href="#" class="component_icon button icon_ok"> {% trans "Score" %} : {{ script.score|floatformat }}/20</a>
+ <a id="opener_comments" href="#" class="component_icon button icon_ok"> {% trans "Comments" %}</a>
+ <a id="opener_print" href="#" class="component_icon button icon_download"> {% trans "Imprimer" %}</a>
+ {% elif script.status == 0 %}
+ <a href="#" class="component_icon button icon_delete">{% trans "Rejected" %}</a>
+ {% else %}
+ {% if user.quotas.all %}
+ <a id="opener_mark" href="#" class="component_icon button icon_edit"> {% trans "Scoring" %}</a>
+ <a id="opener_reject" href="#" class="component_icon button icon_delete"> {% trans "Reject" %}</a>
+ {% else %}
+ <a href="#" class="component_icon button icon_ok"> {% trans "Submitted" %}</a>
+ {% endif %}
+ {% endif %}
+
+ </div>
+
+</div>
+
+<div id="dialog_comments" title="{% trans "Comments" %}" style="width: 400px;">
+ {{ script.comments }}
+</div>
+
+<div id="dialog_mark" title="{% trans "Mark" %}" style="width: 400px;">
+ <form method="post" id="_MarkForm" action="">{% csrf_token %}
+ <table>
+ <tr><td colspan="2">{% for error in form.non_field_errors %}<li class="error">{{ error }}</li>{% endfor %}</td></tr>
+ {% for field in form %}
+ <tr>
+ {% if not field.html_name in mark_fields %}
+ <td>{{ field.label_tag.as_hidden }}</td><td>{{ field.as_hidden }}</td>
+ {% else %}
+ {% if field.html_name == 'score' %}
+ <td>{{ field.label_tag }}:</td><td> {{ field }}/20 <br />(utilisez la virgule pour les décimales)</td>
+ {% else %}
+ <td>{{ field.label_tag }}:</td><td> {{ field }}</td>
+ {% endif %}
+
+ {% endif %}
+ </tr>
+ {% endfor %}
+ </table>
+ </form>
+ <br />
+ <center>
+ <a href="#" id="validate_button" class="component_icon button icon_ok">{% trans "Send" %}</a>
+ </center>
+ <br /><br />
+</div>
+
+<div id="dialog_reject" title="{% trans "Reject" %}">
+<form method="post" id="_RejectForm" action="">{% csrf_token %}
+ <table>
+ <tr><td colspan="2">{% for error in form.non_field_errors %}<li class="error">{{ error }}</li>{% endfor %}</td></tr>
+ {% for field in form %}
+ <tr>
+ {% if not field.html_name in reject_fields %}
+ <td>{{ field.label_tag.as_hidden }}</td><td>{{ field.as_hidden }}</td>
+ {% else %}
+ <tr><td class="error">{{ field.errors }}</td></tr>
+ <td>{{ field.label_tag }}:</td><td> {{ field }}</td>
+ {% endif %}
+ </tr>
+ {% endfor %}
+ </table>
+ </form>
+ <br />
+ <center>
+ <a href="#" id="reject_button" class="component_icon button icon_delete">{% trans "Reject" %}</a>
+ </center>
+ <br /><br />
+</div>
+
+<div id="dialog_print" title="{% trans "Help" %}" style="width: 800px;">
+ <h2>Impression de la copie corrigée</h2>
+ Pour imprimer votre copie corrigée avec les annotations, veuillez :
+ <ul>
+ <li>Téléchager votre copie à l'aide du boutton "flêche vers le bas" du menu au dessus de la copie (Download annotated PDF)</li>
+ <li>Ouvir le fichier PDF obtenu avec <a href="https://get.adobe.com/fr/reader/">Acrobat Reader</a></li>
+ <li>Imprimer le document avec l'option "Document et annotations" comme expliqué <a href="https://helpx.adobe.com/fr/acrobat/kb/print-comments-acrobat-reader.html">ici</a></li>
+ </ul>
+</div>
+
+{% if access_error %}
+ <p>{{ access_error }}</p>
+ <p>{{ message }}</p>
+
+{% else %}
+<br /><br />
+<div class="media">
+ <div class="script">
+ {% if script.has_annotations_file %}
+ <iframe id="box-iframe" style="position:fixed; top:12%; left:0px; bottom:0px; right:0px; width:100%; height:85%; border:none; margin:0; padding:0; z-index:0;" src="{% if user.quotas.all or user.is_superuser %}{{ script_service_url }}$
+ </iframe>
+ {% else %}
+ {% webviewer url=script.unquoted_url uuid=script.uuid %}
+ {% endif %}
+ </div>
+</div>
+
+{% block general_info %}
+{% endblock general_info %}
+
+{% endif %}
+
+</div>
+{% endblock course %}
+{% endblock content %}
+
+
{% extends "exam/scripts.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% load thumbnail %}
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% block head_title %}{% trans "Answers" %} - {{ block.super }}{% endblock %}
from django.forms import ModelForm, TextInput, Textarea
from south.modelsinspector import add_introspection_rules
from django.core.exceptions import ValidationError
+from django.core import exceptions
+from django import forms
+import datetime
+from django.utils.translation import ugettext_lazy as _
+import re
try:
from django.contrib.auth import get_user_model # Django 1.5
+
+
+class Duration(object):
+ """Represent a time duration"""
+ def __init__(self, *args, **kwargs):
+ if len(args) and isinstance(args[0], datetime.timedelta):
+ self._delta = datetime.timedelta(days=args[0].days, seconds=args[0].seconds)
+ else:
+ self._delta = datetime.timedelta(*args, **kwargs)
+
+ def __decorate(self, method, other):
+ if isinstance(other, Duration):
+ res = method(other._delta)
+ else:
+ res = method(other)
+ if type(res) == datetime.timedelta:
+ return Duration(res)
+
+ return res
+
+ def __add__(self, other):
+ return self.__decorate(self._delta.__add__, other)
+
+ def __nonzero__(self):
+ return self._delta.__nonzero__()
+
+ def __str__(self):
+ hours = self._delta.days * 24 + self._delta.seconds / 3600
+ minutes = (self._delta.seconds % 3600) / 60
+ seconds = self._delta.seconds % 60
+
+ return "%.2d:%.2d:%.2d" % (hours, minutes, seconds)
+
+ @staticmethod
+ def fromstr(str):
+ if not str:
+ return Duration()
+
+ test = re.match('^([0-9]+)(?::([0-9]+)(?::([0-9]+))?)?$', str)
+ if test:
+ groups = test.groups()
+ try:
+ hours = minutes = seconds = 0
+ if groups[0]:
+ hours = int(groups[0])
+ if groups[1]:
+ minutes = int(groups[1])
+ if groups[2]:
+ seconds = int(groups[2])
+
+ return Duration(hours=hours, minutes=minutes, seconds=seconds)
+ except TypeError:
+ print groups
+ raise
+ else:
+ raise ValueError("Malformed duration string: " + str)
+
+ def as_seconds(self):
+ return self._delta.days * 24 * 3600 + self._delta.seconds
+
+
+def normalize_field(args, default_value=None):
+ """Normalize field constructor arguments, so that the field is marked blank=True
+ and has a default value by default.
+
+ This behaviour can be disabled by passing the special argument required=True.
+
+ The default value can also be overriden with the default=value argument.
+ """
+ required = False
+ if args.has_key('required'):
+ required = args['required']
+ args.pop('required')
+
+ args['blank'] = not required
+
+ if not required:
+ if not args.has_key('default'):
+ if args.get('null'):
+ args['default'] = None
+ elif default_value is not None:
+ args['default'] = default_value
+
+ return args
+
+
+# The following is based on Django TimeField
+class DurationField(models.Field):
+ """Duration Django model field. Essentially the same as a TimeField, but
+ with values over 24h allowed.
+
+ The constructor arguments are also normalized with normalize_field().
+ """
+
+ description = _("Duration")
+
+ __metaclass__ = models.SubfieldBase
+
+ default_error_messages = {
+ 'invalid': _('Enter a valid duration in HH:MM[:ss] format.'),
+ }
+
+ def __init__(self, *args, **kwargs):
+ super(DurationField, self).__init__(*args, **normalize_field(kwargs, '0'))
+
+ def db_type(self):
+ return 'int'
+
+ def to_python(self, value):
+ if value is None:
+ return None
+ if isinstance(value, int) or isinstance(value, long):
+ return Duration(seconds=value)
+ if isinstance(value, datetime.time):
+ return Duration(hours=value.hour, minutes=value.minute, seconds=value.second)
+ if isinstance(value, datetime.datetime):
+ # Not usually a good idea to pass in a datetime here (it loses
+ # information), but this can be a side-effect of interacting with a
+ # database backend (e.g. Oracle), so we'll be accommodating.
+ return self.to_python(value.time())
+ else:
+ value = str(value)
+ try:
+ return Duration.fromstr(value)
+ except ValueError:
+ raise exceptions.ValidationError(self.error_messages['invalid'])
+
+ def get_prep_value(self, value):
+ return self.to_python(value)
+
+ def get_db_prep_value(self, value, connection=None, prepared=False):
+ # Casts times into the format expected by the backend
+ try:
+ return value.as_seconds()
+ except:
+ return value
+
+ def value_to_string(self, obj):
+ val = self._get_val_from_obj(obj)
+ if val is None:
+ data = ''
+ else:
+ data = unicode(val)
+ return data
+
+ def formfield(self, **kwargs):
+ defaults = {'form_class': forms.CharField}
+ defaults.update(kwargs)
+ return super(DurationField, self).formfield(**defaults)
\ No newline at end of file
from captcha.fields import CaptchaField
from teleforma.models.core import Course, Professor
+from teleforma.models.profile import UserProfile
from tinymce.widgets import TinyMCE
from itertools import cycle
from django.core.files.images import get_image_dimensions
# fields = ['first_name', 'last_name', 'email', 'accept']
+class UserProfileForm(ModelForm):
+ class Meta:
+ model = UserProfile
+
+
class UserForm(ModelForm):
# profile
address = CharField(label=_('Address'), max_length=255)
#, fuzzy
#| msgid "written speciality"
msgid "written_speciality"
-msgstr "spécialité écrit"
+msgstr "Spécialité écrit"
#: models/core.py:179
#, fuzzy
#, fuzzy
#| msgid "platform only"
msgid "e-learning platform only"
-msgstr "plateforme seulement"
+msgstr "Plateforme seulement"
#: models/crfpa.py:163
msgid "application fees"
def init_password_email(self, user):
site = Site.objects.get_current()
- ctx_dict = {'site': site, 'organization': settings.TELEMETA_ORGANIZATION, 'usr': user}
+ ctx_dict = {'site': site, 'organization': settings.TELEFORMA_ORGANIZATION, 'usr': user}
subject = render_to_string(self.subject_template, ctx_dict)
subject = ''.join(subject.splitlines())
message = render_to_string(self.message_template, ctx_dict)
def init_password_email(self, user):
site = Site.objects.get_current()
- ctx_dict = {'site': site, 'organization': settings.TELEMETA_ORGANIZATION, 'usr': user}
+ ctx_dict = {'site': site, 'organization': settings.TELEFORMA_ORGANIZATION, 'usr': user}
subject = render_to_string(self.subject_template, ctx_dict)
subject = ''.join(subject.splitlines())
message = render_to_string(self.message_template, ctx_dict)
def init_password_email(self, user):
site = Site.objects.get_current()
- ctx_dict = {'site': site, 'organization': settings.TELEMETA_ORGANIZATION, 'usr': user}
+ ctx_dict = {'site': site, 'organization': settings.TELEFORMA_ORGANIZATION, 'usr': user}
subject = render_to_string(self.subject_template, ctx_dict)
subject = ''.join(subject.splitlines())
message = render_to_string(self.message_template, ctx_dict)
def email(self, student, kind, payment):
site = Site.objects.get_current()
- ctx_dict = {'site': site, 'organization': settings.TELEMETA_ORGANIZATION, 'student': student, 'payment': payment, 'period': student.period }
+ ctx_dict = {'site': site, 'organization': settings.TELEFORMA_ORGANIZATION, 'student': student, 'payment': payment, 'period': student.period }
subject_template = 'payment/email_%s_subject.txt' % kind
message_template = 'payment/email_%s.txt' % kind
subject = render_to_string(subject_template, ctx_dict)
mode = 'E-learning'
else:
mode = 'Presentielle'
- ctx_dict = {'site': site, 'organization': settings.TELEMETA_ORGANIZATION, 'student': student, 'mode': mode}
+ ctx_dict = {'site': site, 'organization': settings.TELEFORMA_ORGANIZATION, 'student': student, 'mode': mode}
subject_template = 'teleforma/messages/email_inscr_sujet.txt'
message_template = 'teleforma/messages/email_inscription-new.txt'
subject = render_to_string(subject_template, ctx_dict)
mode = 'Presentielle'
message = student.period.message_local
- ctx_dict = {'site': site, 'organization': settings.TELEMETA_ORGANIZATION, 'student': student, 'mode': mode}
+ ctx_dict = {'site': site, 'organization': settings.TELEFORMA_ORGANIZATION, 'student': student, 'mode': mode}
subject_template = 'teleforma/messages/email_inscr_sujet.txt'
subject = render_to_string(subject_template, ctx_dict)
subject = ''.join(subject.splitlines())
--- /dev/null
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # self.backwards(orm)
+
+
+ # Adding model 'MediaTranscoded'
+ db.create_table('teleforma_media_transcoded', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('item', self.gf('django.db.models.fields.related.ForeignKey')(related_name='transcoded', to=orm['teleforma.Media'])),
+ ('mimetype', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
+ ('date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
+ ('status', self.gf('django.db.models.fields.IntegerField')(default=1)),
+ ('file', self.gf('django.db.models.fields.files.FileField')(max_length=1024, blank=True)),
+ ))
+ db.send_create_signal('teleforma', ['MediaTranscoded'])
+
+
+ # Changing field 'Period.department'
+ db.alter_column('teleforma_period', 'department_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['teleforma.Department']))
+ # Adding field 'Media.file'
+ db.add_column('teleforma_media', 'file',
+ self.gf('django.db.models.fields.files.FileField')(max_length=1024, null=True),
+ keep_default=False)
+
+ # Adding field 'Media.poster_file'
+ db.add_column('teleforma_media', 'poster_file',
+ self.gf('django.db.models.fields.files.FileField')(max_length=255, null=True),
+ keep_default=False)
+
+
+ # Changing field 'Document.file'
+ db.alter_column('teleforma_document', 'filename', self.gf('django.db.models.fields.files.FileField')(max_length=1024, db_column='filename'))
+
+ # Changing field 'DocumentSimple.file'
+ db.alter_column('teleforma_document_simple', 'filename', self.gf('django.db.models.fields.files.FileField')(max_length=1024, db_column='filename'))
+
+ # Changing field 'AEStudent.user'
+ db.alter_column('teleforma_ae_student', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['auth.User']))
+
+ # Changing field 'AEStudent.platform_only'
+ db.alter_column('teleforma_ae_student', 'platform_only', self.gf('django.db.models.fields.BooleanField')())
+
+ if not db.dry_run:
+ from teleforma.models.core import Media, MediaTranscoded
+ from telemeta.models.media import MediaRelated
+ from django.core.exceptions import ObjectDoesNotExist
+
+ for media_item in Media.objects.filter(mime_type="video/webm").all():
+ # set file directly on mediaitem
+ media_item.file = media_item.item.file
+ # get poster file
+ try:
+ media_item.poster_file = media_item.item.related.filter(title="preview")[0].file
+ except IndexError:
+ pass
+
+ media_item.save()
+
+ # add media transcoded
+ for item in Media.objects.filter(conference=media_item.conference, course=media_item.course, course_type=media_item.course_type, period=media_item.period):
+ if item.id == media_item.id:
+ continue
+
+ transcoded = MediaTranscoded(
+ item=media_item,
+ mimetype=item.mime_type,
+ date_added=item.date_added,
+ status=5,
+ file=item.item.file
+ )
+ transcoded.save()
+ # remove transcoded item from Media
+ item.delete()
+
+ def backwards(self, orm):
+ # Deleting model 'MediaTranscoded'
+ db.delete_table('teleforma_media_transcoded')
+
+
+ # Changing field 'Period.department'
+ db.alter_column('teleforma_period', 'department_id', self.gf('telemeta.models.core.ForeignKey')(null=True, to=orm['teleforma.Department']))
+ # Deleting field 'Media.file'
+ db.delete_column('teleforma_media', 'file')
+
+ # Deleting field 'Media.poster_file'
+ db.delete_column('teleforma_media', 'poster_file')
+
+
+ # Changing field 'Document.file'
+ db.alter_column('teleforma_document', 'filename', self.gf('telemeta.models.core.FileField')(max_length=1024, db_column='filename'))
+
+ # Changing field 'DocumentSimple.file'
+ db.alter_column('teleforma_document_simple', 'filename', self.gf('telemeta.models.core.FileField')(max_length=1024, db_column='filename'))
+
+ # Changing field 'AEStudent.user'
+ db.alter_column('teleforma_ae_student', 'user_id', self.gf('telemeta.models.core.ForeignKey')(unique=True, to=orm['auth.User']))
+
+ # Changing field 'AEStudent.platform_only'
+ db.alter_column('teleforma_ae_student', 'platform_only', self.gf('telemeta.models.core.BooleanField')())
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'quiz.category': {
+ 'Meta': {'object_name': 'Category'},
+ 'category': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ 'quiz.quiz': {
+ 'Meta': {'object_name': 'Quiz'},
+ 'answers_at_end': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['quiz.Category']", 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'draft': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'exam_paper': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'fail_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'max_questions': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'pass_mark': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'random_order': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'single_attempt': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'success_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '60'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'max_length': '60'})
+ },
+ 'teleforma.aestudent': {
+ 'Meta': {'ordering': "['user__last_name']", 'object_name': 'AEStudent', 'db_table': "'teleforma_ae_student'"},
+ 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'ae_student'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'ae_student'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+ 'platform_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ae_student'", 'unique': 'True', 'to': "orm['auth.User']"})
+ },
+ 'teleforma.appointment': {
+ 'Meta': {'unique_together': "(('slot', 'jury', 'slot_nb'),)", 'object_name': 'Appointment'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'jury': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.AppointmentJury']"}),
+ 'slot': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'to': "orm['teleforma.AppointmentSlot']"}),
+ 'slot_nb': ('django.db.models.fields.IntegerField', [], {}),
+ 'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'appointments'", 'to': "orm['auth.User']"})
+ },
+ 'teleforma.appointmentjury': {
+ 'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentJury', 'db_table': "'teleforma_appointment_jury'"},
+ 'address': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'slot': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'jurys'", 'null': 'True', 'to': "orm['teleforma.AppointmentSlot']"})
+ },
+ 'teleforma.appointmentperiod': {
+ 'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentPeriod', 'db_table': "'teleforma_appointment_period'"},
+ 'appointment_mail_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'appointment_slot_size': ('django.db.models.fields.IntegerField', [], {'default': '40'}),
+ 'book_delay': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'cancel_delay': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'enable_appointment': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'end': ('django.db.models.fields.DateField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'appointment_periods'", 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+ 'start': ('django.db.models.fields.DateField', [], {})
+ },
+ 'teleforma.appointmentslot': {
+ 'Meta': {'ordering': "('id',)", 'object_name': 'AppointmentSlot', 'db_table': "'teleforma_appointment_slot'"},
+ 'appointment_period': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'slots'", 'null': 'True', 'to': "orm['teleforma.AppointmentPeriod']"}),
+ 'date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nb': ('django.db.models.fields.IntegerField', [], {}),
+ 'start': ('django.db.models.fields.TimeField', [], {})
+ },
+ 'teleforma.conference': {
+ 'Meta': {'ordering': "['-date_begin']", 'object_name': 'Conference'},
+ 'comment': ('teleforma.fields.ShortTextField', [], {'max_length': '255', 'blank': 'True'}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}),
+ 'course_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.CourseType']"}),
+ 'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'professor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Professor']"}),
+ 'public_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+ 'room': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference'", 'null': 'True', 'to': "orm['teleforma.Room']"}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'default': '2'}),
+ 'streaming': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'web_class_group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conferences'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.WebClassGroup']"})
+ },
+ 'teleforma.corrector': {
+ 'Meta': {'ordering': "['user__last_name', '-date_registered']", 'object_name': 'Corrector'},
+ 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'pay_status': ('django.db.models.fields.CharField', [], {'default': "'honoraire'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'corrector'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'corrector'", 'unique': 'True', 'to': "orm['auth.User']"})
+ },
+ 'teleforma.course': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Course'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Department']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'has_exam_scripts': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'last_professor_sent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Professor']", 'null': 'True', 'blank': 'True'}),
+ 'magistral': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'obligation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'oral_1': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'oral_2': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'oral_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'courses'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+ 'procedure': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'quiz': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['quiz.Quiz']", 'null': 'True', 'blank': 'True'}),
+ 'synthesis_note': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'title_tweeter': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'written_speciality': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'teleforma.coursegroup': {
+ 'Meta': {'object_name': 'CourseGroup', 'db_table': "'teleforma_course_group'"},
+ 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'course_groups'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.coursetype': {
+ 'Meta': {'object_name': 'CourseType', 'db_table': "'teleforma_course_type'"},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.department': {
+ 'Meta': {'object_name': 'Department'},
+ 'default_period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'departments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'domain': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'department'", 'to': "orm['teleforma.Organization']"})
+ },
+ 'teleforma.discount': {
+ 'Meta': {'object_name': 'Discount', 'db_table': "'teleforma_discounts'"},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discounts'", 'to': "orm['teleforma.Student']"}),
+ 'value': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'teleforma.document': {
+ 'Meta': {'ordering': "['-date_added']", 'object_name': 'Document'},
+ 'annal_year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}),
+ 'course_type': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'document'", 'blank': 'True', 'to': "orm['teleforma.CourseType']"}),
+ 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'iej': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.IEJ']"}),
+ 'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'documents'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+ 'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+ 'session': ('django.db.models.fields.CharField', [], {'default': "'1'", 'max_length': '16'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'to': "orm['teleforma.DocumentType']"}),
+ 'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+ },
+ 'teleforma.documentsimple': {
+ 'Meta': {'ordering': "['-date_added']", 'object_name': 'DocumentSimple', 'db_table': "'teleforma_document_simple'"},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'document_simple'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'document_simple'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+ },
+ 'teleforma.documenttype': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'DocumentType', 'db_table': "'teleforma_document_type'"},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'for_corrector': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'teleforma.groupedmessage': {
+ 'Meta': {'object_name': 'GroupedMessage', 'db_table': "'teleforma_grouped_messages'"},
+ 'date_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'grouped_messages'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.StudentGroup']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'message': ('django.db.models.fields.TextField', [], {}),
+ 'sender': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'grouped_messages'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'sent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'subject': ('django.db.models.fields.CharField', [], {'max_length': '119'}),
+ 'to_send': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'teleforma.home': {
+ 'Meta': {'object_name': 'Home'},
+ 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'modified_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'home_texts'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Period']"}),
+ 'text': ('tinymce.models.HTMLField', [], {'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'default': '"Page d\'accueil"', 'max_length': '255'}),
+ 'video': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teleforma.Media']", 'null': 'True', 'blank': 'True'})
+ },
+ 'teleforma.iej': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'IEJ'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.livestream': {
+ 'Meta': {'object_name': 'LiveStream', 'db_table': "'teleforma_live_stream'"},
+ 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'livestream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'server': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'livestream'", 'to': "orm['teleforma.StreamingServer']"}),
+ 'stream_type': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'streaming': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'teleforma.media': {
+ 'Meta': {'ordering': "['-date_modified', '-conference__session']", 'object_name': 'Media'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Conference']"}),
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'course_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.CourseType']"}),
+ 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'item': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['telemeta.MediaItem']"}),
+ 'mime_type': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'poster_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True'}),
+ 'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'weight': ('django.db.models.fields.IntegerField', [], {'default': '1', 'blank': 'True'})
+ },
+ 'teleforma.mediatranscoded': {
+ 'Meta': {'object_name': 'MediaTranscoded', 'db_table': "'teleforma_media_transcoded'"},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'item': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'transcoded'", 'to': "orm['teleforma.Media']"}),
+ 'mimetype': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'})
+ },
+ 'teleforma.newsitem': {
+ 'Meta': {'object_name': 'NewsItem'},
+ 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'to': "orm['teleforma.Course']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'to': "orm['auth.User']"}),
+ 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsitems'", 'null': 'True', 'to': "orm['teleforma.Period']"}),
+ 'text': ('tinymce.models.HTMLField', [], {}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.optionalfee': {
+ 'Meta': {'object_name': 'OptionalFee', 'db_table': "'teleforma_optional_fees'"},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'optional_fees'", 'to': "orm['teleforma.Student']"}),
+ 'value': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'teleforma.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'teleforma.parameters': {
+ 'Meta': {'object_name': 'Parameters'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inscription_text': ('tinymce.models.HTMLField', [], {'blank': 'True'})
+ },
+ 'teleforma.payback': {
+ 'Meta': {'object_name': 'Payback', 'db_table': "'teleforma_paybacks'"},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'paybacks'", 'to': "orm['teleforma.Student']"}),
+ 'value': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'teleforma.payment': {
+ 'Meta': {'ordering': "['scheduled', 'month']", 'object_name': 'Payment', 'db_table': "'teleforma_payments'"},
+ 'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'month': ('django.db.models.fields.IntegerField', [], {'default': '1', 'null': 'True', 'blank': 'True'}),
+ 'online_paid': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'scheduled': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'student': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'payments'", 'to': "orm['teleforma.Student']"}),
+ 'type': ('django.db.models.fields.CharField', [], {'default': "'online'", 'max_length': '64'}),
+ 'value': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'teleforma.period': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Period'},
+ 'date_begin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_close_accounts': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_exam_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_inscription_end': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_inscription_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_password_init': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'period'", 'null': 'True', 'to': "orm['teleforma.Department']"}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_open': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'message_local': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'message_platform': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nb_script': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Period']"})
+ },
+ 'teleforma.professor': {
+ 'Meta': {'ordering': "['user__last_name']", 'object_name': 'Professor'},
+ 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}),
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'professor'", 'unique': 'True', 'to': "orm['auth.User']"})
+ },
+ 'teleforma.profile': {
+ 'Meta': {'object_name': 'Profile', 'db_table': "'teleforma_profiles'"},
+ 'address': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'address_detail': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'birthday': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'birthday_place': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'expiration_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'init_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'language': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'ss_number': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}),
+ 'wifi_login': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'wifi_pass': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'teleforma.room': {
+ 'Meta': {'object_name': 'Room'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'room'", 'to': "orm['teleforma.Organization']"})
+ },
+ 'teleforma.streamingserver': {
+ 'Meta': {'object_name': 'StreamingServer', 'db_table': "'teleforma_streaming_server'"},
+ 'admin_password': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'host': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'port': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'source_password': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '32'})
+ },
+ 'teleforma.student': {
+ 'Meta': {'ordering': "['user__last_name', '-date_subscribed']", 'object_name': 'Student'},
+ 'application_fees': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'balance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'balance_intermediary': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'confirmation_sent': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'date_registered': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_subscribed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'fascicule': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'iej': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.IEJ']"}),
+ 'is_subscribed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'level': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'options': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'options_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'oral_1': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_1_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'oral_2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_2_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_speciality_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'payment_schedule': ('django.db.models.fields.CharField', [], {'default': "'split'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+ 'payment_type': ('django.db.models.fields.CharField', [], {'default': "'online'", 'max_length': '64', 'null': 'True', 'blank': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['teleforma.Period']"}),
+ 'platform_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'portrait': ('django.db.models.fields.files.ImageField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'procedure_students'", 'null': 'True', 'to': "orm['teleforma.Course']"}),
+ 'promo_code': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'receipt_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'subscription_fees': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_training'", 'null': 'True', 'to': "orm['teleforma.Training']"}),
+ 'trainings': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'student_trainings'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Training']"}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'unique': 'True', 'to': "orm['auth.User']"}),
+ 'written_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'written_speciality_2students'", 'null': 'True', 'to': "orm['teleforma.Course']"})
+ },
+ 'teleforma.studentgroup': {
+ 'Meta': {'object_name': 'StudentGroup', 'db_table': "'teleforma_student_groups'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'students': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'groups'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Student']"})
+ },
+ 'teleforma.training': {
+ 'Meta': {'object_name': 'Training'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost_elearning_fascicle': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost_elearning_nofascicle': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '512', 'blank': 'True'}),
+ 'duration': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'magistral': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_magistral'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'obligation': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_obligation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'options': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_options'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'oral_1': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_1'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'oral_2': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_2'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'oral_speciality': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_oral_speciality'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['teleforma.Training']"}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'training'", 'null': 'True', 'to': "orm['teleforma.Period']"}),
+ 'platform_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'procedure': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_procedure'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'synthesis_note': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_synthesis_note'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"}),
+ 'written_speciality': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training_written_speciality'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.CourseType']"})
+ },
+ 'teleforma.webclassgroup': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'WebClassGroup'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'iejs': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'web_class_group'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.IEJ']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'telemeta.acquisitionmode': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.adconversion': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.ethnicgroup': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.genericstyle': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.language': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"},
+ 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'identifier': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'part1': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}),
+ 'part2B': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+ 'part2T': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}),
+ 'scope': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}),
+ 'type': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'})
+ },
+ 'telemeta.legalright': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.location': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"},
+ 'complete_type': ('telemeta.models.core.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}),
+ 'current_location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_authoritative': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'latitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'longitude': ('telemeta.models.core.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '150'}),
+ 'type': ('telemeta.models.core.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'})
+ },
+ 'telemeta.locationtype': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"},
+ 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '64'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('telemeta.models.core.CharField', [], {'max_length': '150'})
+ },
+ 'telemeta.mediacollection': {
+ 'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"},
+ 'a_informer_07_03': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'acquisition_mode': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}),
+ 'ad_conversion': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}),
+ 'alt_ids': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'0'", 'blank': 'True'}),
+ 'auto_period_access': ('telemeta.models.core.BooleanField', [], {'default': 'True'}),
+ 'booklet_author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'booklet_description': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'cnrs_contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'code': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'}),
+ 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'collector_is_creator': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'conservation_site': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'creator': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'doctype_code': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_published': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'items_done': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'legal_rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}),
+ 'metadata_author': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}),
+ 'metadata_writer': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}),
+ 'old_code': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}),
+ 'physical_format': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}),
+ 'physical_items_num': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}),
+ 'publisher': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}),
+ 'publisher_collection': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}),
+ 'publisher_serial': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'publishing_status': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}),
+ 'recorded_from_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'recorded_to_year': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'recording_context': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}),
+ 'reference': ('telemeta.models.core.CharField', [], {'default': 'None', 'max_length': '250', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'state': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'title': ('telemeta.models.core.CharField', [], {'max_length': '250'}),
+ 'travail': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'year_published': ('telemeta.models.core.IntegerField', [], {'default': '0', 'blank': 'True'})
+ },
+ 'telemeta.mediaitem': {
+ 'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"},
+ 'alt_title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'approx_duration': ('telemeta.models.core.DurationField', [], {'default': "'0'", 'blank': 'True'}),
+ 'author': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'auto_period_access': ('telemeta.models.core.BooleanField', [], {'default': 'True'}),
+ 'code': ('telemeta.models.core.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '250', 'blank': 'True'}),
+ 'collection': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}),
+ 'collector': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'collector_from_collection': ('telemeta.models.core.BooleanField', [], {'default': 'False'}),
+ 'collector_selection': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'context_comment': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'contributor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'copied_from_item': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'copies'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaItem']"}),
+ 'creator_reference': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'cultural_area': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'depositor': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'digitalist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'digitization_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'ethnic_group': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}),
+ 'external_references': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'file': ('telemeta.models.core.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}),
+ 'generic_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'language_iso': ('telemeta.models.core.ForeignKey', [], {'related_name': "'items'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Language']", 'blank': 'True', 'null': 'True'}),
+ 'location': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}),
+ 'location_comment': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'mimetype': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}),
+ 'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'organization': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Organization']", 'null': 'True', 'blank': 'True'}),
+ 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}),
+ 'publishing_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'recorded_from_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'recorded_to_date': ('telemeta.models.core.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
+ 'recordist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'rights': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Rights']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'summary': ('telemeta.models.core.TextField', [], {'default': "''", 'blank': 'True'}),
+ 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'topic': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Topic']", 'null': 'True', 'blank': 'True'}),
+ 'track': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}),
+ 'vernacular_style': ('telemeta.models.core.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"})
+ },
+ 'telemeta.metadataauthor': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.metadatawriter': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.organization': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'Organization', 'db_table': "'organization'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.physicalformat': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.publisher': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.publishercollection': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'publisher': ('telemeta.models.core.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}),
+ 'value': ('telemeta.models.core.CharField', [], {'max_length': '250'})
+ },
+ 'telemeta.publishingstatus': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.recordingcontext': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.rights': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'Rights', 'db_table': "'rights'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.topic': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'Topic', 'db_table': "'topic'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ },
+ 'telemeta.vernacularstyle': {
+ 'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'value': ('telemeta.models.core.CharField', [], {'unique': 'True', 'max_length': '250'})
+ }
+ }
+
+ complete_apps = ['teleforma']
\ No newline at end of file
import django.db.models as models
from django.utils.translation import ugettext_lazy as _
-from telemeta.models.core import *
from teleforma.models.core import *
import mimetypes
from django.db.models import *
-from telemeta.models import *
from teleforma.fields import *
import django.db.models as models
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
from quiz.models import Quiz
+# TODO notelemeta : delete after data migration
+# from telemeta.models.media import MediaItem
+
app_label = 'teleforma'
server_choices = [('icecast', 'icecast'), ('stream-m', 'stream-m')]
streaming_choices = [('mp3', 'mp3'), ('ogg', 'ogg'), ('webm', 'webm'), ('mp4', 'mp4')]
mimetypes.add_type('video/webm','.webm')
+
+ITEM_TRANSODING_STATUS = ((0, _('broken')), (1, _('pending')), (2, _('processing')),
+ (3, _('done')), (5, _('ready')))
+
payment_choices = [
('online', u'en ligne'),
('check', u'par chèque'),
ordering = ['-date_added']
+
+class MediaTranscoded(Model):
+ "Item file transcoded"
+
+ element_type = 'transcoded item'
+
+ item = models.ForeignKey('Media', related_name="transcoded", verbose_name=_('item'))
+ mimetype = models.CharField(_('mime_type'), max_length=255, blank=True)
+ date_added = DateTimeField(_('date'), auto_now_add=True)
+ status = models.IntegerField(_('status'), choices=ITEM_TRANSODING_STATUS, default=1)
+ file = models.FileField(_('file'), upload_to='items/%Y/%m/%d', max_length=1024, blank=True)
+
+ @property
+ def mime_type(self):
+ if not self.mimetype:
+ if self.file:
+ if os.path.exists(self.file.path):
+ self.mimetype = mimetypes.guess_type(self.file.path)[0]
+ self.save()
+ return self.mimetype
+ else:
+ return 'none'
+ else:
+ return 'none'
+ else:
+ return self.mimetype
+
+ def __unicode__(self):
+ if self.item.title:
+ return self.item.title + ' - ' + self.mime_type
+ else:
+ return self.item.public_id + ' - ' + self.mime_type
+
+ class Meta(MetaCore):
+ db_table = app_label + '_media_transcoded'
+
+
class Media(MediaBase):
- "Describe a media resource linked to a conference and a telemeta item"
+ "Describe a media resource linked to a conference"
element_type = 'media'
blank=True, null=True)
period = models.ForeignKey('Period', related_name='media', verbose_name=_('period'),
null=True, blank=True, on_delete=models.SET_NULL)
- item = models.ForeignKey(MediaItem, related_name='media',
- verbose_name='item', blank=True, null=True)
+ # item = models.ForeignKey(MediaItem, related_name='media', # TODO notelemeta : delete after data migration
+ # verbose_name='item', blank=True, null=True)
type = models.CharField(_('type'), choices=streaming_choices, max_length=32)
readers = models.ManyToManyField(User, related_name="media", verbose_name=_('readers'),
blank=True, null=True)
+ file = models.FileField(_('file'), upload_to='items/%Y/%m/%d', max_length=1024, null=True, blank=False)
+ poster_file = models.FileField(_('poster file'), upload_to='items/%Y/%m/%d', max_length=255, null=True, blank=False)
def set_mime_type(self):
if self.item.file:
import django.db.models as models
from django.utils.translation import ugettext_lazy as _
-from telemeta.models.core import *
from teleforma.models.core import *
from tinymce.models import HTMLField
from django.db.models import signals
import django.db.models as models
from django.utils.translation import ugettext_lazy as _
-from telemeta.models.core import *
from teleforma.models.core import *
--- /dev/null
+from django.db import models
+from django.contrib.auth.models import User
+from teleforma.models.core import MetaCore
+from django.utils.translation import ugettext_lazy as _
+
+class UserProfile(models.Model):
+ "User profile extension"
+
+ user = models.ForeignKey(User, unique=True, related_name="profile")
+ institution = models.CharField(_('Institution'))
+ department = models.CharField(_('Department'))
+ attachment = models.CharField(_('Attachment'))
+ function = models.CharField(_('Function'))
+ address = models.TextField(_('Address'))
+ telephone = models.CharField(_('Telephone'))
+ expiration_date = models.DateField(_('Expiration_date'))
+
+ class Meta(MetaCore):
+ db_table = 'profiles'
+ permissions = (("can_not_view_users_and_profiles", "Cannot view other users and any profile"),)
--- /dev/null
+body {margin: 0; padding: 0;}
+a {text-decoration: none; color: #969696;}
+a img {border: none;}
+html, input, select, textarea, h1, h2, h3, h4, h5, h6 {
+ font-size: 100%;
+}
+body {
+ font: 0.8125em/1em Verdana, sans-serif;
+ line-height: 1.3em;
+ color: #333;
+ background: #FFF;
+ margin: 0em;
+}
+
+/*a:link, a:visited {
+ color: #BB0000;
+ text-decoration:none;
+}
+a:link:hover, a:visited:hover {
+ background-color: transparent;
+ color: #BB0000;
+ text-decoration: underline;
+}*/
+a, a:visited {
+ color: #BB0000;
+ text-decoration:none;
+}
+a:hover {
+ background-color: transparent;
+ color: #BB0000;
+ text-decoration: underline;
+}
+
+a img { border: none; }
+
+.rst-content h1 {
+ font-size: 1.2em;
+ font-weight: bold;
+ color: #353535;
+}
+.nett {
+ clear: both;
+ height: 5px;
+}
+
+.wazing {
+ clear: both;
+ position: relative;
+}
+
+/* Min-width */
+#layout {
+ min-width: 740px;
+}
+
+#content {
+ /*margin-top: 1em;*/
+ margin-bottom: 0em;
+}
+
+#content {
+ position: relative;
+ margin-left: 2em;
+ margin-right: 2em;
+}
+
+
+#content ul, #content ul ul, #content ol {
+ list-style: square;
+ padding: .7em;
+ padding-left: 2em;
+ font-size: 0.8em;
+ clear: both;
+}
+#content ul ul {
+ font-size: 1.1em;
+ padding-left: 0;
+}
+#content li {
+ padding: .2em;
+ padding-left: 0;
+}
+#content li a {
+ padding: .1em 0;
+}
+#content h1 {
+ color: #6a0307;
+ font-weight: bold;
+ display: inline;
+ font-size: 120%;
+}
+#content h3 {
+ color: #6a0307;
+ font-weight: bold;
+ display: inline;
+}
+
+#content h2 {
+ color: #6a0307;
+}
+
+#logo a, #logo a:hover { border: none; background: transparent; }
+
+#header {
+ padding: 0em;
+/* background: url("../images/waves.png") 100% 0% no-repeat; */
+}
+
+#content_header, #header{
+ margin-bottom: .8em;
+}
+
+#content_header{
+ width:100%;
+ border-collapse:collapse;
+}
+
+#content_header td{
+ vertical-align: top;
+}
+
+#content_header td.rightcol{
+ text-align:right;
+ white-space:nowrap; /**this implies to stretach righcol to accomodate all the width,
+ UNLESS there is a div.fixedWidthAsPlayer inside td.rightcol (see blow)*/
+}
+
+#content_header td.rightcol div.fixedWidthAsPlayer{
+ width:374px; /*must be width+2*padding, see #rightcol below*/
+ float:right;
+ white-space:normal; /*to override no-wrap defined in #content_header td.rightcol*/
+}
+
+#content_header td.rightcol div.fixedWidthAsPlayer a{
+ display:inline-block;
+ margin-top:0.5ex;
+}
+
+#rightcol {
+ width: 362px; /**if u change this, change also width #content_header td.rightcol, see above*/
+ padding: 6px; /**if u change this, change also width #content_header td.rightcol, see above*/
+ position: relative;
+ z-index: 1;
+ float: right;
+ border: 1px solid #999;
+ background-color: #eee;
+ -moz-border-radius: 8px 8px 8px 8px;
+ -webkit-border-radius: 8px 8px 8px 8px;
+ border-radius: 8px 8px 8px 8px;
+}
+
+#rightcol .analyzer, #rightcol .exporter, .markers {
+ text-align: left;
+ position: relative;
+}
+
+#rightcol form {
+ width: 360px;
+ margin-top: 5px;
+ background-color: #fff;
+ border: 1px solid #adadad;
+}
+
+#rightcol p {
+ margin: 0;
+ padding: 0;
+}
+
+#collection_player {
+ background: transparent;
+ /* background-image: url(../images/grid_bg.png); */
+}
+
+#collection_player .title {
+ padding: 2px 5px 7px 5px;
+}
+
+
+.exporter {
+ background-color: #fff;
+ border: 1px solid #adadad;
+ padding: 2px;
+ height: 26px;
+ margin: 5px 0 0;
+ font-size: 0.9em;
+ color: #000;
+ font-weight: bold;
+}
+
+.analyzer, .markers {
+ background-color: #fff;
+ color: #000;
+ border: 1px solid #adadad;
+ width: 356px;
+ padding: 2px;
+ /* margin: 5px 0 0; */
+ font-size: 1em;
+}
+
+.markers {
+ max-height: 500px;
+ overflow-y: scroll;
+}
+
+.vscroll {
+ max-height: 300px;
+ overflow-y: scroll;
+ width: 100%;
+}
+
+
+.analyzer-title {
+ background-color: #f2f2f2;
+ color: #000;
+ padding: 2px;
+}
+
+.analyzer-line {
+ background-color: #fdfdfd;
+ color: #000;
+ padding: 4px;
+}
+
+/* Geographic navigator */
+ul.continents, ul.continents ul { list-style: none; margin: 0; padding: 0;}
+ul.continents { margin: 1em 0; }
+ul.continents ul {margin-left: 0; margin-bottom: 0.9em; padding: 0 1em 1em 0;}
+ul.continents li.name { width: 460px; float: left; clear: left; margin-right: 30px;}
+ul.continents li.odd { clear: none;}
+ul.continents li.name b { font-size: 120%; font-weight: bold; }
+ul.continents ul li { display: inline; padding-right: 2em;}
+ul.continents ul li a { line-height: 1.8em; }
+
+/* Collection */
+#content .intro {
+ font-size: 1em;
+ font-weight: bold;
+ color: #444;
+ margin: 5px 0;
+ font-size: 0.8em;
+}
+#content .intro span {
+ padding: 3px;
+
+}
+
+/* Forms */
+input, textarea, select { margin: 2px }
+input, select { vertical-align: middle }
+input[type=button], input[type=submit], input[type=reset] {
+ background: #f2f2f2;
+ color: #444;
+ border: 3px double #ccc;
+ padding: .1em .5em;
+ font-weight: bold;
+ cursor: pointer;
+}
+input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover {
+ background: #8D8C94;
+ color: #fff;
+}
+input[type=button][disabled], input[type=submit][disabled],
+input[type=reset][disabled] {
+ background: #f6f6f6;
+ border-style: solid;
+ color: #999;
+}
+input[type=text], input[type=password], input.textwidget, textarea { border: 1px solid #ccc; }
+input[type=text], input[type=password], input.textwidget { padding: .25em .1em }
+input[type=text]:focus, input[type=password]:focus, input.textwidget:focus, textarea:focus {
+ border-color: #aaa;
+}
+option { border-bottom: 1px dotted #d7d7d7; }
+fieldset { border: 1px solid #d7d7d7; padding: .5em; margin: 0 }
+fieldset.iefix { background: transparent; border: none; padding: 0; margin: 0 }
+* html fieldset.iefix { width: 98% }
+fieldset.iefix p { margin: 0 }
+legend { color: #999; padding: 0 .25em; font-size: 90%; font-weight: bold }
+label.disabled { color: #d7d7d7 }
+.buttons { margin: .5em .5em .5em 0 }
+.buttons form, .buttons form div { display: inline }
+.buttons input { margin: 1em .5em .1em 0 }
+.inlinebuttons input {
+ font-size: 70%;
+ border-width: 1px;
+ border-style: dotted;
+ margin: 0;
+ padding: 0.1em;
+ background: none;
+}
+
+/* Quick search */
+#quick_search {
+ position: absolute;
+ top: 1.7em;
+ left: 35%;
+ background-color: #6a0307;
+ padding: 0.3em 0em 0.3em 0.3em;
+ -moz-border-radius: 8px 8px 8px 8px;
+ -webkit-border-radius: 8px 8px 8px 8px;
+ border-radius: 8px 8px 8px 8px;
+}
+#quick_search form {
+ float: left;
+ margin-right: 12px;
+}
+#quick_search p {
+ margin-top: .3em;
+ clear: left;
+}
+
+#quick_search a {
+ font-size: .8em;
+ font-weight: bold;
+ vertical-align: middle;
+}
+
+#quick_search input {
+ vertical-align: middle;
+ font-size: .8em;
+ margin-right: 0;
+ -moz-border-radius: 5px 5px 5px 5px;
+ -webkit-border-radius: 5px 5px 5px 5px;
+ border-radius: 5px 5px 5px 5px;
+}
+#quick_search_pattern {
+ background: #FFF url(search_bg.png) no-repeat;
+ padding: .4em .1em;
+ padding-left: 25px;
+ width: 180px;
+ color: #555;
+ font-weight: bold;
+}
+
+/* Authentication */
+#auth_info {
+ color: #FFF;
+ font-weight: bold;
+ position: absolute;
+ top: 1.5em;
+ right: 1.1em;
+ margin-right: 1em;
+ font-size: 0.9em;
+ background-color: #6a0307;
+ padding: 1em;
+ -moz-border-radius: 8px 8px 8px 8px;
+ -webkit-border-radius: 8px 8px 8px 8px;
+ border-radius: 8px 8px 8px 8px;
+}
+
+#auth_info a {
+ color: #FFF;
+ font-size: 1em;
+ font-weight: bold;
+}
+
+form.login {
+ font-size: 0.8em;
+ float: left;
+ margin-top: 2em;
+ margin-bottom: 4em;
+ padding: .5em;
+ border: 1px dotted #888;
+}
+
+.login-error {
+ color: #BB0000;
+}
+
+form.login label {
+ display: block;
+ width: 11em;
+ float: left;
+ clear: left;
+ font-weight: bold;
+ padding-top: 0.3em;
+}
+
+form.login .submit {
+ float: right;
+ margin-top: 1em;
+}
+
+/* Search form */
+#searchform {
+ margin: 15px 0;
+}
+#searchform fieldset {
+ padding: 0;
+ padding: .5em;
+ width: 650px;
+ border: none;
+ border: 1px solid #6a0307;
+ margin-bottom: 1em;
+ -moz-border-radius: 8px 8px 8px 8px;
+ -webkit-border-radius: 8px 8px 8px 8px;
+ border-radius: 8px 8px 8px 8px;
+}
+#searchform p {
+ background-color: #fff;
+ padding: .5em 0;
+}
+#searchform label {
+ font-size: 0.8em;
+ display: block;
+ float: left;
+ width: 30%;
+ margin-left: 15px;
+ margin-top: .2em;
+ line-height: 1.8em;
+ font-weight: bold;
+ color: #333;
+ text-transform: uppercase;
+}
+#searchform select {
+ width: 59%;
+}
+#searchform fieldset input {
+ width: 56%;
+}
+#searchform select, #searchform fieldset input {
+ font-size: 0.8em;
+}
+#searchform .submit {
+ padding: 0;
+ clear: both;
+ width: 450px;
+}
+
+#searchform select.tiny {
+ width: 12%;
+}
+
+/* Main navigation bar (borrowed from Trac) */
+#menu {
+ background-color: #6a0307 ;
+ font: normal verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif;
+ border-top: .25em solid #6a0307;
+ padding-left:26px;
+}
+
+#menu a, #menu a:visited{
+ display:inline-block;
+ color: #fff;
+ text-decoration:none;
+ border-bottom-width:.5em;
+ border-bottom-style: solid;
+ background-color: #6a0307;
+ -webkit-border-top-left-radius:5px 5px;
+ moz-border-radius-topleft: 5px 5px;
+ border-top-left-radius: 5px 5px;
+ -webkit-border-top-right-radius:5px 5px;
+ moz-border-radius-topright: 5px 5px;
+ border-top-right-radius: 5px 5px;
+ font-weight: bold;
+ font-size: 14px;
+ padding: .5em 1em;
+}
+#menu a:hover, #menu a.active{
+ background-color: #FFF;
+ color: #6a0307;
+}
+
+#menu .darkblue { border-bottom-color: #0f3179; }
+#menu .blue { border-bottom-color: #4f628a; }
+#menu .green { border-bottom-color: #92b220; }
+#menu .yellow { border-bottom-color: #f3ad17; }
+#menu .orange { border-bottom-color: #e65911; }
+#menu .darkgreen { border-bottom-color: #006a12; }
+#menu .black { border-bottom-color: #000000; }
+#menu .red { border-bottom-color: #DD0000; }
+#menu .violet { border-bottom-color: #A00020; }
+#menu .origin { border-bottom-color: #6a0307; }
+
+* html #menu :link, * html #menu :visited { background-position: 1px 0 }
+
+
+/* Drop Down Menus */
+.clear {clear:both}
+
+#nav {
+ margin:0;
+ padding:0;
+ list-style:none;
+}
+
+/* make the LI display inline */
+/* it's position relative so that position absolute */
+/* can be used in submenu */
+
+#nav li {
+display:inline-block;
+position:relative;
+z-index:500;
+}
+
+/* this is the parent menu */
+#nav li a {
+display:block;
+text-align:center;
+}
+
+/* you can make a different style for default selected value */
+#nav a.selected {
+color:#FFF;
+}
+
+/* submenu, it's hidden by default */
+#nav ul {
+ position:absolute;
+ left:0;
+ display:none;
+ margin:0 0 0 -2px;
+ padding:0;
+ list-style: none outside none;
+ border-left:2px solid #6a0307;
+ border-right:2px solid #6a0307;
+ border-bottom:2px solid #6a0307;
+ background-color: #6a0307;
+ color: #FFF;
+}
+
+#nav ul li {
+ width:100px;
+ float:left;
+ border-bottom:0px solid #fff;
+}
+
+/* display block will make the link fill the whole area of LI */
+#nav ul a {
+ display:block;
+ height:15px;
+ padding: 5px 5px;
+ font-size: 11px;
+ text-align:left;
+ -webkit-border-top-left-radius:0px 0px;
+ moz-border-radius-topleft: 0px 0px;
+ border-top-left-radius: 0px 0px;
+ -webkit-border-top-right-radius:0px 0px;
+ moz-border-radius-topright: 0px 0px;
+ border-top-right-radius: 0px 0px;
+ border-bottom-width: 0px;
+}
+
+#nav ul a:hover {
+ background-color: #FFF ;
+ color: #6a0307 ;
+}
+
+#nav ul a:active {
+ background-color: #FFF;
+ color: #6a0307 ;
+}
+
+
+
+/* Footer (borrowed from Trac) */
+#footer {
+ background: #6a0307;
+ clear: both;
+ color: #FFF;
+ font-size: 10px;
+ border-top: 1px solid;
+ height: 31px;
+ padding: 0.5em 0.5em 1.1em 0.5em;
+ margin-top: 2.5em;
+}
+#footer :link, #footer :visited { color: #FFF; }
+#footer hr { display: none }
+#footer #telemeta_powered { border: 0; float: left }
+#footer #telemeta_powered:hover { background: transparent }
+#footer p { margin: 0; }
+#footer p.left {
+ float: left;
+ margin-left: 1em;
+ padding: 0 1em;
+ border-left: 1px solid #d7d7d7;
+ border-right: 1px solid #d7d7d7;
+}
+#footer p.right {
+ float: right;
+ text-align: right;
+}
+#footer p.center {
+ text-align: center;
+}
+
+/* Homepage */
+.homelinks a { font-size: 120%;}
+
+
+/* Definition list */
+dl {
+ position: relative;
+ margin: .5em 0;
+}
+dl dt, dl dd {
+ position: relative;
+ margin: 0;
+ margin-bottom: .5em;
+ padding: 0;
+ font-size: 0.8em;
+ line-height: 1.4em;
+ min-height: 1.4em;
+}
+dl dd {
+ border: 1px solid transparent;
+}
+dl dt {
+ float: left;
+ clear: left;
+}
+
+dl.listing dt {
+ width: 18em;
+ background-color: #f9f9f9;
+ border: .1em solid #eee;
+ border-right: .3em solid #ddd;
+ padding-left: .3em;
+ margin-right: .8em;
+ color: #444;
+}
+dl.listing dt.group {
+ float: none;
+ margin-top: .9em;
+ background-color: #DDDDDD;
+ border-color: #ccc;
+ border-right: .1em solid #ccc;
+ width: 18.2em;
+}
+dl.listing dd {
+ margin-left: 19.4em;
+ font-weight: bold;
+}
+
+/* dublin core display */
+h4.dublincore {
+ text-align: left;
+ padding: 5px 0 10px;
+ font-weight: bold;
+ color: #666;
+}
+dl.dublincore dt {
+ margin-right: .8em;
+ width: 23em !important;
+ font-style: italic;
+}
+dl.dublincore dd {
+ margin-left: 23.4em;
+ font-weight: bold;
+}
+dl.dublincore dt span {
+ width: 13em;
+ display: block;
+ float: left;
+ font-style: normal;
+ background-color: #f9f9f9;
+ border: 1px solid #eee;
+ border-right: 3px solid #ddd;
+ padding-left: .3em;
+ margin-right: 1.2em;
+ color: #444;
+}
+dl.dublincore .caption {
+ background-color: #B8B7C1;
+ margin: .5em 0;
+ margin-top: 0;
+ border-bottom: 1px dotted #666;
+ padding-top: .4em;
+ padding-bottom: .4em;
+ padding-left: .3em;
+ color: #fff;
+ font-weight: bold;
+ border-right: 1px solid #fff;
+}
+dl.dublincore dt.caption span {
+ background-color: #B8B7C1;
+ border: none;
+ border-right: 1px solid #fff;
+ color: #fff;
+}
+dl.dublincore dd.caption {
+ padding-top: .3em;
+ padding-left: .4em;
+ margin-left: 23.4em;
+}
+
+/* infos item/collection */
+.infos, .extraInfos {
+ margin-bottom: 15px;
+}
+
+.infos dl, .infos table {
+ position: relative;
+ font-size: 105%;
+}
+
+.extraInfos dl, .extraInfos table {
+ position: relative;
+ font-size: 105%;
+}
+
+.extraInfos div {
+ padding: 0;
+ margin-bottom: 5px;
+}
+.extraInfos .nett {
+ position: relative;
+ height: 0;
+ margin-bottom: -5px;
+}
+.extraInfos h4 {
+ /* clear: both; */
+ font-size: 1em;
+ line-height: 1.4em;
+ border-bottom: 1px dotted #aaa;
+ color: #6a0307;
+}
+.with-rightcol .extraInfos h4 {
+ margin-right: 395px;
+}
+
+.extraInfos h4 a {
+ position: relative;
+ display: block;
+ color: #6a0307 !important;
+ text-decoration: none;
+ margin: 0;
+ background: #fff url(../images/more.png) no-repeat left top;
+ background-position: 0 -16px;
+ padding-bottom: 2px;
+ padding-left: 16px;
+ border-bottom: none !important;
+ outline: none;
+}
+.extraInfos h4 a:hover {
+ background-color: transparent;
+ border-bottom: none;
+ color: #6a0307 !important;
+ text-decoration:none;
+}
+.extraInfos .folded h4 {
+ border-bottom: none;
+}
+.extraInfos .folded h4 a {
+ background-position: 0 1px;
+}
+
+/* Pagination */
+.pagination {
+ margin-top: .7em;
+ margin-bottom: .3em;
+ padding: .3em 0;
+ font-size: 1em;
+ background-color: #fff;
+ border-bottom: 1px solid #aaa;
+ color: #333;
+ font-weight: bold;
+}
+.pagination a {
+ background-color: #fff;
+ border-bottom: none;
+ font-size: 1em;
+ padding: .3em;
+}
+
+/* Item instruments */
+div.instruments {
+ position: relative;
+ margin-left: -.7em;
+ margin-right: .5em;
+}
+table.instruments {
+ border: none;
+ border-collapse: separate;
+ /* width: 100%; */
+ border-spacing: .7em;
+}
+table.instruments td {
+ font-size: .8em;
+ padding: 0 .2em;
+}
+table.instruments thead td {
+ background-color: #F9F9F9;
+ border: .1em solid #E1E1E1;
+ border-bottom: .3em solid #E1E1E1;
+}
+table.instruments tbody td {
+ border-bottom: .1em solid #E1E1E1;
+}
+
+/* Styles for tabular listings (stolen from trac) */
+table.listing {
+
+ border-spacing: 0;
+}
+
+.fullpage table.listing {
+ width: 100%;
+ font-size: 105%;
+}
+
+table.listing th {
+ text-align: left;
+ padding: 0 14em .1em 0;
+ font-size: 1em;
+}
+table.listing th, table.listing td {
+ font-size: 0.8em;
+ border-bottom: 1px solid #dfdfdf;
+}
+table.listing thead { background: #e8eaf0 }
+table.listing thead th {
+ font-size: 0.9em;
+ padding: 3px .5em 3px;
+}
+table.listing thead th :link:hover, table.listing thead th :visited:hover {
+ background-color: transparent;
+}
+/*conflicts with buttons inside table*/
+/*table.listing a {
+ border: none;
+}*/
+table.listing thead th a {
+ padding-right: 12px;
+}
+table.listing th.asc a, table.listing th.desc a { font-weight: bold }
+table.listing th.asc a, table.listing th.desc a {
+ background-position: 100% 50%;
+ background-repeat: no-repeat;
+}
+table.listing th.asc a { background-image: url(../images/asc.png) }
+table.listing th.desc a { background-image: url(../images/desc.png) }
+table.listing tbody td, table.listing tbody th {
+ padding: .33em .5em;
+ vertical-align: top;
+ font-weight: normal;
+}
+table.listing tbody td {
+ font-weight: bold;
+}
+table.listing tbody td.tmp {
+ width: 100%;
+}
+table.listing tbody td a:hover, table.listing tbody th a:hover {
+ background-color: transparent;
+}
+table.listing tbody tr { border-top: 1px solid #ddd }
+table.listing tbody tr.even { background-color: #fcfcfc }
+table.listing tbody tr.odd { background-color: #f7f7f7 }
+table.listing tbody tr:hover { background: #f7f8fa !important }
+
+table td.error {
+ color: red;
+ font-weight: bold;
+}
+
+.infos li.error{
+ color: red;
+ font-weight: bold;
+ font-size: 110%;
+}
+
+.gmap {
+ border: solid 1px #888;
+ margin-top: 0.8em;
+}
+
+.rst-content {
+ padding-top: 5px;
+}
+
+.rst-content h1 {
+ color: #6a0307;
+}
+
+.rst-content img.align-left {
+ float: left;
+ margin-right: 2ex;
+ margin-top: 0.6ex;
+ margin-bottom: 0.5ex;
+}
+
+.rst-content img.align-right {
+ float: left;
+ margin-left: 2ex;
+ margin-top: 0.6ex;
+ margin-bottom: 0.5ex;
+}
+
+img.align-left {
+ float: left;
+ padding-bottom: 1ex;
+ padding-right: 1ex;
+}
+
+#content .rst-content ul, #content .rst-content ol {
+ clear: none;
+ font-size: 1em;
+ margin-left: 0.4em;
+}
+
+#module-set {
+ float: right;
+ clear: right;
+}
+
+#module-set .module {
+ border: 1px solid #000;
+ background-image: url(../images/grid_bg.png);
+ padding: 0.2em;
+ margin: 0 0 1.5em 1.5em;
+ -moz-border-radius: 8px 0px 11px 11px;
+ -webkit-border-radius: 8px 0px 11px 11px;
+ border-radius: 11px 0px 11px 11px;
+}
+
+#module-set .module h3 {
+ color: #FFF;
+ font-size: 1.1em;
+ font-weight: bold;
+}
+
+#module-set .module a:hover {
+ text-decoration: none;
+}
+
+#module-set .module div {
+ -moz-border-radius: 8px 0px 8px 8px;
+ -webkit-border-radius: 8px 0px 8px 8px;
+ border-radius: 8px 0px 8px 8px;
+ }
+
+#module-set .module img {
+ -moz-border-radius: 8px 0px 8px 8px;
+ -webkit-border-radius: 8px 0px 8px 8px;
+ border-radius: 8px 0px 8px 8px;
+ }
+
+#module-set .module ul, li {
+ -moz-border-radius: 8px 0px 8px 8px;
+ -webkit-border-radius: 8px 0px 8px 8px;
+ border-radius: 8px 0px 8px 8px;
+ }
+
+a.image-link {
+ border: none;
+}
+
+.map-thumbnail {
+ border: solid 1px #999;
+}
+
+.home-content .module {
+ width: 400px;
+}
+
+.home-description {
+ padding-right: 33%;
+ display: block;
+}
+
+#content ul.playlist {
+ list-style-type: none;
+ border-top: solid 1px #e1e1e1;
+ margin: 0;
+ padding: 0;
+}
+
+#content ul.playlist li {
+ display: block;
+ border: solid 1px #e1e1e1;
+ border-top: 0;
+ background: white;
+ margin: 0;
+ padding: 1em;
+}
+
+
+.tab_unselected, .tab_unselected:hover, .tab_unselected:visited {
+ background-color: #cccccc;
+ font-weight: normal;
+ color: #333333;
+ border: 1px solid #cccccc;
+
+}
+.tab_selected, .tab_selected:hover, .tab_selected:visited {
+ background-color: #ffffff;
+ color: #000000;
+ font-weight: bold;
+ border-top: 1px solid #999999;
+ border-right: 1px solid #999999;
+ border-left: 1px solid #999999;
+ border-bottom: 1px solid #ffffff;
+
+}
+
+.tab, .tab:hover, .tab:visited{
+ margin-top: 1ex;
+ display: inline-block;
+ margin-left: 0px;
+ padding: 1ex;
+ -moz-border-radius: 1ex 1ex 0ex 0ex; -webkit-border-radius: 1ex 1ex 0ex 0ex; border-radius: 1ex 1ex 0ex 0ex;
+}
+
+.roundBorder4{
+ /*padding: 0.3em 0.8em 0.8em 0.8em;
+ margin: 0 0 1.5em 1.5em;*/
+
+ -moz-border-radius: 4px 4px 4px 4px;
+ -webkit-border-radius: 4px 4px 4px 4px;
+ border-radius: 4px 4px 4px 4px;
+}
+.roundBorder6{
+ /*padding: 0.3em 0.8em 0.8em 0.8em;
+ margin: 0 0 1.5em 1.5em;*/
+
+ -moz-border-radius: 6px 6px 6px 6px;
+ -webkit-border-radius: 6px 6px 6px 6px;
+ border-radius: 6px 6px 6px 6px;
+}
+.roundBorder8{
+ /*padding: 0.3em 0.8em 0.8em 0.8em;
+ margin: 0 0 1.5em 1.5em;*/
+
+ -moz-border-radius: 8px 8px 8px 8px;
+ -webkit-border-radius: 8px 8px 8px 8px;
+ border-radius: 8px 8px 8px 8px;
+}
+.roundBorder10{
+ /*padding: 0.3em 0.8em 0.8em 0.8em;
+ margin: 0 0 1.5em 1.5em;*/
+
+ -moz-border-radius: 10px 10px 10px 10px;
+ -webkit-border-radius: 10px 10px 10px 10px;
+ border-radius: 10px 10px 10px 10px;
+}
+
+.markersdivUneditable{
+ border: 0px !important;
+}
+
+.markerdiv div{
+ padding:0.7ex 1ex;
+}
+.markerdiv div[zero_top_padding]{ /*mathces any div with the attribute zero_top_padding set (whatever the value)*/
+ padding-top:0px;
+}
+.markerdiv div *{
+ vertical-align:middle;
+ font-family: sans-serif;
+}
+.markerdiv div input, .markerdiv div textarea{
+ margin:0px;
+ padding:2px;
+}
+.markerdiv .ts-marker{
+ background-image: url('../images/marker_tiny.png'); text-align: center; min-width:3ex;
+}
+.markerdiv .ts-marker, .markerdiv .markersdivOffset, .markerdiv .markersdivTitle, .markerdiv .markersdivAddPlaylist, .markerdiv .markersdivEdit{margin-right:.8ex;}
+.markerdiv div a, .markerdiv div a:visited, .markerdiv div a:hover{
+ display: inline-block; /*otherwise width and height do not work*/
+ background-repeat: no-repeat;
+ text-decoration: none;
+
+}
+.markerdiv .markersdivOffset, .markerdiv .markersdivOffset:hover, .markerdiv .markersdivOffset:visited{
+ color: #000;
+}
+.markerdiv .ts-marker, .markerdiv .ts-marker:hover, .markerdiv .ts-marker:visited{
+ font-family: monospace; background: #e65911;color: #FFF;padding-left: .3ex; padding-right:.3ex;
+}
+.markersdivDelete{ background-image: url('../images/del_marker.png');width:15px;height:2ex;background-repeat: no-repeat;}
+/*backfround-repeat is redundant with .markerDiv a,.. defined above but this way .markersDivDelete is re-usable in other context (eg popupdiv*/
+.markersdivAddPlaylist{ background-image: url('../images/add_playlist_marker.png');width:13px;height:2ex; }
+.markersdivTitle{ font-weight:bold;}
+.markersdivEdit, .markersdivEdit:hover, .markersdivEdit:visited{
+ line-height: normal;
+ color:#000;
+ background-position: -2px center;
+ padding-left: 13px; padding-right: 2px;
+ font-size: 65%;
+ border:2px solid #666;
+ background-color: #fff;
+ background-image: url('../images/edit_marker.png');
+ -moz-border-radius: 1ex; -webkit-border-radius: 1ex; border-radius: 1ex;
+}
+.markersdivSave, .markersdivSave:hover, .markersdivSave:visited{
+ background-color: #087714;
+ color: #fff;
+ font-weight: bold;
+ padding:.7ex; padding-left: 20px;
+ background-position: 5px center;
+ -moz-border-radius: 1ex;-webkit-border-radius: 1ex;border-radius: 1ex;
+ background-image: url('../images/ok.png');
+}
+.markerdiv{
+ border: 1px solid #aaaaaa;
+ margin-bottom: 1ex;
+ -moz-border-radius: 1e;
+ -webkit-border-radius: 1ex;
+ border-radius: 1ex;
+}
+
+/*----------------------------------*/
+.component, .component_icon, .component:hover, .component_icon:hover, .component:visited, .component_icon:visited{
+ background-position: 1ex .5ex;
+ -moz-border-radius: 1ex 1ex 1ex 1ex;
+ -webkit-border-radius: 1ex 1ex 1ex 1ex;
+ border-radius: 1ex 1ex 1ex 1ex;
+ padding:.7ex .7ex .7ex .7ex;
+ background-color: #f9f9f9; /*#626262;*/
+ color:#444;
+ text-decoration: none;
+ margin:0;
+}
+.component + .component, .component + .component_icon, .component_icon + .component ,
+.component_icon + .component_icon{
+ margin-left: .1ex;
+}
+
+.component_icon, .component_icon:hover, .component_icon:visited{
+ background-repeat: no-repeat;
+ background-position: 1ex .5ex;
+ padding:4px 8px 4px 26px; /*top right bottom left - last value depends on the icon size (default=16)*/
+}
+
+.button, .button:visited, .button:hover{
+ font-weight: bold;
+ border: 1px solid #e1e1e1;
+ white-space:nowrap;
+ /* border-top: 1px solid #e1e1e1 !important;
+ border-left: 1px solid #e1e1e1 !important;
+ border-right: 1px solid #e1e1e1 !important;
+ border-bottom: 1px solid #e1e1e1 !important;*/
+}
+
+.button:hover{
+ border-top: 1px solid #f9f9f9 !important;
+ border-left: 1px solid #f9f9f9 !important;
+ border-bottom: 1px solid #999 !important;
+ border-right: 1px solid #999 !important;
+ background-color: #f4f4f4; /*#e9e9d9;*/
+ color: #000; /*#6A0307;*/
+}
+
+
+.list_item, .list_item:visited, .list_item:hover{
+ display:block;
+ color:#6A0307;
+}
+
+.list_item:hover{
+ font-weight: bold;
+}
+
+.icon_edit{
+ background-image: url('../images/edit_page.png');
+}
+.icon_copy{
+ background-image: url('../images/copy_page.png');
+}
+.icon_previous{
+ background-image: url('../images/previous.png');
+}
+.icon_next{
+ background-image: url('../images/next.png');
+}
+.icon_dublin_core{
+ background-image: url('../images/dublin_core.png');
+}
+.icon_cancel{
+ background-image: url('../images/cancel.png');
+}
+.icon_save{
+ background-image: url('../images/save.png');
+}
+.icon_add{
+ background-image: url('../images/add.png');
+}
+.icon_add_to_playlist{
+ background-image: url('../images/add_to_playlist.png');
+}
+.icon_login{
+ background-image: url('../images/password.png');
+}
+.icon_search{
+ background-image: url('../images/find.png');
+}
+.icon_ok{
+ background-image: url('../images/ok.png');
+}
+.icon_csv{
+ background-image: url('../images/csv.png');
+}
+.icon_playlist{
+ background-image: url('../images/playlist.png');
+}
+.icon_filter{
+ background-image: url('../images/filter.png');
+}
+.icon_delete{
+ background-image: url('../images/delete.png');
+}
+.icon_rss,.icon_rss:hover{
+ background: url('../images/feed-icon-14x14.png') no-repeat;
+ background-position: 0ex .8ex;
+ padding:.0ex 0ex .8ex .7ex;
+ text-decoration: none;
+}
+
+.addToPlaylist {
+ margin:0.5ex;
+ position: absolute;
+ display:none;
+ left: 0;
+ top: 0;
+}
+
+
+/*focus on elements*/
+a:focus,div:focus{
+ -moz-outline: 1px dotted #999 !important;
+ outline: #999 dotted 1px; /*!important;*/
+}
+
+.infos input, .infos textarea{
+ outline: none !important;
+ width: 600px;
+}
+
+.related_media {
+ border-top: 1px dotted #6a0307;
+}
+
+
+#chatwindow {
+ min-height: 10em;
+ max-height: 42em;
+ border-bottom: 1px solid;
+ padding: 0.8em;
+ overflow: auto;
+ background-color: white;
+ font-size: 0.8125em;
+ -moz-border-radius: 8px 0px 8px 8px;
+ -webkit-border-radius: 8px 0px 8px 8px;
+ border-radius: 8px 0px 8px 8px;
+}
+
+.msg {
+ font-size: 0.9em;
+ }
+
+.msg input {
+ -moz-border-radius: 8px 8px 8px 8px;
+ -webkit-border-radius: 8px 8px 8px 8px;
+ border-radius: 8px 8px 8px 8px;
+ }
+
+.mod {
+ width: 66%;
+ float: left;
+}
\ No newline at end of file
--- /dev/null
+.ac_results {
+ padding: 0px;
+ border: 1px solid black;
+ background-color: white;
+ overflow: hidden;
+ z-index: 99999;
+}
+
+.ac_results ul {
+ width: 100%;
+ list-style-position: outside;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.ac_results li {
+ margin: 0px;
+ padding: 2px 5px;
+ cursor: default;
+ display: block;
+ /*
+ if width will be 100% horizontal scrollbar will apear
+ when scroll mode will be used
+ */
+ /*width: 100%;*/
+ font: menu;
+ font-size: 12px;
+ /*
+ it is very important, if line-height not setted or setted
+ in relative units scroll will be broken in firefox
+ */
+ line-height: 16px;
+ overflow: hidden;
+}
+
+.ac_loading {
+ background: white url('indicator.gif') right center no-repeat;
+}
+
+.ac_odd {
+ background-color: #eee;
+}
+
+.ac_over {
+ background-color: #0A246A;
+ color: white;
+}
--- /dev/null
+
+#player_maximized .ts-player .ts-wave, #player_maximized .ts-player .ts-image {
+ height: 170px;
+}
+
+.ts-skin-lab .ts-player .ts-control {
+ background: url('../images/player_controlbg.png');
+}
+
+#player_maximized, #player_minimized {
+ position: relative;
+}
+
+
+#player_maximized .toggle, #player_minimized .toggle {
+ position: relative;
+ display: block;
+ overflow: hidden;
+ float: left;
+ width: 18px;
+ padding: 10px 0 0 0;
+ height: 0px !important;
+ height /**/:10px; /* for IE5/Win only */
+ background-image: url('../images/maximize.png');
+ text-decoration: none;
+ border: none;
+}
+
+#player_maximized .toggle:hover, #player_minimized .toggle:hover {
+ background-position: 0px -10px;
+}
+
+#player_maximized .embed_player_frame, #player_minimized .embed_player_frame {
+ float: right;
+ font-weight: bold;
+ color: #6A0307;
+ text-decoration: none;
+ font-size: 50%;
+ padding-left: 2ex;
+ padding-right: 2ex;
+ position: relative;
+ top: -1px;
+ line-height: 1.5em;
+}
+
+#player_maximized .embed_player_frame:hover, #player_minimized .embed_player_frame:hover {
+ text-decoration: none;
+}
+
+#player_maximized {
+ margin: 10px 0 15px 0;
+ display: none;
+}
\ No newline at end of file
color: #333;
background: #FFF;
margin: 0em;
- background:no-repeat url(/static/telemeta/images/bg_yt.png) 0 0;
+ background:no-repeat url(/static/teleforma/images/bg_yt.png) 0 0;
background-color:#ebebeb;
background-repeat:repeat
}
#header {
padding: 0em;
background-color: #000000 ;
- background:no-repeat url(/static/telemeta/images/tw_hd.png) 0 0;
+ background:no-repeat url(/static/teleforma/images/tw_hd.png) 0 0;
background-color:#ebebeb;
background-repeat:repeat;
border-top: .25em solid #6a0307;
/* Footer (borrowed from Trac) */
#footer {
background: #000000;
- background:no-repeat url(/static/telemeta/images/tw_hd.png) 0 0;
+ background:no-repeat url(/static/teleforma/images/tw_hd.png) 0 0;
background-color:#ebebeb;
background-repeat:repeat;
clear: both;
color: #000000 !important;
text-decoration: none;
margin: 0;
- background: transparent url(/static/telemeta/css/more.png) no-repeat left top;
+ background: transparent url(/static/teleforma/images/more.png) no-repeat left top;
background-position: 0 -16px;
padding-bottom: 2px;
padding-left: 16px;
background-position: 100% 50%;
background-repeat: no-repeat;
}
-table.listing th.asc a { background-image: url(/static/telemeta/images/asc.png) }
-table.listing th.desc a { background-image: url(/static/telemeta/images/desc.png) }
+table.listing th.asc a { background-image: url(/static/teleforma/images/asc.png) }
+table.listing th.desc a { background-image: url(/static/teleforma/images/desc.png) }
table.listing tbody td, table.listing tbody th {
padding: .33em .5em;
vertical-align: top;
padding:2px;
}
.markerdiv .ts-marker{
- background-image: url('/static/telemeta/images/marker_tiny.png'); text-align: center; min-width:3ex;
+ background-image: url('/static/teleforma/images/marker_tiny.png'); text-align: center; min-width:3ex;
}
.markerdiv .ts-marker, .markerdiv .markersdivOffset, .markerdiv .markersdivTitle, .markerdiv .markersdivAddPlaylist, .markerdiv .markersdivEdit{margin-right:.8ex;}
.markerdiv div a, .markerdiv div a:visited, .markerdiv div a:hover{
.markerdiv .ts-marker, .markerdiv .ts-marker:hover, .markerdiv .ts-marker:visited{
font-family: monospace; background: #e65911;color: #FFF;padding-left: .3ex; padding-right:.3ex;
}
-.markersdivDelete{ background-image: url('/static/telemeta/images/del_marker.png');width:15px;height:2ex;background-repeat: no-repeat;}
+.markersdivDelete{ background-image: url('/static/teleforma/images/del_marker.png');width:15px;height:2ex;background-repeat: no-repeat;}
/*backfround-repeat is redundant with .markerDiv a,.. defined above but this way .markersDivDelete is re-usable in other context (eg popupdiv*/
-.markersdivAddPlaylist{ background-image: url('/static/telemeta/images/add_playlist_marker.png');width:13px;height:2ex; }
+.markersdivAddPlaylist{ background-image: url('/static/teleforma/images/add_playlist_marker.png');width:13px;height:2ex; }
.markersdivTitle{ font-weight:bold;}
.markersdivEdit, .markersdivEdit:hover, .markersdivEdit:visited{
line-height: normal;
font-size: 65%;
border:2px solid #666;
background-color: #fff;
- background-image: url('/static/telemeta/images/edit_marker.png');
+ background-image: url('/static/teleforma/images/edit_marker.png');
-moz-border-radius: 1ex; -webkit-border-radius: 1ex; border-radius: 1ex;
}
.markersdivSave, .markersdivSave:hover, .markersdivSave:visited{
padding:.7ex; padding-left: 20px;
background-position: 5px center;
-moz-border-radius: 1ex;-webkit-border-radius: 1ex;border-radius: 1ex;
- background-image: url('/static/telemeta/images/ok.png');
+ background-image: url('/static/teleforma/images/ok.png');
}
.markerdiv{
border: 1px solid #aaaaaa;
}
.icon_edit{
- background-image: url('/static/telemeta/images/edit_page.png');
+ background-image: url('/static/teleforma/images/edit_page.png');
}
.icon_copy{
- background-image: url('/static/telemeta/images/copy_page.png');
+ background-image: url('/static/teleforma/images/copy_page.png');
}
.icon_previous{
- background-image: url('/static/telemeta/images/previous.png');
+ background-image: url('/static/teleforma/images/previous.png');
}
.icon_next{
- background-image: url('/static/telemeta/images/next.png');
+ background-image: url('/static/teleforma/images/next.png');
}
.icon_dublin_core{
- background-image: url('/static/telemeta/images/dublin_core.png');
+ background-image: url('/static/teleforma/images/dublin_core.png');
}
.icon_cancel{
- background-image: url('/static/telemeta/images/cancel.png');
+ background-image: url('/static/teleforma/images/cancel.png');
}
.icon_save{
- background-image: url('/static/telemeta/images/save.png');
+ background-image: url('/static/teleforma/images/save.png');
}
.icon_add{
- background-image: url('/static/telemeta/images/add.png');
+ background-image: url('/static/teleforma/images/add.png');
}
.icon_add_to_playlist{
- background-image: url('/static/telemeta/images/add_to_playlist.png');
+ background-image: url('/static/teleforma/images/add_to_playlist.png');
}
.icon_login{
- background-image: url('/static/telemeta/images/password.png');
+ background-image: url('/static/teleforma/images/password.png');
}
.icon_search{
- background-image: url('/static/telemeta/images/find.png');
+ background-image: url('/static/teleforma/images/find.png');
}
.icon_ok{
- background-image: url('/static/telemeta/images/ok.png');
+ background-image: url('/static/teleforma/images/ok.png');
}
.icon_csv{
- background-image: url('/static/telemeta/images/csv.png');
+ background-image: url('/static/teleforma/images/csv.png');
}
.icon_playlist{
- background-image: url('/static/telemeta/images/playlist.png');
+ background-image: url('/static/teleforma/images/playlist.png');
}
.icon_filter{
- background-image: url('/static/telemeta/images/filter.png');
+ background-image: url('/static/teleforma/images/filter.png');
}
.icon_delete{
- background-image: url('/static/telemeta/images/delete.png');
+ background-image: url('/static/teleforma/images/delete.png');
}
.icon_download{
background-image: url('/static/teleforma/images/download_media.png');
background-image: url('/static/teleforma/images/tool-animator.png');
}
.icon_speaker{
- background-image: url('/static/telemeta/images/text-speak.png');
+ background-image: url('/static/teleforma/images/text-speak.png');
}
.icon_wait{
- background-image: url('/static/telemeta/images/wait.gif');
+ background-image: url('/static/teleforma/images/wait.gif');
}
.icon_rss,.icon_rss:hover{
- background: url('/static/telemeta/images/feed-icon-14x14.png') no-repeat;
+ background: url('/static/teleforma/images/feed-icon-14x14.png') no-repeat;
background-position: 0ex .8ex;
padding:.0ex 0ex .8ex .7ex;
text-decoration: none;
#module-set .module {
border: 1px solid #000;
- background: repeat url(/static/telemeta/images/tw_hd.png) 0 0;
+ background: repeat url(/static/teleforma/images/tw_hd.png) 0 0;
padding: 0.2em;
margin: 2em 1em 0em 0em;
-moz-border-radius: 8px 0px 11px 11px;
#module-set-left .module {
border: 1px solid #000;
- background: repeat url(/static/telemeta/images/tw_hd.png) 0 0;
+ background: repeat url(/static/teleforma/images/tw_hd.png) 0 0;
padding: 0.2em;
margin: 0em 0em 1.5em 0em;
-moz-border-radius: 8px 0px 11px 11px;
#module-set .ui-tabs.ui-widget-content footer{
text-align: center;
padding: 10px 0;
- background: repeat url(/static/telemeta/images/tw_hd.png) 0 0;
+ background: repeat url(/static/teleforma/images/tw_hd.png) 0 0;
}
#module-set .ui-tabs.ui-widget-content footer a{
-moz-border-radius: 8px 0px 8px 8px;
-webkit-border-radius: 8px 0px 8px 8px;
border-radius: 8px 0px 8px 8px;
- background:no-repeat url(/static/telemeta/images/bg_yt.png) 0 0;
+ background:no-repeat url(/static/teleforma/images/bg_yt.png) 0 0;
background-color:#ebebeb;
background-repeat:repeat;
}
--- /dev/null
+dl.listing, #rightcol {\r
+ margin-top: .4em;\r
+}\r
+dl.listing dd {\r
+ margin-top: .2em;\r
+}\r
+dl dd {\r
+ border-color: #fff;\r
+}\r
+dl.dublincore dd.caption {\r
+ margin-top: -.1em;\r
+}\r
+div.instruments {\r
+ margin-left: -.1em;\r
+ margin-right: .9em;\r
+}\r
+\r
--- /dev/null
+/* Min-width */\r
+/*#submenu h3, #submenu div {\r
+ height: 1.6em;\r
+}*/\r
})
}
$('.tabs').tabs();
+});
+
+
+
+/*
+ * Copyright (C) 2007-2012 Guillaume Pellerin, Parisson
+ * Copyright (c) 2011 Riccardo Zaccarelli <riccardo.zaccarelli@gmail.com>
+ * Copyright (c) 2010 Olivier Guilyardi <olivier@samalyse.com>
+ *
+ * This file is part of TimeSide.
+ *
+ * TimeSide is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * TimeSide is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with TimeSide. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Riccardo Zaccarelli <riccardo.zaccarelli@gmail.com>
+ * Olivier Guilyardi <olivier@samalyse.com>
+ */
+
+/**
+ * Class for telemeta global functions.
+ * Note that the dollar sign is a reserved keyword in some browsers
+ * (see http://davidwalsh.name/dollar-functions)
+ * which might be in conflict with jQuery dollar sign.
+ */
+
+//returns the full path of the current url location removing the last slash '/' followed by one or more '#', if any
+function urlNormalized(){
+ var sPath = window.location.href;
+ sPath = sPath.replace(/\/#*$/,"");
+ return sPath;
+}
+/**
+ *sets up few stuff when the page is ready (see functions below it)
+ */
+jQuery(document).ready(function() {
+ foldInfoBlocks();
+ setSelectedMenu();
+});
+
+/**
+ *function inherited from old code, never touched. Guess fixes the click on the left data table, if any
+ */
+function foldInfoBlocks() {
+ var $J = jQuery;
+ var extra = $J('.extraInfos');
+ extra.find('.folded dl, .folded table').css('display', 'none');
+ extra.find('h4').click(function() {
+ $J(this).parents('.extraInfos').children().toggleClass('folded').find('dl, table').toggle(100);
+ //toggle toggles the visibility of elements
+ return false;
+ });
+}
+
+/**
+ * Global telemeta function which sets the current selected menu according to the current url
+ */
+function setSelectedMenu(){
+ var $J = jQuery;
+ var menus = $J('#menu a');
+ //build collections/items from http:/site/collections/items,
+ //being http:/site/ = window.location.origin
+
+ //function for normalizing paths (removes last n occurrences of the slash)
+ var normalize = function(str){
+ return str.replace(/\/+#*$/,"");
+ }
+
+ var host = window.location.host;
+ var protocol = window.location.protocol
+ var href = normalize(window.location.href);
+
+ if(!(host) || !(protocol) || !(href)){
+ return;
+ }
+
+ //var pageOrigin = normalize(window.location.origin); //does not exist in FF, so:
+ var pageOrigin = normalize(protocol+"//"+host);
+ var pageHref = normalize(href);
+
+ menus.each(function(){
+ ///if we are at home, the window location href corresponds to window location origin,
+ //so we select only links whose link points EXACTLY to the origin (home link)
+ var linkHref = normalize(this.href);
+ var elm = $J(this);
+
+ if(linkHref.indexOf("#") != -1){
+ var reg = new RegExp("[#]+", "g");
+ var baseHref = linkHref.split(reg);
+ linkHref = pageOrigin + "/" + baseHref[1]
+ }
+
+ if(pageOrigin===pageHref){
+ if(pageHref == linkHref){
+ elm.addClass('active');
+ }else{
+ elm.removeClass('active');
+ }
+ }else{
+ //here, on the other hand, we select if a link points to a page or super page
+ //of the current page
+ if(linkHref!=pageOrigin && pageHref.match("^"+linkHref+".*")){
+ elm.addClass('active');
+ }else{
+ elm.removeClass('active');
+ }
+ }
+
+ })
+}
+
+
+
+
+/*****************************************************************************
+ * json(param, method, onSuccesFcn(data, textStatus, jqXHR), onErrorFcn(jqXHR, textStatus, errorThrown))
+ * global function to senbd/retrieve data with the server
+ *
+ * param: the data to be sent or retrieved.
+ * param will be converted to string, escaping quotes newlines and backslashes if necessary.
+ * param can be a javascript string, boolean, number, dictionary and array.
+ * If dictionary or array, it must contain only the above mentioned recognized types.
+ * So, eg, {[" a string"]} is fine, {[/asd/]} not
+ *
+ * method: the json method, eg "telemeta.update_marker". See base.py
+ *
+ * onSuccesFcn(data, textStatus, jqXHR) OPTIONAL --IF MISSING, NOTHING HAPPENS --
+ * A function to be called if the request succeeds with the same syntax of jQuery's ajax onSuccess function.
+ * The function gets passed three arguments
+ * The data returned from the server, formatted according to the dataType parameter;
+ * a string describing the status;
+ * and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object
+ *
+ * onErrorFcn(jqXHR, textStatus, errorThrown) OPTIONAL. --IF MISSING, THE DEFAULT ERROR DIALOG IS SHOWN--
+ * A function to be called if the request fails with the same syntax of jQuery ajax onError function..
+ * The function receives three arguments:
+ * The jqXHR (in jQuery 1.4.x, XMLHttpRequest) object,
+ * a string describing the type of error that occurred and
+ * an optional exception object, if one occurred.
+ * Possible values for the second argument (besides null) are "timeout", "error", "abort", and "parsererror".
+ * ****************************************************************************/
+
+var json = function(param,method,onSuccessFcn,onErrorFcn){
+ //this function converts a javascript object to a string
+ var toString_ = function(string){
+ if(typeof string == "string"){
+ //escapes newlines quotes and backslashes
+ string = string.replace(/\\/g,"\\\\")
+ .replace(/\n/g,"\\n")
+ .replace(/"/g,"\\\"");
+ }
+ var array; //used for arrays and objects (see below)
+ if(typeof string == "boolean" || typeof string== "number" || typeof string == "string"){
+ string = '"'+string+'"';
+ }else if(string instanceof Array){
+ array = [];
+ for(var i = 0;i <string.length ; i++){
+ array.push(toString_(string[i])); //recursive invocation
+ }
+ string='[';
+ string+=array.join(",");
+ string+=']';
+ }else{
+ array = [];
+ for(var k in string){
+ array.push(toString_(k)+":"+toString_(string[k])); //recursive invocation
+ }
+ string='{';
+ string+=array.join(",");
+ string+='}';
+ }
+ return string;
+ };
+
+ //creating the string to send.
+ var param2string = toString_(param);
+ var data2send = '{"id":"jsonrpc", "params":';
+ data2send+=param2string;
+ data2send+=', "method":"'
+ data2send+=method;
+ data2send+='","jsonrpc":"1.0"}';
+
+ var $J = jQuery;
+ $J.ajax({
+ type: "POST",
+ url: 'json/',
+ contentType: "application/json",
+ data: data2send,
+ dataType: "json",
+ success: function(data, textStatus, jqXHR){
+ if(onSuccessFcn){
+ onSuccessFcn(data, textStatus, jqXHR);
+ }
+ },
+ error: function(jqXHR, textStatus, errorThrown){
+ if(onErrorFcn){
+ onErrorFcn(jqXHR, textStatus, errorThrown);
+ return;
+ }
+ //default:
+ var details = "\n(no further info available)";
+ if(jqXHR) {
+ details="\nThe server responded witha status of "+jqXHR.status+" ("+
+ jqXHR.statusText+")\n\nDetails (request responseText):\n"+jqXHR.responseText;
+ }
+ alert("ERROR: Failed to save"+details);
+
+ }
+ });
+
+};
+
+/**
+ * function for writing to the console. Catches errors, if any (eg, console == undefined) and does nothing in case
+ */
+function consolelog(text){
+ if(typeof console != 'undefined'){
+ var c = console;
+ if (c.log) {
+ c.log(text);
+ }
+ }
+}
+
+// Drop down menus
+
+$(document).ready(function () {
+
+ $('#nav li').hover(
+ function () {
+ //show its submenu
+ $('ul', this).slideDown(200);
+
+ },
+ function () {
+ //hide its submenu
+ $('ul', this).slideUp(100);
+ }
+ );
+
});
\ No newline at end of file
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load teleforma_tags %}
-{% load telemeta_utils %}
{% load i18n %}
{% block content %}
<div style="margin-top: 4em; margin-bottom: 4em;">
-{% trans "Page not found" %}
+ {% trans "Page not found" %}
</div>
-{% endblock content %}
+{% endblock content %}
\ No newline at end of file
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load teleforma_tags %}
-{% load telemeta_utils %}
{% load i18n %}
{% block content %}
<div style="margin-top: 4em; margin-bottom: 4em;">
-{% trans "Server error" %}
+ {% trans "Server error" %}
</div>
-{% endblock content %}
+{% endblock content %}
\ No newline at end of file
<div id="module-set-left" style="width: 20%;">
<div class="module">
-<h3><img src="/static/telemeta/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% trans "Folders" %}</h3>
+<h3><img src="/static/teleforma/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% trans "Folders" %}</h3>
<div style="background: white;">
{% postman_unread as unread_count %}
-{% load i18n %}{% load telemeta_utils %}{% load teleforma_tags %}{% autoescape off %}{% trans "Hello" %} {{ object.recipient.first_name }} {{ object.recipient.last_name }},
+{% load i18n %}{% load teleforma_tags %}{% autoescape off %}{% trans "Hello" %} {{ object.recipient.first_name }} {{ object.recipient.last_name }},
{% if action == 'rejection' %}
{% blocktrans with object.sent_at|date:"DATETIME_FORMAT" as date and object.obfuscated_recipient as recipient %}On {{ date }}, you asked to send a message to the user '{{ recipient }}'.{% endblocktrans %}
-{% load i18n %}{% load telemeta_utils %}{% load teleforma_tags %}{% autoescape off %}{% trans "Hello" %} {{ object.recipient.first_name }} {{ object.recipient.last_name }},
+{% load i18n %}{% load teleforma_tags %}{% autoescape off %}{% trans "Hello" %} {{ object.recipient.first_name }} {{ object.recipient.last_name }},
Suite à votre inscription à la formation du Pré-Barreau, nous vous invitons à initialiser votre compte sur notre plateforme e-learning interactive et multi-média.
<div class="pm_header">
{% if message.obfuscated_sender %}
{% if not message.obfuscated_sender|startswith:'#' %}
- <a href="{% url telemeta-profile-detail message.obfuscated_sender %}" title="{% get_training_profile message.sender %}">
+ <a href="{% url teleforma-profile-detail message.obfuscated_sender %}" title="{% get_training_profile message.sender %}">
{% endif %}
<span class="pm_sender">{{ message.obfuscated_sender|or_me:user }}</span>
{% if not message.obfuscated_sender|startswith:'#' %}</a>{% endif %}»
{% endif %}
{% if message.obfuscated_recipient %}
{% if not message.obfuscated_recipient|startswith:'#' %}
- <a href="{% url telemeta-profile-detail message.obfuscated_recipient %}" title="{% get_training_profile message.recipient %}">
+ <a href="{% url teleforma-profile-detail message.obfuscated_recipient %}" title="{% get_training_profile message.recipient %}">
{% endif %}
<span class="pm_recipient">{{ message.obfuscated_recipient|or_me:user }}</span>
{% if not message.obfuscated_recipient|startswith:'#' %}</a>{% endif %} |
<!DOCTYPE html>
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load payment %}
{% extends "registration/registration_base.html" %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% block title %}<center>{% trans "Registration" %} - {% description %}</center>{% endblock %}
75006 Paris
<br><br><br>
-<a href="{% url teleforma-registration-view username %}" class="component_icon button" id="action_green" target="_blank"><img src="/static/telemeta/images/download.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
+<a href="{% url teleforma-registration-view username %}" class="component_icon button" id="action_green" target="_blank"><img src="/static/teleforma/images/download.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
<br><br><br>
Une fois votre dossier reçu et confirmé par nos services, vous recevrez un mail vous invitant à procéder au règlement des arrhes par carte bancaire. <b>Votre inscription ne sera validée qu’au terme de cette ultime étape.</b>
{% extends "registration/registration_base.html" %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% block title %}<center>{% trans "Registration" %} - {% description %}</center>{% endblock %}
75006 Paris
<br><br><br>
-<a href="{% url teleforma-corrector-registration-view username %}" class="component_icon button" id="action_green" target="_blank"><img src="/static/telemeta/images/download.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
+<a href="{% url teleforma-corrector-registration-view username %}" class="component_icon button" id="action_green" target="_blank"><img src="/static/teleforma/images/download.png" alt="" style="vertical-align:middle" /> {% trans "Download" %}</a>
<br><br><br>
Une fois votre dossier reçu et confirmé par nos services, vous recevrez un mail vous invitant à procéder au règlement des arrhes par carte bancaire. <b>Votre inscription ne sera validée qu’au terme de cette ultime étape.</b>
<!DOCTYPE html>
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% get_current_language as LANGUAGE_CODE %}
{% extends "registration/registration_base.html" %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% block extra_javascript %}
<!DOCTYPE html>
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% get_current_language as LANGUAGE_CODE %}
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% block head_title %}{% trans "Annals" %} - {{ iej }}{% endblock %}
<div id="module-set-left" style="width: 20%">
<div class="module">
-<h3><a href="{% url teleforma-home %}"><img src="/static/telemeta/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% trans "My courses" %}</a></h3>
+<h3><a href="{% url teleforma-home %}"><img src="/static/teleforma/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% trans "My courses" %}</a></h3>
<div style="background: white;">
<ul>
{% block courses %}
{% if user.is_superuser %}
<div class="module">
- <h3><img src="/static/telemeta/images/module_world.png" alt="IEJ" style="vertical-align:middle" /> {% trans "IEJ" %}</h3>
+ <h3><img src="/static/teleforma/images/module_world.png" alt="IEJ" style="vertical-align:middle" /> {% trans "IEJ" %}</h3>
<div style="background: white;">
<ul>
{% block iej %}
<div class="course_subtitle">
{% if not student %}
- <h3><img src="/static//telemeta/images/item_title.png" width="10px" alt="" /> {% if iej %}{{ iej }}{% else %}National{% endif %}</h3>
+ <h3><img src="/static/teleforma/images/item_title.png" width="10px" alt="" /> {% if iej %}{{ iej }}{% else %}National{% endif %}</h3>
{% endif %}
</div>
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load teleforma_tags %}
{% load thumbnail %}
-{% load telemeta_utils %}
{% load i18n %}
-{% extends "telemeta/base.html" %}
+<!DOCTYPE html>
{% load i18n %}
+{% load teleforma_tags %}
+{% get_googletools as googletools %}
+{% if googletools %}
+{% load googletools %}
+{% endif %}
+{% get_current_language as LANGUAGE_CODE %}
+{% get_available_languages as LANGUAGES %}
+<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}"
+ {% if LANGUAGE_BIDI %}dir="rtl" {% endif %}>
+
+<head>
+ <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+ <!--<meta name="Viewport" content="width=device-width" />
+<meta name="Viewport" content="initial-scale=1.0" />
+<meta name="Viewport" content="maximum-scale=1.5" />
+<meta name="Viewport" content="user-scalable=1" />-->
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta names="apple-mobile-web-app-status-bar-style" content="black-translucent" />
+ <link rel="icon" href="/static/teleforma/images/favicon.ico" />
+
+ <title>{%block head_title %}{% description %} - TeleForma{% endblock %}</title>
+
+ {% block stylesheets %}
+
+
+ <link rel="stylesheet" type="text/css" href="/static/teleforma/css/base.css" />
+ <link rel="stylesheet" type="text/css" href="/static/teleforma/css/teleforma.css" />
+
+ <!--[if IE]>
+<link rel="stylesheet" type="text/css" href="/static/teleforma/css/teleforma_ie.css" />
+<![endif]-->
+ <!--[if lte IE 6]>
+<link rel="stylesheet"type="text/css" href="/static/teleforma/css/teleforma_ie6.css" />
+<![endif]-->
+ {% endblock %}
+
+ {% block extra_stylesheets %}{% endblock %}
+
+ {% block javascript %}
+ <script src="{% url django.views.i18n.javascript_catalog %}" type="text/javascript"></script>
+ <script src="/static/teleforma/js/jquery-1.6.min.js" type="text/javascript"></script>
+ <script src="/static/teleforma/js/jquery-ui.js" type="text/javascript"></script>
+ <script src="/static/teleforma/js/jquery.expander.min.js" type="text/javascript"></script>
+ <script src="/static/teleforma/js/messi.min.js" type="text/javascript"></script>
+ <script src="/static/teleforma/js/rainbowvis.js" type="text/javascript"></script>
+ <script src="/static/jqchat/jqchat.js" type="text/javascript"></script>
+ <!-- <script src="/static/telemeta/js/locale.js" type="text/javascript"></script> -->
+ <script src="/static/teleforma/js/application.js" type="text/javascript"></script>
+
+ {% if user.is_authenticated %}
+ <script type='text/javascript'>var CURRENT_USER_NAME = "{{ user.username }}";</script>
+ {% else %}
+ <script type='text/javascript'>var CURRENT_USER_NAME = undefined;</script>
+ {% endif %}
+
+ {% block js-status %}
+ {% get_telecaster as telecaster %}
+ {% if telecaster %}
+ <script src="/static/telecaster/js/application.js" type="text/javascript"></script>
+ {% endif %}
+ {% endblock js-status %}
+
+ {% endblock %}
+
+ {% block extra_javascript %}{% endblock %}
+</head>
+
+<body>
+ {% block layout %}
+ <div id="layout">
+
+ {% block header %}
+ <div id="header">
+
+
+
+ <div id="menu">
+ <div id="logo_wrapper">
+ <div id="logo">
+ <img src="/static/teleforma/images/logo_pb.png" style="vertical-align:middle" alt="logo" />
+ </div>
+ </div>
+ {% block menu %}
+ {# spaces between li and a elements breaks layout #}
+
+ <ul id="nav">
+
+ {% if user.is_authenticated %}
+
+ {% if periods|length > 1 %}
+ <li><a href="#desk#" class="red"> {% trans "Desk" %} </a>
+ <ul>
+ {% for period in periods %}
+ <li><a href="{% url teleforma-desk-period-list period.id %}" class="red">{{ period.name }}</a></li>
+ {% endfor %}
+ </ul>
+ </li>
+ {% else %}
+ {% with periods.0 as period %}
+ <li><a href="{% url teleforma-desk-period-list period.id %}" class="red">{% trans "Desk" %}</a></li>
+ {% endwith %}
+ {% endif %}
+
+ {% else %}
+ <li><a href="#accounts#" class="red">{% trans "Home" %}</a></li>
+ {% endif %}
+
+ {% if user.is_authenticated %}
+
+ <li><a href="{% url postman_inbox %}" class="orange">{% trans "Messaging" %}{% if postman_unread_count %}
+ ({{ postman_unread_count }}){% endif %}</a></li>
+
+ <li><a href="{% url teleforma-annals %}" class="yellow">{% trans "Annals" %}</a></li>
+
+ {% if periods|length == 1 %}
+ <li><a href="{% url teleforma-exam-scripts-pending periods.0.id %}" class="green"> {% trans "Scripts" %}
+ {% if user.is_staff or user.quotas.all %}{% untreated_scripts_count user periods.0.id %}
+ {% else %}{% treated_scripts_count user periods.0.id %}{% endif %}</a>
+ </li>
+ {% else %}
+ <li><a href="#scripts#" class="green"> {% trans "Scripts" %}
+ {% if user.is_staff or user.quotas.all %}{% untreated_scripts_count user periods.0.id %}
+ {% else %}{% treated_scripts_count user periods.0.id %}{% endif %}</a>
+ <ul>
+ {% for period in periods %}
+ <li><a href="{% url teleforma-exam-scripts-pending period.id %}" class="green">{{ period.name }}</a></li>
+ {% endfor %}
+ </ul>
+ </li>
+ {% endif %}
+
+ {% if user.professor.count %}
+ <li><a href="{% url teleforma-webclass-professor %}" class="yellow">Webclass</a></li>
+ {% endif %}
+
+ {% if periods|length == 1 %}
+ <li><a href="{% url teleforma-exam-scripts-scores-all periods.0.id %}"
+ class="green"> {% trans "Scores" %}</a></li>
+ {% else %}
+ <li><a href="#scores#" class="green"> {% trans "Scores" %}</a>
+ <ul>
+ {% for period in periods %}
+ <li><a href="{% url teleforma-exam-scripts-scores-all period.id %}" class="green">{{ period.name }}</a>
+ </li>
+ {% endfor %}
+ </ul>
+ </li>
+ {% endif %}
+
+ {% if user.is_authenticated %}
+ {% if user.is_superuser %}
+ <li><a href="/admin/django/" target="_blank" class="blue">{% trans "Admin" %}</a></li>
+ {% else %}
+ <li><a href="{% url teleforma-help %}" class="blue">{% trans "Help" %}</a></li>
+ {% endif %}
+
+ {% if user.is_staff or user.is_superuser %}
+ <li
+ style="a.active{background-image:/static/teleforma/images/user_tr_bk.png; background-repeat: no-repeat; background-position: 1ex .5ex;}">
+ <a href="#accounts#" class="blue">{% if user.first_name and user.last_name %}{{ user.first_name }}
+ {{ user.last_name }}{% else %}{{ user.username }}{% endif %}</a>
+ <ul>
+ <li><a href="{% url teleforma-profile-detail user.username %}" class="yellow">{% trans "Profile" %}</a>
+ </li>
+ {% if user.is_staff %}
+ <li><a href="{% url teleforma-help %}">{% trans "Help" %}</a></li>
+ {% endif %}
+ <li><a href="{% url teleforma-logout %}">{% trans "Sign out" %}</a></li>
+ </ul>
+ </li>
+ {% else %}
+ <li><a href="{% url teleforma-profile-detail user.username %}" class="darkblue">{% trans "Profile" %}</a></li>
+ <li><a href="{% url teleforma-logout %}" class="black">{% trans "Sign out" %}</a></li>
+ {% endif %}
+
+ {% endif %}
+ {% endif %}
+
+ </ul>
+ {% endblock menu %}
+ </div>
+ </div>
+
+ {% endblock header %}
+
+ <div id="content">
+
+ <table id="content_header">
+ <tr>
+ <td class="leftcol">
+ <h1>{% block title %}{% endblock %}</h1>
+ </td>
+ <td class="rightcol">{% block title_buttons %}{% endblock %}</td>
+ </tr>
+ </table>
+
+ {% block postman_menu %}
+ {% endblock postman_menu %}
+
+
+ {% if messages %}
+ <ul class="messages">
+ {% for message in messages %}
+ <li{% if message.tags %} class="{{ message.tags }}" {% endif %}>{{ message }}</li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+
+ {% block content %}
+ {% endblock %}
+
+ <div class="nett"></div>
+
+ {% block delete %}
+ {% endblock %}
+
+ </div>
+
+ {% block footer %}
+ <div id="footer">
+ <hr />
+ <table width="100%">
+ <tr>
+ <td>
+ <p class="left">
+ {% trans "Powered by" %} <a href="http://parisson.com" target="_blank"><br /><strong>TeleForma
+ {% teleforma_version %}</strong></a><br />
+ </p>
+ </td>
+ <td>
+ <p class="center">
+ </p>
+ </td>
+ <td>
+ <p class="right">
+ Copyright © {% current_year %} {% organization %} |
+ TODO : missing link <!-- <a href="{ url telemeta-flatpage "legal_notices" }">{% trans "Legal notices" %}</a> -->
+ </p>
+ </td>
+ </tr>
+ </table>
+ </div>
+ {% endblock %}
+
+ </div>
+ {% endblock layout %}
+
+ {% block analytics %}
+ {% analytics_code %}
+ {% endblock analytics %}
+
+ <script type='text/javascript'>
+ window.scrollTo(0, 1);
+
+ $(document).ready(function () {
+ $("*").dblclick(function (e) {
+ e.preventDefault();
+ });
+ });
+
+ </script>
+
+</body>
+
+</html>
\ No newline at end of file
{% extends "teleforma/course_media.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
<dt>{% trans "Course" %}</dt><dd><a href="{% url teleforma-desk-period-course period.id course.id %}">{{ conference.course.title }} - {{ conference.course_type }}</a></dd>
<dt>{% trans "Session" %}</dt><dd>{{ conference.session }}</dd>
<dt>{% trans "Professor" %}</dt>
- <dd><a href="{% url telemeta-profile-detail conference.professor.user.username %}" target="_blank">{{ conference.professor }}</a></dd>
+ <dd><a href="{% url teleforma-profile-detail conference.professor.user.username %}" target="_blank">{{ conference.professor }}</a></dd>
{% endif %}
{% if conference.comment %}<dt>{% trans "Comment" %}</dt><dd>{{ conference.comment }}</dd>{% endif %}
{% extends "teleforma/course_media.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
<div class="course_content" id="media_infos">
<dl class="listing">
<dt>{% trans "Title" %}</dt><dd>{{ conference.course.title }}</dd>
-<dt>{% trans "Professor" %}</dt><dd><a href="{% url telemeta-profile-detail conference.professor.user.username %}" target="_blank">{{ conference.professor }}</a></dd>
+<dt>{% trans "Professor" %}</dt><dd><a href="{% url teleforma-profile-detail conference.professor.user.username %}" target="_blank">{{ conference.professor }}</a></dd>
<dt>{% trans "Session" %}</dt><dd>{{ conference.session }}</dd>
<dt>{% trans "Room" %}</dt><dd>{{ conference.room }}</dd>
<dt>{% trans "Begin" %}</dt><dd>{{ conference.date_begin }}</dd>
{% extends "teleforma/course_media.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% extends "teleforma/course_media.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
<script type="text/javascript" src="/static/teleforma/js/pdf-min.js"></script>
<script type="text/javascript">
- PDFJS.workerSrc = '/static/telemeta/js/pdf-min.js';
+ PDFJS.workerSrc = '/static/teleforma/js/pdf-min.js';
</script>
<script type="text/javascript">
{% extends "teleforma/course_detail.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% load thumbnail %}
<dt>{% trans "Session" %}</dt><dd>{{ media.conference.session }}</dd>
{% if media.conference.professor %}
<dt>{% trans "Professor" %}</dt>
- <dd><a href="{% url telemeta-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
+ <dd><a href="{% url teleforma-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
{% endif %}
{% if media.conference.comment %}<dt>{% trans "Comment" %}</dt><dd>{{ media.conference.comment }}</dd>{% endif %}
<dt>{% trans "Begin date" %}</dt><dd>{{ media.conference.date_begin }}</dd>
{% extends "teleforma/course_detail.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% load thumbnail %}
<dt>{% trans "Session" %}</dt><dd>{{ media.conference.session }}</dd>
{% if media.conference.professor %}
<dt>{% trans "Professor" %}</dt>
- <dd><a href="{% url telemeta-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
+ <dd><a href="{% url teleforma-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
{% endif %}
{% if media.conference.comment %}<dt>{% trans "Comment" %}</dt><dd>{{ media.conference.comment }}</dd>{% endif %}
<dt>{% trans "Begin date" %}</dt><dd>{{ media.conference.date_begin }}</dd>
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load teleforma_tags %}
{% load thumbnail %}
-{% load telemeta_utils %}
{% load i18n %}
{% block modules %}
<div class="module">
- <h3><img src="/static/telemeta/images/module_playlist.png" alt="playlists"
+ <h3><img src="/static/teleforma/images/module_playlist.png" alt="playlists"
style="vertical-align:middle" />{{ period }}</h3>
<div style="background: white;">
<ul>
{% endblock module-action %}
{% block notes %}
- <!--<div class="module">
-<h3><img src="/static/telemeta/images/view-pim-notes.png" alt="playlists" style="vertical-align:middle" />{% trans "My notes" %}</h3>
-<div style="background: white;">
-<ul>
-{% for note in notes %}
-<li>{{ note.content }}</li>
-{% endfor %}
-</ul>
-</div>
-</div>
-<div class="module_action">
-<a href="#" class="component_icon button" id="action_violet">{% trans "New note" %}</a>
-</div>-->
+
{% endblock notes %}
{% endblock modules %}
{% extends "teleforma/courses.html" %}
{% load teleforma_tags %}
-{% load telemeta_utils %}
{% load i18n %}
{% block module-action %}
{% extends "teleforma/base.html" %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% load i18n %}
{% block modules %}
<div id="module-set-left" style="width: 20%">
<div class="module">
-<h3><img src="/static/telemeta/images/module_playlist.png" alt="index" style="vertical-align:middle" />{% trans "Help" %}</h3>
+<h3><img src="/static/teleforma/images/module_playlist.png" alt="index" style="vertical-align:middle" />{% trans "Help" %}</h3>
<div style="background: white;">
<ul>
<li><a href="#recommandations">Recommandations</a></li>
--- /dev/null
+{% extends "teleforma/base.html" %}
+{% load i18n %}
+
+{% block content %}
+<div class="home-content">
+<div id="module-set">
+
+{% block modules %}
+
+{% with "Last changes" as title %}
+{% include "teleforma/inc/module_revisions.html" %}
+{% endwith %}
+
+{{ block.super }}
+
+{% endblock %}
+
+</div>
+
+<div class="home-description">
+<img class="align-left" src="/static/teleforma/images/vox.png" alt="vox" style="vertical-align:middle;" />
+{{ page_content|render_flatpage }}
+</div>
+
+<a href="{% url teleforma-login %}" class="component_icon button" id="action_red">{% trans "Connexion" %}</a>
+
+</div>
+{% endblock %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% show_chat user as display_chat %}
{% if display_chat %}
<div class="module">
- <h3><img src="/static/telemeta/images/vox_wh.png" %}" alt="rss" style="vertical-align:middle"
+ <h3><img src="/static/teleforma/images/vox_wh.png" %}" alt="rss" style="vertical-align:middle"
/>{% trans title %}</h3>
<div style="background: transparent;">
<div id="chatwindow"><span id="loading">Loading...</span></div>
{% if conferences|from_period:period %}
<div class="course_content content_video">
<div class="course_subtitle">
- <h3><img src="/static/telemeta/images/item_title.png" width="10px" alt="" /> {% trans "Live conferences"%}</h3>
+ <h3><img src="/static/teleforma/images/item_title.png" width="10px" alt="" /> {% trans "Live conferences"%}</h3>
</div>
<table class="listing" width="100%">
<tbody>
<dt>{% trans "Title" %}</dt><dd>{{ stream.conference.course.title }}</dd>
<dt>{% trans "Session" %}</dt><dd>{{ stream.conference.session }}</dd>
{% if stream.conference.professor.user.username %}
- <dt>{% trans "Professor" %}</dt><dd><a href="{% url telemeta-profile-detail stream.conference.professor.user.username %}" target="_blank">{{ stream.conference.professor }}</a></dd>
+ <dt>{% trans "Professor" %}</dt><dd><a href="{% url teleforma-profile-detail stream.conference.professor.user.username %}" target="_blank">{{ stream.conference.professor }}</a></dd>
{% endif %}
<dt>{% trans "Begin" %}</dt><dd>{{ stream.conference.date_begin }}</dd>
</dl>
<td {% if forloop.first %}class="border-top"{% endif %} width="10%" align="center">
{% if stream.streaming %}
<img src="/static/teleforma/images/network-wireless.png" style="vertical-align:middle" title="streaming" />
- <img src="/static/telemeta/images/media-record.png" style="vertical-align:middle" title="recording" />
+ <img src="/static/teleforma/images/media-record.png" style="vertical-align:middle" title="recording" />
{% endif %}
</td>
{% else %}
{% if course.document.all|from_course_type:type|from_period:period|published %}
<div class="course_content">
<div class="course_subtitle">
-<h3><img src="/static//telemeta/images/item_title.png" width="10px" alt="" /> {% trans "Documents"%}</h3>
+<h3><img src="/static/teleforma/images/item_title.png" width="10px" alt="" /> {% trans "Documents"%}</h3>
</div>
{% with course.document.all as docs %}
{% if course.media.all|from_course_type:type|from_period:period %}
<div class="course_content content_video">
<div class="course_subtitle">
- <h3><img src="/static/telemeta/images/item_title.png" width="10px" alt="" /> {% trans title %}</h3>
+ <h3><img src="/static/teleforma/images/item_title.png" width="10px" alt="" /> {% trans title %}</h3>
</div>
<table class="listing" width="100%">
<tbody>
<dt>{% trans "Title" %}</dt><dd>{{ media.conference.course.title }}</dd>
<dt>{% trans "Session" %}</dt><dd>{{ media.conference.session }}</dd>
{% if media.conference.professor %}
- <dt>{% trans "Professor" %}</dt><dd><a href="{% url telemeta-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
+ <dt>{% trans "Professor" %}</dt><dd><a href="{% url teleforma-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
{% endif %}
<dt>{% trans "Begin" %}</dt><dd>{{ media.conference.date_begin }}</dd>
{% if media.conference.comment %}
</td>
<td {% if forloop.first %}class="border-top"{% endif %} width="10%" align="center">
{% if media.is_published and user.is_staff %}
- <img src="/static/telemeta/images/ok.png" style="vertical-align:middle" alt="" title="{% trans ' published' %}" />
+ <img src="/static/teleforma/images/ok.png" style="vertical-align:middle" alt="" title="{% trans ' published' %}" />
{% elif not media.is_published and user.is_staff %}
- <img src="/static/telemeta/images/delete.png" style="vertical-align:middle" alt="" title="{% trans ' rejected' %}" />
+ <img src="/static/teleforma/images/delete.png" style="vertical-align:middle" alt="" title="{% trans ' rejected' %}" />
{% endif %}
{% if media.item.file and media.is_published or user.is_superuser or user.is_staff %}
{% if not "video" in media.mime_type or perms.telemeta.can_play_all_items or request.user_agent.os.family == 'iOS' %}
{% if course.media.all|from_course_type:type|from_period:period %}
<div class="course_content content_video">
<div class="course_subtitle">
- <h3><img src="/static/telemeta/images/item_title.png" width="10px" alt="" /> {% trans "Passed conferences"%}</h3>
+ <h3><img src="/static/teleforma/images/item_title.png" width="10px" alt="" /> {% trans "Passed conferences"%}</h3>
</div>
<table class="listing" width="100%">
<tbody>
<dt>{% trans "Title" %}</dt><dd>{{ media.conference.course.title }}</dd>
<dt>{% trans "Session" %}</dt><dd>{{ media.conference.session }}</dd>
{% if media.conference.professor %}
- <dt>{% trans "Professor" %}</dt><dd><a href="{% url telemeta-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
+ <dt>{% trans "Professor" %}</dt><dd><a href="{% url teleforma-profile-detail media.conference.professor.user.username %}" target="_blank">{{ media.conference.professor }}</a></dd>
{% endif %}
<dt>{% trans "Begin" %}</dt><dd>{{ media.conference.date_begin }}</dd>
{% if media.conference.comment %}
</td>
<td {% if forloop.first %}class="border-top"{% endif %} width="10%" align="center">
{% if media.is_published and user.is_staff %}
- <img src="/static/telemeta/images/ok.png" style="vertical-align:middle" alt="" title="{% trans ' published' %}" />
+ <img src="/static/teleforma/images/ok.png" style="vertical-align:middle" alt="" title="{% trans ' published' %}" />
{% elif not media.is_published and user.is_staff %}
- <img src="/static/telemeta/images/delete.png" style="vertical-align:middle" alt="" title="{% trans ' rejected' %}" />
+ <img src="/static/teleforma/images/delete.png" style="vertical-align:middle" alt="" title="{% trans ' rejected' %}" />
{% endif %}
{% if media.item.file %}
<a href="{{ MEDIA_URL }}{{ media.item.file }}">
--- /dev/null
+{% load i18n %}
+
+ <div class="module">
+ <h3>
+ <img src="/static/teleforma/images/search_wh2.png" alt="rss" style="vertical-align:middle" />
+ {% trans title %}</h3>
+
+ <div class="vscroll">
+ <table class="listing" bgcolor="#FFFFFF" style="width: 100%">
+ <tr>
+ <th>{% trans "Criteria" %}</th>
+ </tr>
+ {% for s in searches %}
+ <tr {% if not forloop.counter0|divisibleby:"2" %}class="odd"{% endif %}>
+ <td><a href="{% url telemeta-search-items %}?{{s.criteria.all|build_pattern_string|build_query_string}}">
+ {% for c in s.criteria.all %}
+ <li>{% trans c.key %} : {{ c.value}}</li>
+ {% endfor %}
+ </a>
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ </div>
+ </div>
+
{% load i18n %}
{% load static %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
<div class="tabs module">
--- /dev/null
+{% load i18n %}
+{% load teleforma_tags %}
+{% load pagination_tags %}
+
+<div class="pagination">
+ {% for p in page.paginator.pages %}
+ {% if p == page %}
+ <span class="selected">{{ page }}</span>
+ {% else %}
+ <a href="?page={{ p.number }}">{{ p }}</a>
+ {% endif %}
+ {% endfor %}
+</div>
+
+<div id="users">
+<div class="shadow">...</div>
+ <table class="listing" width="100%">
+ <thead>
+ <tr><th>{% trans "Last Name"%}</th>
+ <th>{% trans "First Name"%}</th>
+ <th>{% trans "IEJ"%}</th>
+ <th>{% trans "Trainings"%}</th>
+ <th>{% trans "Procedure"%}</th>
+ <th>{% trans "Written spe"%}</th>
+ <th>{% trans "Oral spe"%}</th>
+ <th>{% trans "Oral 1"%}</th>
+ <th>{% trans "Oral 2"%}</th>
+ <th>{% trans "Write"%}</th>
+ </tr>
+ </thead>
+ <tbody id="spacing">
+ {% for user in page.object_list %}
+ <tr>
+ <td><a href="{% url teleforma-profile-detail user.username %}">{{ user.last_name }}</a></td>
+ <td><a href="{% url teleforma-profile-detail user.username %}">{{ user.first_name }}</a></td>
+
+ {% if user.student.get %}
+ {% with user.student.get as student %}
+ <td>{{ student.iej.name }}</td>
+ <td>{% for training in student.trainings.all %}{{ training }} {% endfor %}</td>
+ <td>{{ student.procedure.code }}</td>
+ <td>{{ student.written_speciality.code }}</td>
+ <td>{{ student.oral_speciality.code }}</td>
+ <td>{{ student.oral_1.code }}</td>
+ <td>{{ student.oral_2.code }}</td>
+ {% endwith %}
+ {% elif user.professor.get %}
+ <td>{% trans "Professor" %}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ {% elif user.is_staff %}
+ <td>{% trans "Administrator" %}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ {% else %}
+ <td>{% trans "Unknown" %}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ {% endif %}
+ <td><a href="{% url postman_write user.username %}" class="component_icon button" id="action_orange">{% trans "Message" %}</a></td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+</div>
--- /dev/null
+{% extends "teleforma/base.html" %}
+{% load teleforma_tags %}
+{% load i18n %}
+
+{% block extra_javascript %}
+<script src="/static/telemeta/js/popupdiv-min.js" type="text/javascript"></script>
+<script src="/static/telemeta/js/playlist.js" type="text/javascript"></script>
+<script>
+ jQuery(window).ready(function(){
+ var p = playlistUtils;
+ var a = jQuery('#_new_playlist');
+ a.unbind('click').click(function(){p.showAdd(a);return false;});
+ });
+
+ {% for playlist in playlists %}
+ playlistUtils.addEditPlaylist('{{playlist.playlist.public_id}}','{{ playlist.playlist.title }}','{{playlist.playlist.description}}');
+ {% endfor %}
+
+
+</script>
+{% endblock %}
+
+{% block content %}
+<div id="module-set-left" style="width: 25%">
+
+ {% block module_searches %}
+ {% with searches as searches and "My searches" as title %}
+ {% include "teleforma/inc/module_searches.html" %}
+ {% endwith %}
+ {% endblock %}
+
+ {% block module_user_revisions %}
+ {% with user_revisions as revisions and "My last changes" as title %}
+ {% include "teleforma/inc/module_user_revisions.html" %}
+ {% endwith %}
+ {% endblock %}
+
+ {% block module_all_revisions %}
+ {% with revisions as revisions and "All last changes" as title %}
+ {% include "teleforma/inc/module_revisions.html" %}
+ {% endwith %}
+ {% endblock %}
+
+</div>
+
+<div class="desk_media">
+ <h1>{% trans "My playlists" %}</h1>
+ <a href="#" id="_new_playlist" style="float:right" class="component_icon button icon_add">
+ {% trans "Add" %}</a>
+ {% for playlist in playlists %}
+ <table class="listing" style="width:100%;margin-top: 3em">
+ <tr>
+ <td style="border-bottom:1px solid #6A0307;color:#6A0307;font-size: 100%">{{ playlist.playlist.title }}</td>
+ <td style="width:86ex; padding-right: 0; border-bottom:1px solid #6A0307; text-align:right">
+ <a href="#" id="{{playlist.playlist.public_id}}" onclick="playlistUtils.showEdit(this, this.id); return false;" class="component_icon button icon_edit">{% trans "Edit" %}</a>
+ <a href="{% url telemeta-playlist-csv-export playlist.playlist.public_id 'collections' %}" class="component_icon button icon_csv">CSV Collections</a>
+ <a href="{% url telemeta-playlist-csv-export playlist.playlist.public_id 'items' %}" class="component_icon button icon_csv">CSV Items</a>
+ <a href="#" id="{{playlist.playlist.public_id}}" onclick="if(confirm(gettrans('delete the playlist permanently?'))){playlistUtils.remove(this.id);};return false;" class="component_icon button icon_cancel">{% trans "Delete" %}</a>
+ </td>
+ </tr>
+ {% if playlist.playlist.description %}
+ <tr>
+ <td colspan="2" style="border-bottom:1px solid #6A0307;color:#6A0307;font-size: 80%">{{ playlist.playlist.description }}</td>
+ </tr>
+ {% endif %}
+ </table>
+ <table class="listing" width="100%">
+ <tr>
+ <th class="highlight">{% trans "Title" %}</th>
+ <th>{% trans "Type" %}</th>
+ <th>{% trans "Code" %}</th>
+ <th>{% trans "Recordist" %}</th>
+ <th>{% trans "Recording period" %}</th>
+ <th>{% trans "Sound" %}</th>
+ <th>{% trans "Action" %}</th>
+ </tr>
+ {% for resource in playlist.resources %}
+ <tr {% if not forloop.counter0|divisibleby:"2" %}class="odd"{% endif %}>
+ <td>
+ {% if resource.type == "item" and not resource.element == None %}
+ <a href="{% url telemeta-item-detail resource.element.public_id %}">{{ resource.element }}</a>
+ {% endif %}
+ {% if resource.type == "collection" and not resource.element == None %}
+ <a href="{% url telemeta-collection-detail resource.element.public_id %}">{% if resource.element.title %}{{ resource.element.title }}{% else %}{{ resource.element }}{% endif %}</a>
+ {% endif %}
+ {% if resource.type == "marker" and not resource.element == None %}
+ <a href="{% url telemeta-item-detail-marker resource.element.public_id %}">{{ resource.element }}</a>
+ {% endif %}
+ {% if resource.type == "corpus" or resource.type == "fonds" %}
+ <a href="{% url telemeta-resource-detail resource.type resource.element.public_id %}">{{ resource.element.title }}</a>
+ {% endif %}
+ {% if resource.element == None %}{% trans "deleted" %}{% endif %}
+ </td>
+ <td>{{ resource.type }}</td>
+ <td>
+ {{ resource.element.public_id }}
+ </td>
+ <td>{{ resource.element.apparent_collector }}</td>
+
+ <td>
+ {% if resource.element.recorded_from_date %}
+ {{ resource.element.recorded_from_date.year }}
+ {% if resource.element.recorded_to_date and not resource.element.recorded_to_date.year|equals:resource.element.recorded_from_date.year %}
+ - {{ resource.element.recorded_to_date.year }}
+ {% endif %}
+ {% endif %}
+ </td>
+ <td align="center" style="vertical-align:middle">
+ {% if resource.element.file or resource.element.has_mediafile %}
+ <img src="/static/teleforma/images/ok.png" alt="yes" style="vertical-align:middle" /></a>
+ {% endif %}
+ </td>
+ <td style="vertical-align:middle">
+ <a href="#" onclick="if(confirm(gettrans('delete the resource from the playlist permanently?'))){playlistUtils.removeResource('{{resource.public_id}}');};return false;" class="component_icon button icon_cancel" style="padding: 4px 12px;"></a>
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ {% endfor %}
+</div>
+{% endblock %}
+
--- /dev/null
+{% extends "teleforma/base.html" %}
+{% load i18n %}
+
+{% block title %}
+{% endblock %}
+
+{% block content %}
+<script>
+$(document).ready(function() {
+ $(this).keydown(function(e) {
+ if (e.keyCode == '13') {
+ $("#_loginForm").submit();
+ }
+ });
+});
+</script>
+
+{% if form.errors %}
+<p class="login-error">{% trans "Your username and password didn't match. Please try again." %}</p>
+{% endif %}
+<form class="login" id="_loginForm" method="post" action="{% url teleforma-login %}">{% csrf_token %}
+<p>
+{{ form.username.label_tag }}
+{{ form.username }}<br />
+{{ form.password.label_tag }}
+{{ form.password }}
+</p>
+<div style="margin-top: 2em;">
+<span style="align: right; font-weight: bold; margin-right: 2em;"><a href="{% url teleforma-password-reset %}">{% trans "Password forgotten" %} ?</a></span>
+<a href="#" class="component_icon button" id="action_red" onclick="$('#_loginForm').submit();"><img src="/static/teleforma/images/password.png" alt="" style="vertical-align:middle" /> {% trans "Sign in" %}</a>
+<input type="hidden" name="next" value="{{ next }}" />
+</div>
+</form>
+{% endblock %}
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% block content %}
<form method="post">{% csrf_token %}
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% block extra_javascript %}
{{ form.media }}
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% block content %}
<div id="actus_list">
--- /dev/null
+{% extends "teleforma/base.html" %}
+{% load i18n %}
+{% load teleforma_tags %}
+{% load payment %}
+
+{% block head_title %}{% trans "User Profile" %} : {{ usr.username }}{% endblock %}
+
+{% block title %}
+{% endblock %}
+
+{% block content %}
+ <div id="module-set-left" style="width: 20%">
+ {% block modules %}
+
+ <div class="module">
+ <h3><a href="{% url teleforma-home %}"><img src="/static/teleforma/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% if user.username != usr.username%}{% trans "His courses" %}{% else %}{% trans "My courses" %}{% endif %}</a></h3>
+ <div style="background: white;">
+ <ul>
+ {% block courses %}
+ {% with usr|user_courses as courses %}
+ {% for c in courses %}
+ {% with c.course as course %}
+ <li><a href="#">{{ course.title}} {{ course.type }}</a></li>
+ {% endwith %}
+ {% endfor %}
+ {% endwith %}
+ {% endblock courses %}
+ </ul>
+ </div>
+ </div>
+
+ {% endblock %}
+
+ {% if user.is_authenticated and user.username != usr.username %}
+ <div class="module_action">
+ <a href="{% url postman_write usr.username %}" class="component_icon button" id="action_orange">{% trans "Send a message" %}</a>
+ </div>
+ {% endif %}
+ </div>
+
+<div class="desk_large">
+<div class="course">
+
+ <h1>{% trans "User profile" %} : {{ usr.username }}
+ </h1>
+
+ <div id="password" style="float: right;">
+ {% if user.is_authenticated and user.username == usr.username %}
+ <a href="{% url teleforma-password-change %}" class="component_icon button icon_login">{% trans "Change password" %}</a>
+ {% elif user.is_staff %}
+ <a href="{% url teleforma-user-login usr.id %}" class="component_icon button icon_login">{% trans "Login as" %}</a>
+ {% endif %}
+ </div>
+
+ <div class="course_content">
+
+ <div class="infos" style="width: 55%">
+ {% if usr.student.get.portrait %}
+ <img style="float:right" src="{{ usr.student.get.portrait.url }}" />
+ {% endif %}
+ <dl class="listing">
+
+ <dt>{% trans "First Name" %}</dt><dd>{{ usr.first_name }}</dd>
+ <dt>{% trans "Last Name" %}</dt><dd>{{ usr.last_name }}</dd>
+ <dt>{% trans "Username" %}</dt><dd>{{ usr.username }}</dd>
+
+ {% if usr.student.get %}
+ <dt>{% trans "IEJ" %}</dt><dd>{{ usr.student.get.iej }}</dd>
+ <dt>{% trans "Trainings" %}</dt><dd>{% for training in usr.student.get.trainings.all %}{{ training }}<br />{% endfor %}</dd>
+ <dt>{% trans "Platform only" %}</dt><dd>{{ usr.student.get.platform_only|yes_no }}</dd>
+ <dt>{% trans "Procedure"%}</dt><dd>{{ usr.student.get.procedure}}</dd>
+ <dt>{% trans "Oral spe"%}</dt><dd>{{ usr.student.get.oral_speciality }}</dd>
+ <dt>{% trans "Written spe"%}</dt><dd>{{Â usr.student.get.written_speciality }}</dd>
+ <dt>{% trans "Oral 1"%}</dt><dd>{{ usr.student.get.oral_1 }}</dd>
+ <dt>{% trans "Oral 2"%}</dt><dd>{{ usr.student.get.oral_2 }}</dd>
+ <dt>{% trans "Options"%}</dt><dd>{{ usr.student.get.options }}</dd>
+ {% endif %}
+
+ {% if user.is_staff or user.is_superuser or usr == user %}
+ <dt>{% trans "Email" %}</dt><dd>{{ usr.email }}</dd>
+ <dt>{% trans "Address" %}</dt><dd>{{ usr.profile.get.address }}{% if usr.profile.get.address_detail %}, {% endif %}</span>{{ usr.profile.get.address_detail }}{% if usr.profile.get.postal_code or usr.profile.get.city %}, {% endif %}{{ usr.profile.get.postal_code }} {{ usr.profile.get.city }}</dd>
+ <dt>{% trans "Telephone" %}</dt><dd>{{ usr.profile.get.telephone }}</dd>
+ <dt>{% trans "WiFi login" %}</dt><dd>{{ usr.profile.get.wifi_login }}</dd>
+ <dt>{% trans "WiFi password" %}</dt><dd>{{ usr.profile.get.wifi_pass }}</dd>
+ {% endif %}
+
+ <dt>{% trans "Date added" %}</dt><dd>{{ usr.date_joined }}</dd>
+ <dt>{% trans "Expiration date" %}</dt><dd>{{ usr.profile.get.expiration_date }}</dd>
+ <dt>{% trans "Last login" %}</dt><dd>{{ usr.last_login }}</dd>
+
+ {% if user.is_authenticated and user.username == usr.username %}
+ <dt>{% trans "Language" %}</dt><dd><form id="setlang" action="/i18n/setlang/" method="post">{% csrf_token %}
+ <input name="next" type="hidden" value="" />
+ <select name="language">
+ {% for lang in LANGUAGES %}
+ <option {% if lang.0 == LANGUAGE_CODE %}selected{% endif %} value="{{ lang.0 }}">{{ lang.1 }}</option>
+ {% endfor %}
+ </select><br /><br />
+ <a href="#" class="component_icon button icon_ok"
+ onclick="document.getElementById('setlang').submit(); return false;">{% trans "Apply" %}</a>
+ </form>
+ </dd>
+ {% endif %}
+ </dl>
+ </div>
+ </div>
+
+ {% if payment %}
+ {% payment_summary payment with_pending=False %}
+ {% endif %}
+
+<div class="buttons">
+</div>
+
+</div>
+</div>
+{% endblock content %}
+
--- /dev/null
+{% extends "teleforma/base.html" %}
+{% load i18n %}
+
+{% block head_title %}{% trans "Advanced Search" %} - {{ block.super }}{% endblock %}
+
+{% block stylesheets %}
+{{ block.super }}
+<link rel="stylesheet" type="text/css" href="/static/telemeta/css/jquery.autocomplete.css" />
+{% endblock %}
+
+{% block extra_javascript %}
+<script src="/static/telemeta/js/jquery.bgiframe.js" type="text/javascript"></script>
+<script src="/static/telemeta/js/jquery.autocomplete.js" type="text/javascript"></script>
+<script type="text/javascript">
+function update_period(source, from_field, to_field) {
+ var from_year = $(from_field);
+ var to_year = $(to_field);
+
+ if (from_year.val() == "0") {
+ to_year.attr('disabled', '1');
+ to_year.val('0');
+ } else {
+ to_year.removeAttr('disabled');
+ if ($(source).is(to_field)) {
+ if (parseInt(from_year.val()) > parseInt(to_year.val()))
+ from_year.val(to_year.val());
+ } else if (parseInt(from_year.val()) > parseInt(to_year.val())) {
+ to_year.val(from_year.val());
+ }
+ }
+}
+
+$(document).ready(function () {
+ $('#location').autocomplete('{% url telemeta-complete-location %}', {
+ max: 20,
+ formatResult: function(data) {
+ return data[0].replace(/ *\([0-9]+.*\) *$/, '');
+ }
+ });
+ update_period('#rec_year_from', '#rec_year_to');
+ $('#rec_year_from, #rec_year_to').change(function () {
+ update_period(this, '#rec_year_from', '#rec_year_to');
+ });
+ update_period('#pub_year_from', '#pub_year_to');
+ $('#pub_year_from, #pub_year_to').change(function () {
+ update_period(this, '#pub_year_from', '#pub_year_to');
+ });
+});
+
+</script>
+{% endblock %}
+
+{% block title %}
+{% endblock %}
+
+{% block content %}
+
+<div id="module-set-left" style="width: 20%">
+
+ {% block module_searches %}
+ {% with searches as searches and "My searches" as title %}
+ {% include "telemeta/inc/module_searches.html" %}
+ {% endwith %}
+ {% endblock %}
+
+<div class="module_action">
+ <a href="#" class="component_icon button" id="action_yellow"
+ onclick="document.getElementById('searchform').submit(); return false;">{% trans 'Search' %}</a>
+</div>
+
+</div>
+
+<div class="desk_center">
+<div class="course">
+<h1>{% trans "Advanced Search" %}</h1>
+
+<form action="{% url telemeta-search %}" id="searchform">{% csrf_token %}
+<fieldset>
+
+ <p>
+ <label for="location">{% field_label "Location" %}</label>
+ <input type="text" name="location" id="location" value="{{ criteria.location }}" />
+ </p>
+
+ <p>
+ <label for="ethnic_group">{% field_label "EthnicGroup" %}</label>
+ <select id="ethnic_group" name="ethnic_group">
+ <option value="">All ethnic groups</option>
+ {% for group in ethnic_groups %}
+ <option value="{{group.id}}" {% ifequal criteria.ethnic_group.id group.id %}selected {% endifequal %}>{{group|escape}}</option>
+ {% endfor %}
+ </select>
+ </p>
+
+ <p>
+ <label for="title">{% trans "Title" %}</label>
+ <input type="text" id="title" name="title" />
+ </p>
+
+ <p>
+ <label for="creator">{% field_label "MediaCollection" "creator" %}</label>
+ <input type="text" id="creator" name="creator" />
+ </p>
+
+ <p>
+ <label for="collector">{% field_label "MediaCollection" "collector" %}</label>
+ <input type="text" id="collector" name="collector" />
+ </p>
+
+ {% if rec_years %}
+ <p>
+ <label for="rec_date_from">{% trans "Year of recording" %}</label>
+ <select id="rec_year_from" name="rec_year_from" class="tiny">
+ <option value="0"></option>
+ {% for year in rec_years %}
+ <option value="{{ year }}" {% ifequal criteria.rec_year_from year %}selected {% endifequal %}>{{year}}</option>
+ {% endfor %}
+ </select>
+ {% trans "to" %}
+ <select id="rec_year_to" name="rec_year_to" class="tiny">
+ <option value="0"></option>
+ {% for year in rec_years %}
+ <option value="{{ year }}" {% ifequal criteria.rec_year_to year %}selected {% endifequal %}>{{year}}</option>
+ {% endfor %}
+ </select>
+ </p>
+ {% endif %}
+
+ {% if pub_years %}
+ <p>
+ <label for="pub_date_from">{% trans "Year of publication" %}</label>
+ <select id="pub_year_from" name="pub_year_from" class="tiny">
+ <option value="0"></option>
+ {% for year in pub_years %}
+ <option value="{{ year }}" {% ifequal criteria.pub_year_from year %}selected {% endifequal %}>{{year}}</option>
+ {% endfor %}
+ </select>
+ {% trans "to" %}
+ <select id="pub_year_to" name="pub_year_to" class="tiny">
+ <option value="0"></option>
+ {% for year in pub_years %}
+ <option value="{{ year }}" {% ifequal criteria.pub_year_to year %}selected {% endifequal %}>{{year}}</option>
+ {% endfor %}
+ </select>
+ </p>
+ {% endif %}
+
+ <p><label for="sound">{% trans "Sound" %}</label>
+ <input type="checkbox" name="sound" value="True" align="left" />
+ </p>
+
+</fieldset>
+
+</form>
+
+</div>
+</div>
+
+
+{% endblock %}
--- /dev/null
+{% extends "teleforma/base.html" %}
+{% load i18n %}
+{% load teleforma_tags %}
+
+{% block head_title %}{% trans "Users" %} - {{ block.super }}{% endblock %}
+
+{% block title %}
+{% endblock %}
+
+{% block content %}
+<div id="module-set-left" style="width: 20%">
+
+<div class="module">
+<h3><img src="/static/teleforma/images/module_playlist.png" alt="Trainings" style="vertical-align:middle" />{% trans "Trainings" %}</h3>
+<div style="background: white;">
+<ul>
+{% block trainings %}
+{% for t in trainings %}
+<li><a href="{% url teleforma-users t.id iej.id course.id %}">{{ t.code|lower|capfirst }} - {{ t.period|lower|capfirst }}</a></li>
+{% endfor %}
+{% endblock trainings %}
+</ul>
+</div>
+</div>
+
+<div class="module">
+<h3><img src="/static/teleforma/images/module_world.png" alt="IEJ" style="vertical-align:middle" /> {% trans "IEJ" %}</h3>
+<div style="background: white;">
+<ul>
+{% block iej %}
+{% for i in iejs %}
+<li><a href="{% url teleforma-users training.id i.id course.id %}">{{ i.name|lower|capfirst }}</a></li>
+{% endfor %}
+{% endblock iej %}
+</ul>
+</div>
+</div>
+
+<div class="module">
+<h3><img src="/static/teleforma/images/module_playlist.png" alt="Courses" style="vertical-align:middle" />{% trans "Courses" %}</h3>
+<div style="background: white;">
+<ul>
+{% block courses %}
+{% for c in courses %}
+<li><a href="{% url teleforma-users training.id iej.id c.id %}">{{ c }}</a></li>
+{% endfor %}
+{% endblock courses %}
+</ul>
+</div>
+</div>
+
+{% if users %}
+<div class="module_action">
+<a href="{% url postman_write users|to_recipients %}" class="component_icon button" id="action_orange">{% trans "Grouped message" %}</a>
+</div>
+{% endif %}
+
+</div>
+
+<div class="desk_messages">
+
+{% if user.is_staff %}
+<div style="float:right;">
+<a href="{% url teleforma-users-export training.id iej.id course.id %}" class="component_icon button icon_csv">XLS Export</a>
+</div>
+{% endif %}
+
+<div class="course_title">{% trans "Users" %} ({{ users|length }}){% if training.id != 0 %} - {{ training }}{% endif %}{% if iej.id != 0 %} - {{ iej }}{% endif %}{% if course.id != 0 %} - {{ course }}{% endif %}</div>
+<br />
+ {% if users %}
+ {% include "teleforma/inc/user_list.html" %}
+ {% else %}
+ <p class="help">{% trans "No users" %}</p>
+ {% endif %}
+</div>
+{% endblock %}
+++ /dev/null
-<!DOCTYPE html>
-{% load i18n %}
-{% load telemeta_utils %}
-{% load teleforma_tags %}
-{% get_googletools as googletools %}
-{% if googletools %}
-{% load googletools %}
-{% endif %}
-{% get_current_language as LANGUAGE_CODE %}
-{% get_available_languages as LANGUAGES %}
-<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}><head>
-<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
-<!--<meta name="Viewport" content="width=device-width" />
-<meta name="Viewport" content="initial-scale=1.0" />
-<meta name="Viewport" content="maximum-scale=1.5" />
-<meta name="Viewport" content="user-scalable=1" />-->
-<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-<meta name="apple-mobile-web-app-capable" content="yes" />
-<meta names="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-<link rel="icon" href="/static/teleforma/images/favicon.ico"/>
-
-<title>{%block head_title %}{% description %} - TeleForma{% endblock %}</title>
-
-{% block stylesheets %}
-
-
-<link rel="stylesheet" type="text/css" href="/static/telemeta/css/telemeta.css" />
-<link rel="stylesheet" type="text/css" href="/static/teleforma/css/teleforma.css" />
-
-<!--[if IE]>
-<link rel="stylesheet" type="text/css" href="/static/telemeta/css/telemeta_ie.css" />
-<![endif]-->
-<!--[if lte IE 6]>
-<link rel="stylesheet"type="text/css" href="/static/telemeta/css/telemeta_ie6.css" />
-<![endif]-->
-{% endblock %}
-
-{% block extra_stylesheets %}{% endblock %}
-
-{% block javascript %}
-<script src="{% url django.views.i18n.javascript_catalog %}" type="text/javascript"></script>
-<script src="/static/teleforma/js/jquery-1.6.min.js" type="text/javascript"></script>
-<script src="/static/teleforma/js/jquery-ui.js" type="text/javascript"></script>
-<script src="/static/teleforma/js/jquery.expander.min.js" type="text/javascript"></script>
-<script src="/static/teleforma/js/messi.min.js" type="text/javascript"></script>
-<script src="/static/teleforma/js/rainbowvis.js" type="text/javascript"></script>
-<script src="/static/jqchat/jqchat.js" type="text/javascript" ></script>
-<script src="/static/telemeta/js/locale.js" type="text/javascript"></script>
-<script src="/static/telemeta/js/application.js" type="text/javascript"></script>
-<script src="/static/teleforma/js/application.js" type="text/javascript"></script>
-
-{% if user.is_authenticated %}
-<script type='text/javascript'>var CURRENT_USER_NAME="{{ user.username }}";</script>
-{% else %}
-<script type='text/javascript'>var CURRENT_USER_NAME=undefined;</script>
-{% endif %}
-
-{% block js-status %}
-{% get_telecaster as telecaster %}
-{% if telecaster %}
-<script src="/static/telecaster/js/application.js" type="text/javascript"></script>
-{% endif %}
-{% endblock js-status %}
-
-{% endblock %}
-
-{% block extra_javascript %}{% endblock %}
-</head>
-
-<body>
-{% block layout %}
-<div id="layout">
-
-{% block header %}
-<div id="header">
-
-
-
-<div id="menu">
-<div id="logo_wrapper">
-<div id="logo">
-<img src="/static/teleforma/images/logo_pb.png" style="vertical-align:middle"
-alt="logo" />
-</div>
-</div>
-{% block menu %}
-{# spaces between li and a elements breaks layout #}
-
-<ul id="nav">
-
- {% if user.is_authenticated %}
-
- {% if periods|length > 1 %}
- <li><a href="#desk#" class="red"> {% trans "Desk" %} </a>
- <ul>
- {% for period in periods %}
- <li><a href="{% url teleforma-desk-period-list period.id %}" class="red">{{ period.name }}</a></li>
- {% endfor %}
- </ul>
- </li>
- {% else %}
- {% with periods.0 as period %}
- <li><a href="{% url teleforma-desk-period-list period.id %}" class="red">{% trans "Desk" %}</a></li>
- {% endwith %}
- {% endif %}
-
- {% else %}
- <li><a href="#accounts#" class="red">{% trans "Home" %}</a></li>
- {% endif %}
-
- {% if user.is_authenticated %}
-
- <li><a href="{% url postman_inbox %}" class="orange">{% trans "Messaging" %}{% if postman_unread_count %} ({{ postman_unread_count }}){% endif %}</a></li>
-
- <li><a href="{% url teleforma-annals %}" class="yellow">{% trans "Annals" %}</a></li>
-
- {% if periods|length == 1 %}
- <li><a href="{% url teleforma-exam-scripts-pending periods.0.id %}" class="green"> {% trans "Scripts" %}
- {% if user.is_staff or user.quotas.all %}{% untreated_scripts_count user periods.0.id %}
- {% else %}{% treated_scripts_count user periods.0.id %}{% endif %}</a>
- </li>
- {% else %}
- <li><a href="#scripts#" class="green"> {% trans "Scripts" %}
- {% if user.is_staff or user.quotas.all %}{% untreated_scripts_count user periods.0.id %}
- {% else %}{% treated_scripts_count user periods.0.id %}{% endif %}</a>
- <ul>
- {% for period in periods %}
- <li><a href="{% url teleforma-exam-scripts-pending period.id %}" class="green">{{ period.name }}</a></li>
- {% endfor %}
- </ul>
- </li>
- {% endif %}
-
- {% if user.professor.count %}
- <li><a href="{% url teleforma-webclass-professor %}" class="yellow">Webclass</a></li>
- {% endif %}
-
- {% if periods|length == 1 %}
- <li><a href="{% url teleforma-exam-scripts-scores-all periods.0.id %}" class="green"> {% trans "Scores" %}</a></li>
- {% else %}
- <li><a href="#scores#" class="green"> {% trans "Scores" %}</a>
- <ul>
- {% for period in periods %}
- <li><a href="{% url teleforma-exam-scripts-scores-all period.id %}" class="green">{{ period.name }}</a></li>
- {% endfor %}
- </ul>
- </li>
- {% endif %}
-
- {% if user.is_authenticated %}
- {% if user.is_superuser %}
- <li><a href="/admin/django/" target="_blank" class="blue">{% trans "Admin" %}</a></li>
- {% else %}
- <li><a href="{% url teleforma-help %}" class="blue">{% trans "Help" %}</a></li>
- {% endif %}
-
- {% if user.is_staff or user.is_superuser %}
- <li style="a.active{background-image:/static/telemeta/images/user_tr_bk.png; background-repeat: no-repeat; background-position: 1ex .5ex;}">
- <a href="#accounts#" class="blue">{% if user.first_name and user.last_name %}{{ user.first_name }} {{ user.last_name }}{% else %}{{ user.username }}{% endif %}</a>
- <ul>
- <li><a href="{% url telemeta-profile-detail user.username %}" class="yellow">{% trans "Profile" %}</a></li>
- {% if user.is_staff %}
- <li><a href="{% url telemeta-desk-lists %}">{% trans "Lists" %}</a></li>
- <li><a href="{% url teleforma-help %}">{% trans "Help" %}</a></li>
- {% endif %}
- <li><a href="{% url telemeta-logout %}">{% trans "Sign out" %}</a></li>
- </ul>
- </li>
- {% else %}
- <li><a href="{% url telemeta-profile-detail user.username %}" class="darkblue">{% trans "Profile" %}</a></li>
- <li><a href="{% url telemeta-logout %}" class="black">{% trans "Sign out" %}</a></li>
- {% endif %}
-
- {% endif %}
-{% endif %}
-
-</ul>
-{% endblock menu %}
-</div>
-</div>
-
-{% endblock header %}
-
-<div id="content">
-
- <table id="content_header"><tr>
- <td class="leftcol"><h1>{% block title %}{% endblock %}</h1></td>
- <td class="rightcol">{% block title_buttons %}{% endblock %}</td>
- </tr></table>
-
- {% block postman_menu %}
- {% endblock postman_menu %}
-
-
- {% if messages %}
- <ul class="messages">
- {% for message in messages %}
- <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
- {% endfor %}
- </ul>
- {% endif %}
-
- {% block content %}
- {% endblock %}
-
- <div class="nett"></div>
-
- {% block delete %}
- {% endblock %}
-
-</div>
-
-{% block footer %}
-<div id="footer">
- <hr />
- <table width="100%">
- <tr>
- <td>
- <a id="telemeta_powered" href="{% telemeta_url %}" target="_blank"><img src="/static/telemeta/images/logo_mini_2.png" alt="Telemeta Powered"/></a>
- <p class="left">
- {% trans "Powered by" %} <a href="http://parisson.com" target="_blank"><br /><strong>TeleForma {% teleforma_version %}</strong></a><br />
- </p>
- </td>
- <td>
- <p class="center">
- </p>
- </td>
- <td>
- <p class="right">
- Copyright © {% current_year %} {% organization %} |
- <a href="{% url telemeta-flatpage "legal_notices" %}">{% trans "Legal notices" %}</a>
- </p>
- </td>
- </tr>
- </table>
-</div>
-{% endblock %}
-
-</div>
-{% endblock layout %}
-
-{% block analytics %}
-{% analytics_code %}
-{% endblock analytics %}
-
-<script type='text/javascript'>
-window.scrollTo(0, 1);
-
-$(document).ready(function(){
- $("*").dblclick(function(e){
- e.preventDefault();
- });
-});
-
-</script>
-
-</body>
-</html>
+++ /dev/null
-{% extends "telemeta/base.html" %}
-{% load telemeta_utils %}
-{% load i18n %}
-
-{% block content %}
-<div class="home-content">
-<div id="module-set">
-
-{% block modules %}
-
-{% with "Last changes" as title %}
-{% include "telemeta/inc/module_revisions.html" %}
-{% endwith %}
-
-{{ block.super }}
-
-{% endblock %}
-
-</div>
-
-<div class="home-description">
-<img class="align-left" src="/static/telemeta/images/vox.png" alt="vox" style="vertical-align:middle;" />
-{{ page_content|render_flatpage }}
-</div>
-
-<a href="{% url telemeta-login %}" class="component_icon button" id="action_red">{% trans "Connexion" %}</a>
-
-</div>
-{% endblock %}
+++ /dev/null
-{% load telemeta_utils %}
-{% load i18n %}
-
- <div class="module">
-
- {% block rss_title %}
- <a href="{% url telemeta-rss %}">
- <img src="/static/telemeta/images/rss.png" alt="rss" style="vertical-align:middle" />
- <h3>{% trans title %}</h3></a>
- <a href="{% url telemeta-rss %}" style="float:right" class="icon_rss"> </a>
- {% endblock rss_title %}
-
- <div class="vscroll">
- <table class="listing" bgcolor="#FFFFFF" style="width: 100%">
- <tr>
- <th class="highlight">{% trans "Date" %}</th>
- <th>{% trans "Title" %}</th>
- <th>{% trans "Type" %}</th>
- <th>{% trans "User" %}</th>
- </tr>
- {% for r in revisions %}
- <tr {% if not forloop.counter0|divisibleby:"2" %}class="odd"{% endif %}>
- <td>{{ r.revision.time }}</td>
- <td>
- {% if r.element %}
- {% if r.revision.element_type == "corpus" or r.revision.element_type == "fonds"%}
- <a href="{% url telemeta-resource-detail r.revision.element_type r.element.public_id %}">{{ r.element.title }}</a>
- {% endif %}
- {% if r.revision.element_type == "collection" %}
- <a href="{% url telemeta-collection-detail r.element.public_id %}">{{ r.element.title }}</a>
- {% endif %}
- {% if r.revision.element_type == "item" %}
- <a href="{% url telemeta-item-detail r.element.public_id %}">
- {% if r.element.title != '' %}{{ r.element.title }}{% else %}{{ r.element.collection.title }} - {{ r.element.track }}{% endif %}</a>
- {% endif %}
- {% if r.revision.element_type == "marker" %}
- <a href="{% url telemeta-item-detail-marker r.element.public_id %}">{{ r.element.title }}</a>
- {% endif %}
- {% else %}
- {% trans "deleted" %}
- {% endif %}
- </td>
- <td>{{ r.revision.element_type }}</td>
- <td>{% if r.revision.user %}<a href="{% url telemeta-profile-detail r.revision.user.username %}">{{ r.revision.user.username }}</a>{% endif %}</td>
- </tr>
- {% endfor %}
- </table>
- </div>
- </div>
\ No newline at end of file
+++ /dev/null
-{% load telemeta_utils %}
-{% load i18n %}
-
- <div class="module">
- <h3>
- <img src="/static/telemeta/images/search_wh2.png" alt="rss" style="vertical-align:middle" />
- {% trans title %}</h3>
-
- <div class="vscroll">
- <table class="listing" bgcolor="#FFFFFF" style="width: 100%">
- <tr>
- <th>{% trans "Criteria" %}</th>
- </tr>
- {% for s in searches %}
- <tr {% if not forloop.counter0|divisibleby:"2" %}class="odd"{% endif %}>
- <td><a href="{% url telemeta-search-items %}?{{s.criteria.all|build_pattern_string|build_query_string}}">
- {% for c in s.criteria.all %}
- <li>{% trans c.key %} : {{ c.value}}</li>
- {% endfor %}
- </a>
- </td>
- </tr>
- {% endfor %}
- </table>
- </div>
- </div>
-
+++ /dev/null
-{% extends "telemeta/inc/module_revisions.html" %}
-{% load telemeta_utils %}
-{% load i18n %}
-
-{% block rss_title %}
-<a href="{% url telemeta-user-rss user.username %}">
-<img src="/static/telemeta/images/rss.png" alt="rss" style="vertical-align:middle" />
-<h3>{% trans title %}</h3></a>
-<a href="{% url telemeta-user-rss user.username %}" style="float:right" class="icon_rss"> </a>
-{% endblock rss_title %}
-
+++ /dev/null
-{% load i18n %}
-{% load telemeta_utils %}
-{% load teleforma_tags %}
-{% load pagination_tags %}
-
-<div class="pagination">
- {% for p in page.paginator.pages %}
- {% if p == page %}
- <span class="selected">{{ page }}</span>
- {% else %}
- <a href="?page={{ p.number }}">{{ p }}</a>
- {% endif %}
- {% endfor %}
-</div>
-
-<div id="users">
-<div class="shadow">...</div>
- <table class="listing" width="100%">
- <thead>
- <tr><th>{% trans "Last Name"%}</th>
- <th>{% trans "First Name"%}</th>
- <th>{% trans "IEJ"%}</th>
- <th>{% trans "Trainings"%}</th>
- <th>{% trans "Procedure"%}</th>
- <th>{% trans "Written spe"%}</th>
- <th>{% trans "Oral spe"%}</th>
- <th>{% trans "Oral 1"%}</th>
- <th>{% trans "Oral 2"%}</th>
- <th>{% trans "Write"%}</th>
- </tr>
- </thead>
- <tbody id="spacing">
- {% for user in page.object_list %}
- <tr>
- <td><a href="{% url teleforma-profile-detail user.username %}">{{ user.last_name }}</a></td>
- <td><a href="{% url teleforma-profile-detail user.username %}">{{ user.first_name }}</a></td>
-
- {% if user.student.get %}
- {% with user.student.get as student %}
- <td>{{ student.iej.name }}</td>
- <td>{% for training in student.trainings.all %}{{ training }} {% endfor %}</td>
- <td>{{ student.procedure.code }}</td>
- <td>{{ student.written_speciality.code }}</td>
- <td>{{ student.oral_speciality.code }}</td>
- <td>{{ student.oral_1.code }}</td>
- <td>{{ student.oral_2.code }}</td>
- {% endwith %}
- {% elif user.professor.get %}
- <td>{% trans "Professor" %}</td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- {% elif user.is_staff %}
- <td>{% trans "Administrator" %}</td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- {% else %}
- <td>{% trans "Unknown" %}</td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- {% endif %}
- <td><a href="{% url postman_write user.username %}" class="component_icon button" id="action_orange">{% trans "Message" %}</a></td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
-</div>
+++ /dev/null
-{% extends "telemeta/base.html" %}
-{% load telemeta_utils %}
-{% load i18n %}
-
-{% block extra_javascript %}
-<script src="/static/telemeta/js/popupdiv-min.js" type="text/javascript"></script>
-<script src="/static/telemeta/js/playlist.js" type="text/javascript"></script>
-<script>
- jQuery(window).ready(function(){
- var p = playlistUtils;
- var a = jQuery('#_new_playlist');
- a.unbind('click').click(function(){p.showAdd(a);return false;});
- });
-
- {% for playlist in playlists %}
- playlistUtils.addEditPlaylist('{{playlist.playlist.public_id}}','{{ playlist.playlist.title }}','{{playlist.playlist.description}}');
- {% endfor %}
-
-
-</script>
-{% endblock %}
-
-{% block content %}
-<div id="module-set-left" style="width: 25%">
-
- {% block module_searches %}
- {% with searches as searches and "My searches" as title %}
- {% include "telemeta/inc/module_searches.html" %}
- {% endwith %}
- {% endblock %}
-
- {% block module_user_revisions %}
- {% with user_revisions as revisions and "My last changes" as title %}
- {% include "telemeta/inc/module_user_revisions.html" %}
- {% endwith %}
- {% endblock %}
-
- {% block module_all_revisions %}
- {% with revisions as revisions and "All last changes" as title %}
- {% include "telemeta/inc/module_revisions.html" %}
- {% endwith %}
- {% endblock %}
-
-</div>
-
-<div class="desk_media">
- <h1>{% trans "My playlists" %}</h1>
- <a href="#" id="_new_playlist" style="float:right" class="component_icon button icon_add">
- {% trans "Add" %}</a>
- {% for playlist in playlists %}
- <table class="listing" style="width:100%;margin-top: 3em">
- <tr>
- <td style="border-bottom:1px solid #6A0307;color:#6A0307;font-size: 100%">{{ playlist.playlist.title }}</td>
- <td style="width:86ex; padding-right: 0; border-bottom:1px solid #6A0307; text-align:right">
- <a href="#" id="{{playlist.playlist.public_id}}" onclick="playlistUtils.showEdit(this, this.id); return false;" class="component_icon button icon_edit">{% trans "Edit" %}</a>
- <a href="{% url telemeta-playlist-csv-export playlist.playlist.public_id 'collections' %}" class="component_icon button icon_csv">CSV Collections</a>
- <a href="{% url telemeta-playlist-csv-export playlist.playlist.public_id 'items' %}" class="component_icon button icon_csv">CSV Items</a>
- <a href="#" id="{{playlist.playlist.public_id}}" onclick="if(confirm(gettrans('delete the playlist permanently?'))){playlistUtils.remove(this.id);};return false;" class="component_icon button icon_cancel">{% trans "Delete" %}</a>
- </td>
- </tr>
- {% if playlist.playlist.description %}
- <tr>
- <td colspan="2" style="border-bottom:1px solid #6A0307;color:#6A0307;font-size: 80%">{{ playlist.playlist.description }}</td>
- </tr>
- {% endif %}
- </table>
- <table class="listing" width="100%">
- <tr>
- <th class="highlight">{% trans "Title" %}</th>
- <th>{% trans "Type" %}</th>
- <th>{% trans "Code" %}</th>
- <th>{% trans "Recordist" %}</th>
- <th>{% trans "Recording period" %}</th>
- <th>{% trans "Sound" %}</th>
- <th>{% trans "Action" %}</th>
- </tr>
- {% for resource in playlist.resources %}
- <tr {% if not forloop.counter0|divisibleby:"2" %}class="odd"{% endif %}>
- <td>
- {% if resource.type == "item" and not resource.element == None %}
- <a href="{% url telemeta-item-detail resource.element.public_id %}">{{ resource.element }}</a>
- {% endif %}
- {% if resource.type == "collection" and not resource.element == None %}
- <a href="{% url telemeta-collection-detail resource.element.public_id %}">{% if resource.element.title %}{{ resource.element.title }}{% else %}{{ resource.element }}{% endif %}</a>
- {% endif %}
- {% if resource.type == "marker" and not resource.element == None %}
- <a href="{% url telemeta-item-detail-marker resource.element.public_id %}">{{ resource.element }}</a>
- {% endif %}
- {% if resource.type == "corpus" or resource.type == "fonds" %}
- <a href="{% url telemeta-resource-detail resource.type resource.element.public_id %}">{{ resource.element.title }}</a>
- {% endif %}
- {% if resource.element == None %}{% trans "deleted" %}{% endif %}
- </td>
- <td>{{ resource.type }}</td>
- <td>
- {{ resource.element.public_id }}
- </td>
- <td>{{ resource.element.apparent_collector }}</td>
-
- <td>
- {% if resource.element.recorded_from_date %}
- {{ resource.element.recorded_from_date.year }}
- {% if resource.element.recorded_to_date and not resource.element.recorded_to_date.year|equals:resource.element.recorded_from_date.year %}
- - {{ resource.element.recorded_to_date.year }}
- {% endif %}
- {% endif %}
- </td>
- <td align="center" style="vertical-align:middle">
- {% if resource.element.file or resource.element.has_mediafile %}
- <img src="/static/telemeta/images/ok.png" alt="yes" style="vertical-align:middle" /></a>
- {% endif %}
- </td>
- <td style="vertical-align:middle">
- <a href="#" onclick="if(confirm(gettrans('delete the resource from the playlist permanently?'))){playlistUtils.removeResource('{{resource.public_id}}');};return false;" class="component_icon button icon_cancel" style="padding: 4px 12px;"></a>
- </td>
- </tr>
- {% endfor %}
- </table>
- {% endfor %}
-</div>
-{% endblock %}
-
+++ /dev/null
-{% extends "telemeta/base.html" %}
-{% load i18n %}
-
-{% block title %}
-{% endblock %}
-
-{% block content %}
-<script>
-$(document).ready(function() {
- $(this).keydown(function(e) {
- if (e.keyCode == '13') {
- $("#_loginForm").submit();
- }
- });
-});
-</script>
-
-{% if form.errors %}
-<p class="login-error">{% trans "Your username and password didn't match. Please try again." %}</p>
-{% endif %}
-<form class="login" id="_loginForm" method="post" action="{% url telemeta-login %}">{% csrf_token %}
-<p>
-{{ form.username.label_tag }}
-{{ form.username }}<br />
-{{ form.password.label_tag }}
-{{ form.password }}
-</p>
-<div style="margin-top: 2em;">
-<span style="align: right; font-weight: bold; margin-right: 2em;"><a href="{% url telemeta-password-reset %}">{% trans "Password forgotten" %} ?</a></span>
-<a href="#" class="component_icon button" id="action_red" onclick="$('#_loginForm').submit();"><img src="/static/telemeta/images/password.png" alt="" style="vertical-align:middle" /> {% trans "Sign in" %}</a>
-<input type="hidden" name="next" value="{{ next }}" />
-</div>
-</form>
-{% endblock %}
+++ /dev/null
-{% extends "telemeta/base.html" %}
-{% load i18n %}
-{% load telemeta_utils %}
-{% load teleforma_tags %}
-{% load payment %}
-
-{% block head_title %}{% trans "User Profile" %} : {{ usr.username }}{% endblock %}
-
-{% block title %}
-{% endblock %}
-
-{% block content %}
- <div id="module-set-left" style="width: 20%">
- {% block modules %}
-
- <div class="module">
- <h3><a href="{% url teleforma-home %}"><img src="/static/telemeta/images/module_playlist.png" alt="playlists" style="vertical-align:middle" />{% if user.username != usr.username%}{% trans "His courses" %}{% else %}{% trans "My courses" %}{% endif %}</a></h3>
- <div style="background: white;">
- <ul>
- {% block courses %}
- {% with usr|user_courses as courses %}
- {% for c in courses %}
- {% with c.course as course %}
- <li><a href="#">{{ course.title}} {{ course.type }}</a></li>
- {% endwith %}
- {% endfor %}
- {% endwith %}
- {% endblock courses %}
- </ul>
- </div>
- </div>
-
- {% endblock %}
-
- {% if user.is_authenticated and user.username != usr.username %}
- <div class="module_action">
- <a href="{% url postman_write usr.username %}" class="component_icon button" id="action_orange">{% trans "Send a message" %}</a>
- </div>
- {% endif %}
- </div>
-
-<div class="desk_large">
-<div class="course">
-
- <h1>{% trans "User profile" %} : {{ usr.username }}
- </h1>
-
- <div id="password" style="float: right;">
- {% if user.is_authenticated and user.username == usr.username %}
- <a href="{% url telemeta-password-change %}" class="component_icon button icon_login">{% trans "Change password" %}</a>
- {% elif user.is_staff %}
- <a href="{% url teleforma-user-login usr.id %}" class="component_icon button icon_login">{% trans "Login as" %}</a>
- {% endif %}
- </div>
-
- <div class="course_content">
-
- <div class="infos" style="width: 55%">
- {% if usr.student.get.portrait %}
- <img style="float:right" src="{{ usr.student.get.portrait.url }}" />
- {% endif %}
- <dl class="listing">
-
- <dt>{% trans "First Name" %}</dt><dd>{{ usr.first_name }}</dd>
- <dt>{% trans "Last Name" %}</dt><dd>{{ usr.last_name }}</dd>
- <dt>{% trans "Username" %}</dt><dd>{{ usr.username }}</dd>
-
- {% if usr.student.get %}
- <dt>{% trans "IEJ" %}</dt><dd>{{ usr.student.get.iej }}</dd>
- <dt>{% trans "Trainings" %}</dt><dd>{% for training in usr.student.get.trainings.all %}{{ training }}<br />{% endfor %}</dd>
- <dt>{% trans "Platform only" %}</dt><dd>{{ usr.student.get.platform_only|yes_no }}</dd>
- <dt>{% trans "Procedure"%}</dt><dd>{{ usr.student.get.procedure}}</dd>
- <dt>{% trans "Oral spe"%}</dt><dd>{{ usr.student.get.oral_speciality }}</dd>
- <dt>{% trans "Written spe"%}</dt><dd>{{Â usr.student.get.written_speciality }}</dd>
- <dt>{% trans "Oral 1"%}</dt><dd>{{ usr.student.get.oral_1 }}</dd>
- <dt>{% trans "Oral 2"%}</dt><dd>{{ usr.student.get.oral_2 }}</dd>
- <dt>{% trans "Options"%}</dt><dd>{{ usr.student.get.options }}</dd>
- {% endif %}
-
- {% if user.is_staff or user.is_superuser or usr == user %}
- <dt>{% trans "Email" %}</dt><dd>{{ usr.email }}</dd>
- <dt>{% trans "Address" %}</dt><dd>{{ usr.profile.get.address }}{% if usr.profile.get.address_detail %}, {% endif %}</span>{{ usr.profile.get.address_detail }}{% if usr.profile.get.postal_code or usr.profile.get.city %}, {% endif %}{{ usr.profile.get.postal_code }} {{ usr.profile.get.city }}</dd>
- <dt>{% trans "Telephone" %}</dt><dd>{{ usr.profile.get.telephone }}</dd>
- <dt>{% trans "WiFi login" %}</dt><dd>{{ usr.profile.get.wifi_login }}</dd>
- <dt>{% trans "WiFi password" %}</dt><dd>{{ usr.profile.get.wifi_pass }}</dd>
- {% endif %}
-
- <dt>{% trans "Date added" %}</dt><dd>{{ usr.date_joined }}</dd>
- <dt>{% trans "Expiration date" %}</dt><dd>{{ usr.profile.get.expiration_date }}</dd>
- <dt>{% trans "Last login" %}</dt><dd>{{ usr.last_login }}</dd>
-
- {% if user.is_authenticated and user.username == usr.username %}
- <dt>{% trans "Language" %}</dt><dd><form id="setlang" action="/i18n/setlang/" method="post">{% csrf_token %}
- <input name="next" type="hidden" value="" />
- <select name="language">
- {% for lang in LANGUAGES %}
- <option {% if lang.0 == LANGUAGE_CODE %}selected{% endif %} value="{{ lang.0 }}">{{ lang.1 }}</option>
- {% endfor %}
- </select><br /><br />
- <a href="#" class="component_icon button icon_ok"
- onclick="document.getElementById('setlang').submit(); return false;">{% trans "Apply" %}</a>
- </form>
- </dd>
- {% endif %}
- </dl>
- </div>
- </div>
-
- {% if payment %}
- {% payment_summary payment with_pending=False %}
- {% endif %}
-
-<div class="buttons">
-<!--<a href="{% url telemeta-password-change %}" class="component_icon button icon_login">{% trans "Password reset" %}</a>-->
-</div>
-
-</div>
-</div>
-{% endblock content %}
-
+++ /dev/null
-{% extends "telemeta/base.html" %}
-{% load telemeta_utils %}
-{% load i18n %}
-
-{% block head_title %}{% trans "Advanced Search" %} - {{ block.super }}{% endblock %}
-
-{% block stylesheets %}
-{{ block.super }}
-<link rel="stylesheet" type="text/css" href="/static/telemeta/css/jquery.autocomplete.css" />
-{% endblock %}
-
-{% block extra_javascript %}
-<script src="/static/telemeta/js/jquery.bgiframe.js" type="text/javascript"></script>
-<script src="/static/telemeta/js/jquery.autocomplete.js" type="text/javascript"></script>
-<script type="text/javascript">
-function update_period(source, from_field, to_field) {
- var from_year = $(from_field);
- var to_year = $(to_field);
-
- if (from_year.val() == "0") {
- to_year.attr('disabled', '1');
- to_year.val('0');
- } else {
- to_year.removeAttr('disabled');
- if ($(source).is(to_field)) {
- if (parseInt(from_year.val()) > parseInt(to_year.val()))
- from_year.val(to_year.val());
- } else if (parseInt(from_year.val()) > parseInt(to_year.val())) {
- to_year.val(from_year.val());
- }
- }
-}
-
-$(document).ready(function () {
- $('#location').autocomplete('{% url telemeta-complete-location %}', {
- max: 20,
- formatResult: function(data) {
- return data[0].replace(/ *\([0-9]+.*\) *$/, '');
- }
- });
- update_period('#rec_year_from', '#rec_year_to');
- $('#rec_year_from, #rec_year_to').change(function () {
- update_period(this, '#rec_year_from', '#rec_year_to');
- });
- update_period('#pub_year_from', '#pub_year_to');
- $('#pub_year_from, #pub_year_to').change(function () {
- update_period(this, '#pub_year_from', '#pub_year_to');
- });
-});
-
-</script>
-{% endblock %}
-
-{% block title %}
-{% endblock %}
-
-{% block content %}
-
-<div id="module-set-left" style="width: 20%">
-
- {% block module_searches %}
- {% with searches as searches and "My searches" as title %}
- {% include "telemeta/inc/module_searches.html" %}
- {% endwith %}
- {% endblock %}
-
-<div class="module_action">
- <a href="#" class="component_icon button" id="action_yellow"
- onclick="document.getElementById('searchform').submit(); return false;">{% trans 'Search' %}</a>
-</div>
-
-</div>
-
-<div class="desk_center">
-<div class="course">
-<h1>{% trans "Advanced Search" %}</h1>
-
-<form action="{% url telemeta-search %}" id="searchform">{% csrf_token %}
-<fieldset>
-
- <p>
- <label for="location">{% field_label "Location" %}</label>
- <input type="text" name="location" id="location" value="{{ criteria.location }}" />
- </p>
-
- <p>
- <label for="ethnic_group">{% field_label "EthnicGroup" %}</label>
- <select id="ethnic_group" name="ethnic_group">
- <option value="">All ethnic groups</option>
- {% for group in ethnic_groups %}
- <option value="{{group.id}}" {% ifequal criteria.ethnic_group.id group.id %}selected {% endifequal %}>{{group|escape}}</option>
- {% endfor %}
- </select>
- </p>
-
- <p>
- <label for="title">{% trans "Title" %}</label>
- <input type="text" id="title" name="title" />
- </p>
-
- <p>
- <label for="creator">{% field_label "MediaCollection" "creator" %}</label>
- <input type="text" id="creator" name="creator" />
- </p>
-
- <p>
- <label for="collector">{% field_label "MediaCollection" "collector" %}</label>
- <input type="text" id="collector" name="collector" />
- </p>
-
- {% if rec_years %}
- <p>
- <label for="rec_date_from">{% trans "Year of recording" %}</label>
- <select id="rec_year_from" name="rec_year_from" class="tiny">
- <option value="0"></option>
- {% for year in rec_years %}
- <option value="{{ year }}" {% ifequal criteria.rec_year_from year %}selected {% endifequal %}>{{year}}</option>
- {% endfor %}
- </select>
- {% trans "to" %}
- <select id="rec_year_to" name="rec_year_to" class="tiny">
- <option value="0"></option>
- {% for year in rec_years %}
- <option value="{{ year }}" {% ifequal criteria.rec_year_to year %}selected {% endifequal %}>{{year}}</option>
- {% endfor %}
- </select>
- </p>
- {% endif %}
-
- {% if pub_years %}
- <p>
- <label for="pub_date_from">{% trans "Year of publication" %}</label>
- <select id="pub_year_from" name="pub_year_from" class="tiny">
- <option value="0"></option>
- {% for year in pub_years %}
- <option value="{{ year }}" {% ifequal criteria.pub_year_from year %}selected {% endifequal %}>{{year}}</option>
- {% endfor %}
- </select>
- {% trans "to" %}
- <select id="pub_year_to" name="pub_year_to" class="tiny">
- <option value="0"></option>
- {% for year in pub_years %}
- <option value="{{ year }}" {% ifequal criteria.pub_year_to year %}selected {% endifequal %}>{{year}}</option>
- {% endfor %}
- </select>
- </p>
- {% endif %}
-
- <p><label for="sound">{% trans "Sound" %}</label>
- <input type="checkbox" name="sound" value="True" align="left" />
- </p>
-
-</fieldset>
-
-</form>
-
-</div>
-</div>
-
-
-{% endblock %}
+++ /dev/null
-{% extends "telemeta/base.html" %}
-{% load i18n %}
-{% load telemeta_utils %}
-{% load teleforma_tags %}
-
-{% block head_title %}{% trans "Users" %} - {{ block.super }}{% endblock %}
-
-{% block title %}
-{% endblock %}
-
-{% block content %}
-<div id="module-set-left" style="width: 20%">
-
-<div class="module">
-<h3><img src="/static/telemeta/images/module_playlist.png" alt="Trainings" style="vertical-align:middle" />{% trans "Trainings" %}</h3>
-<div style="background: white;">
-<ul>
-{% block trainings %}
-{% for t in trainings %}
-<li><a href="{% url teleforma-users t.id iej.id course.id %}">{{ t.code|lower|capfirst }} - {{ t.period|lower|capfirst }}</a></li>
-{% endfor %}
-{% endblock trainings %}
-</ul>
-</div>
-</div>
-
-<div class="module">
-<h3><img src="/static/telemeta/images/module_world.png" alt="IEJ" style="vertical-align:middle" /> {% trans "IEJ" %}</h3>
-<div style="background: white;">
-<ul>
-{% block iej %}
-{% for i in iejs %}
-<li><a href="{% url teleforma-users training.id i.id course.id %}">{{ i.name|lower|capfirst }}</a></li>
-{% endfor %}
-{% endblock iej %}
-</ul>
-</div>
-</div>
-
-<div class="module">
-<h3><img src="/static/telemeta/images/module_playlist.png" alt="Courses" style="vertical-align:middle" />{% trans "Courses" %}</h3>
-<div style="background: white;">
-<ul>
-{% block courses %}
-{% for c in courses %}
-<li><a href="{% url teleforma-users training.id iej.id c.id %}">{{ c }}</a></li>
-{% endfor %}
-{% endblock courses %}
-</ul>
-</div>
-</div>
-
-{% if users %}
-<div class="module_action">
-<a href="{% url postman_write users|to_recipients %}" class="component_icon button" id="action_orange">{% trans "Grouped message" %}</a>
-</div>
-{% endif %}
-
-</div>
-
-<div class="desk_messages">
-
-{% if user.is_staff %}
-<div style="float:right;">
-<a href="{% url teleforma-users-export training.id iej.id course.id %}" class="component_icon button icon_csv">XLS Export</a>
-</div>
-{% endif %}
-
-<div class="course_title">{% trans "Users" %} ({{ users|length }}){% if training.id != 0 %} - {{ training }}{% endif %}{% if iej.id != 0 %} - {{ iej }}{% endif %}{% if course.id != 0 %} - {{ course }}{% endif %}</div>
-<br />
- {% if users %}
- {% include "telemeta/inc/user_list.html" %}
- {% else %}
- <p class="help">{% trans "No users" %}</p>
- {% endif %}
-</div>
-{% endblock %}
'course_newsitems':course_newsitems,
'all_newsitems':all_newsitems
}
+
+
+##### FROM TELEMETA #####
+
+@register.simple_tag
+def description():
+ return settings.TELEFORMA_DESCRIPTION
+
+@register.simple_tag
+def organization():
+ return settings.TELEFORMA_ORGANIZATION
+
+@register.simple_tag
+def current_year():
+ return datetime.datetime.now().strftime("%Y")
\ No newline at end of file
from django.views.generic.list import ListView
from teleforma.models import *
from teleforma.views import *
-from telemeta.views import *
from teleforma.forms import *
from registration.views import *
from jsonrpc import jsonrpc_site
urlpatterns = patterns('',
- # login
- url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'},
+ # login / logout
+ url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'registration/login.html'},
name="teleforma-login"),
+ url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'},
+ name="auth_login"),
+ url(r'^logout/$', 'django.contrib.auth.views.logout', name="teleforma-logout"),
+
# (r'^accounts/register0/$', RegistrationView.as_view(), {'form_class':CustomRegistrationForm}),
url(r'^accounts/register/$', UserAddView.as_view(), name="teleforma-register"),
url(r'^accounts/register/(?P<username>.*)/complete/$', UserCompleteView.as_view(), name="teleforma-register-complete"),
url(r'^users/(?P<username>[A-Za-z0-9+@._-]+)/profile/$', profile_view.profile_detail,
name="teleforma-profile-detail"),
- url(r'^accounts/(?P<username>[A-Za-z0-9._-]+)/profile/$', profile_view.profile_detail, name="telemeta-profile-detail"),
- url(r'^accounts/(?P<username>[A-Za-z0-9._-]+)/profile/edit/$', profile_view.profile_edit, name="telemeta-profile-edit"),
+ url(r'^accounts/(?P<username>[A-Za-z0-9+@._-]+)/profile/$', profile_view.profile_detail, name="teleforma-profile-detail"),
+ url(r'^accounts/(?P<username>[A-Za-z0-9+@._-]+)/profile/edit/$', profile_view.profile_edit, name="teleforma-profile-edit"),
url(r'^captcha/', include('captcha.urls')),
# Home
url(r'^$', HomeRedirectView.as_view(), name="teleforma-home"),
- # Telemeta
- url(r'^', include('telemeta.urls')),
-
# Desk
url(r'^desk/$', HomeRedirectView.as_view(), name="teleforma-desk"),
url(r'^desk/periods/(?P<period_id>.*)/courses/$', CourseListView.as_view(), name="teleforma-desk-period-list"),
#from pro import *
from appointment import *
from payment import *
+from profile import *
from teleforma.forms import *
from teleforma.models.appointment import AppointmentPeriod
from teleforma.webclass.models import Webclass, WebclassSlot, WebclassRecord
-from telemeta.views import *
import jqchat.models
from xlwt import Workbook
from teleforma.models.core import Period
from teleforma.views.core import *
from teleforma.forms import WriteForm
-from telemeta.views import ProfileView
+from teleforma.views.profile import ProfileView
from registration.views import *
from extra_views import CreateWithInlinesView, UpdateWithInlinesView, InlineFormSet
from postman.views import WriteView as PostmanWriteView
--- /dev/null
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2010 Samalyse SARL
+# Copyright (C) 2010-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: Olivier Guilyardi <olivier@samalyse.com>
+# Guillaume Pellerin <yomguy@parisson.com>
+
+from django.contrib.auth.models import User
+from django.contrib.auth.forms import UserChangeForm
+from django.utils.decorators import method_decorator
+from django.contrib.auth.decorators import login_required
+from teleforma.models.profile import UserProfile
+from teleforma.forms import UserProfileForm
+
+class ProfileView(object):
+ """Provide Collections web UI methods"""
+
+ @method_decorator(login_required)
+ def profile_detail(self, request, username, template='telemeta/profile_detail.html'):
+ user = User.objects.get(username=username)
+ try:
+ profile = user.get_profile()
+ except:
+ profile = None
+ playlists = get_playlists(request, user)
+ user_revisions = get_revisions(25, user)
+
+ return render(request, template, {'profile' : profile, 'usr': user, 'playlists': playlists,
+ 'user_revisions': user_revisions})
+
+ @method_decorator(login_required)
+ def profile_edit(self, request, username, template='telemeta/profile_edit.html'):
+ if request.user.is_superuser:
+ user_hidden_fields = ['profile-user', 'user-password', 'user-last_login', 'user-date_joined']
+ else:
+ user_hidden_fields = ['user-username', 'user-is_staff', 'profile-user', 'user-is_active',
+ 'user-password', 'user-last_login', 'user-date_joined', 'user-groups',
+ 'user-user_permissions', 'user-is_superuser', 'profile-expiration_date']
+
+ user = User.objects.get(username=username)
+ if user != request.user and not request.user.is_staff:
+ mess = ugettext('Access not allowed')
+ title = ugettext('User profile') + ' : ' + username + ' : ' + mess
+ description = ugettext('Please login or contact the website administator to get a private access.')
+ messages.error(request, title)
+ return render(request, 'telemeta/messages.html', {'description' : description})
+
+ try:
+ profile = user.get_profile()
+ except:
+ profile = UserProfile(user=user)
+
+ if request.method == 'POST':
+ user_form = UserChangeForm(request.POST, instance=user, prefix='user')
+ profile_form = UserProfileForm(request.POST, instance=profile, prefix='profile')
+ if user_form.is_valid() and profile_form.is_valid():
+ user_form.save()
+ profile_form.save()
+ return redirect('telemeta-desk-profile', username)
+ else:
+ user_form = UserChangeForm(instance=user, prefix='user')
+ profile_form = UserProfileForm(instance=profile, prefix='profile')
+ forms = [user_form, profile_form]
+ return render(request, template, {'forms': forms, 'usr': user,
+ 'user_hidden_fields': user_hidden_fields})
+
from unidecode import unidecode
from django.db.models import *
-from telemeta.models import *
+from django.contrib.auth.models import User
from teleforma.fields import *
import django.db.models as models
from django.utils.translation import ugettext_lazy as _
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load teleforma_tags %}
{% load i18n %}
-{% extends "telemeta/base.html" %}
+{% extends "teleforma/base.html" %}
{% load i18n %}
-{% load telemeta_utils %}
{% load teleforma_tags %}
{% block head_title %}Calendrier des Webclass{% endblock %}
<div>
<dl class="listing" style="font-size: 1.2em;">
<dt>{% trans "Professor" %}</dt>
- <dd><a href="{% url telemeta-profile-detail record.slot.professor.user.username %}"
+ <dd><a href="{% url teleforma-profile-detail record.slot.professor.user.username %}"
target="_blank">{{ record.slot.professor }}</a></dd>
<dt>{% trans "Begin" %}</dt>
<dd>{{ record.start_date }}</dd>
-{% extends "telemeta/base.html" %}
-{% load telemeta_utils %}
+{% extends "teleforma/base.html" %}
{% load teleforma_tags %}
{% load i18n %}