From 259295f375dce55cd02b279b05a30ca480c0df06 Mon Sep 17 00:00:00 2001 From: yomguy Date: Thu, 12 Apr 2012 21:53:17 +0200 Subject: [PATCH] add readers to docs, fix titles, update diag --- doc/teleforma-all.dot | 480 ++++++++++++++++-- doc/teleforma-all.pdf | Bin 109227 -> 112043 bytes doc/teleforma.dot | 55 +- doc/teleforma.pdf | Bin 91259 -> 92521 bytes example/diag.sh | 4 +- example/modelviz.py | 359 ------------- example/settings.py | 7 +- teleforma/htdocs/css/teleforma.css | 10 +- teleforma/migrations/0006_auto.py | 439 ++++++++++++++++ teleforma/models.py | 13 +- teleforma/templates/postman/base.html | 2 +- teleforma/templates/postman/base_folder.html | 1 - .../templates/teleforma/course_detail.html | 4 +- teleforma/templates/teleforma/courses.html | 6 +- .../teleforma/inc/document_list.html | 4 + teleforma/templatetags/teleforma_tags.py | 2 + 16 files changed, 954 insertions(+), 432 deletions(-) delete mode 100644 example/modelviz.py create mode 100644 teleforma/migrations/0006_auto.py diff --git a/doc/teleforma-all.dot b/doc/teleforma-all.dot index 46b8625b..60505daa 100644 --- a/doc/teleforma-all.dot +++ b/doc/teleforma-all.dot @@ -367,120 +367,120 @@ digraph name { >] - telemeta_models_media_MediaBaseResource [label=< + telemeta_models_media_MediaRelated [label=< + >MediaRelated
<MediaResource> + + + + + +
MediaBaseResource
<MediaResource>
titletitle CharFieldCharField
dateDateTimeField
description CharFieldTextField
codemime_type CharFieldCharField
referenceurl CharField
public_accesscredits CharField
fileFileField
>] - telemeta_models_media_MediaRelated [label=< + telemeta_models_media_MediaResource [label=< + >MediaResource
<ModelCore> - - + +
MediaRelated
<MediaResource>
titleCharField
+ >] + + telemeta_models_media_MediaBaseResource [label=< + + + - - - -
MediaBaseResource
<MediaResource>
datetitle DateTimeFieldCharField
description TextField
mime_typeCharField
urlcode CharFieldCharField
creditsreference CharField
filepublic_access FileFieldCharField
- >] - - telemeta_models_media_MediaResource [label=< - - - - -
MediaResource
<ModelCore>
>] @@ -1203,13 +1203,6 @@ digraph name { >DateField - init_password - BooleanField - >] @@ -3320,6 +3313,13 @@ digraph name { >CharField + date_added + DateTimeField + expiration_date @@ -3497,6 +3497,323 @@ digraph name { + + + + + django_extensions_db_models_TitleSlugDescriptionModel [label=< + + + + + + + + + + + + + + +
TitleSlugDescriptionModel
titleCharField
slugAutoSlugField
descriptionTextField
+ >] + + django_extensions_db_models_TimeStampedModel [label=< + + + + + + + + + + + +
TimeStampedModel
createdCreationDateTimeField
modifiedModificationDateTimeField
+ >] + + markup_mixin_models_MarkupMixin [label=< + + + + + + + + +
MarkupMixin
markupCharField
+ >] + + notes_models_Topic [label=< + + + + + + + + + + + + + + + + + + + + + + + +
Topic
<TitleSlugDescriptionModel,TimeStampedModel>
idAutoField
createdCreationDateTimeField
modifiedModificationDateTimeField
titleCharField
slugAutoSlugField
descriptionTextField
+ >] + + notes_models_Note [label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Note
<MarkupMixin,TimeStampedModel>
idAutoField
markupCharField
createdCreationDateTimeField
modifiedModificationDateTimeField
dateDateField
contentTextField
rendered_contentTextField
publicBooleanField
object_idPositiveIntegerField
+ >] + + + + + jqchat_models_Room [label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
Room
idAutoField
nameCharField
createdDateTimeField
descriptionCharField
description_modifiedIntegerField
last_activityIntegerField
object_idPositiveIntegerField
+ >] + + jqchat_models_Message [label=< + + + + + + + + + + + + + + + + + + + + +
Message
idAutoField
eventIntegerField
textTextField
unix_timestampFloatField
createdDateTimeField
+ >] + + + django_contrib_auth_models_Permission -> django_contrib_contenttypes_models_ContentType @@ -3894,13 +4211,13 @@ digraph name { [label="department (course)"] [arrowhead=none, arrowtail=dot]; - teleforma_models_Course -> teleforma_models_Category - [label="category (course)"] [arrowhead=none, arrowtail=dot]; - - teleforma_models_Course -> teleforma_models_CourseType [label="type (course)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Course -> jqchat_models_Room + [label="chat_room (course)"] [arrowhead=none, arrowtail=none]; + @@ -3931,6 +4248,10 @@ digraph name { teleforma_models_Conference -> teleforma_models_Room [label="room (conference)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Conference -> django_contrib_auth_models_User + [label="readers (conference)"] [arrowhead=dot arrowtail=dot, dir=both]; + @@ -3941,6 +4262,10 @@ digraph name { teleforma_models_Document -> teleforma_models_Conference [label="conference (document)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Document -> django_contrib_auth_models_User + [label="readers (document)"] [arrowhead=dot arrowtail=dot, dir=both]; + @@ -3955,11 +4280,19 @@ digraph name { teleforma_models_Media -> telemeta_models_media_MediaItem [label="item (media)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Media -> django_contrib_auth_models_User + [label="readers (media)"] [arrowhead=dot arrowtail=dot, dir=both]; + + teleforma_models_Training -> teleforma_models_Category + [label="category (course)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Training -> teleforma_models_Course [label="courses (training)"] [arrowhead=dot arrowtail=dot, dir=both]; @@ -4044,4 +4377,45 @@ digraph name { + + + + + + + + + + + + + notes_models_Note -> notes_models_Topic + [label="topic (note)"] [arrowhead=none, arrowtail=dot]; + + + notes_models_Note -> django_contrib_auth_models_User + [label="author (note)"] [arrowhead=none, arrowtail=dot]; + + + notes_models_Note -> django_contrib_contenttypes_models_ContentType + [label="content_type (note)"] [arrowhead=none, arrowtail=dot]; + + + + + + jqchat_models_Room -> django_contrib_contenttypes_models_ContentType + [label="content_type (room)"] [arrowhead=none, arrowtail=dot]; + + + + + jqchat_models_Message -> django_contrib_auth_models_User + [label="user (jchat_messages)"] [arrowhead=none, arrowtail=dot]; + + + jqchat_models_Message -> jqchat_models_Room + [label="room (message)"] [arrowhead=none, arrowtail=dot]; + + } diff --git a/doc/teleforma-all.pdf b/doc/teleforma-all.pdf index c028ffedb3b9f0717ce447ac203261a6b51955dd..93392a3bfb4e7033975095c5cafde3b5060fff84 100644 GIT binary patch delta 73767 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 delta 70975 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 diff --git a/doc/teleforma.dot b/doc/teleforma.dot index 59a0f8a5..87f69d1b 100644 --- a/doc/teleforma.dot +++ b/doc/teleforma.dot @@ -700,6 +700,13 @@ digraph name { >CharField + date_added + DateTimeField + expiration_date @@ -740,13 +747,13 @@ digraph name { [label="department (course)"] [arrowhead=none, arrowtail=dot]; - teleforma_models_Course -> teleforma_models_Category - [label="category (course)"] [arrowhead=none, arrowtail=dot]; - - teleforma_models_Course -> teleforma_models_CourseType [label="type (course)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Course -> jqchat_models_Room + [label="chat_room (course)"] [arrowhead=none, arrowtail=none]; + @@ -785,6 +792,18 @@ digraph name { teleforma_models_Conference -> teleforma_models_Room [label="room (conference)"] [arrowhead=none, arrowtail=dot]; + + django_contrib_auth_models_User [label=< + + +
User
+ >] + + teleforma_models_Conference -> django_contrib_auth_models_User + [label="readers (conference)"] [arrowhead=dot arrowtail=dot, dir=both]; + @@ -795,6 +814,18 @@ digraph name { teleforma_models_Document -> teleforma_models_Conference [label="conference (document)"] [arrowhead=none, arrowtail=dot]; + + django_contrib_auth_models_User [label=< + + +
User
+ >] + + teleforma_models_Document -> django_contrib_auth_models_User + [label="readers (document)"] [arrowhead=dot arrowtail=dot, dir=both]; + @@ -817,11 +848,27 @@ digraph name { teleforma_models_Media -> telemeta_models_media_MediaItem [label="item (media)"] [arrowhead=none, arrowtail=dot]; + + django_contrib_auth_models_User [label=< + + +
User
+ >] + + teleforma_models_Media -> django_contrib_auth_models_User + [label="readers (media)"] [arrowhead=dot arrowtail=dot, dir=both]; + + teleforma_models_Training -> teleforma_models_Category + [label="category (course)"] [arrowhead=none, arrowtail=dot]; + + teleforma_models_Training -> teleforma_models_Course [label="courses (training)"] [arrowhead=dot arrowtail=dot, dir=both]; diff --git a/doc/teleforma.pdf b/doc/teleforma.pdf index 368f810e9aeb33f26fdb72b4da7fd335f280f98e..759641d0c606c604fe7aec69ea9094cae501b37a 100644 GIT binary patch delta 9859 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 diff --git a/example/diag.sh b/example/diag.sh index 906ee1e6..d5a7b868 100755 --- a/example/diag.sh +++ b/example/diag.sh @@ -4,8 +4,8 @@ app="teleforma" dir="../doc" -python modelviz.py -a > $dir/$app-all.dot -python modelviz.py $app > $dir/$app.dot +./manage.py graph_models -a > $dir/$app-all.dot +./manage.py graph_models $app > $dir/$app.dot dot $dir/$app-all.dot -Tpdf -o $dir/$app-all.pdf dot $dir/$app.dot -Tpdf -o $dir/$app.pdf diff --git a/example/modelviz.py b/example/modelviz.py deleted file mode 100644 index 24af0627..00000000 --- a/example/modelviz.py +++ /dev/null @@ -1,359 +0,0 @@ -#!/usr/bin/env python - -"""Django model to DOT (Graphviz) converter -by Antonio Cavedoni - -Make sure your DJANGO_SETTINGS_MODULE is set to your project or -place this script in the same directory of the project and call -the script like this: - -$ python modelviz.py [-h] [-a] [-d] [-g] [-n] [-L ] [-i ] ... > .dot -$ dot .dot -Tpng -o .png - -options: - -h, --help - show this help message and exit. - - -a, --all_applications - show models from all applications. - - -d, --disable_fields - don't show the class member fields. - - -g, --group_models - draw an enclosing box around models from the same app. - - -i, --include_models=User,Person,Car - only include selected models in graph. - - -n, --verbose_names - use verbose_name for field and models. - - -L, --language - specify language used for verrbose_name localization - - -x, --exclude_columns - exclude specific column(s) from the graph. - - -X, --exclude_models - exclude specific model(s) from the graph. - - -e, --inheritance - show inheritance arrows. -""" -__version__ = "0.9" -__svnid__ = "$Id$" -__license__ = "Python" -__author__ = "Antonio Cavedoni " -__contributors__ = [ - "Stefano J. Attardi ", - "limodou ", - "Carlo C8E Miron", - "Andre Campos ", - "Justin Findlay ", - "Alexander Houben ", - "Bas van Oostveen ", - "Joern Hees " -] - -import os -import sys -import getopt - -from django.core.management import setup_environ - -try: - import settings -except ImportError: - pass -else: - setup_environ(settings) - -from django.utils.translation import activate as activate_language -from django.utils.safestring import mark_safe -from django.template import Template, Context, loader -from django.db import models -from django.db.models import get_models -from django.db.models.fields.related import \ - ForeignKey, OneToOneField, ManyToManyField, RelatedField - -try: - from django.db.models.fields.generic import GenericRelation -except ImportError: - from django.contrib.contenttypes.generic import GenericRelation - -def parse_file_or_list(arg): - if not arg: - return [] - if not ',' in arg and os.path.isfile(arg): - return [e.strip() for e in open(arg).readlines()] - return arg.split(',') - - -def generate_dot(app_labels, **kwargs): - disable_fields = kwargs.get('disable_fields', False) - include_models = parse_file_or_list(kwargs.get('include_models', "")) - all_applications = kwargs.get('all_applications', False) - use_subgraph = kwargs.get('group_models', False) - verbose_names = kwargs.get('verbose_names', False) - inheritance = kwargs.get('inheritance', False) - language = kwargs.get('language', None) - if language is not None: - activate_language(language) - exclude_columns = parse_file_or_list(kwargs.get('exclude_columns', "")) - exclude_models = parse_file_or_list(kwargs.get('exclude_models', "")) - - def skip_field(field): - if exclude_columns: - if verbose_names and field.verbose_name: - if field.verbose_name in exclude_columns: - return True - if field.name in exclude_columns: - return True - return False - - - - - t = loader.get_template('django_extensions/graph_models/head.html') - c = Context({}) - dot = t.render(c) - - apps = [] - if all_applications: - apps = models.get_apps() - - for app_label in app_labels: - app = models.get_app(app_label) - if not app in apps: - apps.append(app) - - graphs = [] - for app in apps: - graph = Context({ - 'name': '"%s"' % app.__name__, - 'app_name': "%s" % '.'.join(app.__name__.split('.')[:-1]), - 'cluster_app_name': "cluster_%s" % app.__name__.replace(".", "_"), - 'disable_fields': disable_fields, - 'use_subgraph': use_subgraph, - 'models': [] - }) - - appmodels = get_models(app) - abstract_models = [] - for appmodel in appmodels: - abstract_models = abstract_models + [abstract_model for abstract_model in appmodel.__bases__ if hasattr(abstract_model, '_meta') and abstract_model._meta.abstract] - abstract_models = list(set(abstract_models)) # remove duplicates - appmodels = abstract_models + appmodels - - - for appmodel in appmodels: - appmodel_abstracts = [abstract_model.__name__ for abstract_model in appmodel.__bases__ if hasattr(abstract_model, '_meta') and abstract_model._meta.abstract] - - # collect all attribs of abstract superclasses - def getBasesAbstractFields(c): - _abstract_fields = [] - for e in c.__bases__: - if hasattr(e, '_meta') and e._meta.abstract: - _abstract_fields.extend(e._meta.fields) - _abstract_fields.extend(getBasesAbstractFields(e)) - return _abstract_fields - abstract_fields = getBasesAbstractFields(appmodel) - - model = { - 'app_name': appmodel.__module__.replace(".", "_"), - 'name': appmodel.__name__, - 'abstracts': appmodel_abstracts, - 'fields': [], - 'relations': [] - } - - # consider given model name ? - def consider(model_name): - if exclude_models and model_name in exclude_models: - return False - return not include_models or model_name in include_models - - if not consider(appmodel._meta.object_name): - continue - - if verbose_names and appmodel._meta.verbose_name: - model['label'] = appmodel._meta.verbose_name - else: - model['label'] = model['name'] - - # model attributes - def add_attributes(field): - if verbose_names and field.verbose_name: - label = field.verbose_name - else: - label = field.name - - t = type(field).__name__ - if isinstance(field, (OneToOneField, ForeignKey)): - t += " ({0})".format(field.rel.field_name) - # TODO: ManyToManyField, GenericRelation - - model['fields'].append({ - 'name': field.name, - 'label': label, - 'type': t, - 'blank': field.blank, - 'abstract': field in abstract_fields, - }) - - # Find all the real attributes. Relations are depicted as graph edges instead of attributes - attributes = [field for field in appmodel._meta.local_fields if not isinstance(field, RelatedField)] - - # find primary key and print it first, ignoring implicit id if other pk exists - pk = appmodel._meta.pk - if not appmodel._meta.abstract and pk in attributes: - add_attributes(pk) - for field in attributes: - if skip_field(field): - continue - if not field.primary_key: - add_attributes(field) - - # FIXME: actually many_to_many fields aren't saved in this model's db table, so why should we add an attribute-line for them in the resulting graph? - #if appmodel._meta.many_to_many: - # for field in appmodel._meta.many_to_many: - # if skip_field(field): - # continue - # add_attributes(field) - - # relations - def add_relation(field, extras=""): - if verbose_names and field.verbose_name: - label = field.verbose_name - else: - label = field.name - - # show related field name - if hasattr(field, 'related_query_name'): - label += ' (%s)' % field.related_query_name() - - _rel = { - 'target_app': field.rel.to.__module__.replace('.', '_'), - 'target': field.rel.to.__name__, - 'type': type(field).__name__, - 'name': field.name, - 'label': label, - 'arrows': extras, - 'needs_node': True - } - if _rel not in model['relations'] and consider(_rel['target']): - model['relations'].append(_rel) - - for field in appmodel._meta.local_fields: - if field.attname.endswith('_ptr_id'): # excluding field redundant with inheritance relation - continue - if field in abstract_fields: # excluding fields inherited from abstract classes. they too show as local_fields - continue - if skip_field(field): - continue - if isinstance(field, OneToOneField): - add_relation(field, '[arrowhead=none, arrowtail=none]') - elif isinstance(field, ForeignKey): - add_relation(field, '[arrowhead=none, arrowtail=dot]') - - for field in appmodel._meta.local_many_to_many: - if skip_field(field): - continue - if isinstance(field, ManyToManyField): - if (getattr(field, 'creates_table', False) or # django 1.1. - (hasattr(field.rel.through, '_meta') and field.rel.through._meta.auto_created)): # django 1.2 - add_relation(field, '[arrowhead=dot arrowtail=dot, dir=both]') - elif isinstance(field, GenericRelation): - add_relation(field, mark_safe('[style="dotted", arrowhead=normal, arrowtail=normal, dir=both]')) - - if inheritance: - # add inheritance arrows - for parent in appmodel.__bases__: - if hasattr(parent, "_meta"): # parent is a model - l = "multi-table" - if parent._meta.abstract: - l = "abstract" - if appmodel._meta.proxy: - l = "proxy" - l += r"\ninheritance" - _rel = { - 'target_app': parent.__module__.replace(".", "_"), - 'target': parent.__name__, - 'type': "inheritance", - 'name': "inheritance", - 'label': l, - 'arrows': '[arrowhead=empty, arrowtail=none]', - 'needs_node': True - } - # TODO: seems as if abstract models aren't part of models.getModels, which is why they are printed by this without any attributes. - if _rel not in model['relations'] and consider(_rel['target']): - model['relations'].append(_rel) - - graph['models'].append(model) - graphs.append(graph) - - nodes = [] - for graph in graphs: - nodes.extend([e['name'] for e in graph['models']]) - - for graph in graphs: - # don't draw duplication nodes because of relations - for model in graph['models']: - for relation in model['relations']: - if relation['target'] in nodes: - relation['needs_node'] = False - # render templates - t = loader.get_template('django_extensions/graph_models/body.html') - dot += '\n' + t.render(graph) - - for graph in graphs: - t = loader.get_template('django_extensions/graph_models/rel.html') - dot += '\n' + t.render(graph) - - - t = loader.get_template('django_extensions/graph_models/tail.html') - c = Context({}) - dot += '\n' + t.render(c) - return dot - -def main(): - try: - opts, args = getopt.getopt(sys.argv[1:], "hadgi:L:x:X:en", - ["help", "all_applications", "disable_fields", "group_models", "include_models=", "inheritance", "verbose_names", "language=", "exclude_columns=", "exclude_models="]) - except getopt.GetoptError, error: - print __doc__ - sys.exit(error) - - kwargs = {} - for opt, arg in opts: - if opt in ("-h", "--help"): - print __doc__ - sys.exit() - if opt in ("-a", "--all_applications"): - kwargs['all_applications'] = True - if opt in ("-d", "--disable_fields"): - kwargs['disable_fields'] = True - if opt in ("-g", "--group_models"): - kwargs['group_models'] = True - if opt in ("-i", "--include_models"): - kwargs['include_models'] = arg - if opt in ("-e", "--inheritance"): - kwargs['inheritance'] = True - if opt in ("-n", "--verbose-names"): - kwargs['verbose_names'] = True - if opt in ("-L", "--language"): - kwargs['language'] = arg - if opt in ("-x", "--exclude_columns"): - kwargs['exclude_columns'] = arg - if opt in ("-X", "--exclude_models"): - kwargs['exclude_models'] = arg - - if not args and not kwargs.get('all_applications', False): - print __doc__ - sys.exit() - - print generate_dot(args, **kwargs) - -if __name__ == "__main__": - main() diff --git a/example/settings.py b/example/settings.py index a1d627d0..07dae802 100644 --- a/example/settings.py +++ b/example/settings.py @@ -95,9 +95,10 @@ SECRET_KEY = 'a8l7%06wr2k+3=%#*#@#rvop2mmzko)44%7k(zx%lls^ihm9^5' # List of callables that know how to import templates from various sources. TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', + ('django.template.loaders.cached.Loader', ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + )), ) diff --git a/teleforma/htdocs/css/teleforma.css b/teleforma/htdocs/css/teleforma.css index 02f88829..7a02b25f 100644 --- a/teleforma/htdocs/css/teleforma.css +++ b/teleforma/htdocs/css/teleforma.css @@ -855,6 +855,7 @@ table.listing tbody td, table.listing tbody th { } table.listing tbody td { font-weight: normal; + font-size: 0.9em; } table.listing tbody td.tmp { width: 100%; @@ -1234,6 +1235,9 @@ a.image-link { .icon_delete{ background-image: url('../images/delete.png'); } +.icon_download{ + background-image: url('../images/download.png'); +} .icon_rss,.icon_rss:hover{ background: url('../images/feed-icon-14x14.png') no-repeat; background-position: 0ex .8ex; @@ -1344,10 +1348,10 @@ input,textarea{ #module-set-left .module ul { margin: 0em 0em 0em 0.5em; - font-size: 0.8125em; + font-size: 0.9125em; background-color: #FFF; color: #0000 ; - font-weight: bold; + font-weight: normal; max-height: 250px; overflow-y: scroll; @@ -1422,7 +1426,7 @@ input,textarea{ padding: 0.5em 0.8em 0.8em 0.8em; } -.course_content h3 { +.course_content p { padding: 0.5em 0.8em 0.8em 0.8em; margin-top: 0.8em; } diff --git a/teleforma/migrations/0006_auto.py b/teleforma/migrations/0006_auto.py new file mode 100644 index 00000000..3d2240d9 --- /dev/null +++ b/teleforma/migrations/0006_auto.py @@ -0,0 +1,439 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding M2M table for field readers on 'Document' + db.create_table('teleforma_document_readers', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('document', models.ForeignKey(orm['teleforma.document'], null=False)), + ('user', models.ForeignKey(orm['auth.user'], null=False)) + )) + db.create_unique('teleforma_document_readers', ['document_id', 'user_id']) + + # Adding M2M table for field readers on 'Conference' + db.create_table('teleforma_conference_readers', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('conference', models.ForeignKey(orm['teleforma.conference'], null=False)), + ('user', models.ForeignKey(orm['auth.user'], null=False)) + )) + db.create_unique('teleforma_conference_readers', ['conference_id', 'user_id']) + + # Adding M2M table for field readers on 'Media' + db.create_table('teleforma_media_readers', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('media', models.ForeignKey(orm['teleforma.media'], null=False)), + ('user', models.ForeignKey(orm['auth.user'], null=False)) + )) + db.create_unique('teleforma_media_readers', ['media_id', 'user_id']) + + def backwards(self, orm): + # Removing M2M table for field readers on 'Document' + db.delete_table('teleforma_document_readers') + + # Removing M2M table for field readers on 'Conference' + db.delete_table('teleforma_conference_readers') + + # Removing M2M table for field readers on 'Media' + db.delete_table('teleforma_media_readers') + + 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'}) + }, + 'jqchat.room': { + 'Meta': {'ordering': "['created']", 'object_name': 'Room'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'description_modified': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_activity': ('django.db.models.fields.IntegerField', [], {}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'notes.note': { + 'Meta': {'object_name': 'Note'}, + 'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), + 'content': ('django.db.models.fields.TextField', [], {}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}), + 'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2012, 4, 12, 0, 0)'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'markup': ('django.db.models.fields.CharField', [], {'default': "'m'", 'max_length': '1'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'rendered_content': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'topic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['notes.Topic']"}) + }, + 'notes.topic': { + 'Meta': {'object_name': 'Topic'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'blank': 'True'}), + 'slug': ('django_extensions.db.fields.AutoSlugField', [], {'allow_duplicates': 'False', 'max_length': '50', 'separator': "u'-'", 'blank': 'True', 'populate_from': "'title'", 'overwrite': 'False'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'teleforma.category': { + 'Meta': {'object_name': 'Category'}, + '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.conference': { + 'Meta': {'ordering': "['-date_begin']", 'object_name': 'Conference'}, + 'comment': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Course']"}), + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'date_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'professor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference'", 'to': "orm['teleforma.Professor']"}), + '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'}) + }, + 'teleforma.course': { + 'Meta': {'ordering': "['title']", 'object_name': 'Course'}, + 'chat_room': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['jqchat.Room']", 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + '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'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.CourseType']"}) + }, + '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'}, + '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': "'department'", 'to': "orm['teleforma.Organization']"}) + }, + 'teleforma.document': { + 'Meta': {'object_name': 'Document'}, + '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', 'to': "orm['teleforma.Conference']"}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'document'", 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'db_column': "'filename'", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_annal': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'document'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', '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.media': { + 'Meta': {'object_name': 'Media'}, + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'to': "orm['teleforma.Conference']"}), + 'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'media'", 'to': "orm['teleforma.Course']"}), + 'credits': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('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'}), + 'is_live': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + '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']"}), + 'readers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'media'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['auth.User']"}) + }, + 'teleforma.oral': { + 'Meta': {'object_name': 'Oral'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + '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.procedure': { + 'Meta': {'object_name': 'Procedure'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.professor': { + 'Meta': {'object_name': 'Professor'}, + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'professor'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['teleforma.Course']"}), + '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.TextField', [], {}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', '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'}), + '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']"}) + }, + '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.speciality': { + 'Meta': {'object_name': 'Speciality'}, + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'teleforma.student': { + 'Meta': {'object_name': 'Student'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.Category']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'iej': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'student'", 'to': "orm['teleforma.IEJ']"}), + 'oral_1': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_1'", 'null': 'True', 'to': "orm['teleforma.Oral']"}), + 'oral_2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'oral_2'", 'null': 'True', 'to': "orm['teleforma.Oral']"}), + 'oral_speciality': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student_oral_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}), + 'procedure': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', 'to': "orm['teleforma.Procedure']"}), + 'training': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'student'", 'null': 'True', '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': "'student_written_spe'", 'null': 'True', 'to': "orm['teleforma.Speciality']"}) + }, + 'teleforma.training': { + 'Meta': {'object_name': 'Training'}, + 'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'course'", 'to': "orm['teleforma.Category']"}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'courses': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'training'", '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', 'blank': 'True'}), + 'obligation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'synthesis_note': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + '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'}), + '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'}), + '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'}), + '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'}), + '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': '100', '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'}), + 'moda_execut': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'old_code': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'public_access': ('telemeta.models.core.CharField', [], {'default': "'metadata'", 'max_length': '16', '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'}), + 'title': ('telemeta.models.core.CharField', [], {'default': "''", 'max_length': '250', '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.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.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 diff --git a/teleforma/models.py b/teleforma/models.py index 9292158f..9c1c3049 100755 --- a/teleforma/models.py +++ b/teleforma/models.py @@ -170,6 +170,8 @@ class Conference(Model): comment = CharField(_('comment'), max_length=255, blank=True) date_begin = DateTimeField(_('begin date'), null=True, blank=True) date_end = DateTimeField(_('end date'), null=True, blank=True) + readers = ManyToManyField(User, related_name="conference", verbose_name=_('readers'), + blank=True, null=True) @property def description(self): @@ -216,6 +218,8 @@ class Document(MediaBase): blank=True, null=True) is_annal = BooleanField(_('annal')) file = FileField(_('file'), upload_to='items/%Y/%m/%d', db_column="filename", blank=True) + readers = ManyToManyField(User, related_name="document", verbose_name=_('readers'), + blank=True, null=True) def is_image(self): is_url_image = False @@ -233,6 +237,12 @@ class Document(MediaBase): def __unicode__(self): return ' - '.join([self.title, unicode(self.course)]) + def set_read(self, user): + pass + + def get_read(self, user): + return user in self.readers + class Meta: db_table = app_label + '_' + 'document' @@ -248,7 +258,8 @@ class Media(MediaBase): item = ForeignKey(telemeta.models.media.MediaItem, related_name='media', verbose_name='item', blank=True, null=True) is_live = BooleanField(_('is live')) - + readers = ManyToManyField(User, related_name="media", verbose_name=_('readers'), + blank=True, null=True) def __unicode__(self): description = self.course.title diff --git a/teleforma/templates/postman/base.html b/teleforma/templates/postman/base.html index 93d06e4d..297e47b2 100644 --- a/teleforma/templates/postman/base.html +++ b/teleforma/templates/postman/base.html @@ -12,7 +12,7 @@
{% postman_unread as unread_count %}
{% endblock pm_by_modes %} -
{% paginate %}
{% csrf_token %} diff --git a/teleforma/templates/teleforma/course_detail.html b/teleforma/templates/teleforma/course_detail.html index 2986257c..e19b41ef 100644 --- a/teleforma/templates/teleforma/course_detail.html +++ b/teleforma/templates/teleforma/course_detail.html @@ -3,7 +3,7 @@ {% block courses %} {% for course in courses %} -
  • {{ course.title }}
  • +
  • {{ course.title}} {{ course.type }}
  • {% endfor %} {% endblock courses %} @@ -36,7 +36,7 @@ {% else %}
    -

    {% trans "No document" %}

    +

    {% trans "No document" %}

    {% endif %} diff --git a/teleforma/templates/teleforma/courses.html b/teleforma/templates/teleforma/courses.html index b0da6121..636ceee3 100644 --- a/teleforma/templates/teleforma/courses.html +++ b/teleforma/templates/teleforma/courses.html @@ -15,7 +15,7 @@ @@ -45,7 +45,7 @@
    {% for course in object_list %}
    -
    {{ course.title }}{% if course.description %} - {{ course.description }}{% endif %} +
    {{ course.title }} - {{ course.type }}{% if course.description %} - {{ course.description }}{% endif %}
    {% if course.conference.all or course.document.all or course.media.all %} @@ -69,7 +69,7 @@ {% endblock %} {% else %}
    -

    {% trans "No document" %}

    +

    {% trans "No document" %}

    {% endif %}
    diff --git a/teleforma/templates/teleforma/inc/document_list.html b/teleforma/templates/teleforma/inc/document_list.html index 3a289a18..93ec51df 100644 --- a/teleforma/templates/teleforma/inc/document_list.html +++ b/teleforma/templates/teleforma/inc/document_list.html @@ -9,6 +9,8 @@ {% trans "Title" %} {% trans "Description" %} {% trans "Date added" %} + {% trans "Annal" %} + @@ -17,6 +19,8 @@ {{ document.title }} {{ document.description }} {{ document.date_added }} + {{ document.is_annal }} + {% endfor %} diff --git a/teleforma/templatetags/teleforma_tags.py b/teleforma/templatetags/teleforma_tags.py index 56e31aa4..80c42f7b 100644 --- a/teleforma/templatetags/teleforma_tags.py +++ b/teleforma/templatetags/teleforma_tags.py @@ -56,3 +56,5 @@ def to_recipients(users): for user in users: list.append(user.username) return ':'.join(list) + + -- 2.39.5