Made minor fixes over load_dump and dump_project commands
parent
7bbb90b61a
commit
9474a1174f
|
@ -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))
|
||||
|
|
|
@ -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',
|
||||
action='store_true',
|
||||
dest='overwrite',
|
||||
default=False,
|
||||
help='Delete project if exists'),
|
||||
)
|
||||
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='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:
|
||||
|
|
Loading…
Reference in New Issue