Commits

seccanj committed 2c2e69f

Release 1.4.11 (2012-06-03)

The data referential integrity in case of test catalog, test case and test plan deletion has been enhanced.
Deleting a test catalog now also deletes all of the contained sub-catalogs, test cases and test plans, as well
as the corresponding status change history.

o Fixed Ticket #9857 (Track-Hacks): Deleted test plan is still shown in Test Stats

o Fixed Ticket #9953 (Track-Hacks): Changing a testcase custom field value gives and error

o Fixed Ticket #10043 (Track-Hacks): Deleting "zombie" TestPlans

Comments (0)

Files changed (33)

 
 (Refer to the tickets on trac-hacks or SourceForge for complete descriptions.)
 
+Release 1.4.11 (2012-06-03):
+
+  The data referential integrity in case of test catalog, test case and test plan deletion has been enhanced.
+  Deleting a test catalog now also deletes all of the contained sub-catalogs, test cases and test plans, as well
+  as the corresponding status change history.
+
+  o Fixed Ticket #9857 (Track-Hacks): Deleted test plan is still shown in Test Stats
+
+  o Fixed Ticket #9953 (Track-Hacks): Changing a testcase custom field value gives and error
+
+  o Fixed Ticket #10043 (Track-Hacks): Deleting "zombie" TestPlans
+
+Release 1.4.10 (2012-03-03):
+
+  o Enhancement #9751 (Track-Hacks): Ability to sort catalogs.
+                                     Test Catalogs are now sorted by title in the tree and table views.
+
+  o Fixed Ticket #9776 (Track-Hacks): Testplans not visible with latest Agilo Plugin.
+
+  o Fixed Ticket #9530 (Track-Hacks): Expand all / Collapse all is not running.
+                                      This only happened with the Agilo plugin installed.
+
+  o Fixed Ticket #9754 (Track-Hacks): Setting test result seemingly succeeds with expired login.
+                                      Now operations such as setting a test case status and updating a custom field,
+                                      when failing will display a dialog box with an error message.
+  o Fixed Ticket #9758 (Track-Hacks): Can't delete Test Case in v1.4.9.
+
 Release 1.4.9 (2012-01-04):
 
   o Enhancement #8958 (Track-Hacks): An ability to export test data to CSV format needed.
   o Fixed Ticket #9510 (Track-Hacks): TestStats for single Testplans at 1.4.8 not working - patched. 
                                       Thanks so much Andreas for finding it and for patching it!!!
 
-  o Fixed Ticket #9530 (Track-Hacks): Expand all / Collapse all is not running
-
   o Fixed Ticket #9654 (Track-Hacks): Error when creating test plans
 
 Release 1.4.8 (2011-10-23):
 cp -R ../testman4trac.$VER/* .
 svn status
 svn add
-svn commit
+#svn commit
 
 cd ..
 
 cp -R ../testman4trac.$VER/* .
 hg status
 hg add
-hg commit
-hg push
+#hg commit
+#hg push
 
 cd ..
 #rm -rf testman4trac.$VER testman4trac.$VER.SVN testman4trac.$VER.BITBKT

sqlexecutor/trunk/setup.py

 
 setup(
     name='SQLExecutor',
-    version='1.0.5',
+    version='1.0.6',
     packages=['sqlexecutor'],
     package_data={'sqlexecutor' : ['*.txt', 'templates/*.html', 'htdocs/*.*', 'htdocs/js/*.js', 'htdocs/css/*.css', 'htdocs/images/*.*']},
     author = 'Roberto Bordolanghi',

sqlexecutor/trunk/sqlexecutor/sql.py

 
 from trac.core import *
 from trac.perm import IPermissionRequestor
-from trac.util.text import CRLF
+from trac.util.text import CRLF, to_unicode
 from trac.util.translation import _, N_, gettext
 from trac.web.api import IRequestHandler
 from trac.web.chrome import ITemplateProvider, INavigationContributor
         
         if req.path_info.startswith('/sqlexec'):
             sql = req.args.get('sql', '')
+            format = req.args.get('format', '')
             result = []
             message = ""
             
                         curr_row = []
                         for i in row:
                             if isinstance(i, basestring):
-                                curr_row.append(i.encode('utf-8'))
+                                curr_row.append(to_unicode(i))
                             elif isinstance(i, long):
-                                curr_row.append(from_any_timestamp(i).isoformat() + ' (' + str(i) + ')')
+                                curr_row.append(to_unicode(str(from_any_timestamp(i).isoformat()) + ' (' + str(i) + ')'))
                             else:
-                                curr_row.append(str(i).encode('utf-8'))
+                                curr_row.append(to_unicode(str(i)))
                             
                         result.append(curr_row)
 
                     self.env.log.debug("SqlExecutor - Exception: ")
                     self.env.log.debug(message)
 
-            data = {'sql': sql, 'result': result, 'message': message, 'baseurl': fix_base_location(req)}
+            if format == 'tab':
+                tsv_result = ''
+
+                for row in result:
+                    for col in row:
+                        tsv_result += '"' + col.replace('"','""') + '"\t'
+                    tsv_result += '\n'
+                
+                tsv_result = tsv_result.strip()
+                
+                if isinstance(tsv_result, unicode): 
+                    tsv_result = tsv_result.encode('utf-8') 
+
+                req.send_header("Content-Disposition", "filename=sqlresult.tsv")
+                req.send_header("Content-Length", len(tsv_result))
+                req.send_header("Content-Type", "text/tab-separated-values;charset=utf-8")
+                req.write(tsv_result)
+                return
+            else:
+                data = {'sql': sql, 'result': result, 'message': message, 'baseurl': fix_base_location(req)}
             
             return 'result.html', data, None
 

testman4trac/trunk/setup.py

 
 setup(
     name='TestManager',
-    version='1.4.9',
+    version='1.4.11',
     packages=['testmanager','testmanager.upgrades'],
     package_data={
         'testmanager' : [
     keywords='trac plugin test case management project quality assurance statistics stats charts charting graph',
     entry_points = {'trac.plugins': ['testmanager = testmanager']},
     dependency_links=['http://svn.edgewall.org/repos/genshi/trunk#egg=Genshi-dev', 'http://trac-hacks.org/wiki/TestManagerForTracPluginGenericClass', 'http://trac-hacks.org/wiki/TracGenericWorkflowPlugin'],
-    install_requires=['Genshi >= 0.5', 'TracGenericClass >= 1.1.1', 'TracGenericWorkflow >= 1.0.3'],
+    install_requires=['Genshi >= 0.5', 'TracGenericClass >= 1.1.3', 'TracGenericWorkflow >= 1.0.3'],
     **extra
     )

testman4trac/trunk/testmanager/README.txt

 
 (Refer to the tickets on trac-hacks or SourceForge for complete descriptions.)
 
+Release 1.4.11 (2012-06-03):
+
+  The data referential integrity in case of test catalog, test case and test plan deletion has been enhanced.
+  Deleting a test catalog now also deletes all of the contained sub-catalogs, test cases and test plans, as well
+  as the corresponding status change history.
+
+  o Fixed Ticket #9857 (Track-Hacks): Deleted test plan is still shown in Test Stats
+
+  o Fixed Ticket #9953 (Track-Hacks): Changing a testcase custom field value gives and error
+
+  o Fixed Ticket #10043 (Track-Hacks): Deleting "zombie" TestPlans
+
+Release 1.4.10 (2012-03-03):
+
+  o Enhancement #9751 (Track-Hacks): Ability to sort catalogs.
+                                     Test Catalogs are now sorted by title in the tree and table views.
+
+  o Fixed Ticket #9776 (Track-Hacks): Testplans not visible with latest Agilo Plugin.
+
+  o Fixed Ticket #9530 (Track-Hacks): Expand all / Collapse all is not running.
+                                      This only happened with the Agilo plugin installed.
+
+  o Fixed Ticket #9754 (Track-Hacks): Setting test result seemingly succeeds with expired login.
+                                      Now operations such as setting a test case status and updating a custom field,
+                                      when failing will display a dialog box with an error message.
+  o Fixed Ticket #9758 (Track-Hacks): Can't delete Test Case in v1.4.9.
+
 Release 1.4.9 (2012-01-04):
 
   o Enhancement #8958 (Track-Hacks): An ability to export test data to CSV format needed.
   o Fixed Ticket #9510 (Track-Hacks): TestStats for single Testplans at 1.4.8 not working - patched. 
                                       Thanks so much Andreas for finding it and for patching it!!!
 
-  o Fixed Ticket #9530 (Track-Hacks): Expand all / Collapse all is not running
-
   o Fixed Ticket #9654 (Track-Hacks): Error when creating test plans
 
 Release 1.4.8 (2011-10-23):

testman4trac/trunk/testmanager/api.py

             path = req.args.get('path')
             status = req.args.get('status')
 
+            result = 'ERROR'
+
             try:
                 self.env.log.debug("Setting status %s to test case %s in plan %s" % (status, id, planid))
                 tcip = TestCaseInPlan(self.env, id, planid)
                     tcip['page_name'] = tc['page_name']
                     tcip.set_status(status, author)
                     tcip.insert()
+
+                result = 'OK'
                 
             except:
                 self.env.log.error(formatExceptionInfo())
+
+            req.send_header("Content-Length", len(result))
+            req.write(result)
+            return 
         
         elif req.path_info.startswith('/testcreate'):
             object_type = req.args.get('type')
             return
 
         elif req.path_info.startswith('/testman4debug'):
+            req.perm.require('TRAC_ADMIN')
+            
             id = req.args.get('id')
             path = req.args.get('path')
             planid = req.args.get('planid')

testman4trac/trunk/testmanager/htdocs/js/testmanager.js

     
     result = doAjaxCall(url, "GET", "");
     
-    oldIconSpan = document.getElementById("tcStatus"+currStatusColor);
-    oldIconSpan.style.border="";
-    
-    newIconSpan = document.getElementById("tcStatus"+newStatusColor);
-    newIconSpan.style.border="2px solid black";
-    
-    displayNode("tcTitleStatusIcon"+currStatusColor, false);
+    // Handle errors in the Ajax call
+    if (result == 'OK') {
+        oldIconSpan = document.getElementById("tcStatus"+currStatusColor);
+        oldIconSpan.style.border="";
+        
+        newIconSpan = document.getElementById("tcStatus"+newStatusColor);
+        newIconSpan.style.border="2px solid black";
+        
+        displayNode("tcTitleStatusIcon"+currStatusColor, false);
 
-    document.getElementById("tcTitleStatusIcon"+newStatusColor).title = newLabel;
-    displayNode("tcTitleStatusIcon"+newStatusColor, true);
+        document.getElementById("tcTitleStatusIcon"+newStatusColor).title = newLabel;
+        displayNode("tcTitleStatusIcon"+newStatusColor, true);
 
-    currStatus = newStatus; 
-    currStatusColor = newStatusColor;
+        currStatus = newStatus; 
+        currStatusColor = newStatusColor;
+    } else {
+        (function($) {
+            $(function() {
+                $("#dialog_error").dialog({width: 320, height: 150, modal: true});
+            });
+        })(jQuery_testmanager);	
+    }
 }
 
 function changestateOnPlan(imgNodeId, tc, planid, newStatus, newStatusColor, newLabel) {
     var url = baseLocation+"/teststatusupdate?id="+tc+"&planid="+planid+"&status="+newStatus;
     result = doAjaxCall(url, "GET", "");
     
-    // TODO: Handle errors in the Ajax call
-    
-    $('#'+imgNodeId)[0].src = "../chrome/testmanager/images/"+newStatusColor+".png";
-    $('#'+imgNodeId)[0].title = newLabel;
+    // Handle errors in the Ajax call
+    if (result == 'OK') {
+        $('#'+imgNodeId)[0].src = "../chrome/testmanager/images/"+newStatusColor+".png";
+        $('#'+imgNodeId)[0].title = newLabel;
+    } else {
+        (function($) {
+            $(function() {
+                $("#dialog_error").dialog({width: 320, height: 150, modal: true});
+            });
+        })(jQuery_testmanager);	
+    }
 }
 
 function showColorOutcomes(imgNodeId, color) {
 }
 
 function doAjaxCall(url, method, params) {
-    if (window.XMLHttpRequest) {
-        /* code for IE7+, Firefox, Chrome, Opera, Safari */
-         xmlhttp = new XMLHttpRequest();
-    } else {
-        /* code for IE6, IE5 */
-        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+    try {
+        if (window.XMLHttpRequest) {
+            /* code for IE7+, Firefox, Chrome, Opera, Safari */
+             xmlhttp = new XMLHttpRequest();
+        } else {
+            /* code for IE6, IE5 */
+            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+        }
+        
+        xmlhttp.open(method, url, false);
+        
+        if (method == "POST") {
+            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+            params = "__FORM_TOKEN="+getCookie('trac_form_token')+"&"+params;
+        }
+        
+        xmlhttp.send(params);
+        responseText = xmlhttp.responseText;
+    } catch (e) {
+        responseText = 'ERROR';
     }
     
-    xmlhttp.open(method, url, false);
-    
-    if (method == "POST") {
-        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
-        params = "__FORM_TOKEN="+getCookie('trac_form_token')+"&"+params;
-    }
-    
-    xmlhttp.send(params);
-    responseText = xmlhttp.responseText;
-    
     return responseText;
 }
 
