Made minor fixes over load_dump and dump_project commands

remotes/origin/issue/4795/notification_even_they_are_disabled
David Barragán Merino 2016-05-10 16:06:03 +02:00 committed by Alejandro Alonso
parent 7bbb90b61a
commit 9474a1174f
2 changed files with 24 additions and 19 deletions

View File

@ -24,7 +24,7 @@ import os
class Command(BaseCommand):
help = "Export projects to json"
help = "Export projects to a json file"
def add_arguments(self, parser):
parser.add_argument("project_slugs",
@ -56,7 +56,7 @@ class Command(BaseCommand):
raise CommandError("Project '{}' does not exist".format(project_slug))
dst_file = os.path.join(dst_dir, "{}.json".format(project_slug))
with open(src_file, "w") as f:
with open(dst_file, "w") as f:
render_project(project, f)
print("-> Generate dump of project '{}' in '{}'".format(project.name, src_file))
print("-> Generate dump of project '{}' in '{}'".format(project.name, dst_file))

View File

@ -18,34 +18,39 @@
from django.core.management.base import BaseCommand
from django.db import transaction
from django.db.models import signals
from optparse import make_option
from taiga.base.utils import json
from taiga.export_import import services
from taiga.export_import import exceptions as err
from taiga.export_import.renderers import ExportRenderer
from taiga.projects.models import Project
from taiga.users.models import User
class Command(BaseCommand):
args = '<dump_file> <owner-email>'
help = 'Export a project to json'
renderer_context = {"indent": 4}
renderer = ExportRenderer()
option_list = BaseCommand.option_list + (
make_option('--overwrite',
help = 'Import a project from a json file'
def add_arguments(self, parser):
parser.add_argument("dump_file",
help="The path to a dump file (.json).")
parser.add_argument("owner_email",
help="The email of the new project owner.")
parser.add_argument("-o", '--overwrite',
action='store_true',
dest='overwrite',
default=False,
help='Delete project if exists'),
)
help='Overwrite the project if exists')
def handle(self, *args, **options):
data = json.loads(open(args[0], 'r').read())
dump_file_path = options["dump_file"]
owner_email = options["owner_email"]
overwrite = options["overwrite"]
data = json.loads(open(dump_file_path, 'r').read())
try:
with transaction.atomic():
if options["overwrite"]:
if overwrite:
receivers_back = signals.post_delete.receivers
signals.post_delete.receivers = []
try:
@ -60,7 +65,7 @@ class Command(BaseCommand):
pass
signals.post_delete.receivers = receivers_back
user = User.objects.get(email=args[1])
user = User.objects.get(email=owner_email)
services.store_project_from_dict(data, user)
except err.TaigaImportError as e:
if e.project: