--- a/.settings/org.eclipse.core.resources.prefs Thu Oct 10 10:36:14 2013 +0200
+++ b/.settings/org.eclipse.core.resources.prefs Thu Oct 10 14:58:25 2013 +0200
@@ -1,5 +1,7 @@
eclipse.preferences.version=1
encoding//src/core/migrations/0008_populate_nb_notice.py=utf-8
+encoding//src/core/migrations/0011_auto__add_field_term_nb_illustrated_notice.py=utf-8
+encoding//src/core/migrations/0012_populate_nb_illustrated_notice.py=utf-8
encoding//src/core/models/notice.py=utf-8
encoding//src/core/models/term.py=utf-8
encoding//src/core/settings.py=utf-8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/migrations/0011_auto__add_field_term_nb_illustrated_notice.py Thu Oct 10 14:58:25 2013 +0200
@@ -0,0 +1,235 @@
+# -*- 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 field 'Term.nb_illustrated_notice'
+ db.add_column(u'core_term', 'nb_illustrated_notice',
+ self.gf('django.db.models.fields.IntegerField')(default=0, db_index=True),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'Term.nb_illustrated_notice'
+ db.delete_column(u'core_term', 'nb_illustrated_notice')
+
+
+ models = {
+ u'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ u'auth.permission': {
+ 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ u'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'}),
+ u'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'})
+ },
+ 'core.autrnoticeterm': {
+ 'Meta': {'object_name': 'AutrNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.domnnoticeterm': {
+ 'Meta': {'object_name': 'DomnNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.ecolnoticeterm': {
+ 'Meta': {'object_name': 'EcolNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.epoqnoticeterm': {
+ 'Meta': {'object_name': 'EpoqNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.lieuxnoticeterm': {
+ 'Meta': {'object_name': 'LieuxNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.notice': {
+ 'Meta': {'object_name': 'Notice'},
+ 'adpt': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'appl': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'aptn': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attr': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'autr': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'autr_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'autr+'", 'symmetrical': 'False', 'through': "orm['core.AutrNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'bibl': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comm': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'coor': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'copy': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'dacq': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'data': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'dation': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'ddpt': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'decv': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'deno': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'depo': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'desc': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'desy': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'dims': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'dmaj': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'dmis': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'domn': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'domn_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'domn+'", 'symmetrical': 'False', 'through': "orm['core.DomnNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'drep': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'ecol': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'ecol_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'ecol+'", 'symmetrical': 'False', 'through': "orm['core.EcolNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'epoq': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'epoq_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'epoq+'", 'symmetrical': 'False', 'through': "orm['core.EpoqNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'etat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'expo': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'gene': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'geohi': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'hist': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'insc': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'inv': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'labo': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'lieux': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'lieux_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'lieux+'", 'symmetrical': 'False', 'through': "orm['core.LieuxNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'loca': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'loca2': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'mill': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'milu': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'mosa': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'msgcom': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'museo': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'nsda': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'onom': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'paut': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pdat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pdec': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'peoc': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'peri': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'peri_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'peri+'", 'symmetrical': 'False', 'through': "orm['core.PeriNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'peru': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'phot': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'pins': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'plieux': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'prep': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'puti': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'reda': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'ref': ('django.db.models.fields.CharField', [], {'max_length': '20', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'refim': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'repr': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'repr_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'repr+'", 'symmetrical': 'False', 'through': "orm['core.ReprNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'srep': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'srep_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'srep+'", 'symmetrical': 'False', 'through': "orm['core.SrepNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'stat': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'tech': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'tico': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'titr': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'util': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'video': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'www': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'})
+ },
+ 'core.noticeimage': {
+ 'Meta': {'unique_together': "(('relative_url', 'notice'),)", 'object_name': 'NoticeImage'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'notice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['core.Notice']"}),
+ 'relative_url': ('django.db.models.fields.URLField', [], {'max_length': "'1024'"})
+ },
+ 'core.noticeterm': {
+ 'Meta': {'object_name': 'NoticeTerm'},
+ 'graph': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'notice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Notice']"}),
+ 'term': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Term']"})
+ },
+ 'core.perinoticeterm': {
+ 'Meta': {'object_name': 'PeriNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.reprnoticeterm': {
+ 'Meta': {'object_name': 'ReprNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.srepnoticeterm': {
+ 'Meta': {'object_name': 'SrepNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.term': {
+ 'Meta': {'object_name': 'Term'},
+ 'alternative_wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'alternative_wikipedia_url': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'dbpedia_uri': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'lang': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'null': 'True', 'blank': 'True'}),
+ u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'link_semantic_level': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'nb_illustrated_notice': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'nb_notice': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'normalized_label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'notices': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'terms+'", 'symmetrical': 'False', 'through': "orm['core.NoticeTerm']", 'to': "orm['core.Notice']"}),
+ 'parent': ('mptt.fields.TreeForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['core.Term']"}),
+ u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'thesaurus': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Thesaurus']"}),
+ u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'uri': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'url_status': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'validated': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'validation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'validator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.User']", 'null': 'True', 'blank': 'True'}),
+ 'wikipedia_edition': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'wikipedia_revision_id': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'wikipedia_url': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'wp_alternative_label': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'wp_label': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'})
+ },
+ 'core.termlabel': {
+ 'Meta': {'object_name': 'TermLabel'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'lang': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'null': 'True', 'blank': 'True'}),
+ 'term': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'alternative_labels'", 'to': "orm['core.Term']"})
+ },
+ 'core.thesaurus': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'Thesaurus'},
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
+ 'uri': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'})
+ },
+ 'core.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': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ u'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'}),
+ 'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '2'}),
+ '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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ }
+ }
+
+ complete_apps = ['core']
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/migrations/0012_populate_nb_illustrated_notice.py Thu Oct 10 14:58:25 2013 +0200
@@ -0,0 +1,246 @@
+# -*- coding: utf-8 -*-
+from core.utils import show_progress
+from django.db import transaction, reset_queries
+from south.v2 import SchemaMigration
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ total = orm['core.term'].objects.count()
+
+ transaction.enter_transaction_management(True)
+ transaction.managed()
+
+ writer = None
+ for i, obj in enumerate(orm['core.term'].objects.values("id").iterator()):
+ term_id = obj['id']
+ writer = show_progress(i+1, total, "Processing term %d" % term_id, 50, writer)
+ nb_illustrated_notice = orm['core.notice'].objects.filter(noticeterm__term__id=term_id,image=True).count()
+ orm['core.term'].objects.filter(id=term_id).update(nb_illustrated_notice=nb_illustrated_notice)
+
+ if not ((i+1) % 5000):
+ transaction.commit()
+ reset_queries()
+
+ transaction.commit()
+ reset_queries()
+
+
+ def backwards(self, orm):
+ orm['core.term'].objects.update(nb_illustrated_notice=0)
+
+
+ models = {
+ u'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ u'auth.permission': {
+ 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ u'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'}),
+ u'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'})
+ },
+ 'core.autrnoticeterm': {
+ 'Meta': {'object_name': 'AutrNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.domnnoticeterm': {
+ 'Meta': {'object_name': 'DomnNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.ecolnoticeterm': {
+ 'Meta': {'object_name': 'EcolNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.epoqnoticeterm': {
+ 'Meta': {'object_name': 'EpoqNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.lieuxnoticeterm': {
+ 'Meta': {'object_name': 'LieuxNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.notice': {
+ 'Meta': {'object_name': 'Notice'},
+ 'adpt': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'appl': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'aptn': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attr': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'autr': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'autr_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'autr+'", 'symmetrical': 'False', 'through': "orm['core.AutrNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'bibl': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comm': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'coor': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'copy': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'dacq': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'data': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'dation': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'ddpt': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'decv': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'deno': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'depo': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'desc': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'desy': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'dims': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'dmaj': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'dmis': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'domn': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'domn_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'domn+'", 'symmetrical': 'False', 'through': "orm['core.DomnNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'drep': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'ecol': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'ecol_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'ecol+'", 'symmetrical': 'False', 'through': "orm['core.EcolNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'epoq': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'epoq_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'epoq+'", 'symmetrical': 'False', 'through': "orm['core.EpoqNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'etat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'expo': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'gene': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'geohi': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'hist': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'insc': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'inv': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'labo': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'lieux': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'lieux_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'lieux+'", 'symmetrical': 'False', 'through': "orm['core.LieuxNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'loca': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'loca2': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'mill': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'milu': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'mosa': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'msgcom': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'museo': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'nsda': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'onom': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'paut': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pdat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pdec': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'peoc': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'peri': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
+ 'peri_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'peri+'", 'symmetrical': 'False', 'through': "orm['core.PeriNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'peru': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'phot': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'pins': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'plieux': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'prep': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'puti': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'reda': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'ref': ('django.db.models.fields.CharField', [], {'max_length': '20', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'refim': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'repr': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'repr_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'repr+'", 'symmetrical': 'False', 'through': "orm['core.ReprNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'srep': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'srep_terms': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'srep+'", 'symmetrical': 'False', 'through': "orm['core.SrepNoticeTerm']", 'to': "orm['core.Term']"}),
+ 'stat': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'tech': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'tico': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'titr': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'util': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'video': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'www': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'})
+ },
+ 'core.noticeimage': {
+ 'Meta': {'unique_together': "(('relative_url', 'notice'),)", 'object_name': 'NoticeImage'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'notice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['core.Notice']"}),
+ 'relative_url': ('django.db.models.fields.URLField', [], {'max_length': "'1024'"})
+ },
+ 'core.noticeterm': {
+ 'Meta': {'object_name': 'NoticeTerm'},
+ 'graph': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'notice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Notice']"}),
+ 'term': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Term']"})
+ },
+ 'core.perinoticeterm': {
+ 'Meta': {'object_name': 'PeriNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.reprnoticeterm': {
+ 'Meta': {'object_name': 'ReprNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.srepnoticeterm': {
+ 'Meta': {'object_name': 'SrepNoticeTerm', '_ormbases': ['core.NoticeTerm']},
+ u'noticeterm_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['core.NoticeTerm']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'core.term': {
+ 'Meta': {'object_name': 'Term'},
+ 'alternative_wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'alternative_wikipedia_url': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'dbpedia_uri': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'lang': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'null': 'True', 'blank': 'True'}),
+ u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'link_semantic_level': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'nb_illustrated_notice': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'nb_notice': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'normalized_label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'notices': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'terms+'", 'symmetrical': 'False', 'through': "orm['core.NoticeTerm']", 'to': "orm['core.Notice']"}),
+ 'parent': ('mptt.fields.TreeForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['core.Term']"}),
+ u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'thesaurus': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Thesaurus']"}),
+ u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'uri': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'url_status': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'validated': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'validation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'validator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.User']", 'null': 'True', 'blank': 'True'}),
+ 'wikipedia_edition': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'wikipedia_revision_id': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'wikipedia_url': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'}),
+ 'wp_alternative_label': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'}),
+ 'wp_label': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1024', 'null': 'True', 'blank': 'True'})
+ },
+ 'core.termlabel': {
+ 'Meta': {'object_name': 'TermLabel'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
+ 'lang': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '128', 'null': 'True', 'blank': 'True'}),
+ 'term': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'alternative_labels'", 'to': "orm['core.Term']"})
+ },
+ 'core.thesaurus': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'Thesaurus'},
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
+ 'uri': ('django.db.models.fields.URLField', [], {'db_index': 'True', 'max_length': '2048', 'null': 'True', 'blank': 'True'})
+ },
+ 'core.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': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ u'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'}),
+ 'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '2'}),
+ '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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ }
+ }
+
+ complete_apps = ['core']
\ No newline at end of file
--- a/src/core/models/term.py Thu Oct 10 10:36:14 2013 +0200
+++ b/src/core/models/term.py Thu Oct 10 14:58:25 2013 +0200
@@ -103,6 +103,7 @@
nb_notice = models.IntegerField(blank=False, null=False, default=0, db_index=True, editable=False)
notices = models.ManyToManyField('core.Notice', related_name="terms+", through="core.NoticeTerm")
+ nb_illustrated_notice = models.IntegerField(blank=False, null=False, default=0, db_index=True, editable=False)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
--- a/src/jocondelab/static/jocondelab/js/front-common.js Thu Oct 10 10:36:14 2013 +0200
+++ b/src/jocondelab/static/jocondelab/js/front-common.js Thu Oct 10 14:58:25 2013 +0200
@@ -21,6 +21,8 @@
$(function() {
+ var lang = $("html").attr("lang").substr(0,2) || "fr";
+
/* SEARCH TAG-IT */
var $searchInput = $(".search-input"),
@@ -49,6 +51,7 @@
$searchInput.tagit({
autocomplete: {
source: urls.ajax_terms,
+ minLength: (lang === "ja" || lang == "zh") ? 1 : 2,
focus: function(e, ui) {
showDbpediaBox(ui.item.dbpedia_uri);
setDbpediaBoxAnchor({type: "dom", selector: $(e.target).autocomplete("widget"), positioning: "side"});
@@ -70,8 +73,7 @@
/* DBPEDIA OVERLAY */
- var lang = $("html").attr("lang").substr(0,2) || "fr",
- sparqlTpl = _.template(
+ var sparqlTpl = _.template(
'select distinct * where { '
+ 'OPTIONAL { <<%= uri %>> rdfs:label ?l FILTER( langMatches( lang(?l), "<%- lang %>" ) ) }. '
+ 'OPTIONAL { <<%= uri %>> dbpedia-owl:thumbnail ?t }. '
@@ -372,6 +374,7 @@
window.onResultImageError = function(img) {
img.src = urls.img_if_404;
+ $(img).css("background-image", $(".header-wrapper").css("background-image"));
throttledCheckSizes();
};
--- a/src/jocondelab/views/ajax.py Thu Oct 10 10:36:14 2013 +0200
+++ b/src/jocondelab/views/ajax.py Thu Oct 10 14:58:25 2013 +0200
@@ -20,7 +20,12 @@
lang = request.GET.get('lang', request.LANGUAGE_CODE)[:2]
q = request.GET.get('term', None)
count = request.GET.get('count', 20)
- qs = DbpediaFields.objects.filter(language_code=lang,label__iregex=r"\y%s"%q).values('dbpedia_uri','label').distinct().order_by('label')[:count]
+ qs = DbpediaFields.objects.filter(term__nb_illustrated_notice__gt=0,language_code=lang)
+ if lang in [ "fr", "en", "de", "it", "es", "pt", "ca", "br", "eu", "oc" ]:
+ qs = qs.filter(label__iregex=r"\y%s"%q)
+ else:
+ qs = qs.filter(label__icontains=q)
+ qs = qs.values('dbpedia_uri','label').distinct().order_by('label')[:count]
res = [{"dbpedia_uri": r['dbpedia_uri'], "label": r['label']} for r in qs]
return HttpResponse(content=json.dumps(res), mimetype='application/json')
@@ -31,13 +36,13 @@
to_year = request.GET.get('to_year', None)
count = request.GET.get('count', 20)
- qs = DbpediaYears.objects.filter(term__dbpedia_fields__language_code=lang)
+ qs = DbpediaYears.objects.filter(term__nb_illustrated_notice__gt=0,term__dbpedia_fields__language_code=lang)
if to_year:
qs = qs.filter(start_year__lte=to_year)
if from_year:
qs = qs.filter(end_year__gte=from_year)
qs = qs.values('start_year','end_year','term__dbpedia_fields__label','term__dbpedia_uri')
- qs = qs.annotate(sum_notices=Sum('term__nb_notice')).order_by('-sum_notices')
+ qs = qs.annotate(sum_notices=Sum('term__nb_illustrated_notice')).order_by('-sum_notices')
qs = qs[:count]
@@ -49,7 +54,7 @@
"dbpedia_uri": y["term__dbpedia_uri"]
} for y in qs]
- return HttpResponse(content=json.dumps(results), mimetype='application/json')
+ return HttpResponse(content=json.dumps(results), mimetype='application/json',term__nb_illustrated_notice__gt=0)
def geo_coords(request):
@@ -72,7 +77,7 @@
qs = qs.filter(longitude__lt=max_lng)
qs = qs.values('latitude','longitude','term__dbpedia_fields__label','term__dbpedia_uri')
- qs = qs.annotate(sum_notices=Sum('term__nb_notice')).order_by('-sum_notices')
+ qs = qs.annotate(sum_notices=Sum('term__nb_illustrated_notice')).order_by('-sum_notices')
qs = qs[:count]
@@ -94,7 +99,7 @@
qs = DbpediaGeo.objects.filter(term__dbpedia_fields__language_code=lang, term__dbpedia_fields__label__icontains=q)
qs = qs.values('latitude','longitude','term__dbpedia_fields__label','term__dbpedia_uri')
- qs = qs.annotate(sum_notices=Sum('term__nb_notice')).order_by('-sum_notices')[:count]
+ qs = qs.annotate(sum_notices=Sum('term__nb_illustrated_notice')).order_by('-sum_notices')[:count]
results = [{
"latitude": y["latitude"],
--- a/src/jocondelab/views/front_office.py Thu Oct 10 10:36:14 2013 +0200
+++ b/src/jocondelab/views/front_office.py Thu Oct 10 14:58:25 2013 +0200
@@ -218,6 +218,11 @@
template_name = "jocondelab/front_termlist.html"
+ def image_extra(self, qs):
+ return qs.extra(select={
+ 'image_url': 'SELECT relative_url FROM core_noticeimage AS JL01 JOIN core_notice AS JL02 ON JL02.id = JL01.notice_id JOIN core_noticeterm AS JL03 ON JL02.id = JL03.notice_id WHERE JL03.term_id = core_term.id LIMIT 1'
+ })
+
def get(self, request):
context = {}
@@ -234,7 +239,7 @@
if thesaurus is None:
wqs = TagcloudTerm.objects.filter(term__dbpedia_fields__language_code=lang).values('term__dbpedia_fields__label','term__dbpedia_uri')
- wqs = wqs.distinct().annotate(sum_notice=Sum('term__nb_notice')).order_by('-sum_notice')
+ wqs = wqs.distinct().annotate(sum_notice=Sum('term__nb_illustrated_notice')).order_by('-sum_notice')
n = wqs.count()
context['words'] = [{
'label': w['term__dbpedia_fields__label'],
@@ -267,7 +272,8 @@
letterpos = letters.find(letter)
context["current_letter"] = letter
if (not alpha_sort) or (thesaurus == 'AUTR' and alphabet == latinalph and letter is not None):
- tqs = Term.objects.filter(dbpedia_fields__language_code=lang)
+ # When ordering is not by translated label, we query the Term table
+ tqs = Term.objects.filter(dbpedia_fields__language_code=lang, nb_illustrated_notice__gt=0)
if thesaurus == 'REPR':
tqs = tqs.filter(thesaurus__label__in=['REPR','SREP'])
else:
@@ -279,8 +285,8 @@
tqs = tqs.filter(label__gte=letters[letterpos])
if letterpos < len(letters)-1:
tqs = tqs.filter(label__lt=letters[letterpos+1])
- tqs = tqs.filter(notices__image=True).distinct('label').order_by('label').select_related('notices__images')
- tqs = tqs.values('notices__images__relative_url','dbpedia_uri','dbpedia_fields__abstract','label')
+ tqs = tqs.distinct('label').order_by('label')
+ tqs = self.image_extra(tqs).values('image_url','dbpedia_uri','dbpedia_fields__abstract','label')
terms = []
known_uris = []
for t in tqs:
@@ -290,11 +296,8 @@
known_uris.append(uri)
else:
# When we're in sort by most frequent terms
- tqs = tqs.order_by('-nb_notice').extra(select={
- 'image_url': 'SELECT relative_url FROM core_noticeimage AS JL01 JOIN core_notice AS JL02 ON JL02.id = JL01.notice_id JOIN core_noticeterm AS JL03 ON JL02.id = JL03.notice_id WHERE JL03.term_id = core_term.id LIMIT 1'
- })[:80]
- tqs = tqs.values('image_url','dbpedia_fields__thumbnail','dbpedia_uri','dbpedia_fields__abstract','dbpedia_fields__label')
- terms = [t for t in tqs if t['image_url']][:60]
+ tqs = self.image_extra(tqs.order_by('-nb_illustrated_notice'))[:60]
+ terms = tqs.values('image_url','dbpedia_fields__thumbnail','dbpedia_uri','dbpedia_fields__abstract','dbpedia_fields__label')
terms = [{
"dbpedia_uri": t['dbpedia_uri'],
"label": t.get('dbpedia_fields__label',t.get('label','')),
@@ -303,7 +306,8 @@
} for t in terms]
context['termcount'] = len(terms)
else:
- tqs = DbpediaFields.objects.filter(language_code=lang,term__notices__image=True).exclude(label=None)
+ # When ordering is by translated label, we query the DbpediaFields table
+ tqs = DbpediaFields.objects.filter(language_code=lang, term__nb_illustrated_notice__gt=0).exclude(label=None)
if thesaurus == 'REPR':
tqs = tqs.filter(term__thesaurus__label__in=['REPR','SREP'])
else:
@@ -315,9 +319,9 @@
if letterpos < len(letters)-1:
tqs = tqs.filter(label__lt=letters[letterpos+1])
tqs = tqs.distinct('label').order_by('label')
- terms = tqs.select_related('term__notices__images').values('term__notices__images__relative_url','dbpedia_uri','abstract','label')
+ terms = self.image_extra(tqs).values('image_url','dbpedia_uri','abstract','label')
for t in terms:
- t['image_url'] = "%s%s"%(settings.JOCONDE_IMG_BASE_URL, t['term__notices__images__relative_url'])
+ t['image_url'] = "%s%s"%(settings.JOCONDE_IMG_BASE_URL, t['image_url'])
context['termcount'] = terms.count()
context['terms'] = terms