| author | ymh <ymh.work@gmail.com> |
| Tue, 25 Jun 2013 00:00:03 +0200 | |
| changeset 33 | 61c3ffd94f11 |
| parent 32 | ac5270714d2c |
| child 34 | b1fd0e0197c8 |
--- a/.settings/org.eclipse.core.resources.prefs Mon Jun 24 09:21:38 2013 +0200 +++ b/.settings/org.eclipse.core.resources.prefs Tue Jun 25 00:00:03 2013 +0200 @@ -18,3 +18,4 @@ encoding//src/jocondelab/utils.py=utf-8 encoding//src/jocondelab/views.py=utf-8 encoding//virtualenv/web/env/venv_jocondelab/lib/python2.7/site-packages/rdflib_sqlalchemy/__init__.py=utf-8 +encoding//virtualenv/web/env/venv_jocondelab/lib/python2.7/site-packages/wikitools/wiki.py=utf-8
--- a/src/core/import_processor.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/core/import_processor.py Tue Jun 25 00:00:03 2013 +0200 @@ -4,8 +4,7 @@ @author: ymh ''' -from .models import Term -from .rdf_models import graph +from .models import TermLabel from dateutil import parser import re @@ -49,12 +48,16 @@ self.notice_term_klass = notice_term_klass def build_notice_term(self, token, obj): - uri = graph.get_uri_for_term(token, context=self.context) - if not uri: - return None - term_obj = Term.objects.get(uri=uri) - if not self.notice_term_klass.objects.filter(notice=obj,term=term_obj).exists(): - return self.notice_term_klass(notice=obj,term=term_obj) + + termlabels = list(TermLabel.objects.filter(label=token, term__thesaurus__uri=self.context).select_related()) + if termlabels: + term_obj = termlabels[0].term + if not self.notice_term_klass.objects.filter(notice=obj,term=term_obj).exists(): + return self.notice_term_klass(notice=obj,term=term_obj) + else: + return None + else: + return None def process(self, obj, value): res = {}
--- a/src/core/locale/en/LC_MESSAGES/django.po Mon Jun 24 09:21:38 2013 +0200 +++ b/src/core/locale/en/LC_MESSAGES/django.po Tue Jun 25 00:00:03 2013 +0200 @@ -3,12 +3,11 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-17 13:33+0200\n" +"POT-Creation-Date: 2013-06-24 23:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
--- a/src/core/locale/fr/LC_MESSAGES/django.po Mon Jun 24 09:21:38 2013 +0200 +++ b/src/core/locale/fr/LC_MESSAGES/django.po Tue Jun 25 00:00:03 2013 +0200 @@ -3,12 +3,11 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-17 13:33+0200\n" +"POT-Creation-Date: 2013-06-24 23:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/core/migrations/0003_auto__add_srepnoticeterm.py Tue Jun 25 00:00:03 2013 +0200 @@ -0,0 +1,227 @@ +# -*- 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 model 'SrepNoticeTerm' + db.create_table(u'core_srepnoticeterm', ( + (u'noticeterm_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['core.NoticeTerm'], unique=True, primary_key=True)), + )) + db.send_create_signal('core', ['SrepNoticeTerm']) + + + def backwards(self, orm): + # Deleting model 'SrepNoticeTerm' + db.delete_table(u'core_srepnoticeterm') + + + 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': {'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', [], {'unique': 'True', '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'}), + 'normalized_label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}), + 'thesaurus': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Thesaurus']"}), + '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': u"orm['jocondelab.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'}) + }, + u'jocondelab.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': "'fr'", '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/notice.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/core/models/notice.py Tue Jun 25 00:00:03 2013 +0200 @@ -82,6 +82,7 @@ repr = models.TextField(null=True, blank=True) repr_terms = models.ManyToManyField(Term, related_name="repr+", limit_choices_to = {'thesaurus__label': 'repr'}, through='ReprNoticeTerm') srep = models.CharField(max_length=1024, null=True, blank=True) + srep_terms = models.ManyToManyField(Term, related_name="srep+", limit_choices_to = {'thesaurus__label': 'srep'}, through='SrepNoticeTerm') stat = models.CharField(max_length=1024, null=True, blank=True) tech = models.CharField(max_length=2048, null=True, blank=True) tico = models.TextField(null=True, blank=True) @@ -145,3 +146,7 @@ class ReprNoticeTerm(NoticeTerm): class Meta: app_label = 'core' + +class SrepNoticeTerm(NoticeTerm): + class Meta: + app_label = 'core'
--- a/src/core/settings.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/core/settings.py Tue Jun 25 00:00:03 2013 +0200 @@ -16,5 +16,8 @@ LIEUX_CONTEXT = getattr(settings,'LIEUX_CONTEXT', 'http://data.culture.fr/thesaurus/resource/ark:/67717/T84') PERI_CONTEXT = getattr(settings,'LIEUX_CONTEXT', 'http://data.culture.fr/thesaurus/resource/ark:/67717/T521') REPR_CONTEXT = getattr(settings,'REPR_CONTEXT' , 'http://data.culture.fr/thesaurus/resource/ark:/67717/T523') +SREP_CONTEXT = getattr(settings,'SREP_CONTEXT' , 'http://data.culture.fr/thesaurus/resource/ark:/67717/T507') WIKIPEDIA_VERSION_PERMALINK_TEMPLATE = getattr(settings, 'WIKIPEDIA_VERSION_PERMALINK_TEMPLATE', "http://fr.wikipedia.org/w/index.php?oldid=%s") + +
--- a/src/core/wp_utils.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/core/wp_utils.py Tue Jun 25 00:00:03 2013 +0200 @@ -6,6 +6,13 @@ import logging logger = logging.getLogger(__name__) +site = None + +def __get_site(): + global site + if site is None: + site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable + return site def normalize_term(term): @@ -135,34 +142,18 @@ term_label_normalized = normalize_term(term_label) # We get the wikipedia references for the tag_label # We get or create the tag object + global site - term = None - if term_uri is not None and Term.objects.filter(uri=term_uri).exists(): - term = Term.objects.get(uri=term_uri) - else: - for t in Term.objects.filter(normalized_label__iexact=term_label_normalized, lang=term_lang, thesaurus=thesaurus): - if term is None or t.url_status != TERM_URL_STATUS_DICT['null_result']: - term = t - if term.url_status != TERM_URL_STATUS_DICT['null_result']: - break + + term, created = Term.objects.get_or_create(uri=term_uri, defaults = {'label':term_label, 'thesaurus':thesaurus, 'normalized_label':term_label_normalized, 'lang' : term_lang}) - if term is None: - term = Term(label=term_label, thesaurus=thesaurus, normalized_label=term_label_normalized, uri=term_uri, lang = term_lang) - created = True - else: - created = False - - site = wiki.Wiki(settings.WIKIPEDIA_API_URL) #@UndefinedVariable - if created: - - wikipedia_revision_id = process_term(site, term, label=wp_label_transform(term_label_normalized)) - + wikipedia_revision_id = process_term(__get_site(), term, label=wp_label_transform(term_label_normalized)) term_label_obj = TermLabel(label=term_label, term=term, lang=term_lang) term_label_obj.save() elif term.wikipedia_pageid and not skip_wp_query: - wp_res = query_wikipedia_title(site, pageid=term.wikipedia_pageid) + wp_res = query_wikipedia_title(__get_site(), pageid=term.wikipedia_pageid) wikipedia_revision_id = wp_res['revision_id'] term.wikipedia_revision_id = wikipedia_revision_id term.save()
--- a/src/jocondelab/locale/en/LC_MESSAGES/django.po Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/locale/en/LC_MESSAGES/django.po Tue Jun 25 00:00:03 2013 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-18 12:36+0200\n" +"POT-Creation-Date: 2013-06-24 23:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -20,47 +20,47 @@ msgid "language" msgstr "language" -#: forms.py:30 +#: forms.py:34 msgid "thesaurus" msgstr "thesaurus" -#: forms.py:31 forms.py:34 templates/jocondelab/term_edit.html:70 +#: forms.py:35 forms.py:38 templates/jocondelab/term_edit.html:71 msgid "label" msgstr "label" -#: forms.py:32 +#: forms.py:36 msgid "link_status" msgstr "link status" -#: forms.py:33 +#: forms.py:37 msgid "validated" msgstr "valid." -#: forms.py:33 +#: forms.py:37 msgid "yes" msgstr "yes" -#: forms.py:33 +#: forms.py:37 msgid "no" msgstr "no" -#: forms.py:34 +#: forms.py:38 msgid "order_by" msgstr "order by" -#: forms.py:34 templates/jocondelab/term_edit.html:78 +#: forms.py:38 templates/jocondelab/term_edit.html:89 msgid "uri" msgstr "uri" -#: forms.py:35 +#: forms.py:39 msgid "order_dir" msgstr "sort order" -#: forms.py:35 +#: forms.py:39 msgid "asc" msgstr "asc." -#: forms.py:35 +#: forms.py:39 msgid "desc" msgstr "desc." @@ -68,23 +68,31 @@ msgid "French" msgstr "French" -#: settings.py:42 -msgid "English" -msgstr "English" +#: templates/jocondelab/term_edit.html:75 +msgid "alternative labels" +msgstr "alternative labels" -#: templates/jocondelab/term_edit.html:74 +#: templates/jocondelab/term_edit.html:85 msgid "id" msgstr "id" -#: templates/jocondelab/term_edit.html:82 +#: templates/jocondelab/term_edit.html:93 msgid "info wikipedia" msgstr "Wikipedia info" -#: templates/jocondelab/term_edit.html:108 +#: templates/jocondelab/term_edit.html:102 +msgid "Créer page WK" +msgstr "Create WK page" + +#: templates/jocondelab/term_edit.html:102 +msgid "Need wikipedia article" +msgstr "Need wikipedia article" + +#: templates/jocondelab/term_edit.html:122 msgid "Rech. joconde" msgstr "Joconde search" -#: templates/jocondelab/term_edit.html:114 +#: templates/jocondelab/term_edit.html:128 msgid "Edition wk" msgstr "WK Edition" @@ -115,3 +123,6 @@ #: templates/registration/login.html:19 msgid "login" msgstr "login" + +msgid "English" +msgstr "English"
--- a/src/jocondelab/locale/en/LC_MESSAGES/djangojs.po Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/locale/en/LC_MESSAGES/djangojs.po Tue Jun 25 00:00:03 2013 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-17 12:58+0200\n" +"POT-Creation-Date: 2013-06-24 23:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,8 +19,12 @@ #: static/jocondelab/js/jocondelab.js:6 #, c-format msgid "Confirmez-vous la suppression du lien Wikipédia pour le terme \"%s\" ?" -msgstr "Do you confirm the deletion of the wikipedia link for the term \"%s\"" +msgstr "Do you confirm the deletion of the wikipedia link for the term \"%s\" ?" -#: static/jocondelab/js/jocondelab.js:66 +#: static/jocondelab/js/jocondelab.js:80 msgid "Confirmez-vous la validation de ce terme ?" -msgstr "Do you confirm this term validation" +msgstr "Do you confirm this term validation ?" + +#: static/jocondelab/js/jocondelab.js:83 +msgid "Confirmez-vous l'invalidation de cette fiche ?" +msgstr "Do you confirm this notice validation ?"
--- a/src/jocondelab/locale/fr/LC_MESSAGES/django.po Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/locale/fr/LC_MESSAGES/django.po Tue Jun 25 00:00:03 2013 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-18 12:36+0200\n" +"POT-Creation-Date: 2013-06-24 23:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -21,47 +21,47 @@ msgid "language" msgstr "langue" -#: forms.py:30 +#: forms.py:34 msgid "thesaurus" msgstr "thésaurus" -#: forms.py:31 forms.py:34 templates/jocondelab/term_edit.html:70 +#: forms.py:35 forms.py:38 templates/jocondelab/term_edit.html:71 msgid "label" msgstr "label" -#: forms.py:32 +#: forms.py:36 msgid "link_status" msgstr "statut lien" -#: forms.py:33 +#: forms.py:37 msgid "validated" msgstr "validé" -#: forms.py:33 +#: forms.py:37 msgid "yes" msgstr "oui" -#: forms.py:33 +#: forms.py:37 msgid "no" msgstr "non" -#: forms.py:34 +#: forms.py:38 msgid "order_by" msgstr "ord. par" -#: forms.py:34 templates/jocondelab/term_edit.html:78 +#: forms.py:38 templates/jocondelab/term_edit.html:89 msgid "uri" msgstr "uri" -#: forms.py:35 +#: forms.py:39 msgid "order_dir" msgstr "ordre tri" -#: forms.py:35 +#: forms.py:39 msgid "asc" msgstr "asc." -#: forms.py:35 +#: forms.py:39 msgid "desc" msgstr "desc." @@ -69,23 +69,31 @@ msgid "French" msgstr "Français" -#: settings.py:42 -msgid "English" -msgstr "Anglais" +#: templates/jocondelab/term_edit.html:75 +msgid "alternative labels" +msgstr "Autres labels" -#: templates/jocondelab/term_edit.html:74 +#: templates/jocondelab/term_edit.html:85 msgid "id" msgstr "id" -#: templates/jocondelab/term_edit.html:82 +#: templates/jocondelab/term_edit.html:93 msgid "info wikipedia" msgstr "info wikipedia" -#: templates/jocondelab/term_edit.html:108 +#: templates/jocondelab/term_edit.html:102 +msgid "Créer page WK" +msgstr "Créer page WK" + +#: templates/jocondelab/term_edit.html:102 +msgid "Need wikipedia article" +msgstr "Besoin article Wikipedia" + +#: templates/jocondelab/term_edit.html:122 msgid "Rech. joconde" msgstr "Rech. Joconde" -#: templates/jocondelab/term_edit.html:114 +#: templates/jocondelab/term_edit.html:128 msgid "Edition wk" msgstr "Edition wk" @@ -116,3 +124,6 @@ #: templates/registration/login.html:19 msgid "login" msgstr "connex." + +msgid "English" +msgstr "Anglais"
--- a/src/jocondelab/locale/fr/LC_MESSAGES/djangojs.po Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/locale/fr/LC_MESSAGES/djangojs.po Tue Jun 25 00:00:03 2013 +0200 @@ -3,12 +3,11 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-17 12:58+0200\n" +"POT-Creation-Date: 2013-06-24 23:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -20,9 +19,13 @@ #: static/jocondelab/js/jocondelab.js:6 #, c-format -msgid "Confirmez-vous le suppression du lien Wikipédia pour le tag \"%s\" ?" -msgstr "Confirmez-vous le suppression du lien Wikipédia pour le tag \"%s\" ?" +msgid "Confirmez-vous la suppression du lien Wikipédia pour le terme \"%s\" ?" +msgstr "Confirmez-vous la suppression du lien Wikipédia pour le terme \"%s\" ?" -#: static/jocondelab/js/jocondelab.js:66 +#: static/jocondelab/js/jocondelab.js:80 msgid "Confirmez-vous la validation de ce terme ?" msgstr "Confirmez-vous la validation de ce terme ?" + +#: static/jocondelab/js/jocondelab.js:83 +msgid "Confirmez-vous l'invalidation de cette fiche ?" +msgstr "Confirmez-vous la validation de cette fiche ?"
--- a/src/jocondelab/management/commands/import_csv.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/management/commands/import_csv.py Tue Jun 25 00:00:03 2013 +0200 @@ -11,7 +11,7 @@ from core.models import (Notice, AutrNoticeTerm, DomnNoticeTerm, EcolNoticeTerm, EpoqNoticeTerm, LieuxNoticeTerm, PeriNoticeTerm, ReprNoticeTerm) from core.settings import (AUTR_CONTEXT, DOMN_CONTEXT, ECOL_CONTEXT, EPOQ_CONTEXT, - LIEUX_CONTEXT, PERI_CONTEXT, REPR_CONTEXT) + LIEUX_CONTEXT, PERI_CONTEXT, REPR_CONTEXT, SREP_CONTEXT) from django.core.management import BaseCommand from django.db import transaction from optparse import make_option @@ -20,6 +20,7 @@ import logging import os.path import sys +from core.models.notice import SrepNoticeTerm logger = logging.getLogger(__name__) @@ -33,11 +34,12 @@ 'ecol_terms' : TermProcessor('ecol' , ECOL_CONTEXT , EcolNoticeTerm), 'epoq_terms' : TermProcessor('epoq' , EPOQ_CONTEXT , EpoqNoticeTerm), 'lieux_terms': TermProcessor('lieux', LIEUX_CONTEXT, LieuxNoticeTerm), - 'peri_terms' : TermProcessor('peri' , PERI_CONTEXT , PeriNoticeTerm), - 'repr_terms' : TermProcessor('repr' , REPR_CONTEXT , ReprNoticeTerm, re_sub = None, re_split = "[\;\,\:\(\)\#]") + 'peri_terms' : TermProcessor('peri' , PERI_CONTEXT , PeriNoticeTerm), + 'repr_terms' : TermProcessor('repr' , REPR_CONTEXT , ReprNoticeTerm, re_sub = None, re_split = "[\;\,\:\(\)\#]"), + 'srep_terms' : TermProcessor('srep' , SREP_CONTEXT , SrepNoticeTerm, re_sub = None, re_split = "[\;\,\:\(\)\#]"), } -POST_NOTICE_FIELDS = ['autr_terms','domn_terms','ecol_terms','epoq_terms','lieux_terms','peri_terms','repr_terms'] +POST_NOTICE_FIELDS = ['autr_terms','domn_terms','ecol_terms','epoq_terms','lieux_terms','peri_terms','repr_terms', 'srep_terms'] DEFAULT_FIELD_PROCESSOR_KLASS = CharFieldProcessor class Command(BaseCommand):
--- a/src/jocondelab/management/commands/import_skos.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/management/commands/import_skos.py Tue Jun 25 00:00:03 2013 +0200 @@ -8,6 +8,7 @@ from django.db import connections from rdflib import plugin, ConjunctiveGraph from rdflib.store import Store +from sqlalchemy import and_ import os.path class Command(BaseCommand): @@ -61,15 +62,17 @@ q = litteral_statements.select().where(litteral_statements.c.predicate == "http://www.w3.org/2004/02/skos/core#altLabel") for row in connection.execute(q): if row['object'] and row['object'] != row['object'].strip(): - u_q = litteral_statements.update().where( - litteral_statements.c.subject == row['subject'] and - litteral_statements.c.predicate == row['predicate'] and - litteral_statements.c.object == row['object'] and - litteral_statements.c.context == row['context'] and - litteral_statements.c.termComb == row['termcomb'] and - litteral_statements.c.objLanguage == row['objlanguage'] and + u_q = litteral_statements.update().where(and_( + litteral_statements.c.subject == row['subject'], + litteral_statements.c.predicate == row['predicate'], + litteral_statements.c.object == row['object'], + litteral_statements.c.context == row['context'], + litteral_statements.c.termComb == row['termcomb'], + litteral_statements.c.objLanguage == row['objlanguage'], litteral_statements.c.objDatatype == row['objdatatype'] - ).values(object = row['object'].strip() ) + )).values(object = row['object'].strip() ) + #u_q_compiled = u_q.compile() + #self.stdout.write("UPDATE QUERY for %s : %s : %s - %s" % (row['subject'], row['object'], str(u_q_compiled), repr(u_q_compiled.params))) connection.execute(u_q) self.stdout.write("graph size %d" % len(self.graph))
--- a/src/jocondelab/management/commands/import_term_labels.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/management/commands/import_term_labels.py Tue Jun 25 00:00:03 2013 +0200 @@ -8,6 +8,7 @@ from core.models import Term, Thesaurus from core.models.term import TermLabel from core.rdf_models import graph +from core.wp_utils import normalize_term from django.core.management.base import NoArgsCommand from django.db import transaction from optparse import make_option @@ -44,6 +45,11 @@ term = Term.objects.get(uri=unicode(s)) lang = getattr(o, 'language', None) pref_label = unicode(o).strip() + if term.label != pref_label: + term.label = pref_label + term.normalized_label = normalize_term(pref_label) + term.save() + if not TermLabel.objects.filter(label=pref_label, term=term, lang=lang).exists(): TermLabel.objects.create(label=pref_label, term=term, lang=lang) except Term.DoesNotExist:
--- a/src/jocondelab/management/commands/import_terms.py Mon Jun 24 09:21:38 2013 +0200 +++ b/src/jocondelab/management/commands/import_terms.py Tue Jun 25 00:00:03 2013 +0200 @@ -9,7 +9,7 @@ from core.models.term import TermLabel from core.rdf_models import graph from core.settings import (AUTR_CONTEXT, DOMN_CONTEXT, ECOL_CONTEXT, EPOQ_CONTEXT, - LIEUX_CONTEXT, PERI_CONTEXT, REPR_CONTEXT) + LIEUX_CONTEXT, PERI_CONTEXT, REPR_CONTEXT, SREP_CONTEXT) from core.wp_utils import get_or_create_term, switch_case_group from django.core.management.base import NoArgsCommand from django.db import transaction @@ -23,7 +23,8 @@ {'label':'EPOQ' ,'uri':EPOQ_CONTEXT}, {'label':'LIEUX','uri':LIEUX_CONTEXT}, {'label':'PERI' ,'uri':PERI_CONTEXT}, - {'label':'REPR' ,'uri':REPR_CONTEXT} + {'label':'REPR' ,'uri':REPR_CONTEXT}, + {'label':'SREP' ,'uri':SREP_CONTEXT}, ] THESAURUS_LABEL_TRANSFORM = { @@ -33,7 +34,8 @@ 'EPOQ' : lambda l:l, 'LIEUX': lambda l:l, 'PERI' : lambda l:l, - 'REPR' : lambda l:l + 'REPR' : lambda l:l, + 'SREP' : lambda l:l, } @@ -74,8 +76,6 @@ transaction.commit() for thes in Thesaurus.objects.all(): - if thes.label == "AUTR": - continue self.stdout.write("Processing Thesaurus %s" % thes.label) for _,p,o in graph.triples((URIRef(thes.uri), None, None)): if p == URIRef("http://purl.org/dc/elements/1.1/title"):