You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2013/08/22 23:53:30 UTC

[04/50] git commit: [#3154] ticket:386 Check export status in UI

[#3154] ticket:386 Check export status in UI


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/88bfef18
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/88bfef18
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/88bfef18

Branch: refs/heads/master
Commit: 88bfef18130b98482000697379f90484e531893e
Parents: 8e3dfa2
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Jul 4 16:00:36 2013 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Thu Aug 22 20:04:40 2013 +0000

----------------------------------------------------------------------
 Allura/allura/ext/admin/admin_main.py         |  8 +++++++-
 Allura/allura/ext/admin/templates/export.html | 10 ++++++++++
 Allura/allura/tests/functional/test_admin.py  | 16 ++++++++++++++++
 3 files changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/88bfef18/Allura/allura/ext/admin/admin_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py
index 6b39c35..ee59e1d 100644
--- a/Allura/allura/ext/admin/admin_main.py
+++ b/Allura/allura/ext/admin/admin_main.py
@@ -646,10 +646,16 @@ class ProjectAdminController(BaseController):
             if not set(tools).issubset(allowed):
                 flash('Wrong tools in input data', 'error')
                 redirect('export')
+            if c.project.bulk_export_status() == 'busy':
+                flash('Export for project %s already running' % c.project.shortname, 'info')
+                redirect('export')
             export_tasks.bulk_export.post(c.project.shortname, tools)
             flash('Export scheduled', 'ok')
             redirect('export')
-        return {'tools': exportable_tools}
+        return {
+            'tools': exportable_tools,
+            'status': c.project.bulk_export_status()
+        }
 
 
 class PermissionsController(BaseController):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/88bfef18/Allura/allura/ext/admin/templates/export.html
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/templates/export.html b/Allura/allura/ext/admin/templates/export.html
index 6b69fdc..eff9d5a 100644
--- a/Allura/allura/ext/admin/templates/export.html
+++ b/Allura/allura/ext/admin/templates/export.html
@@ -23,6 +23,16 @@
 {% block header %}Project Export{% endblock %}
 
 {% block content %}
+
+{% if status == 'ready' %}
+<div class="error">
+  <h2>Careful!</h2>
+  This project has been exported already.
+  Follow instructions in notification email to get the exported data.
+  If you run export again previous exported data will be lost.
+</div>
+{% endif %}
+
 <div class="grid-19">
   {% if tools %}
     <form method="POST" action="">

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/88bfef18/Allura/allura/tests/functional/test_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_admin.py b/Allura/allura/tests/functional/test_admin.py
index fd8d791..8e205b5 100644
--- a/Allura/allura/tests/functional/test_admin.py
+++ b/Allura/allura/tests/functional/test_admin.py
@@ -17,6 +17,7 @@
 
 import re
 import os, allura
+import shutil
 import pkg_resources
 import StringIO
 from contextlib import contextmanager
@@ -827,3 +828,18 @@ class TestExport(TestController):
         assert_in('ok', self.webflash(r))
         export_tasks.bulk_export.post.assert_called_once_with(
             'test', [u'wiki', u'wiki2'])
+
+    @patch('allura.ext.admin.admin_main.export_tasks')
+    def test_export_in_progress(self, export_tasks):
+        p = M.Project.query.get(shortname='test')
+        tmpdir = os.path.join(p.bulk_export_path(), p.shortname)
+        shutil.rmtree(tmpdir, ignore_errors=True)
+        os.makedirs(tmpdir)
+        r = self.app.post('/admin/export', {'tools': [u'wiki', u'wiki2']})
+        assert_in('info', self.webflash(r))
+        assert_equals(export_tasks.bulk_export.post.call_count, 0)
+        shutil.rmtree(tmpdir, ignore_errors=True)
+
+    def test_export_done(self):
+        r = self.app.get('/admin/export')
+        assert_in('<h2>Careful!</h2>', r)