web/hdabo/migrations/0003_update_redirection.py
changeset 111 ceb381f5b0c7
child 114 c59383cc9940
equal deleted inserted replaced
108:4b73a767a6c0 111:ceb381f5b0c7
       
     1 # encoding: utf-8
       
     2 import datetime
       
     3 from south.db import db
       
     4 from south.v2 import DataMigration
       
     5 from django.db import models
       
     6 from hdabo import utils, wp_utils
       
     7 import sys
       
     8 from wikitools import wiki
       
     9 
       
    10 class Migration(DataMigration):
       
    11 
       
    12     def forwards(self, orm):
       
    13         queryset = orm.Tag.objects.filter(url_status=1, alternative_label=None)
       
    14         queryset_count = queryset.count() 
       
    15         
       
    16         sys.stdout.write("Processing %d tags\n" % (queryset_count))
       
    17         sys.stdout.flush()
       
    18         site = wiki.Wiki("http://fr.wikipedia.org/w/api.php")
       
    19         
       
    20         
       
    21         for i,tag in enumerate(queryset):
       
    22             utils.show_progress(i+1, queryset_count, tag.label, 50)
       
    23             wp_res = wp_utils.query_wikipedia_title(site, pageid=tag.wikipedia_pageid)
       
    24             tag.alternative_label = wp_res['alternative_label']
       
    25             tag.alternative_wikipedia_url = wp_res['alternative_wikipedia_url']
       
    26             tag.alternative_wikipedia_pageid = wp_res['alternative_pageid']
       
    27             tag.save()
       
    28 
       
    29         sys.stdout.write("\n")
       
    30         sys.stdout.flush()
       
    31         
       
    32 
       
    33     def backwards(self, orm):        
       
    34         pass
       
    35 
       
    36 
       
    37     models = {
       
    38         'auth.group': {
       
    39             'Meta': {'object_name': 'Group'},
       
    40             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    41             'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
       
    42             'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
       
    43         },
       
    44         'auth.permission': {
       
    45             'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
       
    46             'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
    47             'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
       
    48             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    49             'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
       
    50         },
       
    51         'auth.user': {
       
    52             'Meta': {'object_name': 'User'},
       
    53             'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
       
    54             'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
       
    55             'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
       
    56             'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
       
    57             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    58             'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
       
    59             'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
       
    60             'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
       
    61             'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
       
    62             'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
       
    63             'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
       
    64             'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
       
    65             'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
       
    66         },
       
    67         'contenttypes.contenttype': {
       
    68             'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
       
    69             'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
    70             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    71             'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
       
    72             'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
       
    73         },
       
    74         'hdabo.author': {
       
    75             'Meta': {'object_name': 'Author'},
       
    76             'firstname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
       
    77             'hda_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
       
    78             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    79             'lastname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'})
       
    80         },
       
    81         'hdabo.datasheet': {
       
    82             'Meta': {'object_name': 'Datasheet'},
       
    83             'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Author']", 'null': 'True', 'blank': 'True'}),
       
    84             'college_periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'college_periods_datasheets'", 'symmetrical': 'False', 'through': "orm['hdabo.Datasheet_college_periods']", 'to': "orm['hdabo.TimePeriod']"}),
       
    85             'college_themes': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'college_themes_datasheets'", 'symmetrical': 'False', 'through': "orm['hdabo.Datasheet_college_themes']", 'to': "orm['hdabo.Domain']"}),
       
    86             'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
       
    87             'domains': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'datasheets'", 'symmetrical': 'False', 'through': "orm['hdabo.Datasheet_domains']", 'to': "orm['hdabo.Domain']"}),
       
    88             'format': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.DocumentFormat']", 'null': 'True', 'blank': 'True'}),
       
    89             'hda_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
       
    90             'highschool_periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'highschool_periods_datasheets'", 'symmetrical': 'False', 'through': "orm['hdabo.Datasheet_highschool_periods']", 'to': "orm['hdabo.TimePeriod']"}),
       
    91             'highschool_themes': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'highschool_themes_datasheets'", 'symmetrical': 'False', 'through': "orm['hdabo.Datasheet_highschool_themes']", 'to': "orm['hdabo.Domain']"}),
       
    92             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
    93             'manual_order': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
       
    94             'modification_datetime': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
       
    95             'organisation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Organisation']"}),
       
    96             'original_creation_date': ('django.db.models.fields.DateField', [], {}),
       
    97             'original_modification_date': ('django.db.models.fields.DateField', [], {}),
       
    98             'primary_periods': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'primary_periods_datasheets'", 'symmetrical': 'False', 'through': "orm['hdabo.Datasheet_primary_periods']", 'to': "orm['hdabo.TimePeriod']"}),
       
    99             'primary_themes': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'primary_themes_datasheets'", 'symmetrical': 'False', 'through': "orm['hdabo.Datasheet_primary_themes']", 'to': "orm['hdabo.Domain']"}),
       
   100             'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['hdabo.Tag']", 'through': "orm['hdabo.TaggedSheet']", 'symmetrical': 'False'}),
       
   101             'title': ('django.db.models.fields.CharField', [], {'max_length': '2048'}),
       
   102             'town': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Location']", 'null': 'True', 'blank': 'True'}),
       
   103             'url': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
       
   104             'validated': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
       
   105             'validation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
       
   106             'validator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
       
   107         },
       
   108         'hdabo.datasheet_college_periods': {
       
   109             'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_college_periods'},
       
   110             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   111             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   112             'sort_value': ('django.db.models.fields.IntegerField', [], {}),
       
   113             'timeperiod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.TimePeriod']"})
       
   114         },
       
   115         'hdabo.datasheet_college_themes': {
       
   116             'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_college_themes'},
       
   117             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   118             'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Domain']"}),
       
   119             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   120             'sort_value': ('django.db.models.fields.IntegerField', [], {})
       
   121         },
       
   122         'hdabo.datasheet_domains': {
       
   123             'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_domains'},
       
   124             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   125             'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Domain']"}),
       
   126             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   127             'sort_value': ('django.db.models.fields.IntegerField', [], {})
       
   128         },
       
   129         'hdabo.datasheet_highschool_periods': {
       
   130             'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_highschool_periods'},
       
   131             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   132             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   133             'sort_value': ('django.db.models.fields.IntegerField', [], {}),
       
   134             'timeperiod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.TimePeriod']"})
       
   135         },
       
   136         'hdabo.datasheet_highschool_themes': {
       
   137             'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_highschool_themes'},
       
   138             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   139             'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Domain']"}),
       
   140             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   141             'sort_value': ('django.db.models.fields.IntegerField', [], {})
       
   142         },
       
   143         'hdabo.datasheet_primary_periods': {
       
   144             'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_primary_periods'},
       
   145             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   146             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   147             'sort_value': ('django.db.models.fields.IntegerField', [], {}),
       
   148             'timeperiod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.TimePeriod']"})
       
   149         },
       
   150         'hdabo.datasheet_primary_themes': {
       
   151             'Meta': {'ordering': "['sort_value']", 'object_name': 'Datasheet_primary_themes'},
       
   152             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   153             'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Domain']"}),
       
   154             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   155             'sort_value': ('django.db.models.fields.IntegerField', [], {})
       
   156         },
       
   157         'hdabo.documentformat': {
       
   158             'Meta': {'object_name': 'DocumentFormat'},
       
   159             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   160             'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'})
       
   161         },
       
   162         'hdabo.domain': {
       
   163             'Meta': {'unique_together': "(('label', 'school_period'),)", 'object_name': 'Domain'},
       
   164             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   165             'label': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
       
   166             'school_period': ('django.db.models.fields.IntegerField', [], {})
       
   167         },
       
   168         'hdabo.location': {
       
   169             'Meta': {'object_name': 'Location'},
       
   170             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   171             'insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '5'}),
       
   172             'name': ('django.db.models.fields.CharField', [], {'max_length': '512'})
       
   173         },
       
   174         'hdabo.organisation': {
       
   175             'Meta': {'object_name': 'Organisation'},
       
   176             'hda_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'}),
       
   177             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   178             'location': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}),
       
   179             'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
       
   180             'website': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'})
       
   181         },
       
   182         'hdabo.tag': {
       
   183             'Meta': {'unique_together': "(('label', 'original_label', 'url_status'),)", 'object_name': 'Tag'},
       
   184             'alias': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   185             'alternative_label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}),
       
   186             'alternative_wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
       
   187             'alternative_wikipedia_url': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
       
   188             'category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.TagCategory']", 'null': 'True', 'blank': 'True'}),
       
   189             'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   190             'dbpedia_uri': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
       
   191             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   192             'label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
       
   193             'normalized_label': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'db_index': 'True'}),
       
   194             'original_label': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
       
   195             'popularity': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
       
   196             'url_status': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
       
   197             'wikipedia_pageid': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
       
   198             'wikipedia_url': ('django.db.models.fields.URLField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}),
       
   199         },
       
   200         'hdabo.tagcategory': {
       
   201             'Meta': {'object_name': 'TagCategory'},
       
   202             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   203             'label': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '512'})
       
   204         },
       
   205         'hdabo.taggedsheet': {
       
   206             'Meta': {'object_name': 'TaggedSheet'},
       
   207             'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
       
   208             'datasheet': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Datasheet']"}),
       
   209             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   210             'index_note': ('django.db.models.fields.FloatField', [], {'default': '0.0', 'db_index': 'True'}),
       
   211             'order': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
       
   212             'original_order': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
       
   213             'tag': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['hdabo.Tag']"}),
       
   214             'wikipedia_revision_id': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'})
       
   215         },
       
   216         'hdabo.timeperiod': {
       
   217             'Meta': {'unique_together': "(('label', 'school_period'),)", 'object_name': 'TimePeriod'},
       
   218             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
       
   219             'label': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
       
   220             'school_period': ('django.db.models.fields.IntegerField', [], {})
       
   221         }
       
   222     }
       
   223 
       
   224     complete_apps = ['hdabo']