Fixing slug generation for issue status, task status and user story status
parent
5718627daa
commit
571bf5e0cc
|
@ -344,9 +344,11 @@ class UserStoryStatus(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if not self.slug:
|
qs = self.project.us_statuses
|
||||||
self.slug = slugify_uniquely_for_queryset(self.name, self.project.us_statuses)
|
if self.id:
|
||||||
|
qs = qs.exclude(id=self.id)
|
||||||
|
|
||||||
|
self.slug = slugify_uniquely_for_queryset(self.name, qs)
|
||||||
return super().save(*args, **kwargs)
|
return super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@ -402,9 +404,11 @@ class TaskStatus(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if not self.slug:
|
qs = self.project.task_statuses
|
||||||
self.slug = slugify_uniquely_for_queryset(self.name, self.project.task_statuses)
|
if self.id:
|
||||||
|
qs = qs.exclude(id=self.id)
|
||||||
|
|
||||||
|
self.slug = slugify_uniquely_for_queryset(self.name, qs)
|
||||||
return super().save(*args, **kwargs)
|
return super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@ -483,9 +487,11 @@ class IssueStatus(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
if not self.slug:
|
qs = self.project.issue_statuses
|
||||||
self.slug = slugify_uniquely_for_queryset(self.name, self.project.issue_statuses)
|
if self.id:
|
||||||
|
qs = qs.exclude(id=self.id)
|
||||||
|
|
||||||
|
self.slug = slugify_uniquely_for_queryset(self.name, qs)
|
||||||
return super().save(*args, **kwargs)
|
return super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,3 +26,60 @@ def test_partially_update_project(client):
|
||||||
client.login(project.owner)
|
client.login(project.owner)
|
||||||
response = client.json.patch(url, json.dumps(data))
|
response = client.json.patch(url, json.dumps(data))
|
||||||
assert response.status_code == 400
|
assert response.status_code == 400
|
||||||
|
|
||||||
|
|
||||||
|
def test_us_status_slug_generation(client):
|
||||||
|
us_status = f.UserStoryStatusFactory(name="NEW")
|
||||||
|
assert us_status.slug == "new"
|
||||||
|
|
||||||
|
client.login(us_status.project.owner)
|
||||||
|
|
||||||
|
url = reverse("userstory-statuses-detail", kwargs={"pk": us_status.pk})
|
||||||
|
|
||||||
|
data = {"name": "new"}
|
||||||
|
response = client.json.patch(url, json.dumps(data))
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data["slug"] == "new"
|
||||||
|
|
||||||
|
data = {"name": "new status"}
|
||||||
|
response = client.json.patch(url, json.dumps(data))
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data["slug"] == "new-status"
|
||||||
|
|
||||||
|
|
||||||
|
def test_task_status_slug_generation(client):
|
||||||
|
task_status = f.TaskStatusFactory(name="NEW")
|
||||||
|
assert task_status.slug == "new"
|
||||||
|
|
||||||
|
client.login(task_status.project.owner)
|
||||||
|
|
||||||
|
url = reverse("task-statuses-detail", kwargs={"pk": task_status.pk})
|
||||||
|
|
||||||
|
data = {"name": "new"}
|
||||||
|
response = client.json.patch(url, json.dumps(data))
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data["slug"] == "new"
|
||||||
|
|
||||||
|
data = {"name": "new status"}
|
||||||
|
response = client.json.patch(url, json.dumps(data))
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data["slug"] == "new-status"
|
||||||
|
|
||||||
|
|
||||||
|
def test_issue_status_slug_generation(client):
|
||||||
|
issue_status = f.IssueStatusFactory(name="NEW")
|
||||||
|
assert issue_status.slug == "new"
|
||||||
|
|
||||||
|
client.login(issue_status.project.owner)
|
||||||
|
|
||||||
|
url = reverse("issue-statuses-detail", kwargs={"pk": issue_status.pk})
|
||||||
|
|
||||||
|
data = {"name": "new"}
|
||||||
|
response = client.json.patch(url, json.dumps(data))
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data["slug"] == "new"
|
||||||
|
|
||||||
|
data = {"name": "new status"}
|
||||||
|
response = client.json.patch(url, json.dumps(data))
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data["slug"] == "new-status"
|
||||||
|
|
Loading…
Reference in New Issue