|
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'] |