-
-
 function editField(name) {
     displayNode('custom_field_value_'+name, false);
     displayNode('custom_field_'+name, true);
     
     result = doAjaxCall(url, "POST", params); 
 
-   	var readonlyField = document.getElementById("custom_field_value_"+name);
-    readonlyField.innerHTML = value;
+    // Handle errors in the Ajax call
+    if (result == 'OK') {
+        var readonlyField = document.getElementById("custom_field_value_"+name);
+        readonlyField.innerHTML = value;
 
-    displayNode('custom_field_value_'+name, true);
-    displayNode('custom_field_'+name, false);
-    displayNode('update_button_'+name, false);
+        displayNode('custom_field_value_'+name, true);
+        displayNode('custom_field_'+name, false);
+        displayNode('update_button_'+name, false);
+    } else {
+        (function($) {
+            $(function() {
+                $("#dialog_error").dialog({width: 320, height: 150, modal: true});
+            });
+        })(jQuery_testmanager);	
+    }
 }
 
 function getLocale() {

testman4trac/trunk/testmanager/locale/de/LC_MESSAGES/testmanager-js.mo

Binary file modified.

testman4trac/trunk/testmanager/locale/de/LC_MESSAGES/testmanager-js.po

-# Translations template for TestManager.
+# German translations for TestManager.
 # Copyright (C) 2012 Roberto Bordolanghi
 # This file is distributed under the same license as the TestManager
 # project.
-# 
+#
 # Translators:
-#   <andreas.podskalsky@siemens.com>, 2011, 2012.
+# <andreas.podskalsky@siemens.com>, 2011, 2012.
 msgid ""
 msgstr ""
 "Project-Id-Version: Test Manager for Trac plugin\n"
-"Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin\n"
-"POT-Creation-Date: 2012-01-03 23:58+0100\n"
+"Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin"
+"\n"
+"POT-Creation-Date: 2012-03-03 23:25+0100\n"
 "PO-Revision-Date: 2012-01-04 07:24+0000\n"
 "Last-Translator: podskalsky <andreas.podskalsky@siemens.com>\n"
-"Language-Team: German (http://www.transifex.net/projects/p/testman4trac/team/de/)\n"
+"Language-Team: German "
+"(http://www.transifex.net/projects/p/testman4trac/team/de/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 0.9.6\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
 #: testmanager/htdocs/js/testmanager.js:33
 #: testmanager/htdocs/js/testmanager.js:52
 
 #: testmanager/htdocs/js/testmanager.js:163
 msgid ""
-"Are you sure you want to duplicate the test catalog and all its contained "
-"test cases?"
+"Are you sure you want to duplicate the test catalog and all its contained"
+" test cases?"
 msgstr ""
-"Sind Sie sich sicher, daß Sie dieses Testverzeichnis mit allen dazugehörigen"
-" Testfällen kopieren möchten?"
+"Sind Sie sich sicher, daß Sie dieses Testverzeichnis mit allen "
+"dazugehörigen Testfällen kopieren möchten?"
 
 #: testmanager/htdocs/js/testmanager.js:170
 msgid ""
 msgid "Results: "
 msgstr "Ergebnisse:"
 
-

testman4trac/trunk/testmanager/locale/de/LC_MESSAGES/testmanager.mo

Binary file modified.

testman4trac/trunk/testmanager/locale/de/LC_MESSAGES/testmanager.po

-# Translations template for TestManager.
+# German translations for TestManager.
 # Copyright (C) 2012 Roberto Bordolanghi
 # This file is distributed under the same license as the TestManager
 # project.
-# 
+#
 # Translators:
-#   <andreas.podskalsky@siemens.com>, 2011, 2012.
+# <andreas.podskalsky@siemens.com>, 2011, 2012.
 msgid ""
 msgstr ""
 "Project-Id-Version: Test Manager for Trac plugin\n"
-"Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin\n"
-"POT-Creation-Date: 2012-01-03 23:58+0100\n"
+"Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin"
+"\n"
+"POT-Creation-Date: 2012-06-03 12:56+0200\n"
 "PO-Revision-Date: 2012-01-04 07:58+0000\n"
 "Last-Translator: podskalsky <andreas.podskalsky@siemens.com>\n"
-"Language-Team: German (http://www.transifex.net/projects/p/testman4trac/team/de/)\n"
+"Language-Team: German "
+"(http://www.transifex.net/projects/p/testman4trac/team/de/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 0.9.6\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
 #: testmanager/admin.py:57 testmanager/templates/testmanagerstats.html:142
 msgid "Settings"
 #, python-format
 msgid "Template '%s' not removed as it is in use for a Test Catalog"
 msgstr ""
-"Template '%s' nicht gelöscht weil es in einem Test-Verzeichnis benutzt wird"
+"Template '%s' nicht gelöscht weil es in einem Test-Verzeichnis benutzt "
+"wird"
 
 #: testmanager/admin.py:166
 #, python-format
 msgid "Template saved"
 msgstr "Template gespeichert"
 
-#: testmanager/api.py:247 testmanager/wiki.py:599 testmanager/wiki.py:1034
-#: testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/wiki.py:640 testmanager/wiki.py:1085
+#: testmanager/wiki.py:1467
 msgid "Timestamp"
 msgstr "Zeitstempel"
 
-#: testmanager/api.py:247 testmanager/api.py:1149 testmanager/model.py:634
-#: testmanager/wiki.py:599 testmanager/wiki.py:987 testmanager/wiki.py:1034
-#: testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/api.py:1159 testmanager/model.py:683
+#: testmanager/wiki.py:640 testmanager/wiki.py:1038 testmanager/wiki.py:1085
+#: testmanager/wiki.py:1467
 msgid "Author"
 msgstr "Autor"
 
-#: testmanager/api.py:247 testmanager/api.py:260 testmanager/api.py:1149
-#: testmanager/model.py:627 testmanager/wiki.py:987 testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/api.py:260 testmanager/api.py:1159
+#: testmanager/model.py:676 testmanager/wiki.py:1038 testmanager/wiki.py:1467
 msgid "Status"
 msgstr "Status"
 
-#: testmanager/api.py:372
+#: testmanager/api.py:380
 msgid "Error adding test catalog"
 msgstr "Fehler beim Hinzufügen des Test-Verzeichnises"
 
-#: testmanager/api.py:496
+#: testmanager/api.py:504
 msgid "Error adding test case"
 msgstr "Fehler beim Hinzufügen des Testfalls"
 
-#: testmanager/api.py:1115
+#: testmanager/api.py:1125
 msgid "Type"
 msgstr "Type"
 
-#: testmanager/api.py:1115 testmanager/model.py:615 testmanager/model.py:619
-#: testmanager/model.py:623 testmanager/model.py:630 testmanager/wiki.py:902
-#: testmanager/wiki.py:978
+#: testmanager/api.py:1125 testmanager/model.py:664 testmanager/model.py:668
+#: testmanager/model.py:672 testmanager/model.py:679 testmanager/wiki.py:953
+#: testmanager/wiki.py:1029
 msgid "ID"
 msgstr "ID"
 
-#: testmanager/api.py:1115
+#: testmanager/api.py:1125
 msgid "Parent ID"
 msgstr "Parent ID"
 
-#: testmanager/api.py:1118
+#: testmanager/api.py:1128
 msgid "Test Plan Title"
 msgstr "Testplan Titel"
 
-#: testmanager/api.py:1120
+#: testmanager/api.py:1130
 msgid "Title"
 msgstr "Titel"
 
-#: testmanager/api.py:1123 testmanager/model.py:636
+#: testmanager/api.py:1133 testmanager/model.py:685
 msgid "Contains all Test Cases"
 msgstr "Enthält alle Testfälle"
 
-#: testmanager/api.py:1123
+#: testmanager/api.py:1133
 msgid "Snapshot"
 msgstr "Snapshot"
 
-#: testmanager/api.py:1127 testmanager/wiki.py:912
+#: testmanager/api.py:1137 testmanager/wiki.py:963
 #: testmanager/templates/admin_templates.html:28
 #: testmanager/templates/admin_templates.html:59
 #: testmanager/templates/admin_templates.html:139
 msgid "Description"
 msgstr "Beschreibung"
 
-#: testmanager/api.py:1149 testmanager/wiki.py:987
+#: testmanager/api.py:1159 testmanager/wiki.py:1038
 msgid "Last Change"
 msgstr "Letzte Änderung"
 
-#: testmanager/api.py:1188 testmanager/api.py:1189
+#: testmanager/api.py:1198 testmanager/api.py:1199
 msgid "No"
 msgstr "Ja"
 
-#: testmanager/api.py:1188 testmanager/api.py:1189
+#: testmanager/api.py:1198 testmanager/api.py:1199
 msgid "Yes"
 msgstr "Nein"
 
-#: testmanager/model.py:616 testmanager/model.py:620 testmanager/model.py:625
-#: testmanager/model.py:632
+#: testmanager/model.py:665 testmanager/model.py:669 testmanager/model.py:674
+#: testmanager/model.py:681
 msgid "Wiki page name"
 msgstr "Wiki-Seiten-Name"
 
-#: testmanager/model.py:624
+#: testmanager/model.py:673
 msgid "Plan ID"
 msgstr "Plan ID"
 
-#: testmanager/model.py:626
+#: testmanager/model.py:675
 msgid "Wiki page version"
 msgstr "Wiki-Page Version"
 
-#: testmanager/model.py:631
+#: testmanager/model.py:680
 msgid "Catalog ID"
 msgstr "Verzeichnis ID"
 
-#: testmanager/model.py:633 testmanager/wiki.py:893 testmanager/wiki.py:969
+#: testmanager/model.py:682 testmanager/wiki.py:944 testmanager/wiki.py:1020
 #: testmanager/templates/admin_settings.html:32
 #: testmanager/templates/admin_templates.html:28
 #: testmanager/templates/admin_templates.html:59
 msgid "Name"
 msgstr "Name"
 
-#: testmanager/model.py:635
+#: testmanager/model.py:684
 msgid "Created"
 msgstr "Erstellt"
 
-#: testmanager/model.py:637
+#: testmanager/model.py:686
 msgid "Freeze Test Case versions"
 msgstr "Testfall-Version einfrieren"
 
-#: testmanager/model.py:768 testmanager/wiki.py:364 testmanager/wiki.py:424
+#: testmanager/model.py:817 testmanager/wiki.py:405 testmanager/wiki.py:465
 msgid "Test Case"
 msgstr "Testfall"
 
-#: testmanager/model.py:772
+#: testmanager/model.py:821
 msgid "Test Plan"
 msgstr "Testplan"
 
-#: testmanager/model.py:777 testmanager/stats.py:241
+#: testmanager/model.py:826 testmanager/stats.py:241
 msgid "Successful"
 msgstr "Erfolgreich"
 
-#: testmanager/model.py:778
+#: testmanager/model.py:827
 msgid "Untested"
 msgstr "Ungetestet"
 
-#: testmanager/model.py:779 testmanager/stats.py:241
+#: testmanager/model.py:828 testmanager/stats.py:241
 msgid "Failed"
 msgstr "Fehlgeschlagen"
 
 msgid "Test Manager"
 msgstr "Testmanager"
 
-#: testmanager/wiki.py:157
+#: testmanager/wiki.py:150
 msgid ""
-"Select the catalog into which to paste the Test Cases and click on 'Paste "
-"the copied Test Cases here'. "
+"You cannot delete a Test Plan this way. Expand the Test Plans list under "
+"the corrisponding Catalog and use the X buttons to delete the Test Plans."
+msgstr ""
+
+#: testmanager/wiki.py:159
+msgid "You cannot delete the root catalogs list."
+msgstr ""
+
+#: testmanager/wiki.py:164
+msgid ""
+"Deleting this Test Catalog will delete all the contained Test Catalogs, "
+"Test Cases, Test Plans and the status history of them."
+msgstr ""
+
+#: testmanager/wiki.py:188
+msgid ""
+"Select the catalog into which to paste the Test Cases and click on 'Paste"
+" the copied Test Cases here'. "
 msgstr ""
 "Verzeichnis zum Einfügen der Testfälle auswählen und 'Kopierte Testfälle "
 "hierher einfügen' anklicken."
 
-#: testmanager/wiki.py:158 testmanager/wiki.py:162 testmanager/wiki.py:184
-#: testmanager/wiki.py:189 testmanager/wiki.py:354 testmanager/wiki.py:359
+#: testmanager/wiki.py:189 testmanager/wiki.py:193 testmanager/wiki.py:215
+#: testmanager/wiki.py:220 testmanager/wiki.py:395 testmanager/wiki.py:400
 #: testmanager/templates/admin_templates.html:155
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: testmanager/wiki.py:161
+#: testmanager/wiki.py:192
 msgid ""
-"Select the catalog into which to paste the Test Case and click on 'Move the "
-"copied Test Case here'. "
+"Select the catalog into which to paste the Test Case and click on 'Move "
+"the copied Test Case here'. "
 msgstr ""
 "Verzeichnis zum Einfügen des Testfalls auswählen und 'Kopierten Testfall "
 "hierher verschieben' anklicken."
 
-#: testmanager/wiki.py:164
+#: testmanager/wiki.py:195
 msgid "Test Catalogs List"
 msgstr "Test-Verzeichnis-Liste"
 
-#: testmanager/wiki.py:167
+#: testmanager/wiki.py:198
 msgid "New Catalog:"
 msgstr "Neues Verzeichnis:"
 
-#: testmanager/wiki.py:168
+#: testmanager/wiki.py:199
 msgid "Add a Catalog"
 msgstr "Verzeichnis hinzufügen"
 
-#: testmanager/wiki.py:183
+#: testmanager/wiki.py:214
 msgid ""
-"Select the catalog (even this one) into which to paste the Test Cases and "
-"click on 'Paste the copied Test Cases here'. "
+"Select the catalog (even this one) into which to paste the Test Cases and"
+" click on 'Paste the copied Test Cases here'. "
 msgstr ""
 "Verzeichnis zum Einfügen der Testfälle auswählen (auch das aktuelle) und "
 "'Kopierte Testfälle hierher einfügen' anklicken."
 
-#: testmanager/wiki.py:188
+#: testmanager/wiki.py:219
 msgid ""
 "Select the catalog (even this one) into which to paste the Test Case and "
 "click on 'Move the copied Test Case here'. "
 "Verzeichnis zum Einfügen des Testfalls auswählen (auch das aktuelle) und "
 "'Kopierten Testfall hierher verschieben ' anklicken."
 
-#: testmanager/wiki.py:192 testmanager/templates/admin_templates.html:102
+#: testmanager/wiki.py:223 testmanager/templates/admin_templates.html:102
 msgid "Test Catalog"
 msgstr "Test-Verzeichnis"
 
-#: testmanager/wiki.py:194
+#: testmanager/wiki.py:225
 msgid "New Sub-Catalog:"
 msgstr "Neues Unterverzeichnis:"
 
-#: testmanager/wiki.py:195
+#: testmanager/wiki.py:226
 msgid "Add a Sub-Catalog"
 msgstr "Unterverzeichnis hinzufügen"
 
-#: testmanager/wiki.py:226
+#: testmanager/wiki.py:257
 msgid "New Test Case:"
 msgstr "Neuer Testfall"
 
-#: testmanager/wiki.py:230
+#: testmanager/wiki.py:261
 msgid "Add a Test Case"
 msgstr "Testfall hinzufügen"
 
-#: testmanager/wiki.py:234
+#: testmanager/wiki.py:265
 msgid "New Test Plan:"
 msgstr "Neuer Testplan:"
 
-#: testmanager/wiki.py:238
+#: testmanager/wiki.py:269
 msgid "Generate a new Test Plan"
 msgstr "Neuen Testplan erstellen"
 
-#: testmanager/wiki.py:248
+#: testmanager/wiki.py:279
 msgid "Select Multiple Test Cases"
 msgstr "Mehrfache Testfälle auswählen"
 
-#: testmanager/wiki.py:251
+#: testmanager/wiki.py:282
 msgid "Copy the Selected Test Cases"
 msgstr "Ausgewählte Testfälle kopieren"
 
-#: testmanager/wiki.py:255
+#: testmanager/wiki.py:286
 msgid "Paste the copied Test Cases here"
 msgstr "Kopierte Testfälle hierher einfügen"
 
-#: testmanager/wiki.py:258
+#: testmanager/wiki.py:289
 msgid "Move the copied Test Case here"
 msgstr "Kopierten Testfall hierher verschieben "
 
-#: testmanager/wiki.py:262
+#: testmanager/wiki.py:293
 msgid "Import Test Cases"
 msgstr "Testfälle importieren"
 
-#: testmanager/wiki.py:265
+#: testmanager/wiki.py:296
 msgid "Export Test Catalog"
 msgstr "Test-Verzeichnis exportieren"
 
-#: testmanager/wiki.py:297 testmanager/wiki.py:464
+#: testmanager/wiki.py:310
+msgid "Delete this version"
+msgstr ""
+
+#: testmanager/wiki.py:311
+#, fuzzy
+msgid "Delete Test Catalog"
+msgstr "Test-Verzeichnis"
+
+#: testmanager/wiki.py:336 testmanager/wiki.py:505
 msgid "Back to the Catalog"
 msgstr "Zürück zum Verzeichnis"
 
-#: testmanager/wiki.py:308
+#: testmanager/wiki.py:347
 msgid "Test Plan: "
 msgstr "Testplan:"
 
-#: testmanager/wiki.py:318
+#: testmanager/wiki.py:357
 msgid "Export Test Plan"
 msgstr "Testplan exportieren"
 
-#: testmanager/wiki.py:353
+#: testmanager/wiki.py:394
 msgid ""
-"The Test Cases have been copied. Now select the catalog into which to paste "
-"the Test Cases and click on 'Paste the copied Test Cases here'.  "
+"The Test Cases have been copied. Now select the catalog into which to "
+"paste the Test Cases and click on 'Paste the copied Test Cases here'.  "
 msgstr ""
 "Die Testfälle wurden kopiert. Jetzt das Verzeichnis zum Einfügen der "
-"Testfälle auswählen und 'Kopierte Testfälle hierher verschieben' anklicken."
+"Testfälle auswählen und 'Kopierte Testfälle hierher verschieben' "
+"anklicken."
 
-#: testmanager/wiki.py:358
+#: testmanager/wiki.py:399
 msgid ""
-"The Test Case has been cut. Now select the catalog into which to move the "
-"Test Case and click on 'Move the copied Test Case here'. "
+"The Test Case has been cut. Now select the catalog into which to move the"
+" Test Case and click on 'Move the copied Test Case here'. "
 msgstr ""
-"Der Testfall wurde ausgeschnitten. Jetzt das Verzeichnis zum Einfügen des "
-"Testfalls auswählen und 'Kopierten Testfall hierher verschieben ' anklicken."
+"Der Testfall wurde ausgeschnitten. Jetzt das Verzeichnis zum Einfügen des"
+" Testfalls auswählen und 'Kopierten Testfall hierher verschieben ' "
+"anklicken."
 
-#: testmanager/wiki.py:373 testmanager/wiki.py:435
+#: testmanager/wiki.py:414 testmanager/wiki.py:476
 msgid "Open a Ticket on this Test Case"
 msgstr "Ticket zu diesem Testfall öffnen"
 
-#: testmanager/wiki.py:375 testmanager/wiki.py:437
+#: testmanager/wiki.py:416 testmanager/wiki.py:478
 msgid "Show Related Tickets"
 msgstr "Zugehörige Tickets anzeigen"
 
-#: testmanager/wiki.py:377
+#: testmanager/wiki.py:418
 msgid "Move the Test Case into another catalog"
 msgstr "Testfall in ein anderes Verzeichnis verschieben"
 
-#: testmanager/wiki.py:379
+#: testmanager/wiki.py:420
 msgid "Duplicate the Test Case"
 msgstr "Testfall kopieren"
 
-#: testmanager/wiki.py:457
+#: testmanager/wiki.py:498
 msgid "Back to the Test Plan"
 msgstr "Zürück zum Testplan"
 
-#: testmanager/wiki.py:521
+#: testmanager/wiki.py:562
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: testmanager/wiki.py:525
+#: testmanager/wiki.py:566
 msgid "Save"
 msgstr "Speichern"
 
-#: testmanager/wiki.py:596
+#: testmanager/wiki.py:637
 msgid "Object change history"
 msgstr "Objekt-Änderungs-Geschichte"
 
-#: testmanager/wiki.py:599
+#: testmanager/wiki.py:640
 msgid "Property"
 msgstr "Eigenschaft"
 
-#: testmanager/wiki.py:599
+#: testmanager/wiki.py:640
 msgid "Previous Value"
 msgstr "Verheriger Wert"
 
-#: testmanager/wiki.py:599
+#: testmanager/wiki.py:640
 msgid "New Value"
 msgstr "Neuer Wert"
 
-#: testmanager/wiki.py:826
+#: testmanager/wiki.py:790
+msgid "An error occurred performing the operation.<br /><br />Please try again."
+msgstr ""
+
+#: testmanager/wiki.py:877
 msgid "All Catalogs"
 msgstr "Alle Verzeichnisse"
 
-#: testmanager/wiki.py:867 testmanager/wiki.py:888 testmanager/wiki.py:942
-#: testmanager/wiki.py:964 testmanager/wiki.py:1020
+#: testmanager/wiki.py:918 testmanager/wiki.py:939 testmanager/wiki.py:993
+#: testmanager/wiki.py:1015 testmanager/wiki.py:1071
 msgid "Filter:"
 msgstr "Filter:"
 
-#: testmanager/wiki.py:867 testmanager/wiki.py:888 testmanager/wiki.py:942
-#: testmanager/wiki.py:964
+#: testmanager/wiki.py:918 testmanager/wiki.py:939 testmanager/wiki.py:993
+#: testmanager/wiki.py:1015
 msgid ""
-"Type the test to search for, even more than one word. You can also filter on"
-" the test case status (untested, successful, failed)."
+"Type the test to search for, even more than one word. You can also filter"
+" on the test case status (untested, successful, failed)."
 msgstr ""
-"Sucheingabefeld für Testfall. Auch mehrere Wörter möglich. Filterung kann "
-"auch den Testfall-Status (untested, successful, failed) beinhalten."
+"Sucheingabefeld für Testfall. Auch mehrere Wörter möglich. Filterung kann"
+" auch den Testfall-Status (untested, successful, failed) beinhalten."
 
-#: testmanager/wiki.py:868 testmanager/wiki.py:943
+#: testmanager/wiki.py:919 testmanager/wiki.py:994
 msgid "Expand all"
 msgstr "Alles ausklappen"
 
-#: testmanager/wiki.py:868 testmanager/wiki.py:943
+#: testmanager/wiki.py:919 testmanager/wiki.py:994
 msgid "Collapse all"
 msgstr "Alles einklappen"
 
-#: testmanager/wiki.py:1019
+#: testmanager/wiki.py:1070
 msgid "Available Test Plans"
 msgstr "Verfügbare Testpläne"
 
-#: testmanager/wiki.py:1020
+#: testmanager/wiki.py:1071
 msgid "Type the test to search for, even more than one word."
-msgstr ""
-"Einfügen des Tests, nach dem gesucht werden soll (mehrere Wörter erlaubt)."
+msgstr "Einfügen des Tests, nach dem gesucht werden soll (mehrere Wörter erlaubt)."
 
-#: testmanager/wiki.py:1034
+#: testmanager/wiki.py:1085
 msgid "Plan Name"
 msgstr "Plan-Name"
 
-#: testmanager/wiki.py:1040
+#: testmanager/wiki.py:1091
 msgid "Open Test Plan"
 msgstr "Testplan öffnen"
 
-#: testmanager/wiki.py:1045
+#: testmanager/wiki.py:1096
 msgid "Delete"
 msgstr "Löschen"
 
-#: testmanager/wiki.py:1113 testmanager/wiki.py:1220
+#: testmanager/wiki.py:1165 testmanager/wiki.py:1271
 msgid "Open"
 msgstr "Öffnen"
 
-#: testmanager/wiki.py:1162 testmanager/wiki.py:1164
+#: testmanager/wiki.py:1213 testmanager/wiki.py:1215
 msgid "Edit the Test Case"
 msgstr "Testfall bearbeiten"
 
-#: testmanager/wiki.py:1188 testmanager/wiki.py:1286 testmanager/wiki.py:1424
+#: testmanager/wiki.py:1239 testmanager/wiki.py:1336 testmanager/wiki.py:1474
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: testmanager/wiki.py:1366
+#: testmanager/wiki.py:1416
 msgid "Change the Status:"
 msgstr "Status ändern"
 
-#: testmanager/wiki.py:1414
+#: testmanager/wiki.py:1464
 msgid "Status change history"
 msgstr "Statusänderungen"
 
 msgid "(CSV format)"
 msgstr "(CSV Format)"
 
-

testman4trac/trunk/testmanager/locale/es/LC_MESSAGES/testmanager-js.mo

Binary file modified.

testman4trac/trunk/testmanager/locale/es/LC_MESSAGES/testmanager-js.po

 "Project-Id-Version: Test Manager for Trac plugin\n"
 "Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin"
 "\n"
-"POT-Creation-Date: 2012-01-03 23:58+0100\n"
+"POT-Creation-Date: 2012-03-03 23:25+0100\n"
 "PO-Revision-Date: 2011-08-13 22:12+0000\n"
 "Last-Translator: crossroad <jesuchristopher@gmail.com>\n"
 "Language-Team: Spanish (Castilian) "

testman4trac/trunk/testmanager/locale/es/LC_MESSAGES/testmanager.mo

Binary file modified.

testman4trac/trunk/testmanager/locale/es/LC_MESSAGES/testmanager.po

 "Project-Id-Version: Test Manager for Trac plugin\n"
 "Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin"
 "\n"
-"POT-Creation-Date: 2012-01-03 23:58+0100\n"
+"POT-Creation-Date: 2012-06-03 12:56+0200\n"
 "PO-Revision-Date: 2011-08-13 22:08+0000\n"
 "Last-Translator: crossroad <jesuchristopher@gmail.com>\n"
 "Language-Team: Spanish (Castilian) "
 msgid "Template saved"
 msgstr ""
 
-#: testmanager/api.py:247 testmanager/wiki.py:599 testmanager/wiki.py:1034
-#: testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/wiki.py:640 testmanager/wiki.py:1085
+#: testmanager/wiki.py:1467
 msgid "Timestamp"
 msgstr "Fecha Hora Registro"
 
-#: testmanager/api.py:247 testmanager/api.py:1149 testmanager/model.py:634
-#: testmanager/wiki.py:599 testmanager/wiki.py:987 testmanager/wiki.py:1034
-#: testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/api.py:1159 testmanager/model.py:683
+#: testmanager/wiki.py:640 testmanager/wiki.py:1038 testmanager/wiki.py:1085
+#: testmanager/wiki.py:1467
 msgid "Author"
 msgstr "Autor"
 
-#: testmanager/api.py:247 testmanager/api.py:260 testmanager/api.py:1149
-#: testmanager/model.py:627 testmanager/wiki.py:987 testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/api.py:260 testmanager/api.py:1159
+#: testmanager/model.py:676 testmanager/wiki.py:1038 testmanager/wiki.py:1467
 msgid "Status"
 msgstr "Estado"
 
-#: testmanager/api.py:372
+#: testmanager/api.py:380
 msgid "Error adding test catalog"
 msgstr ""
 
-#: testmanager/api.py:496
+#: testmanager/api.py:504
 msgid "Error adding test case"
 msgstr ""
 
-#: testmanager/api.py:1115
+#: testmanager/api.py:1125
 msgid "Type"
 msgstr ""
 
-#: testmanager/api.py:1115 testmanager/model.py:615 testmanager/model.py:619
-#: testmanager/model.py:623 testmanager/model.py:630 testmanager/wiki.py:902
-#: testmanager/wiki.py:978
+#: testmanager/api.py:1125 testmanager/model.py:664 testmanager/model.py:668
+#: testmanager/model.py:672 testmanager/model.py:679 testmanager/wiki.py:953
+#: testmanager/wiki.py:1029
 msgid "ID"
 msgstr "ID"
 
-#: testmanager/api.py:1115
+#: testmanager/api.py:1125
 msgid "Parent ID"
 msgstr ""
 
-#: testmanager/api.py:1118
+#: testmanager/api.py:1128
 #, fuzzy
 msgid "Test Plan Title"
 msgstr "Título de la Prueba"
 
-#: testmanager/api.py:1120
+#: testmanager/api.py:1130
 #, fuzzy
 msgid "Title"
 msgstr "Título de la Prueba"
 
-#: testmanager/api.py:1123 testmanager/model.py:636
+#: testmanager/api.py:1133 testmanager/model.py:685
 msgid "Contains all Test Cases"
 msgstr ""
 
-#: testmanager/api.py:1123
+#: testmanager/api.py:1133
 msgid "Snapshot"
 msgstr ""
 
-#: testmanager/api.py:1127 testmanager/wiki.py:912
+#: testmanager/api.py:1137 testmanager/wiki.py:963
 #: testmanager/templates/admin_templates.html:28
 #: testmanager/templates/admin_templates.html:59
 #: testmanager/templates/admin_templates.html:139
 msgid "Description"
 msgstr "Descripción"
 
-#: testmanager/api.py:1149 testmanager/wiki.py:987
+#: testmanager/api.py:1159 testmanager/wiki.py:1038
 msgid "Last Change"
 msgstr "Ultimo Cambio"
 
-#: testmanager/api.py:1188 testmanager/api.py:1189
+#: testmanager/api.py:1198 testmanager/api.py:1199
 msgid "No"
 msgstr ""
 
-#: testmanager/api.py:1188 testmanager/api.py:1189
+#: testmanager/api.py:1198 testmanager/api.py:1199
 msgid "Yes"
 msgstr ""
 
-#: testmanager/model.py:616 testmanager/model.py:620 testmanager/model.py:625
-#: testmanager/model.py:632
+#: testmanager/model.py:665 testmanager/model.py:669 testmanager/model.py:674
+#: testmanager/model.py:681
 msgid "Wiki page name"
 msgstr "Nombre de la Pagina Wiki"
 
-#: testmanager/model.py:624
+#: testmanager/model.py:673
 msgid "Plan ID"
 msgstr "Plan ID"
 
-#: testmanager/model.py:626
+#: testmanager/model.py:675
 msgid "Wiki page version"
 msgstr ""
 
-#: testmanager/model.py:631
+#: testmanager/model.py:680
 msgid "Catalog ID"
 msgstr "Catalogo ID"
 
-#: testmanager/model.py:633 testmanager/wiki.py:893 testmanager/wiki.py:969
+#: testmanager/model.py:682 testmanager/wiki.py:944 testmanager/wiki.py:1020
 #: testmanager/templates/admin_settings.html:32
 #: testmanager/templates/admin_templates.html:28
 #: testmanager/templates/admin_templates.html:59
 msgid "Name"
 msgstr "Nombre"
 
-#: testmanager/model.py:635
+#: testmanager/model.py:684
 msgid "Created"
 msgstr "Creado"
 
-#: testmanager/model.py:637
+#: testmanager/model.py:686
 msgid "Freeze Test Case versions"
 msgstr ""
 
-#: testmanager/model.py:768 testmanager/wiki.py:364 testmanager/wiki.py:424
+#: testmanager/model.py:817 testmanager/wiki.py:405 testmanager/wiki.py:465
 msgid "Test Case"
 msgstr "Caso de Prueba"
 
-#: testmanager/model.py:772
+#: testmanager/model.py:821
 msgid "Test Plan"
 msgstr "Plan de Pruebas"
 
-#: testmanager/model.py:777 testmanager/stats.py:241
+#: testmanager/model.py:826 testmanager/stats.py:241
 msgid "Successful"
 msgstr "Exitoso"
 
-#: testmanager/model.py:778
+#: testmanager/model.py:827
 msgid "Untested"
 msgstr "Sin Revisar"
 
-#: testmanager/model.py:779 testmanager/stats.py:241
+#: testmanager/model.py:828 testmanager/stats.py:241
 msgid "Failed"
 msgstr "Fallido"
 
 msgid "Test Manager"
 msgstr "Administrador de Pruebas"
 
-#: testmanager/wiki.py:157
+#: testmanager/wiki.py:150
+msgid ""
+"You cannot delete a Test Plan this way. Expand the Test Plans list under "
+"the corrisponding Catalog and use the X buttons to delete the Test Plans."
+msgstr ""
+
+#: testmanager/wiki.py:159
+msgid "You cannot delete the root catalogs list."
+msgstr ""
+
+#: testmanager/wiki.py:164
+msgid ""
+"Deleting this Test Catalog will delete all the contained Test Catalogs, "
+"Test Cases, Test Plans and the status history of them."
+msgstr ""
+
+#: testmanager/wiki.py:188
 msgid ""
 "Select the catalog into which to paste the Test Cases and click on 'Paste"
 " the copied Test Cases here'. "
 "luego haga clic sobre el botón \"Pegar aquí los Casos de Pruebas "
 "Copiados\""
 
-#: testmanager/wiki.py:158 testmanager/wiki.py:162 testmanager/wiki.py:184
-#: testmanager/wiki.py:189 testmanager/wiki.py:354 testmanager/wiki.py:359
+#: testmanager/wiki.py:189 testmanager/wiki.py:193 testmanager/wiki.py:215
+#: testmanager/wiki.py:220 testmanager/wiki.py:395 testmanager/wiki.py:400
 #: testmanager/templates/admin_templates.html:155
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: testmanager/wiki.py:161
+#: testmanager/wiki.py:192
 msgid ""
 "Select the catalog into which to paste the Test Case and click on 'Move "
 "the copied Test Case here'. "
 "Pruebas y luego haga clic sobre el botón \"Mover aquí los Casos de "
 "Pruebas Copiados\""
 
-#: testmanager/wiki.py:164
+#: testmanager/wiki.py:195
 msgid "Test Catalogs List"
 msgstr "Lista de Catalogos de Pruebas"
 
-#: testmanager/wiki.py:167
+#: testmanager/wiki.py:198
 msgid "New Catalog:"
 msgstr "Nuevo Catálogo"
 
-#: testmanager/wiki.py:168
+#: testmanager/wiki.py:199
 msgid "Add a Catalog"
 msgstr "Añadir Catálogo"
 
-#: testmanager/wiki.py:183
+#: testmanager/wiki.py:214
 msgid ""
 "Select the catalog (even this one) into which to paste the Test Cases and"
 " click on 'Paste the copied Test Cases here'. "
 "Pruebas y luego haga clic sobre el botón \"Pegar aquí los Casos de "
 "Pruebas Copiados\""
 
-#: testmanager/wiki.py:188
+#: testmanager/wiki.py:219
 msgid ""
 "Select the catalog (even this one) into which to paste the Test Case and "
 "click on 'Move the copied Test Case here'. "
 "Pruebas y luego haga clic sobre el botón \"Mover aquí los Casos de "
 "Pruebas Copiados\""
 
-#: testmanager/wiki.py:192 testmanager/templates/admin_templates.html:102
+#: testmanager/wiki.py:223 testmanager/templates/admin_templates.html:102
 msgid "Test Catalog"
 msgstr "Catálogo de Pruebas"
 
-#: testmanager/wiki.py:194
+#: testmanager/wiki.py:225
 msgid "New Sub-Catalog:"
 msgstr "Nuevo Sub-Catálogo"
 
-#: testmanager/wiki.py:195
+#: testmanager/wiki.py:226
 msgid "Add a Sub-Catalog"
 msgstr "Añadir un Sub-Catálogo"
 
-#: testmanager/wiki.py:226
+#: testmanager/wiki.py:257
 msgid "New Test Case:"
 msgstr "Nuevo Caso de Prueba"
 
-#: testmanager/wiki.py:230
+#: testmanager/wiki.py:261
 msgid "Add a Test Case"
 msgstr "Añadir un Caso de Prueba"
 
-#: testmanager/wiki.py:234
+#: testmanager/wiki.py:265
 msgid "New Test Plan:"
 msgstr "Nuevo Plan de Pruebas"
 
-#: testmanager/wiki.py:238
+#: testmanager/wiki.py:269
 msgid "Generate a new Test Plan"
 msgstr "Generar un nuevo Plan de Pruebas"
 
-#: testmanager/wiki.py:248
+#: testmanager/wiki.py:279
 msgid "Select Multiple Test Cases"
 msgstr "Seleccionar Multiples Casos de Pruebas"
 
-#: testmanager/wiki.py:251
+#: testmanager/wiki.py:282
 msgid "Copy the Selected Test Cases"
 msgstr "Copiar los Casos de Pruebas Seleccionados"
 
-#: testmanager/wiki.py:255
+#: testmanager/wiki.py:286
 msgid "Paste the copied Test Cases here"
 msgstr "Pegar aquí los Casos de Pruebas Copiados"
 
-#: testmanager/wiki.py:258
+#: testmanager/wiki.py:289
 msgid "Move the copied Test Case here"
 msgstr "Mover aquí los Casos de Pruebas Copiados"
 
-#: testmanager/wiki.py:262
+#: testmanager/wiki.py:293
 msgid "Import Test Cases"
 msgstr "Importar Casos de Pruebas"
 
-#: testmanager/wiki.py:265
+#: testmanager/wiki.py:296
 #, fuzzy
 msgid "Export Test Catalog"
 msgstr "Catálogo de Pruebas"
 
-#: testmanager/wiki.py:297 testmanager/wiki.py:464
+#: testmanager/wiki.py:310
+msgid "Delete this version"
+msgstr ""
+
+#: testmanager/wiki.py:311
+#, fuzzy
+msgid "Delete Test Catalog"
+msgstr "Catálogo de Pruebas"
+
+#: testmanager/wiki.py:336 testmanager/wiki.py:505
 msgid "Back to the Catalog"
 msgstr "Volver al Catálogo"
 
-#: testmanager/wiki.py:308
+#: testmanager/wiki.py:347
 msgid "Test Plan: "
 msgstr "Plan de Pruebas:"
 
-#: testmanager/wiki.py:318
+#: testmanager/wiki.py:357
 #, fuzzy
 msgid "Export Test Plan"
 msgstr "Importar Casos de Pruebas"
 
-#: testmanager/wiki.py:353
+#: testmanager/wiki.py:394
 msgid ""
 "The Test Cases have been copied. Now select the catalog into which to "
 "paste the Test Cases and click on 'Paste the copied Test Cases here'.  "
 msgstr ""
 
-#: testmanager/wiki.py:358
+#: testmanager/wiki.py:399
 msgid ""
 "The Test Case has been cut. Now select the catalog into which to move the"
 " Test Case and click on 'Move the copied Test Case here'. "
 msgstr ""
 
-#: testmanager/wiki.py:373 testmanager/wiki.py:435
+#: testmanager/wiki.py:414 testmanager/wiki.py:476
 msgid "Open a Ticket on this Test Case"
 msgstr "Abrir un Ticket sobre este Caso de Prueba"
 
-#: testmanager/wiki.py:375 testmanager/wiki.py:437
+#: testmanager/wiki.py:416 testmanager/wiki.py:478
 msgid "Show Related Tickets"
 msgstr "Ver Tickets Relacionados"
 
-#: testmanager/wiki.py:377
+#: testmanager/wiki.py:418
 msgid "Move the Test Case into another catalog"
 msgstr ""
 
-#: testmanager/wiki.py:379
+#: testmanager/wiki.py:420
 msgid "Duplicate the Test Case"
 msgstr "Duplicar Caso de Prueba"
 
-#: testmanager/wiki.py:457
+#: testmanager/wiki.py:498
 msgid "Back to the Test Plan"
 msgstr "Volver al Plan de Pruebas"
 
-#: testmanager/wiki.py:521
+#: testmanager/wiki.py:562
 msgid "Edit"
 msgstr "Editar"
 
-#: testmanager/wiki.py:525
+#: testmanager/wiki.py:566
 msgid "Save"
 msgstr "Guardar"
 
-#: testmanager/wiki.py:596
+#: testmanager/wiki.py:637
 msgid "Object change history"
 msgstr ""
 
-#: testmanager/wiki.py:599
+#: testmanager/wiki.py:640
 msgid "Property"
 msgstr ""
 
-#: testmanager/wiki.py:599
+#: testmanager/wiki.py:640
 msgid "Previous Value"
 msgstr ""
 
-#: testmanager/wiki.py:599
+#: testmanager/wiki.py:640
 msgid "New Value"
 msgstr ""
 
-#: testmanager/wiki.py:826
+#: testmanager/wiki.py:790
+msgid "An error occurred performing the operation.<br /><br />Please try again."
+msgstr ""
+
+#: testmanager/wiki.py:877
 msgid "All Catalogs"
 msgstr "Todos los Catálogos"
 
-#: testmanager/wiki.py:867 testmanager/wiki.py:888 testmanager/wiki.py:942
-#: testmanager/wiki.py:964 testmanager/wiki.py:1020
+#: testmanager/wiki.py:918 testmanager/wiki.py:939 testmanager/wiki.py:993
+#: testmanager/wiki.py:1015 testmanager/wiki.py:1071
 msgid "Filter:"
 msgstr "Filtro:"
 
-#: testmanager/wiki.py:867 testmanager/wiki.py:888 testmanager/wiki.py:942
-#: testmanager/wiki.py:964
+#: testmanager/wiki.py:918 testmanager/wiki.py:939 testmanager/wiki.py:993
+#: testmanager/wiki.py:1015
 msgid ""
 "Type the test to search for, even more than one word. You can also filter"
 " on the test case status (untested, successful, failed)."
 "También puede filtrar por el estado de un caso de prueba(Sin Revisar, "
 "Existoso, Fallido)"
 
-#: testmanager/wiki.py:868 testmanager/wiki.py:943
+#: testmanager/wiki.py:919 testmanager/wiki.py:994
 msgid "Expand all"
 msgstr "Expandir todo"
 
-#: testmanager/wiki.py:868 testmanager/wiki.py:943
+#: testmanager/wiki.py:919 testmanager/wiki.py:994
 msgid "Collapse all"
 msgstr "Colapsar todo"
 
-#: testmanager/wiki.py:1019
+#: testmanager/wiki.py:1070
 msgid "Available Test Plans"
 msgstr "Planes de Pruebas Disponibles"
 
-#: testmanager/wiki.py:1020
+#: testmanager/wiki.py:1071
 msgid "Type the test to search for, even more than one word."
 msgstr ""
 
-#: testmanager/wiki.py:1034
+#: testmanager/wiki.py:1085
 msgid "Plan Name"
 msgstr "Nombre del Plan"
 
-#: testmanager/wiki.py:1040
+#: testmanager/wiki.py:1091
 msgid "Open Test Plan"
 msgstr "Plan de Pruebas abierto"
 
-#: testmanager/wiki.py:1045
+#: testmanager/wiki.py:1096
 msgid "Delete"
 msgstr "Eliminar"
 
-#: testmanager/wiki.py:1113 testmanager/wiki.py:1220
+#: testmanager/wiki.py:1165 testmanager/wiki.py:1271
 msgid "Open"
 msgstr "Abrir"
 
-#: testmanager/wiki.py:1162 testmanager/wiki.py:1164
+#: testmanager/wiki.py:1213 testmanager/wiki.py:1215
 msgid "Edit the Test Case"
 msgstr "Editar el Caso de Prueba"
 
-#: testmanager/wiki.py:1188 testmanager/wiki.py:1286 testmanager/wiki.py:1424
+#: testmanager/wiki.py:1239 testmanager/wiki.py:1336 testmanager/wiki.py:1474
 msgid "Unknown"
 msgstr ""
 
-#: testmanager/wiki.py:1366
+#: testmanager/wiki.py:1416
 msgid "Change the Status:"
 msgstr "Cambio el Estado"
 
-#: testmanager/wiki.py:1414
+#: testmanager/wiki.py:1464
 msgid "Status change history"
 msgstr "Historial de Cambios de Estado"
 
 msgid "(CSV format)"
 msgstr "(Formato CSV)"
 
-#~ msgid "Location of YUI URL:"
-#~ msgstr ""
-

testman4trac/trunk/testmanager/locale/fr/LC_MESSAGES/testmanager-js.mo

Binary file modified.

testman4trac/trunk/testmanager/locale/fr/LC_MESSAGES/testmanager-js.po

 "Project-Id-Version: Test Manager for Trac plugin\n"
 "Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin"
 "\n"
-"POT-Creation-Date: 2012-01-03 23:58+0100\n"
+"POT-Creation-Date: 2012-03-03 23:25+0100\n"
 "PO-Revision-Date: 2011-09-28 21:08+0000\n"
 "Last-Translator: chareyron <>\n"
 "Language-Team: French "

testman4trac/trunk/testmanager/locale/fr/LC_MESSAGES/testmanager.mo

Binary file modified.

testman4trac/trunk/testmanager/locale/fr/LC_MESSAGES/testmanager.po

 "Project-Id-Version: Test Manager for Trac plugin\n"
 "Report-Msgid-Bugs-To: http://trac-hacks.org/wiki/TestManagerForTracPlugin"
 "\n"
-"POT-Creation-Date: 2012-01-03 23:58+0100\n"
+"POT-Creation-Date: 2012-06-03 12:56+0200\n"
 "PO-Revision-Date: 2011-09-28 21:04+0000\n"
 "Last-Translator: chareyron <>\n"
 "Language-Team: French "
 msgid "Template saved"
 msgstr ""
 
-#: testmanager/api.py:247 testmanager/wiki.py:599 testmanager/wiki.py:1034
-#: testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/wiki.py:640 testmanager/wiki.py:1085
+#: testmanager/wiki.py:1467
 msgid "Timestamp"
 msgstr "Horodatage"
 
-#: testmanager/api.py:247 testmanager/api.py:1149 testmanager/model.py:634
-#: testmanager/wiki.py:599 testmanager/wiki.py:987 testmanager/wiki.py:1034
-#: testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/api.py:1159 testmanager/model.py:683
+#: testmanager/wiki.py:640 testmanager/wiki.py:1038 testmanager/wiki.py:1085
+#: testmanager/wiki.py:1467
 msgid "Author"
 msgstr "Auteur"
 
-#: testmanager/api.py:247 testmanager/api.py:260 testmanager/api.py:1149
-#: testmanager/model.py:627 testmanager/wiki.py:987 testmanager/wiki.py:1417
+#: testmanager/api.py:247 testmanager/api.py:260 testmanager/api.py:1159
+#: testmanager/model.py:676 testmanager/wiki.py:1038 testmanager/wiki.py:1467
 msgid "Status"
 msgstr "Etat"
 
-#: testmanager/api.py:372
+#: testmanager/api.py:380
 msgid "Error adding test catalog"
 msgstr ""
 
-#: testmanager/api.py:496
+#: testmanager/api.py:504
 msgid "Error adding test case"
 msgstr ""
 
-#: testmanager/api.py:1115
+#: testmanager/api.py:1125
 msgid "Type"
 msgstr ""
 
-#: testmanager/api.py:1115 testmanager/model.py:615 testmanager/model.py:619
-#: testmanager/model.py:623 testmanager/model.py:630 testmanager/wiki.py:902
-#: testmanager/wiki.py:978
+#: testmanager/api.py:1125 testmanager/model.py:664 testmanager/model.py:668
+#: testmanager/model.py:672 testmanager/model.py:679 testmanager/wiki.py:953
+#: testmanager/wiki.py:1029
 msgid "ID"
 msgstr "ID"
 
-#: testmanager/api.py:1115
+#: testmanager/api.py:1125
 msgid "Parent ID"
 msgstr ""
 
-#: testmanager/api.py:1118
+#: testmanager/api.py:1128
 #, fuzzy
 msgid "Test Plan Title"
 msgstr "Titre de la Fiche de Test"
 
-#: testmanager/api.py:1120
+#: testmanager/api.py:1130
 #, fuzzy
 msgid "Title"
 msgstr "Titre de la Fiche de Test"
 
-#: testmanager/api.py:1123 testmanager/model.py:636
+#: testmanager/api.py:1133 testmanager/model.py:685
 msgid "Contains all Test Cases"
 msgstr ""
 
-#: testmanager/api.py:1123
+#: testmanager/api.py:1133
 msgid "Snapshot"
 msgstr ""
 
-#: testmanager/api.py:1127 testmanager/wiki.py:912
+#: testmanager/api.py:1137 testmanager/wiki.py:963
 #: testmanager/templates/admin_templates.html:28
 #: testmanager/templates/admin_templates.html:59
 #: testmanager/templates/admin_templates.html:139
 msgid "Description"
 msgstr "Description"
 
-#: testmanager/api.py:1149 testmanager/wiki.py:987
+#: testmanager/api.py:1159 testmanager/wiki.py:1038
 msgid "Last Change"
 msgstr "Dernière modification"
 
-#: testmanager/api.py:1188 testmanager/api.py:1189
+#: testmanager/api.py:1198 testmanager/api.py:1199
 msgid "No"
 msgstr ""
 
-#: testmanager/api.py:1188 testmanager/api.py:1189
+#: testmanager/api.py:1198 testmanager/api.py:1199
 msgid "Yes"
 msgstr ""
 
-#: testmanager/model.py:616 testmanager/model.py:620 testmanager/model.py:625
-#: testmanager/model.py:632
+#: testmanager/model.py:665 testmanager/model.py:669 testmanager/model.py:674
+#: testmanager/model.py:681
 msgid "Wiki page name"
 msgstr "Nom de la page wiki"
 
-#: testmanager/model.py:624
+#: testmanager/model.py:673
 msgid "Plan ID"
 msgstr "ID du plan"
 
-#: testmanager/model.py:626
+#: testmanager/model.py:675
 msgid "Wiki page version"
 msgstr "Version de la page wiki"
 
-#: testmanager/model.py:631
+#: testmanager/model.py:680
 msgid "Catalog ID"
 msgstr "ID du Catalogue"
 
-#: testmanager/model.py:633 testmanager/wiki.py:893 testmanager/wiki.py:969
+#: testmanager/model.py:682 testmanager/wiki.py:944 testmanager/wiki.py:1020
 #: testmanager/templates/admin_settings.html:32
 #: testmanager/templates/admin_templates.html:28
 #: testmanager/templates/admin_templates.html:59
 msgid "Name"
 msgstr "Nom"
 
-#: testmanager/model.py:635
+#: testmanager/model.py:684
 msgid "Created"
 msgstr "Créé"
 
-#: testmanager/model.py:637
+#: testmanager/model.py:686
 msgid "Freeze Test Case versions"
 msgstr ""
 
-#: testmanager/model.py:768 testmanager/wiki.py:364 testmanager/wiki.py:424
+#: testmanager/model.py:817 testmanager/wiki.py:405 testmanager/wiki.py:465
 msgid "Test Case"
 msgstr "Fiche de Test"
 
-#: testmanager/model.py:772
+#: testmanager/model.py:821
 msgid "Test Plan"
 msgstr "Plan de Tests"
 
-#: testmanager/model.py:777 testmanager/stats.py:241
+#: testmanager/model.py:826 testmanager/stats.py:241
 msgid "Successful"
 msgstr "Succès"
 
-#: testmanager/model.py:778
+#: testmanager/model.py:827
 msgid "Untested"
 msgstr "Non testé"
 
-#: testmanager/model.py:779 testmanager/stats.py:241
+#: testmanager/model.py:828 testmanager/stats.py:241
 msgid "Failed"
 msgstr "Echec"
 
 msgid "Test Manager"
 msgstr "Manager de test"
 
-#: testmanager/wiki.py:157
+#: testmanager/wiki.py:150
+msgid ""
+"You cannot delete a Test Plan this way. Expand the Test Plans list under "
+"the corrisponding Catalog and use the X buttons to delete the Test Plans."
+msgstr ""
+
+#: testmanager/wiki.py:159
+msgid "You cannot delete the root catalogs list."
+msgstr ""
+
+#: testmanager/wiki.py:164
+msgid ""
+"Deleting this Test Catalog will delete all the contained Test Catalogs, "
+"Test Cases, Test Plans and the status history of them."
+msgstr ""
+
+#: testmanager/wiki.py:188