Improving project deletion
parent
84e2b90168
commit
03674f8962
|
@ -29,8 +29,11 @@ VIDEOCONFERENCES_CHOICES = (
|
|||
BLOCKED_BY_NONPAYMENT = "blocked-by-nonpayment"
|
||||
BLOCKED_BY_STAFF = "blocked-by-staff"
|
||||
BLOCKED_BY_OWNER_LEAVING = "blocked-by-owner-leaving"
|
||||
BLOCKED_BY_DELETING = "blocked-by-deleting"
|
||||
|
||||
BLOCKING_CODES = [
|
||||
(BLOCKED_BY_NONPAYMENT, _("This project is blocked due to payment failure")),
|
||||
(BLOCKED_BY_STAFF, _("This project is blocked by admin staff")),
|
||||
(BLOCKED_BY_OWNER_LEAVING, _("This project is blocked because the owner left"))
|
||||
(BLOCKED_BY_OWNER_LEAVING, _("This project is blocked because the owner left")),
|
||||
(BLOCKED_BY_DELETING, _("This project is blocked while it's deleted"))
|
||||
]
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
from django.apps import apps
|
||||
from django.utils.translation import ugettext as _
|
||||
from taiga.celery import app
|
||||
from .. import choices
|
||||
|
||||
ERROR_MAX_PUBLIC_PROJECTS_MEMBERSHIPS = 'max_public_projects_memberships'
|
||||
ERROR_MAX_PRIVATE_PROJECTS_MEMBERSHIPS = 'max_private_projects_memberships'
|
||||
|
@ -158,6 +159,7 @@ def check_if_project_is_out_of_owner_limits(project):
|
|||
def orphan_project(project):
|
||||
project.memberships.filter(user=project.owner).delete()
|
||||
project.owner = None
|
||||
project.blocked_code = choices.BLOCKED_BY_DELETING
|
||||
project.save()
|
||||
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ from taiga.projects.services import stats as stats_services
|
|||
from taiga.projects.history.services import take_snapshot
|
||||
from taiga.permissions.choices import ANON_PERMISSIONS
|
||||
from taiga.projects.models import Project
|
||||
from taiga.projects.choices import BLOCKED_BY_DELETING
|
||||
|
||||
from .. import factories as f
|
||||
from ..utils import DUMMY_BMP_DATA
|
||||
|
@ -1835,6 +1836,7 @@ def test_delete_project_with_celery_enabled(client, settings):
|
|||
project = Project.objects.get(id=project.id)
|
||||
assert project.owner == None
|
||||
assert project.memberships.count() == 0
|
||||
assert project.blocked_code == BLOCKED_BY_DELETING
|
||||
delete_project_mock.delay.assert_called_once_with(project.id)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue