diff --git a/taiga/projects/userstories/migrations/0010_auto__add_field_userstory_is_archived.py b/taiga/projects/userstories/migrations/0014_auto__add_field_userstory_is_archived.py similarity index 70% rename from taiga/projects/userstories/migrations/0010_auto__add_field_userstory_is_archived.py rename to taiga/projects/userstories/migrations/0014_auto__add_field_userstory_is_archived.py index c1f3ec15..722686b2 100644 --- a/taiga/projects/userstories/migrations/0010_auto__add_field_userstory_is_archived.py +++ b/taiga/projects/userstories/migrations/0014_auto__add_field_userstory_is_archived.py @@ -21,14 +21,14 @@ class Migration(SchemaMigration): models = { 'auth.permission': { - 'Meta': {'object_name': 'Permission', 'unique_together': "(('content_type', 'codename'),)", 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"}, + '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', 'unique_together': "(('app_label', 'model'),)", 'ordering': "('name',)", 'db_table': "'django_content_type'"}, + 'Meta': {'db_table': "'django_content_type'", 'object_name': 'ContentType', 'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)"}, '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'}), @@ -36,46 +36,46 @@ class Migration(SchemaMigration): }, 'issues.issue': { 'Meta': {'object_name': 'Issue', 'ordering': "['project', 'created_date']"}, - 'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'null': 'True', 'to': "orm['users.User']", 'related_name': "'issues_assigned_to_me'", 'blank': 'True'}), - 'blocked_note': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'blank': 'True', 'null': 'True', 'related_name': "'issues_assigned_to_me'"}), + 'blocked_note': ('django.db.models.fields.TextField', [], {'blank': 'True', 'default': "''"}), + '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'}), 'is_blocked': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'null': 'True', 'to': "orm['milestones.Milestone']", 'related_name': "'issues'", 'blank': 'True'}), + 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['milestones.Milestone']", 'default': 'None', 'blank': 'True', 'null': 'True', 'related_name': "'issues'"}), 'modified_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'null': 'True', 'to': "orm['users.User']", 'related_name': "'owned_issues'", 'blank': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'blank': 'True', 'null': 'True', 'related_name': "'owned_issues'"}), 'priority': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Priority']", 'related_name': "'issues'"}), 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issues'"}), - 'ref': ('django.db.models.fields.BigIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True', 'db_index': 'True'}), + 'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'db_index': 'True', 'blank': 'True', 'default': 'None'}), 'severity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Severity']", 'related_name': "'issues'"}), 'status': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.IssueStatus']", 'related_name': "'issues'"}), 'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}), - 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'tags': ('djorm_pgarray.fields.TextArrayField', [], {'dbtype': "'text'", 'null': 'True', 'blank': 'True', 'default': 'None'}), 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.IssueType']", 'related_name': "'issues'"}), 'version': ('django.db.models.fields.IntegerField', [], {'default': '1'}), - 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'null': 'True', 'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'related_name': "'issues_issue+'"}) + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'null': 'True', 'related_name': "'issues_issue+'"}) }, 'milestones.milestone': { - 'Meta': {'object_name': 'Milestone', 'unique_together': "(('name', 'project'),)", 'ordering': "['project', 'created_date']"}, + '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', [], {'auto_now_add': 'True', 'blank': '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'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': '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', [], {'max_length': '200', 'db_index': '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', 'to': "orm['users.User']", 'related_name': "'owned_milestones'", 'blank': 'True'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'blank': 'True', 'null': 'True', 'related_name': "'owned_milestones'"}), 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'milestones'"}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}), - 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'null': 'True', 'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'related_name': "'milestones_milestone+'"}) + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}), + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'null': 'True', 'related_name': "'milestones_milestone+'"}) }, 'projects.issuestatus': { - 'Meta': {'object_name': 'IssueStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"}, - 'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}), + 'Meta': {'object_name': 'IssueStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"}, + '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'}), @@ -83,34 +83,34 @@ class Migration(SchemaMigration): 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'issue_statuses'"}) }, 'projects.issuetype': { - 'Meta': {'object_name': 'IssueType', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"}, - 'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}), + 'Meta': {'object_name': 'IssueType', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}), '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': {'object_name': 'Membership', 'unique_together': "(('user', 'project'),)", 'ordering': "['project', 'role']"}, - 'created_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now_add': 'True', 'blank': 'True'}), - 'email': ('django.db.models.fields.EmailField', [], {'default': 'None', 'null': 'True', 'max_length': '255', 'blank': 'True'}), + 'Meta': {'object_name': 'Membership', 'ordering': "['project', 'role']", 'unique_together': "(('user', 'project'),)"}, + 'created_at': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True', 'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'null': 'True', 'max_length': '255', 'blank': 'True', 'default': 'None'}), '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'"}), - 'token': ('django.db.models.fields.CharField', [], {'default': 'None', 'null': 'True', 'max_length': '60', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'null': 'True', 'to': "orm['users.User']", 'related_name': "'memberships'", 'blank': 'True'}) + 'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '60', 'blank': 'True', 'default': 'None'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'blank': 'True', 'null': 'True', 'related_name': "'memberships'"}) }, 'projects.points': { - 'Meta': {'object_name': 'Points', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"}, + 'Meta': {'object_name': 'Points', 'ordering': "['project', 'order', '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', [], {'to': "orm['projects.Project']", 'related_name': "'points'"}), - 'value': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) + 'value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}) }, 'projects.priority': { - 'Meta': {'object_name': 'Priority', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"}, - 'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}), + 'Meta': {'object_name': 'Priority', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}), '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'}), @@ -118,36 +118,36 @@ class Migration(SchemaMigration): }, 'projects.project': { 'Meta': {'object_name': 'Project', 'ordering': "['name']"}, - 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'creation_template': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'null': 'True', 'to': "orm['projects.ProjectTemplate']", 'related_name': "'projects'", 'blank': 'True'}), - 'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'unique': 'True', 'to': "orm['projects.IssueStatus']", 'related_name': "'+'"}), - 'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'unique': 'True', 'to': "orm['projects.IssueType']", 'related_name': "'+'"}), - 'default_points': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'unique': 'True', 'to': "orm['projects.Points']", 'related_name': "'+'"}), - 'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'unique': 'True', 'to': "orm['projects.Priority']", 'related_name': "'+'"}), - 'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'unique': 'True', 'to': "orm['projects.Severity']", 'related_name': "'+'"}), - 'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'unique': 'True', 'to': "orm['projects.TaskStatus']", 'related_name': "'+'"}), - 'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'unique': 'True', 'to': "orm['projects.UserStoryStatus']", 'related_name': "'+'"}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), + 'creation_template': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.ProjectTemplate']", 'default': 'None', 'blank': 'True', 'null': 'True', 'related_name': "'projects'"}), + 'default_issue_status': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['projects.IssueStatus']", 'null': 'True', 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'default_issue_type': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['projects.IssueType']", 'null': 'True', 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'default_points': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['projects.Points']", 'null': 'True', 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'default_priority': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['projects.Priority']", 'null': 'True', 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'default_severity': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['projects.Severity']", 'null': 'True', 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'default_task_status': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['projects.TaskStatus']", 'null': 'True', 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'default_us_status': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['projects.UserStoryStatus']", 'null': 'True', 'unique': 'True', 'related_name': "'+'", 'on_delete': 'models.SET_NULL', 'blank': 'True'}), 'description': ('django.db.models.fields.TextField', [], {}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'is_backlog_activated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 'is_issues_activated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 'is_kanban_activated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'is_wiki_activated': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'members': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'projects'", 'to': "orm['users.User']", 'through': "orm['projects.Membership']", 'symmetrical': 'False'}), + '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', [], {'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', [], {'default': '0', 'null': 'True', 'blank': 'True'}), - 'total_story_points': ('django.db.models.fields.FloatField', [], {'default': 'None', 'null': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}), + 'tags': ('djorm_pgarray.fields.TextArrayField', [], {'dbtype': "'text'", 'null': 'True', 'blank': 'True', 'default': 'None'}), + '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'}), 'videoconferences': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '250', 'blank': 'True'}), 'videoconferences_salt': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '250', 'blank': 'True'}) }, 'projects.projecttemplate': { 'Meta': {'object_name': 'ProjectTemplate', 'ordering': "['name']"}, - 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), 'default_options': ('django_pgjson.fields.JsonField', [], {}), 'default_owner_role': ('django.db.models.fields.CharField', [], {'max_length': '50'}), 'description': ('django.db.models.fields.TextField', [], {}), @@ -164,23 +164,23 @@ class Migration(SchemaMigration): 'priorities': ('django_pgjson.fields.JsonField', [], {}), 'roles': ('django_pgjson.fields.JsonField', [], {}), 'severities': ('django_pgjson.fields.JsonField', [], {}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'unique': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True', 'unique': 'True'}), 'task_statuses': ('django_pgjson.fields.JsonField', [], {}), 'us_statuses': ('django_pgjson.fields.JsonField', [], {}), 'videoconferences': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '250', 'blank': 'True'}), 'videoconferences_salt': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '250', 'blank': 'True'}) }, 'projects.severity': { - 'Meta': {'object_name': 'Severity', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"}, - 'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}), + 'Meta': {'object_name': 'Severity', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"}, + 'color': ('django.db.models.fields.CharField', [], {'max_length': '20', 'default': "'#999999'"}), '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': {'object_name': 'TaskStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"}, - 'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}), + 'Meta': {'object_name': 'TaskStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"}, + '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'}), @@ -188,33 +188,33 @@ class Migration(SchemaMigration): 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'task_statuses'"}) }, 'projects.userstorystatus': { - 'Meta': {'object_name': 'UserStoryStatus', 'unique_together': "(('project', 'name'),)", 'ordering': "['project', 'order', 'name']"}, - 'color': ('django.db.models.fields.CharField', [], {'default': "'#999999'", 'max_length': '20'}), + 'Meta': {'object_name': 'UserStoryStatus', 'ordering': "['project', 'order', 'name']", 'unique_together': "(('project', 'name'),)"}, + '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': "'us_statuses'"}), - 'wip_limit': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) + 'wip_limit': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True', 'default': 'None'}) }, 'users.role': { - 'Meta': {'object_name': 'Role', 'unique_together': "(('slug', 'project'),)", 'ordering': "['order', 'slug']"}, + 'Meta': {'object_name': 'Role', 'ordering': "['order', 'slug']", 'unique_together': "(('slug', 'project'),)"}, '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'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'related_name': "'roles'"}), 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'roles'"}), 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '250', 'blank': 'True'}) }, 'users.user': { 'Meta': {'object_name': 'User', 'ordering': "['username']"}, - 'bio': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - 'color': ('django.db.models.fields.CharField', [], {'default': "'#ed5ba9'", 'max_length': '9', 'blank': 'True'}), + 'bio': ('django.db.models.fields.TextField', [], {'blank': 'True', 'default': "''"}), + 'color': ('django.db.models.fields.CharField', [], {'max_length': '9', 'blank': 'True', 'default': "'#15e711'"}), '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'}), + 'default_language': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True', 'default': "''"}), + 'default_timezone': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True', 'default': "''"}), 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 'full_name': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}), 'github_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), @@ -224,11 +224,11 @@ class Migration(SchemaMigration): 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'photo': ('django.db.models.fields.files.FileField', [], {'null': 'True', 'max_length': '500', 'blank': 'True'}), - 'token': ('django.db.models.fields.CharField', [], {'default': 'None', 'null': 'True', 'max_length': '200', 'blank': 'True'}), + 'token': ('django.db.models.fields.CharField', [], {'null': 'True', 'max_length': '200', 'blank': 'True', 'default': 'None'}), 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'}) }, 'userstories.rolepoints': { - 'Meta': {'object_name': 'RolePoints', 'unique_together': "(('user_story', 'role'),)", 'ordering': "['user_story', 'role']"}, + 'Meta': {'object_name': 'RolePoints', 'ordering': "['user_story', 'role']", 'unique_together': "(('user_story', 'role'),)"}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'points': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Points']", 'related_name': "'role_points'"}), 'role': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.Role']", 'related_name': "'role_points'"}), @@ -236,30 +236,30 @@ class Migration(SchemaMigration): }, 'userstories.userstory': { 'Meta': {'object_name': 'UserStory', 'ordering': "['project', 'order', 'ref']"}, - 'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'null': 'True', 'to': "orm['users.User']", 'related_name': "'userstories_assigned_to_me'", 'blank': 'True'}), - 'blocked_note': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'assigned_to': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'default': 'None', 'blank': 'True', 'null': 'True', 'related_name': "'userstories_assigned_to_me'"}), + 'blocked_note': ('django.db.models.fields.TextField', [], {'blank': 'True', 'default': "''"}), 'client_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'created_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'created_date': ('django.db.models.fields.DateTimeField', [], {'blank': 'True', 'auto_now_add': 'True'}), 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'finish_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'generated_from_issue': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'to': "orm['issues.Issue']", 'related_name': "'generated_user_stories'", 'blank': 'True'}), + 'generated_from_issue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['issues.Issue']", 'blank': 'True', 'null': 'True', 'related_name': "'generated_user_stories'"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'is_archived': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'is_blocked': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'is_closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True', 'to': "orm['milestones.Milestone']", 'related_name': "'user_stories'"}), + 'milestone': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['milestones.Milestone']", 'null': 'True', 'related_name': "'user_stories'", 'default': 'None', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), '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', [], {'null': 'True', 'to': "orm['users.User']", 'on_delete': 'models.SET_NULL', 'related_name': "'owned_user_stories'", 'blank': 'True'}), - 'points': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'userstories'", 'to': "orm['projects.Points']", 'through': "orm['userstories.RolePoints']", 'symmetrical': 'False'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['users.User']", 'related_name': "'owned_user_stories'", 'blank': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL'}), + 'points': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['projects.Points']", 'symmetrical': 'False', 'through': "orm['userstories.RolePoints']", 'related_name': "'userstories'"}), 'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.Project']", 'related_name': "'user_stories'"}), - 'ref': ('django.db.models.fields.BigIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True', 'db_index': 'True'}), - 'status': ('django.db.models.fields.related.ForeignKey', [], {'null': 'True', 'to': "orm['projects.UserStoryStatus']", 'on_delete': 'models.SET_NULL', 'related_name': "'user_stories'", 'blank': 'True'}), + 'ref': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'db_index': 'True', 'blank': 'True', 'default': 'None'}), + 'status': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['projects.UserStoryStatus']", 'related_name': "'user_stories'", 'blank': 'True', 'null': 'True', 'on_delete': 'models.SET_NULL'}), 'subject': ('django.db.models.fields.CharField', [], {'max_length': '500'}), - 'tags': ('picklefield.fields.PickledObjectField', [], {'blank': 'True'}), + 'tags': ('djorm_pgarray.fields.TextArrayField', [], {'dbtype': "'text'", 'null': 'True', 'blank': 'True', 'default': 'None'}), 'team_requirement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'version': ('django.db.models.fields.IntegerField', [], {'default': '1'}), - 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'null': 'True', 'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'related_name': "'userstories_userstory+'"}) + 'watchers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['users.User']", 'symmetrical': 'False', 'blank': 'True', 'null': 'True', 'related_name': "'userstories_userstory+'"}) } } diff --git a/tests/integration/test_tags.py b/tests/integration/test_tags.py index 3b8c0831..987d26d8 100644 --- a/tests/integration/test_tags.py +++ b/tests/integration/test_tags.py @@ -14,6 +14,7 @@ def test(): tags1 = TaggedModel.objects.create(tags=["foo", "bar"]) tags2 = TaggedModel.objects.create(tags=["foo"]) + assert list(tags.filter(TaggedModel, contains=["foo"])) == [tags1, tags2] assert list(tags.filter(TaggedModel, contained_by=["foo"])) == [tags2] assert list(tags.filter(TaggedModel, overlap=["bar"])) == [tags1]