Refactor removing field

remotes/origin/3.4.0rc
Álex Hermida 2018-06-14 15:41:22 +02:00 committed by Alex Hermida
parent ac1728de64
commit e5297cb801
7 changed files with 11 additions and 81 deletions

View File

@ -62,7 +62,6 @@ class UserStoryStatusExportSerializer(RelatedExportSerializer):
class UserStoryDueDateExportSerializer(RelatedExportSerializer): class UserStoryDueDateExportSerializer(RelatedExportSerializer):
name = Field() name = Field()
slug = Field()
order = Field() order = Field()
by_default = Field() by_default = Field()
color = Field() color = Field()
@ -87,7 +86,6 @@ class TaskStatusExportSerializer(RelatedExportSerializer):
class TaskDueDateExportSerializer(RelatedExportSerializer): class TaskDueDateExportSerializer(RelatedExportSerializer):
name = Field() name = Field()
slug = Field()
order = Field() order = Field()
by_default = Field() by_default = Field()
color = Field() color = Field()
@ -104,7 +102,6 @@ class IssueStatusExportSerializer(RelatedExportSerializer):
class IssueDueDateExportSerializer(RelatedExportSerializer): class IssueDueDateExportSerializer(RelatedExportSerializer):
name = Field() name = Field()
slug = Field()
order = Field() order = Field()
by_default = Field() by_default = Field()
color = Field() color = Field()

View File

