diff --git a/greenmine/base/users/migrations/0001_initial.py b/greenmine/base/users/migrations/0001_initial.py new file mode 100644 index 00000000..6fdf1d1c --- /dev/null +++ b/greenmine/base/users/migrations/0001_initial.py @@ -0,0 +1,144 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'User' + db.create_table('users_user', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('password', self.gf('django.db.models.fields.CharField')(max_length=128)), + ('last_login', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + ('is_superuser', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('username', self.gf('django.db.models.fields.CharField')(max_length=30, unique=True)), + ('first_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)), + ('last_name', self.gf('django.db.models.fields.CharField')(max_length=30, blank=True)), + ('email', self.gf('django.db.models.fields.EmailField')(max_length=75, blank=True)), + ('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('is_active', self.gf('django.db.models.fields.BooleanField')(default=True)), + ('date_joined', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + ('color', self.gf('django.db.models.fields.CharField')(default='#669933', max_length=9, blank=True)), + ('description', self.gf('django.db.models.fields.TextField')(blank=True)), + ('photo', self.gf('django.db.models.fields.files.FileField')(max_length=500, blank=True, null=True)), + ('default_language', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)), + ('default_timezone', self.gf('django.db.models.fields.CharField')(default='', max_length=20, blank=True)), + ('token', self.gf('django.db.models.fields.CharField')(default=None, max_length=200, blank=True, null=True)), + ('colorize_tags', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('users', ['User']) + + # Adding M2M table for field groups on 'User' + m2m_table_name = db.shorten_name('users_user_groups') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('user', models.ForeignKey(orm['users.user'], null=False)), + ('group', models.ForeignKey(orm['auth.group'], null=False)) + )) + db.create_unique(m2m_table_name, ['user_id', 'group_id']) + + # Adding M2M table for field user_permissions on 'User' + m2m_table_name = db.shorten_name('users_user_user_permissions') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('user', models.ForeignKey(orm['users.user'], null=False)), + ('permission', models.ForeignKey(orm['auth.permission'], null=False)) + )) + db.create_unique(m2m_table_name, ['user_id', 'permission_id']) + + # Adding model 'Role' + db.create_table('users_role', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), + ('slug', self.gf('django.db.models.fields.SlugField')(max_length=250, unique=True, blank=True)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('computable', self.gf('django.db.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('users', ['Role']) + + # Adding M2M table for field permissions on 'Role' + m2m_table_name = db.shorten_name('users_role_permissions') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('role', models.ForeignKey(orm['users.role'], null=False)), + ('permission', models.ForeignKey(orm['auth.permission'], null=False)) + )) + db.create_unique(m2m_table_name, ['role_id', 'permission_id']) + + + def backwards(self, orm): + # Deleting model 'User' + db.delete_table('users_user') + + # Removing M2M table for field groups on 'User' + db.delete_table(db.shorten_name('users_user_groups')) + + # Removing M2M table for field user_permissions on 'User' + db.delete_table(db.shorten_name('users_user_user_permissions')) + + # Deleting model 'Role' + db.delete_table('users_role') + + # Removing M2M table for field permissions on 'Role' + db.delete_table(db.shorten_name('users_role_permissions')) + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Permission']", 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'users.role': { + 'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'}, + 'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}) + }, + 'users.user': { + 'Meta': {'ordering': "['username']", 'object_name': 'User'}, + 'color': ('django.db.models.fields.CharField', [], {'default': "'#669933'", 'max_length': '9', 'blank': 'True'}), + 'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'default_language': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '20', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Group']", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'blank': 'True', 'null': 'True'}), + 'token': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '200', 'blank': 'True', 'null': 'True'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Permission']", 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'}) + } + } + + complete_apps = ['users'] \ No newline at end of file diff --git a/greenmine/base/users/migrations/__init__.py b/greenmine/base/users/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/greenmine/projects/issues/migrations/0001_initial.py b/greenmine/projects/issues/migrations/0001_initial.py new file mode 100644 index 00000000..3bbf98ae --- /dev/null +++ b/greenmine/projects/issues/migrations/0001_initial.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Issue' + db.create_table('issues_issue', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('uuid', self.gf('django.db.models.fields.CharField')(max_length=40, blank=True, unique=True)), + ('ref', self.gf('django.db.models.fields.BigIntegerField')(db_index=True, default=None, null=True, blank=True)), + ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], default=None, related_name='owned_issues', null=True, blank=True)), + ('status', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.IssueStatus'])), + ('severity', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.Severity'])), + ('priority', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.Priority'])), + ('type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.IssueType'])), + ('milestone', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['milestones.Milestone'], default=None, related_name='issues', null=True, blank=True)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['projects.Project'])), + ('created_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)), + ('modified_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)), + ('finished_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), + ('subject', self.gf('django.db.models.fields.CharField')(max_length=500)), + ('description', self.gf('django.db.models.fields.TextField')(blank=True)), + ('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], default=None, related_name='issues_assigned_to_me', null=True, blank=True)), + ('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)), + )) + db.send_create_signal('issues', ['Issue']) + + # Adding unique constraint on 'Issue', fields ['ref', 'project'] + db.create_unique('issues_issue', ['ref', 'project_id']) + + # Adding M2M table for field watchers on 'Issue' + m2m_table_name = db.shorten_name('issues_issue_watchers') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('issue', models.ForeignKey(orm['issues.issue'], null=False)), + ('user', models.ForeignKey(orm['users.user'], null=False)) + )) + db.create_unique(m2m_table_name, ['issue_id', 'user_id']) + + + def backwards(self, orm): + # Removing unique constraint on 'Issue', fields ['ref', 'project'] + db.delete_unique('issues_issue', ['ref', 'project_id']) + + # Deleting model 'Issue' + db.delete_table('issues_issue') + + # Removing M2M table for field watchers on 'Issue' + db.delete_table(db.shorten_name('issues_issue_watchers')) + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"}) + }, + 'auth.permission': { + 'Meta': {'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)"}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'object_name': 'ContentType', 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'issues.issue': { + 'Meta': {'object_name': 'Issue', 'ordering': "['project', 'created_date']", 'unique_together': "(('ref', 'project'),)"}, + 'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'related_name': "'issues_assigned_to_me'", 'null': 'True', 'blank': 'True'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'finished_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['milestones.Milestone']", 'default': 'None', 'related_name': "'issues'", 'null': 'True', 'blank': 'True'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'related_name': "'owned_issues'", 'null': 'True', 'blank': 'True'}), + 'priority': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Priority']"}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Project']"}), + 'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'default': 'None', 'null': 'True', 'blank': 'True'}), + 'severity': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.Severity']"}), + 'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.IssueStatus']"}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['projects.IssueType']"}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True', 'unique': 'True'}), + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'null': 'True', 'related_name': "'watched_issues'"}) + }, + 'milestones.milestone': { + 'Meta': {'object_name': 'Milestone', 'ordering': "['project', '-created_date']", 'unique_together': "(('name', 'project'),)"}, + 'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'disponibility': ('django.db.models.fields.FloatField', [], {'default': '0.0', 'null': 'True', 'blank': 'True'}), + 'estimated_finish': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'estimated_start': ('django.db.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}), + 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_milestones'", 'null': 'True', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True', 'unique': 'True'}) + }, + 'projects.issuestatus': { + 'Meta': {'object_name': 'IssueStatus', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_statuses'", 'to': "orm['projects.Project']"}) + }, + 'projects.issuetype': { + 'Meta': {'object_name': 'IssueType', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issue_types'", 'to': "orm['projects.Project']"}) + }, + 'projects.membership': { + 'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"}) + }, + 'projects.priority': { + 'Meta': {'object_name': 'Priority', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'priorities'", 'to': "orm['projects.Project']"}) + }, + 'projects.project': { + 'Meta': {'object_name': 'Project', 'ordering': "['name']"}, + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'through': "orm['projects.Membership']", 'related_name': "'projects'"}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'total_milestones': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}), + 'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True', 'unique': 'True'}) + }, + 'projects.severity': { + 'Meta': {'object_name': 'Severity', 'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'severities'", 'to': "orm['projects.Project']"}) + }, + 'users.role': { + 'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"}, + 'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'roles'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}) + }, + 'users.user': { + 'Meta': {'object_name': 'User', 'ordering': "['username']"}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}), + 'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True', 'related_name': "'user_set'"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'default': 'None', 'null': 'True', 'blank': 'True'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True', 'related_name': "'user_set'"}), + 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'}) + } + } + + complete_apps = ['issues'] \ No newline at end of file diff --git a/greenmine/projects/issues/migrations/__init__.py b/greenmine/projects/issues/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/greenmine/projects/migrations/0001_initial.py b/greenmine/projects/migrations/0001_initial.py new file mode 100644 index 00000000..5a1631fa --- /dev/null +++ b/greenmine/projects/migrations/0001_initial.py @@ -0,0 +1,375 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Attachment' + db.create_table('projects_attachment', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], related_name='change_attachments')), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='attachments')), + ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])), + ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()), + ('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + ('attached_file', self.gf('django.db.models.fields.files.FileField')(null=True, blank=True, max_length=500)), + )) + db.send_create_signal('projects', ['Attachment']) + + # Adding model 'Membership' + db.create_table('projects_membership', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], related_name='memberships')), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='memberships')), + ('role', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.Role'], related_name='memberships')), + )) + db.send_create_signal('projects', ['Membership']) + + # Adding unique constraint on 'Membership', fields ['user', 'project'] + db.create_unique('projects_membership', ['user_id', 'project_id']) + + # Adding model 'Project' + db.create_table('projects_project', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('uuid', self.gf('django.db.models.fields.CharField')(max_length=40, unique=True, blank=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=250, unique=True)), + ('slug', self.gf('django.db.models.fields.SlugField')(max_length=250, unique=True, blank=True)), + ('description', self.gf('django.db.models.fields.TextField')()), + ('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], related_name='owned_projects')), + ('public', self.gf('django.db.models.fields.BooleanField')(default=True)), + ('last_us_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)), + ('last_task_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)), + ('last_issue_ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, default=1)), + ('total_milestones', self.gf('django.db.models.fields.IntegerField')(null=True, default=0, blank=True)), + ('total_story_points', self.gf('django.db.models.fields.FloatField')(null=True, default=None)), + ('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)), + )) + db.send_create_signal('projects', ['Project']) + + # Adding model 'UserStoryStatus' + db.create_table('projects_userstorystatus', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='us_statuses')), + )) + db.send_create_signal('projects', ['UserStoryStatus']) + + # Adding unique constraint on 'UserStoryStatus', fields ['project', 'name'] + db.create_unique('projects_userstorystatus', ['project_id', 'name']) + + # Adding model 'Points' + db.create_table('projects_points', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('value', self.gf('django.db.models.fields.FloatField')(null=True, default=None, blank=True)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='points')), + )) + db.send_create_signal('projects', ['Points']) + + # Adding unique constraint on 'Points', fields ['project', 'name'] + db.create_unique('projects_points', ['project_id', 'name']) + + # Adding model 'TaskStatus' + db.create_table('projects_taskstatus', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('color', self.gf('django.db.models.fields.CharField')(max_length=20, default='#999999')), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='task_statuses')), + )) + db.send_create_signal('projects', ['TaskStatus']) + + # Adding unique constraint on 'TaskStatus', fields ['project', 'name'] + db.create_unique('projects_taskstatus', ['project_id', 'name']) + + # Adding model 'Priority' + db.create_table('projects_priority', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='priorities')), + )) + db.send_create_signal('projects', ['Priority']) + + # Adding unique constraint on 'Priority', fields ['project', 'name'] + db.create_unique('projects_priority', ['project_id', 'name']) + + # Adding model 'Severity' + db.create_table('projects_severity', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='severities')), + )) + db.send_create_signal('projects', ['Severity']) + + # Adding unique constraint on 'Severity', fields ['project', 'name'] + db.create_unique('projects_severity', ['project_id', 'name']) + + # Adding model 'IssueStatus' + db.create_table('projects_issuestatus', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='issue_statuses')), + )) + db.send_create_signal('projects', ['IssueStatus']) + + # Adding unique constraint on 'IssueStatus', fields ['project', 'name'] + db.create_unique('projects_issuestatus', ['project_id', 'name']) + + # Adding model 'IssueType' + db.create_table('projects_issuetype', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='issue_types')), + )) + db.send_create_signal('projects', ['IssueType']) + + # Adding unique constraint on 'IssueType', fields ['project', 'name'] + db.create_unique('projects_issuetype', ['project_id', 'name']) + + # Adding model 'QuestionStatus' + db.create_table('projects_questionstatus', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('order', self.gf('django.db.models.fields.IntegerField')(default=10)), + ('is_closed', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='question_status')), + )) + db.send_create_signal('projects', ['QuestionStatus']) + + # Adding unique constraint on 'QuestionStatus', fields ['project', 'name'] + db.create_unique('projects_questionstatus', ['project_id', 'name']) + + + def backwards(self, orm): + # Removing unique constraint on 'QuestionStatus', fields ['project', 'name'] + db.delete_unique('projects_questionstatus', ['project_id', 'name']) + + # Removing unique constraint on 'IssueType', fields ['project', 'name'] + db.delete_unique('projects_issuetype', ['project_id', 'name']) + + # Removing unique constraint on 'IssueStatus', fields ['project', 'name'] + db.delete_unique('projects_issuestatus', ['project_id', 'name']) + + # Removing unique constraint on 'Severity', fields ['project', 'name'] + db.delete_unique('projects_severity', ['project_id', 'name']) + + # Removing unique constraint on 'Priority', fields ['project', 'name'] + db.delete_unique('projects_priority', ['project_id', 'name']) + + # Removing unique constraint on 'TaskStatus', fields ['project', 'name'] + db.delete_unique('projects_taskstatus', ['project_id', 'name']) + + # Removing unique constraint on 'Points', fields ['project', 'name'] + db.delete_unique('projects_points', ['project_id', 'name']) + + # Removing unique constraint on 'UserStoryStatus', fields ['project', 'name'] + db.delete_unique('projects_userstorystatus', ['project_id', 'name']) + + # Removing unique constraint on 'Membership', fields ['user', 'project'] + db.delete_unique('projects_membership', ['user_id', 'project_id']) + + # Deleting model 'Attachment' + db.delete_table('projects_attachment') + + # Deleting model 'Membership' + db.delete_table('projects_membership') + + # Deleting model 'Project' + db.delete_table('projects_project') + + # Deleting model 'UserStoryStatus' + db.delete_table('projects_userstorystatus') + + # Deleting model 'Points' + db.delete_table('projects_points') + + # Deleting model 'TaskStatus' + db.delete_table('projects_taskstatus') + + # Deleting model 'Priority' + db.delete_table('projects_priority') + + # Deleting model 'Severity' + db.delete_table('projects_severity') + + # Deleting model 'IssueStatus' + db.delete_table('projects_issuestatus') + + # Deleting model 'IssueType' + db.delete_table('projects_issuetype') + + # Deleting model 'QuestionStatus' + db.delete_table('projects_questionstatus') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType'}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'projects.attachment': { + 'Meta': {'ordering': "['project', 'created_date']", 'object_name': 'Attachment'}, + 'attached_file': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'change_attachments'"}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'attachments'"}) + }, + 'projects.issuestatus': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueStatus'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_statuses'"}) + }, + 'projects.issuetype': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'IssueType'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_types'"}) + }, + 'projects.membership': { + 'Meta': {'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)", 'object_name': 'Membership'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'memberships'"}) + }, + 'projects.points': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'points'"}), + 'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}) + }, + 'projects.priority': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Priority'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'priorities'"}) + }, + 'projects.project': { + 'Meta': {'ordering': "['name']", 'object_name': 'Project'}, + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'members': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['projects.Membership']", 'to': "orm['users.User']", 'symmetrical': 'False', 'related_name': "'projects'"}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}), + 'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'}) + }, + 'projects.questionstatus': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'QuestionStatus'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'question_status'"}) + }, + 'projects.severity': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Severity'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'severities'"}) + }, + 'projects.taskstatus': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'TaskStatus'}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'task_statuses'"}) + }, + 'projects.userstorystatus': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'us_statuses'"}) + }, + 'users.role': { + 'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'}, + 'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'roles'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}) + }, + 'users.user': { + 'Meta': {'ordering': "['username']", 'object_name': 'User'}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}), + 'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}), + 'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'blank': 'True', 'default': 'None', 'max_length': '200'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'}) + } + } + + complete_apps = ['projects'] \ No newline at end of file diff --git a/greenmine/projects/migrations/__init__.py b/greenmine/projects/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/greenmine/projects/milestones/migrations/0001_initial.py b/greenmine/projects/milestones/migrations/0001_initial.py new file mode 100644 index 00000000..6ec83463 --- /dev/null +++ b/greenmine/projects/milestones/migrations/0001_initial.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Milestone' + db.create_table('milestones_milestone', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('uuid', self.gf('django.db.models.fields.CharField')(blank=True, unique=True, max_length=40)), + ('name', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=200)), + ('slug', self.gf('django.db.models.fields.SlugField')(blank=True, unique=True, max_length=250)), + ('owner', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, to=orm['users.User'], related_name='owned_milestones', null=True)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='milestones', to=orm['projects.Project'])), + ('estimated_start', self.gf('django.db.models.fields.DateField')(blank=True, default=None, null=True)), + ('estimated_finish', self.gf('django.db.models.fields.DateField')(blank=True, default=None, null=True)), + ('created_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)), + ('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + ('closed', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('disponibility', self.gf('django.db.models.fields.FloatField')(blank=True, default=0.0, null=True)), + ('order', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)), + )) + db.send_create_signal('milestones', ['Milestone']) + + # Adding unique constraint on 'Milestone', fields ['name', 'project'] + db.create_unique('milestones_milestone', ['name', 'project_id']) + + + def backwards(self, orm): + # Removing unique constraint on 'Milestone', fields ['name', 'project'] + db.delete_unique('milestones_milestone', ['name', 'project_id']) + + # Deleting model 'Milestone' + db.delete_table('milestones_milestone') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'to': "orm['auth.Permission']"}) + }, + 'auth.permission': { + 'Meta': {'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'milestones.milestone': { + 'Meta': {'object_name': 'Milestone', 'unique_together': "(('name', 'project'),)", 'ordering': "['project', '-created_date']"}, + 'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'disponibility': ('django.db.models.fields.FloatField', [], {'blank': 'True', 'default': '0.0', 'null': 'True'}), + 'estimated_finish': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}), + 'estimated_start': ('django.db.models.fields.DateField', [], {'blank': 'True', 'default': 'None', 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}), + 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'to': "orm['users.User']", 'related_name': "'owned_milestones'", 'null': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'}), + 'uuid': ('django.db.models.fields.CharField', [], {'blank': 'True', 'unique': 'True', 'max_length': '40'}) + }, + 'projects.membership': { + 'Meta': {'object_name': 'Membership', 'unique_together': "(('user', 'project'),)", 'ordering': "['project', 'role', 'user']"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"}) + }, + 'projects.project': { + 'Meta': {'object_name': 'Project', 'ordering': "['name']"}, + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'symmetrical': 'False', 'through': "orm['projects.Membership']", 'to': "orm['users.User']"}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'total_milestones': ('django.db.models.fields.IntegerField', [], {'blank': 'True', 'default': '0', 'null': 'True'}), + 'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'blank': 'True', 'unique': 'True', 'max_length': '40'}) + }, + 'users.role': { + 'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']"}, + 'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'symmetrical': 'False', 'to': "orm['auth.Permission']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'unique': 'True', 'max_length': '250'}) + }, + 'users.user': { + 'Meta': {'object_name': 'User', 'ordering': "['username']"}, + 'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "'#669933'", 'max_length': '9'}), + 'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}), + 'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Group']", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'photo': ('django.db.models.fields.files.FileField', [], {'blank': 'True', 'null': 'True', 'max_length': '500'}), + 'token': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': 'None', 'null': 'True', 'max_length': '200'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'symmetrical': 'False', 'to': "orm['auth.Permission']", 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + } + } + + complete_apps = ['milestones'] \ No newline at end of file diff --git a/greenmine/projects/milestones/migrations/__init__.py b/greenmine/projects/milestones/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/greenmine/projects/tasks/migrations/0001_initial.py b/greenmine/projects/tasks/migrations/0001_initial.py new file mode 100644 index 00000000..5314464b --- /dev/null +++ b/greenmine/projects/tasks/migrations/0001_initial.py @@ -0,0 +1,226 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Task' + db.create_table('tasks_task', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, blank=True, max_length=40)), + ('user_story', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['userstories.UserStory'], null=True, blank=True)), + ('ref', self.gf('django.db.models.fields.BigIntegerField')(null=True, blank=True, db_index=True, default=None)), + ('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='owned_tasks', to=orm['users.User'], null=True, blank=True, default=None)), + ('status', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['projects.TaskStatus'])), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['projects.Project'])), + ('milestone', self.gf('django.db.models.fields.related.ForeignKey')(related_name='tasks', to=orm['milestones.Milestone'], null=True, blank=True, default=None)), + ('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('modified_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('finished_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), + ('subject', self.gf('django.db.models.fields.CharField')(max_length=500)), + ('description', self.gf('django.db.models.fields.TextField')(blank=True)), + ('assigned_to', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_storys_assigned_to_me', to=orm['users.User'], null=True, blank=True, default=None)), + ('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)), + ('is_iocaine', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('tasks', ['Task']) + + # Adding unique constraint on 'Task', fields ['ref', 'project'] + db.create_unique('tasks_task', ['ref', 'project_id']) + + # Adding M2M table for field watchers on 'Task' + m2m_table_name = db.shorten_name('tasks_task_watchers') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('task', models.ForeignKey(orm['tasks.task'], null=False)), + ('user', models.ForeignKey(orm['users.user'], null=False)) + )) + db.create_unique(m2m_table_name, ['task_id', 'user_id']) + + + def backwards(self, orm): + # Removing unique constraint on 'Task', fields ['ref', 'project'] + db.delete_unique('tasks_task', ['ref', 'project_id']) + + # Deleting model 'Task' + db.delete_table('tasks_task') + + # Removing M2M table for field watchers on 'Task' + db.delete_table(db.shorten_name('tasks_task_watchers')) + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType'}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'milestones.milestone': { + 'Meta': {'ordering': "['project', '-created_date']", 'unique_together': "(('name', 'project'),)", 'object_name': 'Milestone'}, + 'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': '0.0'}), + 'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}), + 'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}), + 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_milestones'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'}) + }, + 'projects.membership': { + 'Meta': {'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)", 'object_name': 'Membership'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"}) + }, + 'projects.points': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}), + 'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}) + }, + 'projects.project': { + 'Meta': {'ordering': "['name']", 'object_name': 'Project'}, + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'through': "orm['projects.Membership']", 'to': "orm['users.User']", 'symmetrical': 'False'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True', 'default': '0'}), + 'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'}) + }, + 'projects.taskstatus': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'TaskStatus'}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'task_statuses'", 'to': "orm['projects.Project']"}) + }, + 'projects.userstorystatus': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"}) + }, + 'tasks.task': { + 'Meta': {'ordering': "['project', 'created_date']", 'unique_together': "(('ref', 'project'),)", 'object_name': 'Task'}, + 'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_storys_assigned_to_me'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'default': 'None'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'finished_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_iocaine': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['milestones.Milestone']", 'null': 'True', 'blank': 'True', 'default': 'None'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_tasks'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'default': 'None'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['projects.Project']"}), + 'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True', 'db_index': 'True', 'default': 'None'}), + 'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['projects.TaskStatus']"}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'user_story': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'to': "orm['userstories.UserStory']", 'null': 'True', 'blank': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'}), + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'watched_tasks'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'symmetrical': 'False'}) + }, + 'users.role': { + 'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'}, + 'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'roles'", 'to': "orm['auth.Permission']", 'symmetrical': 'False'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'blank': 'True', 'max_length': '250'}) + }, + 'users.user': { + 'Meta': {'ordering': "['username']", 'object_name': 'User'}, + 'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '9', 'default': "'#669933'"}), + 'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '20', 'default': "''"}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}), + 'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Group']", 'blank': 'True', 'symmetrical': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'blank': 'True', 'max_length': '500'}), + 'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'blank': 'True', 'max_length': '200', 'default': 'None'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'user_set'", 'to': "orm['auth.Permission']", 'blank': 'True', 'symmetrical': 'False'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'userstories.rolepoints': { + 'Meta': {'object_name': 'RolePoints', 'unique_together': "(('user_story', 'role'),)"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'points': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['projects.Points']"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['users.Role']"}), + 'user_story': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['userstories.UserStory']"}) + }, + 'userstories.userstory': { + 'Meta': {'ordering': "['project', 'order']", 'unique_together': "(('ref', 'project'),)", 'object_name': 'UserStory'}, + 'client_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'finish_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'user_stories'", 'to': "orm['milestones.Milestone']", 'on_delete': 'models.SET_NULL', 'default': 'None'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_user_stories'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL'}), + 'points': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'userstories'", 'through': "orm['userstories.RolePoints']", 'to': "orm['projects.Points']", 'symmetrical': 'False'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'to': "orm['projects.Project']"}), + 'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True', 'db_index': 'True', 'default': 'None'}), + 'status': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'to': "orm['projects.UserStoryStatus']", 'null': 'True', 'blank': 'True', 'on_delete': 'models.SET_NULL'}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'team_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'blank': 'True', 'max_length': '40'}), + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'watched_us'", 'to': "orm['users.User']", 'null': 'True', 'blank': 'True', 'symmetrical': 'False'}) + } + } + + complete_apps = ['tasks'] \ No newline at end of file diff --git a/greenmine/projects/tasks/migrations/__init__.py b/greenmine/projects/tasks/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/greenmine/projects/userstories/migrations/0001_initial.py b/greenmine/projects/userstories/migrations/0001_initial.py new file mode 100644 index 00000000..8733b6ed --- /dev/null +++ b/greenmine/projects/userstories/migrations/0001_initial.py @@ -0,0 +1,215 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'RolePoints' + db.create_table('userstories_rolepoints', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user_story', self.gf('django.db.models.fields.related.ForeignKey')(related_name='role_points', to=orm['userstories.UserStory'])), + ('role', self.gf('django.db.models.fields.related.ForeignKey')(related_name='role_points', to=orm['users.Role'])), + ('points', self.gf('django.db.models.fields.related.ForeignKey')(related_name='role_points', to=orm['projects.Points'])), + )) + db.send_create_signal('userstories', ['RolePoints']) + + # Adding unique constraint on 'RolePoints', fields ['user_story', 'role'] + db.create_unique('userstories_rolepoints', ['user_story_id', 'role_id']) + + # Adding model 'UserStory' + db.create_table('userstories_userstory', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('uuid', self.gf('django.db.models.fields.CharField')(max_length=40, unique=True, blank=True)), + ('ref', self.gf('django.db.models.fields.BigIntegerField')(db_index=True, null=True, default=None, blank=True)), + ('milestone', self.gf('django.db.models.fields.related.ForeignKey')(null=True, blank=True, to=orm['milestones.Milestone'], default=None, related_name='user_stories', on_delete=models.SET_NULL)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(related_name='user_stories', to=orm['projects.Project'])), + ('owner', self.gf('django.db.models.fields.related.ForeignKey')(null=True, blank=True, related_name='owned_user_stories', to=orm['users.User'], on_delete=models.SET_NULL)), + ('status', self.gf('django.db.models.fields.related.ForeignKey')(null=True, blank=True, related_name='user_stories', to=orm['projects.UserStoryStatus'], on_delete=models.SET_NULL)), + ('order', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=100)), + ('created_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('modified_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now=True)), + ('finish_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), + ('subject', self.gf('django.db.models.fields.CharField')(max_length=500)), + ('description', self.gf('django.db.models.fields.TextField')(blank=True)), + ('client_requirement', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('team_requirement', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('tags', self.gf('picklefield.fields.PickledObjectField')(blank=True)), + )) + db.send_create_signal('userstories', ['UserStory']) + + # Adding unique constraint on 'UserStory', fields ['ref', 'project'] + db.create_unique('userstories_userstory', ['ref', 'project_id']) + + # Adding M2M table for field watchers on 'UserStory' + m2m_table_name = db.shorten_name('userstories_userstory_watchers') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('userstory', models.ForeignKey(orm['userstories.userstory'], null=False)), + ('user', models.ForeignKey(orm['users.user'], null=False)) + )) + db.create_unique(m2m_table_name, ['userstory_id', 'user_id']) + + + def backwards(self, orm): + # Removing unique constraint on 'UserStory', fields ['ref', 'project'] + db.delete_unique('userstories_userstory', ['ref', 'project_id']) + + # Removing unique constraint on 'RolePoints', fields ['user_story', 'role'] + db.delete_unique('userstories_rolepoints', ['user_story_id', 'role_id']) + + # Deleting model 'RolePoints' + db.delete_table('userstories_rolepoints') + + # Deleting model 'UserStory' + db.delete_table('userstories_userstory') + + # Removing M2M table for field watchers on 'UserStory' + db.delete_table(db.shorten_name('userstories_userstory_watchers')) + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'db_table': "'django_content_type'", 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType'}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'milestones.milestone': { + 'Meta': {'ordering': "['project', '-created_date']", 'unique_together': "(('name', 'project'),)", 'object_name': 'Milestone'}, + 'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'disponibility': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': '0.0', 'blank': 'True'}), + 'estimated_finish': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}), + 'estimated_start': ('django.db.models.fields.DateField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '200'}), + 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'owned_milestones'", 'to': "orm['users.User']"}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'milestones'", 'to': "orm['projects.Project']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'}) + }, + 'projects.membership': { + 'Meta': {'ordering': "['project', 'role', 'user']", 'unique_together': "(('user', 'project'),)", 'object_name': 'Membership'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['projects.Project']"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.Role']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'to': "orm['users.User']"}) + }, + 'projects.points': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'Points'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'points'", 'to': "orm['projects.Project']"}), + 'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None', 'blank': 'True'}) + }, + 'projects.project': { + 'Meta': {'ordering': "['name']", 'object_name': 'Project'}, + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'default': '1'}), + 'members': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['projects.Membership']", 'symmetrical': 'False', 'related_name': "'projects'", 'to': "orm['users.User']"}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_projects'", 'to': "orm['users.User']"}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'total_milestones': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'default': '0', 'blank': 'True'}), + 'total_story_points': ('django.db.models.fields.FloatField', [], {'null': 'True', 'default': 'None'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'}) + }, + 'projects.userstorystatus': { + 'Meta': {'ordering': "['project', 'name']", 'unique_together': "(('project', 'name'),)", 'object_name': 'UserStoryStatus'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'us_statuses'", 'to': "orm['projects.Project']"}) + }, + 'users.role': { + 'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'}, + 'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'roles'", 'to': "orm['auth.Permission']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}) + }, + 'users.user': { + 'Meta': {'ordering': "['username']", 'object_name': 'User'}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'default': "'#669933'", 'blank': 'True'}), + 'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "''", 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'related_name': "'user_set'", 'to': "orm['auth.Group']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'photo': ('django.db.models.fields.files.FileField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'token': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'default': 'None', 'blank': 'True'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'symmetrical': 'False', 'related_name': "'user_set'", 'to': "orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'}) + }, + 'userstories.rolepoints': { + 'Meta': {'unique_together': "(('user_story', 'role'),)", 'object_name': 'RolePoints'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'points': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['projects.Points']"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['users.Role']"}), + 'user_story': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'role_points'", 'to': "orm['userstories.UserStory']"}) + }, + 'userstories.userstory': { + 'Meta': {'ordering': "['project', 'order']", 'unique_together': "(('ref', 'project'),)", 'object_name': 'UserStory'}, + 'client_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'finish_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'to': "orm['milestones.Milestone']", 'default': 'None', 'related_name': "'user_stories'", 'on_delete': 'models.SET_NULL'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}), + 'order': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '100'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'owned_user_stories'", 'to': "orm['users.User']", 'on_delete': 'models.SET_NULL'}), + 'points': ('django.db.models.fields.related.ManyToManyField', [], {'through': "orm['userstories.RolePoints']", 'symmetrical': 'False', 'related_name': "'userstories'", 'to': "orm['projects.Points']"}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_stories'", 'to': "orm['projects.Project']"}), + 'ref': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True', 'null': 'True', 'default': 'None', 'blank': 'True'}), + 'status': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'blank': 'True', 'related_name': "'user_stories'", 'to': "orm['projects.UserStoryStatus']", 'on_delete': 'models.SET_NULL'}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'team_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '40', 'unique': 'True', 'blank': 'True'}), + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'null': 'True', 'blank': 'True', 'symmetrical': 'False', 'related_name': "'watched_us'", 'to': "orm['users.User']"}) + } + } + + complete_apps = ['userstories'] \ No newline at end of file diff --git a/greenmine/projects/userstories/migrations/__init__.py b/greenmine/projects/userstories/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/greenmine/projects/wiki/migrations/0001_initial.py b/greenmine/projects/wiki/migrations/0001_initial.py new file mode 100644 index 00000000..66563dd0 --- /dev/null +++ b/greenmine/projects/wiki/migrations/0001_initial.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'WikiPage' + db.create_table('wiki_wikipage', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['projects.Project'], related_name='wiki_pages')), + ('slug', self.gf('django.db.models.fields.SlugField')(max_length=500)), + ('content', self.gf('django.db.models.fields.TextField')(blank=True)), + ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['users.User'], null=True, related_name='owned_wiki_pages', blank=True)), + ('created_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now_add=True)), + ('modified_date', self.gf('django.db.models.fields.DateTimeField')(blank=True, auto_now=True)), + )) + db.send_create_signal('wiki', ['WikiPage']) + + # Adding unique constraint on 'WikiPage', fields ['project', 'slug'] + db.create_unique('wiki_wikipage', ['project_id', 'slug']) + + # Adding M2M table for field watchers on 'WikiPage' + m2m_table_name = db.shorten_name('wiki_wikipage_watchers') + db.create_table(m2m_table_name, ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('wikipage', models.ForeignKey(orm['wiki.wikipage'], null=False)), + ('user', models.ForeignKey(orm['users.user'], null=False)) + )) + db.create_unique(m2m_table_name, ['wikipage_id', 'user_id']) + + + def backwards(self, orm): + # Removing unique constraint on 'WikiPage', fields ['project', 'slug'] + db.delete_unique('wiki_wikipage', ['project_id', 'slug']) + + # Deleting model 'WikiPage' + db.delete_table('wiki_wikipage') + + # Removing M2M table for field watchers on 'WikiPage' + db.delete_table(db.shorten_name('wiki_wikipage_watchers')) + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)"}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'object_name': 'ContentType', 'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'projects.membership': { + 'Meta': {'ordering': "['project', 'role', 'user']", 'object_name': 'Membership', 'unique_together': "(('user', 'project'),)"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'memberships'"}), + 'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'memberships'"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'memberships'"}) + }, + 'projects.project': { + 'Meta': {'ordering': "['name']", 'object_name': 'Project'}, + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_issue_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'last_task_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'last_us_ref': ('django.db.models.fields.BigIntegerField', [], {'default': '1', 'null': 'True'}), + 'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'related_name': "'projects'", 'through': "orm['projects.Membership']"}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '250', 'unique': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_projects'"}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'max_length': '250', 'unique': 'True'}), + 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'total_milestones': ('django.db.models.fields.IntegerField', [], {'blank': 'True', 'default': '0', 'null': 'True'}), + 'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '40', 'unique': 'True'}) + }, + 'users.role': { + 'Meta': {'ordering': "['order', 'slug']", 'object_name': 'Role'}, + 'computable': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'roles'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'blank': 'True', 'max_length': '250', 'unique': 'True'}) + }, + 'users.user': { + 'Meta': {'ordering': "['username']", 'object_name': 'User'}, + 'color': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "'#669933'", 'max_length': '9'}), + 'colorize_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'default_language': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': "''", 'max_length': '20'}), + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}), + 'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'photo': ('django.db.models.fields.files.FileField', [], {'blank': 'True', 'max_length': '500', 'null': 'True'}), + 'token': ('django.db.models.fields.CharField', [], {'blank': 'True', 'default': 'None', 'max_length': '200', 'null': 'True'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'}) + }, + 'wiki.wikipage': { + 'Meta': {'ordering': "['project', 'slug']", 'object_name': 'WikiPage', 'unique_together': "(('project', 'slug'),)"}, + 'content': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'null': 'True', 'related_name': "'owned_wiki_pages'", 'blank': 'True'}), + 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'wiki_pages'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '500'}), + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'related_name': "'watched_wiki_pages'", 'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['wiki'] \ No newline at end of file diff --git a/greenmine/projects/wiki/migrations/__init__.py b/greenmine/projects/wiki/migrations/__init__.py new file mode 100644 index 00000000..e69de29b