Commit 00247e8ccbe7e6ba7294fb0bef898b2fc094cdba
1 parent
6b94127b
Exists in
master
and in
39 other branches
Adding new initial migrations and install readme
-Remove database dependency -Add detailed installation of colab and all of its tools Signed-off-by: Gustavo Jaruga <darksshades@gmail.com>
Showing
48 changed files
with
635 additions
and
5037 deletions
Show diff stats
README.rst
@@ -43,6 +43,10 @@ to get results: natively in XML or JSON, PHP, Ruby and Python and then treatment | @@ -43,6 +43,10 @@ to get results: natively in XML or JSON, PHP, Ruby and Python and then treatment | ||
43 | Installation (Development Environment) | 43 | Installation (Development Environment) |
44 | ========================================== | 44 | ========================================== |
45 | 45 | ||
46 | +A detailed installation steps can be found in: | ||
47 | + | ||
48 | +`Detailed full environment installation <install.rst>`_ | ||
49 | + | ||
46 | Here we'll cover how to setup a development environment using a Vagrant | 50 | Here we'll cover how to setup a development environment using a Vagrant |
47 | virtual machine. | 51 | virtual machine. |
48 | 52 | ||
@@ -64,7 +68,7 @@ First you will need to clone the repository: | @@ -64,7 +68,7 @@ First you will need to clone the repository: | ||
64 | 68 | ||
65 | .. code-block:: | 69 | .. code-block:: |
66 | 70 | ||
67 | - git clone git@github.com:interlegis/colab.git | 71 | + git clone git@github.com:colab-community/colab.git |
68 | 72 | ||
69 | 73 | ||
70 | *NOTE:* | 74 | *NOTE:* |
@@ -0,0 +1,214 @@ | @@ -0,0 +1,214 @@ | ||
1 | +.. -*- coding: utf-8 -*- | ||
2 | + | ||
3 | +.. highlight:: rest | ||
4 | + | ||
5 | +.. _colab_software: | ||
6 | + | ||
7 | +================================= | ||
8 | +Installing a full colab environment | ||
9 | +================================= | ||
10 | + | ||
11 | +This file will guide you through the installation of colab's dependencys, | ||
12 | +external tools and its integration with colab to help you start using/working. | ||
13 | + | ||
14 | +The dependecys installation steps will be based of Ubuntu 13.04 but the tools, | ||
15 | +integrations and the colab itself runs in a virtual machine so it'll be the same regardless of your system. | ||
16 | + | ||
17 | + | ||
18 | +Fabric + VirtualBox + Vagrant | ||
19 | +============== | ||
20 | + | ||
21 | +You can easily install fabric using pip with | ||
22 | + | ||
23 | +.. code-block:: | ||
24 | + | ||
25 | + sudo apt-get install python-pip | ||
26 | + sudo pip install fabric | ||
27 | + | ||
28 | +You can also instal Virtual Box with apt-get | ||
29 | + | ||
30 | +.. code-block:: | ||
31 | + | ||
32 | + sudo apt-get install virtualbox | ||
33 | + | ||
34 | +Now, vagrant has an apt-get but its not supported anymore, so you'll have to manually download and install it from the site | ||
35 | + | ||
36 | + https://www.vagrantup.com/downloads.html | ||
37 | + | ||
38 | +Starting the VM and environment | ||
39 | +=============================== | ||
40 | + | ||
41 | +Clone the repository to your system | ||
42 | + | ||
43 | +.. code-block:: | ||
44 | + | ||
45 | + git clone https://github.com/colab-community/colab.git | ||
46 | + cd colab | ||
47 | + | ||
48 | +Create your local configuration file(we'll adjust it later) | ||
49 | + | ||
50 | +.. code-block:: | ||
51 | + | ||
52 | + cp src/colab/local_settings-dev.py src/colab/local_settings.py | ||
53 | + | ||
54 | +To startup the VM simple do | ||
55 | + | ||
56 | +.. code-block:: | ||
57 | + | ||
58 | + vagrant up | ||
59 | + | ||
60 | +*NOTE* | ||
61 | + | ||
62 | + In case you have problems creating the virtual machine you might need to download the linux header files | ||
63 | + | ||
64 | + .. code-block:: | ||
65 | + | ||
66 | + linux-headers-generic | ||
67 | + | ||
68 | +Accessing the VM and configurating the database | ||
69 | +=============================================== | ||
70 | + | ||
71 | +You should now be able to access your VM through | ||
72 | + | ||
73 | +.. code-block:: | ||
74 | + | ||
75 | + vagrant ssh | ||
76 | + | ||
77 | +*NOTE* | ||
78 | + | ||
79 | + In case you get a connection port refused or ssh error, you might need to activate manually an ssh server(rare) | ||
80 | + | ||
81 | + .. code-block:: | ||
82 | + | ||
83 | + sudo apt-get install ssh; sudo service ssh start; | ||
84 | + | ||
85 | +The VM doesnt come with a databse so, you'll need to install one inside it. | ||
86 | +Inside de VM download and install postgresql | ||
87 | + | ||
88 | +.. code-block:: | ||
89 | + | ||
90 | + sudo apt-get install postgresql | ||
91 | + | ||
92 | +Access the postgresql database and create a new database and user colab user | ||
93 | + | ||
94 | +.. code-block:: | ||
95 | + | ||
96 | + sudo -u postgres psql | ||
97 | + CREATE USER colab SUPERUSER INHERIT CREATEDB CREATEROLE; | ||
98 | + ALTER USER colab PASSWORD 'colab'; | ||
99 | + CREATE DATABASE colab; | ||
100 | + | ||
101 | +Also, create the Trac's database(note it needs to support UTF8) | ||
102 | + | ||
103 | +.. code-block:: | ||
104 | + | ||
105 | + create database "trac_colab" with owner "colab" encoding 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE=template0; | ||
106 | + \q | ||
107 | + | ||
108 | +That's the database used for Trac, but its needed so colab can make its migrations correctly and adjust solr accordinly | ||
109 | + | ||
110 | +Installing Trac on the VM | ||
111 | +========================= | ||
112 | + | ||
113 | +Inside the VM(vagrant ssh) download e install trac | ||
114 | + | ||
115 | +.. code-block:: | ||
116 | + | ||
117 | + sudo apt-get install trac | ||
118 | + sudo pip install --upgrade Trac | ||
119 | + | ||
120 | +Now you'll need to configure trac so it can access the previously created database. | ||
121 | + | ||
122 | +.. code-block:: | ||
123 | + | ||
124 | + mkdir -p /var/local/trac | ||
125 | + sudo trac-admin /var/local/trac initenv | ||
126 | + | ||
127 | +Set the project name to 'Colab' when asked, and the following postgresql connection string | ||
128 | + | ||
129 | +.. code-block:: | ||
130 | + | ||
131 | + postgres://colab:colab@/trac_colab?host=localhost | ||
132 | + | ||
133 | +The trac database should be populated with relations, now need to give trac write access to its folders | ||
134 | + | ||
135 | +.. code-block:: | ||
136 | + | ||
137 | + sudo chown -R www-data /var/local/trac | ||
138 | + sudo chmod -R 775 /var/local/trac | ||
139 | + | ||
140 | +Finally, trac can be run by | ||
141 | + | ||
142 | +.. code-block:: | ||
143 | + | ||
144 | + tracd --port 5000 /var/local/trac | ||
145 | + | ||
146 | +Use port 8000 and access it on port 8080 in your local machine to see it works if you'd like(vagrant has port redirects) | ||
147 | + | ||
148 | +Setting up Colab | ||
149 | +========================= | ||
150 | + | ||
151 | +You can exit the vagrant VM ('exit' inside the ssh shell) but for now leave it running Trac and start a new terminal tab | ||
152 | + | ||
153 | +Open the /src/colab/local_settings.py file | ||
154 | + | ||
155 | +Change COLAB_TRAC_URL to | ||
156 | + | ||
157 | +.. code-block:: | ||
158 | + | ||
159 | + COLAB_TRAC_URL = 'http://localhost:5000/trac/' | ||
160 | + | ||
161 | +Or the port you're using to Trac | ||
162 | + | ||
163 | +Use fabric at colab's root to update the requirements to your VM | ||
164 | + | ||
165 | +.. code-block:: | ||
166 | + | ||
167 | + fabric runserver:update | ||
168 | + | ||
169 | +*NOTE:* | ||
170 | + | ||
171 | + The fabric installation on ubuntu through 'pip install' might not be added to the path so you'll need to find | ||
172 | + where it was installed if thats your case | ||
173 | + | ||
174 | +Now simply run fabric again to run the server (it'll also sync and migrate colab's database) | ||
175 | + | ||
176 | +.. code-block:: | ||
177 | + | ||
178 | + fabric runserver | ||
179 | + | ||
180 | +You should be able to see colab with its cms service already working at port 8000(because of vagrant redirects) | ||
181 | + | ||
182 | +*NOTE* | ||
183 | + | ||
184 | + In case login doesn't work, change the SITE_URL in src/colab/local_settings.py the reflect the django's port | ||
185 | + Also, add the following line riht bellow it | ||
186 | + BROWSERID_AUDIENCES = [SITE_URL, SITE_URL.replace('https', 'http')] | ||
187 | + | ||
188 | +Installing Solr and indexing colab's schemas | ||
189 | +========================================== | ||
190 | +In Progress of making it readable | ||
191 | + #http servlet jetty | ||
192 | + sudo apt-get install jetty | ||
193 | + | ||
194 | + #solr | ||
195 | + wget http://ftp.unicamp.br/pub/apache/lucene/solr/4.6.1/solr-4.6.1.tgz | ||
196 | + tar xvzf solr-4.6.1.tgz | ||
197 | + sudo mv solr-4.6.1 /usr/share/solr | ||
198 | + | ||
199 | + sudo cp /usr/share/solr/example/webapps/solr.war /usr/share/solr/example/solr/solr.war | ||
200 | + | ||
201 | + python manage.py build_solr_schema >> schema.xml | ||
202 | + #existe mais de uma referencia a stopwords_en | ||
203 | + trocar no schema.xml stopwords_en.txt por lang/stopwords_en.txt | ||
204 | + | ||
205 | + sudo cp schema.xml /usr/share/solr/example/solr/collection1/conf | ||
206 | + | ||
207 | + #inclusive a tag | ||
208 | + Remova <updateLog> em solrconfig.xml localizado em /usr/share/solr/example/solr/collection1/conf | ||
209 | + | ||
210 | + #executa servidor | ||
211 | + cd /usr/share/solr/example/; java -jar start.jar; | ||
212 | + | ||
213 | + #indexa | ||
214 | + python manage.py update_index | ||
0 | \ No newline at end of file | 215 | \ No newline at end of file |
@@ -0,0 +1,116 @@ | @@ -0,0 +1,116 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +import datetime | ||
3 | +from south.db import db | ||
4 | +from south.v2 import SchemaMigration | ||
5 | +from django.db import models | ||
6 | + | ||
7 | + | ||
8 | +class Migration(SchemaMigration): | ||
9 | + | ||
10 | + def forwards(self, orm): | ||
11 | + # Adding model 'User' | ||
12 | + db.create_table(u'accounts_user', ( | ||
13 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
14 | + ('password', self.gf('django.db.models.fields.CharField')(max_length=128)), | ||
15 | + ('last_login', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), | ||
16 | + ('is_superuser', self.gf('django.db.models.fields.BooleanField')(default=False)), | ||
17 | + ('username', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)), | ||
18 | + ('first_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)), | ||
19 | + ('last_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)), | ||
20 | + ('email', self.gf('django.db.models.fields.EmailField')(unique=True, max_length=75, blank=True)), | ||
21 | + ('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)), | ||
22 | + ('is_active', self.gf('django.db.models.fields.BooleanField')(default=True)), | ||
23 | + ('date_joined', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), | ||
24 | + ('institution', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)), | ||
25 | + ('role', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)), | ||
26 | + ('twitter', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)), | ||
27 | + ('facebook', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)), | ||
28 | + ('google_talk', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)), | ||
29 | + ('github', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)), | ||
30 | + ('webpage', self.gf('django.db.models.fields.CharField')(max_length=256, null=True, blank=True)), | ||
31 | + ('verification_hash', self.gf('django.db.models.fields.CharField')(max_length=32, null=True, blank=True)), | ||
32 | + ('modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), | ||
33 | + ('bio', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), | ||
34 | + )) | ||
35 | + db.send_create_signal(u'accounts', ['User']) | ||
36 | + | ||
37 | + # Adding M2M table for field groups on 'User' | ||
38 | + m2m_table_name = db.shorten_name(u'accounts_user_groups') | ||
39 | + db.create_table(m2m_table_name, ( | ||
40 | + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), | ||
41 | + ('user', models.ForeignKey(orm[u'accounts.user'], null=False)), | ||
42 | + ('group', models.ForeignKey(orm[u'auth.group'], null=False)) | ||
43 | + )) | ||
44 | + db.create_unique(m2m_table_name, ['user_id', 'group_id']) | ||
45 | + | ||
46 | + # Adding M2M table for field user_permissions on 'User' | ||
47 | + m2m_table_name = db.shorten_name(u'accounts_user_user_permissions') | ||
48 | + db.create_table(m2m_table_name, ( | ||
49 | + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), | ||
50 | + ('user', models.ForeignKey(orm[u'accounts.user'], null=False)), | ||
51 | + ('permission', models.ForeignKey(orm[u'auth.permission'], null=False)) | ||
52 | + )) | ||
53 | + db.create_unique(m2m_table_name, ['user_id', 'permission_id']) | ||
54 | + | ||
55 | + | ||
56 | + def backwards(self, orm): | ||
57 | + # Deleting model 'User' | ||
58 | + db.delete_table(u'accounts_user') | ||
59 | + | ||
60 | + # Removing M2M table for field groups on 'User' | ||
61 | + db.delete_table(db.shorten_name(u'accounts_user_groups')) | ||
62 | + | ||
63 | + # Removing M2M table for field user_permissions on 'User' | ||
64 | + db.delete_table(db.shorten_name(u'accounts_user_user_permissions')) | ||
65 | + | ||
66 | + | ||
67 | + models = { | ||
68 | + u'accounts.user': { | ||
69 | + 'Meta': {'object_name': 'User'}, | ||
70 | + 'bio': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
71 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
72 | + 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
73 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
74 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
75 | + 'github': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
76 | + 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
77 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
78 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
79 | + 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
80 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
81 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
82 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
83 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
84 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
85 | + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
86 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
87 | + 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
88 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
89 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
90 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
91 | + 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
92 | + 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
93 | + }, | ||
94 | + u'auth.group': { | ||
95 | + 'Meta': {'object_name': 'Group'}, | ||
96 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
98 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
99 | + }, | ||
100 | + u'auth.permission': { | ||
101 | + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
102 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
103 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
104 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
105 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
106 | + }, | ||
107 | + u'contenttypes.contenttype': { | ||
108 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
109 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
110 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
111 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
112 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
113 | + } | ||
114 | + } | ||
115 | + | ||
116 | + complete_apps = ['accounts'] | ||
0 | \ No newline at end of file | 117 | \ No newline at end of file |
src/accounts/migrations/0001_rename_auth_user_to_accounts_user.py
@@ -1,59 +0,0 @@ | @@ -1,59 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - db.rename_table('auth_user', 'accounts_user') | ||
12 | - db.rename_table('auth_user_groups', 'accounts_user_groups') | ||
13 | - db.rename_table('auth_user_user_permissions', 'accounts_user_user_permissions') | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - db.rename_table('accounts_user', 'auth_user') | ||
17 | - db.rename_table('accounts_user_groups', 'auth_user_groups') | ||
18 | - db.rename_table('accounts_user_user_permissions', 'auth_user_user_permissions') | ||
19 | - | ||
20 | - models = { | ||
21 | - u'accounts.user': { | ||
22 | - 'Meta': {'object_name': 'User'}, | ||
23 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
24 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
25 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
26 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
27 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
28 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
29 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
30 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
31 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
32 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
33 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
34 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
35 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
36 | - }, | ||
37 | - u'auth.group': { | ||
38 | - 'Meta': {'object_name': 'Group'}, | ||
39 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
40 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
41 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
42 | - }, | ||
43 | - u'auth.permission': { | ||
44 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
45 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
46 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
47 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
48 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
49 | - }, | ||
50 | - u'contenttypes.contenttype': { | ||
51 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
52 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
53 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
54 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
55 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
56 | - } | ||
57 | - } | ||
58 | - | ||
59 | - complete_apps = ['accounts'] |
src/accounts/migrations/0002_delete_sussumu_dup.py
@@ -1,138 +0,0 @@ | @@ -1,138 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import DataMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(DataMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - try: | ||
11 | - sussumu = orm['accounts.User'].objects.get(username='Sussumu') | ||
12 | - except orm['accounts.User'].DoesNotExist: | ||
13 | - return | ||
14 | - profile = orm['super_archives.UserProfile'].objects.get(user_id=sussumu.pk) | ||
15 | - sussumu.delete() | ||
16 | - profile.delete() | ||
17 | - | ||
18 | - def backwards(self, orm): | ||
19 | - "Write your backwards methods here." | ||
20 | - | ||
21 | - models = { | ||
22 | - u'accounts.user': { | ||
23 | - 'Meta': {'object_name': 'User'}, | ||
24 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
25 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
26 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
27 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
28 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
29 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
30 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
31 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
32 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
33 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
34 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
35 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
36 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
37 | - }, | ||
38 | - u'auth.group': { | ||
39 | - 'Meta': {'object_name': 'Group'}, | ||
40 | - u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
43 | - }, | ||
44 | - u'auth.permission': { | ||
45 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
46 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
47 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
48 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
49 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
50 | - }, | ||
51 | - u'contenttypes.contenttype': { | ||
52 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
53 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
54 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
57 | - }, | ||
58 | - u'super_archives.emailaddress': { | ||
59 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
60 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
61 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
63 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
64 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': u"orm['accounts.User']"}) | ||
65 | - }, | ||
66 | - u'super_archives.mailinglist': { | ||
67 | - 'Meta': {'object_name': 'MailingList'}, | ||
68 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
70 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
72 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
73 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
74 | - }, | ||
75 | - u'super_archives.mailinglistmembership': { | ||
76 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
77 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
79 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
80 | - }, | ||
81 | - u'super_archives.message': { | ||
82 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
83 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
84 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
85 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
87 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
88 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
89 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
90 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
91 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
92 | - }, | ||
93 | - u'super_archives.messagemetadata': { | ||
94 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
95 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
96 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
98 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
99 | - }, | ||
100 | - u'super_archives.pagehit': { | ||
101 | - 'Meta': {'object_name': 'PageHit'}, | ||
102 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
103 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
105 | - }, | ||
106 | - u'super_archives.thread': { | ||
107 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
108 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
109 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
110 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
111 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
112 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
113 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
114 | - }, | ||
115 | - u'super_archives.userprofile': { | ||
116 | - 'Meta': {'object_name': 'UserProfile'}, | ||
117 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
118 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
119 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
120 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
121 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
122 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
123 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['accounts.User']", 'unique': 'True'}), | ||
124 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
125 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True'}) | ||
126 | - }, | ||
127 | - u'super_archives.vote': { | ||
128 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
129 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
130 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
131 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
132 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
133 | - } | ||
134 | - } | ||
135 | - | ||
136 | - complete_apps = ['accounts', 'super_archives'] | ||
137 | - symmetrical = True | ||
138 | - |
src/accounts/migrations/0003_auto__add_field_user_institution__add_field_user_role__add_field_user_.py
@@ -1,122 +0,0 @@ | @@ -1,122 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding field 'User.institution' | ||
12 | - db.add_column(u'accounts_user', 'institution', | ||
13 | - self.gf('django.db.models.fields.CharField')(max_length=128, null=True), | ||
14 | - keep_default=False) | ||
15 | - | ||
16 | - # Adding field 'User.role' | ||
17 | - db.add_column(u'accounts_user', 'role', | ||
18 | - self.gf('django.db.models.fields.CharField')(max_length=128, null=True), | ||
19 | - keep_default=False) | ||
20 | - | ||
21 | - # Adding field 'User.twitter' | ||
22 | - db.add_column(u'accounts_user', 'twitter', | ||
23 | - self.gf('django.db.models.fields.CharField')(max_length=128, null=True), | ||
24 | - keep_default=False) | ||
25 | - | ||
26 | - # Adding field 'User.facebook' | ||
27 | - db.add_column(u'accounts_user', 'facebook', | ||
28 | - self.gf('django.db.models.fields.CharField')(max_length=128, null=True), | ||
29 | - keep_default=False) | ||
30 | - | ||
31 | - # Adding field 'User.google_talk' | ||
32 | - db.add_column(u'accounts_user', 'google_talk', | ||
33 | - self.gf('django.db.models.fields.EmailField')(max_length=75, null=True), | ||
34 | - keep_default=False) | ||
35 | - | ||
36 | - # Adding field 'User.webpage' | ||
37 | - db.add_column(u'accounts_user', 'webpage', | ||
38 | - self.gf('django.db.models.fields.CharField')(max_length=256, null=True), | ||
39 | - keep_default=False) | ||
40 | - | ||
41 | - # Adding field 'User.verification_hash' | ||
42 | - db.add_column(u'accounts_user', 'verification_hash', | ||
43 | - self.gf('django.db.models.fields.CharField')(max_length=32, null=True), | ||
44 | - keep_default=False) | ||
45 | - | ||
46 | - # Adding unique constraint on 'User', fields ['email'] | ||
47 | - db.create_unique(u'accounts_user', ['email']) | ||
48 | - | ||
49 | - | ||
50 | - def backwards(self, orm): | ||
51 | - # Removing unique constraint on 'User', fields ['email'] | ||
52 | - db.delete_unique(u'accounts_user', ['email']) | ||
53 | - | ||
54 | - # Deleting field 'User.institution' | ||
55 | - db.delete_column(u'accounts_user', 'institution') | ||
56 | - | ||
57 | - # Deleting field 'User.role' | ||
58 | - db.delete_column(u'accounts_user', 'role') | ||
59 | - | ||
60 | - # Deleting field 'User.twitter' | ||
61 | - db.delete_column(u'accounts_user', 'twitter') | ||
62 | - | ||
63 | - # Deleting field 'User.facebook' | ||
64 | - db.delete_column(u'accounts_user', 'facebook') | ||
65 | - | ||
66 | - # Deleting field 'User.google_talk' | ||
67 | - db.delete_column(u'accounts_user', 'google_talk') | ||
68 | - | ||
69 | - # Deleting field 'User.webpage' | ||
70 | - db.delete_column(u'accounts_user', 'webpage') | ||
71 | - | ||
72 | - # Deleting field 'User.verification_hash' | ||
73 | - db.delete_column(u'accounts_user', 'verification_hash') | ||
74 | - | ||
75 | - | ||
76 | - models = { | ||
77 | - u'accounts.user': { | ||
78 | - 'Meta': {'object_name': 'User'}, | ||
79 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
80 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
81 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
82 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
83 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
84 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
85 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
87 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
88 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
89 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
90 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
91 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
92 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
93 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
94 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
95 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
96 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
97 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
98 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True'}) | ||
99 | - }, | ||
100 | - u'auth.group': { | ||
101 | - 'Meta': {'object_name': 'Group'}, | ||
102 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
103 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
104 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
105 | - }, | ||
106 | - u'auth.permission': { | ||
107 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
108 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
109 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
110 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
111 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
112 | - }, | ||
113 | - u'contenttypes.contenttype': { | ||
114 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
115 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
116 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
117 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
118 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
119 | - } | ||
120 | - } | ||
121 | - | ||
122 | - complete_apps = ['accounts'] | ||
123 | \ No newline at end of file | 0 | \ No newline at end of file |
src/accounts/migrations/0004_copy_profile_data.py
@@ -1,81 +0,0 @@ | @@ -1,81 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import DataMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(DataMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - fields = ('institution', 'role', 'twitter', 'facebook', | ||
11 | - 'google_talk', 'webpage') | ||
12 | - | ||
13 | - for userprofile in orm['super_archives.UserProfile'].objects.iterator(): | ||
14 | - user = orm['accounts.User'].objects.get(id=userprofile.user_id) | ||
15 | - for field in fields: | ||
16 | - setattr(user, field, getattr(userprofile, field)) | ||
17 | - user.save() | ||
18 | - | ||
19 | - def backwards(self, orm): | ||
20 | - "Write your backwards methods here." | ||
21 | - | ||
22 | - models = { | ||
23 | - u'accounts.user': { | ||
24 | - 'Meta': {'object_name': 'User'}, | ||
25 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
26 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
27 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
28 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
29 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
30 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
31 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
32 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
33 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
34 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
35 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
36 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
37 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
38 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
39 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
40 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
41 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
42 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
43 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
44 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True'}) | ||
45 | - }, | ||
46 | - u'auth.group': { | ||
47 | - 'Meta': {'object_name': 'Group'}, | ||
48 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
49 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
50 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
51 | - }, | ||
52 | - u'auth.permission': { | ||
53 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
54 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
55 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
56 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
57 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
58 | - }, | ||
59 | - u'contenttypes.contenttype': { | ||
60 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
61 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
63 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
64 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
65 | - }, | ||
66 | - u'super_archives.userprofile': { | ||
67 | - 'Meta': {'object_name': 'UserProfile'}, | ||
68 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
69 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
70 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
72 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
73 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
74 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['accounts.User']", 'unique': 'True'}), | ||
75 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
76 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True'}) | ||
77 | - } | ||
78 | - } | ||
79 | - | ||
80 | - complete_apps = ['accounts'] | ||
81 | - symmetrical = True |
src/accounts/migrations/0005_remove_host_from_social_accounts.py
@@ -1,74 +0,0 @@ | @@ -1,74 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -import urlparse | ||
4 | -from south.db import db | ||
5 | -from south.v2 import DataMigration | ||
6 | -from django.db import models | ||
7 | - | ||
8 | -class Migration(DataMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - for user in orm.User.objects.iterator(): | ||
12 | - if user.twitter: | ||
13 | - user.twitter = user.twitter.split('/')[-1] | ||
14 | - if user.facebook: | ||
15 | - if '?' in user.facebook: | ||
16 | - query_string = user.facebook.split('?')[-1] | ||
17 | - query_dict = dict(urlparse.parse_qsl(query_string)) | ||
18 | - user.facebook = query_dict.get('id') | ||
19 | - else: | ||
20 | - user.facebook = user.facebook.split('/')[-1] | ||
21 | - | ||
22 | - user.save() | ||
23 | - | ||
24 | - def backwards(self, orm): | ||
25 | - "Write your backwards methods here." | ||
26 | - | ||
27 | - models = { | ||
28 | - u'accounts.user': { | ||
29 | - 'Meta': {'object_name': 'User'}, | ||
30 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
31 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
32 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
34 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
35 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
36 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
37 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
38 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
39 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
40 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
41 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
42 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
43 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
44 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
45 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
46 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
47 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
48 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
49 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
50 | - }, | ||
51 | - u'auth.group': { | ||
52 | - 'Meta': {'object_name': 'Group'}, | ||
53 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
54 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
55 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
56 | - }, | ||
57 | - u'auth.permission': { | ||
58 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
59 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
61 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
63 | - }, | ||
64 | - u'contenttypes.contenttype': { | ||
65 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
66 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
69 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
70 | - } | ||
71 | - } | ||
72 | - | ||
73 | - complete_apps = ['accounts'] | ||
74 | - symmetrical = True |
src/accounts/migrations/0006_auto__add_field_user_modified.py
@@ -1,69 +0,0 @@ | @@ -1,69 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -from south.db import db | ||
3 | -from south.v2 import SchemaMigration | ||
4 | -from django.db import models | ||
5 | -from django.utils import timezone | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding field 'User.modified' | ||
12 | - db.add_column(u'accounts_user', 'modified', | ||
13 | - self.gf('django.db.models.fields.DateTimeField')(auto_now=True, default=timezone.now, blank=True), | ||
14 | - keep_default=False) | ||
15 | - | ||
16 | - | ||
17 | - def backwards(self, orm): | ||
18 | - # Deleting field 'User.modified' | ||
19 | - db.delete_column(u'accounts_user', 'modified') | ||
20 | - | ||
21 | - | ||
22 | - models = { | ||
23 | - u'accounts.user': { | ||
24 | - 'Meta': {'object_name': 'User'}, | ||
25 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
26 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
27 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
29 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
30 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
31 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
32 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
34 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
35 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
36 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
37 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
38 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
39 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
40 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
41 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
43 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
44 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
45 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
46 | - }, | ||
47 | - u'auth.group': { | ||
48 | - 'Meta': {'object_name': 'Group'}, | ||
49 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
50 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
51 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
52 | - }, | ||
53 | - u'auth.permission': { | ||
54 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
55 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
57 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
58 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
59 | - }, | ||
60 | - u'contenttypes.contenttype': { | ||
61 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
62 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
63 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
64 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
65 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
66 | - } | ||
67 | - } | ||
68 | - | ||
69 | - complete_apps = ['accounts'] |
src/accounts/migrations/0007_remove_at_from_username.py
@@ -1,69 +0,0 @@ | @@ -1,69 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import DataMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(DataMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - "Write your forwards methods here." | ||
11 | - # Note: Don't use "from appname.models import ModelName". | ||
12 | - # Use orm.ModelName to refer to models in this application, | ||
13 | - # and orm['appname.ModelName'] for models in other applications. | ||
14 | - for u in orm.User.objects.filter(username__contains='@'): | ||
15 | - u.username = u.username.split('@')[0] | ||
16 | - u.save() | ||
17 | - | ||
18 | - def backwards(self, orm): | ||
19 | - pass | ||
20 | - | ||
21 | - models = { | ||
22 | - u'accounts.user': { | ||
23 | - 'Meta': {'object_name': 'User'}, | ||
24 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
25 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
26 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
27 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
28 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
29 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
30 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
31 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
32 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
33 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
34 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
35 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
36 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
37 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
38 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
39 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
40 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
41 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
42 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
43 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
44 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
45 | - }, | ||
46 | - u'auth.group': { | ||
47 | - 'Meta': {'object_name': 'Group'}, | ||
48 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
49 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
50 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
51 | - }, | ||
52 | - u'auth.permission': { | ||
53 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
54 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
55 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
56 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
57 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
58 | - }, | ||
59 | - u'contenttypes.contenttype': { | ||
60 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
61 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
63 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
64 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
65 | - } | ||
66 | - } | ||
67 | - | ||
68 | - complete_apps = ['accounts'] | ||
69 | - symmetrical = True |
src/accounts/migrations/0008_auto__add_field_user_bio.py
@@ -1,70 +0,0 @@ | @@ -1,70 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding field 'User.bio' | ||
12 | - db.add_column(u'accounts_user', 'bio', | ||
13 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
14 | - keep_default=False) | ||
15 | - | ||
16 | - | ||
17 | - def backwards(self, orm): | ||
18 | - # Deleting field 'User.bio' | ||
19 | - db.delete_column(u'accounts_user', 'bio') | ||
20 | - | ||
21 | - | ||
22 | - models = { | ||
23 | - u'accounts.user': { | ||
24 | - 'Meta': {'object_name': 'User'}, | ||
25 | - 'bio': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
26 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
27 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
28 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
29 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
30 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
31 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
32 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
34 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
35 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
36 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
37 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
38 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
39 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
40 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
41 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
43 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
44 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
45 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
46 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
47 | - }, | ||
48 | - u'auth.group': { | ||
49 | - 'Meta': {'object_name': 'Group'}, | ||
50 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
51 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
52 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
53 | - }, | ||
54 | - u'auth.permission': { | ||
55 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
56 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
57 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
58 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
59 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
60 | - }, | ||
61 | - u'contenttypes.contenttype': { | ||
62 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
63 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
64 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
65 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
66 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
67 | - } | ||
68 | - } | ||
69 | - | ||
70 | - complete_apps = ['accounts'] | ||
71 | \ No newline at end of file | 0 | \ No newline at end of file |
src/accounts/migrations/0009_auto__add_field_user_identi_ca.py
@@ -1,71 +0,0 @@ | @@ -1,71 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding field 'User.identi_ca' | ||
12 | - db.add_column(u'accounts_user', 'identi_ca', | ||
13 | - self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True), | ||
14 | - keep_default=False) | ||
15 | - | ||
16 | - | ||
17 | - def backwards(self, orm): | ||
18 | - # Deleting field 'User.identi_ca' | ||
19 | - db.delete_column(u'accounts_user', 'identi_ca') | ||
20 | - | ||
21 | - | ||
22 | - models = { | ||
23 | - u'accounts.user': { | ||
24 | - 'Meta': {'object_name': 'User'}, | ||
25 | - 'bio': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
26 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
27 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
28 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
29 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
30 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
31 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
32 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'identi_ca': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
34 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
35 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
36 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
37 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
38 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
39 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
41 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
42 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
43 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
44 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
45 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
46 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
47 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
48 | - }, | ||
49 | - u'auth.group': { | ||
50 | - 'Meta': {'object_name': 'Group'}, | ||
51 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
52 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
53 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
54 | - }, | ||
55 | - u'auth.permission': { | ||
56 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
57 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
58 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
59 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
60 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
61 | - }, | ||
62 | - u'contenttypes.contenttype': { | ||
63 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
64 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
65 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
66 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
67 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
68 | - } | ||
69 | - } | ||
70 | - | ||
71 | - complete_apps = ['accounts'] | ||
72 | \ No newline at end of file | 0 | \ No newline at end of file |
src/accounts/migrations/0010_auto__del_field_user_identi_ca__add_field_user_github.py
@@ -1,79 +0,0 @@ | @@ -1,79 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Deleting field 'User.identi_ca' | ||
12 | - db.delete_column(u'accounts_user', 'identi_ca') | ||
13 | - | ||
14 | - # Adding field 'User.github' | ||
15 | - db.add_column(u'accounts_user', 'github', | ||
16 | - self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True), | ||
17 | - keep_default=False) | ||
18 | - | ||
19 | - | ||
20 | - def backwards(self, orm): | ||
21 | - # Adding field 'User.identi_ca' | ||
22 | - db.add_column(u'accounts_user', 'identi_ca', | ||
23 | - self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True), | ||
24 | - keep_default=False) | ||
25 | - | ||
26 | - # Deleting field 'User.github' | ||
27 | - db.delete_column(u'accounts_user', 'github') | ||
28 | - | ||
29 | - | ||
30 | - models = { | ||
31 | - u'accounts.user': { | ||
32 | - 'Meta': {'object_name': 'User'}, | ||
33 | - 'bio': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
34 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
35 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
36 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
37 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
38 | - 'github': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
39 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
40 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
41 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
42 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
43 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
44 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
45 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
46 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
47 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
48 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
49 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
50 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
51 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
52 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
53 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
54 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
55 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
56 | - }, | ||
57 | - u'auth.group': { | ||
58 | - 'Meta': {'object_name': 'Group'}, | ||
59 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
60 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
61 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
62 | - }, | ||
63 | - u'auth.permission': { | ||
64 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
65 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
66 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
69 | - }, | ||
70 | - u'contenttypes.contenttype': { | ||
71 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
72 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
73 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
74 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
75 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
76 | - } | ||
77 | - } | ||
78 | - | ||
79 | - complete_apps = ['accounts'] | ||
80 | \ No newline at end of file | 0 | \ No newline at end of file |
src/badger/migrations/0001_initial.py
@@ -11,13 +11,14 @@ class Migration(SchemaMigration): | @@ -11,13 +11,14 @@ class Migration(SchemaMigration): | ||
11 | # Adding model 'Badge' | 11 | # Adding model 'Badge' |
12 | db.create_table(u'badger_badge', ( | 12 | db.create_table(u'badger_badge', ( |
13 | (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | 13 | (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
14 | - ('title', self.gf('django.db.models.fields.CharField')(max_length=200)), | ||
15 | - ('description', self.gf('django.db.models.fields.CharField')(max_length=200)), | ||
16 | - ('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100)), | 14 | + ('title', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), |
15 | + ('description', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), | ||
16 | + ('image_base64', self.gf('django.db.models.fields.TextField')()), | ||
17 | ('type', self.gf('django.db.models.fields.CharField')(max_length=200)), | 17 | ('type', self.gf('django.db.models.fields.CharField')(max_length=200)), |
18 | ('user_attr', self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True)), | 18 | ('user_attr', self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True)), |
19 | ('comparison', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)), | 19 | ('comparison', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)), |
20 | ('value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(null=True, blank=True)), | 20 | ('value', self.gf('django.db.models.fields.PositiveSmallIntegerField')(null=True, blank=True)), |
21 | + ('order', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=100)), | ||
21 | )) | 22 | )) |
22 | db.send_create_signal(u'badger', ['Badge']) | 23 | db.send_create_signal(u'badger', ['Badge']) |
23 | 24 | ||
@@ -30,22 +31,43 @@ class Migration(SchemaMigration): | @@ -30,22 +31,43 @@ class Migration(SchemaMigration): | ||
30 | )) | 31 | )) |
31 | db.create_unique(m2m_table_name, ['badge_id', 'user_id']) | 32 | db.create_unique(m2m_table_name, ['badge_id', 'user_id']) |
32 | 33 | ||
34 | + # Adding model 'BadgeI18N' | ||
35 | + db.create_table(u'badger_badgei18n', ( | ||
36 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
37 | + ('i18n_language', self.gf('django.db.models.fields.CharField')(max_length=10)), | ||
38 | + ('title', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), | ||
39 | + ('description', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), | ||
40 | + ('i18n_source', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', to=orm['badger.Badge'])), | ||
41 | + )) | ||
42 | + db.send_create_signal(u'badger', ['BadgeI18N']) | ||
43 | + | ||
44 | + # Adding unique constraint on 'BadgeI18N', fields ['i18n_source', 'i18n_language'] | ||
45 | + db.create_unique(u'badger_badgei18n', ['i18n_source_id', 'i18n_language']) | ||
46 | + | ||
33 | 47 | ||
34 | def backwards(self, orm): | 48 | def backwards(self, orm): |
49 | + # Removing unique constraint on 'BadgeI18N', fields ['i18n_source', 'i18n_language'] | ||
50 | + db.delete_unique(u'badger_badgei18n', ['i18n_source_id', 'i18n_language']) | ||
51 | + | ||
35 | # Deleting model 'Badge' | 52 | # Deleting model 'Badge' |
36 | db.delete_table(u'badger_badge') | 53 | db.delete_table(u'badger_badge') |
37 | 54 | ||
38 | # Removing M2M table for field awardees on 'Badge' | 55 | # Removing M2M table for field awardees on 'Badge' |
39 | db.delete_table(db.shorten_name(u'badger_badge_awardees')) | 56 | db.delete_table(db.shorten_name(u'badger_badge_awardees')) |
40 | 57 | ||
58 | + # Deleting model 'BadgeI18N' | ||
59 | + db.delete_table(u'badger_badgei18n') | ||
60 | + | ||
41 | 61 | ||
42 | models = { | 62 | models = { |
43 | u'accounts.user': { | 63 | u'accounts.user': { |
44 | 'Meta': {'object_name': 'User'}, | 64 | 'Meta': {'object_name': 'User'}, |
65 | + 'bio': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
45 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | 66 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
46 | 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | 67 | 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), |
47 | 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | 68 | 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
48 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | 69 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
70 | + 'github': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
49 | 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | 71 | 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
50 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | 72 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
51 | u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | 73 | u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
@@ -55,6 +77,7 @@ class Migration(SchemaMigration): | @@ -55,6 +77,7 @@ class Migration(SchemaMigration): | ||
55 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | 77 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
56 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | 78 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
57 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | 79 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
80 | + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
58 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | 81 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
59 | 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | 82 | 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
60 | 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | 83 | 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
@@ -77,17 +100,26 @@ class Migration(SchemaMigration): | @@ -77,17 +100,26 @@ class Migration(SchemaMigration): | ||
77 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | 100 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
78 | }, | 101 | }, |
79 | u'badger.badge': { | 102 | u'badger.badge': { |
80 | - 'Meta': {'object_name': 'Badge'}, | 103 | + 'Meta': {'ordering': "['order']", 'object_name': 'Badge'}, |
81 | 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), | 104 | 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), |
82 | 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | 105 | 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), |
83 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | 106 | + 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
84 | u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | 107 | u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
85 | - 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | ||
86 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | 108 | + 'image_base64': ('django.db.models.fields.TextField', [], {}), |
109 | + 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}), | ||
110 | + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
87 | 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | 111 | 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), |
88 | 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | 112 | 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), |
89 | 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) | 113 | 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) |
90 | }, | 114 | }, |
115 | + u'badger.badgei18n': { | ||
116 | + 'Meta': {'unique_together': "(('i18n_source', 'i18n_language'),)", 'object_name': 'BadgeI18N'}, | ||
117 | + 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
118 | + 'i18n_language': ('django.db.models.fields.CharField', [], {'max_length': '10'}), | ||
119 | + 'i18n_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': u"orm['badger.Badge']"}), | ||
120 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
121 | + 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) | ||
122 | + }, | ||
91 | u'contenttypes.contenttype': { | 123 | u'contenttypes.contenttype': { |
92 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | 124 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
93 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | 125 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
src/badger/migrations/0002_auto__add_field_badge_title_en__add_field_badge_title_es__add_field_ba.py
@@ -1,120 +0,0 @@ | @@ -1,120 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding field 'Badge.title_en' | ||
12 | - db.add_column(u'badger_badge', 'title_en', | ||
13 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
14 | - keep_default=False) | ||
15 | - | ||
16 | - # Adding field 'Badge.title_es' | ||
17 | - db.add_column(u'badger_badge', 'title_es', | ||
18 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
19 | - keep_default=False) | ||
20 | - | ||
21 | - # Adding field 'Badge.description_en' | ||
22 | - db.add_column(u'badger_badge', 'description_en', | ||
23 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
24 | - keep_default=False) | ||
25 | - | ||
26 | - # Adding field 'Badge.description_es' | ||
27 | - db.add_column(u'badger_badge', 'description_es', | ||
28 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
29 | - keep_default=False) | ||
30 | - | ||
31 | - | ||
32 | - # Changing field 'Badge.description' | ||
33 | - db.alter_column(u'badger_badge', 'description', self.gf('django.db.models.fields.CharField')(max_length=200, null=True)) | ||
34 | - | ||
35 | - # Changing field 'Badge.title' | ||
36 | - db.alter_column(u'badger_badge', 'title', self.gf('django.db.models.fields.CharField')(max_length=200, null=True)) | ||
37 | - | ||
38 | - def backwards(self, orm): | ||
39 | - # Deleting field 'Badge.title_en' | ||
40 | - db.delete_column(u'badger_badge', 'title_en') | ||
41 | - | ||
42 | - # Deleting field 'Badge.title_es' | ||
43 | - db.delete_column(u'badger_badge', 'title_es') | ||
44 | - | ||
45 | - # Deleting field 'Badge.description_en' | ||
46 | - db.delete_column(u'badger_badge', 'description_en') | ||
47 | - | ||
48 | - # Deleting field 'Badge.description_es' | ||
49 | - db.delete_column(u'badger_badge', 'description_es') | ||
50 | - | ||
51 | - | ||
52 | - # Changing field 'Badge.description' | ||
53 | - db.alter_column(u'badger_badge', 'description', self.gf('django.db.models.fields.CharField')(default='', max_length=200)) | ||
54 | - | ||
55 | - # Changing field 'Badge.title' | ||
56 | - db.alter_column(u'badger_badge', 'title', self.gf('django.db.models.fields.CharField')(default='', max_length=200)) | ||
57 | - | ||
58 | - models = { | ||
59 | - u'accounts.user': { | ||
60 | - 'Meta': {'object_name': 'User'}, | ||
61 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
62 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
63 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
64 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
65 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
66 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
69 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
70 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
71 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
72 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
73 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
74 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
75 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
76 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
77 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
78 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
79 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
80 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
81 | - }, | ||
82 | - u'auth.group': { | ||
83 | - 'Meta': {'object_name': 'Group'}, | ||
84 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
85 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
86 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
87 | - }, | ||
88 | - u'auth.permission': { | ||
89 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
90 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
91 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
92 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
93 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
94 | - }, | ||
95 | - u'badger.badge': { | ||
96 | - 'Meta': {'object_name': 'Badge'}, | ||
97 | - 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), | ||
98 | - 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | ||
99 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
100 | - 'description_en': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
101 | - 'description_es': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
102 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
103 | - 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | ||
104 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
105 | - 'title_en': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
106 | - 'title_es': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
107 | - 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | ||
108 | - 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | ||
109 | - 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) | ||
110 | - }, | ||
111 | - u'contenttypes.contenttype': { | ||
112 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
113 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
114 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
115 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
116 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
117 | - } | ||
118 | - } | ||
119 | - | ||
120 | - complete_apps = ['badger'] | ||
121 | \ No newline at end of file | 0 | \ No newline at end of file |
src/badger/migrations/0003_auto__add_badgei18n__add_unique_badgei18n_i18n_source_i18n_language__d.py
@@ -1,131 +0,0 @@ | @@ -1,131 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding model 'BadgeI18N' | ||
12 | - db.create_table(u'badger_badgei18n', ( | ||
13 | - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
14 | - ('i18n_language', self.gf('django.db.models.fields.CharField')(max_length=10)), | ||
15 | - ('title', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), | ||
16 | - ('description', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), | ||
17 | - ('i18n_source', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', to=orm['badger.Badge'])), | ||
18 | - )) | ||
19 | - db.send_create_signal(u'badger', ['BadgeI18N']) | ||
20 | - | ||
21 | - # Adding unique constraint on 'BadgeI18N', fields ['i18n_source', 'i18n_language'] | ||
22 | - db.create_unique(u'badger_badgei18n', ['i18n_source_id', 'i18n_language']) | ||
23 | - | ||
24 | - # Deleting field 'Badge.title_en' | ||
25 | - db.delete_column(u'badger_badge', 'title_en') | ||
26 | - | ||
27 | - # Deleting field 'Badge.description_en' | ||
28 | - db.delete_column(u'badger_badge', 'description_en') | ||
29 | - | ||
30 | - # Deleting field 'Badge.title_es' | ||
31 | - db.delete_column(u'badger_badge', 'title_es') | ||
32 | - | ||
33 | - # Deleting field 'Badge.description_es' | ||
34 | - db.delete_column(u'badger_badge', 'description_es') | ||
35 | - | ||
36 | - | ||
37 | - def backwards(self, orm): | ||
38 | - # Removing unique constraint on 'BadgeI18N', fields ['i18n_source', 'i18n_language'] | ||
39 | - db.delete_unique(u'badger_badgei18n', ['i18n_source_id', 'i18n_language']) | ||
40 | - | ||
41 | - # Deleting model 'BadgeI18N' | ||
42 | - db.delete_table(u'badger_badgei18n') | ||
43 | - | ||
44 | - # Adding field 'Badge.title_en' | ||
45 | - db.add_column(u'badger_badge', 'title_en', | ||
46 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
47 | - keep_default=False) | ||
48 | - | ||
49 | - # Adding field 'Badge.description_en' | ||
50 | - db.add_column(u'badger_badge', 'description_en', | ||
51 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
52 | - keep_default=False) | ||
53 | - | ||
54 | - # Adding field 'Badge.title_es' | ||
55 | - db.add_column(u'badger_badge', 'title_es', | ||
56 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
57 | - keep_default=False) | ||
58 | - | ||
59 | - # Adding field 'Badge.description_es' | ||
60 | - db.add_column(u'badger_badge', 'description_es', | ||
61 | - self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), | ||
62 | - keep_default=False) | ||
63 | - | ||
64 | - | ||
65 | - models = { | ||
66 | - u'accounts.user': { | ||
67 | - 'Meta': {'object_name': 'User'}, | ||
68 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
70 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
71 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
72 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
73 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
74 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
75 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
76 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
77 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
78 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
79 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
80 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
81 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
82 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
83 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
84 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
85 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
86 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
87 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
88 | - }, | ||
89 | - u'auth.group': { | ||
90 | - 'Meta': {'object_name': 'Group'}, | ||
91 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
93 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
94 | - }, | ||
95 | - u'auth.permission': { | ||
96 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
97 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
98 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
99 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
100 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
101 | - }, | ||
102 | - u'badger.badge': { | ||
103 | - 'Meta': {'object_name': 'Badge'}, | ||
104 | - 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), | ||
105 | - 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | ||
106 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
107 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
108 | - 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | ||
109 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
110 | - 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | ||
111 | - 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | ||
112 | - 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) | ||
113 | - }, | ||
114 | - u'badger.badgei18n': { | ||
115 | - 'Meta': {'unique_together': "(('i18n_source', 'i18n_language'),)", 'object_name': 'BadgeI18N'}, | ||
116 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
117 | - 'i18n_language': ('django.db.models.fields.CharField', [], {'max_length': '10'}), | ||
118 | - 'i18n_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': u"orm['badger.Badge']"}), | ||
119 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
120 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) | ||
121 | - }, | ||
122 | - u'contenttypes.contenttype': { | ||
123 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
124 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
125 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
126 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
127 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
128 | - } | ||
129 | - } | ||
130 | - | ||
131 | - complete_apps = ['badger'] | ||
132 | \ No newline at end of file | 0 | \ No newline at end of file |
src/badger/migrations/0004_auto__add_field_badge_order.py
@@ -1,89 +0,0 @@ | @@ -1,89 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding field 'Badge.order' | ||
12 | - db.add_column(u'badger_badge', 'order', | ||
13 | - self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=100), | ||
14 | - keep_default=False) | ||
15 | - | ||
16 | - | ||
17 | - def backwards(self, orm): | ||
18 | - # Deleting field 'Badge.order' | ||
19 | - db.delete_column(u'badger_badge', 'order') | ||
20 | - | ||
21 | - | ||
22 | - models = { | ||
23 | - u'accounts.user': { | ||
24 | - 'Meta': {'object_name': 'User'}, | ||
25 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
26 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
27 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
29 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
30 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
31 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
32 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
34 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
35 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
36 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
37 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
38 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
39 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
40 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
41 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
42 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
43 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
44 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
45 | - }, | ||
46 | - u'auth.group': { | ||
47 | - 'Meta': {'object_name': 'Group'}, | ||
48 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
49 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
50 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
51 | - }, | ||
52 | - u'auth.permission': { | ||
53 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
54 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
55 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
56 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
57 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
58 | - }, | ||
59 | - u'badger.badge': { | ||
60 | - 'Meta': {'ordering': "['order']", 'object_name': 'Badge'}, | ||
61 | - 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), | ||
62 | - 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | ||
63 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
64 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
65 | - 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | ||
66 | - 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}), | ||
67 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
68 | - 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | ||
69 | - 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | ||
70 | - 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) | ||
71 | - }, | ||
72 | - u'badger.badgei18n': { | ||
73 | - 'Meta': {'unique_together': "(('i18n_source', 'i18n_language'),)", 'object_name': 'BadgeI18N'}, | ||
74 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
75 | - 'i18n_language': ('django.db.models.fields.CharField', [], {'max_length': '10'}), | ||
76 | - 'i18n_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': u"orm['badger.Badge']"}), | ||
77 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) | ||
79 | - }, | ||
80 | - u'contenttypes.contenttype': { | ||
81 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
82 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
83 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
84 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
85 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
86 | - } | ||
87 | - } | ||
88 | - | ||
89 | - complete_apps = ['badger'] | ||
90 | \ No newline at end of file | 0 | \ No newline at end of file |
src/badger/migrations/0005_auto__add_field_badge_image_base64.py
@@ -1,91 +0,0 @@ | @@ -1,91 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding field 'Badge.image_base64' | ||
12 | - db.add_column(u'badger_badge', 'image_base64', | ||
13 | - self.gf('django.db.models.fields.TextField')(default=''), | ||
14 | - keep_default=False) | ||
15 | - | ||
16 | - | ||
17 | - def backwards(self, orm): | ||
18 | - # Deleting field 'Badge.image_base64' | ||
19 | - db.delete_column(u'badger_badge', 'image_base64') | ||
20 | - | ||
21 | - | ||
22 | - models = { | ||
23 | - u'accounts.user': { | ||
24 | - 'Meta': {'object_name': 'User'}, | ||
25 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
26 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
27 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
29 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
30 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
31 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
32 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
34 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
35 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
36 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
37 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
38 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
39 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
40 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
41 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
43 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
44 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
45 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
46 | - }, | ||
47 | - u'auth.group': { | ||
48 | - 'Meta': {'object_name': 'Group'}, | ||
49 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
50 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
51 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
52 | - }, | ||
53 | - u'auth.permission': { | ||
54 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
55 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
57 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
58 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
59 | - }, | ||
60 | - u'badger.badge': { | ||
61 | - 'Meta': {'ordering': "['order']", 'object_name': 'Badge'}, | ||
62 | - 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), | ||
63 | - 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | ||
64 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
65 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
66 | - 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | ||
67 | - 'image_base64': ('django.db.models.fields.TextField', [], {}), | ||
68 | - 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}), | ||
69 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
70 | - 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | ||
71 | - 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | ||
72 | - 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) | ||
73 | - }, | ||
74 | - u'badger.badgei18n': { | ||
75 | - 'Meta': {'unique_together': "(('i18n_source', 'i18n_language'),)", 'object_name': 'BadgeI18N'}, | ||
76 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
77 | - 'i18n_language': ('django.db.models.fields.CharField', [], {'max_length': '10'}), | ||
78 | - 'i18n_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': u"orm['badger.Badge']"}), | ||
79 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
80 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) | ||
81 | - }, | ||
82 | - u'contenttypes.contenttype': { | ||
83 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
84 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
85 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
87 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
88 | - } | ||
89 | - } | ||
90 | - | ||
91 | - complete_apps = ['badger'] | ||
92 | \ No newline at end of file | 0 | \ No newline at end of file |
src/badger/migrations/0006_imgpath_to_base64_field.py
@@ -1,94 +0,0 @@ | @@ -1,94 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import base64 | ||
3 | -import os | ||
4 | - | ||
5 | -import datetime | ||
6 | -from south.db import db | ||
7 | -from south.v2 import DataMigration | ||
8 | -from django.db import models | ||
9 | -from django.conf import settings | ||
10 | - | ||
11 | -class Migration(DataMigration): | ||
12 | - | ||
13 | - def forwards(self, orm): | ||
14 | - for obj in orm.Badge.objects.all(): | ||
15 | - img = open(os.path.join(settings.MEDIA_ROOT, obj.image.path)) | ||
16 | - obj.image_base64 = base64.b64encode(img.read()) | ||
17 | - obj.save() | ||
18 | - | ||
19 | - def backwards(self, orm): | ||
20 | - for obj in orm.Badge.objects.all(): | ||
21 | - obj.image_base64 = '' | ||
22 | - obj.save() | ||
23 | - | ||
24 | - models = { | ||
25 | - u'accounts.user': { | ||
26 | - 'Meta': {'object_name': 'User'}, | ||
27 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
28 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
29 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
30 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
31 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
32 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
33 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
34 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
35 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
36 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
37 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
38 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
39 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
41 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
42 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
43 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
44 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
45 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
46 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
47 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
48 | - }, | ||
49 | - u'auth.group': { | ||
50 | - 'Meta': {'object_name': 'Group'}, | ||
51 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
52 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
53 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
54 | - }, | ||
55 | - u'auth.permission': { | ||
56 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
57 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
58 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
59 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
60 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
61 | - }, | ||
62 | - u'badger.badge': { | ||
63 | - 'Meta': {'ordering': "['order']", 'object_name': 'Badge'}, | ||
64 | - 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), | ||
65 | - 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | ||
66 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | ||
69 | - 'image_base64': ('django.db.models.fields.TextField', [], {}), | ||
70 | - 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}), | ||
71 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
72 | - 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | ||
73 | - 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | ||
74 | - 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) | ||
75 | - }, | ||
76 | - u'badger.badgei18n': { | ||
77 | - 'Meta': {'unique_together': "(('i18n_source', 'i18n_language'),)", 'object_name': 'BadgeI18N'}, | ||
78 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
79 | - 'i18n_language': ('django.db.models.fields.CharField', [], {'max_length': '10'}), | ||
80 | - 'i18n_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': u"orm['badger.Badge']"}), | ||
81 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
82 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) | ||
83 | - }, | ||
84 | - u'contenttypes.contenttype': { | ||
85 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
86 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
87 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
88 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
89 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
90 | - } | ||
91 | - } | ||
92 | - | ||
93 | - complete_apps = ['badger'] | ||
94 | - symmetrical = True |
src/badger/migrations/0007_auto__del_field_badge_image.py
@@ -1,90 +0,0 @@ | @@ -1,90 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Deleting field 'Badge.image' | ||
12 | - db.delete_column(u'badger_badge', 'image') | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - # Adding field 'Badge.image' | ||
17 | - db.add_column(u'badger_badge', 'image', | ||
18 | - self.gf('django.db.models.fields.files.ImageField')(default='', max_length=100), | ||
19 | - keep_default=False) | ||
20 | - | ||
21 | - | ||
22 | - models = { | ||
23 | - u'accounts.user': { | ||
24 | - 'Meta': {'object_name': 'User'}, | ||
25 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
26 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
27 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
29 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
30 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
31 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
32 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
34 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
35 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
36 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
37 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
38 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
39 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
40 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
41 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
43 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
44 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
45 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
46 | - }, | ||
47 | - u'auth.group': { | ||
48 | - 'Meta': {'object_name': 'Group'}, | ||
49 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
50 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
51 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
52 | - }, | ||
53 | - u'auth.permission': { | ||
54 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
55 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
57 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
58 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
59 | - }, | ||
60 | - u'badger.badge': { | ||
61 | - 'Meta': {'ordering': "['order']", 'object_name': 'Badge'}, | ||
62 | - 'awardees': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['accounts.User']", 'null': 'True', 'blank': 'True'}), | ||
63 | - 'comparison': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), | ||
64 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
65 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
66 | - 'image_base64': ('django.db.models.fields.TextField', [], {}), | ||
67 | - 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}), | ||
68 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
69 | - 'type': ('django.db.models.fields.CharField', [], {'max_length': '200'}), | ||
70 | - 'user_attr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | ||
71 | - 'value': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}) | ||
72 | - }, | ||
73 | - u'badger.badgei18n': { | ||
74 | - 'Meta': {'unique_together': "(('i18n_source', 'i18n_language'),)", 'object_name': 'BadgeI18N'}, | ||
75 | - 'description': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
76 | - 'i18n_language': ('django.db.models.fields.CharField', [], {'max_length': '10'}), | ||
77 | - 'i18n_source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': u"orm['badger.Badge']"}), | ||
78 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
79 | - 'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) | ||
80 | - }, | ||
81 | - u'contenttypes.contenttype': { | ||
82 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
83 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
84 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
85 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
86 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
87 | - } | ||
88 | - } | ||
89 | - | ||
90 | - complete_apps = ['badger'] | ||
91 | \ No newline at end of file | 0 | \ No newline at end of file |
src/proxy/migrations/0001_create_views.py
@@ -1,115 +0,0 @@ | @@ -1,115 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from django.db import connections | ||
4 | -from south.db import db | ||
5 | -from south.v2 import DataMigration | ||
6 | -from django.db import models | ||
7 | - | ||
8 | - | ||
9 | -class Migration(DataMigration): | ||
10 | - | ||
11 | - def forwards(self, orm): | ||
12 | - # Selecting trac database | ||
13 | - connection = connections['trac'] | ||
14 | - | ||
15 | - cursor = connection.cursor() | ||
16 | - cursor.execute(''' | ||
17 | - CREATE OR REPLACE VIEW wiki_view AS SELECT | ||
18 | - wiki.name AS name, | ||
19 | - (SELECT wiki2.text FROM wiki AS wiki2 WHERE wiki2.name = wiki.name | ||
20 | - AND wiki2.version = MAX(wiki.version)) AS wiki_text, | ||
21 | - (SELECT wiki3.author FROM wiki AS wiki3 WHERE wiki3.name = wiki.name | ||
22 | - AND wiki3.version = 1) AS author, | ||
23 | - string_agg(DISTINCT wiki.author, ', ') AS collaborators, | ||
24 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MAX(wiki.time)/1000000) * INTERVAL '1s' AS created, | ||
25 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MIN(wiki.time)/1000000) * INTERVAL '1s' AS modified | ||
26 | - FROM wiki | ||
27 | - GROUP BY wiki.name; | ||
28 | - | ||
29 | - CREATE OR REPLACE VIEW ticket_view AS SELECT | ||
30 | - ticket.id AS id, | ||
31 | - ticket.summary as summary, | ||
32 | - ticket.description as description, | ||
33 | - ticket.milestone as milestone, | ||
34 | - ticket.priority as priority, | ||
35 | - ticket.component as component, | ||
36 | - ticket.version as version, | ||
37 | - ticket.severity as severity, | ||
38 | - ticket.reporter as reporter, | ||
39 | - ticket.reporter as author, | ||
40 | - ticket.status as status, | ||
41 | - ticket.keywords as keywords, | ||
42 | - (SELECT | ||
43 | - string_agg(DISTINCT ticket_change.author, ', ') | ||
44 | - FROM ticket_change WHERE ticket_change.ticket = ticket.id | ||
45 | - GROUP BY ticket_change.ticket) as collaborators, | ||
46 | - TIMESTAMP WITH TIME ZONE 'epoch' + (time/1000000)* INTERVAL '1s' AS created, | ||
47 | - TIMESTAMP WITH TIME ZONE 'epoch' + (changetime/1000000) * INTERVAL '1s' AS modified | ||
48 | - FROM ticket; | ||
49 | - | ||
50 | - CREATE OR REPLACE VIEW revision_view AS SELECT | ||
51 | - revision.rev, | ||
52 | - revision.author, | ||
53 | - revision.message, | ||
54 | - repository.value AS repository_name, | ||
55 | - TIMESTAMP WITH TIME ZONE 'epoch' + (revision.time/1000000) * INTERVAL '1s' AS created | ||
56 | - FROM revision | ||
57 | - INNER JOIN repository ON( | ||
58 | - repository.id = revision.repos | ||
59 | - AND repository.name = 'name' | ||
60 | - AND repository.value != '' | ||
61 | - ); | ||
62 | - ''') | ||
63 | - | ||
64 | - def backwards(self, orm): | ||
65 | - # Selecting trac database | ||
66 | - connection = connections['trac'] | ||
67 | - | ||
68 | - cursor = connection.cursor() | ||
69 | - cursor.execute(''' | ||
70 | - DROP VIEW IF EXISTS revision_view; | ||
71 | - DROP VIEW IF EXISTS ticket_view; | ||
72 | - DROP VIEW IF EXISTS wiki_view; | ||
73 | - ''') | ||
74 | - | ||
75 | - | ||
76 | - models = { | ||
77 | - u'proxy.revision': { | ||
78 | - 'Meta': {'object_name': 'Revision', 'db_table': "'revision_view'", 'managed': 'False'}, | ||
79 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
80 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
81 | - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
82 | - 'repository_name': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
83 | - 'rev': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}) | ||
84 | - }, | ||
85 | - u'proxy.ticket': { | ||
86 | - 'Meta': {'object_name': 'Ticket', 'db_table': "'ticket_view'", 'managed': 'False'}, | ||
87 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
88 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
89 | - 'component': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
90 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
91 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
92 | - 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), | ||
93 | - 'keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
94 | - 'milestone': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
95 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
96 | - 'priority': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
97 | - 'reporter': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
98 | - 'severity': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
99 | - 'status': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
100 | - 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
101 | - 'version': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
102 | - }, | ||
103 | - u'proxy.wiki': { | ||
104 | - 'Meta': {'object_name': 'Wiki', 'db_table': "'wiki_view'", 'managed': 'False'}, | ||
105 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
106 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
107 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
108 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
109 | - 'name': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
110 | - 'wiki_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
111 | - } | ||
112 | - } | ||
113 | - | ||
114 | - complete_apps = ['proxy'] | ||
115 | - symmetrical = True |
@@ -0,0 +1,79 @@ | @@ -0,0 +1,79 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +import datetime | ||
3 | +from south.db import db | ||
4 | +from south.v2 import SchemaMigration | ||
5 | +from django.db import models | ||
6 | + | ||
7 | + | ||
8 | +class Migration(SchemaMigration): | ||
9 | + | ||
10 | + def forwards(self, orm): | ||
11 | + pass | ||
12 | + | ||
13 | + def backwards(self, orm): | ||
14 | + pass | ||
15 | + | ||
16 | + models = { | ||
17 | + u'proxy.attachment': { | ||
18 | + 'Meta': {'object_name': 'Attachment', 'db_table': "'attachment_view'", 'managed': 'False'}, | ||
19 | + 'attach_id': ('django.db.models.fields.TextField', [], {}), | ||
20 | + 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
21 | + 'created': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}), | ||
22 | + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
23 | + 'filename': ('django.db.models.fields.TextField', [], {}), | ||
24 | + 'mimetype': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
25 | + 'size': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}), | ||
26 | + 'url': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
27 | + 'used_by': ('django.db.models.fields.TextField', [], {}) | ||
28 | + }, | ||
29 | + u'proxy.revision': { | ||
30 | + 'Meta': {'object_name': 'Revision', 'db_table': "'revision_view'", 'managed': 'False'}, | ||
31 | + 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
32 | + 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
33 | + 'key': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
34 | + 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
35 | + 'repository_name': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
36 | + 'rev': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
37 | + }, | ||
38 | + u'proxy.ticket': { | ||
39 | + 'Meta': {'object_name': 'Ticket', 'db_table': "'ticket_view'", 'managed': 'False'}, | ||
40 | + 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
41 | + 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
42 | + 'component': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
43 | + 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
44 | + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
45 | + 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), | ||
46 | + 'keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
47 | + 'milestone': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
48 | + 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
49 | + 'modified_by': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
50 | + 'priority': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
51 | + 'reporter': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
52 | + 'severity': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
53 | + 'status': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
54 | + 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
55 | + 'version': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
56 | + }, | ||
57 | + u'proxy.ticketcollabcount': { | ||
58 | + 'Meta': {'object_name': 'TicketCollabCount', 'db_table': "'ticket_collab_count_view'", 'managed': 'False'}, | ||
59 | + 'author': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
60 | + 'count': ('django.db.models.fields.IntegerField', [], {}) | ||
61 | + }, | ||
62 | + u'proxy.wiki': { | ||
63 | + 'Meta': {'object_name': 'Wiki', 'db_table': "'wiki_view'", 'managed': 'False'}, | ||
64 | + 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
65 | + 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
66 | + 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
67 | + 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
68 | + 'modified_by': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
69 | + 'name': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
70 | + 'wiki_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
71 | + }, | ||
72 | + u'proxy.wikicollabcount': { | ||
73 | + 'Meta': {'object_name': 'WikiCollabCount', 'db_table': "'wiki_collab_count_view'", 'managed': 'False'}, | ||
74 | + 'author': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
75 | + 'count': ('django.db.models.fields.IntegerField', [], {}) | ||
76 | + } | ||
77 | + } | ||
78 | + | ||
79 | + complete_apps = ['proxy'] | ||
0 | \ No newline at end of file | 80 | \ No newline at end of file |
src/proxy/migrations/0002_add_key_to_revision_view.py
@@ -1,79 +0,0 @@ | @@ -1,79 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from django.db import connections | ||
4 | -from south.db import db | ||
5 | -from south.v2 import DataMigration | ||
6 | -from django.db import models | ||
7 | - | ||
8 | -class Migration(DataMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Selecting trac database | ||
12 | - connection = connections['trac'] | ||
13 | - | ||
14 | - cursor = connection.cursor() | ||
15 | - cursor.execute(''' | ||
16 | - CREATE OR REPLACE VIEW revision_view AS SELECT | ||
17 | - revision.rev, | ||
18 | - revision.author, | ||
19 | - revision.message, | ||
20 | - repository.value AS repository_name, | ||
21 | - TIMESTAMP WITH TIME ZONE 'epoch' + (revision.time/1000000) * INTERVAL '1s' AS created, | ||
22 | - CONCAT(revision.repos, '-', revision.rev) AS key | ||
23 | - FROM revision | ||
24 | - INNER JOIN repository ON( | ||
25 | - repository.id = revision.repos | ||
26 | - AND repository.name = 'name' | ||
27 | - AND repository.value != '' | ||
28 | - ); | ||
29 | - ''') | ||
30 | - | ||
31 | - def backwards(self, orm): | ||
32 | - # Selecting trac database | ||
33 | - connection = connections['trac'] | ||
34 | - | ||
35 | - cursor = connection.cursor() | ||
36 | - cursor.execute(''' | ||
37 | - ALTER VIEW revision_view ALTER COLUMN key DROP DEFAULT; | ||
38 | - ''') | ||
39 | - | ||
40 | - models = { | ||
41 | - u'proxy.revision': { | ||
42 | - 'Meta': {'object_name': 'Revision', 'db_table': "'revision_view'", 'managed': 'False'}, | ||
43 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
44 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
45 | - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
46 | - 'repository_name': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
47 | - 'rev': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}) | ||
48 | - }, | ||
49 | - u'proxy.ticket': { | ||
50 | - 'Meta': {'object_name': 'Ticket', 'db_table': "'ticket_view'", 'managed': 'False'}, | ||
51 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
52 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
53 | - 'component': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
54 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
55 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
56 | - 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), | ||
57 | - 'keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
58 | - 'milestone': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
59 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
60 | - 'priority': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
61 | - 'reporter': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
62 | - 'severity': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
63 | - 'status': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
64 | - 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
65 | - 'version': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
66 | - }, | ||
67 | - u'proxy.wiki': { | ||
68 | - 'Meta': {'object_name': 'Wiki', 'db_table': "'wiki_view'", 'managed': 'False'}, | ||
69 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
70 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
71 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
72 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
73 | - 'name': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
74 | - 'wiki_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
75 | - } | ||
76 | - } | ||
77 | - | ||
78 | - complete_apps = ['proxy'] | ||
79 | - symmetrical = True |
src/proxy/migrations/0003_create_attachment_view.py
@@ -1,87 +0,0 @@ | @@ -1,87 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from django.db import connections | ||
5 | -from south.v2 import DataMigration | ||
6 | -from django.db import models | ||
7 | - | ||
8 | -class Migration(DataMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Selecting trac database | ||
12 | - connection = connections['trac'] | ||
13 | - | ||
14 | - cursor = connection.cursor() | ||
15 | - cursor.execute(''' | ||
16 | - CREATE OR REPLACE VIEW attachment_view AS SELECT | ||
17 | - CONCAT(attachment.type, '/' , attachment.id, '/', attachment.filename) AS url, | ||
18 | - attachment.type AS used_by, | ||
19 | - attachment.filename AS filename, | ||
20 | - attachment.id as attach_id, | ||
21 | - (SELECT LOWER(SUBSTRING(attachment.filename FROM '\.(\w+)$'))) AS mimetype, | ||
22 | - attachment.author AS author, | ||
23 | - attachment.description AS description, | ||
24 | - attachment.size AS size, | ||
25 | - TIMESTAMP WITH TIME ZONE 'epoch' + (attachment.time/1000000)* INTERVAL '1s' AS created | ||
26 | - FROM attachment; | ||
27 | - ''') | ||
28 | - | ||
29 | - def backwards(self, orm): | ||
30 | - # Selecting trac database | ||
31 | - connection = connections['trac'] | ||
32 | - | ||
33 | - cursor = connection.cursor() | ||
34 | - cursor.execute('DROP VIEW IF EXISTS attachment_view;') | ||
35 | - | ||
36 | - models = { | ||
37 | - u'proxy.attachment': { | ||
38 | - 'Meta': {'object_name': 'Attachment', 'db_table': "'attachment'", 'managed': 'False'}, | ||
39 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
40 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
41 | - 'filename': ('django.db.models.fields.TextField', [], {}), | ||
42 | - 'id': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
43 | - 'key': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
44 | - 'size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | ||
45 | - 'time': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}), | ||
46 | - 'type': ('django.db.models.fields.TextField', [], {}) | ||
47 | - }, | ||
48 | - u'proxy.revision': { | ||
49 | - 'Meta': {'object_name': 'Revision', 'db_table': "'revision_view'", 'managed': 'False'}, | ||
50 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
51 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
52 | - 'key': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
53 | - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
54 | - 'repository_name': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
55 | - 'rev': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
56 | - }, | ||
57 | - u'proxy.ticket': { | ||
58 | - 'Meta': {'object_name': 'Ticket', 'db_table': "'ticket_view'", 'managed': 'False'}, | ||
59 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
60 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
61 | - 'component': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
62 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
63 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
64 | - 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), | ||
65 | - 'keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
66 | - 'milestone': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
67 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
68 | - 'priority': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
69 | - 'reporter': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
70 | - 'severity': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
71 | - 'status': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
72 | - 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
73 | - 'version': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
74 | - }, | ||
75 | - u'proxy.wiki': { | ||
76 | - 'Meta': {'object_name': 'Wiki', 'db_table': "'wiki_view'", 'managed': 'False'}, | ||
77 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
78 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
79 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
80 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
81 | - 'name': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
82 | - 'wiki_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
83 | - } | ||
84 | - } | ||
85 | - | ||
86 | - complete_apps = ['proxy'] | ||
87 | - symmetrical = True |
src/proxy/migrations/0004_replace_wiki_view.py
@@ -1,102 +0,0 @@ | @@ -1,102 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from django.db import connections | ||
4 | -from south.db import db | ||
5 | -from south.v2 import DataMigration | ||
6 | -from django.db import models | ||
7 | - | ||
8 | -class Migration(DataMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Selecting trac database | ||
12 | - connection = connections['trac'] | ||
13 | - | ||
14 | - cursor = connection.cursor() | ||
15 | - | ||
16 | - cursor.execute(''' | ||
17 | - CREATE OR REPLACE VIEW wiki_view AS SELECT | ||
18 | - wiki.name AS name, | ||
19 | - (SELECT wiki2.text FROM wiki AS wiki2 WHERE wiki2.name = wiki.name | ||
20 | - AND wiki2.version = MAX(wiki.version)) AS wiki_text, | ||
21 | - (SELECT wiki3.author FROM wiki AS wiki3 WHERE wiki3.name = wiki.name | ||
22 | - AND wiki3.version = 1) AS author, | ||
23 | - string_agg(DISTINCT wiki.author, ', ') AS collaborators, | ||
24 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MIN(wiki.time)/1000000) * INTERVAL '1s' AS created, | ||
25 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MAX(wiki.time)/1000000) * INTERVAL '1s' AS modified | ||
26 | - FROM wiki | ||
27 | - GROUP BY wiki.name; | ||
28 | - ''') | ||
29 | - | ||
30 | - def backwards(self, orm): | ||
31 | - # Selecting trac database | ||
32 | - connection = connections['trac'] | ||
33 | - | ||
34 | - cursor = connection.cursor() | ||
35 | - | ||
36 | - cursor.execute(''' | ||
37 | - CREATE OR REPLACE VIEW wiki_view AS SELECT | ||
38 | - wiki.name AS name, | ||
39 | - (SELECT wiki2.text FROM wiki AS wiki2 WHERE wiki2.name = wiki.name | ||
40 | - AND wiki2.version = MAX(wiki.version)) AS wiki_text, | ||
41 | - (SELECT wiki3.author FROM wiki AS wiki3 WHERE wiki3.name = wiki.name | ||
42 | - AND wiki3.version = 1) AS author, | ||
43 | - string_agg(DISTINCT wiki.author, ', ') AS collaborators, | ||
44 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MAX(wiki.time)/1000000) * INTERVAL '1s' AS created, | ||
45 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MIN(wiki.time)/1000000) * INTERVAL '1s' AS modified | ||
46 | - FROM wiki | ||
47 | - GROUP BY wiki.name; | ||
48 | - ''') | ||
49 | - | ||
50 | - models = { | ||
51 | - u'proxy.attachment': { | ||
52 | - 'Meta': {'object_name': 'Attachment', 'db_table': "'attachment_view'", 'managed': 'False'}, | ||
53 | - 'attach_id': ('django.db.models.fields.TextField', [], {}), | ||
54 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
55 | - 'created': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}), | ||
56 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
57 | - 'filename': ('django.db.models.fields.TextField', [], {}), | ||
58 | - 'mimetype': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
59 | - 'size': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}), | ||
60 | - 'url': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
61 | - 'used_by': ('django.db.models.fields.TextField', [], {}) | ||
62 | - }, | ||
63 | - u'proxy.revision': { | ||
64 | - 'Meta': {'object_name': 'Revision', 'db_table': "'revision_view'", 'managed': 'False'}, | ||
65 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
66 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
67 | - 'key': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
68 | - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
69 | - 'repository_name': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
70 | - 'rev': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
71 | - }, | ||
72 | - u'proxy.ticket': { | ||
73 | - 'Meta': {'object_name': 'Ticket', 'db_table': "'ticket_view'", 'managed': 'False'}, | ||
74 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
75 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
76 | - 'component': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
77 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
78 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
79 | - 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), | ||
80 | - 'keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
81 | - 'milestone': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
82 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
83 | - 'priority': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
84 | - 'reporter': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
85 | - 'severity': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
86 | - 'status': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
87 | - 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
88 | - 'version': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
89 | - }, | ||
90 | - u'proxy.wiki': { | ||
91 | - 'Meta': {'object_name': 'Wiki', 'db_table': "'wiki_view'", 'managed': 'False'}, | ||
92 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
93 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
94 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
95 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
96 | - 'name': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
97 | - 'wiki_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
98 | - } | ||
99 | - } | ||
100 | - | ||
101 | - complete_apps = ['proxy'] | ||
102 | - symmetrical = True |
src/proxy/migrations/0005_adding_modified_by.py
@@ -1,125 +0,0 @@ | @@ -1,125 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from django.db import connections | ||
4 | -from south.db import db | ||
5 | -from south.v2 import DataMigration | ||
6 | -from django.db import models | ||
7 | - | ||
8 | -class Migration(DataMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Selecting trac database | ||
12 | - connection = connections['trac'] | ||
13 | - | ||
14 | - cursor = connection.cursor() | ||
15 | - cursor.execute(''' | ||
16 | - CREATE OR REPLACE VIEW wiki_view AS SELECT | ||
17 | - wiki.name AS name, | ||
18 | - (SELECT wiki2.text FROM wiki AS wiki2 WHERE wiki2.name = wiki.name | ||
19 | - AND wiki2.version = MAX(wiki.version)) AS wiki_text, | ||
20 | - (SELECT wiki3.author FROM wiki AS wiki3 WHERE wiki3.name = wiki.name | ||
21 | - AND wiki3.version = 1) AS author, | ||
22 | - string_agg(DISTINCT wiki.author, ', ') AS collaborators, | ||
23 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MIN(wiki.time)/1000000) * INTERVAL '1s' AS created, | ||
24 | - TIMESTAMP WITH TIME ZONE 'epoch' + (MAX(wiki.time)/1000000) * INTERVAL '1s' AS modified, | ||
25 | - (SELECT wiki4.author FROM wiki AS wiki4 WHERE wiki4.name = wiki.name | ||
26 | - AND wiki4.version = MAX(wiki.version)) AS modified_by | ||
27 | - FROM wiki | ||
28 | - GROUP BY wiki.name; | ||
29 | - | ||
30 | - CREATE OR REPLACE VIEW ticket_view AS SELECT | ||
31 | - ticket.id AS id, | ||
32 | - ticket.summary as summary, | ||
33 | - ticket.description as description, | ||
34 | - ticket.milestone as milestone, | ||
35 | - ticket.priority as priority, | ||
36 | - ticket.component as component, | ||
37 | - ticket.version as version, | ||
38 | - ticket.severity as severity, | ||
39 | - ticket.reporter as reporter, | ||
40 | - ticket.reporter as author, | ||
41 | - ticket.status as status, | ||
42 | - ticket.keywords as keywords, | ||
43 | - (SELECT | ||
44 | - string_agg(DISTINCT ticket_change.author, ', ') | ||
45 | - FROM ticket_change WHERE ticket_change.ticket = ticket.id | ||
46 | - GROUP BY ticket_change.ticket) as collaborators, | ||
47 | - TIMESTAMP WITH TIME ZONE 'epoch' + (time/1000000)* INTERVAL '1s' AS created, | ||
48 | - TIMESTAMP WITH TIME ZONE 'epoch' + (changetime/1000000) * INTERVAL '1s' AS modified, | ||
49 | - (SELECT | ||
50 | - ticket_change.author | ||
51 | - FROM ticket_change | ||
52 | - WHERE ticket_change.ticket = ticket.id | ||
53 | - AND ticket_change.time = ticket.changetime | ||
54 | - LIMIT 1 | ||
55 | - ) AS modified_by | ||
56 | - FROM ticket; | ||
57 | - ''') | ||
58 | - | ||
59 | - | ||
60 | - def backwards(self, orm): | ||
61 | - # Selecting trac database | ||
62 | - connection = connections['trac'] | ||
63 | - | ||
64 | - cursor = connection.cursor() | ||
65 | - cursor.execute(''' | ||
66 | - ALTER VIEW wiki_view ALTER COLUMN modified_by DROP DEFAULT; | ||
67 | - ALTER VIEW ticket_view ALTER COLUMN modified_by DROP DEFAULT; | ||
68 | - ''') | ||
69 | - | ||
70 | - | ||
71 | - models = { | ||
72 | - u'proxy.attachment': { | ||
73 | - 'Meta': {'object_name': 'Attachment', 'db_table': "'attachment_view'", 'managed': 'False'}, | ||
74 | - 'attach_id': ('django.db.models.fields.TextField', [], {}), | ||
75 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
76 | - 'created': ('django.db.models.fields.DateTimeField', [], {'blank': 'True'}), | ||
77 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
78 | - 'filename': ('django.db.models.fields.TextField', [], {}), | ||
79 | - 'mimetype': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
80 | - 'size': ('django.db.models.fields.IntegerField', [], {'blank': 'True'}), | ||
81 | - 'url': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
82 | - 'used_by': ('django.db.models.fields.TextField', [], {}) | ||
83 | - }, | ||
84 | - u'proxy.revision': { | ||
85 | - 'Meta': {'object_name': 'Revision', 'db_table': "'revision_view'", 'managed': 'False'}, | ||
86 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
87 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
88 | - 'key': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
89 | - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
90 | - 'repository_name': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
91 | - 'rev': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
92 | - }, | ||
93 | - u'proxy.ticket': { | ||
94 | - 'Meta': {'object_name': 'Ticket', 'db_table': "'ticket_view'", 'managed': 'False'}, | ||
95 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
96 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
97 | - 'component': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
98 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
99 | - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
100 | - 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), | ||
101 | - 'keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
102 | - 'milestone': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
103 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
104 | - 'modified_by': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
105 | - 'priority': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
106 | - 'reporter': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
107 | - 'severity': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
108 | - 'status': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
109 | - 'summary': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
110 | - 'version': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
111 | - }, | ||
112 | - u'proxy.wiki': { | ||
113 | - 'Meta': {'object_name': 'Wiki', 'db_table': "'wiki_view'", 'managed': 'False'}, | ||
114 | - 'author': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
115 | - 'collaborators': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
116 | - 'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
117 | - 'modified': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), | ||
118 | - 'modified_by': ('django.db.models.fields.TextField', [], {'blank': 'True'}), | ||
119 | - 'name': ('django.db.models.fields.TextField', [], {'primary_key': 'True'}), | ||
120 | - 'wiki_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) | ||
121 | - } | ||
122 | - } | ||
123 | - | ||
124 | - complete_apps = ['proxy'] | ||
125 | - symmetrical = True |
src/proxy/migrations/0006_views_to_count_collabs.py
@@ -1,46 +0,0 @@ | @@ -1,46 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -from django.db import connections | ||
3 | -from south.v2 import DataMigration | ||
4 | - | ||
5 | -class Migration(DataMigration): | ||
6 | - | ||
7 | - def forwards(self, orm): | ||
8 | - # Selecting trac database | ||
9 | - connection = connections['trac'] | ||
10 | - | ||
11 | - cursor = connection.cursor() | ||
12 | - cursor.execute(''' | ||
13 | - CREATE OR REPLACE VIEW ticket_collab_count_view AS | ||
14 | - SELECT | ||
15 | - COALESCE (t1.author, t2.author) as author, | ||
16 | - (COALESCE(t1.count, 0) + COALESCE(t2.count, 0)) as count | ||
17 | - FROM | ||
18 | - (SELECT author, count(*) as count | ||
19 | - FROM ticket_change | ||
20 | - GROUP BY author | ||
21 | - ORDER BY author | ||
22 | - ) AS t1 | ||
23 | - FULL OUTER JOIN | ||
24 | - (SELECT reporter as author, count(*) as count | ||
25 | - FROM ticket | ||
26 | - GROUP BY reporter | ||
27 | - ORDER BY reporter | ||
28 | - ) AS t2 | ||
29 | - ON t1.author = t2.author; | ||
30 | - | ||
31 | - CREATE OR REPLACE VIEW wiki_collab_count_view AS | ||
32 | - SELECT author, count(*) from wiki GROUP BY author; | ||
33 | - ''') | ||
34 | - | ||
35 | - def backwards(self, orm): | ||
36 | - # Selecting trac database | ||
37 | - connection = connections['trac'] | ||
38 | - | ||
39 | - cursor = connection.cursor() | ||
40 | - cursor.execute(''' | ||
41 | - DROP VIEW ticket_collab_count_view; | ||
42 | - DROP VIEW wiki_collab_count_view; | ||
43 | - ''') | ||
44 | - | ||
45 | - complete_apps = ['proxy'] | ||
46 | - symmetrical = True |
src/super_archives/migrations/0001_initial.py
1 | -# encoding: utf-8 | 1 | +# -*- coding: utf-8 -*- |
2 | import datetime | 2 | import datetime |
3 | from south.db import db | 3 | from south.db import db |
4 | from south.v2 import SchemaMigration | 4 | from south.v2 import SchemaMigration |
5 | from django.db import models | 5 | from django.db import models |
6 | 6 | ||
7 | + | ||
7 | class Migration(SchemaMigration): | 8 | class Migration(SchemaMigration): |
8 | 9 | ||
9 | def forwards(self, orm): | 10 | def forwards(self, orm): |
10 | - | ||
11 | - # Adding model 'PageHit' | ||
12 | - db.create_table('super_archives_pagehit', ( | ||
13 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
14 | - ('url_path', self.gf('django.db.models.fields.CharField')(unique=True, max_length=2048, db_index=True)), | ||
15 | - ('hit_count', self.gf('django.db.models.fields.IntegerField')(default=0)), | 11 | + # Adding model 'EmailAddressValidation' |
12 | + db.create_table(u'super_archives_emailaddressvalidation', ( | ||
13 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
14 | + ('address', self.gf('django.db.models.fields.EmailField')(unique=True, max_length=75)), | ||
15 | + ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='emails_not_validated', null=True, to=orm['accounts.User'])), | ||
16 | + ('validation_key', self.gf('django.db.models.fields.CharField')(default='143df80aa814429f9938d3b165148480', max_length=32, null=True)), | ||
17 | + ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), | ||
16 | )) | 18 | )) |
17 | - db.send_create_signal('super_archives', ['PageHit']) | 19 | + db.send_create_signal(u'super_archives', ['EmailAddressValidation']) |
20 | + | ||
21 | + # Adding unique constraint on 'EmailAddressValidation', fields ['user', 'address'] | ||
22 | + db.create_unique(u'super_archives_emailaddressvalidation', ['user_id', 'address']) | ||
18 | 23 | ||
19 | # Adding model 'EmailAddress' | 24 | # Adding model 'EmailAddress' |
20 | - db.create_table('super_archives_emailaddress', ( | ||
21 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
22 | - ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='emails', null=True, to=orm['auth.User'])), | 25 | + db.create_table(u'super_archives_emailaddress', ( |
26 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
27 | + ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='emails', null=True, on_delete=models.SET_NULL, to=orm['accounts.User'])), | ||
23 | ('address', self.gf('django.db.models.fields.EmailField')(unique=True, max_length=75)), | 28 | ('address', self.gf('django.db.models.fields.EmailField')(unique=True, max_length=75)), |
24 | - ('real_name', self.gf('django.db.models.fields.CharField')(max_length=64, blank=True)), | 29 | + ('real_name', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=64, blank=True)), |
25 | ('md5', self.gf('django.db.models.fields.CharField')(max_length=32, null=True)), | 30 | ('md5', self.gf('django.db.models.fields.CharField')(max_length=32, null=True)), |
26 | )) | 31 | )) |
27 | - db.send_create_signal('super_archives', ['EmailAddress']) | ||
28 | - | ||
29 | - # Adding model 'UserProfile' | ||
30 | - db.create_table('super_archives_userprofile', ( | ||
31 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
32 | - ('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)), | ||
33 | - ('institution', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
34 | - ('role', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
35 | - ('twitter', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
36 | - ('facebook', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
37 | - ('google_talk', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True)), | ||
38 | - ('webpage', self.gf('django.db.models.fields.CharField')(max_length=256)), | ||
39 | - )) | ||
40 | - db.send_create_signal('super_archives', ['UserProfile']) | 32 | + db.send_create_signal(u'super_archives', ['EmailAddress']) |
41 | 33 | ||
42 | # Adding model 'MailingList' | 34 | # Adding model 'MailingList' |
43 | - db.create_table('super_archives_mailinglist', ( | ||
44 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | 35 | + db.create_table(u'super_archives_mailinglist', ( |
36 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
45 | ('name', self.gf('django.db.models.fields.CharField')(max_length=80)), | 37 | ('name', self.gf('django.db.models.fields.CharField')(max_length=80)), |
46 | ('email', self.gf('django.db.models.fields.EmailField')(max_length=75)), | 38 | ('email', self.gf('django.db.models.fields.EmailField')(max_length=75)), |
47 | ('description', self.gf('django.db.models.fields.TextField')()), | 39 | ('description', self.gf('django.db.models.fields.TextField')()), |
48 | ('logo', self.gf('django.db.models.fields.files.FileField')(max_length=100)), | 40 | ('logo', self.gf('django.db.models.fields.files.FileField')(max_length=100)), |
49 | ('last_imported_index', self.gf('django.db.models.fields.IntegerField')(default=0)), | 41 | ('last_imported_index', self.gf('django.db.models.fields.IntegerField')(default=0)), |
50 | )) | 42 | )) |
51 | - db.send_create_signal('super_archives', ['MailingList']) | 43 | + db.send_create_signal(u'super_archives', ['MailingList']) |
52 | 44 | ||
53 | # Adding model 'MailingListMembership' | 45 | # Adding model 'MailingListMembership' |
54 | - db.create_table('super_archives_mailinglistmembership', ( | ||
55 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
56 | - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), | 46 | + db.create_table(u'super_archives_mailinglistmembership', ( |
47 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
48 | + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['accounts.User'])), | ||
57 | ('mailinglist', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.MailingList'])), | 49 | ('mailinglist', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.MailingList'])), |
58 | )) | 50 | )) |
59 | - db.send_create_signal('super_archives', ['MailingListMembership']) | 51 | + db.send_create_signal(u'super_archives', ['MailingListMembership']) |
52 | + | ||
53 | + # Adding model 'Keyword' | ||
54 | + db.create_table(u'super_archives_keyword', ( | ||
55 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
56 | + ('keyword', self.gf('django.db.models.fields.CharField')(max_length='128')), | ||
57 | + ('weight', self.gf('django.db.models.fields.IntegerField')(default=0)), | ||
58 | + ('thread', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Thread'])), | ||
59 | + )) | ||
60 | + db.send_create_signal(u'super_archives', ['Keyword']) | ||
60 | 61 | ||
61 | # Adding model 'Thread' | 62 | # Adding model 'Thread' |
62 | - db.create_table('super_archives_thread', ( | ||
63 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | 63 | + db.create_table(u'super_archives_thread', ( |
64 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
64 | ('subject_token', self.gf('django.db.models.fields.CharField')(max_length=512)), | 65 | ('subject_token', self.gf('django.db.models.fields.CharField')(max_length=512)), |
65 | ('mailinglist', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.MailingList'])), | 66 | ('mailinglist', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.MailingList'])), |
66 | ('latest_message', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, null=True, to=orm['super_archives.Message'])), | 67 | ('latest_message', self.gf('django.db.models.fields.related.OneToOneField')(related_name='+', unique=True, null=True, to=orm['super_archives.Message'])), |
68 | + ('score', self.gf('django.db.models.fields.IntegerField')(default=0)), | ||
69 | + ('spam', self.gf('django.db.models.fields.BooleanField')(default=False)), | ||
67 | )) | 70 | )) |
68 | - db.send_create_signal('super_archives', ['Thread']) | 71 | + db.send_create_signal(u'super_archives', ['Thread']) |
69 | 72 | ||
70 | # Adding unique constraint on 'Thread', fields ['subject_token', 'mailinglist'] | 73 | # Adding unique constraint on 'Thread', fields ['subject_token', 'mailinglist'] |
71 | - db.create_unique('super_archives_thread', ['subject_token', 'mailinglist_id']) | 74 | + db.create_unique(u'super_archives_thread', ['subject_token', 'mailinglist_id']) |
72 | 75 | ||
73 | # Adding model 'Vote' | 76 | # Adding model 'Vote' |
74 | - db.create_table('super_archives_vote', ( | ||
75 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
76 | - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), | 77 | + db.create_table(u'super_archives_vote', ( |
78 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
79 | + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['accounts.User'])), | ||
77 | ('message', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Message'])), | 80 | ('message', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Message'])), |
81 | + ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), | ||
78 | )) | 82 | )) |
79 | - db.send_create_signal('super_archives', ['Vote']) | 83 | + db.send_create_signal(u'super_archives', ['Vote']) |
80 | 84 | ||
81 | # Adding unique constraint on 'Vote', fields ['user', 'message'] | 85 | # Adding unique constraint on 'Vote', fields ['user', 'message'] |
82 | - db.create_unique('super_archives_vote', ['user_id', 'message_id']) | 86 | + db.create_unique(u'super_archives_vote', ['user_id', 'message_id']) |
83 | 87 | ||
84 | # Adding model 'Message' | 88 | # Adding model 'Message' |
85 | - db.create_table('super_archives_message', ( | ||
86 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | 89 | + db.create_table(u'super_archives_message', ( |
90 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
87 | ('from_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.EmailAddress'])), | 91 | ('from_address', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.EmailAddress'])), |
88 | - ('mailinglist', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.MailingList'])), | ||
89 | ('thread', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Thread'], null=True)), | 92 | ('thread', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Thread'], null=True)), |
90 | - ('subject', self.gf('django.db.models.fields.CharField')(max_length=512)), | ||
91 | - ('subject_clean', self.gf('django.db.models.fields.CharField')(max_length=512)), | 93 | + ('subject', self.gf('django.db.models.fields.CharField')(max_length=512, db_index=True)), |
94 | + ('subject_clean', self.gf('django.db.models.fields.CharField')(max_length=512, db_index=True)), | ||
92 | ('body', self.gf('django.db.models.fields.TextField')(default='')), | 95 | ('body', self.gf('django.db.models.fields.TextField')(default='')), |
93 | - ('received_time', self.gf('django.db.models.fields.DateTimeField')()), | 96 | + ('received_time', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), |
94 | ('message_id', self.gf('django.db.models.fields.CharField')(max_length=512)), | 97 | ('message_id', self.gf('django.db.models.fields.CharField')(max_length=512)), |
98 | + ('spam', self.gf('django.db.models.fields.BooleanField')(default=False)), | ||
95 | )) | 99 | )) |
96 | - db.send_create_signal('super_archives', ['Message']) | 100 | + db.send_create_signal(u'super_archives', ['Message']) |
101 | + | ||
102 | + # Adding unique constraint on 'Message', fields ['thread', 'message_id'] | ||
103 | + db.create_unique(u'super_archives_message', ['thread_id', 'message_id']) | ||
104 | + | ||
105 | + # Adding model 'MessageBlock' | ||
106 | + db.create_table(u'super_archives_messageblock', ( | ||
107 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
108 | + ('message', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blocks', to=orm['super_archives.Message'])), | ||
109 | + ('text', self.gf('django.db.models.fields.TextField')()), | ||
110 | + ('is_reply', self.gf('django.db.models.fields.BooleanField')()), | ||
111 | + ('order', self.gf('django.db.models.fields.IntegerField')()), | ||
112 | + )) | ||
113 | + db.send_create_signal(u'super_archives', ['MessageBlock']) | ||
97 | 114 | ||
98 | # Adding model 'MessageMetadata' | 115 | # Adding model 'MessageMetadata' |
99 | - db.create_table('super_archives_messagemetadata', ( | ||
100 | - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | 116 | + db.create_table(u'super_archives_messagemetadata', ( |
117 | + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
101 | ('Message', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Message'])), | 118 | ('Message', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Message'])), |
102 | ('name', self.gf('django.db.models.fields.CharField')(max_length=512)), | 119 | ('name', self.gf('django.db.models.fields.CharField')(max_length=512)), |
103 | ('value', self.gf('django.db.models.fields.TextField')()), | 120 | ('value', self.gf('django.db.models.fields.TextField')()), |
104 | )) | 121 | )) |
105 | - db.send_create_signal('super_archives', ['MessageMetadata']) | 122 | + db.send_create_signal(u'super_archives', ['MessageMetadata']) |
106 | 123 | ||
107 | 124 | ||
108 | def backwards(self, orm): | 125 | def backwards(self, orm): |
109 | - | 126 | + # Removing unique constraint on 'Message', fields ['thread', 'message_id'] |
127 | + db.delete_unique(u'super_archives_message', ['thread_id', 'message_id']) | ||
128 | + | ||
110 | # Removing unique constraint on 'Vote', fields ['user', 'message'] | 129 | # Removing unique constraint on 'Vote', fields ['user', 'message'] |
111 | - db.delete_unique('super_archives_vote', ['user_id', 'message_id']) | 130 | + db.delete_unique(u'super_archives_vote', ['user_id', 'message_id']) |
112 | 131 | ||
113 | # Removing unique constraint on 'Thread', fields ['subject_token', 'mailinglist'] | 132 | # Removing unique constraint on 'Thread', fields ['subject_token', 'mailinglist'] |
114 | - db.delete_unique('super_archives_thread', ['subject_token', 'mailinglist_id']) | 133 | + db.delete_unique(u'super_archives_thread', ['subject_token', 'mailinglist_id']) |
115 | 134 | ||
116 | - # Deleting model 'PageHit' | ||
117 | - db.delete_table('super_archives_pagehit') | 135 | + # Removing unique constraint on 'EmailAddressValidation', fields ['user', 'address'] |
136 | + db.delete_unique(u'super_archives_emailaddressvalidation', ['user_id', 'address']) | ||
118 | 137 | ||
119 | - # Deleting model 'EmailAddress' | ||
120 | - db.delete_table('super_archives_emailaddress') | 138 | + # Deleting model 'EmailAddressValidation' |
139 | + db.delete_table(u'super_archives_emailaddressvalidation') | ||
121 | 140 | ||
122 | - # Deleting model 'UserProfile' | ||
123 | - db.delete_table('super_archives_userprofile') | 141 | + # Deleting model 'EmailAddress' |
142 | + db.delete_table(u'super_archives_emailaddress') | ||
124 | 143 | ||
125 | # Deleting model 'MailingList' | 144 | # Deleting model 'MailingList' |
126 | - db.delete_table('super_archives_mailinglist') | 145 | + db.delete_table(u'super_archives_mailinglist') |
127 | 146 | ||
128 | # Deleting model 'MailingListMembership' | 147 | # Deleting model 'MailingListMembership' |
129 | - db.delete_table('super_archives_mailinglistmembership') | 148 | + db.delete_table(u'super_archives_mailinglistmembership') |
149 | + | ||
150 | + # Deleting model 'Keyword' | ||
151 | + db.delete_table(u'super_archives_keyword') | ||
130 | 152 | ||
131 | # Deleting model 'Thread' | 153 | # Deleting model 'Thread' |
132 | - db.delete_table('super_archives_thread') | 154 | + db.delete_table(u'super_archives_thread') |
133 | 155 | ||
134 | # Deleting model 'Vote' | 156 | # Deleting model 'Vote' |
135 | - db.delete_table('super_archives_vote') | 157 | + db.delete_table(u'super_archives_vote') |
136 | 158 | ||
137 | # Deleting model 'Message' | 159 | # Deleting model 'Message' |
138 | - db.delete_table('super_archives_message') | 160 | + db.delete_table(u'super_archives_message') |
161 | + | ||
162 | + # Deleting model 'MessageBlock' | ||
163 | + db.delete_table(u'super_archives_messageblock') | ||
139 | 164 | ||
140 | # Deleting model 'MessageMetadata' | 165 | # Deleting model 'MessageMetadata' |
141 | - db.delete_table('super_archives_messagemetadata') | 166 | + db.delete_table(u'super_archives_messagemetadata') |
142 | 167 | ||
143 | 168 | ||
144 | models = { | 169 | models = { |
145 | - 'auth.group': { | ||
146 | - 'Meta': {'object_name': 'Group'}, | ||
147 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
148 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
149 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
150 | - }, | ||
151 | - 'auth.permission': { | ||
152 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
153 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
154 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
155 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
156 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
157 | - }, | ||
158 | - 'auth.user': { | 170 | + u'accounts.user': { |
159 | 'Meta': {'object_name': 'User'}, | 171 | 'Meta': {'object_name': 'User'}, |
172 | + 'bio': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), | ||
160 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | 173 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
161 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | 174 | + 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), |
175 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
162 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | 176 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
163 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
164 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | 177 | + 'github': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
178 | + 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
179 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
180 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
181 | + 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
165 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | 182 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
166 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | 183 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
167 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | 184 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
168 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | 185 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
169 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | 186 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
187 | + 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), | ||
170 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | 188 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
171 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
172 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | 189 | + 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
190 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
191 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
192 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
193 | + 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
194 | + 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
195 | + }, | ||
196 | + u'auth.group': { | ||
197 | + 'Meta': {'object_name': 'Group'}, | ||
198 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
199 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
200 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
201 | + }, | ||
202 | + u'auth.permission': { | ||
203 | + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
204 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
205 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
206 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
207 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
173 | }, | 208 | }, |
174 | - 'contenttypes.contenttype': { | 209 | + u'contenttypes.contenttype': { |
175 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | 210 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
176 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | 211 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
177 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | 212 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
178 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | 213 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
179 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | 214 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
180 | }, | 215 | }, |
181 | - 'super_archives.emailaddress': { | ||
182 | - 'Meta': {'object_name': 'EmailAddress'}, | 216 | + u'super_archives.emailaddress': { |
217 | + 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
183 | 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | 218 | 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), |
184 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | 219 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
185 | 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | 220 | 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), |
186 | - 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), | ||
187 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | 221 | + 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), |
222 | + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
223 | + }, | ||
224 | + u'super_archives.emailaddressvalidation': { | ||
225 | + 'Meta': {'unique_together': "(('user', 'address'),)", 'object_name': 'EmailAddressValidation'}, | ||
226 | + 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
227 | + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
228 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
229 | + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
230 | + 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'aa4ac05f39464a05932308e9fda2daf5'", 'max_length': '32', 'null': 'True'}) | ||
188 | }, | 231 | }, |
189 | - 'super_archives.mailinglist': { | 232 | + u'super_archives.keyword': { |
233 | + 'Meta': {'ordering': "('?',)", 'object_name': 'Keyword'}, | ||
234 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
235 | + 'keyword': ('django.db.models.fields.CharField', [], {'max_length': "'128'"}), | ||
236 | + 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']"}), | ||
237 | + 'weight': ('django.db.models.fields.IntegerField', [], {'default': '0'}) | ||
238 | + }, | ||
239 | + u'super_archives.mailinglist': { | ||
190 | 'Meta': {'object_name': 'MailingList'}, | 240 | 'Meta': {'object_name': 'MailingList'}, |
191 | 'description': ('django.db.models.fields.TextField', [], {}), | 241 | 'description': ('django.db.models.fields.TextField', [], {}), |
192 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | 242 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), |
193 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | 243 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
194 | 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | 244 | 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
195 | 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | 245 | 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), |
196 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | 246 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) |
197 | }, | 247 | }, |
198 | - 'super_archives.mailinglistmembership': { | 248 | + u'super_archives.mailinglistmembership': { |
199 | 'Meta': {'object_name': 'MailingListMembership'}, | 249 | 'Meta': {'object_name': 'MailingListMembership'}, |
200 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
201 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
202 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | 250 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
251 | + 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
252 | + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
203 | }, | 253 | }, |
204 | - 'super_archives.message': { | ||
205 | - 'Meta': {'object_name': 'Message'}, | 254 | + u'super_archives.message': { |
255 | + 'Meta': {'ordering': "('received_time',)", 'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
206 | 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | 256 | 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), |
207 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
208 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
209 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | 257 | + 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), |
258 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
210 | 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | 259 | 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), |
211 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
212 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
213 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
214 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | 260 | + 'received_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
261 | + 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
262 | + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
263 | + 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
264 | + 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
265 | + }, | ||
266 | + u'super_archives.messageblock': { | ||
267 | + 'Meta': {'ordering': "('order',)", 'object_name': 'MessageBlock'}, | ||
268 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
269 | + 'is_reply': ('django.db.models.fields.BooleanField', [], {}), | ||
270 | + 'message': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blocks'", 'to': u"orm['super_archives.Message']"}), | ||
271 | + 'order': ('django.db.models.fields.IntegerField', [], {}), | ||
272 | + 'text': ('django.db.models.fields.TextField', [], {}) | ||
215 | }, | 273 | }, |
216 | - 'super_archives.messagemetadata': { | ||
217 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | 274 | + u'super_archives.messagemetadata': { |
275 | + 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
218 | 'Meta': {'object_name': 'MessageMetadata'}, | 276 | 'Meta': {'object_name': 'MessageMetadata'}, |
219 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | 277 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
220 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | 278 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), |
221 | 'value': ('django.db.models.fields.TextField', [], {}) | 279 | 'value': ('django.db.models.fields.TextField', [], {}) |
222 | }, | 280 | }, |
223 | - 'super_archives.pagehit': { | ||
224 | - 'Meta': {'object_name': 'PageHit'}, | ||
225 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
226 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
227 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
228 | - }, | ||
229 | - 'super_archives.thread': { | ||
230 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
231 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
232 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
233 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | 281 | + u'super_archives.thread': { |
282 | + 'Meta': {'ordering': "('-latest_message__received_time',)", 'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
283 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
284 | + 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
285 | + 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
286 | + 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
287 | + 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
234 | 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | 288 | 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) |
235 | }, | 289 | }, |
236 | - 'super_archives.userprofile': { | ||
237 | - 'Meta': {'object_name': 'UserProfile'}, | ||
238 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
239 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
240 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
241 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
242 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
243 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
244 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
245 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
246 | - }, | ||
247 | - 'super_archives.vote': { | 290 | + u'super_archives.vote': { |
248 | 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | 291 | 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, |
249 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
250 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
251 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | 292 | + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
293 | + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
294 | + 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
295 | + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
252 | } | 296 | } |
253 | } | 297 | } |
254 | 298 | ||
255 | - complete_apps = ['super_archives'] | 299 | - complete_apps = ['super_archives'] |
300 | + complete_apps = ['super_archives'] | ||
256 | \ No newline at end of file | 301 | \ No newline at end of file |
src/super_archives/migrations/0002_auto__add_field_userprofile_verification_hash.py
@@ -1,133 +0,0 @@ | @@ -1,133 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Adding field 'UserProfile.verification_hash' | ||
12 | - db.add_column('super_archives_userprofile', 'verification_hash', self.gf('django.db.models.fields.CharField')(max_length=32, null=True), keep_default=False) | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # Deleting field 'UserProfile.verification_hash' | ||
18 | - db.delete_column('super_archives_userprofile', 'verification_hash') | ||
19 | - | ||
20 | - | ||
21 | - models = { | ||
22 | - 'auth.group': { | ||
23 | - 'Meta': {'object_name': 'Group'}, | ||
24 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
25 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
26 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
27 | - }, | ||
28 | - 'auth.permission': { | ||
29 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
30 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
31 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
32 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
34 | - }, | ||
35 | - 'auth.user': { | ||
36 | - 'Meta': {'object_name': 'User'}, | ||
37 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
38 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
39 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
41 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
42 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
43 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
44 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
45 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
46 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
47 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
48 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
49 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
50 | - }, | ||
51 | - 'contenttypes.contenttype': { | ||
52 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
53 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
54 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
57 | - }, | ||
58 | - 'super_archives.emailaddress': { | ||
59 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
60 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
61 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
63 | - 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), | ||
64 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
65 | - }, | ||
66 | - 'super_archives.mailinglist': { | ||
67 | - 'Meta': {'object_name': 'MailingList'}, | ||
68 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
70 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
72 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
73 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
74 | - }, | ||
75 | - 'super_archives.mailinglistmembership': { | ||
76 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
77 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
79 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
80 | - }, | ||
81 | - 'super_archives.message': { | ||
82 | - 'Meta': {'object_name': 'Message'}, | ||
83 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
84 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
85 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
87 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
88 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
89 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
90 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
91 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
92 | - }, | ||
93 | - 'super_archives.messagemetadata': { | ||
94 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
95 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
96 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
98 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
99 | - }, | ||
100 | - 'super_archives.pagehit': { | ||
101 | - 'Meta': {'object_name': 'PageHit'}, | ||
102 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
103 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
105 | - }, | ||
106 | - 'super_archives.thread': { | ||
107 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
108 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
109 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
110 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
111 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
112 | - }, | ||
113 | - 'super_archives.userprofile': { | ||
114 | - 'Meta': {'object_name': 'UserProfile'}, | ||
115 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
116 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
117 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
118 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
119 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
120 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
121 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
122 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
123 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
124 | - }, | ||
125 | - 'super_archives.vote': { | ||
126 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
127 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
128 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
129 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
130 | - } | ||
131 | - } | ||
132 | - | ||
133 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0003_auto__add_field_thread_score.py
@@ -1,134 +0,0 @@ | @@ -1,134 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Adding field 'Thread.score' | ||
12 | - db.add_column('super_archives_thread', 'score', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False) | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # Deleting field 'Thread.score' | ||
18 | - db.delete_column('super_archives_thread', 'score') | ||
19 | - | ||
20 | - | ||
21 | - models = { | ||
22 | - 'auth.group': { | ||
23 | - 'Meta': {'object_name': 'Group'}, | ||
24 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
25 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
26 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
27 | - }, | ||
28 | - 'auth.permission': { | ||
29 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
30 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
31 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
32 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
34 | - }, | ||
35 | - 'auth.user': { | ||
36 | - 'Meta': {'object_name': 'User'}, | ||
37 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
38 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
39 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
41 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
42 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
43 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
44 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
45 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
46 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
47 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
48 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
49 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
50 | - }, | ||
51 | - 'contenttypes.contenttype': { | ||
52 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
53 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
54 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
57 | - }, | ||
58 | - 'super_archives.emailaddress': { | ||
59 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
60 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
61 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
63 | - 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), | ||
64 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
65 | - }, | ||
66 | - 'super_archives.mailinglist': { | ||
67 | - 'Meta': {'object_name': 'MailingList'}, | ||
68 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
70 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
72 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
73 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
74 | - }, | ||
75 | - 'super_archives.mailinglistmembership': { | ||
76 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
77 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
79 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
80 | - }, | ||
81 | - 'super_archives.message': { | ||
82 | - 'Meta': {'object_name': 'Message'}, | ||
83 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
84 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
85 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
87 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
88 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
89 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
90 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
91 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
92 | - }, | ||
93 | - 'super_archives.messagemetadata': { | ||
94 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
95 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
96 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
98 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
99 | - }, | ||
100 | - 'super_archives.pagehit': { | ||
101 | - 'Meta': {'object_name': 'PageHit'}, | ||
102 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
103 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
105 | - }, | ||
106 | - 'super_archives.thread': { | ||
107 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
108 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
109 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
110 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
111 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
112 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
113 | - }, | ||
114 | - 'super_archives.userprofile': { | ||
115 | - 'Meta': {'object_name': 'UserProfile'}, | ||
116 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
117 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
118 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
119 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
120 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
121 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
122 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
123 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
124 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
125 | - }, | ||
126 | - 'super_archives.vote': { | ||
127 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
128 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
129 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
130 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
131 | - } | ||
132 | - } | ||
133 | - | ||
134 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0004_auto__add_field_vote_created.py
@@ -1,135 +0,0 @@ | @@ -1,135 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Adding field 'Vote.created' | ||
12 | - db.add_column('super_archives_vote', 'created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, default=datetime.datetime(2012, 1, 19, 18, 8, 46, 813949), blank=True), keep_default=False) | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # Deleting field 'Vote.created' | ||
18 | - db.delete_column('super_archives_vote', 'created') | ||
19 | - | ||
20 | - | ||
21 | - models = { | ||
22 | - 'auth.group': { | ||
23 | - 'Meta': {'object_name': 'Group'}, | ||
24 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
25 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
26 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
27 | - }, | ||
28 | - 'auth.permission': { | ||
29 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
30 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
31 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
32 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
34 | - }, | ||
35 | - 'auth.user': { | ||
36 | - 'Meta': {'object_name': 'User'}, | ||
37 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
38 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
39 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
41 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
42 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
43 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
44 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
45 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
46 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
47 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
48 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
49 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
50 | - }, | ||
51 | - 'contenttypes.contenttype': { | ||
52 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
53 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
54 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
57 | - }, | ||
58 | - 'super_archives.emailaddress': { | ||
59 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
60 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
61 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
63 | - 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), | ||
64 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
65 | - }, | ||
66 | - 'super_archives.mailinglist': { | ||
67 | - 'Meta': {'object_name': 'MailingList'}, | ||
68 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
70 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
72 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
73 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
74 | - }, | ||
75 | - 'super_archives.mailinglistmembership': { | ||
76 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
77 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
79 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
80 | - }, | ||
81 | - 'super_archives.message': { | ||
82 | - 'Meta': {'object_name': 'Message'}, | ||
83 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
84 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
85 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
87 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
88 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
89 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
90 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
91 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
92 | - }, | ||
93 | - 'super_archives.messagemetadata': { | ||
94 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
95 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
96 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
98 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
99 | - }, | ||
100 | - 'super_archives.pagehit': { | ||
101 | - 'Meta': {'object_name': 'PageHit'}, | ||
102 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
103 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
105 | - }, | ||
106 | - 'super_archives.thread': { | ||
107 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
108 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
109 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
110 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
111 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
112 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
113 | - }, | ||
114 | - 'super_archives.userprofile': { | ||
115 | - 'Meta': {'object_name': 'UserProfile'}, | ||
116 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
117 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
118 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
119 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
120 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
121 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
122 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
123 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
124 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
125 | - }, | ||
126 | - 'super_archives.vote': { | ||
127 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
128 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
129 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
130 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
131 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
132 | - } | ||
133 | - } | ||
134 | - | ||
135 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0005_auto__add_field_message_spam__add_field_thread_spam.py
@@ -1,143 +0,0 @@ | @@ -1,143 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Adding field 'Message.spam' | ||
12 | - db.add_column('super_archives_message', 'spam', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) | ||
13 | - | ||
14 | - # Adding field 'Thread.spam' | ||
15 | - db.add_column('super_archives_thread', 'spam', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) | ||
16 | - | ||
17 | - | ||
18 | - def backwards(self, orm): | ||
19 | - | ||
20 | - # Deleting field 'Message.spam' | ||
21 | - db.delete_column('super_archives_message', 'spam') | ||
22 | - | ||
23 | - # Deleting field 'Thread.spam' | ||
24 | - db.delete_column('super_archives_thread', 'spam') | ||
25 | - | ||
26 | - | ||
27 | - models = { | ||
28 | - 'auth.group': { | ||
29 | - 'Meta': {'object_name': 'Group'}, | ||
30 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
31 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
32 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
33 | - }, | ||
34 | - 'auth.permission': { | ||
35 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
36 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
37 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
38 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
39 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
40 | - }, | ||
41 | - 'auth.user': { | ||
42 | - 'Meta': {'object_name': 'User'}, | ||
43 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
44 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
45 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
46 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
47 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
48 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
49 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
50 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
51 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
52 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
53 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
54 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
55 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
56 | - }, | ||
57 | - 'contenttypes.contenttype': { | ||
58 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
59 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
63 | - }, | ||
64 | - 'super_archives.emailaddress': { | ||
65 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
66 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
67 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
69 | - 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), | ||
70 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
71 | - }, | ||
72 | - 'super_archives.mailinglist': { | ||
73 | - 'Meta': {'object_name': 'MailingList'}, | ||
74 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
75 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
76 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
77 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
78 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
79 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
80 | - }, | ||
81 | - 'super_archives.mailinglistmembership': { | ||
82 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
83 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
84 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
85 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
86 | - }, | ||
87 | - 'super_archives.message': { | ||
88 | - 'Meta': {'object_name': 'Message'}, | ||
89 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
90 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
91 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
93 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
94 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
95 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
96 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
97 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
98 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
99 | - }, | ||
100 | - 'super_archives.messagemetadata': { | ||
101 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
102 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
103 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
105 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
106 | - }, | ||
107 | - 'super_archives.pagehit': { | ||
108 | - 'Meta': {'object_name': 'PageHit'}, | ||
109 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
110 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
111 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
112 | - }, | ||
113 | - 'super_archives.thread': { | ||
114 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
115 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
116 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
117 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
118 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
119 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
120 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
121 | - }, | ||
122 | - 'super_archives.userprofile': { | ||
123 | - 'Meta': {'object_name': 'UserProfile'}, | ||
124 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
125 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
126 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
127 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
128 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
129 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
130 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
131 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
132 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
133 | - }, | ||
134 | - 'super_archives.vote': { | ||
135 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
136 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
137 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
138 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
139 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
140 | - } | ||
141 | - } | ||
142 | - | ||
143 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0006_auto.py
@@ -1,143 +0,0 @@ | @@ -1,143 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Adding index on 'Message', fields ['subject_clean'] | ||
12 | - db.create_index('super_archives_message', ['subject_clean']) | ||
13 | - | ||
14 | - # Adding index on 'Message', fields ['subject'] | ||
15 | - db.create_index('super_archives_message', ['subject']) | ||
16 | - | ||
17 | - | ||
18 | - def backwards(self, orm): | ||
19 | - | ||
20 | - # Removing index on 'Message', fields ['subject'] | ||
21 | - db.delete_index('super_archives_message', ['subject']) | ||
22 | - | ||
23 | - # Removing index on 'Message', fields ['subject_clean'] | ||
24 | - db.delete_index('super_archives_message', ['subject_clean']) | ||
25 | - | ||
26 | - | ||
27 | - models = { | ||
28 | - 'auth.group': { | ||
29 | - 'Meta': {'object_name': 'Group'}, | ||
30 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
31 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
32 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
33 | - }, | ||
34 | - 'auth.permission': { | ||
35 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
36 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
37 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
38 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
39 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
40 | - }, | ||
41 | - 'auth.user': { | ||
42 | - 'Meta': {'object_name': 'User'}, | ||
43 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
44 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
45 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
46 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
47 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
48 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
49 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
50 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
51 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
52 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
53 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
54 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
55 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
56 | - }, | ||
57 | - 'contenttypes.contenttype': { | ||
58 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
59 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
63 | - }, | ||
64 | - 'super_archives.emailaddress': { | ||
65 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
66 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
67 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
69 | - 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), | ||
70 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
71 | - }, | ||
72 | - 'super_archives.mailinglist': { | ||
73 | - 'Meta': {'object_name': 'MailingList'}, | ||
74 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
75 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
76 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
77 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
78 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
79 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
80 | - }, | ||
81 | - 'super_archives.mailinglistmembership': { | ||
82 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
83 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
84 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
85 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
86 | - }, | ||
87 | - 'super_archives.message': { | ||
88 | - 'Meta': {'object_name': 'Message'}, | ||
89 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
90 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
91 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
93 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
94 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
95 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
96 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
97 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
98 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
99 | - }, | ||
100 | - 'super_archives.messagemetadata': { | ||
101 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
102 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
103 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
105 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
106 | - }, | ||
107 | - 'super_archives.pagehit': { | ||
108 | - 'Meta': {'object_name': 'PageHit'}, | ||
109 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
110 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
111 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
112 | - }, | ||
113 | - 'super_archives.thread': { | ||
114 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
115 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
116 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
117 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
118 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
119 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
120 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
121 | - }, | ||
122 | - 'super_archives.userprofile': { | ||
123 | - 'Meta': {'object_name': 'UserProfile'}, | ||
124 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
125 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
126 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
127 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
128 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
129 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
130 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
131 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
132 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
133 | - }, | ||
134 | - 'super_archives.vote': { | ||
135 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
136 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
137 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
138 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
139 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
140 | - } | ||
141 | - } | ||
142 | - | ||
143 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0007_auto.py
@@ -1,137 +0,0 @@ | @@ -1,137 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Adding index on 'EmailAddress', fields ['real_name'] | ||
12 | - db.create_index('super_archives_emailaddress', ['real_name']) | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # Removing index on 'EmailAddress', fields ['real_name'] | ||
18 | - db.delete_index('super_archives_emailaddress', ['real_name']) | ||
19 | - | ||
20 | - | ||
21 | - models = { | ||
22 | - 'auth.group': { | ||
23 | - 'Meta': {'object_name': 'Group'}, | ||
24 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
25 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
26 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
27 | - }, | ||
28 | - 'auth.permission': { | ||
29 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
30 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
31 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
32 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
34 | - }, | ||
35 | - 'auth.user': { | ||
36 | - 'Meta': {'object_name': 'User'}, | ||
37 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
38 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
39 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
41 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
42 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
43 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
44 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
45 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
46 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
47 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
48 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
49 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
50 | - }, | ||
51 | - 'contenttypes.contenttype': { | ||
52 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
53 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
54 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
57 | - }, | ||
58 | - 'super_archives.emailaddress': { | ||
59 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
60 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
61 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
63 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
64 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
65 | - }, | ||
66 | - 'super_archives.mailinglist': { | ||
67 | - 'Meta': {'object_name': 'MailingList'}, | ||
68 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
70 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
72 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
73 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
74 | - }, | ||
75 | - 'super_archives.mailinglistmembership': { | ||
76 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
77 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
79 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
80 | - }, | ||
81 | - 'super_archives.message': { | ||
82 | - 'Meta': {'object_name': 'Message'}, | ||
83 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
84 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
85 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
87 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
88 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
89 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
90 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
91 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
92 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
93 | - }, | ||
94 | - 'super_archives.messagemetadata': { | ||
95 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
96 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
97 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
98 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
99 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
100 | - }, | ||
101 | - 'super_archives.pagehit': { | ||
102 | - 'Meta': {'object_name': 'PageHit'}, | ||
103 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
104 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
105 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
106 | - }, | ||
107 | - 'super_archives.thread': { | ||
108 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
109 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
110 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
111 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
112 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
113 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
114 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
115 | - }, | ||
116 | - 'super_archives.userprofile': { | ||
117 | - 'Meta': {'object_name': 'UserProfile'}, | ||
118 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
119 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
120 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
121 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
122 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
123 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
124 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
125 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
126 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
127 | - }, | ||
128 | - 'super_archives.vote': { | ||
129 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
130 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
131 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
132 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
133 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
134 | - } | ||
135 | - } | ||
136 | - | ||
137 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0008_add_mailinglist_name_to_url.py
@@ -1,142 +0,0 @@ | @@ -1,142 +0,0 @@ | ||
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 | - | ||
7 | -class Migration(DataMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - page_hits = orm.PageHit.objects.all() | ||
11 | - for page_hit in page_hits: | ||
12 | - if page_hit.url_path.startswith('/archives/thread/'): | ||
13 | - token = page_hit.url_path.split('/')[-1] | ||
14 | - threads = orm.Thread.objects.filter(subject_token=token) | ||
15 | - if not len(threads): continue | ||
16 | - thread = threads[0] | ||
17 | - new_url = '/archives/thread/%s/%s' % (thread.mailinglist.name, | ||
18 | - thread.subject_token) | ||
19 | - page_hit.url_path = new_url | ||
20 | - page_hit.save() | ||
21 | - | ||
22 | - | ||
23 | - def backwards(self, orm): | ||
24 | - raise RuntimeError("Cannot reverse this migration.") | ||
25 | - | ||
26 | - models = { | ||
27 | - 'auth.group': { | ||
28 | - 'Meta': {'object_name': 'Group'}, | ||
29 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
30 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
31 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
32 | - }, | ||
33 | - 'auth.permission': { | ||
34 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
35 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
36 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
37 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
38 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
39 | - }, | ||
40 | - 'auth.user': { | ||
41 | - 'Meta': {'object_name': 'User'}, | ||
42 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
43 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
44 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
45 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
46 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
47 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
48 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
49 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
50 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
51 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
52 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
53 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
54 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
55 | - }, | ||
56 | - 'contenttypes.contenttype': { | ||
57 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
58 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
59 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
60 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
61 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
62 | - }, | ||
63 | - 'super_archives.emailaddress': { | ||
64 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
65 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
66 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
67 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
68 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
69 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
70 | - }, | ||
71 | - 'super_archives.mailinglist': { | ||
72 | - 'Meta': {'object_name': 'MailingList'}, | ||
73 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
74 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
75 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
76 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
77 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
78 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
79 | - }, | ||
80 | - 'super_archives.mailinglistmembership': { | ||
81 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
82 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
83 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
84 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
85 | - }, | ||
86 | - 'super_archives.message': { | ||
87 | - 'Meta': {'object_name': 'Message'}, | ||
88 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
89 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
90 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
91 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
92 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
93 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
94 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
95 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
96 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
97 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
98 | - }, | ||
99 | - 'super_archives.messagemetadata': { | ||
100 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
101 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
102 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
103 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
104 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
105 | - }, | ||
106 | - 'super_archives.pagehit': { | ||
107 | - 'Meta': {'object_name': 'PageHit'}, | ||
108 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
109 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
110 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
111 | - }, | ||
112 | - 'super_archives.thread': { | ||
113 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
114 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
115 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
116 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
117 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
118 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
119 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
120 | - }, | ||
121 | - 'super_archives.userprofile': { | ||
122 | - 'Meta': {'object_name': 'UserProfile'}, | ||
123 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
124 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
125 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
126 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
127 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
128 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
129 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
130 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
131 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
132 | - }, | ||
133 | - 'super_archives.vote': { | ||
134 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
135 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
136 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
137 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
138 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
139 | - } | ||
140 | - } | ||
141 | - | ||
142 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0009_auto__del_field_message_mailinglist.py
@@ -1,136 +0,0 @@ | @@ -1,136 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Deleting field 'Message.mailinglist' | ||
12 | - db.delete_column('super_archives_message', 'mailinglist_id') | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # User chose to not deal with backwards NULL issues for 'Message.mailinglist' | ||
18 | - raise RuntimeError("Cannot reverse this migration. 'Message.mailinglist' and its values cannot be restored.") | ||
19 | - | ||
20 | - | ||
21 | - models = { | ||
22 | - 'auth.group': { | ||
23 | - 'Meta': {'object_name': 'Group'}, | ||
24 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
25 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
26 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
27 | - }, | ||
28 | - 'auth.permission': { | ||
29 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
30 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
31 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
32 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
34 | - }, | ||
35 | - 'auth.user': { | ||
36 | - 'Meta': {'object_name': 'User'}, | ||
37 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
38 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
39 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
41 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
42 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
43 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
44 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
45 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
46 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
47 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
48 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
49 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
50 | - }, | ||
51 | - 'contenttypes.contenttype': { | ||
52 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
53 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
54 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
57 | - }, | ||
58 | - 'super_archives.emailaddress': { | ||
59 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
60 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
61 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
63 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
64 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
65 | - }, | ||
66 | - 'super_archives.mailinglist': { | ||
67 | - 'Meta': {'object_name': 'MailingList'}, | ||
68 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
70 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
72 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
73 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
74 | - }, | ||
75 | - 'super_archives.mailinglistmembership': { | ||
76 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
77 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
79 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
80 | - }, | ||
81 | - 'super_archives.message': { | ||
82 | - 'Meta': {'object_name': 'Message'}, | ||
83 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
84 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
85 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
87 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
88 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
89 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
90 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
91 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
92 | - }, | ||
93 | - 'super_archives.messagemetadata': { | ||
94 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
95 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
96 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
98 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
99 | - }, | ||
100 | - 'super_archives.pagehit': { | ||
101 | - 'Meta': {'object_name': 'PageHit'}, | ||
102 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
103 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
105 | - }, | ||
106 | - 'super_archives.thread': { | ||
107 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
108 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
109 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
110 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
111 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
112 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
113 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
114 | - }, | ||
115 | - 'super_archives.userprofile': { | ||
116 | - 'Meta': {'object_name': 'UserProfile'}, | ||
117 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
118 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
119 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
120 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
121 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
122 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
123 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
124 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
125 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
126 | - }, | ||
127 | - 'super_archives.vote': { | ||
128 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
129 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
130 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
131 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
132 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
133 | - } | ||
134 | - } | ||
135 | - | ||
136 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0010_auto__add_unique_message_message_id_thread.py
@@ -1,136 +0,0 @@ | @@ -1,136 +0,0 @@ | ||
1 | -# encoding: utf-8 | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | -class Migration(SchemaMigration): | ||
8 | - | ||
9 | - def forwards(self, orm): | ||
10 | - | ||
11 | - # Adding unique constraint on 'Message', fields ['message_id', 'thread'] | ||
12 | - db.create_unique('super_archives_message', ['message_id', 'thread_id']) | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # Removing unique constraint on 'Message', fields ['message_id', 'thread'] | ||
18 | - db.delete_unique('super_archives_message', ['message_id', 'thread_id']) | ||
19 | - | ||
20 | - | ||
21 | - models = { | ||
22 | - 'auth.group': { | ||
23 | - 'Meta': {'object_name': 'Group'}, | ||
24 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
25 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
26 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
27 | - }, | ||
28 | - 'auth.permission': { | ||
29 | - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, | ||
30 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
31 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), | ||
32 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
33 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
34 | - }, | ||
35 | - 'auth.user': { | ||
36 | - 'Meta': {'object_name': 'User'}, | ||
37 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
38 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
39 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
40 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
41 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
42 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
43 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
44 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
45 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
46 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
47 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
48 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
49 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
50 | - }, | ||
51 | - 'contenttypes.contenttype': { | ||
52 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
53 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
54 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
56 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
57 | - }, | ||
58 | - 'super_archives.emailaddress': { | ||
59 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
60 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
61 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
63 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
64 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': "orm['auth.User']"}) | ||
65 | - }, | ||
66 | - 'super_archives.mailinglist': { | ||
67 | - 'Meta': {'object_name': 'MailingList'}, | ||
68 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
69 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
70 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
71 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
72 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
73 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
74 | - }, | ||
75 | - 'super_archives.mailinglistmembership': { | ||
76 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
77 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
78 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
79 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
80 | - }, | ||
81 | - 'super_archives.message': { | ||
82 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
83 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
84 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.EmailAddress']"}), | ||
85 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
86 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
87 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
88 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
89 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
90 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
91 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Thread']", 'null': 'True'}) | ||
92 | - }, | ||
93 | - 'super_archives.messagemetadata': { | ||
94 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
95 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
96 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
98 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
99 | - }, | ||
100 | - 'super_archives.pagehit': { | ||
101 | - 'Meta': {'object_name': 'PageHit'}, | ||
102 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
103 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
105 | - }, | ||
106 | - 'super_archives.thread': { | ||
107 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
108 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
109 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': "orm['super_archives.Message']"}), | ||
110 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.MailingList']"}), | ||
111 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
112 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
113 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
114 | - }, | ||
115 | - 'super_archives.userprofile': { | ||
116 | - 'Meta': {'object_name': 'UserProfile'}, | ||
117 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
118 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
119 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
120 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
121 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
122 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
123 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), | ||
124 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
125 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256'}) | ||
126 | - }, | ||
127 | - 'super_archives.vote': { | ||
128 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
129 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
130 | - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
131 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['super_archives.Message']"}), | ||
132 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) | ||
133 | - } | ||
134 | - } | ||
135 | - | ||
136 | - complete_apps = ['super_archives'] |
src/super_archives/migrations/0011_auto__chg_field_userprofile_webpage.py
@@ -1,135 +0,0 @@ | @@ -1,135 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - | ||
12 | - # Changing field 'UserProfile.webpage' | ||
13 | - db.alter_column(u'super_archives_userprofile', 'webpage', self.gf('django.db.models.fields.CharField')(max_length=256, null=True)) | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # User chose to not deal with backwards NULL issues for 'UserProfile.webpage' | ||
18 | - raise RuntimeError("Cannot reverse this migration. 'UserProfile.webpage' and its values cannot be restored.") | ||
19 | - | ||
20 | - models = { | ||
21 | - u'auth.group': { | ||
22 | - 'Meta': {'object_name': 'Group'}, | ||
23 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
24 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
25 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
26 | - }, | ||
27 | - u'auth.permission': { | ||
28 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
29 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
30 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
31 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
32 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
33 | - }, | ||
34 | - u'auth.user': { | ||
35 | - 'Meta': {'object_name': 'User'}, | ||
36 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
37 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), | ||
38 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
39 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
40 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
41 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
42 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
43 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
44 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
45 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
46 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
47 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
48 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) | ||
49 | - }, | ||
50 | - u'contenttypes.contenttype': { | ||
51 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
52 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
53 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
54 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
55 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
56 | - }, | ||
57 | - u'super_archives.emailaddress': { | ||
58 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
59 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
60 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
62 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
63 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': u"orm['auth.User']"}) | ||
64 | - }, | ||
65 | - u'super_archives.mailinglist': { | ||
66 | - 'Meta': {'object_name': 'MailingList'}, | ||
67 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
68 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
69 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
70 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
71 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
72 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
73 | - }, | ||
74 | - u'super_archives.mailinglistmembership': { | ||
75 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
76 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
77 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
78 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}) | ||
79 | - }, | ||
80 | - u'super_archives.message': { | ||
81 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
82 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
83 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
84 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
85 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
86 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
87 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
88 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
89 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
90 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
91 | - }, | ||
92 | - u'super_archives.messagemetadata': { | ||
93 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
94 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
95 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
96 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
97 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
98 | - }, | ||
99 | - u'super_archives.pagehit': { | ||
100 | - 'Meta': {'object_name': 'PageHit'}, | ||
101 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
102 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
103 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
104 | - }, | ||
105 | - u'super_archives.thread': { | ||
106 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
107 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
108 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
109 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
110 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
111 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
112 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
113 | - }, | ||
114 | - u'super_archives.userprofile': { | ||
115 | - 'Meta': {'object_name': 'UserProfile'}, | ||
116 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
117 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
118 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
119 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
120 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
121 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
122 | - 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['auth.User']", 'unique': 'True'}), | ||
123 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
124 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True'}) | ||
125 | - }, | ||
126 | - u'super_archives.vote': { | ||
127 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
128 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
129 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
130 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
131 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']"}) | ||
132 | - } | ||
133 | - } | ||
134 | - | ||
135 | - complete_apps = ['super_archives'] | ||
136 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0012_auto__del_userprofile__chg_field_vote_user__chg_field_emailaddress_use.py
@@ -1,159 +0,0 @@ | @@ -1,159 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Deleting model 'UserProfile' | ||
12 | - db.delete_table(u'super_archives_userprofile') | ||
13 | - | ||
14 | - | ||
15 | - # Changing field 'Vote.user' | ||
16 | - db.alter_column(u'super_archives_vote', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['accounts.User'])) | ||
17 | - | ||
18 | - # Changing field 'EmailAddress.user' | ||
19 | - db.alter_column(u'super_archives_emailaddress', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['accounts.User'])) | ||
20 | - | ||
21 | - # Changing field 'MailingListMembership.user' | ||
22 | - db.alter_column(u'super_archives_mailinglistmembership', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['accounts.User'])) | ||
23 | - | ||
24 | - def backwards(self, orm): | ||
25 | - # Adding model 'UserProfile' | ||
26 | - db.create_table(u'super_archives_userprofile', ( | ||
27 | - ('google_talk', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True)), | ||
28 | - ('facebook', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
29 | - ('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)), | ||
30 | - ('webpage', self.gf('django.db.models.fields.CharField')(max_length=256, null=True)), | ||
31 | - ('role', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
32 | - ('twitter', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
33 | - ('verification_hash', self.gf('django.db.models.fields.CharField')(max_length=32, null=True)), | ||
34 | - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
35 | - ('institution', self.gf('django.db.models.fields.CharField')(max_length=128, null=True)), | ||
36 | - )) | ||
37 | - db.send_create_signal(u'super_archives', ['UserProfile']) | ||
38 | - | ||
39 | - | ||
40 | - # Changing field 'Vote.user' | ||
41 | - db.alter_column(u'super_archives_vote', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])) | ||
42 | - | ||
43 | - # Changing field 'EmailAddress.user' | ||
44 | - db.alter_column(u'super_archives_emailaddress', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['auth.User'])) | ||
45 | - | ||
46 | - # Changing field 'MailingListMembership.user' | ||
47 | - db.alter_column(u'super_archives_mailinglistmembership', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])) | ||
48 | - | ||
49 | - models = { | ||
50 | - u'accounts.user': { | ||
51 | - 'Meta': {'object_name': 'User'}, | ||
52 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
53 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
54 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
55 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
56 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True'}), | ||
57 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), | ||
58 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
59 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
60 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
61 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
62 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
63 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
64 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
65 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
66 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
67 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True'}), | ||
68 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), | ||
69 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
70 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
71 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True'}) | ||
72 | - }, | ||
73 | - u'auth.group': { | ||
74 | - 'Meta': {'object_name': 'Group'}, | ||
75 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
76 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
77 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
78 | - }, | ||
79 | - u'auth.permission': { | ||
80 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
81 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
82 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
83 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
84 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
85 | - }, | ||
86 | - u'contenttypes.contenttype': { | ||
87 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
88 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
89 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
90 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
91 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
92 | - }, | ||
93 | - u'super_archives.emailaddress': { | ||
94 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
95 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
96 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
98 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
99 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': u"orm['accounts.User']"}) | ||
100 | - }, | ||
101 | - u'super_archives.mailinglist': { | ||
102 | - 'Meta': {'object_name': 'MailingList'}, | ||
103 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
104 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
105 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
106 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
107 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
108 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
109 | - }, | ||
110 | - u'super_archives.mailinglistmembership': { | ||
111 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
112 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
113 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
114 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
115 | - }, | ||
116 | - u'super_archives.message': { | ||
117 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
118 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
119 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
120 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
121 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
122 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
123 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
124 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
125 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
126 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
127 | - }, | ||
128 | - u'super_archives.messagemetadata': { | ||
129 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
130 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
131 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
132 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
133 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
134 | - }, | ||
135 | - u'super_archives.pagehit': { | ||
136 | - 'Meta': {'object_name': 'PageHit'}, | ||
137 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
138 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
139 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
140 | - }, | ||
141 | - u'super_archives.thread': { | ||
142 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
143 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
144 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
145 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
146 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
147 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
148 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
149 | - }, | ||
150 | - u'super_archives.vote': { | ||
151 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
152 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
153 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
154 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
155 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
156 | - } | ||
157 | - } | ||
158 | - | ||
159 | - complete_apps = ['super_archives'] | ||
160 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0013_auto__add_emailaddressvalidation.py
@@ -1,145 +0,0 @@ | @@ -1,145 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding model 'EmailAddressValidation' | ||
12 | - db.create_table(u'super_archives_emailaddressvalidation', ( | ||
13 | - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
14 | - ('address', self.gf('django.db.models.fields.EmailField')(unique=True, max_length=75)), | ||
15 | - ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='emails_not_validated', null=True, to=orm['accounts.User'])), | ||
16 | - ('validation_key', self.gf('django.db.models.fields.CharField')(default='2a261e5a2f944d36b252629b1a108e7b', max_length=32)), | ||
17 | - ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), | ||
18 | - )) | ||
19 | - db.send_create_signal(u'super_archives', ['EmailAddressValidation']) | ||
20 | - | ||
21 | - | ||
22 | - def backwards(self, orm): | ||
23 | - # Deleting model 'EmailAddressValidation' | ||
24 | - db.delete_table(u'super_archives_emailaddressvalidation') | ||
25 | - | ||
26 | - | ||
27 | - models = { | ||
28 | - u'accounts.user': { | ||
29 | - 'Meta': {'object_name': 'User'}, | ||
30 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
31 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
32 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
34 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
35 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
36 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
37 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
38 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
39 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
40 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
41 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
42 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
43 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
44 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
45 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
46 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
47 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
48 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
49 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
50 | - }, | ||
51 | - u'auth.group': { | ||
52 | - 'Meta': {'object_name': 'Group'}, | ||
53 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
54 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
55 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
56 | - }, | ||
57 | - u'auth.permission': { | ||
58 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
59 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
61 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
63 | - }, | ||
64 | - u'contenttypes.contenttype': { | ||
65 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
66 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
69 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
70 | - }, | ||
71 | - u'super_archives.emailaddress': { | ||
72 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
73 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
74 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
75 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
76 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
77 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': u"orm['accounts.User']"}) | ||
78 | - }, | ||
79 | - u'super_archives.emailaddressvalidation': { | ||
80 | - 'Meta': {'object_name': 'EmailAddressValidation'}, | ||
81 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
82 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
83 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
84 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
85 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'0dd1ae4b49bc43ff904c1cfa3b2e6ef6'", 'max_length': '32'}) | ||
86 | - }, | ||
87 | - u'super_archives.mailinglist': { | ||
88 | - 'Meta': {'object_name': 'MailingList'}, | ||
89 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
90 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
91 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
93 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
94 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
95 | - }, | ||
96 | - u'super_archives.mailinglistmembership': { | ||
97 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
98 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
99 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
100 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
101 | - }, | ||
102 | - u'super_archives.message': { | ||
103 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
104 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
105 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
106 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
107 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
108 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
109 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
110 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
111 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
112 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
113 | - }, | ||
114 | - u'super_archives.messagemetadata': { | ||
115 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
116 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
117 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
118 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
119 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
120 | - }, | ||
121 | - u'super_archives.pagehit': { | ||
122 | - 'Meta': {'object_name': 'PageHit'}, | ||
123 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
124 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
125 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
126 | - }, | ||
127 | - u'super_archives.thread': { | ||
128 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
129 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
130 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
131 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
132 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
133 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
134 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
135 | - }, | ||
136 | - u'super_archives.vote': { | ||
137 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
138 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
139 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
140 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
141 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
142 | - } | ||
143 | - } | ||
144 | - | ||
145 | - complete_apps = ['super_archives'] | ||
146 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0014_auto__chg_field_emailaddressvalidation_validation_key.py
@@ -1,138 +0,0 @@ | @@ -1,138 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - | ||
12 | - # Changing field 'EmailAddressValidation.validation_key' | ||
13 | - db.alter_column(u'super_archives_emailaddressvalidation', 'validation_key', self.gf('django.db.models.fields.CharField')(max_length=32, null=True)) | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # Changing field 'EmailAddressValidation.validation_key' | ||
18 | - db.alter_column(u'super_archives_emailaddressvalidation', 'validation_key', self.gf('django.db.models.fields.CharField')(max_length=32)) | ||
19 | - | ||
20 | - models = { | ||
21 | - u'accounts.user': { | ||
22 | - 'Meta': {'object_name': 'User'}, | ||
23 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
24 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
25 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
26 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
27 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
29 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
30 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
31 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
32 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
33 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
34 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
35 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
36 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
37 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
38 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
39 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
40 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
41 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
43 | - }, | ||
44 | - u'auth.group': { | ||
45 | - 'Meta': {'object_name': 'Group'}, | ||
46 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
47 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
48 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
49 | - }, | ||
50 | - u'auth.permission': { | ||
51 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
52 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
53 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
54 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
56 | - }, | ||
57 | - u'contenttypes.contenttype': { | ||
58 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
59 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
63 | - }, | ||
64 | - u'super_archives.emailaddress': { | ||
65 | - 'Meta': {'object_name': 'EmailAddress'}, | ||
66 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
69 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
70 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'to': u"orm['accounts.User']"}) | ||
71 | - }, | ||
72 | - u'super_archives.emailaddressvalidation': { | ||
73 | - 'Meta': {'object_name': 'EmailAddressValidation'}, | ||
74 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
75 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
76 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
77 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
78 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'30a2065c72c1402986a11e7c5369f5a5'", 'max_length': '32', 'null': 'True'}) | ||
79 | - }, | ||
80 | - u'super_archives.mailinglist': { | ||
81 | - 'Meta': {'object_name': 'MailingList'}, | ||
82 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
83 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
84 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
85 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
86 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
87 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
88 | - }, | ||
89 | - u'super_archives.mailinglistmembership': { | ||
90 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
91 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
93 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
94 | - }, | ||
95 | - u'super_archives.message': { | ||
96 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
97 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
98 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
99 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
100 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
101 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
102 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
103 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
104 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
105 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
106 | - }, | ||
107 | - u'super_archives.messagemetadata': { | ||
108 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
109 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
110 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
111 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
112 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
113 | - }, | ||
114 | - u'super_archives.pagehit': { | ||
115 | - 'Meta': {'object_name': 'PageHit'}, | ||
116 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
117 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
118 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
119 | - }, | ||
120 | - u'super_archives.thread': { | ||
121 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
122 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
123 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
124 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
125 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
126 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
127 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
128 | - }, | ||
129 | - u'super_archives.vote': { | ||
130 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
131 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
132 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
133 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
134 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
135 | - } | ||
136 | - } | ||
137 | - | ||
138 | - complete_apps = ['super_archives'] | ||
139 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0015_auto__chg_field_emailaddress_user.py
@@ -1,138 +0,0 @@ | @@ -1,138 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - | ||
12 | - # Changing field 'EmailAddress.user' | ||
13 | - db.alter_column(u'super_archives_emailaddress', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['accounts.User'])) | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - | ||
17 | - # Changing field 'EmailAddress.user' | ||
18 | - db.alter_column(u'super_archives_emailaddress', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['accounts.User'])) | ||
19 | - | ||
20 | - models = { | ||
21 | - u'accounts.user': { | ||
22 | - 'Meta': {'object_name': 'User'}, | ||
23 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
24 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
25 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
26 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
27 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
29 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
30 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
31 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
32 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
33 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
34 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
35 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
36 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
37 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
38 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
39 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
40 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
41 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
43 | - }, | ||
44 | - u'auth.group': { | ||
45 | - 'Meta': {'object_name': 'Group'}, | ||
46 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
47 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
48 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
49 | - }, | ||
50 | - u'auth.permission': { | ||
51 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
52 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
53 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
54 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
56 | - }, | ||
57 | - u'contenttypes.contenttype': { | ||
58 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
59 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
63 | - }, | ||
64 | - u'super_archives.emailaddress': { | ||
65 | - 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
66 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
69 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
70 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
71 | - }, | ||
72 | - u'super_archives.emailaddressvalidation': { | ||
73 | - 'Meta': {'object_name': 'EmailAddressValidation'}, | ||
74 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
75 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
76 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
77 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
78 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'a9cfbe23d1be41e4beeafa7790325e26'", 'max_length': '32', 'null': 'True'}) | ||
79 | - }, | ||
80 | - u'super_archives.mailinglist': { | ||
81 | - 'Meta': {'object_name': 'MailingList'}, | ||
82 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
83 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
84 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
85 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
86 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
87 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
88 | - }, | ||
89 | - u'super_archives.mailinglistmembership': { | ||
90 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
91 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
93 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
94 | - }, | ||
95 | - u'super_archives.message': { | ||
96 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
97 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
98 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
99 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
100 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
101 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
102 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
103 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
104 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
105 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
106 | - }, | ||
107 | - u'super_archives.messagemetadata': { | ||
108 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
109 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
110 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
111 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
112 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
113 | - }, | ||
114 | - u'super_archives.pagehit': { | ||
115 | - 'Meta': {'object_name': 'PageHit'}, | ||
116 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
117 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
118 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
119 | - }, | ||
120 | - u'super_archives.thread': { | ||
121 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
122 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
123 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
124 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
125 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
126 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
127 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
128 | - }, | ||
129 | - u'super_archives.vote': { | ||
130 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
131 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
132 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
133 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
134 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
135 | - } | ||
136 | - } | ||
137 | - | ||
138 | - complete_apps = ['super_archives'] | ||
139 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0016_auto__add_unique_emailaddressvalidation_user_address.py
@@ -1,138 +0,0 @@ | @@ -1,138 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding unique constraint on 'EmailAddressValidation', fields ['user', 'address'] | ||
12 | - db.create_unique(u'super_archives_emailaddressvalidation', ['user_id', 'address']) | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - # Removing unique constraint on 'EmailAddressValidation', fields ['user', 'address'] | ||
17 | - db.delete_unique(u'super_archives_emailaddressvalidation', ['user_id', 'address']) | ||
18 | - | ||
19 | - | ||
20 | - models = { | ||
21 | - u'accounts.user': { | ||
22 | - 'Meta': {'object_name': 'User'}, | ||
23 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
24 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
25 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
26 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
27 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
29 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
30 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
31 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
32 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
33 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
34 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
35 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
36 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
37 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
38 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
39 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
40 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
41 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
43 | - }, | ||
44 | - u'auth.group': { | ||
45 | - 'Meta': {'object_name': 'Group'}, | ||
46 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
47 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
48 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
49 | - }, | ||
50 | - u'auth.permission': { | ||
51 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
52 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
53 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
54 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
56 | - }, | ||
57 | - u'contenttypes.contenttype': { | ||
58 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
59 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
63 | - }, | ||
64 | - u'super_archives.emailaddress': { | ||
65 | - 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
66 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
69 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
70 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
71 | - }, | ||
72 | - u'super_archives.emailaddressvalidation': { | ||
73 | - 'Meta': {'unique_together': "(('user', 'address'),)", 'object_name': 'EmailAddressValidation'}, | ||
74 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
75 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
76 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
77 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
78 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'cfda46852e7e4e4a9e34a57c3d3b2330'", 'max_length': '32', 'null': 'True'}) | ||
79 | - }, | ||
80 | - u'super_archives.mailinglist': { | ||
81 | - 'Meta': {'object_name': 'MailingList'}, | ||
82 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
83 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
84 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
85 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
86 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
87 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
88 | - }, | ||
89 | - u'super_archives.mailinglistmembership': { | ||
90 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
91 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
93 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
94 | - }, | ||
95 | - u'super_archives.message': { | ||
96 | - 'Meta': {'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
97 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
98 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
99 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
100 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
101 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
102 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
103 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
104 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
105 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
106 | - }, | ||
107 | - u'super_archives.messagemetadata': { | ||
108 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
109 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
110 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
111 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
112 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
113 | - }, | ||
114 | - u'super_archives.pagehit': { | ||
115 | - 'Meta': {'object_name': 'PageHit'}, | ||
116 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
117 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
118 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
119 | - }, | ||
120 | - u'super_archives.thread': { | ||
121 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
122 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
123 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
124 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
125 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
126 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
127 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
128 | - }, | ||
129 | - u'super_archives.vote': { | ||
130 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
131 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
132 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
133 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
134 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
135 | - } | ||
136 | - } | ||
137 | - | ||
138 | - complete_apps = ['super_archives'] | ||
139 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0017_auto__add_keyword.py
@@ -1,151 +0,0 @@ | @@ -1,151 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding model 'Keyword' | ||
12 | - db.create_table(u'super_archives_keyword', ( | ||
13 | - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
14 | - ('keyword', self.gf('django.db.models.fields.CharField')(max_length='128')), | ||
15 | - ('weight', self.gf('django.db.models.fields.IntegerField')(default=0)), | ||
16 | - ('thread', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['super_archives.Thread'])), | ||
17 | - )) | ||
18 | - db.send_create_signal(u'super_archives', ['Keyword']) | ||
19 | - | ||
20 | - | ||
21 | - def backwards(self, orm): | ||
22 | - # Deleting model 'Keyword' | ||
23 | - db.delete_table(u'super_archives_keyword') | ||
24 | - | ||
25 | - | ||
26 | - models = { | ||
27 | - u'accounts.user': { | ||
28 | - 'Meta': {'object_name': 'User'}, | ||
29 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
30 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
31 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
32 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
33 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
34 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
35 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
36 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
37 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
38 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
39 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
40 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
41 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
42 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
43 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
44 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
45 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
46 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
47 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
48 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
49 | - }, | ||
50 | - u'auth.group': { | ||
51 | - 'Meta': {'object_name': 'Group'}, | ||
52 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
53 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
54 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
55 | - }, | ||
56 | - u'auth.permission': { | ||
57 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
58 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
59 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
60 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
62 | - }, | ||
63 | - u'contenttypes.contenttype': { | ||
64 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
65 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
66 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
67 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
68 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
69 | - }, | ||
70 | - u'super_archives.emailaddress': { | ||
71 | - 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
72 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
73 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
74 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
75 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
76 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
77 | - }, | ||
78 | - u'super_archives.emailaddressvalidation': { | ||
79 | - 'Meta': {'unique_together': "(('user', 'address'),)", 'object_name': 'EmailAddressValidation'}, | ||
80 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
81 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
82 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
83 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
84 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'e2d18f1f8d6445fc91c04d17acdbe23a'", 'max_length': '32', 'null': 'True'}) | ||
85 | - }, | ||
86 | - u'super_archives.keyword': { | ||
87 | - 'Meta': {'object_name': 'Keyword'}, | ||
88 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
89 | - 'keyword': ('django.db.models.fields.CharField', [], {'max_length': "'128'"}), | ||
90 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']"}), | ||
91 | - 'weight': ('django.db.models.fields.IntegerField', [], {'default': '0'}) | ||
92 | - }, | ||
93 | - u'super_archives.mailinglist': { | ||
94 | - 'Meta': {'object_name': 'MailingList'}, | ||
95 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
96 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
97 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
98 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
99 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
100 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
101 | - }, | ||
102 | - u'super_archives.mailinglistmembership': { | ||
103 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
104 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
105 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
106 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
107 | - }, | ||
108 | - u'super_archives.message': { | ||
109 | - 'Meta': {'ordering': "('received_time',)", 'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
110 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
111 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
112 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
113 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
114 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {}), | ||
115 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
116 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
117 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
118 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
119 | - }, | ||
120 | - u'super_archives.messagemetadata': { | ||
121 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
122 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
123 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
124 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
125 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
126 | - }, | ||
127 | - u'super_archives.pagehit': { | ||
128 | - 'Meta': {'object_name': 'PageHit'}, | ||
129 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
130 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
131 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
132 | - }, | ||
133 | - u'super_archives.thread': { | ||
134 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
135 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
136 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
137 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
138 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
139 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
140 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
141 | - }, | ||
142 | - u'super_archives.vote': { | ||
143 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
144 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
145 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
146 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
147 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
148 | - } | ||
149 | - } | ||
150 | - | ||
151 | - complete_apps = ['super_archives'] | ||
152 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0018_auto__add_index_message_received_time.py
@@ -1,145 +0,0 @@ | @@ -1,145 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding index on 'Message', fields ['received_time'] | ||
12 | - db.create_index(u'super_archives_message', ['received_time']) | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - # Removing index on 'Message', fields ['received_time'] | ||
17 | - db.delete_index(u'super_archives_message', ['received_time']) | ||
18 | - | ||
19 | - | ||
20 | - models = { | ||
21 | - u'accounts.user': { | ||
22 | - 'Meta': {'object_name': 'User'}, | ||
23 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
24 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
25 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
26 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
27 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
28 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
29 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
30 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
31 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
32 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
33 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
34 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
35 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
36 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
37 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
38 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
39 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
40 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
41 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
42 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
43 | - }, | ||
44 | - u'auth.group': { | ||
45 | - 'Meta': {'object_name': 'Group'}, | ||
46 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
47 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
48 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
49 | - }, | ||
50 | - u'auth.permission': { | ||
51 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
52 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
53 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
54 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
55 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
56 | - }, | ||
57 | - u'contenttypes.contenttype': { | ||
58 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
59 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
61 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
63 | - }, | ||
64 | - u'super_archives.emailaddress': { | ||
65 | - 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
66 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
69 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
70 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
71 | - }, | ||
72 | - u'super_archives.emailaddressvalidation': { | ||
73 | - 'Meta': {'unique_together': "(('user', 'address'),)", 'object_name': 'EmailAddressValidation'}, | ||
74 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
75 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
76 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
77 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
78 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'1775e2bdc5e341a9b9b8a6346eec1024'", 'max_length': '32', 'null': 'True'}) | ||
79 | - }, | ||
80 | - u'super_archives.keyword': { | ||
81 | - 'Meta': {'ordering': "('?',)", 'object_name': 'Keyword'}, | ||
82 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
83 | - 'keyword': ('django.db.models.fields.CharField', [], {'max_length': "'128'"}), | ||
84 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']"}), | ||
85 | - 'weight': ('django.db.models.fields.IntegerField', [], {'default': '0'}) | ||
86 | - }, | ||
87 | - u'super_archives.mailinglist': { | ||
88 | - 'Meta': {'object_name': 'MailingList'}, | ||
89 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
90 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
91 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
92 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
93 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
94 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
95 | - }, | ||
96 | - u'super_archives.mailinglistmembership': { | ||
97 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
98 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
99 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
100 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
101 | - }, | ||
102 | - u'super_archives.message': { | ||
103 | - 'Meta': {'ordering': "('received_time',)", 'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
104 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
105 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
106 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
107 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
108 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), | ||
109 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
110 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
111 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
112 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
113 | - }, | ||
114 | - u'super_archives.messagemetadata': { | ||
115 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
116 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
117 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
118 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
119 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
120 | - }, | ||
121 | - u'super_archives.pagehit': { | ||
122 | - 'Meta': {'object_name': 'PageHit'}, | ||
123 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
124 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
125 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
126 | - }, | ||
127 | - u'super_archives.thread': { | ||
128 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
129 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
130 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
131 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
132 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
133 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
134 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
135 | - }, | ||
136 | - u'super_archives.vote': { | ||
137 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
138 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
139 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
140 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
141 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
142 | - } | ||
143 | - } | ||
144 | - | ||
145 | - complete_apps = ['super_archives'] | ||
146 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0019_auto__add_messageblock.py
@@ -1,160 +0,0 @@ | @@ -1,160 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Adding model 'MessageBlock' | ||
12 | - db.create_table(u'super_archives_messageblock', ( | ||
13 | - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
14 | - ('message', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blocks', to=orm['super_archives.Message'])), | ||
15 | - ('text', self.gf('django.db.models.fields.TextField')()), | ||
16 | - ('is_reply', self.gf('django.db.models.fields.BooleanField')()), | ||
17 | - ('order', self.gf('django.db.models.fields.IntegerField')()), | ||
18 | - )) | ||
19 | - db.send_create_signal(u'super_archives', ['MessageBlock']) | ||
20 | - | ||
21 | - | ||
22 | - def backwards(self, orm): | ||
23 | - # Deleting model 'MessageBlock' | ||
24 | - db.delete_table(u'super_archives_messageblock') | ||
25 | - | ||
26 | - | ||
27 | - models = { | ||
28 | - u'accounts.user': { | ||
29 | - 'Meta': {'object_name': 'User'}, | ||
30 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
31 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
32 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
34 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
35 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
36 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
37 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
38 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
39 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
40 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
41 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
42 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
43 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
44 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
45 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
46 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
47 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
48 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
49 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
50 | - }, | ||
51 | - u'auth.group': { | ||
52 | - 'Meta': {'object_name': 'Group'}, | ||
53 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
54 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
55 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
56 | - }, | ||
57 | - u'auth.permission': { | ||
58 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
59 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
60 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
61 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
62 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
63 | - }, | ||
64 | - u'contenttypes.contenttype': { | ||
65 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
66 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
67 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
68 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
69 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
70 | - }, | ||
71 | - u'super_archives.emailaddress': { | ||
72 | - 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
73 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
74 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
75 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
76 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
77 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
78 | - }, | ||
79 | - u'super_archives.emailaddressvalidation': { | ||
80 | - 'Meta': {'unique_together': "(('user', 'address'),)", 'object_name': 'EmailAddressValidation'}, | ||
81 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
82 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
83 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
84 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
85 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'f7c4c15797f34834bf5a8b9bd84fabee'", 'max_length': '32', 'null': 'True'}) | ||
86 | - }, | ||
87 | - u'super_archives.keyword': { | ||
88 | - 'Meta': {'ordering': "('?',)", 'object_name': 'Keyword'}, | ||
89 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
90 | - 'keyword': ('django.db.models.fields.CharField', [], {'max_length': "'128'"}), | ||
91 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']"}), | ||
92 | - 'weight': ('django.db.models.fields.IntegerField', [], {'default': '0'}) | ||
93 | - }, | ||
94 | - u'super_archives.mailinglist': { | ||
95 | - 'Meta': {'object_name': 'MailingList'}, | ||
96 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
97 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
98 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
99 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
100 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
101 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
102 | - }, | ||
103 | - u'super_archives.mailinglistmembership': { | ||
104 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
105 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
106 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
107 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
108 | - }, | ||
109 | - u'super_archives.message': { | ||
110 | - 'Meta': {'ordering': "('received_time',)", 'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
111 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
112 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
113 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
114 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
115 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), | ||
116 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
117 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
118 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
119 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
120 | - }, | ||
121 | - u'super_archives.messageblock': { | ||
122 | - 'Meta': {'ordering': "('order',)", 'object_name': 'MessageBlock'}, | ||
123 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
124 | - 'is_reply': ('django.db.models.fields.BooleanField', [], {}), | ||
125 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blocks'", 'to': u"orm['super_archives.Message']"}), | ||
126 | - 'order': ('django.db.models.fields.IntegerField', [], {}), | ||
127 | - 'text': ('django.db.models.fields.TextField', [], {}) | ||
128 | - }, | ||
129 | - u'super_archives.messagemetadata': { | ||
130 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
131 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
132 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
133 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
134 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
135 | - }, | ||
136 | - u'super_archives.pagehit': { | ||
137 | - 'Meta': {'object_name': 'PageHit'}, | ||
138 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
139 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
140 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
141 | - }, | ||
142 | - u'super_archives.thread': { | ||
143 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
144 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
145 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
146 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
147 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
148 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
149 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
150 | - }, | ||
151 | - u'super_archives.vote': { | ||
152 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
153 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
154 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
155 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
156 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
157 | - } | ||
158 | - } | ||
159 | - | ||
160 | - complete_apps = ['super_archives'] | ||
161 | \ No newline at end of file | 0 | \ No newline at end of file |
src/super_archives/migrations/0020_pagehit_to_hitcounter.py
@@ -1,190 +0,0 @@ | @@ -1,190 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | - | ||
3 | -import datetime | ||
4 | - | ||
5 | -from south.db import db | ||
6 | -from south.logger import _logger | ||
7 | -from south.v2 import DataMigration | ||
8 | -from django.core.urlresolvers import resolve | ||
9 | -from django.db import models | ||
10 | - | ||
11 | - | ||
12 | -class Migration(DataMigration): | ||
13 | - | ||
14 | - def forwards(self, orm): | ||
15 | - """Migrate all data from the PageHit model to the given object with | ||
16 | - the HitCounterMixin.""" | ||
17 | - | ||
18 | - content_type = orm['contenttypes.ContentType'].objects.get( | ||
19 | - model='thread', | ||
20 | - app_label='super_archives' | ||
21 | - ) | ||
22 | - | ||
23 | - for obj in orm.PageHit.objects.all(): | ||
24 | - view = resolve(obj.url_path) | ||
25 | - | ||
26 | - try: | ||
27 | - thread = orm.Thread.objects.get( | ||
28 | - subject_token=view.kwargs.get('thread_token'), | ||
29 | - mailinglist__name=view.kwargs.get('mailinglist'), | ||
30 | - ) | ||
31 | - except orm.Thread.DoesNotExist: | ||
32 | - continue | ||
33 | - | ||
34 | - hit_obj, created = orm['hitcounter.Hit'].objects.get_or_create( | ||
35 | - content_type=content_type, | ||
36 | - object_pk=thread.pk, | ||
37 | - defaults={'hits': obj.hit_count}, | ||
38 | - ) | ||
39 | - | ||
40 | - if not created: | ||
41 | - hit_obj.hits = obj.hit_count | ||
42 | - hit_obj.save() | ||
43 | - | ||
44 | - def backwards(self, orm): | ||
45 | - _logger.warning(u"This backwards don't get the data of PageHit back.") | ||
46 | - | ||
47 | - models = { | ||
48 | - u'accounts.user': { | ||
49 | - 'Meta': {'object_name': 'User'}, | ||
50 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
51 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
52 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
53 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
54 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
55 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
56 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
57 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': '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 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
65 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
66 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
67 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
68 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
69 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
70 | - }, | ||
71 | - u'auth.group': { | ||
72 | - 'Meta': {'object_name': 'Group'}, | ||
73 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
74 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
75 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
76 | - }, | ||
77 | - u'auth.permission': { | ||
78 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
79 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
80 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
81 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
82 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
83 | - }, | ||
84 | - u'contenttypes.contenttype': { | ||
85 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
86 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
87 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
88 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
89 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
90 | - }, | ||
91 | - u'hitcounter.hit': { | ||
92 | - 'Meta': {'unique_together': "(('content_type', 'object_pk'),)", 'object_name': 'Hit'}, | ||
93 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
94 | - 'created': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), | ||
95 | - 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), | ||
96 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'object_pk': ('django.db.models.fields.CharField', [], {'max_length': '256'}), | ||
98 | - 'updated': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) | ||
99 | - }, | ||
100 | - u'super_archives.emailaddress': { | ||
101 | - 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
102 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
103 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
105 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
106 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
107 | - }, | ||
108 | - u'super_archives.emailaddressvalidation': { | ||
109 | - 'Meta': {'unique_together': "(('user', 'address'),)", 'object_name': 'EmailAddressValidation'}, | ||
110 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
111 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
112 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
113 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
114 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'60d2bcbd9d924d9f8139c2d1227223ed'", 'max_length': '32', 'null': 'True'}) | ||
115 | - }, | ||
116 | - u'super_archives.keyword': { | ||
117 | - 'Meta': {'ordering': "('?',)", 'object_name': 'Keyword'}, | ||
118 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
119 | - 'keyword': ('django.db.models.fields.CharField', [], {'max_length': "'128'"}), | ||
120 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']"}), | ||
121 | - 'weight': ('django.db.models.fields.IntegerField', [], {'default': '0'}) | ||
122 | - }, | ||
123 | - u'super_archives.mailinglist': { | ||
124 | - 'Meta': {'object_name': 'MailingList'}, | ||
125 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
126 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
127 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
128 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
129 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
130 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
131 | - }, | ||
132 | - u'super_archives.mailinglistmembership': { | ||
133 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
134 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
135 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
136 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
137 | - }, | ||
138 | - u'super_archives.message': { | ||
139 | - 'Meta': {'ordering': "('received_time',)", 'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
140 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
141 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
142 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
143 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
144 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), | ||
145 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
146 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
147 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
148 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
149 | - }, | ||
150 | - u'super_archives.messageblock': { | ||
151 | - 'Meta': {'ordering': "('order',)", 'object_name': 'MessageBlock'}, | ||
152 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
153 | - 'is_reply': ('django.db.models.fields.BooleanField', [], {}), | ||
154 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blocks'", 'to': u"orm['super_archives.Message']"}), | ||
155 | - 'order': ('django.db.models.fields.IntegerField', [], {}), | ||
156 | - 'text': ('django.db.models.fields.TextField', [], {}) | ||
157 | - }, | ||
158 | - u'super_archives.messagemetadata': { | ||
159 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
160 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
161 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
162 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
163 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
164 | - }, | ||
165 | - u'super_archives.pagehit': { | ||
166 | - 'Meta': {'object_name': 'PageHit'}, | ||
167 | - 'hit_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
168 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
169 | - 'url_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2048', 'db_index': 'True'}) | ||
170 | - }, | ||
171 | - u'super_archives.thread': { | ||
172 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
173 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
174 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
175 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
176 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
177 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
178 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
179 | - }, | ||
180 | - u'super_archives.vote': { | ||
181 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
182 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
183 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
184 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
185 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
186 | - } | ||
187 | - } | ||
188 | - | ||
189 | - complete_apps = ['hitcounter', 'super_archives'] | ||
190 | - symmetrical = True |
src/super_archives/migrations/0021_auto__del_pagehit.py
@@ -1,152 +0,0 @@ | @@ -1,152 +0,0 @@ | ||
1 | -# -*- coding: utf-8 -*- | ||
2 | -import datetime | ||
3 | -from south.db import db | ||
4 | -from south.v2 import SchemaMigration | ||
5 | -from django.db import models | ||
6 | - | ||
7 | - | ||
8 | -class Migration(SchemaMigration): | ||
9 | - | ||
10 | - def forwards(self, orm): | ||
11 | - # Deleting model 'PageHit' | ||
12 | - db.delete_table(u'super_archives_pagehit') | ||
13 | - | ||
14 | - | ||
15 | - def backwards(self, orm): | ||
16 | - # Adding model 'PageHit' | ||
17 | - db.create_table(u'super_archives_pagehit', ( | ||
18 | - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | ||
19 | - ('hit_count', self.gf('django.db.models.fields.IntegerField')(default=0)), | ||
20 | - ('url_path', self.gf('django.db.models.fields.CharField')(max_length=2048, unique=True, db_index=True)), | ||
21 | - )) | ||
22 | - db.send_create_signal(u'super_archives', ['PageHit']) | ||
23 | - | ||
24 | - | ||
25 | - models = { | ||
26 | - u'accounts.user': { | ||
27 | - 'Meta': {'object_name': 'User'}, | ||
28 | - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
29 | - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75', 'blank': 'True'}), | ||
30 | - 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
31 | - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
32 | - 'google_talk': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), | ||
33 | - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), | ||
34 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
35 | - 'institution': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
36 | - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | ||
37 | - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
38 | - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
39 | - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), | ||
40 | - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), | ||
41 | - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), | ||
42 | - 'role': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
43 | - 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), | ||
44 | - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), | ||
45 | - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}), | ||
46 | - 'verification_hash': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), | ||
47 | - 'webpage': ('django.db.models.fields.CharField', [], {'max_length': '256', 'null': 'True', 'blank': 'True'}) | ||
48 | - }, | ||
49 | - u'auth.group': { | ||
50 | - 'Meta': {'object_name': 'Group'}, | ||
51 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
52 | - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), | ||
53 | - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) | ||
54 | - }, | ||
55 | - u'auth.permission': { | ||
56 | - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, | ||
57 | - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
58 | - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), | ||
59 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
60 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) | ||
61 | - }, | ||
62 | - u'contenttypes.contenttype': { | ||
63 | - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, | ||
64 | - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
65 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
66 | - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), | ||
67 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) | ||
68 | - }, | ||
69 | - u'super_archives.emailaddress': { | ||
70 | - 'Meta': {'ordering': "('id',)", 'object_name': 'EmailAddress'}, | ||
71 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
72 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
73 | - 'md5': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}), | ||
74 | - 'real_name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '64', 'blank': 'True'}), | ||
75 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['accounts.User']"}) | ||
76 | - }, | ||
77 | - u'super_archives.emailaddressvalidation': { | ||
78 | - 'Meta': {'unique_together': "(('user', 'address'),)", 'object_name': 'EmailAddressValidation'}, | ||
79 | - 'address': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), | ||
80 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
81 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
82 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emails_not_validated'", 'null': 'True', 'to': u"orm['accounts.User']"}), | ||
83 | - 'validation_key': ('django.db.models.fields.CharField', [], {'default': "'dabb0135cf6c436da11caf5dac7e8c10'", 'max_length': '32', 'null': 'True'}) | ||
84 | - }, | ||
85 | - u'super_archives.keyword': { | ||
86 | - 'Meta': {'ordering': "('?',)", 'object_name': 'Keyword'}, | ||
87 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
88 | - 'keyword': ('django.db.models.fields.CharField', [], {'max_length': "'128'"}), | ||
89 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']"}), | ||
90 | - 'weight': ('django.db.models.fields.IntegerField', [], {'default': '0'}) | ||
91 | - }, | ||
92 | - u'super_archives.mailinglist': { | ||
93 | - 'Meta': {'object_name': 'MailingList'}, | ||
94 | - 'description': ('django.db.models.fields.TextField', [], {}), | ||
95 | - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), | ||
96 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
97 | - 'last_imported_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
98 | - 'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), | ||
99 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}) | ||
100 | - }, | ||
101 | - u'super_archives.mailinglistmembership': { | ||
102 | - 'Meta': {'object_name': 'MailingListMembership'}, | ||
103 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
104 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
105 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
106 | - }, | ||
107 | - u'super_archives.message': { | ||
108 | - 'Meta': {'ordering': "('received_time',)", 'unique_together': "(('thread', 'message_id'),)", 'object_name': 'Message'}, | ||
109 | - 'body': ('django.db.models.fields.TextField', [], {'default': "''"}), | ||
110 | - 'from_address': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.EmailAddress']"}), | ||
111 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
112 | - 'message_id': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
113 | - 'received_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), | ||
114 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
115 | - 'subject': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
116 | - 'subject_clean': ('django.db.models.fields.CharField', [], {'max_length': '512', 'db_index': 'True'}), | ||
117 | - 'thread': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Thread']", 'null': 'True'}) | ||
118 | - }, | ||
119 | - u'super_archives.messageblock': { | ||
120 | - 'Meta': {'ordering': "('order',)", 'object_name': 'MessageBlock'}, | ||
121 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
122 | - 'is_reply': ('django.db.models.fields.BooleanField', [], {}), | ||
123 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blocks'", 'to': u"orm['super_archives.Message']"}), | ||
124 | - 'order': ('django.db.models.fields.IntegerField', [], {}), | ||
125 | - 'text': ('django.db.models.fields.TextField', [], {}) | ||
126 | - }, | ||
127 | - u'super_archives.messagemetadata': { | ||
128 | - 'Message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
129 | - 'Meta': {'object_name': 'MessageMetadata'}, | ||
130 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
131 | - 'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}), | ||
132 | - 'value': ('django.db.models.fields.TextField', [], {}) | ||
133 | - }, | ||
134 | - u'super_archives.thread': { | ||
135 | - 'Meta': {'unique_together': "(('subject_token', 'mailinglist'),)", 'object_name': 'Thread'}, | ||
136 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
137 | - 'latest_message': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'+'", 'unique': 'True', 'null': 'True', 'to': u"orm['super_archives.Message']"}), | ||
138 | - 'mailinglist': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.MailingList']"}), | ||
139 | - 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | ||
140 | - 'spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | ||
141 | - 'subject_token': ('django.db.models.fields.CharField', [], {'max_length': '512'}) | ||
142 | - }, | ||
143 | - u'super_archives.vote': { | ||
144 | - 'Meta': {'unique_together': "(('user', 'message'),)", 'object_name': 'Vote'}, | ||
145 | - 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | ||
146 | - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | ||
147 | - 'message': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['super_archives.Message']"}), | ||
148 | - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"}) | ||
149 | - } | ||
150 | - } | ||
151 | - | ||
152 | - complete_apps = ['super_archives'] | ||
153 | \ No newline at end of file | 0 | \ No newline at end of file |