@ -626,7 +626,6 @@ class UserStoryDueDateViewSet(BlockedByProjectMixin, ModelCrudViewSet):
for us_duedate in project_template.us_duedates: for us_duedate in project_template.us_duedates:
models.UserStoryDueDate.objects.create( models.UserStoryDueDate.objects.create(
name=us_duedate["name"], name=us_duedate["name"],
slug=us_duedate["slug"],
by_default=us_duedate["by_default"], by_default=us_duedate["by_default"],
color=us_duedate["color"], color=us_duedate["color"],
days_to_due=us_duedate["days_to_due"], days_to_due=us_duedate["days_to_due"],
@ -703,7 +702,6 @@ class TaskDueDateViewSet(BlockedByProjectMixin, ModelCrudViewSet):
for task_duedate in project_template.task_duedates: for task_duedate in project_template.task_duedates:
models.TaskDueDate.objects.create( models.TaskDueDate.objects.create(
name=task_duedate["name"], name=task_duedate["name"],
slug=task_duedate["slug"],
by_default=task_duedate["by_default"], by_default=task_duedate["by_default"],
color=task_duedate["color"], color=task_duedate["color"],
days_to_due=task_duedate["days_to_due"], days_to_due=task_duedate["days_to_due"],
@ -844,7 +842,6 @@ class IssueDueDateViewSet(BlockedByProjectMixin, ModelCrudViewSet):
for issue_duedate in project_template.issue_duedates: for issue_duedate in project_template.issue_duedates:
models.IssueDueDate.objects.create( models.IssueDueDate.objects.create(
name=issue_duedate["name"], name=issue_duedate["name"],
slug=issue_duedate["slug"],
by_default=issue_duedate["by_default"], by_default=issue_duedate["by_default"],
color=issue_duedate["color"], color=issue_duedate["color"],
days_to_due=issue_duedate["days_to_due"], days_to_due=issue_duedate["days_to_due"],

View File

@ -21,7 +21,6 @@
"points": "?", "points": "?",
"priority": "Normal", "priority": "Normal",
"us_status": "New", "us_status": "New",
"us_duedate": "Default",
"issue_type": "Bug", "issue_type": "Bug",
"epic_status": "New", "epic_status": "New",
"severity": "Normal", "severity": "Normal",
@ -123,7 +122,6 @@
], ],
"us_duedates": [ "us_duedates": [
{ {
"slug": "default",
"name": "Default", "name": "Default",
"order": 1, "order": 1,
"by_default": true, "by_default": true,
@ -131,7 +129,6 @@
"days_to_due": null "days_to_due": null
}, },
{ {
"slug": "due-soon",
"name": "Due soon", "name": "Due soon",
"order": 2, "order": 2,
"by_default": false, "by_default": false,
@ -139,7 +136,6 @@
"days_to_due": 14 "days_to_due": 14
}, },
{ {
"slug": "past-due",
"name": "Past due", "name": "Past due",
"order": 3, "order": 3,
"by_default": false, "by_default": false,
@ -248,7 +244,6 @@
], ],
"task_duedates": [ "task_duedates": [
{ {
"slug": "default",
"name": "Default", "name": "Default",
"order": 1, "order": 1,
"by_default": true, "by_default": true,
@ -256,7 +251,6 @@
"days_to_due": null "days_to_due": null
}, },
{ {
"slug": "due-soon",
"name": "Due soon", "name": "Due soon",
"order": 2, "order": 2,
"by_default": false, "by_default": false,
@ -264,7 +258,6 @@
"days_to_due": 14 "days_to_due": 14
}, },
{ {
"slug": "past-due",
"name": "Past due", "name": "Past due",
"order": 3, "order": 3,
"by_default": false, "by_default": false,
@ -342,7 +335,6 @@
], ],
"issue_duedates": [ "issue_duedates": [
{ {
"slug": "default",
"name": "Default", "name": "Default",
"order": 1, "order": 1,
"by_default": true, "by_default": true,
@ -350,7 +342,6 @@
"days_to_due": null "days_to_due": null
}, },
{ {
"slug": "due-soon",
"name": "Due soon", "name": "Due soon",
"order": 2, "order": 2,
"by_default": false, "by_default": false,
@ -358,7 +349,6 @@
"days_to_due": 14 "days_to_due": 14
}, },
{ {
"slug": "past-due",
"name": "Past due", "name": "Past due",
"order": 3, "order": 3,
"by_default": false, "by_default": false,
@ -773,7 +763,6 @@
], ],
"us_duedates": [ "us_duedates": [
{ {
"slug": "default",
"name": "Default", "name": "Default",
"order": 1, "order": 1,
"by_default": true, "by_default": true,
@ -781,7 +770,6 @@
"days_to_due": null "days_to_due": null
}, },
{ {
"slug": "due-soon",
"name": "Due soon", "name": "Due soon",
"order": 2, "order": 2,
"by_default": false, "by_default": false,
@ -789,7 +777,6 @@
"days_to_due": 14 "days_to_due": 14
}, },
{ {
"slug": "past-due",
"name": "Past due", "name": "Past due",
"order": 3, "order": 3,
"by_default": false, "by_default": false,
@ -898,7 +885,6 @@
], ],
"task_duedates": [ "task_duedates": [
{ {
"slug": "default",
"name": "Default", "name": "Default",
"order": 1, "order": 1,
"by_default": true, "by_default": true,
@ -906,7 +892,6 @@
"days_to_due": null "days_to_due": null
}, },
{ {
"slug": "due-soon",
"name": "Due soon", "name": "Due soon",
"order": 2, "order": 2,
"by_default": false, "by_default": false,
@ -914,7 +899,6 @@
"days_to_due": 14 "days_to_due": 14
}, },
{ {
"slug": "past-due",
"name": "Past due", "name": "Past due",
"order": 3, "order": 3,
"by_default": false, "by_default": false,
@ -992,7 +976,6 @@
], ],
"issue_duedates": [ "issue_duedates": [
{ {
"slug": "default",
"name": "Default", "name": "Default",
"order": 1, "order": 1,
"by_default": true, "by_default": true,
@ -1000,7 +983,6 @@
"days_to_due": null "days_to_due": null
}, },
{ {
"slug": "due-soon",
"name": "Due soon", "name": "Due soon",
"order": 2, "order": 2,
"by_default": false, "by_default": false,
@ -1008,7 +990,6 @@
"days_to_due": 14 "days_to_due": 14
}, },
{ {
"slug": "past-due",
"name": "Past due", "name": "Past due",
"order": 3, "order": 3,
"by_default": false, "by_default": false,

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.11.2 on 2018-06-14 07:21 # Generated by Django 1.11.2 on 2018-06-14 13:38
from __future__ import unicode_literals from __future__ import unicode_literals
import django.core.serializers.json import django.core.serializers.json
@ -20,7 +20,6 @@ class Migration(migrations.Migration):
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, verbose_name='name')), ('name', models.CharField(max_length=255, verbose_name='name')),
('slug', models.SlugField(blank=True, max_length=255, verbose_name='slug')),
('order', models.IntegerField(default=10, verbose_name='order')), ('order', models.IntegerField(default=10, verbose_name='order')),
('by_default', models.BooleanField(default=False, verbose_name='by default')), ('by_default', models.BooleanField(default=False, verbose_name='by default')),
('color', models.CharField(default='#999999', max_length=20, verbose_name='color')), ('color', models.CharField(default='#999999', max_length=20, verbose_name='color')),
@ -38,7 +37,6 @@ class Migration(migrations.Migration):
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, verbose_name='name')), ('name', models.CharField(max_length=255, verbose_name='name')),
('slug', models.SlugField(blank=True, max_length=255, verbose_name='slug')),
('order', models.IntegerField(default=10, verbose_name='order')), ('order', models.IntegerField(default=10, verbose_name='order')),
('by_default', models.BooleanField(default=False, verbose_name='by default')), ('by_default', models.BooleanField(default=False, verbose_name='by default')),
('color', models.CharField(default='#999999', max_length=20, verbose_name='color')), ('color', models.CharField(default='#999999', max_length=20, verbose_name='color')),
@ -56,7 +54,6 @@ class Migration(migrations.Migration):
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, verbose_name='name')), ('name', models.CharField(max_length=255, verbose_name='name')),
('slug', models.SlugField(blank=True, max_length=255, verbose_name='slug')),
('order', models.IntegerField(default=10, verbose_name='order')), ('order', models.IntegerField(default=10, verbose_name='order')),
('by_default', models.BooleanField(default=False, verbose_name='by default')), ('by_default', models.BooleanField(default=False, verbose_name='by default')),
('color', models.CharField(default='#999999', max_length=20, verbose_name='color')), ('color', models.CharField(default='#999999', max_length=20, verbose_name='color')),
@ -84,16 +81,20 @@ class Migration(migrations.Migration):
name='us_duedates', name='us_duedates',
field=taiga.base.db.models.fields.json.JSONField(blank=True, encoder=django.core.serializers.json.DjangoJSONEncoder, null=True, verbose_name='us duedates'), field=taiga.base.db.models.fields.json.JSONField(blank=True, encoder=django.core.serializers.json.DjangoJSONEncoder, null=True, verbose_name='us duedates'),
), ),
migrations.AlterUniqueTogether(
name='issuestatus',
unique_together=set([('project', 'name')]),
),
migrations.AlterUniqueTogether( migrations.AlterUniqueTogether(
name='userstoryduedate', name='userstoryduedate',
unique_together=set([('project', 'slug'), ('project', 'name')]), unique_together=set([('project', 'name')]),
), ),
migrations.AlterUniqueTogether( migrations.AlterUniqueTogether(
name='taskduedate', name='taskduedate',
unique_together=set([('project', 'slug'), ('project', 'name')]), unique_together=set([('project', 'name')]),
), ),
migrations.AlterUniqueTogether( migrations.AlterUniqueTogether(
name='issueduedate', name='issueduedate',
unique_together=set([('project', 'slug'), ('project', 'name')]), unique_together=set([('project', 'name')]),
), ),
] ]

View File

@ -608,8 +608,6 @@ class Points(models.Model):
class UserStoryDueDate(models.Model): class UserStoryDueDate(models.Model):
name = models.CharField(max_length=255, null=False, blank=False, name = models.CharField(max_length=255, null=False, blank=False,
verbose_name=_("name")) verbose_name=_("name"))
slug = models.SlugField(max_length=255, null=False, blank=True,
verbose_name=_("slug"))
order = models.IntegerField(default=10, null=False, blank=False, order = models.IntegerField(default=10, null=False, blank=False,
verbose_name=_("order")) verbose_name=_("order"))
by_default = models.BooleanField(default=False, null=False, blank=True, by_default = models.BooleanField(default=False, null=False, blank=True,
@ -625,19 +623,11 @@ class UserStoryDueDate(models.Model):
verbose_name = "user story due date" verbose_name = "user story due date"
verbose_name_plural = "user story due dates" verbose_name_plural = "user story due dates"
ordering = ["project", "order", "name"] ordering = ["project", "order", "name"]
unique_together = (("project", "name"), ("project", "slug")) unique_together = ("project", "name")
def __str__(self): def __str__(self):
return self.name return self.name
def save(self, *args, **kwargs):
qs = self.project.us_duedates
if self.id:
qs = qs.exclude(id=self.id)
self.slug = slugify_uniquely_for_queryset(self.name, qs)
return super().save(*args, **kwargs)
# Tasks common models # Tasks common models
class TaskStatus(models.Model): class TaskStatus(models.Model):
@ -675,8 +665,6 @@ class TaskStatus(models.Model):
class TaskDueDate(models.Model): class TaskDueDate(models.Model):
name = models.CharField(max_length=255, null=False, blank=False, name = models.CharField(max_length=255, null=False, blank=False,
verbose_name=_("name")) verbose_name=_("name"))
slug = models.SlugField(max_length=255, null=False, blank=True,
verbose_name=_("slug"))
order = models.IntegerField(default=10, null=False, blank=False, order = models.IntegerField(default=10, null=False, blank=False,
verbose_name=_("order")) verbose_name=_("order"))
by_default = models.BooleanField(default=False, null=False, blank=True, by_default = models.BooleanField(default=False, null=False, blank=True,
@ -692,19 +680,11 @@ class TaskDueDate(models.Model):
verbose_name = "task due date" verbose_name = "task due date"
verbose_name_plural = "task due dates" verbose_name_plural = "task due dates"
ordering = ["project", "order", "name"] ordering = ["project", "order", "name"]
unique_together = (("project", "name"), ("project", "slug")) unique_together = (("project", "name"))
def __str__(self): def __str__(self):
return self.name return self.name
def save(self, *args, **kwargs):
qs = self.project.task_duedates
if self.id:
qs = qs.exclude(id=self.id)
self.slug = slugify_uniquely_for_queryset(self.name, qs)
return super().save(*args, **kwargs)
# Issue common Models # Issue common Models
@ -803,8 +783,6 @@ class IssueType(models.Model):
class IssueDueDate(models.Model): class IssueDueDate(models.Model):
name = models.CharField(max_length=255, null=False, blank=False, name = models.CharField(max_length=255, null=False, blank=False,
verbose_name=_("name")) verbose_name=_("name"))
slug = models.SlugField(max_length=255, null=False, blank=True,
verbose_name=_("slug"))
order = models.IntegerField(default=10, null=False, blank=False, order = models.IntegerField(default=10, null=False, blank=False,
verbose_name=_("order")) verbose_name=_("order"))
by_default = models.BooleanField(default=False, null=False, blank=True, by_default = models.BooleanField(default=False, null=False, blank=True,
@ -820,19 +798,11 @@ class IssueDueDate(models.Model):
verbose_name = "issue due date" verbose_name = "issue due date"
verbose_name_plural = "issue due dates" verbose_name_plural = "issue due dates"
ordering = ["project", "order", "name"] ordering = ["project", "order", "name"]
unique_together = (("project", "name"), ("project", "slug")) unique_together = ("project", "name")
def __str__(self): def __str__(self):
return self.name return self.name
def save(self, *args, **kwargs):
qs = self.project.issue_duedates
if self.id:
qs = qs.exclude(id=self.id)
self.slug = slugify_uniquely_for_queryset(self.name, qs)
return super().save(*args, **kwargs)
class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model): class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model):
name = models.CharField(max_length=250, null=False, blank=False, name = models.CharField(max_length=250, null=False, blank=False,
@ -958,7 +928,6 @@ class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model):
for us_duedate in project.us_duedates.all(): for us_duedate in project.us_duedates.all():
self.us_duedates.append({ self.us_duedates.append({
"name": us_duedate.name, "name": us_duedate.name,
"slug": us_duedate.slug,
"by_default": us_duedate.by_default, "by_default": us_duedate.by_default,
"color": us_duedate.color, "color": us_duedate.color,
"days_to_due": us_duedate.days_to_due, "days_to_due": us_duedate.days_to_due,
@ -987,7 +956,6 @@ class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model):
for task_duedate in project.task_duedates.all(): for task_duedate in project.task_duedates.all():
self.task_duedates.append({ self.task_duedates.append({
"name": task_duedate.name, "name": task_duedate.name,
"slug": task_duedate.slug,
"by_default": task_duedate.by_default, "by_default": task_duedate.by_default,
"color": task_duedate.color, "color": task_duedate.color,
"days_to_due": task_duedate.days_to_due, "days_to_due": task_duedate.days_to_due,
@ -1016,7 +984,6 @@ class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model):
for issue_duedate in project.issue_duedates.all(): for issue_duedate in project.issue_duedates.all():
self.issue_duedates.append({ self.issue_duedates.append({
"name": issue_duedate.name, "name": issue_duedate.name,
"slug": issue_duedate.slug,
"by_default": issue_duedate.by_default, "by_default": issue_duedate.by_default,
"color": issue_duedate.color, "color": issue_duedate.color,
"days_to_due": issue_duedate.days_to_due, "days_to_due": issue_duedate.days_to_due,
@ -1137,7 +1104,6 @@ class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model):
for us_duedate in self.us_duedates: for us_duedate in self.us_duedates:
UserStoryDueDate.objects.create( UserStoryDueDate.objects.create(
name=us_duedate["name"], name=us_duedate["name"],
slug=us_duedate["slug"],
by_default=us_duedate["by_default"], by_default=us_duedate["by_default"],
color=us_duedate["color"], color=us_duedate["color"],
days_to_due=us_duedate["days_to_due"], days_to_due=us_duedate["days_to_due"],
@ -1166,7 +1132,6 @@ class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model):
for task_duedate in self.task_duedates: for task_duedate in self.task_duedates:
TaskDueDate.objects.create( TaskDueDate.objects.create(
name=task_duedate["name"], name=task_duedate["name"],
slug=task_duedate["slug"],
by_default=task_duedate["by_default"], by_default=task_duedate["by_default"],
color=task_duedate["color"], color=task_duedate["color"],
days_to_due=task_duedate["days_to_due"], days_to_due=task_duedate["days_to_due"],
@ -1195,7 +1160,6 @@ class ProjectTemplate(TaggedMixin, TagsColorsMixin, models.Model):
for issue_duedate in self.issue_duedates: for issue_duedate in self.issue_duedates:
IssueDueDate.objects.create( IssueDueDate.objects.create(
name=issue_duedate["name"], name=issue_duedate["name"],
slug=issue_duedate["slug"],
by_default=issue_duedate["by_default"], by_default=issue_duedate["by_default"],
color=issue_duedate["color"], color=issue_duedate["color"],
days_to_due=issue_duedate["days_to_due"], days_to_due=issue_duedate["days_to_due"],

View File

@ -40,7 +40,6 @@ from .notifications.choices import NotifyLevel
class BaseDueDateSerializer(serializers.LightSerializer): class BaseDueDateSerializer(serializers.LightSerializer):
id = Field() id = Field()
name = I18NField() name = I18NField()
slug = Field()
order = Field() order = Field()
by_default = Field() by_default = Field()
days_to_due = Field() days_to_due = Field()

View File

@ -2296,7 +2296,6 @@ def test_create_us_default_due_dates(client):
us_duedates = [{ us_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2320,7 +2319,6 @@ def test_create_us_default_due_dates(client):
def test_prevent_create_us_default_due_dates_when_already_exists(client): def test_prevent_create_us_default_due_dates_when_already_exists(client):
us_duedates = [{ us_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2344,7 +2342,6 @@ def test_prevent_create_us_default_due_dates_when_already_exists(client):
def test_prevent_delete_us_default_due_dates(client): def test_prevent_delete_us_default_due_dates(client):
us_duedates = [{ us_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2370,7 +2367,6 @@ def test_create_task_default_due_dates(client):
task_duedates = [{ task_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2394,7 +2390,6 @@ def test_create_task_default_due_dates(client):
def test_prevent_create_task_default_due_dates_when_already_exists(client): def test_prevent_create_task_default_due_dates_when_already_exists(client):
task_duedates = [{ task_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2418,7 +2413,6 @@ def test_prevent_create_task_default_due_dates_when_already_exists(client):
def test_prevent_delete_task_default_due_dates(client): def test_prevent_delete_task_default_due_dates(client):
task_duedates = [{ task_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2444,7 +2438,6 @@ def test_create_issue_default_due_dates(client):
issue_duedates = [{ issue_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2468,7 +2461,6 @@ def test_create_issue_default_due_dates(client):
def test_prevent_create_issue_default_due_dates_when_already_exists(client): def test_prevent_create_issue_default_due_dates_when_already_exists(client):
issue_duedates = [{ issue_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,
@ -2492,7 +2484,6 @@ def test_prevent_create_issue_default_due_dates_when_already_exists(client):
def test_prevent_delete_issue_default_due_dates(client): def test_prevent_delete_issue_default_due_dates(client):
issue_duedates = [{ issue_duedates = [{
"name": 'Default', "name": 'Default',
"slug": 'default',
"by_default": True, "by_default": True,
'color': '#0000', 'color': '#0000',
'days_to_due': None, 'days_to_due': None,