[Backport] Fix import exception.
parent
50ac02fe34
commit
4174334982
|
@ -15,8 +15,6 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from django.db.transaction import atomic
|
|
||||||
|
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
|
@ -91,7 +89,6 @@ def store_tags_colors(project, data):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@method_decorator(atomic)
|
|
||||||
def dict_to_project(data, owner=None):
|
def dict_to_project(data, owner=None):
|
||||||
if owner:
|
if owner:
|
||||||
data["owner"] = owner.email
|
data["owner"] = owner.email
|
||||||
|
|
|
@ -90,10 +90,13 @@ def load_project_dump(user, dump):
|
||||||
}
|
}
|
||||||
email = mail_builder.import_error(user, ctx)
|
email = mail_builder.import_error(user, ctx)
|
||||||
email.send()
|
email.send()
|
||||||
logger.error('Error loading dump %s (by %s)',
|
logger.error('Error loading dump by %s <%s>',
|
||||||
dump.get("slug", "-unknow-") if dump else "-unknow-",
|
|
||||||
user,
|
user,
|
||||||
|
user.email,
|
||||||
exc_info=sys.exc_info())
|
exc_info=sys.exc_info())
|
||||||
|
|
||||||
|
# TODO: [Rollback] Remove project because it can be corrupted
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Success
|
# Success
|
||||||
ctx = {"user": user, "project": project}
|
ctx = {"user": user, "project": project}
|
||||||
|
|
|
@ -430,11 +430,16 @@ class Project(ProjectDefaults, TaggedMixin, models.Model):
|
||||||
set_notify_policy_level_to_ignore(notify_policy)
|
set_notify_policy_level_to_ignore(notify_policy)
|
||||||
|
|
||||||
def delete_related_content(self):
|
def delete_related_content(self):
|
||||||
from taiga.events.apps import connect_events_signals, disconnect_events_signals
|
from taiga.events.apps import (connect_events_signals,
|
||||||
from taiga.projects.tasks.apps import connect_all_tasks_signals, disconnect_all_tasks_signals
|
disconnect_events_signals)
|
||||||
from taiga.projects.userstories.apps import connect_all_userstories_signals, disconnect_all_userstories_signals
|
from taiga.projects.tasks.apps import (connect_all_tasks_signals,
|
||||||
from taiga.projects.issues.apps import connect_all_issues_signals, disconnect_all_issues_signals
|
disconnect_all_tasks_signals)
|
||||||
from taiga.projects.apps import connect_memberships_signals, disconnect_memberships_signals
|
from taiga.projects.userstories.apps import (connect_all_userstories_signals,
|
||||||
|
disconnect_all_userstories_signals)
|
||||||
|
from taiga.projects.issues.apps import (connect_all_issues_signals,
|
||||||
|
disconnect_all_issues_signals)
|
||||||
|
from taiga.projects.apps import (connect_memberships_signals,
|
||||||
|
disconnect_memberships_signals)
|
||||||
|
|
||||||
disconnect_events_signals()
|
disconnect_events_signals()
|
||||||
disconnect_all_issues_signals()
|
disconnect_all_issues_signals()
|
||||||
|
@ -455,6 +460,7 @@ class Project(ProjectDefaults, TaggedMixin, models.Model):
|
||||||
connect_all_userstories_signals()
|
connect_all_userstories_signals()
|
||||||
connect_memberships_signals()
|
connect_memberships_signals()
|
||||||
|
|
||||||
|
|
||||||
class ProjectModulesConfig(models.Model):
|
class ProjectModulesConfig(models.Model):
|
||||||
project = models.OneToOneField("Project", null=False, blank=False,
|
project = models.OneToOneField("Project", null=False, blank=False,
|
||||||
related_name="modules_config", verbose_name=_("project"))
|
related_name="modules_config", verbose_name=_("project"))
|
||||||
|
|
Loading…
Reference in New Issue