svn commit: r1773551 - in /bloodhound/trunk: bloodhound_dashboard/setup.py bloodhound_multiproduct/setup.py bloodhound_relations/setup.py bloodhound_search/setup.py bloodhound_theme/setup.py installer

2016-12-11 Thread rjollos
Author: rjollos
Date: Sun Dec 11 08:59:49 2016
New Revision: 1773551

URL: http://svn.apache.org/viewvc?rev=1773551=rev
Log:
0.9.0dev: Tidy up `setup.py` and remove `distutils` support

`distutils` is obsolete now and we only need to support
`setuptools`.

Modified:
bloodhound/trunk/bloodhound_dashboard/setup.py
bloodhound/trunk/bloodhound_multiproduct/setup.py
bloodhound/trunk/bloodhound_relations/setup.py
bloodhound/trunk/bloodhound_search/setup.py
bloodhound/trunk/bloodhound_theme/setup.py
bloodhound/trunk/installer/setup.py

Modified: bloodhound/trunk/bloodhound_dashboard/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/setup.py?rev=1773551=1773550=1773551=diff
==
--- bloodhound/trunk/bloodhound_dashboard/setup.py (original)
+++ bloodhound/trunk/bloodhound_dashboard/setup.py Sun Dec 11 08:59:49 2016
@@ -20,10 +20,7 @@
 
 
 import sys
-try:
-from setuptools import setup
-except ImportError:
-from distutils.core import setup
+from setuptools import setup
 
 DESC = """Project dashboard for Apache(TM) Bloodhound.
 
@@ -40,83 +37,76 @@ versions = [
 (0, 7, 0),
 (0, 8, 0),
 (0, 9, 0),
-]
+]
 
 latest = '.'.join(str(x) for x in versions[-1])
 
 status = {
-'planning' :  "Development Status :: 1 - Planning",
-'pre-alpha' : "Development Status :: 2 - Pre-Alpha",
-'alpha' : "Development Status :: 3 - Alpha",
-'beta' :  "Development Status :: 4 - Beta",
-'stable' :"Development Status :: 5 - Production/Stable",
-'mature' :"Development Status :: 6 - Mature",
-'inactive' :  "Development Status :: 7 - Inactive"
- }
+'planning': "Development Status :: 1 - Planning",
+'pre-alpha': "Development Status :: 2 - Pre-Alpha",
+'alpha': "Development Status :: 3 - Alpha",
+'beta': "Development Status :: 4 - Beta",
+'stable': "Development Status :: 5 - Production/Stable",
+'mature': "Development Status :: 6 - Mature",
+'inactive': "Development Status :: 7 - Inactive"
+}
 dev_status = status["alpha"]
 
 cats = [
-  dev_status,
-  "Environment :: Plugins",
-  "Environment :: Web Environment",
-  "Framework :: Trac",
-  "Intended Audience :: Developers",
-  "Intended Audience :: Information Technology",
-  "Intended Audience :: Other Audience",
-  "Intended Audience :: System Administrators",
-  "License :: Unknown",
-  "Operating System :: OS Independent",
-  "Programming Language :: Python",
-  "Programming Language :: Python :: 2.5",
-  "Programming Language :: Python :: 2.6",
-  "Programming Language :: Python :: 2.7",
-  "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI 
Tools/Libraries",
-  "Topic :: Internet :: WWW/HTTP :: HTTP Servers",
-  "Topic :: Internet :: WWW/HTTP :: WSGI",
-  "Topic :: Software Development :: Bug Tracking",
-  "Topic :: Software Development :: Libraries :: Application Frameworks",
-  "Topic :: Software Development :: Libraries :: Python Modules",
-  "Topic :: Software Development :: User Interfaces",
-  "Topic :: Software Development :: Widget Sets"
-]
+dev_status,
+"Environment :: Plugins",
+"Environment :: Web Environment",
+"Framework :: Trac",
+"Intended Audience :: Developers",
+"Intended Audience :: Information Technology",
+"Intended Audience :: Other Audience",
+"Intended Audience :: System Administrators",
+"License :: Unknown",
+"Operating System :: OS Independent",
+"Programming Language :: Python",
+"Programming Language :: Python :: 2.5",
+"Programming Language :: Python :: 2.6",
+"Programming Language :: Python :: 2.7",
+"Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries",
+"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
+"Topic :: Internet :: WWW/HTTP :: WSGI",
+"Topic :: Software Development :: Bug Tracking",
+"Topic :: Software Development :: Libraries :: Application Frameworks",
+"Topic :: Software Development :: Libraries :: Python Modules",
+"Topic :: Software Development :: User Interfaces",
+"Topic :: Software Development :: Widget Sets"
+]
 
 # Add the change log to the package description.
 chglog 

svn commit: r1773524 - in /bloodhound/trunk: bloodhound_dashboard/setup.py bloodhound_multiproduct/setup.py bloodhound_relations/setup.py bloodhound_search/setup.py

2016-12-10 Thread rjollos
Author: rjollos
Date: Sat Dec 10 17:06:38 2016
New Revision: 1773524

URL: http://svn.apache.org/viewvc?rev=1773524=rev
Log:
0.9.0dev: Fix incorrect version comparison

Modified:
bloodhound/trunk/bloodhound_dashboard/setup.py
bloodhound/trunk/bloodhound_multiproduct/setup.py
bloodhound/trunk/bloodhound_relations/setup.py
bloodhound/trunk/bloodhound_search/setup.py

Modified: bloodhound/trunk/bloodhound_dashboard/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/setup.py?rev=1773524=1773523=1773524=diff
==
--- bloodhound/trunk/bloodhound_dashboard/setup.py (original)
+++ bloodhound/trunk/bloodhound_dashboard/setup.py Sat Dec 10 17:06:38 2016
@@ -19,6 +19,7 @@
 #  under the License.
 
 
+import sys
 try:
 from setuptools import setup
 except ImportError:
@@ -158,7 +159,8 @@ setup(
 license = "Apache License v2",
 url = "https://bloodhound.apache.org/;,
 requires = ['trac'],
-tests_require = ['dutest>=0.2.4', 'TracXMLRPC'],
+tests_require = ['dutest>=0.2.4', 'TracXMLRPC'] +
+['unittest2'] if sys.version_info < (2, 7) else [],
 package_dir = dict([p, i[0]] for p, i in PKG_INFO.iteritems()),
 packages = PKG_INFO.keys(),
 package_data = dict([p, i[1]] for p, i in PKG_INFO.iteritems()),

Modified: bloodhound/trunk/bloodhound_multiproduct/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/setup.py?rev=1773524=1773523=1773524=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/setup.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/setup.py Sat Dec 10 17:06:38 2016
@@ -74,6 +74,6 @@ setup(
 'multiproduct.web_ui = multiproduct.web_ui',
 ],},
 test_suite='tests.test_suite',
-tests_require=['unittest2' if parse_version(sys.version) < 
parse_version('2.7') else ''],
+tests_require=['unittest2'] if sys.version_info < (2, 7) else [],
 **extra
 )

Modified: bloodhound/trunk/bloodhound_relations/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/setup.py?rev=1773524=1773523=1773524=diff
==
--- bloodhound/trunk/bloodhound_relations/setup.py (original)
+++ bloodhound/trunk/bloodhound_relations/setup.py Sat Dec 10 17:06:38 2016
@@ -152,6 +152,6 @@ setup(
 classifiers = cats,
 long_description= DESC,
 test_suite='bhrelations.tests.test_suite',
-tests_require=['unittest2' if parse_version(sys.version) < 
parse_version('2.7') else ''],
+tests_require=['unittest2'] if sys.version_info < (2, 7) else [],
 **extra
 )

Modified: bloodhound/trunk/bloodhound_search/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_search/setup.py?rev=1773524=1773523=1773524=diff
==
--- bloodhound/trunk/bloodhound_search/setup.py (original)
+++ bloodhound/trunk/bloodhound_search/setup.py Sat Dec 10 17:06:38 2016
@@ -182,6 +182,6 @@ setup(
 classifiers = cats,
 long_description= DESC,
 test_suite='bhsearch.tests.test_suite',
-tests_require=['unittest2' if parse_version(sys.version) < 
parse_version('2.7') else ''],
+tests_require=['unittest2'] if sys.version_info < (2, 7) else [],
 **extra
 )




svn commit: r1773523 - in /bloodhound/trunk: bloodhound_dashboard/setup.cfg bloodhound_multiproduct/setup.cfg bloodhound_relations/setup.cfg bloodhound_search/setup.cfg bloodhound_theme/setup.cfg inst

2016-12-10 Thread rjollos
Author: rjollos
Date: Sat Dec 10 16:43:32 2016
New Revision: 1773523

URL: http://svn.apache.org/viewvc?rev=1773523=rev
Log:
0.9.0dev: Remove `tag_svn_revision` from `setup.cfg`

The attribute isn't supported in setuptools >= 10.

Modified:
bloodhound/trunk/bloodhound_dashboard/setup.cfg
bloodhound/trunk/bloodhound_multiproduct/setup.cfg
bloodhound/trunk/bloodhound_relations/setup.cfg
bloodhound/trunk/bloodhound_search/setup.cfg
bloodhound/trunk/bloodhound_theme/setup.cfg
bloodhound/trunk/installer/setup.cfg

Modified: bloodhound/trunk/bloodhound_dashboard/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/setup.cfg?rev=1773523=1773522=1773523=diff
==
--- bloodhound/trunk/bloodhound_dashboard/setup.cfg (original)
+++ bloodhound/trunk/bloodhound_dashboard/setup.cfg Sat Dec 10 16:43:32 2016
@@ -17,8 +17,6 @@
 
 [egg_info]
 tag_build = dev
-tag_date = 0
-tag_svn_revision = true
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/trunk/bloodhound_multiproduct/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/setup.cfg?rev=1773523=1773522=1773523=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/setup.cfg (original)
+++ bloodhound/trunk/bloodhound_multiproduct/setup.cfg Sat Dec 10 16:43:32 2016
@@ -17,8 +17,6 @@
 
 [egg_info]
 tag_build = dev
-tag_date = 0
-tag_svn_revision = true
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/trunk/bloodhound_relations/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/setup.cfg?rev=1773523=1773522=1773523=diff
==
--- bloodhound/trunk/bloodhound_relations/setup.cfg (original)
+++ bloodhound/trunk/bloodhound_relations/setup.cfg Sat Dec 10 16:43:32 2016
@@ -17,8 +17,6 @@
 
 [egg_info]
 tag_build = dev
-tag_date = 0
-tag_svn_revision = true
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/trunk/bloodhound_search/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_search/setup.cfg?rev=1773523=1773522=1773523=diff
==
--- bloodhound/trunk/bloodhound_search/setup.cfg (original)
+++ bloodhound/trunk/bloodhound_search/setup.cfg Sat Dec 10 16:43:32 2016
@@ -17,8 +17,6 @@
 
 [egg_info]
 tag_build = dev
-tag_date = 0
-tag_svn_revision = true
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/trunk/bloodhound_theme/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/setup.cfg?rev=1773523=1773522=1773523=diff
==
--- bloodhound/trunk/bloodhound_theme/setup.cfg (original)
+++ bloodhound/trunk/bloodhound_theme/setup.cfg Sat Dec 10 16:43:32 2016
@@ -17,8 +17,6 @@
 
 [egg_info]
 tag_build = dev
-tag_date = 0
-tag_svn_revision = true
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip
@@ -70,4 +68,4 @@ output_dir = bhtheme/locale
 [generate_messages_js]
 domain = bhtheme-js
 input_dir = bhtheme/locale
-output_dir = bhtheme/htdocs/bloodhound
\ No newline at end of file
+output_dir = bhtheme/htdocs/bloodhound

Modified: bloodhound/trunk/installer/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/setup.cfg?rev=1773523=1773522=1773523=diff
==
--- bloodhound/trunk/installer/setup.cfg (original)
+++ bloodhound/trunk/installer/setup.cfg Sat Dec 10 16:43:32 2016
@@ -17,8 +17,6 @@
 
 [egg_info]
 tag_build = dev
-tag_date = 0
-tag_svn_revision = true
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip




svn commit: r1700643 - /bloodhound/site/index.html

2015-09-01 Thread rjollos
Author: rjollos
Date: Tue Sep  1 19:01:57 2015
New Revision: 1700643

URL: http://svn.apache.org/r1700643
Log:
Direct to lua script rather than cgi.

https://reference.apache.org/pmc/mirror_scripts

Modified:
bloodhound/site/index.html

Modified: bloodhound/site/index.html
URL: 
http://svn.apache.org/viewvc/bloodhound/site/index.html?rev=1700643=1700642=1700643=diff
==
--- bloodhound/site/index.html (original)
+++ bloodhound/site/index.html Tue Sep  1 19:01:57 2015
@@ -17,7 +17,7 @@
Manage software products
Keep track of features, tasks and 
bugs

-   2014-12-11 - Version 0.8 has been released. http://goo.gl/y5ICQQ;>Download now
+   2014-12-11 - Version 0.8 has been released. http://goo.gl/HDqpE5;>Download now
Standing on the shoulders of http://trac.edgewall.org/;>Trac, Apache Bloodhound is a free and open 
source project hosted by the http://www.apache.org;>Apache Software 
Foundation.
https://twitter.com/apbloodhound; 
class="twitter-follow-button" data-show-count="false" data-dnt="true">Follow 
@apbloodhound
http://ghbtns.com/github-btn.html?user=apache=bloodhound=watch=true;
@@ -42,7 +42,7 @@

Try, download, contribute
 
-   http://goo.gl/9NqjB;>Online demo No registration required.
+   http://goo.gl/HDqpE5;>Online demo No registration required.
http://goo.gl/y5ICQQ;>Download now
 https://issues.apache.org/bloodhound/wiki/BloodhoundInstall;>Installation 
instructions
https://issues.apache.org/bloodhound/;>Wiki + Issue tracker




svn commit: r1683461 - in /bloodhound/trunk/installer: requirements-dev.txt requirements.txt

2015-06-03 Thread rjollos
Author: rjollos
Date: Thu Jun  4 04:17:14 2015
New Revision: 1683461

URL: http://svn.apache.org/r1683461
Log:
0.9dev: Freeze Pygments at version 1.6.

Bloodhound will not work with the next release of Pygments, Pygments 2.0 or 
later, until Trac 1.0.2 is merged into the codebase.

Reference: https://groups.google.com/d/msg/trac-users/dQTG3qAWb4c/aUaSsydV_ogJ

Modified:
bloodhound/trunk/installer/requirements-dev.txt
bloodhound/trunk/installer/requirements.txt

Modified: bloodhound/trunk/installer/requirements-dev.txt
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/requirements-dev.txt?rev=1683461r1=1683460r2=1683461view=diff
==
--- bloodhound/trunk/installer/requirements-dev.txt (original)
+++ bloodhound/trunk/installer/requirements-dev.txt Thu Jun  4 04:17:14 2015
@@ -15,7 +15,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Pygments
+Pygments==1.6
 pytz==2013b
 sqlparse==0.1.7
 Babel==0.9.6

Modified: bloodhound/trunk/installer/requirements.txt
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/requirements.txt?rev=1683461r1=1683460r2=1683461view=diff
==
--- bloodhound/trunk/installer/requirements.txt (original)
+++ bloodhound/trunk/installer/requirements.txt Thu Jun  4 04:17:14 2015
@@ -15,7 +15,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Pygments
+Pygments==1.6
 pytz==2013b
 sqlparse==0.1.7
 Babel==0.9.6




svn commit: r1658972 - /bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_batch_modify.html

2015-02-11 Thread rjollos
Author: rjollos
Date: Wed Feb 11 14:31:41 2015
New Revision: 1658972

URL: http://svn.apache.org/r1658972
Log:
0.9dev: Indentation fixes.

Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_batch_modify.html

Modified: 
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_batch_modify.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_batch_modify.html?rev=1658972r1=1658971r2=1658972view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_batch_modify.html 
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_batch_modify.html 
Wed Feb 11 14:31:41 2015
@@ -18,12 +18,12 @@
 --
 
 form xmlns=http://www.w3.org/1999/xhtml;
- xmlns:py=http://genshi.edgewall.org/;
- xmlns:i18n=http://genshi.edgewall.org/i18n;
+  xmlns:py=http://genshi.edgewall.org/;
+  xmlns:i18n=http://genshi.edgewall.org/i18n;
   i18n:domain=bhtheme
- xmlns:xi=http://www.w3.org/2001/XInclude;
- id=batchmod_form method=post action=${req.href + '/batchmodify'}
- class=form-horizontal 
+  xmlns:xi=http://www.w3.org/2001/XInclude;
+  id=batchmod_form method=post action=${req.href + '/batchmodify'}
+  class=form-horizontal
 
 fieldset id=batchmod_fieldset
   legend class=foldableBatch Modify/legend
@@ -37,7 +37,7 @@
   placeholder=${_('Describe changes using WikiFormatting')} /
   /td
 /tr
-
+
 tr id=add_batchmod_field_row
   td colspan=3
 div class=control-group
@@ -54,24 +54,23 @@
 /div
   /td
 /tr
-
+
 tr
   td colspan=3
-fieldset id=batchmod_action 
+fieldset id=batchmod_action
   legendAction/legend
   xi:include href=bh_ticket_actions.html /
 /fieldset
   /td
 /tr
   /table
-  
+
   div
 input type=hidden name=selected_tickets value=/
 input type=hidden name=query_href value=${query_href}/
-input type=submit id=batchmod_submit name=batchmod_submit 
-class=btn value=${_('Change tickets')} /
+input type=submit id=batchmod_submit name=batchmod_submit 
class=btn value=${_('Change tickets')} /
   /div
-  
+
   div id=batchmod_help i18n:msg=
 p class=help-block pull-right
   span class=label label-infoNote/span See a 
href=${href.wiki('TracBatchModify')}TracBatchModify/a for help on using 
batch modify.
@@ -81,4 +80,3 @@
 /fieldset
 
 /form
-




svn commit: r1647724 - /bloodhound/site/index.html

2014-12-23 Thread rjollos
Author: rjollos
Date: Wed Dec 24 03:35:53 2014
New Revision: 1647724

URL: http://svn.apache.org/r1647724
Log:
Updated other download location on page.

Modified:
bloodhound/site/index.html

Modified: bloodhound/site/index.html
URL: 
http://svn.apache.org/viewvc/bloodhound/site/index.html?rev=1647724r1=1647723r2=1647724view=diff
==
--- bloodhound/site/index.html (original)
+++ bloodhound/site/index.html Wed Dec 24 03:35:53 2014
@@ -43,7 +43,7 @@
ph2Try, download, contribute/h2/p
 
pa class=btn btn-warning 
href=http://goo.gl/9NqjB;Online demo/a No registration required./p
-   pa class=btn btn-success 
href=http://goo.gl/EMHMvQ;Download now/a
+   pa class=btn btn-success 
href=http://goo.gl/y5ICQQ;Download now/a
 a 
href=https://issues.apache.org/bloodhound/wiki/BloodhoundInstall;Installation 
instructions/a/p
pa class=btn btn-primary 
href=https://issues.apache.org/bloodhound/;Wiki + Issue tracker/a
a 
href=http://incubator.apache.org/projects/bloodhound.html;Project 
status/a/p




svn commit: r1643051 - /bloodhound/branches/0.8/

2014-12-15 Thread rjollos
Author: rjollos
Date: Wed Dec  3 03:05:17 2014
New Revision: 1643051

URL: http://svn.apache.org/r1643051
Log:
Removed incorrect branch.

Removed:
bloodhound/branches/0.8/



svn commit: r1643049 - /bloodhound/trunk/RELEASE_NOTES

2014-12-15 Thread rjollos
Author: rjollos
Date: Wed Dec  3 03:00:06 2014
New Revision: 1643049

URL: http://svn.apache.org/r1643049
Log:
0.8dev: Finalize release notes for 0.8.

Modified:
bloodhound/trunk/RELEASE_NOTES

Modified: bloodhound/trunk/RELEASE_NOTES
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/RELEASE_NOTES?rev=1643049r1=1643048r2=1643049view=diff
==
--- bloodhound/trunk/RELEASE_NOTES (original)
+++ bloodhound/trunk/RELEASE_NOTES Wed Dec  3 03:00:06 2014
@@ -1,6 +1,5 @@
 0.8
  * i18n internationalization.
- * Multiproduct support for CommitTicketUpdater.
  * Quick Create Ticket form sets product based on context and forwards
values to the ticket form when More fields is selected.
  * Fixed caching issue that prevented product-scope trac-admin commands
@@ -8,16 +7,19 @@
  * Improved presentation of the Products page.
  * Improvements to ticket timeline (comments section).
  * BloodhoundSearch now supports Whoosh = 2.5.1 (upgraded from 2.4.1).
- * Fixed errors in BloodhoundRelations validation logic.
+ * Fixed several errors in BloodhoundRelations validation logic.
  * Bootstrap template for the Roadmap and Edit Product views.
  * Bloodhound installer support for MySQL database.
+ * Product edits were always reported as anonymous.
+ * Quick Create Ticket displays the last created ticket for a short time
+   after it is created.
  * Numerous other important fixes and minor enhancements.
 
 
  * Not fixed for this release
   * Cache is not properly refreshed for resources including wiki pages,
-milestones, components and permissions; leading to stale data being
-displayed after INSERTs and DELETEs (#613, #614, #620, #681, #719, #748).
+components and permissions; leading to stale data being displayed
+after INSERTs and DELETEs (#614, #620, #681, #719, #748).
   * Products cannot be deleted (#517).
   * Duplicate relation is not added when batch modifying tickets (#761).
   * TicketDeleter component can't be used with BloodhoundTheme (#427).




svn commit: r1643048 - /bloodhound/branches/0.8/trunk/

2014-12-15 Thread rjollos
Author: rjollos
Date: Wed Dec  3 02:50:28 2014
New Revision: 1643048

URL: http://svn.apache.org/r1643048
Log:
Branching for Release 8.

Added:
bloodhound/branches/0.8/trunk/   (props changed)
  - copied from r1643047, bloodhound/trunk/

Propchange: bloodhound/branches/0.8/trunk/
--
--- svn:auto-props (added)
+++ svn:auto-props Wed Dec  3 02:50:28 2014
@@ -0,0 +1,5 @@
+*.html = svn:eol-style=native
+*.js = svn:eol-style=native
+*.css = svn:eol-style=native
+*.py = svn:eol-style=native
+*.xml = svn:eol-style=native

Propchange: bloodhound/branches/0.8/trunk/
--
--- svn:ignore (added)
+++ svn:ignore Wed Dec  3 02:50:28 2014
@@ -0,0 +1,7 @@
+*.DS_Store
+.idea
+.project
+.pydevproject
+.git
+.gitignore
+.hg

Propchange: bloodhound/branches/0.8/trunk/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 02:50:28 2014
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct:1420073-1461359




svn commit: r1643053 - in /bloodhound/branches/0.8: bloodhound_dashboard/setup.cfg bloodhound_multiproduct/setup.cfg bloodhound_relations/setup.cfg bloodhound_search/setup.cfg bloodhound_theme/setup.c

2014-12-15 Thread rjollos
Author: rjollos
Date: Wed Dec  3 03:08:19 2014
New Revision: 1643053

URL: http://svn.apache.org/r1643053
Log:
Bumped revision for 0.8 release.

Modified:
bloodhound/branches/0.8/bloodhound_dashboard/setup.cfg
bloodhound/branches/0.8/bloodhound_multiproduct/setup.cfg
bloodhound/branches/0.8/bloodhound_relations/setup.cfg
bloodhound/branches/0.8/bloodhound_search/setup.cfg
bloodhound/branches/0.8/bloodhound_theme/setup.cfg

Modified: bloodhound/branches/0.8/bloodhound_dashboard/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/0.8/bloodhound_dashboard/setup.cfg?rev=1643053r1=1643052r2=1643053view=diff
==
--- bloodhound/branches/0.8/bloodhound_dashboard/setup.cfg (original)
+++ bloodhound/branches/0.8/bloodhound_dashboard/setup.cfg Wed Dec  3 03:08:19 
2014
@@ -16,9 +16,9 @@
 #  under the License.
 
 [egg_info]
-tag_build = dev
+tag_build =
 tag_date = 0
-tag_svn_revision = true
+tag_svn_revision = false
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/branches/0.8/bloodhound_multiproduct/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/0.8/bloodhound_multiproduct/setup.cfg?rev=1643053r1=1643052r2=1643053view=diff
==
--- bloodhound/branches/0.8/bloodhound_multiproduct/setup.cfg (original)
+++ bloodhound/branches/0.8/bloodhound_multiproduct/setup.cfg Wed Dec  3 
03:08:19 2014
@@ -16,9 +16,9 @@
 #  under the License.
 
 [egg_info]
-tag_build = dev
+tag_build =
 tag_date = 0
-tag_svn_revision = true
+tag_svn_revision = false
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/branches/0.8/bloodhound_relations/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/0.8/bloodhound_relations/setup.cfg?rev=1643053r1=1643052r2=1643053view=diff
==
--- bloodhound/branches/0.8/bloodhound_relations/setup.cfg (original)
+++ bloodhound/branches/0.8/bloodhound_relations/setup.cfg Wed Dec  3 03:08:19 
2014
@@ -16,9 +16,9 @@
 #  under the License.
 
 [egg_info]
-tag_build = dev
+tag_build =
 tag_date = 0
-tag_svn_revision = true
+tag_svn_revision = false
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/branches/0.8/bloodhound_search/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/0.8/bloodhound_search/setup.cfg?rev=1643053r1=1643052r2=1643053view=diff
==
--- bloodhound/branches/0.8/bloodhound_search/setup.cfg (original)
+++ bloodhound/branches/0.8/bloodhound_search/setup.cfg Wed Dec  3 03:08:19 2014
@@ -16,9 +16,9 @@
 #  under the License.
 
 [egg_info]
-tag_build = dev
+tag_build =
 tag_date = 0
-tag_svn_revision = true
+tag_svn_revision = false
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip

Modified: bloodhound/branches/0.8/bloodhound_theme/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/0.8/bloodhound_theme/setup.cfg?rev=1643053r1=1643052r2=1643053view=diff
==
--- bloodhound/branches/0.8/bloodhound_theme/setup.cfg (original)
+++ bloodhound/branches/0.8/bloodhound_theme/setup.cfg Wed Dec  3 03:08:19 2014
@@ -16,9 +16,9 @@
 #  under the License.
 
 [egg_info]
-tag_build = dev
+tag_build = 
 tag_date = 0
-tag_svn_revision = true
+tag_svn_revision = false
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip
@@ -70,4 +70,4 @@ output_dir = bhtheme/locale
 [generate_messages_js]
 domain = bhtheme-js
 input_dir = bhtheme/locale
-output_dir = bhtheme/htdocs/bloodhound
\ No newline at end of file
+output_dir = bhtheme/htdocs/bloodhound




svn commit: r1643047 - /bloodhound/branches/0.8/

2014-12-15 Thread rjollos
Author: rjollos
Date: Wed Dec  3 02:47:58 2014
New Revision: 1643047

URL: http://svn.apache.org/r1643047
Log:
Branching for Release 8.

Added:
bloodhound/branches/0.8/   (props changed)
  - copied from r1643046, bloodhound/trunk/

Propchange: bloodhound/branches/0.8/
--
--- svn:auto-props (added)
+++ svn:auto-props Wed Dec  3 02:47:58 2014
@@ -0,0 +1,5 @@
+*.html = svn:eol-style=native
+*.js = svn:eol-style=native
+*.css = svn:eol-style=native
+*.py = svn:eol-style=native
+*.xml = svn:eol-style=native

Propchange: bloodhound/branches/0.8/
--
--- svn:ignore (added)
+++ svn:ignore Wed Dec  3 02:47:58 2014
@@ -0,0 +1,7 @@
+*.DS_Store
+.idea
+.project
+.pydevproject
+.git
+.gitignore
+.hg

Propchange: bloodhound/branches/0.8/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec  3 02:47:58 2014
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct:1420073-1461359




svn commit: r1644711 - in /bloodhound/trunk: bloodhound_dashboard/setup.py bloodhound_multiproduct/setup.py bloodhound_relations/setup.py bloodhound_search/setup.py bloodhound_theme/setup.py installer

2014-12-11 Thread rjollos
Author: rjollos
Date: Thu Dec 11 18:01:28 2014
New Revision: 1644711

URL: http://svn.apache.org/r1644711
Log:
0.9dev: Bumped package version numbers.

Added:
bloodhound/trunk/installer/setup.cfg
  - copied, changed from r1644709, 
bloodhound/trunk/bloodhound_theme/setup.cfg
Modified:
bloodhound/trunk/bloodhound_dashboard/setup.py
bloodhound/trunk/bloodhound_multiproduct/setup.py
bloodhound/trunk/bloodhound_relations/setup.py
bloodhound/trunk/bloodhound_search/setup.py
bloodhound/trunk/bloodhound_theme/setup.py
bloodhound/trunk/installer/setup.py

Modified: bloodhound/trunk/bloodhound_dashboard/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/setup.py?rev=1644711r1=1644710r2=1644711view=diff
==
--- bloodhound/trunk/bloodhound_dashboard/setup.py (original)
+++ bloodhound/trunk/bloodhound_dashboard/setup.py Thu Dec 11 18:01:28 2014
@@ -38,6 +38,7 @@ versions = [
 (0, 6, 0),
 (0, 7, 0),
 (0, 8, 0),
+(0, 9, 0),
 ]
 
 latest = '.'.join(str(x) for x in versions[-1])

Modified: bloodhound/trunk/bloodhound_multiproduct/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/setup.py?rev=1644711r1=1644710r2=1644711view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/setup.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/setup.py Thu Dec 11 18:01:28 2014
@@ -55,7 +55,7 @@ except ImportError:
 
 setup(
 name = 'BloodhoundMultiProduct',
-version = '0.8.0',
+version = '0.9.0',
 description = Multiproduct support for Apache(TM) Bloodhound.,
 author = Apache Bloodhound,
 license = Apache License v2,

Modified: bloodhound/trunk/bloodhound_relations/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/setup.py?rev=1644711r1=1644710r2=1644711view=diff
==
--- bloodhound/trunk/bloodhound_relations/setup.py (original)
+++ bloodhound/trunk/bloodhound_relations/setup.py Thu Dec 11 18:01:28 2014
@@ -36,6 +36,7 @@ versions = [
 (0, 6, 0),
 (0, 7, 0),
 (0, 8, 0),
+(0, 9, 0),
 ]
 
 latest = '.'.join(str(x) for x in versions[-1])

Modified: bloodhound/trunk/bloodhound_search/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_search/setup.py?rev=1644711r1=1644710r2=1644711view=diff
==
--- bloodhound/trunk/bloodhound_search/setup.py (original)
+++ bloodhound/trunk/bloodhound_search/setup.py Thu Dec 11 18:01:28 2014
@@ -36,6 +36,7 @@ versions = [
 (0, 6, 0),
 (0, 7, 0),
 (0, 8, 0),
+(0, 9, 0),
 ]
 
 latest = '.'.join(str(x) for x in versions[-1])

Modified: bloodhound/trunk/bloodhound_theme/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/setup.py?rev=1644711r1=1644710r2=1644711view=diff
==
--- bloodhound/trunk/bloodhound_theme/setup.py (original)
+++ bloodhound/trunk/bloodhound_theme/setup.py Thu Dec 11 18:01:28 2014
@@ -42,7 +42,7 @@ except ImportError:
 
 setup(
   name = 'BloodhoundTheme',
-  version = '0.8.0',
+  version = '0.9.0',
   description = Theme for Apache(TM) Bloodhound.,
   author = Apache Bloodhound,
   license = Apache License v2,

Copied: bloodhound/trunk/installer/setup.cfg (from r1644709, 
bloodhound/trunk/bloodhound_theme/setup.cfg)
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/setup.cfg?p2=bloodhound/trunk/installer/setup.cfgp1=bloodhound/trunk/bloodhound_theme/setup.cfgr1=1644709r2=1644711rev=1644711view=diff
==
--- bloodhound/trunk/bloodhound_theme/setup.cfg (original)
+++ bloodhound/trunk/installer/setup.cfg Thu Dec 11 18:01:28 2014
@@ -22,52 +22,3 @@ tag_svn_revision = true
 
 [sdist]
 formats = gztar,bztar,ztar,tar,zip
-
-[extract_messages]
-add_comments = TRANSLATOR:
-copyright_holder = Apache Software Foundation
-msgid_bugs_address = d...@bloodhound.apache.org
-output_file = bhtheme/locale/messages.pot
-keywords = _ ngettext:1,2 N_ tag_ tagn_:1,2 Option:4 BoolOption:4 IntOption:4 
ListOption:6 ExtensionOption:5 PathOption:4
-no-wrap = true
-
-[init_catalog]
-input_file = bhtheme/locale/messages.pot
-output_dir = bhtheme/locale
-domain = bhtheme
-
-[compile_catalog]
-directory = bhtheme/locale
-domain = bhtheme
-
-[update_catalog]
-input_file = bhtheme/locale/messages.pot
-output_dir = bhtheme/locale
-domain = bhtheme
-
-[extract_messages_js]
-add_comments = TRANSLATOR:
-copyright_holder = Apache Software Foundation
-msgid_bugs_address = d...@bloodhound.apache.org
-output_file = bhtheme/locale/messages-js.pot
-keywords = _ ngettext:1,2 N_
-mapping_file = messages-js.cfg

svn commit: r1639602 [1/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templa

2014-11-14 Thread rjollos
Author: rjollos
Date: Fri Nov 14 11:06:23 2014
New Revision: 1639602

URL: http://svn.apache.org/r1639602
Log:
importing trac-1.0.2

Added:
bloodhound/vendor/trac/current/.travis.yml
bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/tests/browser.py
bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/tests/changeset.py
bloodhound/vendor/trac/current/trac/versioncontrol/web_ui/tests/log.py
Removed:
bloodhound/vendor/trac/current/trac/tests/compat.py
bloodhound/vendor/trac/current/trac/ticket/templates/admin_components.html
bloodhound/vendor/trac/current/trac/ticket/templates/admin_enums.html
bloodhound/vendor/trac/current/trac/ticket/templates/admin_milestones.html
bloodhound/vendor/trac/current/trac/ticket/templates/admin_versions.html
bloodhound/vendor/trac/current/trac/timeline/tests/web_ui.py
bloodhound/vendor/trac/current/trac/timeline/tests/wikisyntax.py
bloodhound/vendor/trac/current/trac/util/tests/translation.py
bloodhound/vendor/trac/current/tracopt/ticket/tests/
bloodhound/vendor/trac/current/tracopt/versioncontrol/git/tests/git_fs.py
Modified:
bloodhound/vendor/trac/current/ChangeLog
bloodhound/vendor/trac/current/THANKS
bloodhound/vendor/trac/current/contrib/workflow/migrate_original_to_basic.py
bloodhound/vendor/trac/current/doc/dev/testing-intro.rst
bloodhound/vendor/trac/current/sample-plugins/HelloWorld.py
bloodhound/vendor/trac/current/sample-plugins/Timestamp.py
bloodhound/vendor/trac/current/sample-plugins/milestone_to_version.py

bloodhound/vendor/trac/current/sample-plugins/permissions/public_wiki_policy.py

bloodhound/vendor/trac/current/sample-plugins/permissions/vulnerability_tickets.py
bloodhound/vendor/trac/current/sample-plugins/revision_links.py
bloodhound/vendor/trac/current/sample-plugins/workflow/CodeReview.py
bloodhound/vendor/trac/current/sample-plugins/workflow/DeleteTicket.py
bloodhound/vendor/trac/current/sample-plugins/workflow/StatusFixer.py
bloodhound/vendor/trac/current/sample-plugins/workflow/VoteOperation.py
bloodhound/vendor/trac/current/setup.cfg
bloodhound/vendor/trac/current/setup.py
bloodhound/vendor/trac/current/trac/about.py
bloodhound/vendor/trac/current/trac/admin/console.py
bloodhound/vendor/trac/current/trac/admin/templates/admin.html
bloodhound/vendor/trac/current/trac/admin/templates/admin_basics.html
bloodhound/vendor/trac/current/trac/admin/templates/admin_legacy.html
bloodhound/vendor/trac/current/trac/admin/templates/admin_logging.html
bloodhound/vendor/trac/current/trac/admin/templates/admin_perms.html
bloodhound/vendor/trac/current/trac/admin/templates/admin_plugins.html
bloodhound/vendor/trac/current/trac/admin/tests/console-tests.txt
bloodhound/vendor/trac/current/trac/admin/tests/console.py
bloodhound/vendor/trac/current/trac/admin/tests/functional.py
bloodhound/vendor/trac/current/trac/admin/web_ui.py
bloodhound/vendor/trac/current/trac/cache.py
bloodhound/vendor/trac/current/trac/db/api.py
bloodhound/vendor/trac/current/trac/db/mysql_backend.py
bloodhound/vendor/trac/current/trac/db/postgres_backend.py
bloodhound/vendor/trac/current/trac/db/sqlite_backend.py
bloodhound/vendor/trac/current/trac/db/tests/__init__.py
bloodhound/vendor/trac/current/trac/db/tests/api.py
bloodhound/vendor/trac/current/trac/db/tests/mysql_test.py
bloodhound/vendor/trac/current/trac/db/tests/util.py
bloodhound/vendor/trac/current/trac/db/util.py
bloodhound/vendor/trac/current/trac/db_default.py
bloodhound/vendor/trac/current/trac/dist.py
bloodhound/vendor/trac/current/trac/env.py
bloodhound/vendor/trac/current/trac/htdocs/css/admin.css
bloodhound/vendor/trac/current/trac/htdocs/css/report.css
bloodhound/vendor/trac/current/trac/htdocs/css/roadmap.css
bloodhound/vendor/trac/current/trac/htdocs/css/ticket.css
bloodhound/vendor/trac/current/trac/htdocs/css/trac.css
bloodhound/vendor/trac/current/trac/htdocs/css/wiki.css
bloodhound/vendor/trac/current/trac/htdocs/js/auto_preview.js
bloodhound/vendor/trac/current/trac/htdocs/js/wikitoolbar.js
bloodhound/vendor/trac/current/trac/loader.py
bloodhound/vendor/trac/current/trac/locale/de/LC_MESSAGES/messages.po
bloodhound/vendor/trac/current/trac/locale/ja/LC_MESSAGES/messages-js.po
bloodhound/vendor/trac/current/trac/locale/ja/LC_MESSAGES/messages.po
bloodhound/vendor/trac/current/trac/locale/ja/LC_MESSAGES/tracini.po
bloodhound/vendor/trac/current/trac/locale/messages-js.pot
bloodhound/vendor/trac/current/trac/locale/messages.pot
bloodhound/vendor/trac/current/trac/locale/tracini.pot
bloodhound/vendor/trac/current/trac/mimeview/api.py
bloodhound/vendor/trac/current/trac/mimeview/tests/api.py
bloodhound/vendor/trac/current/trac/mimeview/tests/patch.html
bloodhound/vendor/trac/current/trac/mimeview/tests/patch.py

svn commit: r1639602 [9/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templa

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/ticket/roadmap.py
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/ticket/roadmap.py?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/ticket/roadmap.py (original)
+++ bloodhound/vendor/trac/current/trac/ticket/roadmap.py Fri Nov 14 11:06:23 
2014
@@ -350,6 +350,13 @@ def grouped_stats_data(env, stats_provid
 group_names = field['options']
 if field.get('optional'):
 group_names.insert(0, '')
+elif field.get('custom'):
+group_names = [name for name, in env.db_query(
+SELECT DISTINCT COALESCE(c.value, '') FROM ticket_custom c
+WHERE c.name=%s ORDER BY COALESCE(c.value, '')
+, (by, ))]
+if '' not in group_names:
+group_names.insert(0, '')
 else:
 group_names = [name for name, in env.db_query(
 SELECT DISTINCT COALESCE(%s, '') FROM ticket
@@ -854,6 +861,9 @@ class MilestoneModule(Component):
 'TICKET_ADMIN' in req.perm)
 else:
 req.perm(milestone.resource).require('MILESTONE_CREATE')
+if milestone.name:
+add_notice(req, _(Milestone %(name)s does not exist. You can
+   create it here., name=milestone.name))
 
 chrome = Chrome(self.env)
 chrome.add_jquery_ui(req)
@@ -1027,7 +1037,7 @@ class MilestoneModule(Component):
 milestone_realm = Resource('milestone')
 for name, due, completed, description \
 in MilestoneCache(self.env).milestones.itervalues():
-if any(r.search(description) or r.search(name)
+if all(r.search(description) or r.search(name)
for r in term_regexps):
 milestone = milestone_realm(id=name)
 if 'MILESTONE_VIEW' in req.perm(milestone):

Modified: bloodhound/vendor/trac/current/trac/ticket/templates/batch_modify.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/ticket/templates/batch_modify.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/ticket/templates/batch_modify.html 
(original)
+++ bloodhound/vendor/trac/current/trac/ticket/templates/batch_modify.html Fri 
Nov 14 11:06:23 2014
@@ -1,3 +1,13 @@
+!--!  Copyright (C) 2012-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+--
 form xmlns=http://www.w3.org/1999/xhtml;
  xmlns:py=http://genshi.edgewall.org/;
  xmlns:i18n=http://genshi.edgewall.org/i18n;
@@ -12,7 +22,7 @@
 label for=batchmod_value_commentComment:/label
   /th
   td class=fullrowtextarea
-  id=batchmod_value_comment name=batchmod_value_comment cols=70 
rows=5/
+  id=batchmod_value_comment name=batchmod_value_comment 
class=trac-fullwidth cols=70 rows=5/
   /td
 /tr
 

Modified: 
bloodhound/vendor/trac/current/trac/ticket/templates/milestone_delete.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/ticket/templates/milestone_delete.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/ticket/templates/milestone_delete.html 
(original)
+++ bloodhound/vendor/trac/current/trac/ticket/templates/milestone_delete.html 
Fri Nov 14 11:06:23 2014
@@ -1,3 +1,13 @@
+!--!  Copyright (C) 2006-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+--
 !DOCTYPE html
 PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
 http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;

Modified: 
bloodhound/vendor/trac/current/trac/ticket/templates/milestone_edit.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/ticket/templates/milestone_edit.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- 

svn commit: r1639602 [3/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templa

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/admin/web_ui.py
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/admin/web_ui.py?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/admin/web_ui.py (original)
+++ bloodhound/vendor/trac/current/trac/admin/web_ui.py Fri Nov 14 11:06:23 2014
@@ -22,11 +22,6 @@ import pkg_resources
 import re
 import shutil
 
-try:
-from babel.core import Locale
-except ImportError:
-Locale = None
-
 from genshi import HTML
 from genshi.builder import tag
 
@@ -37,7 +32,7 @@ from trac.perm import PermissionSystem, 
 from trac.util.datefmt import all_timezones, pytz
 from trac.util.text import exception_to_unicode, \
unicode_to_base64, unicode_from_base64
-from trac.util.translation import _, get_available_locales, ngettext
+from trac.util.translation import _, Locale, get_available_locales, ngettext
 from trac.web import HTTPNotFound, IRequestHandler
 from trac.web.chrome import add_notice, add_stylesheet, \
 add_warning, Chrome, INavigationContributor, \
@@ -71,8 +66,8 @@ class AdminModule(Component):
 # admin panel is available
 panels, providers = self._get_panels(req)
 if panels:
-yield 'mainnav', 'admin', tag.a(_('Admin'), href=req.href.admin(),
-title=_('Administration'))
+yield 'mainnav', 'admin', tag.a(_(Admin), href=req.href.admin(),
+title=_(Administration))
 
 # IRequestHandler methods
 
@@ -88,7 +83,7 @@ class AdminModule(Component):
 def process_request(self, req):
 panels, providers = self._get_panels(req)
 if not panels:
-raise HTTPNotFound(_('No administration panels available'))
+raise HTTPNotFound(_(No administration panels available))
 
 def _panel_order(p1, p2):
 if p1[::2] == ('general', 'basics'):
@@ -114,11 +109,11 @@ class AdminModule(Component):
 panel_id = \
 filter(lambda panel: panel[0] == cat_id, panels)[0][2]
 except IndexError:
-raise HTTPNotFound(_('Unknown administration panel'))
+raise HTTPNotFound(_(Unknown administration panel))
 
 provider = providers.get((cat_id, panel_id), None)
 if not provider:
-raise HTTPNotFound(_('Unknown administration panel'))
+raise HTTPNotFound(_(Unknown administration panel))
 
 if hasattr(provider, 'render_admin_panel'):
 template, data = provider.render_admin_panel(req, cat_id, panel_id,
@@ -189,14 +184,14 @@ def _save_config(config, req, log, notic
 try:
 config.save()
 if notices is None:
-notices = [_('Your changes have been saved.')]
+notices = [_(Your changes have been saved.)]
 for notice in notices:
 add_notice(req, notice)
 except Exception, e:
-log.error('Error writing to trac.ini: %s', exception_to_unicode(e))
-add_warning(req, _('Error writing to trac.ini, make sure it is '
-   'writable by the web server. Your changes have '
-   'not been saved.'))
+log.error(Error writing to trac.ini: %s, exception_to_unicode(e))
+add_warning(req, _(Error writing to trac.ini, make sure it is 
+   writable by the web server. Your changes have 
+   not been saved.))
 
 
 class BasicsAdminPanel(Component):
@@ -207,7 +202,7 @@ class BasicsAdminPanel(Component):
 
 def get_admin_panels(self, req):
 if 'TRAC_ADMIN' in req.perm('admin', 'general/basics'):
-yield ('general', _('General'), 'basics', _('Basic Settings'))
+yield ('general', _(General), 'basics', _(Basic Settings))
 
 def render_admin_panel(self, req, cat, page, path_info):
 if Locale:
@@ -267,7 +262,7 @@ class LoggingAdminPanel(Component):
 
 def get_admin_panels(self, req):
 if 'TRAC_ADMIN' in req.perm('admin', 'general/logging'):
-yield ('general', _('General'), 'logging', _('Logging'))
+yield ('general', _(General), 'logging', _(Logging))
 
 def render_admin_panel(self, req, cat, page, path_info):
 log_type = self.env.log_type
@@ -276,16 +271,18 @@ class LoggingAdminPanel(Component):
 log_dir = os.path.join(self.env.path, 'log')
 
 log_types = [
-dict(name='none', label=_('None'), selected=log_type == 'none', 
disabled=False),
-dict(name='stderr', label=_('Console'),
+dict(name='none', label=_(None),
+ selected=log_type == 'none', disabled=False),
+dict(name='stderr', label=_(Console),
  selected=log_type == 'stderr', disabled=False),
-

svn commit: r1639602 [11/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templ

2014-11-14 Thread rjollos
Modified: 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/repository_index.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/versioncontrol/templates/repository_index.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/repository_index.html
 (original)
+++ 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/repository_index.html
 Fri Nov 14 11:06:23 2014
@@ -1,4 +1,15 @@
-!--! Template snippet for a table of repositories --
+!--!  Copyright (C) 2008-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+
+Template snippet for a table of repositories
+--
 html xmlns=http://www.w3.org/1999/xhtml;
 xmlns:py=http://genshi.edgewall.org/;
 xmlns:xi=http://www.w3.org/2001/XInclude; py:strip=
@@ -11,11 +22,11 @@
 tr class=${'odd' if idx % 2 else 'even'}
   td class=name
 em py:strip=not err
-  b py:strip=repoinfo.alias != ''
+  strong py:strip=repoinfo.alias != ''
 a class=dir title=View Root Directory
href=${href.browser(repos.reponame if repos else reponame,
 order=order if order != 'name' else 
None, desc=desc)}$reponame/a
-  /b
+  /strong
 /em
   /td
   td class=size

Modified: 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/revisionlog.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/versioncontrol/templates/revisionlog.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/revisionlog.html 
(original)
+++ 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/revisionlog.html 
Fri Nov 14 11:06:23 2014
@@ -1,3 +1,13 @@
+!--!  Copyright (C) 2006-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+--
 !DOCTYPE html
 PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
 http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;

Modified: 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/sortable_th.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/versioncontrol/templates/sortable_th.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/sortable_th.html 
(original)
+++ 
bloodhound/vendor/trac/current/trac/versioncontrol/templates/sortable_th.html 
Fri Nov 14 11:06:23 2014
@@ -1,4 +1,14 @@
-!--! Snippet for a th corresponding to a sortable column.
+!--!  Copyright (C) 2008-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+
+Snippet for a th corresponding to a sortable column.
 
 Expects the following variables to be set specifically:
 

Modified: bloodhound/vendor/trac/current/trac/versioncontrol/tests/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/versioncontrol/tests/api.py?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/versioncontrol/tests/api.py (original)
+++ bloodhound/vendor/trac/current/trac/versioncontrol/tests/api.py Fri Nov 14 
11:06:23 2014
@@ -111,6 +111,12 @@ class ResourceManagerTestCase(unittest.T
 self.assertEqual('/trac.cgi/browser/testrepo',
  get_resource_url(self.env, res, self.env.href))
 
+res = Resource('repository', '')  # default repository
+self.assertEqual('Default repository',
+ get_resource_description(self.env, res))
+

svn commit: r1639602 [14/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templ

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/tracopt/perm/authz_policy.py
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/tracopt/perm/authz_policy.py?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/tracopt/perm/authz_policy.py (original)
+++ bloodhound/vendor/trac/current/tracopt/perm/authz_policy.py Fri Nov 14 
11:06:23 2014
@@ -14,7 +14,7 @@
 #
 # Author: Alec Thomas a...@swapoff.org
 
-from fnmatch import fnmatch
+from fnmatch import fnmatchcase
 from itertools import groupby
 import os
 
@@ -23,7 +23,6 @@ from trac.config import ConfigurationErr
 from trac.perm import PermissionSystem, IPermissionPolicy
 from trac.util import lazy
 from trac.util.text import to_unicode
-from trac.util.translation import _
 
 ConfigObj = None
 try:
@@ -196,14 +195,11 @@ class AuthzPolicy(Component):
 self.log.error(Error parsing authz permission policy file: %s,
to_unicode(e))
 raise ConfigurationError()
-if not self.authz:
-self.log.error(The authz file is empty.)
-raise ConfigurationError()
 groups = {}
 for group, users in self.authz.get('groups', {}).iteritems():
 if isinstance(users, basestring):
 users = [users]
-groups[group] = users
+groups[group] = map(to_unicode, users)
 
 self.groups_by_user = {}
 
@@ -220,28 +216,29 @@ class AuthzPolicy(Component):
 self.authz_mtime = os.path.getmtime(self.get_authz_file)
 
 def normalise_resource(self, resource):
+def to_descriptor(resource):
+id = resource.id
+return '%s:%s@%s' % (resource.realm or '*',
+ id if id is not None else '*',
+ resource.version or '*')
+
 def flatten(resource):
 if not resource:
 return ['*:*@*']
-if not (resource.realm or resource.id):
-return ['%s:%s@%s' % (resource.realm or '*',
-  resource.id or '*',
-  resource.version or '*')]
+descriptor = to_descriptor(resource)
+if not resource.realm and resource.id is None:
+return [descriptor]
 # XXX Due to the mixed functionality in resource we can end up with
 # ticket, ticket:1, ticket:1@10. This code naively collapses all
 # subsets of the parent resource into one. eg. ticket:1@10
 parent = resource.parent
-while parent and (resource.realm == parent.realm or
-  (resource.realm == parent.realm and
-   resource.id == parent.id)):
+while parent and resource.realm == parent.realm:
 parent = parent.parent
 if parent:
-parent = flatten(parent)
+return flatten(parent) + [descriptor]
 else:
-parent = []
-return parent + ['%s:%s@%s' % (resource.realm or '*',
-   resource.id or '*',
-   resource.version or '*')]
+return [descriptor]
+
 return '/'.join(flatten(resource))
 
 def authz_permissions(self, resource_key, username):
@@ -252,14 +249,15 @@ class AuthzPolicy(Component):
 else:
 valid_users = ['*', 'anonymous']
 for resource_section in [a for a in self.authz.sections
- if a != 'groups']:
-resource_glob = resource_section
+   if a != 'groups']:
+resource_glob = to_unicode(resource_section)
 if '@' not in resource_glob:
 resource_glob += '@*'
 
-if fnmatch(resource_key, resource_glob):
+if fnmatchcase(resource_key, resource_glob):
 section = self.authz[resource_section]
 for who, permissions in section.iteritems():
+who = to_unicode(who)
 if who in valid_users or \
 who in self.groups_by_user.get(username, []):
 self.log.debug('%s matched section %s for user %s',

Modified: bloodhound/vendor/trac/current/tracopt/perm/config_perm_provider.py
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/tracopt/perm/config_perm_provider.py?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/tracopt/perm/config_perm_provider.py 
(original)
+++ bloodhound/vendor/trac/current/tracopt/perm/config_perm_provider.py Fri Nov 
14 11:06:23 2014
@@ -34,17 +34,21 @@ class ExtraPermissionsProvider(Component
 and a comma-separated list 

svn commit: r1639602 [6/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templa

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/locale/messages.pot
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/locale/messages.pot?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/locale/messages.pot (original)
+++ bloodhound/vendor/trac/current/trac/locale/messages.pot Fri Nov 14 11:06:23 
2014
@@ -1,14 +1,14 @@
 # Translations template for Trac.
-# Copyright (C) 2013 Edgewall Software
+# Copyright (C) 2014 Edgewall Software
 # This file is distributed under the same license as the Trac project.
-# FIRST AUTHOR EMAIL@ADDRESS, 2013.
+# FIRST AUTHOR EMAIL@ADDRESS, 2014.
 #
 #, fuzzy
 msgid 
 msgstr 
 Project-Id-Version: Trac 1.0.2\n
 Report-Msgid-Bugs-To: trac-...@googlegroups.com\n
-POT-Creation-Date: 2013-03-21 22:54+0100\n
+POT-Creation-Date: 2014-09-01 12:43+\n
 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n
 Last-Translator: FULL NAME EMAIL@ADDRESS\n
 Language-Team: LANGUAGE l...@li.org\n
@@ -44,7 +44,7 @@ msgstr 
 msgid Create a copy of this ticket
 msgstr 
 
-#: tracopt/ticket/commit_updater.py:275
+#: tracopt/ticket/commit_updater.py:283
 msgid 
 Insert a changeset message into the output.\n
 \n
@@ -59,12 +59,16 @@ msgid 
  - `revision`: the revision of the desired changeset
 msgstr 
 
+#: tracopt/ticket/commit_updater.py:313
+msgid (The changeset message doesn't reference this ticket)
+msgstr 
+
 #: tracopt/ticket/deleter.py:73 tracopt/ticket/deleter.py:90
-#: trac/ticket/templates/report_list.html:82
+#: trac/ticket/templates/report_list.html:92
 msgid Delete
 msgstr 
 
-#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:42
+#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:51
 msgid Delete ticket
 msgstr 
 
@@ -88,89 +92,112 @@ msgstr 
 msgid Comment %(num)s not found
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:11
+#: tracopt/ticket/templates/ticket_delete.html:21
 #, python-format
 msgid Delete Ticket #%(id)s
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:12
-#: tracopt/ticket/templates/ticket_delete.html:48
+#: tracopt/ticket/templates/ticket_delete.html:22
+#: tracopt/ticket/templates/ticket_delete.html:58
 #, python-format
 msgid Delete comment %(num)s on Ticket #%(id)s
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:20
+#: tracopt/ticket/templates/ticket_delete.html:30
 #, python-format
 msgid Delete [1:Ticket #%(id)s]
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:32
+#: tracopt/ticket/templates/ticket_delete.html:42
 msgid Are you sure you want to delete this ticket?
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:33
+#: tracopt/ticket/templates/ticket_delete.html:43
 #, python-format
 msgid 
 (comments: %(comments)s,\n
  attachments: %(attachments)s)
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:36
-#: tracopt/ticket/templates/ticket_delete.html:61
-#: trac/templates/attachment.html:70 trac/wiki/templates/wiki_delete.html:95
+#: tracopt/ticket/templates/ticket_delete.html:46
+#: tracopt/ticket/templates/ticket_delete.html:71
+#: trac/templates/attachment.html:80 trac/wiki/templates/wiki_delete.html:105
 msgid This is an irreversible operation.
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:41
-#: tracopt/ticket/templates/ticket_delete.html:65
-#: trac/admin/templates/admin_components.html:55
-#: trac/admin/templates/admin_enums.html:24
-#: trac/admin/templates/admin_milestones.html:74
-#: trac/admin/templates/admin_versions.html:50
-#: trac/templates/attachment.html:63 trac/templates/attachment.html:76
-#: trac/ticket/templates/milestone_delete.html:40
-#: trac/ticket/templates/milestone_edit.html:108
-#: trac/ticket/templates/report_delete.html:21
-#: trac/ticket/templates/report_edit.html:44
-#: trac/ticket/templates/ticket_change.html:118
-#: trac/versioncontrol/templates/admin_repositories.html:84
-#: trac/wiki/templates/wiki_delete.html:98
-#: trac/wiki/templates/wiki_edit_form.html:73
-#: trac/wiki/templates/wiki_rename.html:32
+#: tracopt/ticket/templates/ticket_delete.html:52
+#: tracopt/ticket/templates/ticket_delete.html:76
+#: trac/templates/attachment.html:73 trac/templates/attachment.html:87
+#: trac/ticket/templates/admin_components.html:64
+#: trac/ticket/templates/admin_enums.html:38
+#: trac/ticket/templates/admin_milestones.html:93
+#: trac/ticket/templates/admin_versions.html:61
+#: trac/ticket/templates/milestone_delete.html:45
+#: trac/ticket/templates/milestone_edit.html:128
+#: trac/ticket/templates/report_delete.html:32
+#: trac/ticket/templates/report_edit.html:62
+#: trac/ticket/templates/ticket_change.html:127
+#: trac/versioncontrol/templates/admin_repositories.html:98
+#: trac/wiki/templates/wiki_delete.html:112
+#: trac/wiki/templates/wiki_edit_form.html:84
+#: trac/wiki/templates/wiki_rename.html:43
 msgid Cancel
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:61

svn commit: r1639602 [7/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templa

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/locale/tracini.pot
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/locale/tracini.pot?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/locale/tracini.pot (original)
+++ bloodhound/vendor/trac/current/trac/locale/tracini.pot Fri Nov 14 11:06:23 
2014
@@ -1,14 +1,14 @@
 # Translations template for Trac.
-# Copyright (C) 2013 Edgewall Software
+# Copyright (C) 2014 Edgewall Software
 # This file is distributed under the same license as the Trac project.
-# FIRST AUTHOR EMAIL@ADDRESS, 2013.
+# FIRST AUTHOR EMAIL@ADDRESS, 2014.
 #
 #, fuzzy
 msgid 
 msgstr 
 Project-Id-Version: Trac 1.0.2\n
 Report-Msgid-Bugs-To: trac-...@googlegroups.com\n
-POT-Creation-Date: 2013-03-21 22:54+0100\n
+POT-Creation-Date: 2014-09-01 12:43+\n
 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n
 Last-Translator: FULL NAME EMAIL@ADDRESS\n
 Language-Team: LANGUAGE l...@li.org\n
@@ -51,11 +51,11 @@ msgid 
 (''since 0.10'').
 msgstr 
 
-#: tracopt/perm/authz_policy.py:132
+#: tracopt/perm/authz_policy.py:134
 msgid Location of authz policy configuration file.
 msgstr 
 
-#: tracopt/perm/config_perm_provider.py:24
+#: tracopt/perm/config_perm_provider.py:27
 msgid 
 This section provides a way to add arbitrary permissions to a\n
 Trac environment. This can be useful for adding new permissions to use\n
@@ -66,17 +66,21 @@ msgid 
 and a comma-separated list of permissions. For example:\n
 {{{\n
 [extra-permissions]\n
-extra_admin = extra_view, extra_modify, extra_delete\n
+EXTRA_ADMIN = EXTRA_VIEW, EXTRA_MODIFY, EXTRA_DELETE\n
 }}}\n
 This entry will define three new permissions `EXTRA_VIEW`,\n
 `EXTRA_MODIFY` and `EXTRA_DELETE`, as well as a meta-permissions\n
 `EXTRA_ADMIN` that grants all three permissions.\n
 \n
+The permissions are created in upper-case characters regardless of\n
+the casing of the definitions in `trac.ini`. For example, the\n
+definition `extra_view` would create the permission `EXTRA_VIEW`.\n
+\n
 If you don't want a meta-permission, start the meta-name with an\n
 underscore (`_`):\n
 {{{\n
 [extra-permissions]\n
-_perms = extra_view, extra_modify\n
+_perms = EXTRA_VIEW, EXTRA_MODIFY\n
 }}}
 msgstr 
 
@@ -113,68 +117,68 @@ msgstr 
 msgid Send ticket change notification when updating a ticket.
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:169
+#: tracopt/versioncontrol/git/git_fs.py:269
 msgid Enable persistent caching of commit tree.
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:172
+#: tracopt/versioncontrol/git/git_fs.py:272
 msgid Wrap `GitRepository` in `CachedRepository`.
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:175
+#: tracopt/versioncontrol/git/git_fs.py:275
 msgid 
 The length at which a sha1 should be abbreviated to (must\n
 be = 4 and = 40).
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:180
+#: tracopt/versioncontrol/git/git_fs.py:280
 msgid 
 The minimum length of an hex-string for which\n
 auto-detection as sha1 is performed (must be = 4 and = 40).
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:185
+#: tracopt/versioncontrol/git/git_fs.py:285
 msgid 
 Enable reverse mapping of git email addresses to trac user ids\n
 (costly if you have many users).
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:189
+#: tracopt/versioncontrol/git/git_fs.py:289
 msgid 
 Use git-committer id instead of git-author id for the\n
 changeset ''Author'' field.
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:194
+#: tracopt/versioncontrol/git/git_fs.py:294
 msgid 
 Use git-committer timestamp instead of git-author timestamp\n
 for the changeset ''Timestamp'' field.
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:199
+#: tracopt/versioncontrol/git/git_fs.py:299
 msgid Define charset encoding of paths within git repositories.
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:202
+#: tracopt/versioncontrol/git/git_fs.py:302
 msgid Path to the git executable.
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:752
+#: tracopt/versioncontrol/git/git_fs.py:879
 msgid Path to a gitweb-formatted projects.list
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:755
+#: tracopt/versioncontrol/git/git_fs.py:882
 msgid Path to the base of your git projects
 msgstr 
 
-#: tracopt/versioncontrol/git/git_fs.py:758
+#: tracopt/versioncontrol/git/git_fs.py:885
 #, python-format
 msgid 
 Template for project URLs. %s will be replaced with the repo\n
 name
 msgstr 
 
-#: tracopt/versioncontrol/svn/svn_fs.py:253
+#: tracopt/versioncontrol/svn/svn_fs.py:265
 msgid 
 Comma separated list of paths categorized as branches.\n
 If a path ends with '*', then all the directory entries found below\n
@@ -182,7 +186,7 @@ msgid 
 Example: `/trunk, /branches/*, /projectAlpha/trunk, /sandbox/*`
 msgstr 
 
-#: tracopt/versioncontrol/svn/svn_fs.py:260
+#: tracopt/versioncontrol/svn/svn_fs.py:272
 msgid 
 Comma separated list of paths 

svn commit: r1639602 [10/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templ

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/ticket/tests/report.py
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/ticket/tests/report.py?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/ticket/tests/report.py (original)
+++ bloodhound/vendor/trac/current/trac/ticket/tests/report.py Fri Nov 14 
11:06:23 2014
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2006-2013 Edgewall Software
+# Copyright (C) 2006-2014 Edgewall Software
 # All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
@@ -11,16 +11,24 @@
 # individuals. For the exact contribution history, see the revision
 # history and logs, available at http://trac.edgewall.org/log/.
 
+from __future__ import with_statement
+
 import doctest
+from datetime import datetime, timedelta
 
+import unittest
+from StringIO import StringIO
+
+import trac.tests.compat
 from trac.db.mysql_backend import MySQLConnection
+from trac.ticket.model import Ticket
 from trac.ticket.report import ReportModule
-from trac.test import EnvironmentStub, Mock
+from trac.test import EnvironmentStub, Mock, MockPerm
+from trac.util.datefmt import utc
 from trac.web.api import Request, RequestDone
+from trac.web.href import Href
 import trac
 
-import unittest
-from StringIO import StringIO
 
 class MockMySQLConnection(MySQLConnection):
 def __init__(self):
@@ -110,11 +118,409 @@ class ReportTestCase(unittest.TestCase):
  'type=r%C3%A9sum%C3%A9report=' + str(id),
  headers_sent['Location'])
 
+def test_quoted_id_with_var(self):
+req = Mock(base_path='', chrome={}, args={}, session={},
+   abs_href=Href('/'), href=Href('/'), locale='',
+   perm=MockPerm(), authname=None, tz=None)
+db = self.env.get_read_db()
+name = %s`'%%%?
+sql = 'SELECT 1 AS %s, $USER AS user' % db.quote(name)
+rv = self.report_module.execute_paginated_report(req, db, 1, sql,
+ {'USER': 'joe'})
+self.assertEqual(5, len(rv), repr(rv))
+cols, results, num_items, missing_args, limit_offset = rv
+self.assertEqual([name, 'user'], cols)
+self.assertEqual([(1, 'joe')], results)
+self.assertEqual([], missing_args)
+self.assertEqual(None, limit_offset)
+
+
+class ExecuteReportTestCase(unittest.TestCase):
+
+def setUp(self):
+self.env = EnvironmentStub(default_data=True)
+self.req = Mock(base_path='', chrome={}, args={}, session={},
+abs_href=Href('/'), href=Href('/'), locale='',
+perm=MockPerm(), authname=None, tz=None)
+self.report_module = ReportModule(self.env)
+
+def tearDown(self):
+self.env.reset_db()
+
+def _insert_ticket(self, when=None, **kwargs):
+ticket = Ticket(self.env)
+for name, value in kwargs.iteritems():
+ticket[name] = value
+ticket['status'] = 'new'
+ticket.insert(when=when)
+return ticket
+
+def _save_ticket(self, ticket, author=None, comment=None, when=None,
+ **kwargs):
+if when is None:
+when = ticket['changetime'] + timedelta(microseconds=1)
+for name, value in kwargs.iteritems():
+ticket[name] = value
+return ticket.save_changes(author=author, comment=comment, when=when)
+
+def _execute_report(self, id, args=None):
+mod = self.report_module
+req = self.req
+with self.env.db_query as db:
+title, description, sql = mod.get_report(id)
+return mod.execute_paginated_report(req, db, id, sql, args or {})
+
+def _generate_tickets(self, columns, data, attrs):
+with self.env.db_transaction as db:
+tickets = []
+when = datetime(2014, 1, 1, 0, 0, 0, 0, utc)
+for idx, line in enumerate(data.splitlines()):
+line = line.strip()
+if not line or line.startswith('#'):
+continue
+values = line.split()
+assert len(columns) == len(values), 'Line %d' % (idx + 1)
+summary = ' '.join(values)
+values = map(lambda v: None if v == 'None' else v, values)
+d = attrs.copy()
+d['summary'] = summary
+d.update(zip(columns, values))
+
+status = None
+if 'status' in d:
+status = d.pop('status')
+ticket = self._insert_ticket(when=when, status='new', **d)
+if status != 'new':
+self._save_ticket(ticket, status=status,
+  when=when + timedelta(microseconds=1))
+tickets.append(ticket)
+

svn commit: r1639602 [12/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templ

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup (original)
+++ bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBackup Fri Nov 
14 11:06:23 2014
@@ -8,17 +8,15 @@ Since Trac uses a database backend, some
 == Creating a Backup ==
 
 To create a backup of a live TracEnvironment, simply run:
-{{{
-
-  $ trac-admin /path/to/projenv hotcopy /path/to/backupdir
-
+ {{{#!sh
+$ trac-admin /path/to/projenv hotcopy /path/to/backupdir
 }}}
 
 [wiki:TracAdmin trac-admin] will lock the database while copying.''
 
 The resulting backup directory is safe to handle using standard file-based 
backup tools like `tar` or `dump`/`restore`.
 
-Please, note, that hotcopy command does not overwrite target directory and 
when such exists, hotcopy ends with error: `Command failed: [Errno 17] File 
exists:` This is discussed in [trac:ticket:3198 #3198].
+Please note, the `hotcopy` command will not overwrite a target directory and 
when such exists the operation ends with error: `Command failed: [Errno 17] 
File exists:` This is discussed in [trac:ticket:3198 #3198].
 
 === Restoring a Backup ===
 

Modified: bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify 
(original)
+++ bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBatchModify Fri 
Nov 14 11:06:23 2014
@@ -1,10 +1,14 @@
 = Trac Ticket Batch Modification =
 [[TracGuideToc]]
 
-From [wiki:TracQuery custom query] results Trac provides support for modifying 
a batch of tickets in one request.
+From [TracQuery custom query] results Trac provides support for modifying a 
batch of tickets in one request.
 
 To perform a batch modification select the tickets you wish to modify and set 
the new field values using the section underneath the query results. 
 
 == List fields
 
 The `Keywords` and `Cc` fields are treated as lists, where list items can be 
added and/or removed in addition of replacing the entire list value. All list 
field controls accept multiple items (i.e. multiple keywords or cc addresses).
+
+== Excluded fields
+
+Multi-line text fields are not supported, because no valid use-case has been 
presented for syncing them across several tickets. That restriction applies to 
the `Description` field as well as to any 
[TracTicketsCustomFields#AvailableFieldTypesandOptions custom field] of type 
'textarea'. However in conjunction with more suitable actions like 'prepend', 
'append' or search  replace ([http://trac-hacks.org/ticket/2415 th:#2415]) 
this could change in future Trac versions.
\ No newline at end of file

Modified: bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser 
(original)
+++ bloodhound/vendor/trac/current/trac/wiki/default-pages/TracBrowser Fri Nov 
14 11:06:23 2014
@@ -52,20 +52,15 @@ for more advanced cases.
 If you're using a Javascript enabled browser, you'll be able to expand and 
 collapse directories in-place by clicking on the arrow head at the right side 
of a 
 directory. Alternatively, the [trac:TracKeys keyboard] can also be used for 
this: 
- - use `'j'` and `'k'` to select the next or previous entry, starting with the 
first
- - `'o'` (open) to toggle between expanded and collapsed state of the selected 
+ - use `j` and `k` to select the next or previous entry, starting with the 
first
+ - `o` ('''o'''pen) to toggle between expanded and collapsed state of the 
selected 
directory or for visiting the selected file 
- - `'v'` (view, visit) and `'Enter'`, same as above
- - `'r'` can be used to force the reload of an already expanded directory
- - `'A'` can be used to directly visit a file in annotate (blame) mode
- - `'L'` to view the log for the selected entry
-If no row has been selected using `'j'` or `'k'` these keys will operate on 
the entry under the mouse.
+ - `v` ('''v'''iew, '''v'''isit) and `Enter`, same as above
+ - `r` can be used to force the '''r'''eload of an already expanded directory
+ - `a` can be used to directly visit a file in '''a'''nnotate (blame) mode
+ - `l` to view the '''l'''og for the selected entry
+If no row has been selected using `j` or `k` these keys will 

svn commit: r1639602 [8/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templa

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/templates/error.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/templates/error.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/templates/error.html (original)
+++ bloodhound/vendor/trac/current/trac/templates/error.html Fri Nov 14 
11:06:23 2014
@@ -1,3 +1,13 @@
+!--!  Copyright (C) 2006-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+--
 !DOCTYPE html
 PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
 http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;
@@ -39,7 +49,9 @@
$(#traceback pre).hide();
$(#tbtoggle).parent().show();
 
-   $(#systeminfo).append(trthjQuery/thtd + $().jquery + 
/td/tr);
+   
$(#systeminfo).append(trthjQuery/thtd+$().jquery+/td/tr +
+   trthjQuery 
UI/thtd+$.ui.version+/td/tr +
+   trthjQuery 
Timepicker/thtd+$.timepicker.version+/td/tr);
$(#systeminfo).before(pUser Agent: tt + navigator.userAgent + 
/tt/p);
   });
 /*]]*//script
@@ -48,7 +60,9 @@
 $(form.newticket textarea).each(function() {
   $(this).val($(this).val()
  .replace(/#USER_AGENT#/m, navigator.userAgent)
- .replace(/#JQUERY#/m, $().jquery));
+ .replace(/#JQUERY#/m, $().jquery)
+ .replace(/#JQUERYUI#/m, $.ui.version)
+ .replace(/#JQUERYTP#/m, $.timepicker.version));
 });
   });
 /*]]*//script
@@ -98,13 +112,17 @@ ${description_en if url else description
   pThe action that triggered the error was:/p
   pre${req.method}: ${req.path_info}/pre
 /py:when
-py:otherwise
-  form class=newticket method=get 
action=${project.admin_href.newticket()}#
+py:otherwise py:choose=
+  p py:when=not project.admin_href or project.admin_trac_url == 
'.'
+This is probably a local installation issue.
+  /p
+  form py:otherwise=
+class=newticket method=get 
action=${project.admin_href.newticket()}#
 pThis is probably a local installation issue.
-  py:if test=project.admin_href and project.admin_trac_url 
!= '.'i18n:msg params=create
+  i18n:msg params=create
 You should ${create_ticket()} a ticket at the admin Trac 
to report
 the issue.
-  /i18n:msg/py:if
+  /i18n:msg
 /p
   /form
   h2Found a bug in Trac?/h2
@@ -140,7 +158,7 @@ ${description_en if url else description
 li class=frame py:for=idx, frame in enumerate(frames)
   a href=#frame${idx} id=frame${idx}span 
i18n:msg=file, line, function py:strip=
 span class=fileFile ${frame.filename},
-line b${frame.lineno + 1}/b, in/span
+line strong${frame.lineno + 1}/strong, in/span
 var${frame.function}/var/span
   /a
   div py:if=frame.line class=source style=display: 
none

Modified: bloodhound/vendor/trac/current/trac/templates/history_view.html
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/templates/history_view.html?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/templates/history_view.html (original)
+++ bloodhound/vendor/trac/current/trac/templates/history_view.html Fri Nov 14 
11:06:23 2014
@@ -1,3 +1,13 @@
+!--!  Copyright (C) 2006-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+--
 !DOCTYPE html
 PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
 http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;
@@ -15,7 +25,7 @@
 div id=content class=ticket
   h1 i18n:msg=nameChange History for a href=${url or 
url_of(resource)}${name or name_of(resource)}/a/h1
 
-  form py:if=history 

svn commit: r1639602 [13/14] - in /bloodhound/vendor/trac/current: ./ contrib/workflow/ doc/dev/ sample-plugins/ sample-plugins/permissions/ sample-plugins/workflow/ trac/ trac/admin/ trac/admin/templ

2014-11-14 Thread rjollos
Modified: bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSearch
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSearch?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSearch (original)
+++ bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSearch Fri Nov 
14 11:06:23 2014
@@ -16,7 +16,8 @@ For example:
  * ![42] -- Opens change set 42
  * !#42 -- Opens ticket number 42
  * !{1} -- Opens report 1
- * /trunk -- Opens the browser for the `trunk` directory
+ * /trunk -- Opens the browser for the `trunk` directory in the default 
repository
+ * /repos1/trunk -- Opens the browser for the `trunk` directory in the 
`repos1` repository
 
 == Advanced ==
 

Modified: bloodhound/vendor/trac/current/trac/wiki/default-pages/TracStandalone
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracStandalone?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/wiki/default-pages/TracStandalone 
(original)
+++ bloodhound/vendor/trac/current/trac/wiki/default-pages/TracStandalone Fri 
Nov 14 11:06:23 2014
@@ -13,7 +13,7 @@ It can be used in a variety of situation
 
  * Fewer features: Tracd implements a very simple web-server and is not as 
configurable or as scalable as Apache httpd.
  * No native HTTPS support: [http://www.rickk.com/sslwrap/ sslwrap] can be 
used instead,
-   or [http://trac.edgewall.org/wiki/STunnelTracd stunnel -- a tutorial on how 
to use stunnel with tracd] or Apache with mod_proxy.
+   or [trac:wiki:STunnelTracd stunnel -- a tutorial on how to use stunnel with 
tracd] or Apache with mod_proxy.
 
 == Usage examples ==
 
@@ -21,7 +21,7 @@ A single project on port 8080. (http://l
 {{{
  $ tracd -p 8080 /path/to/project
 }}}
-Stricly speaking this will make your Trac accessible to everybody from your 
network rather than ''localhost only''. To truly limit it use ''--hostname'' 
option.
+Strictly speaking this will make your Trac accessible to everybody from your 
network rather than ''localhost only''. To truly limit it use ''--hostname'' 
option.
 {{{
  $ tracd --hostname=localhost -p 8080 /path/to/project
 }}}
@@ -95,6 +95,8 @@ $ net start tracd
 
 Tracd allows you to run Trac without the need for Apache, but you can take 
advantage of Apache's password tools (htpasswd and htdigest) to easily create a 
password file in the proper format for tracd to use in authentication. (It is 
also possible to create the password file without htpasswd or htdigest; see 
below for alternatives)
 
+Make sure you place the generated password files on a filesystem which 
supports sub-second timestamps, as Trac will monitor their modified time and 
changes happening on a filesystem with too coarse-grained timestamp resolution 
(like `ext2` or `ext3` on Linux) may go undetected.
+
 Tracd provides support for both Basic and Digest authentication. Digest is 
considered more secure. The examples below use Digest; to use Basic 
authentication, replace `--auth` with `--basic-auth` in the command line.
 
 The general format for using authentication is:

Modified: 
bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSyntaxColoring
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSyntaxColoring?rev=1639602r1=1639601r2=1639602view=diff
==
--- bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSyntaxColoring 
(original)
+++ bloodhound/vendor/trac/current/trac/wiki/default-pages/TracSyntaxColoring 
Fri Nov 14 11:06:23 2014
@@ -6,8 +6,8 @@ To do this, Trac uses external libraries
 Currently Trac supports syntax coloring using one or more of the following 
packages:
 
  * [http://pygments.pocoo.org/ Pygments], by far the preferred system, as it 
covers a wide range of programming languages and other structured texts and is 
actively supported
- * [http://www.codento.com/people/mtr/genscript/ GNU Enscript], commonly 
available on Unix but somewhat unsupported on Windows
- * [http://silvercity.sourceforge.net/ SilverCity], legacy system, some 
versions can be 
[http://trac.edgewall.org/wiki/TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed
 problematic]
+ * [http://www.codento.com/people/mtr/genscript/ GNU Enscript], commonly 
available on Unix but somewhat unsupported on Windows //(use is deprecated)//
+ * [http://silvercity.sourceforge.net/ SilverCity], legacy system, some 
versions can be problematic //(use is deprecated)//
 
 
 To activate syntax coloring, simply install either one (or more) of these 
packages (see [#ExtraSoftware] section below).
@@ -16,7 +16,7 @@ If none of these packages is available, 
 
 === About 

svn commit: r1639604 - /bloodhound/branches/trac-1.0-stable-integration/

2014-11-14 Thread rjollos
Author: rjollos
Date: Fri Nov 14 11:10:57 2014
New Revision: 1639604

URL: http://svn.apache.org/r1639604
Log:
Removed unused integration branch.

Removed:
bloodhound/branches/trac-1.0-stable-integration/



svn commit: r1639605 - /bloodhound/branches/trac-1.0.2-integration/

2014-11-14 Thread rjollos
Author: rjollos
Date: Fri Nov 14 11:11:45 2014
New Revision: 1639605

URL: http://svn.apache.org/r1639605
Log:
Created branch for integration of Trac 1.0.2.

Added:
bloodhound/branches/trac-1.0.2-integration/   (props changed)
  - copied from r1639604, bloodhound/trunk/

Propchange: bloodhound/branches/trac-1.0.2-integration/
--
--- svn:auto-props (added)
+++ svn:auto-props Fri Nov 14 11:11:45 2014
@@ -0,0 +1,5 @@
+*.html = svn:eol-style=native
+*.js = svn:eol-style=native
+*.css = svn:eol-style=native
+*.py = svn:eol-style=native
+*.xml = svn:eol-style=native

Propchange: bloodhound/branches/trac-1.0.2-integration/
--
--- svn:ignore (added)
+++ svn:ignore Fri Nov 14 11:11:45 2014
@@ -0,0 +1,7 @@
+*.DS_Store
+.idea
+.project
+.pydevproject
+.git
+.gitignore
+.hg

Propchange: bloodhound/branches/trac-1.0.2-integration/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 14 11:11:45 2014
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct:1420073-1461359




svn commit: r1639618 - /bloodhound/vendor/trac/1.0.2/

2014-11-14 Thread rjollos
Author: rjollos
Date: Fri Nov 14 12:10:53 2014
New Revision: 1639618

URL: http://svn.apache.org/r1639618
Log:
Removed bad tag.

Removed:
bloodhound/vendor/trac/1.0.2/



svn commit: r1639617 - in /bloodhound/vendor/trac/current: trac/tests/ trac/ticket/templates/ trac/timeline/tests/ trac/util/tests/ tracopt/ticket/tests/ tracopt/versioncontrol/git/tests/

2014-11-14 Thread rjollos
Author: rjollos
Date: Fri Nov 14 12:10:40 2014
New Revision: 1639617

URL: http://svn.apache.org/r1639617
Log:
Missing file adds from Trac 1.0.2.

Added:
bloodhound/vendor/trac/current/trac/tests/compat.py
bloodhound/vendor/trac/current/trac/ticket/templates/admin_components.html
bloodhound/vendor/trac/current/trac/ticket/templates/admin_enums.html
bloodhound/vendor/trac/current/trac/ticket/templates/admin_milestones.html
bloodhound/vendor/trac/current/trac/ticket/templates/admin_versions.html
bloodhound/vendor/trac/current/trac/timeline/tests/web_ui.py
bloodhound/vendor/trac/current/trac/timeline/tests/wikisyntax.py
bloodhound/vendor/trac/current/trac/util/tests/translation.py
bloodhound/vendor/trac/current/tracopt/ticket/tests/
bloodhound/vendor/trac/current/tracopt/ticket/tests/__init__.py
bloodhound/vendor/trac/current/tracopt/ticket/tests/commit_updater.py
bloodhound/vendor/trac/current/tracopt/versioncontrol/git/tests/git_fs.py

Added: bloodhound/vendor/trac/current/trac/tests/compat.py
URL: 
http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/tests/compat.py?rev=1639617view=auto
==
--- bloodhound/vendor/trac/current/trac/tests/compat.py (added)
+++ bloodhound/vendor/trac/current/trac/tests/compat.py Fri Nov 14 12:10:40 2014
@@ -0,0 +1,101 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.org/wiki/TracLicense.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/log/.
+
+Some test functions since Python 2.7 to provide backwards-compatibility
+with previous versions of Python from 2.5 onward.
+
+
+import os
+import shutil
+import sys
+import unittest
+
+
+if not hasattr(unittest.TestCase, 'assertIs'):
+def assertIs(self, expr1, expr2, msg=None):
+if expr1 is not expr2:
+raise self.failureException(msg or '%r is not %r'
+   % (expr1, expr2))
+unittest.TestCase.assertIs = assertIs
+
+
+if not hasattr(unittest.TestCase, 'assertIsNot'):
+def assertIsNot(self, expr1, expr2, msg=None):
+if expr1 is expr2:
+raise self.failureException(msg or '%r is %r' % (expr1, expr2))
+unittest.TestCase.assertIsNot = assertIsNot
+
+
+if not hasattr(unittest.TestCase, 'assertIsNone'):
+def assertIsNone(self, obj, msg=None):
+self.assertIs(obj, None, msg)
+unittest.TestCase.assertIsNone = assertIsNone
+
+
+if not hasattr(unittest.TestCase, 'assertIsNotNone'):
+def assertIsNotNone(self, obj, msg=None):
+self.assertIsNot(obj, None, msg)
+unittest.TestCase.assertIsNotNone = assertIsNotNone
+
+
+if not hasattr(unittest.TestCase, 'assertIn'):
+def assertIn(self, member, container, msg=None):
+if member not in container:
+raise self.failureException(msg or '%r not in %r' %
+   (member, container))
+unittest.TestCase.assertIn = assertIn
+
+
+if not hasattr(unittest.TestCase, 'assertNotIn'):
+def assertNotIn(self, member, container, msg=None):
+if member in container:
+raise self.failureException(msg or '%r in %r' %
+   (member, container))
+unittest.TestCase.assertNotIn = assertNotIn
+
+
+if not hasattr(unittest.TestCase, 'assertIsInstance'):
+def assertIsInstance(self, obj, cls, msg=None):
+if not isinstance(obj, cls):
+raise self.failureException(msg or '%r is not an instance of %r' %
+   (obj, cls))
+unittest.TestCase.assertIsInstance = assertIsInstance
+
+
+if not hasattr(unittest.TestCase, 'assertNotIsInstance'):
+def assertNotIsInstance(self, obj, cls, msg=None):
+if isinstance(obj, cls):
+raise self.failureException(msg or '%r is an instance of %r' %
+   (obj, cls))
+unittest.TestCase.assertNotIsInstance = assertNotIsInstance
+
+
+def rmtree(path):
+import errno
+def onerror(function, path, excinfo):
+# `os.remove` fails for a readonly file on Windows.
+# Then, it attempts to be writable and remove.
+if function != os.remove:
+raise
+e = excinfo[1]
+if isinstance(e, OSError) and e.errno == errno.EACCES:
+mode = os.stat(path).st_mode
+os.chmod(path, mode | 0666)
+function(path)
+else:
+raise
+if os.name == 'nt' and isinstance(path, str):
+# Use unicode characters in order to allow non

svn commit: r1639823 [5/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ s

2014-11-14 Thread rjollos
Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/db_default.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/db_default.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/db_default.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/db_default.py Sat Nov 
15 01:14:46 2014
@@ -300,34 +300,27 @@ USER dynamic variable, replaced with the
 logged in user when executed.
 ,
 \
-SELECT  __color__, __group,
+SELECT p.value AS __color__,
(CASE
- WHEN __group = 1 THEN 'Accepted'
- WHEN __group = 2 THEN 'Owned'
- WHEN __group = 3 THEN 'Reported'
+ WHEN owner = $USER AND status = 'accepted' THEN 'Accepted'
+ WHEN owner = $USER THEN 'Owned'
+ WHEN reporter = $USER THEN 'Reported'
  ELSE 'Commented' END) AS __group__,
-   ticket, summary, component, version, milestone,
-   type, priority, created, _changetime, _description,
-   _reporter
-FROM (
- SELECT DISTINCT  + db.cast('p.value', 'int') +  AS __color__,
-  (CASE
- WHEN owner = $USER AND status = 'accepted' THEN 1
- WHEN owner = $USER THEN 2
- WHEN reporter = $USER THEN 3
- ELSE 4 END) AS __group,
t.id AS ticket, summary, component, version, milestone,
t.type AS type, priority, t.time AS created,
t.changetime AS _changetime, description AS _description,
reporter AS _reporter
   FROM ticket t
   LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
-  LEFT JOIN ticket_change tc ON tc.ticket = t.id AND tc.author = $USER
-AND tc.field = 'comment'
-  WHERE t.status  'closed'
-AND (owner = $USER OR reporter = $USER OR author = $USER)
-) AS sub
-ORDER BY __group, __color__, milestone, type, created
+  WHERE t.status  'closed' AND
+(owner = $USER OR reporter = $USER OR
+ EXISTS (SELECT * FROM ticket_change tc
+ WHERE tc.ticket = t.id AND tc.author = $USER AND
+   tc.field = 'comment'))
+  ORDER BY (COALESCE(owner, '') = $USER AND status = 'accepted') DESC,
+   COALESCE(owner, '') = $USER DESC,
+   COALESCE(reporter, '') = $USER DESC,
++ db.cast('p.value', 'int') + , milestone, t.type, t.time
 ),
 #
 ('Active Tickets, Mine first',

Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/dist.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/dist.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/dist.py (original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/dist.py Sat Nov 15 
01:14:46 2014
@@ -85,8 +85,8 @@ try:
 in_def = in_translator_comments = False
 comment_tag = None
 
-encoding = parse_encoding(fileobj) \
-   or options.get('encoding', 'iso-8859-1')
+encoding = str(parse_encoding(fileobj) or
+   options.get('encoding', 'iso-8859-1'))
 kwargs_maps = _DEFAULT_KWARGS_MAPS.copy()
 if 'kwargs_maps' in options:
 kwargs_maps.update(options['kwargs_maps'])
@@ -466,6 +466,17 @@ try:
 self.run_command('compile_catalog')
 def run(self):
 self.l10n_run()
+# When bdist_egg is called on distribute 0.6.29 and later, the
+# egg file includes no *.mo and *.js files which are generated
+# in l10n_run() method.
+# We remove build_py.data_files property to re-compute in order
+# to avoid the issue (#11640).
+build_py = self.get_finalized_command('build_py')
+if 'data_files' in build_py.__dict__ and \
+   not any(any(name.endswith('.mo') for name in filenames)
+   for pkg, src_dir, build_dir, filenames
+   in build_py.data_files):
+del build_py.__dict__['data_files']
 _install_lib.run(self)
 return build, install_lib
 

Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/env.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/env.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/env.py (original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/env.py Sat Nov 15 
01:14:46 2014
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2003-2011 Edgewall Software
+# Copyright (C) 2003-2014 Edgewall Software
 # 

svn commit: r1639823 [17/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/functional.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/functional.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/functional.py 
(original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/functional.py 
Sat Nov 15 01:14:46 2014
@@ -1,24 +1,89 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
+#
+# Copyright (C) 2008-2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.org/wiki/TracLicense.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/log/.
+
 import os
 import re
 
 from datetime import datetime, timedelta
 
+from trac.admin.tests.functional import AuthorizationTestCaseSetup
 from trac.test import locale_en
 from trac.tests.functional import *
+from trac.util import create_file
 from trac.util.datefmt import utc, localtz, format_date, format_datetime
+from trac.util.text import to_utf8
+
+try:
+from configobj import ConfigObj
+except ImportError:
+ConfigObj = None
 
 
 class TestTickets(FunctionalTwillTestCaseSetup):
 def runTest(self):
-Create a ticket, comment on it, and attach a file
+Create a ticket and comment on it.
 # TODO: this should be split into multiple tests
-summary = random_sentence(5)
-ticketid = self._tester.create_ticket(summary)
-self._tester.create_ticket()
-self._tester.add_comment(ticketid)
-self._tester.attach_file_to_ticket(ticketid)
+id = self._tester.create_ticket()
+self._tester.add_comment(id)
+
+
+class TestTicketMaxSummarySize(FunctionalTwillTestCaseSetup):
+def runTest(self):
+Test `[ticket] max_summary_size` option.
+http://trac.edgewall.org/ticket/11472;
+prev_max_summary_size = \
+self._testenv.get_config('ticket', 'max_summary_size')
+short_summary = abcdefghijklmnopqrstuvwxyz
+long_summary = short_summary + .
+max_summary_size = len(short_summary)
+warning_message = rTicket summary is too long \(must be less  \
+  rthan %s characters\) % max_summary_size
+self._testenv.set_config('ticket', 'max_summary_size',
+ str(max_summary_size))
+try:
+self._tester.create_ticket(short_summary)
+tc.find(short_summary)
+tc.notfind(warning_message)
+self._tester.go_to_front()
+tc.follow(r\bNew Ticket\b)
+tc.notfind(internal_error)
+tc.url(self._tester.url + '/newticket')
+tc.formvalue('propertyform', 'field_summary', long_summary)
+tc.submit('submit')
+tc.url(self._tester.url + '/newticket')
+tc.find(warning_message)
+finally:
+self._testenv.set_config('ticket', 'max_summary_size',
+ prev_max_summary_size)
+
+
+class TestTicketAddAttachment(FunctionalTwillTestCaseSetup):
+def runTest(self):
+Add attachment to a ticket. Test that the attachment button
+reads 'Attach file' when no files have been attached, and 'Attach
+another file' when there are existing attachments.
+Feature added in http://trac.edgewall.org/ticket/10281;
+id = self._tester.create_ticket()
+tc.find(Attach file)
+filename = self._tester.attach_file_to_ticket(id)
+
+self._tester.go_to_ticket(id)
+tc.find(Attach another file)
+tc.find('Attachments span class=trac-count\(1\)/span')
+tc.find(filename)
+tc.find('Download all attachments as:\s+a rel=nofollow '
+'href=/zip-attachment/ticket/%s/.zip/a' % id)
 
 
 class TestTicketPreview(FunctionalTwillTestCaseSetup):
@@ -51,27 +116,72 @@ class TestTicketNoSummary(FunctionalTwil
 tc.find('ticket not yet created')
 
 
+class TestTicketManipulator(FunctionalTwillTestCaseSetup):
+def runTest(self):
+plugin_name = self.__class__.__name__
+env = self._testenv.get_trac_environment()
+env.config.set('components', plugin_name + '.*', 'enabled')
+env.config.save()
+create_file(os.path.join(env.path, 'plugins', plugin_name + '.py'),
+\
+from genshi.builder import tag
+from trac.core import Component, implements
+from trac.ticket.api import ITicketManipulator
+from trac.util.translation import tag_
+
+
+class TicketManipulator(Component):
+

svn commit: r1639823 [7/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ s

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/cs/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/cs/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/cs/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/cs/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -5,7 +5,7 @@
 # Translators:
 # Radek Bartoň xbart...@stud.fit.vutbr.cz, 2007.
 # Tomáš Čapek soulchar...@gmail.com, 2010.
-# Zbyněk Schwarz zbynek.schw...@gmail.com, 2012.
+# Zbyněk Schwarz zbynek.schw...@gmail.com, 2012-2013.
 msgid 
 msgstr 
 Project-Id-Version:  Trac\n
@@ -19,7 +19,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: tracopt/mimeview/php.py:96
 msgid 
@@ -757,7 +757,7 @@ msgid 
 msgstr 
 Vítejte v trac-admin %(version)s\n
 Interaktivní konzoli pro správu Trac.\n
-Autorská práva (C) 2003-2012 Edgewall Software\n
+Autorská práva (C) 2003-2013 Edgewall Software\n
 \n
 Zadejte:  '?' nebo 'help' pro nápovědu pro příkazy.\n
 
@@ -778,13 +778,15 @@ msgid 
 No documentation found for '%(cmd)s'. Use 'help' to see the list of 
 commands.
 msgstr 
+Pro '%(cmd)s' nebyla nalezena žádná dokumentace, Použijte 'help' pro 
+zobrazení seznamu příkazů.
 
 #: trac/admin/console.py:322
 msgid Did you mean this?
 msgid_plural Did you mean one of these?
-msgstr[0] 
-msgstr[1] 
-msgstr[2] 
+msgstr[0] Mysleli jste toto?
+msgstr[1] Mysleli jste tyto?
+msgstr[2] Mysleli jste tyto?
 
 #: trac/admin/console.py:326
 #, python-format
@@ -2121,7 +2123,7 @@ msgid 
 Copyright © 2003-2013\n
 [1:Edgewall Software]
 msgstr 
-Autorská práva © 2003-2012\n
+Autorská práva © 2003-2013\n
 [1:Edgewall Software]
 
 #: trac/templates/about.html:54

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages-js.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages-js.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages-js.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages-js.po
 Sat Nov 15 01:14:46 2014
@@ -17,7 +17,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: trac/htdocs/js/blame.js:84
 msgid (no changeset information)

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/da/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -17,7 +17,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: tracopt/mimeview/php.py:96
 msgid 
@@ -772,7 +772,7 @@ msgid 
 msgstr 
 Velkommen til trac-admin %(version)s\n
 Interaktiv Trac administrationskonsol.\n
-Copyright (C) 2003-2012 Edgewall Software\n
+Copyright (C) 2003-2013 Edgewall Software\n
 \n
 Skriv:  '?' eller 'help' for hjælp til kommandoer.\n
 

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/de/LC_MESSAGES/messages-js.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/de/LC_MESSAGES/messages-js.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/de/LC_MESSAGES/messages-js.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/de/LC_MESSAGES/messages-js.po
 Sat Nov 15 01:14:46 2014
@@ -15,7 +15,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: trac/htdocs/js/blame.js:84
 msgid (no changeset information)

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/de/LC_MESSAGES/messages.po
URL: 

svn commit: r1639823 [8/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ s

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ja/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ja/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ja/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ja/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -1,18 +1,18 @@
 # Japanese (Japan) translations for Trac.
-# Copyright (C) 2007-2013 Edgewall Software
+# Copyright (C) 2007-2014 Edgewall Software
 # This file is distributed under the same license as the Trac project.
 # Jeroen Ruigrok van der Werven asmo...@in-nomine.org, 2007.
 # Kyosuke Takayama supp...@mc.neweb.ne.jp, 2008,2009.
 # hirobe, 2008.
 # kabuchan, 2009.
 # IWAI, Masaharu i...@alib.jp, 2009,2010.
-# Jun Omae jun6...@gmail.com, 2010-2013.
+# Jun Omae jun6...@gmail.com, 2010-2014.
 #
 msgid 
 msgstr 
-Project-Id-Version: Trac 1.0\n
+Project-Id-Version: Trac 1.0.2\n
 Report-Msgid-Bugs-To: trac-...@googlegroups.com\n
-POT-Creation-Date: 2013-01-27 11:21+0900\n
+POT-Creation-Date: 2014-09-01 12:43+\n
 PO-Revision-Date: 2011-07-14 21:38+0900\n
 Last-Translator: Jun Omae jun6...@gmail.com\n
 Language-Team: ja trac-...@googlegroups.com\n
@@ -20,7 +20,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: tracopt/mimeview/php.py:96
 msgid 
@@ -52,7 +52,7 @@ msgstr コピー
 msgid Create a copy of this ticket
 msgstr このチケットのコピーを作成する
 
-#: tracopt/ticket/commit_updater.py:275
+#: tracopt/ticket/commit_updater.py:283
 msgid 
 Insert a changeset message into the output.\n
 \n
@@ -78,12 +78,16 @@ msgstr 
  - `repository`: チェンジセットがあるリポジトリ\n
  - `revision`: 要求のチェンジセットを示すリビジョン
 
+#: tracopt/ticket/commit_updater.py:313
+msgid (The changeset message doesn't reference this ticket)
+msgstr (チェンジセットのメッセージはこのチケットを参ç…
§ã—ていません)
+
 #: tracopt/ticket/deleter.py:73 tracopt/ticket/deleter.py:90
-#: trac/ticket/templates/report_list.html:82
+#: trac/ticket/templates/report_list.html:92
 msgid Delete
 msgstr 削除
 
-#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:42
+#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:51
 msgid Delete ticket
 msgstr チケットの削除
 
@@ -107,82 +111,105 @@ msgstr チケット #%(id)s
 msgid Comment %(num)s not found
 msgstr コメント %(num)s が見つかりません
 
-#: tracopt/ticket/templates/ticket_delete.html:11
+#: tracopt/ticket/templates/ticket_delete.html:21
 #, python-format
 msgid Delete Ticket #%(id)s
 msgstr チケット #%(id)s の削除
 
-#: tracopt/ticket/templates/ticket_delete.html:12
-#: tracopt/ticket/templates/ticket_delete.html:48
+#: tracopt/ticket/templates/ticket_delete.html:22
+#: tracopt/ticket/templates/ticket_delete.html:58
 #, python-format
 msgid Delete comment %(num)s on Ticket #%(id)s
 msgstr チケット #%(id)s コメント %(num)s の削除
 
-#: tracopt/ticket/templates/ticket_delete.html:20
+#: tracopt/ticket/templates/ticket_delete.html:30
 #, python-format
 msgid Delete [1:Ticket #%(id)s]
 msgstr [1:チケット #%(id)s] の削除
 
-#: tracopt/ticket/templates/ticket_delete.html:32
+#: tracopt/ticket/templates/ticket_delete.html:42
 msgid Are you sure you want to delete this ticket?
 msgstr このチケットを削除しますか?
 
-#: tracopt/ticket/templates/ticket_delete.html:33
+#: tracopt/ticket/templates/ticket_delete.html:43
 #, python-format
 msgid 
 (comments: %(comments)s,\n
  attachments: %(attachments)s)
 msgstr (コメント: %(comments)s, 添付ファイル: %(attachments)s)
 
-#: tracopt/ticket/templates/ticket_delete.html:36
-#: tracopt/ticket/templates/ticket_delete.html:61
-#: trac/templates/attachment.html:70 trac/wiki/templates/wiki_delete.html:95
+#: tracopt/ticket/templates/ticket_delete.html:46
+#: tracopt/ticket/templates/ticket_delete.html:71
+#: trac/templates/attachment.html:80 trac/wiki/templates/wiki_delete.html:105
 msgid This is an irreversible operation.
 msgstr これは取り消しの効かない操作です。
 
-#: tracopt/ticket/templates/ticket_delete.html:41
-#: tracopt/ticket/templates/ticket_delete.html:65
-#: trac/admin/templates/admin_components.html:55
-#: trac/admin/templates/admin_enums.html:24
-#: trac/admin/templates/admin_milestones.html:74
-#: trac/admin/templates/admin_versions.html:50
-#: trac/templates/attachment.html:63 trac/templates/attachment.html:76
-#: trac/ticket/templates/milestone_delete.html:40
-#: trac/ticket/templates/milestone_edit.html:108
-#: 

svn commit: r1639823 [2/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ s

2014-11-14 Thread rjollos
Modified: bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-hook
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-hook?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-hook 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-hook Sat 
Nov 15 01:14:46 2014
@@ -1,4 +1,17 @@
 #!/bin/sh
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2009-2013 Edgewall Software
+# Copyright (C) 2009 Christian Boos cb...@edgewall.org
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.com/license.html.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/.
 #
 # = trac-svn-hook =
 #

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-post-commit-hook.cmd
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-post-commit-hook.cmd?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-post-commit-hook.cmd
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-post-commit-hook.cmd
 Sat Nov 15 01:14:46 2014
@@ -1,8 +1,19 @@
 @ECHO OFF
 ::
+:: Copyright (C) 2007-2013 Edgewall Software
+:: Copyright (C) 2007 Markus Tacker m...@tacker.org
+:: Copyright (C) 2007 Christian Boos cb...@edgewall.org
+:: All rights reserved.
+::
+:: This software is licensed as described in the file COPYING, which
+:: you should have received as part of this distribution. The terms
+:: are also available at http://trac.edgewall.com/license.html.
+::
+:: This software consists of voluntary contributions made by many
+:: individuals. For the exact contribution history, see the revision
+:: history and logs, available at http://trac.edgewall.org/.
 :: Trac post-commit-hook script for Windows
 ::
-:: Contributed by markus, modified by cboos.
 :: Modified for the multirepos branch to use the `changeset` command.
 
 :: Usage:

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/migrate_original_to_basic.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/migrate_original_to_basic.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/migrate_original_to_basic.py
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/migrate_original_to_basic.py
 Sat Nov 15 01:14:46 2014
@@ -1,9 +1,24 @@
 #!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2007-2013 Edgewall Software
+# Copyright (C) 2007 Eli Carter retrac...@gmail.com
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.com/license.html.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/.
+
 import sys
 
 import trac.env
 from trac.ticket.default_workflow import load_workflow_config_snippet
 
+
 def main():
 Rewrite the ticket-workflow section of the config; and change all
 'assigned' tickets to 'accepted'.

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/showworkflow
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/showworkflow?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/showworkflow 
(original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/contrib/workflow/showworkflow 
Sat Nov 15 01:14:46 2014
@@ -1,4 +1,17 @@
 #!/bin/bash -x
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2007-2013 Edgewall Software
+# Copyright (C) 2007 Eli Carter retrac...@gmail.com
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.com/license.html.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/.
 
 

svn commit: r1639823 [1/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ s

2014-11-14 Thread rjollos
Author: rjollos
Date: Sat Nov 15 01:14:46 2014
New Revision: 1639823

URL: http://svn.apache.org/r1639823
Log:
Merged Trac 1.0.2 and resolved merge conflicts. Many tests are failing.

Added:
bloodhound/branches/trac-1.0.2-integration/trac/.travis.yml
  - copied unchanged from r1639805, bloodhound/vendor/trac/1.0.2/.travis.yml
bloodhound/branches/trac-1.0.2-integration/trac/trac/tests/compat.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/tests/compat.py

bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/templates/admin_components.html
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/ticket/templates/admin_components.html

bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/templates/admin_enums.html
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/ticket/templates/admin_enums.html

bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/templates/admin_milestones.html
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/ticket/templates/admin_milestones.html

bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/templates/admin_versions.html
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/ticket/templates/admin_versions.html

bloodhound/branches/trac-1.0.2-integration/trac/trac/timeline/tests/web_ui.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/timeline/tests/web_ui.py

bloodhound/branches/trac-1.0.2-integration/trac/trac/timeline/tests/wikisyntax.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/timeline/tests/wikisyntax.py

bloodhound/branches/trac-1.0.2-integration/trac/trac/util/tests/translation.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/util/tests/translation.py

bloodhound/branches/trac-1.0.2-integration/trac/trac/versioncontrol/web_ui/tests/browser.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/versioncontrol/web_ui/tests/browser.py

bloodhound/branches/trac-1.0.2-integration/trac/trac/versioncontrol/web_ui/tests/changeset.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/versioncontrol/web_ui/tests/changeset.py

bloodhound/branches/trac-1.0.2-integration/trac/trac/versioncontrol/web_ui/tests/log.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/trac/versioncontrol/web_ui/tests/log.py
bloodhound/branches/trac-1.0.2-integration/trac/tracopt/ticket/tests/
  - copied from r1639805, bloodhound/vendor/trac/1.0.2/tracopt/ticket/tests/

bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/git/tests/git_fs.py
  - copied unchanged from r1639805, 
bloodhound/vendor/trac/1.0.2/tracopt/versioncontrol/git/tests/git_fs.py
Removed:

bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/templates/admin_components.html

bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/templates/admin_enums.html

bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/templates/admin_milestones.html

bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/templates/admin_versions.html
Modified:
bloodhound/branches/trac-1.0.2-integration/trac/   (props changed)
bloodhound/branches/trac-1.0.2-integration/trac/.gitignore
bloodhound/branches/trac-1.0.2-integration/trac/.hgignore
bloodhound/branches/trac-1.0.2-integration/trac/AUTHORS
bloodhound/branches/trac-1.0.2-integration/trac/ChangeLog
bloodhound/branches/trac-1.0.2-integration/trac/Makefile
bloodhound/branches/trac-1.0.2-integration/trac/Makefile.cfg.sample
bloodhound/branches/trac-1.0.2-integration/trac/THANKS
bloodhound/branches/trac-1.0.2-integration/trac/contrib/bugzilla2trac.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/cgi-bin/trac.cgi
bloodhound/branches/trac-1.0.2-integration/trac/contrib/cgi-bin/trac.fcgi
bloodhound/branches/trac-1.0.2-integration/trac/contrib/checkwiki.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/emailfilter.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/htdigest.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/htpasswd.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/l10n_diff_index.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/l10n_reset_en_GB.py

bloodhound/branches/trac-1.0.2-integration/trac/contrib/l10n_revert_lineno_conflicts.py

bloodhound/branches/trac-1.0.2-integration/trac/contrib/migrateticketmodel.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/sourceforge2trac.py
bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-pre-commit-hook
bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-hook

bloodhound/branches/trac-1.0.2-integration/trac/contrib/trac-svn-post-commit-hook.cmd

bloodhound/branches

svn commit: r1639823 [6/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ s

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ca/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ca/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ca/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/ca/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -1,35 +1,36 @@
 # Catalan translation of Trac.
-# Copyright © 2004, 2009, 2010, 2011 Edgewall Software.
+# Copyright © 2004, 2009, 2010, 2011, 2013 Edgewall Software.
 # This file is distributed under the same license as the trac package.
 # Núria Montesinos, 2004.
-# Jordi Mallach jo...@sindominio.net, 2004, 2009, 2010, 2011.
+# Jordi Mallach jo...@sindominio.net, 2004, 2009, 2010, 2011, 2013.
 #
 msgid 
 msgstr 
-Project-Id-Version: trac 0.12.3-dev\n
+Project-Id-Version: trac 1.0-dev\n
 Report-Msgid-Bugs-To: trac-...@googlegroups.com\n
-POT-Creation-Date: 2013-01-27 11:21+0900\n
-PO-Revision-Date: 2011-11-17 11:12+0100\n
+POT-Creation-Date: 2013-03-21 22:54+0100\n
+PO-Revision-Date: 2013-04-25 17:37+0200\n
 Last-Translator: Jordi Mallach jo...@sindominio.net\n
 Language-Team: Catalan c...@dodds.net\n
-Plural-Forms: nplurals=2; plural=n!=1\n
+Language: ca\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.6dev-r0\n
+Plural-Forms: nplurals=2; plural=n!=1\n
+Generated-By: Babel 0.9.6\n
 
 #: tracopt/mimeview/php.py:96
 msgid 
-You appear to be using the PHP CGI binary. Trac requires the CLI version 
-for syntax highlighting.
+You appear to be using the PHP CGI binary. Trac requires the CLI version for 
+syntax highlighting.
 msgstr 
-Sembla que esteu emprant el binari de PHP CGI. Trac requereix la versió 
-CLI per al ressaltat de sintaxi.
+Sembla que esteu emprant el binari de PHP CGI. Trac requereix la versió CLI 
+per al ressaltat de sintaxi.
 
 #: tracopt/ticket/clone.py:49
 #, python-format
 msgid %(summary)s (cloned)
-msgstr 
+msgstr %(summary)s (clonat)
 
 #: tracopt/ticket/clone.py:53
 #, python-format
@@ -38,15 +39,17 @@ msgid 
 \n
 %(description)s
 msgstr 
+Clonat des de #%(id)s:\n
+\n
+%(description)s
 
 #: tracopt/ticket/clone.py:60
-#, fuzzy
 msgid Clone
-msgstr tancat
+msgstr Clona
 
 #: tracopt/ticket/clone.py:61
 msgid Create a copy of this ticket
-msgstr 
+msgstr Crea una còpia d'aquest tiquet
 
 #: tracopt/ticket/commit_updater.py:275
 msgid 
@@ -172,12 +175,12 @@ msgstr No s'ha pogut obrir el dipòsi
 #: tracopt/versioncontrol/svn/svn_fs.py:664
 #, python-format
 msgid 
-Diff mismatch: Base is a %(oldnode)s (%(oldpath)s in revision %(oldrev)s)
- and Target is a %(newnode)s (%(newpath)s in revision %(newrev)s).
+Diff mismatch: Base is a %(oldnode)s (%(oldpath)s in revision %(oldrev)s) 
+and Target is a %(newnode)s (%(newpath)s in revision %(newrev)s).
 msgstr 
-Inconsistència al diff: La base és un %(oldnode)s (%(oldpath)s a la 
-revisió %(oldrev)s) i la destinació és %(newnode)s (%(newpath)s a la 
-revisió %(newrev)s).
+Inconsistència al diff: La base és un %(oldnode)s (%(oldpath)s a la 
revisió 
+%(oldrev)s) i la destinació és %(newnode)s (%(newpath)s a la revisió 
+%(newrev)s).
 
 #: tracopt/versioncontrol/svn/svn_fs.py:823
 #, python-format
@@ -287,14 +290,14 @@ msgstr No s'ha pogut suprimir l'adjunt
 #, python-format
 msgid Cannot reparent attachment \%(att)s\ as %(realm)s:%(id)s is invalid
 msgstr 
-No es pot assignar un pare a l'adjunt «%(att)s» perquè %(realm)s:%(id)s 
-és invàlid
+No es pot assignar un pare a l'adjunt «%(att)s» perquè %(realm)s:%(id)s 
és 
+invàlid
 
 #: trac/attachment.py:258
 #, python-format
 msgid 
-Cannot reparent attachment \%(att)s\ as it already exists in 
-%(realm)s:%(id)s
+Cannot reparent attachment \%(att)s\ as it already exists in %(realm)s:
+%(id)s
 msgstr 
 No es pot assignar un pare a l'adjunt «%(att)s» perquè ja existeix a 
 %(realm)s:%(id)s
@@ -377,20 +380,19 @@ msgid Invalid attachment: %(message)s
 msgstr L'adjunt és invàlid: %(message)s
 
 #: trac/attachment.py:745
-#, fuzzy
 msgid Note: File must be selected again.
-msgstr No s'ha seleccionat cap fita
+msgstr Nota: S'ha de tornar a seleccionar el fitxer.
 
 #: trac/attachment.py:758
 #, python-format
 msgid 
-You don't have permission to replace the attachment %(name)s. You can 
-only replace your own attachments. Replacing other's attachments requires
- ATTACHMENT_DELETE permission.
-msgstr 
-No teniu permís per a reemplaçar l'adjunt %(name)s. Només podeu 
-reemplaçar els adjunts propis. Reemplaçar els adjunts d'altres requereix 
-permisos «ATTACHMENT_DELETE».
+You don't have permission to replace the attachment %(name)s. You can only 
+replace your own attachments. Replacing 

svn commit: r1639823 [12/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/mimeview/tests/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/mimeview/tests/api.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/mimeview/tests/api.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/mimeview/tests/api.py 
Sat Nov 15 01:14:46 2014
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C)2006-2009 Edgewall Software
+# Copyright (C) 2006-2013 Edgewall Software
 # All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
@@ -14,8 +14,8 @@
 import doctest
 import unittest
 from StringIO import StringIO
-import sys
 
+import trac.tests.compat
 from trac.core import *
 from trac.test import EnvironmentStub
 from trac.mimeview import api
@@ -112,22 +112,22 @@ class GroupLinesTestCase(unittest.TestCa
 def test_text_only_stream(self):
 input = [(TEXT, test, (None, -1, -1))]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), 1)
-self.assertTrue(isinstance(lines[0], Stream))
-self.assertEquals(lines[0].events, input)
+self.assertEqual(len(lines), 1)
+self.assertIsInstance(lines[0], Stream)
+self.assertEqual(lines[0].events, input)
 
 def test_text_only_stream2(self):
 input = [(TEXT, test\n, (None, -1, -1))]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), 1)
-self.assertTrue(isinstance(lines[0], Stream))
-self.assertEquals(lines[0].events, [(TEXT, test, (None, -1, -1))])
+self.assertEqual(len(lines), 1)
+self.assertIsInstance(lines[0], Stream)
+self.assertEqual(lines[0].events, [(TEXT, test, (None, -1, -1))])
 
 def test_simplespan(self):
 input = HTMLParser(StringIO(uspantest/span), encoding=None)
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), 1)
-self.assertTrue(isinstance(lines[0], Stream))
+self.assertEqual(len(lines), 1)
+self.assertIsInstance(lines[0], Stream)
 for (a, b) in zip(lines[0], input):
 self.assertEqual(a, b)
 
@@ -137,17 +137,17 @@ class GroupLinesTestCase(unittest.TestCa
 
 input = [(TEXT, , (None, -1, -1))]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), 0)
+self.assertEqual(len(lines), 0)
 
 def test_newline_stream(self):
 input = [(TEXT, \n, (None, -1, -1))]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), 1)
+self.assertEqual(len(lines), 1)
 
 def test_newline_stream2(self):
 input = [(TEXT, \n\n\n, (None, -1, -1))]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), 3)
+self.assertEqual(len(lines), 3)
 
 def test_empty_text_in_span(self):
 
@@ -172,9 +172,9 @@ class GroupLinesTestCase(unittest.TestCa
 'span class=cb/span',
]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), len(expected))
+self.assertEqual(len(lines), len(expected))
 for a, b in zip(lines, expected):
-self.assertEquals(a.render('html'), b)
+self.assertEqual(a.render('html'), b)
 
 def test_newline2(self):
 
@@ -187,9 +187,9 @@ class GroupLinesTestCase(unittest.TestCa
 'span class=cb/span',
]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), len(expected))
+self.assertEqual(len(lines), len(expected))
 for a, b in zip(lines, expected):
-self.assertEquals(a.render('html'), b)
+self.assertEqual(a.render('html'), b)
 
 def test_multinewline(self):
 
@@ -203,17 +203,17 @@ class GroupLinesTestCase(unittest.TestCa
 'span class=ca/span',
]
 lines = list(_group_lines(input))
-self.assertEquals(len(lines), len(expected))
+self.assertEqual(len(lines), len(expected))
 for a, b in zip(lines, expected):
-self.assertEquals(a.render('html'), b)
+self.assertEqual(a.render('html'), b)
 
 
 def suite():
 suite = unittest.TestSuite()
 suite.addTest(doctest.DocTestSuite(api))
-suite.addTest(unittest.makeSuite(GetMimeTypeTestCase, 'test'))
-suite.addTest(unittest.makeSuite(MimeviewTestCase, 'test'))
-suite.addTest(unittest.makeSuite(GroupLinesTestCase, 'test'))
+suite.addTest(unittest.makeSuite(GetMimeTypeTestCase))
+suite.addTest(unittest.makeSuite(MimeviewTestCase))
+suite.addTest(unittest.makeSuite(GroupLinesTestCase))
 return suite
 
 if __name__ == '__main__':

Modified: 

svn commit: r1639823 [13/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/list_of_attachments.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/list_of_attachments.html?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/list_of_attachments.html
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/list_of_attachments.html
 Sat Nov 15 01:14:46 2014
@@ -1,4 +1,13 @@
-!--!
+!--!  Copyright (C) 2010-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+
 Display a list of attachments.
 
 Arguments:

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/macros.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/macros.html?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/macros.html 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/macros.html 
Sat Nov 15 01:14:46 2014
@@ -1,3 +1,13 @@
+!--!  Copyright (C) 2006-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+--
 div xmlns=http://www.w3.org/1999/xhtml;
  xmlns:py=http://genshi.edgewall.org/;
  xmlns:xi=http://www.w3.org/2001/XInclude;

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/page_index.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/page_index.html?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/page_index.html 
(original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/page_index.html 
Sat Nov 15 01:14:46 2014
@@ -1,6 +1,17 @@
-!--!  Display a page index.
+!--!  Copyright (C) 2008-2014 Edgewall Software
 
-  `paginator` must be a trac.util.presentation.Paginator instance
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+
+Display a page index.
+
+Arguments:
+ - `paginator` must be a trac.util.presentation.Paginator instance
 
   --
 div xmlns=http://www.w3.org/1999/xhtml;

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/preview_file.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/preview_file.html?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/preview_file.html
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/preview_file.html
 Sat Nov 15 01:14:46 2014
@@ -1,4 +1,13 @@
-!--!
+!--!  Copyright (C) 2010-2014 Edgewall Software
+
+  This software is licensed as described in the file COPYING, which
+  you should have received as part of this distribution. The terms
+  are also available at http://trac.edgewall.com/license.html.
+
+  This software consists of voluntary contributions made by many
+  individuals. For the exact contribution history, see the revision
+  history and logs, available at http://trac.edgewall.org/.
+
 Display a div for visualizing a preview of a file content.
 
 Arguments:

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/progress_bar.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/progress_bar.html?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/templates/progress_bar.html
 (original)
+++ 

svn commit: r1639823 [11/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages-js.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages-js.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages-js.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages-js.po
 Sat Nov 15 01:14:46 2014
@@ -15,7 +15,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: trac/htdocs/js/blame.js:84
 msgid (no changeset information)

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nb/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -15,7 +15,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: tracopt/mimeview/php.py:96
 msgid 
@@ -7008,3 +7008,8 @@ msgstr (tom side)
 msgid The following pages have a name similar to this page, and may be 
related:
 msgstr Følgende sider har navn som ligner denne siden, og kan være 
relatert:
 
+#~ msgid 
+#~ Copyright © 2003-2012\n
+#~ [1:Edgewall Software]
+#~ msgstr 
+

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nl/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nl/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nl/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/nl/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -11,7 +11,7 @@ msgid 
 msgstr 
 Project-Id-Version:  Trac\n
 Report-Msgid-Bugs-To: http://trac.edgewall.org/\n;
-POT-Creation-Date: 2012-10-29 19:08+0100\n
+POT-Creation-Date: 2013-02-17 15:58+0100\n
 PO-Revision-Date: 2013-01-27 17:56+\n
 Last-Translator: Pander pan...@users.sourceforge.net\n
 Language-Team: Dutch 
@@ -764,7 +764,7 @@ msgid 
 msgstr 
 Welkom in trac-admin %(version)s\n
 Interactieve Trac-administratieomgeving.\n
-Copyright (c) 2003-2010 Edgewall Software\n
+Copyright (c) 2003-2013 Edgewall Software\n
 \n
 Type:  '?' of 'help' voor hulp bij commando’s.\n
 
@@ -2162,7 +2162,7 @@ msgid 
 Copyright © 2003-2013\n
 [1:Edgewall Software]
 msgstr 
-Copyright © 2003-2010\n
+Copyright © 2003-2013\n
 [1:Edgewall Software]
 
 #: trac/templates/about.html:54

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pl/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pl/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pl/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pl/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -19,7 +19,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 0.9.6dev-r0\n
+Generated-By: Babel 0.9.6\n
 
 #: tracopt/mimeview/php.py:96
 msgid 
@@ -7042,3 +7042,8 @@ msgstr 
 Następujące strony mają nazwę podobną do tej strony i mogą zostać 
 powiązane:
 
+#~ msgid 
+#~ Copyright © 2003-2012\n
+#~ [1:Edgewall Software]
+#~ msgstr 
+

Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pt/LC_MESSAGES/messages.po
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pt/LC_MESSAGES/messages.po?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pt/LC_MESSAGES/messages.po
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/pt/LC_MESSAGES/messages.po
 Sat Nov 15 01:14:46 2014
@@ -17,7 +17,7 @@ msgstr 
 MIME-Version: 1.0\n
 Content-Type: text/plain; charset=utf-8\n
 Content-Transfer-Encoding: 8bit\n
-Generated-By: Babel 

svn commit: r1639823 [28/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/git/git_fs.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/git/git_fs.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/git/git_fs.py
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/git/git_fs.py
 Sat Nov 15 01:14:46 2014
@@ -15,20 +15,25 @@
 from __future__ import with_statement
 
 from datetime import datetime
+import itertools
 import os
 import sys
 
 from genshi.builder import tag
+from genshi.core import Markup
 
+from trac.cache import cached
 from trac.config import BoolOption, IntOption, PathOption, Option
 from trac.core import *
 from trac.util import TracError, shorten_line
 from trac.util.datefmt import FixedOffset, to_timestamp, format_datetime
-from trac.util.text import to_unicode
+from trac.util.text import to_unicode, exception_to_unicode
+from trac.util.translation import _
 from trac.versioncontrol.api import Changeset, Node, Repository, \
 IRepositoryConnector, NoSuchChangeset, \
 NoSuchNode, IRepositoryProvider
-from trac.versioncontrol.cache import CachedRepository, CachedChangeset
+from trac.versioncontrol.cache import CACHE_YOUNGEST_REV, CachedRepository, \
+  CachedChangeset
 from trac.versioncontrol.web_ui import IPropertyRenderer
 from trac.web.chrome import Chrome
 from trac.wiki import IWikiSyntaxProvider
@@ -37,10 +42,7 @@ from tracopt.versioncontrol.git import P
 
 
 class GitCachedRepository(CachedRepository):
-Git-specific cached repository.
-
-Passes through {display,short,normalize}_rev
-
+Git-specific cached repository.
 
 def display_rev(self, rev):
 return self.short_rev(rev)
@@ -50,15 +52,113 @@ class GitCachedRepository(CachedReposito
 
 def normalize_rev(self, rev):
 if not rev:
-return self.repos.get_youngest_rev()
+return self.get_youngest_rev()
 normrev = self.repos.git.verifyrev(rev)
 if normrev is None:
 raise NoSuchChangeset(rev)
 return normrev
 
+def get_youngest_rev(self):
+# return None if repository is empty
+return CachedRepository.get_youngest_rev(self) or None
+
+def child_revs(self, rev):
+return self.repos.child_revs(rev)
+
+def get_changesets(self, start, stop):
+for key, csets in itertools.groupby(
+CachedRepository.get_changesets(self, start, stop),
+key=lambda cset: cset.date):
+csets = list(csets)
+if len(csets) == 1:
+yield csets[0]
+continue
+rev_csets = dict((cset.rev, cset) for cset in csets)
+while rev_csets:
+revs = [rev for rev in rev_csets
+if not any(r in rev_csets
+   for r in self.repos.child_revs(rev))]
+for rev in sorted(revs):
+yield rev_csets.pop(rev)
+
 def get_changeset(self, rev):
 return GitCachedChangeset(self, self.normalize_rev(rev), self.env)
 
+def sync(self, feedback=None, clean=False):
+if clean:
+self.remove_cache()
+
+metadata = self.metadata
+self.save_metadata(metadata)
+meta_youngest = metadata.get(CACHE_YOUNGEST_REV)
+repos = self.repos
+
+def is_synced(rev):
+for count, in self.env.db_query(
+SELECT COUNT(*) FROM revision WHERE repos=%s AND rev=%s
+, (self.id, rev)):
+return count  0
+return False
+
+def traverse(rev, seen, revs=None):
+if revs is None:
+revs = []
+while True:
+if rev in seen:
+return revs
+seen.add(rev)
+if is_synced(rev):
+return revs
+revs.append(rev)
+parent_revs = repos.parent_revs(rev)
+if not parent_revs:
+return revs
+if len(parent_revs) == 1:
+rev = parent_revs[0]
+continue
+idx = len(revs)
+traverse(parent_revs.pop(), seen, revs)
+for parent in parent_revs:
+revs[idx:idx] = traverse(parent, seen)
+
+while True:
+repos.sync()
+repos_youngest = repos.youngest_rev
+updated = False
+seen = set()
+
+for rev in repos.git.all_revs():
+if repos.child_revs(rev):
+continue
+revs = traverse(rev, seen)  # 

svn commit: r1639823 [3/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/ s

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/tests/console.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/tests/console.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/tests/console.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/admin/tests/console.py 
Sat Nov 15 01:14:46 2014
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2004-2009 Edgewall Software
+# Copyright (C) 2004-2013 Edgewall Software
 # All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
@@ -14,6 +14,7 @@
 # Author: Tim Moloney t.molo...@verizon.net
 
 import difflib
+import inspect
 import os
 import re
 import sys
@@ -42,9 +43,14 @@ import trac.search.web_ui
 import trac.timeline.web_ui
 import trac.wiki.web_ui
 
-from trac.admin import console, console_date_format
+from trac.admin.api import AdminCommandManager, IAdminCommandProvider, \
+   console_date_format, get_console_locale
+from trac.admin.console import TracAdmin, TracAdminHelpMacro
+from trac.core import Component, implements
 from trac.test import EnvironmentStub
-from trac.util.datefmt import format_date, get_date_format_hint
+from trac.util.datefmt import format_date, get_date_format_hint, \
+  get_datetime_format_hint
+from trac.util.translation import get_available_locales, has_babel
 from trac.web.tests.session import _prep_session_table
 
 STRIP_TRAILING_SPACE = re.compile(r'( +)$', re.MULTILINE)
@@ -71,20 +77,50 @@ def load_expected_results(file, pattern)
 return expected
 
 
+def execute_cmd(tracadmin, cmd, strip_trailing_space=True, input=None):
+_in = sys.stdin
+_err = sys.stderr
+_out = sys.stdout
+try:
+if input:
+sys.stdin = StringIO(input.encode('utf-8'))
+sys.stdin.encoding = 'utf-8' # fake input encoding
+sys.stderr = sys.stdout = out = StringIO()
+out.encoding = 'utf-8' # fake output encoding
+retval = None
+try:
+retval = tracadmin.onecmd(cmd)
+except SystemExit:
+pass
+value = out.getvalue()
+if isinstance(value, str): # reverse what print_listing did
+value = value.decode('utf-8')
+if strip_trailing_space:
+return retval, STRIP_TRAILING_SPACE.sub('', value)
+else:
+return retval, value
+finally:
+sys.stdin = _in
+sys.stderr = _err
+sys.stdout = _out
+
+
 class TracadminTestCase(unittest.TestCase):
 
 Tests the output of trac-admin and is meant to be used with
 .../trac/tests.py.
 
 
-expected_results = load_expected_results(
-os.path.join(os.path.split(__file__)[0], 'console-tests.txt'),
-'= (test_[^ ]+) =')
+expected_results_file = os.path.join(os.path.dirname(__file__),
+ 'console-tests.txt')
+
+expected_results = load_expected_results(expected_results_file,
+ '= (test_[^ ]+) =')
 
 def setUp(self):
 self.env = EnvironmentStub(default_data=True, enable=('trac.*',),
disable=('trac.tests.*',))
-self._admin = console.TracAdmin()
+self._admin = TracAdmin()
 self._admin.env_set('', self.env)
 
 # Set test date to 11th Jan 2004
@@ -94,39 +130,32 @@ class TracadminTestCase(unittest.TestCas
 self.env = None
 
 def _execute(self, cmd, strip_trailing_space=True, input=None):
-_in = sys.stdin
-_err = sys.stderr
-_out = sys.stdout
-try:
-if input:
-sys.stdin = StringIO(input.encode('utf-8'))
-sys.stdin.encoding = 'utf-8' # fake input encoding
-sys.stderr = sys.stdout = out = StringIO()
-out.encoding = 'utf-8' # fake output encoding
-retval = None
-try:
-retval = self._admin.onecmd(cmd)
-except SystemExit:
-pass
-value = out.getvalue()
-if isinstance(value, str): # reverse what print_listing did
-value = value.decode('utf-8')
-# DEBUG: uncomment in case of `AssertionError: 0 != 2` in tests
-#if retval != 0:
-#print_err, value
-if strip_trailing_space:
-return retval, STRIP_TRAILING_SPACE.sub('', value)
-else:
-return retval, value
-finally:
-sys.stdin = _in
-sys.stderr = _err
-sys.stdout = _out
-
-def assertEqual(self, expected_results, output):
-if not (isinstance(expected_results, basestring) and \
+return 

svn commit: r1639823 [29/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/svn/tests/svnrepos.dump
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/svn/tests/svnrepos.dump?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/svn/tests/svnrepos.dump
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/tracopt/versioncontrol/svn/tests/svnrepos.dump
 Sat Nov 15 01:14:46 2014
@@ -16,10 +16,6 @@ Revision-number: 1
 Prop-content-length: 124
 Content-length: 124
 
-K 7
-svn:log
-V 25
-Initial directory layout.
 K 10
 svn:author
 V 4
@@ -28,6 +24,10 @@ K 8
 svn:date
 V 27
 2005-04-01T10:00:52.353248Z
+K 7
+svn:log
+V 25
+Initial directory layout.
 PROPS-END
 
 Node-path: branches
@@ -61,10 +61,6 @@ Revision-number: 2
 Prop-content-length: 112
 Content-length: 112
 
-K 7
-svn:log
-V 13
-Added README.
 K 10
 svn:author
 V 4
@@ -73,6 +69,10 @@ K 8
 svn:date
 V 27
 2005-04-01T13:12:18.216267Z
+K 7
+svn:log
+V 13
+Added README.
 PROPS-END
 
 Node-path: tête/README.txt
@@ -92,11 +92,6 @@ Revision-number: 3
 Prop-content-length: 113
 Content-length: 113
 
-K 7
-svn:log
-V 14
-Fixed README.
-
 K 10
 svn:author
 V 4
@@ -105,6 +100,11 @@ K 8
 svn:date
 V 27
 2005-04-01T13:24:58.234643Z
+K 7
+svn:log
+V 14
+Fixed README.
+
 PROPS-END
 
 Node-path: tête/README.txt
@@ -117,13 +117,13 @@ Text-content-sha1: 6aade8dde7d1b86b451b5
 Content-length: 83
 
 K 13
-svn:mime-type
-V 10
-text/plain
-K 13
 svn:eol-style
 V 6
 native
+K 13
+svn:mime-type
+V 10
+text/plain
 PROPS-END
 A test.
 
@@ -132,10 +132,6 @@ Revision-number: 4
 Prop-content-length: 116
 Content-length: 116
 
-K 7
-svn:log
-V 17
-More directories.
 K 10
 svn:author
 V 4
@@ -144,6 +140,10 @@ K 8
 svn:date
 V 27
 2005-04-01T15:42:35.450595Z
+K 7
+svn:log
+V 17
+More directories.
 PROPS-END
 
 Node-path: tête/dir1
@@ -177,10 +177,6 @@ Revision-number: 5
 Prop-content-length: 117
 Content-length: 117
 
-K 7
-svn:log
-V 18
-Moved directories.
 K 10
 svn:author
 V 4
@@ -189,6 +185,10 @@ K 8
 svn:date
 V 27
 2005-04-01T16:25:39.658099Z
+K 7
+svn:log
+V 18
+Moved directories.
 PROPS-END
 
 Node-path: tête/dir1/dir2
@@ -217,10 +217,6 @@ Revision-number: 6
 Prop-content-length: 118
 Content-length: 118
 
-K 7
-svn:log
-V 19
-More things to read
 K 10
 svn:author
 V 4
@@ -229,6 +225,10 @@ K 8
 svn:date
 V 27
 2005-04-01T18:56:46.985846Z
+K 7
+svn:log
+V 19
+More things to read
 PROPS-END
 
 Node-path: tête/README2.txt
@@ -244,10 +244,6 @@ Revision-number: 7
 Prop-content-length: 151
 Content-length: 151
 
-K 7
-svn:log
-V 42
-test the tag operation (copy of directory)
 K 10
 svn:author
 V 13
@@ -256,6 +252,10 @@ K 8
 svn:date
 V 27
 2005-04-14T15:06:20.717616Z
+K 7
+svn:log
+V 42
+test the tag operation (copy of directory)
 PROPS-END
 
 Node-path: tags/v1
@@ -269,10 +269,6 @@ Revision-number: 8
 Prop-content-length: 124
 Content-length: 124
 
-K 7
-svn:log
-V 15
-Fix stuff in v1
 K 10
 svn:author
 V 13
@@ -281,6 +277,10 @@ K 8
 svn:date
 V 27
 2005-04-22T08:57:33.499643Z
+K 7
+svn:log
+V 15
+Fix stuff in v1
 PROPS-END
 
 Node-path: branches/v1x
@@ -294,10 +294,6 @@ Revision-number: 9
 Prop-content-length: 127
 Content-length: 127
 
-K 7
-svn:log
-V 18
-Now that's the fix
 K 10
 svn:author
 V 13
@@ -306,6 +302,10 @@ K 8
 svn:date
 V 27
 2005-04-22T08:59:24.308979Z
+K 7
+svn:log
+V 18
+Now that's the fix
 PROPS-END
 
 Node-path: branches/v1x/README.txt
@@ -323,10 +323,6 @@ Revision-number: 10
 Prop-content-length: 141
 Content-length: 141
 
-K 7
-svn:log
-V 32
-Tagging v1.1 from the fix branch
 K 10
 svn:author
 V 13
@@ -335,6 +331,10 @@ K 8
 svn:date
 V 27
 2005-04-22T09:00:34.549980Z
+K 7
+svn:log
+V 32
+Tagging v1.1 from the fix branch
 PROPS-END
 
 Node-path: tags/v1.1
@@ -348,10 +348,6 @@ Revision-number: 11
 Prop-content-length: 191
 Content-length: 191
 
-K 7
-svn:log
-V 82
-''(a few months later)'' We don't need the fix branch anymore, 1.1 is 
super-stable
 K 10
 svn:author
 V 13
@@ -360,6 +356,10 @@ K 8
 svn:date
 V 27
 2005-04-22T09:01:38.361737Z
+K 7
+svn:log
+V 82
+''(a few months later)'' We don't need the fix branch anymore, 1.1 is 
super-stable
 PROPS-END
 
 Node-path: branches/v1x
@@ -370,10 +370,6 @@ Revision-number: 12
 Prop-content-length: 166
 Content-length: 166
 
-K 7
-svn:log
-V 57
-''(a few years later)'' Argh... v1.1 was buggy, after all
 K 10
 svn:author
 V 13
@@ -382,6 +378,10 @@ K 8
 svn:date
 V 27
 2005-04-22T09:06:37.011174Z
+K 7
+svn:log
+V 57
+''(a few years later)'' Argh... v1.1 was buggy, after all
 PROPS-END
 
 Node-path: branches/v1x
@@ -395,10 +395,6 @@ Revision-number: 13
 Prop-content-length: 143
 Content-length: 143
 
-K 7
-svn:log
-V 43
-Setting property on the repository_dir root
 K 10
 svn:author
 V 5
@@ -407,6 +403,10 @@ K 8
 svn:date
 V 27
 2005-11-17T15:13:16.197772Z
+K 7
+svn:log
+V 43
+Setting property on the 

svn commit: r1639823 [21/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/util/tests/datefmt.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/util/tests/datefmt.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/util/tests/datefmt.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/util/tests/datefmt.py 
Sat Nov 15 01:14:46 2014
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2007-2009 Edgewall Software
+# Copyright (C) 2007-2013 Edgewall Software
 # Copyright (C) 2007 Matt Good t...@matt-good.net
 # All rights reserved.
 #
@@ -15,23 +15,21 @@
 # Author: Matt Good t...@matt-good.net
 
 import datetime
+import locale
 import os
 import time
 import unittest
 
+import trac.tests.compat
 from trac.core import TracError
-from trac.util import datefmt, translation
+from trac.util import datefmt
 
 try:
-import pytz
-except ImportError:
-pytz = None
-try:
 from babel import Locale
 except ImportError:
 Locale = None
 
-if pytz is None:
+if datefmt.pytz is None:
 PytzTestCase = None
 else:
 class PytzTestCase(unittest.TestCase):
@@ -99,19 +97,6 @@ else:
 dt = datefmt.to_datetime(t, tz)
 self.assertEqual(datetime.timedelta(0, 7200), dt.utcoffset())
 
-def test_parse_date_across_dst_boundary(self):
-tz = datefmt.get_timezone('Europe/Zurich')
-# DST start - 31 March, 02:00
-format = '%Y-%m-%d %H:%M:%S %Z%z'
-expected = '2002-03-31 03:30:00 CEST+0200'
-# iso8601
-t = datefmt.parse_date('2002-03-31T02:30:00', tz)
-self.assertEqual(expected, t.strftime(format))
-# strptime
-t = datetime.datetime(2002, 3, 31, 2, 30)
-t = datefmt.parse_date(t.strftime('%x %X'), tz)
-self.assertEqual(expected, t.strftime(format))
-
 def test_to_datetime_astimezone(self):
 tz = datefmt.get_timezone('Europe/Paris')
 t = datetime.datetime(2012, 3, 25, 2, 15, tzinfo=datefmt.utc)
@@ -121,11 +106,11 @@ else:
 def test_to_datetime_tz_from_naive_datetime_is_localtz(self):
 t = datetime.datetime(2012, 3, 25, 2, 15)
 dt = datefmt.to_datetime(t)
-self.assert_(isinstance(dt.tzinfo, datefmt.LocalTimezone))
+self.assertIsInstance(dt.tzinfo, datefmt.LocalTimezone)
 
 def test_to_datetime_tz_from_now_is_localtz(self):
 dt = datefmt.to_datetime(None)
-self.assert_(isinstance(dt.tzinfo, datefmt.LocalTimezone))
+self.assertIsInstance(dt.tzinfo, datefmt.LocalTimezone)
 
 
 class ParseISO8601TestCase(unittest.TestCase):
@@ -205,7 +190,7 @@ class ParseISO8601TestCase(unittest.Test
 t = datetime.datetime(2012, 10, 11, 2, 40, 57, 0, datefmt.localtz)
 dt = datefmt.parse_date('2012-10-11T02:40:57')
 self.assertEqual(t, dt)
-self.assert_(isinstance(dt.tzinfo, datefmt.LocalTimezone))
+self.assertIsInstance(dt.tzinfo, datefmt.LocalTimezone)
 
 def test_iso8601_naive_tz_used_tzinfo_arg(self):
 tz = datefmt.timezone('GMT +1:00')
@@ -221,7 +206,7 @@ class ParseISO8601TestCase(unittest.Test
 self.assertEqual(datetime.timedelta(hours=-9, minutes=-30),
  dt.utcoffset())
 
-if pytz:
+if datefmt.pytz:
 def test_iso8601_naive_tz_normalize_non_existent_time(self):
 t = datetime.datetime(2012, 3, 25, 1, 15, 57, 0, datefmt.utc)
 tz = datefmt.timezone('Europe/Paris')
@@ -238,6 +223,128 @@ class ParseISO8601TestCase(unittest.Test
 self.assertEqual(2, dt.hour)
 self.assertEqual(datetime.timedelta(hours=1), dt.utcoffset())
 
+def test_hint_iso8601(self):
+def validate(locale=None):
+try:
+datefmt.parse_date('2001-0a-01', locale=locale, hint='iso8601')
+raise self.failureException('TracError not raised')
+except TracError, e:
+self.assertIn(u'-MM-DDThh:mm:ss±hh:mm', unicode(e))
+
+validate(locale=None)
+validate(locale='iso8601')
+if Locale:
+validate(locale=Locale.parse('en_US'))
+
+
+class ParseDateWithoutBabelTestCase(unittest.TestCase):
+
+if os.name != 'nt':
+locales = {}
+else:
+# LCID: http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx
+# NLS: http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx
+ref_time = time.gmtime(123456)
+locales = {
+'en_US.UTF8': ('English_United States', '1/2/1970 10:17:36 AM'),
+'en_GB.UTF8': ('English_United Kingdom', '02/01/1970 10:17:36'),
+'fr_FR.UTF8': ('French_France', '02/01/1970 10:17:36'),
+'ja_JP.UTF8': ('Japanese_Japan', '1970/01/02 10:17:36'),
+

svn commit: r1639823 [22/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/versioncontrol/cache.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/versioncontrol/cache.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/versioncontrol/cache.py 
(original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/versioncontrol/cache.py 
Sat Nov 15 01:14:46 2014
@@ -101,7 +101,7 @@ class CachedRepository(Repository):
   , (to_utimestamp(cset.date), cset.author,
 cset.message, self.id, srev))
 else:
-self._insert_changeset(db, rev, cset)
+self._insert_changeset(db, cset.rev, cset)
 return old_cset
 
 @cached('_metadata_id')
@@ -115,62 +115,10 @@ class CachedRepository(Repository):
 
 def sync(self, feedback=None, clean=False):
 if clean:
-self.log.info(Cleaning cache)
-with self.env.db_transaction as db:
-db(DELETE FROM revision WHERE repos=%s,
-   (self.id,))
-db(DELETE FROM node_change WHERE repos=%s,
-   (self.id,))
-db.executemany(DELETE FROM repository WHERE id=%s AND 
name=%s,
-   [(self.id, k) for k in CACHE_METADATA_KEYS])
-db.executemany(
-  INSERT INTO repository (id, name, value)
-  VALUES (%s, %s, %s)
-  , [(self.id, k, '') for k in CACHE_METADATA_KEYS])
-del self.metadata
+self.remove_cache()
 
 metadata = self.metadata
-
-with self.env.db_transaction as db:
-invalidate = False
-
-# -- check that we're populating the cache for the correct
-#repository
-repository_dir = metadata.get(CACHE_REPOSITORY_DIR)
-if repository_dir:
-# directory part of the repo name can vary on case insensitive
-# fs
-if os.path.normcase(repository_dir) \
-!= os.path.normcase(self.name):
-self.log.info('repository_dir' has changed from %r to %r,
-  repository_dir, self.name)
-raise TracError(_(The repository directory has changed, 
-  you should resynchronize the 
-  repository with: trac-admin $ENV 
-  repository resync '%(reponame)s',
-  reponame=self.reponame or '(default)'))
-elif repository_dir is None: #
-self.log.info('Storing initial repository_dir: %s',
-  self.name)
-db(INSERT INTO repository (id, name, value)
-  VALUES (%s, %s, %s)
-  , (self.id, CACHE_REPOSITORY_DIR, self.name))
-invalidate = True
-else: # 'repository_dir' cleared by a resync
-self.log.info('Resetting repository_dir: %s', self.name)
-db(UPDATE repository SET value=%s WHERE id=%s AND name=%s,
-   (self.name, self.id, CACHE_REPOSITORY_DIR))
-invalidate = True
-
-# -- insert a 'youngeset_rev' for the repository if necessary
-if metadata.get(CACHE_YOUNGEST_REV) is None:
-db(INSERT INTO repository (id, name, value)
-  VALUES (%s, %s, %s)
-  , (self.id, CACHE_YOUNGEST_REV, ''))
-invalidate = True
-
-if invalidate:
-del self.metadata
+self.save_metadata(metadata)
 
 # -- retrieve the youngest revision in the repository and the youngest
 #revision cached so far
@@ -263,6 +211,65 @@ class CachedRepository(Repository):
 if feedback:
 feedback(youngest)
 
+def remove_cache(self):
+Remove the repository cache.
+self.log.info(Cleaning cache)
+with self.env.db_transaction as db:
+db(DELETE FROM revision WHERE repos=%s,
+   (self.id,))
+db(DELETE FROM node_change WHERE repos=%s,
+   (self.id,))
+db.executemany(DELETE FROM repository WHERE id=%s AND name=%s,
+   [(self.id, k) for k in CACHE_METADATA_KEYS])
+db.executemany(
+  INSERT INTO repository (id, name, value)
+  VALUES (%s, %s, %s)
+  , [(self.id, k, '') for k in CACHE_METADATA_KEYS])
+del self.metadata
+
+def save_metadata(self, metadata):
+Save the repository metadata.
+with self.env.db_transaction as db:
+invalidate = False
+
+# 

svn commit: r1639823 [10/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/locale/messages.pot 
Sat Nov 15 01:14:46 2014
@@ -1,14 +1,14 @@
 # Translations template for Trac.
-# Copyright (C) 2013 Edgewall Software
+# Copyright (C) 2014 Edgewall Software
 # This file is distributed under the same license as the Trac project.
-# FIRST AUTHOR EMAIL@ADDRESS, 2013.
+# FIRST AUTHOR EMAIL@ADDRESS, 2014.
 #
 #, fuzzy
 msgid 
 msgstr 
-Project-Id-Version: Trac 1.0.1\n
+Project-Id-Version: Trac 1.0.2\n
 Report-Msgid-Bugs-To: trac-...@googlegroups.com\n
-POT-Creation-Date: 2013-01-27 11:21+0900\n
+POT-Creation-Date: 2014-09-01 12:43+\n
 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n
 Last-Translator: FULL NAME EMAIL@ADDRESS\n
 Language-Team: LANGUAGE l...@li.org\n
@@ -44,7 +44,7 @@ msgstr 
 msgid Create a copy of this ticket
 msgstr 
 
-#: tracopt/ticket/commit_updater.py:275
+#: tracopt/ticket/commit_updater.py:283
 msgid 
 Insert a changeset message into the output.\n
 \n
@@ -59,12 +59,16 @@ msgid 
  - `revision`: the revision of the desired changeset
 msgstr 
 
+#: tracopt/ticket/commit_updater.py:313
+msgid (The changeset message doesn't reference this ticket)
+msgstr 
+
 #: tracopt/ticket/deleter.py:73 tracopt/ticket/deleter.py:90
-#: trac/ticket/templates/report_list.html:82
+#: trac/ticket/templates/report_list.html:92
 msgid Delete
 msgstr 
 
-#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:42
+#: tracopt/ticket/deleter.py:74 tracopt/ticket/templates/ticket_delete.html:51
 msgid Delete ticket
 msgstr 
 
@@ -88,89 +92,112 @@ msgstr 
 msgid Comment %(num)s not found
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:11
+#: tracopt/ticket/templates/ticket_delete.html:21
 #, python-format
 msgid Delete Ticket #%(id)s
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:12
-#: tracopt/ticket/templates/ticket_delete.html:48
+#: tracopt/ticket/templates/ticket_delete.html:22
+#: tracopt/ticket/templates/ticket_delete.html:58
 #, python-format
 msgid Delete comment %(num)s on Ticket #%(id)s
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:20
+#: tracopt/ticket/templates/ticket_delete.html:30
 #, python-format
 msgid Delete [1:Ticket #%(id)s]
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:32
+#: tracopt/ticket/templates/ticket_delete.html:42
 msgid Are you sure you want to delete this ticket?
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:33
+#: tracopt/ticket/templates/ticket_delete.html:43
 #, python-format
 msgid 
 (comments: %(comments)s,\n
  attachments: %(attachments)s)
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:36
-#: tracopt/ticket/templates/ticket_delete.html:61
-#: trac/templates/attachment.html:70 trac/wiki/templates/wiki_delete.html:95
+#: tracopt/ticket/templates/ticket_delete.html:46
+#: tracopt/ticket/templates/ticket_delete.html:71
+#: trac/templates/attachment.html:80 trac/wiki/templates/wiki_delete.html:105
 msgid This is an irreversible operation.
 msgstr 
 
-#: tracopt/ticket/templates/ticket_delete.html:41
-#: tracopt/ticket/templates/ticket_delete.html:65
-#: trac/admin/templates/admin_components.html:55
-#: trac/admin/templates/admin_enums.html:24
-#: trac/admin/templates/admin_milestones.html:74
-#: trac/admin/templates/admin_versions.html:50
-#: trac/templates/attachment.html:63 trac/templates/attachment.html:76
-#: trac/ticket/templates/milestone_delete.html:40
-#: trac/ticket/templates/milestone_edit.html:108
-#: trac/ticket/templates/report_delete.html:21
-#: trac/ticket/templates/report_edit.html:44
-#: trac/ticket/templates/ticket_change.html:118
-#: trac/versioncontrol/templates/admin_repositories.html:84
-#: trac/wiki/templates/wiki_delete.html:98
-#: trac/wiki/templates/wiki_edit_form.html:73
-#: trac/wiki/templates/wiki_rename.html:32
+#: tracopt/ticket/templates/ticket_delete.html:52
+#: tracopt/ticket/templates/ticket_delete.html:76
+#: trac/templates/attachment.html:73 trac/templates/attachment.html:87
+#: trac/ticket/templates/admin_components.html:64
+#: trac/ticket/templates/admin_enums.html:38
+#: trac/ticket/templates/admin_milestones.html:93
+#: trac/ticket/templates/admin_versions.html:61
+#: trac/ticket/templates/milestone_delete.html:45
+#: trac/ticket/templates/milestone_edit.html:128
+#: trac/ticket/templates/report_delete.html:32
+#: trac/ticket/templates/report_edit.html:62
+#: trac/ticket/templates/ticket_change.html:127
+#: trac/versioncontrol/templates/admin_repositories.html:98
+#: trac/wiki/templates/wiki_delete.html:112
+#: trac/wiki/templates/wiki_edit_form.html:84
+#: 

svn commit: r1639823 [25/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/default-pages/TracInstall
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/default-pages/TracInstall?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/default-pages/TracInstall
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/default-pages/TracInstall
 Sat Nov 15 01:14:46 2014
@@ -1,24 +1,30 @@
-= Trac Installation Guide for 1.0 = 
+{{{#!div style=margin-top: .5em; padding: 0 1em; background-color: #ffd; 
border:1px outset #ddc; text-align: center
+
+ '''NOTE: the information in this page applies to Trac 1.0, the current 
version of Trac. \\
+ For installing previous Trac versions, please refer to 
[[wiki:0.12/TracInstall]] (for Trac 0.12)''' 
+}}}
+
+= Trac Installation Guide for 1.0
 [[TracGuideToc]]
 
 Trac is written in the Python programming language and needs a database, 
[http://sqlite.org/ SQLite], [http://www.postgresql.org/ PostgreSQL], or 
[http://mysql.com/ MySQL]. For HTML rendering, Trac uses the 
[http://genshi.edgewall.org Genshi] templating system.
 
-Since version 0.12, Trac can also be localized, and there's probably a 
translation available for your language. If you want to be able to use the Trac 
interface in other languages, then make sure you have installed the optional 
package [#OtherPythonPackages Babel]. Pay attention to the extra steps for 
localization support in the [#InstallingTrac Installing Trac] section below. 
Lacking Babel, you will only get the default english version, as usual.
+Since version 0.12, Trac can also be localized, and there's probably a 
translation available for your language. If you want to be able to use the Trac 
interface in other languages, then make sure you have installed the optional 
package [#OtherPythonPackages Babel]. Pay attention to the extra steps for 
localization support in the [#InstallingTrac Installing Trac] section below. 
Lacking Babel, you will only get the default English version, as usual.
 
-If you're interested in contributing new translations for other languages or 
enhance the existing translations, then please have a look at [[trac:TracL10N]].
+If you're interested in contributing new translations for other languages or 
enhance the existing translations, then please have a look at 
[trac:wiki:TracL10N TracL10N].
 
 What follows are generic instructions for installing and setting up Trac and 
its requirements. While you may find instructions for installing Trac on 
specific systems at [trac:TracInstallPlatforms TracInstallPlatforms] on the 
main Trac site, please be sure to '''first read through these general 
instructions''' to get a good understanding of the tasks involved.
 
 [[PageOutline(2-3,Installation Steps,inline)]]
 
-== Dependencies ==
+== Dependencies
 === Mandatory Dependencies
 To install Trac, the following software packages must be installed:
 
  * [http://www.python.org/ Python], version = 2.5 and  3.0
(note that we dropped the support for Python 2.4 in this release)
- * [http://peak.telecommunity.com/DevCenter/setuptools setuptools], version = 
0.6, or better yet, [http://pypi.python.org/pypi/distribute distribute]
- * [http://genshi.edgewall.org/wiki/Download Genshi], version = 0.6 
(unreleased version 0.7dev should work as well)
+ * [http://peak.telecommunity.com/DevCenter/setuptools setuptools], version = 
0.6
+ * [http://genshi.edgewall.org/wiki/Download Genshi], version = 0.6
 
 You also need a database system and the corresponding python bindings.
 The database can be either SQLite, PostgreSQL or MySQL.
@@ -27,10 +33,10 @@ The database can be either SQLite, Postg
 
 As you must be using Python 2.5, 2.6 or 2.7, you already have the SQLite 
database bindings bundled with the standard distribution of Python (the 
`sqlite3` module).
 
-However, if you'd like, you can download the latest and greatest version of 
[[trac:Pysqlite]] from 
+However, if you'd like, you can download the latest and greatest version of 
[[trac:PySqlite]] from 
 [http://code.google.com/p/pysqlite/downloads/list google code], where you'll 
find the Windows
 installers or the `tar.gz` archive for building from source: 
-{{{
+{{{#!sh
 $ tar xvfz version.tar.gz 
 $ cd version 
 $ python setup.py build_static install 
@@ -40,7 +46,7 @@ This will download the latest SQLite cod
 
 SQLite 2.x is no longer supported.
 
-A known bug PySqlite versions 2.5.2-4 prohibits upgrade of trac databases
+A known bug in PySqlite versions 2.5.2-4 prohibits upgrades of Trac databases
 from 0.11.x to 0.12. Please use versions 2.5.5 and newer or 2.5.1 and
 older. See #9434 for more detail.
 
@@ -50,7 +56,7 @@ See additional information in [trac:PySq
 
 You need to install the database and its Python bindings:
  * [http://www.postgresql.org/ PostgreSQL], version 8.0 or later
- * 

svn commit: r1639823 [27/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/tests/macros.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/tests/macros.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/tests/macros.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/wiki/tests/macros.py 
Sat Nov 15 01:14:46 2014
@@ -1,15 +1,54 @@
 # -*- coding: utf-8 -*-
+#
+# Copyright (C) 2006-2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.org/wiki/TracLicense.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/log/.
+
+from StringIO import StringIO
 from datetime import datetime
+import os
+import shutil
+import tempfile
 import unittest
 
-from trac.config import Option
+from trac.config import Option, ListOption, IntOption, BoolOption
 from trac.test import locale_en
 from trac.util.datefmt import format_date, utc
 from trac.wiki.model import WikiPage
 from trac.wiki.tests import formatter
 
+
+def add_pages(tc, names):
+now = datetime.now(utc)
+for name in names:
+w = WikiPage(tc.env)
+w.name = name
+w.text = '--'
+w.save('joe', 'the page ' + name, '::1', now)
+
+
 # == [[Image]]
 
+def image_setup(tc):
+add_pages(tc, ['page:fr'])
+from trac.attachment import Attachment
+tc.env.path = tempfile.mkdtemp(prefix='trac-tempenv-')
+attachment = Attachment(tc.env, 'wiki', 'page:fr')
+attachment.description = image in page:fr
+attachment.insert('img.png', StringIO(''), 0, 2)
+
+def image_teardown(tc):
+shutil.rmtree(os.path.join(tc.env.path, 'files'))
+os.rmdir(tc.env.path)
+tc.env.reset_db()
+
 # Note: using `« test »` string in the following tests for checking
 #   unicode robustness and whitespace support (first space is
 #   normal ASCII SPACE, second is Unicode NO-BREAK SPACE).
@@ -91,13 +130,39 @@ IMAGE_MACRO_TEST_CASES = u
 --
 a style=padding:0; border:none href=/wiki/WikiStartimg 
src=/browser/%C2%AB%20test%C2%A0%C2%BB?format=raw alt=/browser/« test » 
title=/browser/« test » //a
 == Strip unicode white-spaces and ZWSPs (#10668)
-[[Image(  ​source:« test ».png  ​, nolink)]]
+[[Image(  ​source:« test ».png  ​, nolink, 100%  ​)]]
 --
 p
-img src=/browser/%C2%AB%20test%C2%A0%C2%BB.png?format=raw alt=source:« 
test ».png title=source:« test ».png /
+img width=100% alt=source:« test ».png title=source:« test ».png 
src=/browser/%C2%AB%20test%C2%A0%C2%BB.png?format=raw /
 /p
 --
-img src=/browser/%C2%AB%20test%C2%A0%C2%BB.png?format=raw alt=source:« 
test ».png title=source:« test ».png /
+img width=100% alt=source:« test ».png title=source:« test ».png 
src=/browser/%C2%AB%20test%C2%A0%C2%BB.png?format=raw /
+--
+== Attachments on page with ':' characters (#10562)
+[[Image(page:fr:img.png​,nolink)]]
+--
+p
+img src=/raw-attachment/wiki/page%3Afr/img.png alt=image in page:fr 
title=image in page:fr /
+/p
+--
+img src=/raw-attachment/wiki/page%3Afr/img.png alt=image in page:fr 
title=image in page:fr /
+--
+== htdocs: Image, nolink
+[[Image(htdocs:trac_logo.png, nolink)]]
+--
+p
+img src=/chrome/site/trac_logo.png alt=trac_logo.png 
title=trac_logo.png /
+/p
+--
+img src=/chrome/site/trac_logo.png alt=trac_logo.png 
title=trac_logo.png /
+== shared: Image, nolink
+[[Image(shared:trac_logo.png, nolink)]]
+--
+p
+img src=/chrome/shared/trac_logo.png alt=trac_logo.png 
title=trac_logo.png /
+/p
+--
+img src=/chrome/shared/trac_logo.png alt=trac_logo.png 
title=trac_logo.png /
 --
 
 
@@ -110,14 +175,6 @@ IMAGE_MACRO_TEST_CASES = u
 
 # == [[TitleIndex]]
 
-def add_pages(tc, names):
-now = datetime.now(utc)
-for name in names:
-w = WikiPage(tc.env)
-w.name = name
-w.text = '--'
-w.save('joe', 'the page ' + name, '::1', now)
-
 def titleindex_teardown(tc):
 tc.env.reset_db()
 
@@ -391,8 +448,36 @@ TRACINI_MACRO_TEST_CASES = u\
 /pdiv class=tracini\
 h3 id=section-42-sectioncode[section-42]/code/h3\
 table class=wikitbody\
-trtdttoption1/tt/tdtd/tdtd 
class=defaultcodevalue/code/td/tr\

svn commit: r1639823 [19/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/query.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/query.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/query.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/ticket/tests/query.py 
Sat Nov 15 01:14:46 2014
@@ -1,9 +1,24 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2004-2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.org/wiki/TracLicense.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/log/.
+
 from trac.test import Mock, EnvironmentStub, MockPerm, locale_en
+from trac.ticket.model import Ticket
 from trac.ticket.query import Query, QueryModule, TicketQueryMacro
 from trac.util.datefmt import utc
 from trac.web.chrome import web_context
 from trac.web.href import Href
 from trac.wiki.formatter import LinkFormatter
+from trac.wiki.tests import formatter
 
 import unittest
 import difflib
@@ -257,12 +272,14 @@ ORDER BY COALESCE(t.id,0)=0,t.id % {'
 sql, args = query.get_sql()
 foo = self.env.get_read_db().quote('foo')
 self.assertEqualSQL(sql,
-SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS 
type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time 
AS time,t.changetime AS changetime,priority.value AS priority_value,%s.value AS 
%s
-FROM ticket AS t
-  LEFT OUTER JOIN ticket_custom AS %s ON (id=%s.ticket AND %s.name='foo')
+SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS 
type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time 
AS time,t.changetime AS changetime,priority.value AS priority_value,t.%s AS %s
+FROM (
+  SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS 
type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time 
AS time,t.changetime AS changetime,
+  (SELECT c.value FROM ticket_custom c WHERE c.ticket=t.id AND c.name='foo') 
AS %s
+  FROM ticket AS t) AS t
   LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND 
priority.name=priority)
-WHERE ((COALESCE(%s.value,'')=%%s))
-ORDER BY COALESCE(t.id,0)=0,t.id % ((foo,) * 6))
+WHERE ((COALESCE(t.%s,'')=%%s))
+ORDER BY COALESCE(t.id,0)=0,t.id % ((foo,) * 4))
 self.assertEqual(['something'], args)
 tickets = query.execute(self.req)
 
@@ -272,15 +289,77 @@ ORDER BY COALESCE(t.id,0)=0,t.id % ((
 sql, args = query.get_sql()
 foo = self.env.get_read_db().quote('foo')
 self.assertEqualSQL(sql,
-SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS 
type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time 
AS time,t.changetime AS changetime,priority.value AS priority_value,%s.value AS 
%s
-FROM ticket AS t
-  LEFT OUTER JOIN ticket_custom AS %s ON (id=%s.ticket AND %s.name='foo')
+SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS 
type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time 
AS time,t.changetime AS changetime,priority.value AS priority_value,t.%s AS %s
+FROM (
+  SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS 
type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time 
AS time,t.changetime AS changetime,
+  (SELECT c.value FROM ticket_custom c WHERE c.ticket=t.id AND c.name='foo') 
AS %s
+  FROM ticket AS t) AS t
   LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND 
priority.name=priority)
-ORDER BY COALESCE(%s.value,'')='',%s.value,COALESCE(t.id,0)=0,t.id %
-((foo,) * 7))
+ORDER BY COALESCE(t.%s,'')='',t.%s,COALESCE(t.id,0)=0,t.id %
+((foo,) * 5))
 self.assertEqual([], args)
 tickets = query.execute(self.req)
 
+def test_constrained_by_id_ranges(self):
+query = Query.from_string(self.env, 'id=42,44,51-55order=id')
+sql, args = query.get_sql()
+self.assertEqualSQL(sql,
+SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS 
type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time 
AS time,t.changetime AS changetime,priority.value AS priority_value
+FROM ticket AS t
+  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND 
priority.name=priority)
+WHERE ((t.id BETWEEN %s AND %s OR t.id IN (42,44)))
+ORDER BY COALESCE(t.id,0)=0,t.id)
+self.assertEqual([51, 55], args)
+
+def test_constrained_by_id_and_custom_field(self):
+self.env.config.set('ticket-custom', 'foo', 'text')
+  

svn commit: r1639823 [20/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db15.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db15.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db15.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db15.py Sat 
Nov 15 01:14:46 2014
@@ -1,3 +1,16 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2005-2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.com/license.html.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/.
+
 from trac.db import Table, Column, Index, DatabaseManager
 
 def do_upgrade(env, ver, cursor):

Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db16.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db16.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db16.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db16.py Sat 
Nov 15 01:14:46 2014
@@ -1,3 +1,16 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2005-2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.com/license.html.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/.
+
 from trac.db import Table, Column, Index
 
 def do_upgrade(env, ver, cursor):

Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db17.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db17.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db17.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db17.py Sat 
Nov 15 01:14:46 2014
@@ -1,3 +1,16 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2006-2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.com/license.html.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/.
+
 from trac.db import Table, Column, Index, DatabaseManager
 
 def do_upgrade(env, ver, cursor):

Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db18.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db18.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db18.py 
(original)
+++ bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db18.py Sat 
Nov 15 01:14:46 2014
@@ -1,3 +1,16 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2006-2013 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.com/license.html.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/.
+
 from trac.db import Table, Column, Index, DatabaseManager
 
 def do_upgrade(env, ver, cursor):
@@ -61,4 +74,3 @@ def do_upgrade(env, ver, cursor):
 
 cursor.execute(DROP TABLE session_old)
 cursor.execute(DROP TABLE ticket_change_old)
-

Modified: bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db19.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db19.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- bloodhound/branches/trac-1.0.2-integration/trac/trac/upgrades/db19.py 
(original)
+++ 

svn commit: r1639823 [14/29] - in /bloodhound/branches/trac-1.0.2-integration/trac: ./ contrib/ contrib/cgi-bin/ contrib/workflow/ doc/ doc/dev/ doc/utils/ sample-plugins/ sample-plugins/permissions/

2014-11-14 Thread rjollos
Modified: 
bloodhound/branches/trac-1.0.2-integration/trac/trac/tests/functional/better_twill.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/trac-1.0.2-integration/trac/trac/tests/functional/better_twill.py?rev=1639823r1=1639822r2=1639823view=diff
==
--- 
bloodhound/branches/trac-1.0.2-integration/trac/trac/tests/functional/better_twill.py
 (original)
+++ 
bloodhound/branches/trac-1.0.2-integration/trac/trac/tests/functional/better_twill.py
 Sat Nov 15 01:14:46 2014
@@ -1,12 +1,26 @@
-#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2008-2014 Edgewall Software
+# All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://trac.edgewall.org/wiki/TracLicense.
+#
+# This software consists of voluntary contributions made by many
+# individuals. For the exact contribution history, see the revision
+# history and logs, available at http://trac.edgewall.org/log/.
+
 better_twill is a small wrapper around twill to set some sane defaults and
 monkey-patch some better versions of some of twill's methods.
 It also handles twill's absense.
 
 
 import os
-from os.path import abspath, dirname, join
 import sys
+import urllib
+import urlparse
+from os.path import abspath, dirname, join
 from pkg_resources import parse_version as pv
 try:
 from cStringIO import StringIO
@@ -36,9 +50,9 @@ except ImportError:
 
 if twill:
 # We want Trac to generate valid html, and therefore want to test against
-# the html as generated by Trac.  tidy tries to clean up broken html, and
-# is responsible for one difficult to track down testcase failure (for
-# #5497).  Therefore we turn it off here.
+# the html as generated by Trac.  tidy tries to clean up broken html,
+# and is responsible for one difficult to track down testcase failure
+# (for #5497).  Therefore we turn it off here.
 twill.commands.config('use_tidy', '0')
 
 # We use a transparent proxy to access the global browser object through
@@ -90,9 +104,9 @@ if twill:
 context = data.splitlines()[max(0, entry.line - 5):
 entry.line + 6]
 msg.append(\n# %s\n# URL: %s\n# Line %d, column %d\n\n%s\n
-% (entry.message, entry.filename,
-   entry.line, entry.column,
-   \n.join([each.decode('utf-8') for each in context])))
+   % (entry.message, entry.filename, entry.line,
+  entry.column, \n.join([each.decode('utf-8')
+   for each in context])))
 return \n.join(msg).encode('ascii', 'xmlcharrefreplace')
 
 def _validate_xhtml(func_name, *args, **kwargs):
@@ -120,6 +134,8 @@ if twill:
 Write the current html to a file.  Name the file based on the
 current testcase.
 
+import unittest
+
 frame = sys._getframe()
 while frame:
 if frame.f_code.co_name in ('runTest', 'setUp', 'tearDown'):
@@ -127,19 +143,26 @@ if twill:
 testname = testcase.__class__.__name__
 tracdir = testcase._testenv.tracdir
 break
+elif isinstance(frame.f_locals.get('self'), unittest.TestCase):
+testcase = frame.f_locals['self']
+testname = '%s.%s' % (testcase.__class__.__name__,
+  testcase._testMethodName)
+tracdir = testcase._testenv.tracdir
+break
 frame = frame.f_back
 else:
 # We didn't find a testcase in the stack, so we have no clue what's
 # going on.
 raise Exception(No testcase was found on the stack.  This was 
-really not expected, and I don't know how to handle it.)
+really not expected, and I don't know how to 
+handle it.)
 
 filename = os.path.join(tracdir, 'log', %s.html % testname)
 html_file = open(filename, 'w')
 html_file.write(b.get_html())
 html_file.close()
 
-return filename
+return urlparse.urljoin('file:', urllib.pathname2url(filename))
 
 # Twill isn't as helpful with errors as I'd like it to be, so we replace
 # the formvalue function.  This would be better done as a patch to Twill.
@@ -149,8 +172,8 @@ if twill:
 except (twill.errors.TwillAssertionError,
 twill.utils.ClientForm.ItemNotFoundError), e:
 filename = twill_write_html()
-args = e.args + (filename,)
-raise twill.errors.TwillAssertionError(*args)
+raise twill.errors.TwillAssertionError('%s at %s' %
+

svn commit: r1619601 - in /bloodhound/trunk: .gitignore .rat-ignore

2014-08-21 Thread rjollos
Author: rjollos
Date: Thu Aug 21 21:32:08 2014
New Revision: 1619601

URL: http://svn.apache.org/r1619601
Log:
Added `.gitignore` to `.rat-ignore`.

Modified:
bloodhound/trunk/.gitignore
bloodhound/trunk/.rat-ignore

Modified: bloodhound/trunk/.gitignore
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/.gitignore?rev=1619601r1=1619600r2=1619601view=diff
==
--- bloodhound/trunk/.gitignore (original)
+++ bloodhound/trunk/.gitignore Thu Aug 21 21:32:08 2014
@@ -1,20 +1,3 @@
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  License); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-
 *.pyc
 *.idea
 *.egg-info

Modified: bloodhound/trunk/.rat-ignore
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/.rat-ignore?rev=1619601r1=1619600r2=1619601view=diff
==
--- bloodhound/trunk/.rat-ignore (original)
+++ bloodhound/trunk/.rat-ignore Thu Aug 21 21:32:08 2014
@@ -1,4 +1,5 @@
 .rat-ignore
+.gitignore
 **/CHANGES
 **/MANIFEST.in
 **/TESTING_README
@@ -12,4 +13,4 @@ installer/README.rst
 trac/
 bloodhound_relations/bhrelations/default-pages/
 bloodhound_multiproduct/tests/admin/*.txt
-bloodhound_multiproduct/tests/*.txt
\ No newline at end of file
+bloodhound_multiproduct/tests/*.txt




svn commit: r1617129 - in /bloodhound/trunk/bloodhound_theme: bhtheme/tests/ bhtheme/tests/__init__.py bhtheme/tests/theme.py setup.py

2014-08-10 Thread rjollos
Author: rjollos
Date: Sun Aug 10 15:45:27 2014
New Revision: 1617129

URL: http://svn.apache.org/r1617129
Log:
0.8dev: Added unit tests to bloodhound_theme (1 test so far).

Added:
bloodhound/trunk/bloodhound_theme/bhtheme/tests/
bloodhound/trunk/bloodhound_theme/bhtheme/tests/__init__.py   (with props)
bloodhound/trunk/bloodhound_theme/bhtheme/tests/theme.py   (with props)
Modified:
bloodhound/trunk/bloodhound_theme/setup.py

Added: bloodhound/trunk/bloodhound_theme/bhtheme/tests/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/tests/__init__.py?rev=1617129view=auto
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/tests/__init__.py (added)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/tests/__init__.py Sun Aug 10 
15:45:27 2014
@@ -0,0 +1,35 @@
+# -*- coding: UTF-8 -*-
+
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  License); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+try:
+import unittest2 as unittest
+except ImportError:
+import unittest
+
+from bhtheme.tests import theme
+
+
+def suite():
+test_suite = unittest.TestSuite()
+test_suite.addTest(theme.suite())
+return test_suite
+
+
+if __name__ == '__main__':
+unittest.main(defaultTest='suite')

Propchange: bloodhound/trunk/bloodhound_theme/bhtheme/tests/__init__.py
--
svn:eol-style = native

Added: bloodhound/trunk/bloodhound_theme/bhtheme/tests/theme.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/tests/theme.py?rev=1617129view=auto
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/tests/theme.py (added)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/tests/theme.py Sun Aug 10 
15:45:27 2014
@@ -0,0 +1,52 @@
+# -*- coding: UTF-8 -*-
+
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  License); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+from trac.test import EnvironmentStub
+from trac.web.chrome import Chrome
+
+from bhdashboard.web_ui import DashboardModule
+from bhtheme.theme import BloodhoundTheme
+from bhtheme.tests import unittest
+
+
+class ThemeTestCase(unittest.TestCase):
+
+def setUp(self):
+self.env = EnvironmentStub(enable=('trac.*', 'bhtheme.*'),
+   default_data=True)
+self.bhtheme = BloodhoundTheme(self.env)
+
+def tearDown(self):
+self.env.reset_db()
+
+def test_templates_dirs(self):
+chrome = Chrome(self.env)
+self.assertFalse(self.env.is_component_enabled(DashboardModule))
+for dir in self.bhtheme.get_templates_dirs():
+self.assertIn(dir, chrome.get_all_templates_dirs())
+
+
+def suite():
+suite = unittest.TestSuite()
+suite.addTest(unittest.makeSuite(ThemeTestCase))
+return suite
+
+
+if __name__ == '__main__':
+unittest.main(defaultTest='suite')

Propchange: bloodhound/trunk/bloodhound_theme/bhtheme/tests/theme.py
--
svn:eol-style = native

Modified: bloodhound/trunk/bloodhound_theme/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/setup.py?rev=1617129r1=1617128r2=1617129view=diff
==
--- bloodhound/trunk/bloodhound_theme/setup.py (original)
+++ bloodhound/trunk/bloodhound_theme/setup.py Sun Aug 10 15:45

svn commit: r1616498 - /bloodhound/trunk/trac/trac/hooks.py

2014-08-07 Thread rjollos
Author: rjollos
Date: Thu Aug  7 14:30:16 2014
New Revision: 1616498

URL: http://svn.apache.org/r1616498
Log:
0.8dev: Part of [1616400]. Refs #795.

Modified:
bloodhound/trunk/trac/trac/hooks.py

Modified: bloodhound/trunk/trac/trac/hooks.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/trac/trac/hooks.py?rev=1616498r1=1616497r2=1616498view=diff
==
--- bloodhound/trunk/trac/trac/hooks.py (original)
+++ bloodhound/trunk/trac/trac/hooks.py Thu Aug  7 14:30:16 2014
@@ -34,7 +34,7 @@ class EnvironmentFactoryBase(object):
 
 @abc.abstractmethod
 def open_environment(self, environ, env_path, global_env, use_cache=False):
-raise NotImplementedError(Must override method 'open_environment')
+pass
 
 
 class RequestFactoryBase(object):




svn commit: r1616400 - in /bloodhound/trunk: installer/bloodhound_setup.py trac/trac/hooks.py

2014-08-06 Thread rjollos
Author: rjollos
Date: Thu Aug  7 04:42:40 2014
New Revision: 1616400

URL: http://svn.apache.org/r1616400
Log:
0.8dev: Use fully-qualified name for `request_factory` and 
`environment_factory`. Refs #795.

 * For the typically multiproduct environment, `[trac] environment_factory = 
multiproduct.hooks.MultiProductEnvironmentFactory` and `[trac] request_factory 
= multiproduct.hooks.ProductRequestFactory`.
 * Use `abc` module for abstract base classes.

Modified:
bloodhound/trunk/installer/bloodhound_setup.py
bloodhound/trunk/trac/trac/hooks.py

Modified: bloodhound/trunk/installer/bloodhound_setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/bloodhound_setup.py?rev=1616400r1=1616399r2=1616400view=diff
==
--- bloodhound/trunk/installer/bloodhound_setup.py (original)
+++ bloodhound/trunk/installer/bloodhound_setup.py Thu Aug  7 04:42:40 2014
@@ -237,16 +237,10 @@ class BloodhoundSetup(object):
 self.writeconfig(tracini, [{'inherit': {'file': baseini},},])
 
 base_config = dict(BASE_CONFIG)
-environment_factory_path = os.path.abspath(
-  os.path.normpath(
-  os.path.join(options['sourcedir'],
-   
'bloodhound_multiproduct/multiproduct/hooks.py')))
-request_factory_path = os.path.abspath(
-   os.path.normpath(
-   os.path.join(options['sourcedir'],
-
'bloodhound_multiproduct/multiproduct/hooks.py')))
-base_config['trac']['environment_factory'] = environment_factory_path
-base_config['trac']['request_factory'] = request_factory_path
+base_config['trac']['environment_factory'] = \
+'multiproduct.hooks.MultiProductEnvironmentFactory'
+base_config['trac']['request_factory'] = \
+'multiproduct.hooks.ProductRequestFactory'
 if default_product_prefix != '@':
 base_config['multiproduct'] = dict(
 default_product_prefix=default_product_prefix

Modified: bloodhound/trunk/trac/trac/hooks.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/trac/trac/hooks.py?rev=1616400r1=1616399r2=1616400view=diff
==
--- bloodhound/trunk/trac/trac/hooks.py (original)
+++ bloodhound/trunk/trac/trac/hooks.py Thu Aug  7 04:42:40 2014
@@ -15,12 +15,10 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-import imp
-import inspect
+import abc
 import os
 import pkg_resources
 
-from trac.config import Configuration
 from trac.env import open_environment
 from trac.util import exception_to_unicode
 from trac.util.concurrency import threading
@@ -32,39 +30,38 @@ __all__ = ['environment_factory', 'insta
 
 
 class EnvironmentFactoryBase(object):
+__metaclass__ = abc.ABCMeta
+
+@abc.abstractmethod
 def open_environment(self, environ, env_path, global_env, use_cache=False):
 raise NotImplementedError(Must override method 'open_environment')
 
 
 class RequestFactoryBase(object):
-def create_request(self, env, environ, start_response):
-raise NotImplementedError(Must override method 'create_request')
+__metaclass__ = abc.ABCMeta
 
+@abc.abstractmethod
+def create_request(self, env, environ, start_response):
+pass
 
-def _get_plugins_dir(env_path):
-return os.path.normcase(os.path.realpath(os.path.join(env_path, 
'plugins')))
 
+def load_class(fqn):
+try:
+pkg, resource = fqn.rsplit('.', 1)
+except ValueError:
+class_ = None
+else:
+try:
+module = __import__(pkg, fromlist=[resource])
+except ImportError:
+class_ = None
+else:
+try:
+class_ = getattr(module, resource)
+except AttributeError:
+class_ = None
+return class_
 
-def _get_config(env_path):
-return Configuration(os.path.join(env_path, 'conf', 'trac.ini'),
- {'envname': os.path.basename(env_path)})
-
-
-def _hook_load(env_path, hook_path):
-hook_name = os.path.basename(hook_path[:-3])
-plugins_dir = _get_plugins_dir(env_path)
-load_path = os.path.join(plugins_dir, hook_path)
-module = imp.load_source(hook_name, load_path)
-return module
-
-
-def _get_hook_class(env_path, hook_path, class_type):
-module = _hook_load(env_path, hook_path)
-for (name, cls) in inspect.getmembers(module, inspect.isclass):
-if issubclass(cls, class_type) and \
-   not cls is class_type:
-return cls
-return None
 
 _global_hooks_installed = False
 _global_hooks_lock = threading.Lock()
@@ -90,15 +87,11 @@ def install_global_hooks():
 
 
 def

svn commit: r1616401 - in /bloodhound/trunk: bloodhound_multiproduct/multiproduct/api.py trac/trac/hooks.py

2014-08-06 Thread rjollos
Author: rjollos
Date: Thu Aug  7 04:53:34 2014
New Revision: 1616401

URL: http://svn.apache.org/r1616401
Log:
0.8dev: Correctly set `environment_factory` and `request_factory` on 
multiproduct upgrade. Refs #795.

Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py
bloodhound/trunk/trac/trac/hooks.py

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py?rev=1616401r1=1616400r2=1616401view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py Thu Aug  7 
04:53:34 2014
@@ -506,16 +506,15 @@ class MultiProductSystem(Component):
 
 def _enable_multiproduct_hooks(self):
 # enable multi product hooks in environment configuration
-import multiproduct.hooks
-import inspect
 
 config_update = False
-hook_path = os.path.realpath(inspect.getsourcefile(multiproduct.hooks))
 if not 'environment_factory' in self.env.config['trac']:
-self.env.config['trac'].set('environment_factory', hook_path)
+self.env.config['trac'].set('environment_factory',
+
'multiproduct.hooks.MultiProductEnvironmentFactory')
 config_update = True
 if not 'request_factory' in self.env.config['trac']:
-self.env.config['trac'].set('request_factory', hook_path)
+self.env.config['trac'].set('request_factory',
+
'multiproduct.hooks.ProductRequestFactory')
 config_update = True
 if config_update:
 self.log.info(

Modified: bloodhound/trunk/trac/trac/hooks.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/trac/trac/hooks.py?rev=1616401r1=1616400r2=1616401view=diff
==
--- bloodhound/trunk/trac/trac/hooks.py (original)
+++ bloodhound/trunk/trac/trac/hooks.py Thu Aug  7 04:53:34 2014
@@ -87,10 +87,12 @@ def install_global_hooks():
 
 
 def environment_factory(env):
+print load_class(env.config.get('trac', 'environment_factory'))
 return load_class(env.config.get('trac', 'environment_factory'))
 
 
 def request_factory(env):
+print load_class(env.config.get('trac', 'request_factory'))
 return load_class(env.config.get('trac', 'request_factory'))
 
 




svn commit: r1611070 - in /bloodhound: bep_0013_dynamic_clientside_features/ branches/bep_0013_dynamic_clientside_features/

2014-07-16 Thread rjollos
Author: rjollos
Date: Wed Jul 16 16:27:47 2014
New Revision: 1611070

URL: http://svn.apache.org/r1611070
Log:
Moved branch to `/branches` directory.

Added:
bloodhound/branches/bep_0013_dynamic_clientside_features/   (props changed)
  - copied from r1611067, bloodhound/bep_0013_dynamic_clientside_features/
Removed:
bloodhound/bep_0013_dynamic_clientside_features/

Propchange: bloodhound/branches/bep_0013_dynamic_clientside_features/
--
--- svn:auto-props (added)
+++ svn:auto-props Wed Jul 16 16:27:47 2014
@@ -0,0 +1,5 @@
+*.html = svn:eol-style=native
+*.js = svn:eol-style=native
+*.css = svn:eol-style=native
+*.py = svn:eol-style=native
+*.xml = svn:eol-style=native

Propchange: bloodhound/branches/bep_0013_dynamic_clientside_features/
--
--- svn:ignore (added)
+++ svn:ignore Wed Jul 16 16:27:47 2014
@@ -0,0 +1,7 @@
+*.DS_Store
+.idea
+.project
+.pydevproject
+.git
+.gitignore
+.hg

Propchange: bloodhound/branches/bep_0013_dynamic_clientside_features/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Jul 16 16:27:47 2014
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct:1420073-1461359




svn commit: r1604057 [3/3] - in /bloodhound/branches/bep_0007_embeddable_objects: ./ bloodhound_dashboard/ bloodhound_dashboard/bhdashboard/widgets/templates/ bloodhound_multiproduct/ bloodhound_multi

2014-06-19 Thread rjollos
Modified: 
bloodhound/branches/bep_0007_embeddable_objects/installer/bloodhound_setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/installer/bloodhound_setup.py?rev=1604057r1=1604056r2=1604057view=diff
==
--- 
bloodhound/branches/bep_0007_embeddable_objects/installer/bloodhound_setup.py 
(original)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/installer/bloodhound_setup.py 
Fri Jun 20 00:34:19 2014
@@ -20,29 +20,22 @@
 
 import os
 import pkg_resources
+import shutil
 import sys
-import traceback
-
-import ConfigParser
+from createdigest import htdigest_create
 from getpass import getpass
 from optparse import OptionParser
-import shutil
-import time
-
-from createdigest import htdigest_create
-
-LANG = os.environ.get('LANG')
 
 try:
-from trac.util import translation
-from trac.util.translation import _, get_negotiated_locale, has_babel
 from trac.admin.console import TracAdmin
 from trac.config import Configuration
+from trac.util import translation
+from trac.util.translation import _, get_negotiated_locale, has_babel
 except ImportError, e:
-print (Requirements should be installed before running 
bloodhound_setup.py.\n
-   You can install them with the following command:\n
-  pip install -r requirements.txt\n)
-traceback.print_exc()
+print(Requirements must be installed before running 
+  bloodhound_setup.py.\n
+  You can install them with the following command:\n
+ pip install -r requirements.txt\n)
 sys.exit(1)
 
 try:
@@ -50,8 +43,16 @@ try:
 except ImportError:
 psycopg2 = None
 
+try:
+import MySQLdb as mysqldb
+except ImportError:
+mysqldb = None
+
+LANG = os.environ.get('LANG')
+
 MAXBACKUPNUMBER = 64  # Max attempts to create backup file
 
+SUPPORTED_DBTYPES = ('sqlite', 'postgres', 'mysql')
 DEFAULT_DB_USER = 'bloodhound'
 DEFAULT_DB_NAME = 'bloodhound'
 DEFAULT_ADMIN_USER = 'admin'
@@ -137,23 +138,27 @@ class BloodhoundSetup(object):
 
 def _generate_db_str(self, options):
 Builds an appropriate db string for trac-admin for sqlite and
-postgres options. Also allows for a user to provide their own db string
-to allow database initialisation beyond these.
-dbdata = {'user': options.get('dbuser'),
+postgres options. Also allows for a user to provide their own db
+string to allow database initialisation beyond these.
+dbdata = {'type': options.get('dbtype', 'sqlite'),
+  'user': options.get('dbuser'),
   'pass': options.get('dbpass'),
   'host': options.get('dbhost', 'localhost'),
-  'port': options.get('dbport', '5432'),
+  'port': options.get('dbport'),
   'name': options.get('dbname', 'bloodhound'),
   }
 
 db = options.get('dbstring')
 if db is None:
-dbtype = options.get('dbtype', 'sqlite')
-if (dbtype == 'postgres' and dbdata['user'] is not None
- and dbdata['pass'] is not None):
-db = 'postgres://%(user)s:%(pass)s@%(host)s:%(port)s/%(name)s'
+if dbdata['type'] in ('postgres', 'mysql') \
+and dbdata['user'] is not None \
+and dbdata['pass'] is not None:
+if dbdata['port'] is not None:
+db = 
'%(type)s://%(user)s:%(pass)s@%(host)s:%(port)s/%(name)s'
+else:  # no port specified = default port
+db = '%(type)s://%(user)s:%(pass)s@%(host)s/%(name)s'
 else:
-db = 'sqlite:%s' % os.path.join('db', '%(name)s.db')
+db = '%%(type)s:%s' % os.path.join('db', '%(name)s.db')
 return db % dbdata
 
 def setup(self, **kwargs):
@@ -174,6 +179,9 @@ class BloodhoundSetup(object):
 if psycopg2 is None and options.get('dbtype') == 'postgres':
 print psycopg2 needs to be installed to initialise a postgresql 
db
 return False
+elif mysqldb is None and options.get('dbtype') == 'mysql':
+print MySQLdb needs to be installed to initialise a mysql db
+return False
 
 environments_path = options['envsdir']
 if not os.path.exists(environments_path):
@@ -304,7 +312,8 @@ And point your browser at http://localho
 Writes or updates a config file. A list of dictionaries is used so
 that options for different aspects of the configuration can be kept
 separate while being able to update the same sections. Note that the
-result is order dependent where two dictionaries update the same 
option.
+result is order dependent where two dictionaries update the same
+option.
 
 config = Configuration(filepath)
 file_changed = False

svn commit: r1598105 - /bloodhound/bep_0013_dynamic_clientside_features/

2014-05-28 Thread rjollos
Author: rjollos
Date: Wed May 28 19:01:48 2014
New Revision: 1598105

URL: http://svn.apache.org/r1598105
Log:
Creating a branch for work on BEP 13.

Added:
bloodhound/bep_0013_dynamic_clientside_features/   (props changed)
  - copied from r1598104, bloodhound/trunk/

Propchange: bloodhound/bep_0013_dynamic_clientside_features/
--
--- svn:auto-props (added)
+++ svn:auto-props Wed May 28 19:01:48 2014
@@ -0,0 +1,5 @@
+*.html = svn:eol-style=native
+*.js = svn:eol-style=native
+*.css = svn:eol-style=native
+*.py = svn:eol-style=native
+*.xml = svn:eol-style=native

Propchange: bloodhound/bep_0013_dynamic_clientside_features/
--
--- svn:ignore (added)
+++ svn:ignore Wed May 28 19:01:48 2014
@@ -0,0 +1,7 @@
+*.DS_Store
+.idea
+.project
+.pydevproject
+.git
+.gitignore
+.hg

Propchange: bloodhound/bep_0013_dynamic_clientside_features/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed May 28 19:01:48 2014
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct:1420073-1461359




svn commit: r1588127 - in /bloodhound/trunk: bloodhound_relations/ bloodhound_relations/bhrelations/ bloodhound_relations/bhrelations/templates/ bloodhound_relations/bhrelations/tests/ bloodhound_rela

2014-04-16 Thread rjollos
Author: rjollos
Date: Thu Apr 17 03:51:46 2014
New Revision: 1588127

URL: http://svn.apache.org/r1588127
Log:
0.8dev: PEP-0008 changes and fixed missing `id` tag.

Modified:
bloodhound/trunk/bloodhound_relations/README
bloodhound/trunk/bloodhound_relations/TESTING_README
bloodhound/trunk/bloodhound_relations/bhrelations/api.py
bloodhound/trunk/bloodhound_relations/bhrelations/db_default.py
bloodhound/trunk/bloodhound_relations/bhrelations/model.py
bloodhound/trunk/bloodhound_relations/bhrelations/notification.py

bloodhound/trunk/bloodhound_relations/bhrelations/templates/relations_manage.html
bloodhound/trunk/bloodhound_relations/bhrelations/tests/__init__.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/base.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/mocks.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/notification.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/search.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/validation.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/web_ui.py
bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py
bloodhound/trunk/bloodhound_relations/bhrelations/widgets/relations.py
bloodhound/trunk/bloodhound_relations/setup.py
bloodhound/trunk/bloodhound_search/bhsearch/tests/query_suggestion.py
bloodhound/trunk/bloodhound_search/bhsearch/tests/security.py
bloodhound/trunk/bloodhound_search/bhsearch/tests/web_ui.py
bloodhound/trunk/bloodhound_search/bhsearch/tests/whoosh_backend.py

Modified: bloodhound/trunk/bloodhound_relations/README
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/README?rev=1588127r1=1588126r2=1588127view=diff
==
--- bloodhound/trunk/bloodhound_relations/README (original)
+++ bloodhound/trunk/bloodhound_relations/README Thu Apr 17 03:51:46 2014
@@ -28,4 +28,4 @@ If you have any issues, please create a 
 
 == The Trac ticket-links branch
 Bloodhound Relations plugin contains the code from the Trac ticket-links 
branch, which
-is licensed under the same license as Trac 
(http://trac.edgewall.org/wiki/TracLicense).
\ No newline at end of file
+is licensed under the same license as Trac 
(http://trac.edgewall.org/wiki/TracLicense).

Modified: bloodhound/trunk/bloodhound_relations/TESTING_README
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/TESTING_README?rev=1588127r1=1588126r2=1588127view=diff
==
--- bloodhound/trunk/bloodhound_relations/TESTING_README (original)
+++ bloodhound/trunk/bloodhound_relations/TESTING_README Thu Apr 17 03:51:46 
2014
@@ -1,5 +1,5 @@
 
-= Testing Bloodhound Search plugin =
+= Testing Bloodhound Relations plugin =
 
 == Overview ==
 

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/api.py?rev=1588127r1=1588126r2=1588127view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/api.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/api.py Thu Apr 17 
03:51:46 2014
@@ -16,30 +16,34 @@
 #  KIND, either express or implied.  See the License for the
 #  specific language governing permissions and limitations
 #  under the License.
-import itertools
 
+import itertools
 import re
 from datetime import datetime
 from pkg_resources import resource_filename
+
+from trac.config import OrderedExtensionsOption, Option
+from trac.core import Component, ExtensionPoint, Interface, TracError, \
+  implements
+from trac.db import DatabaseManager
+from trac.env import IEnvironmentSetupParticipant
+from trac.resource import Neighborhood, Resource, ResourceNotFound, \
+  ResourceSystem, get_resource_shortname
+from trac.ticket.api import ITicketChangeListener, ITicketManipulator, \
+TicketSystem
+from trac.ticket.model import Ticket
+from trac.util.datefmt import to_utimestamp, utc
+from trac.web.chrome import ITemplateProvider
+
+from multiproduct.api import ISupportMultiProductEnvironment
+from multiproduct.model import Product
+from multiproduct.env import ProductEnvironment
+
 from bhrelations import db_default
 from bhrelations.model import Relation
 from bhrelations.utils import unique
 from bhrelations.utils.translation import _, add_domain
-from multiproduct.api import ISupportMultiProductEnvironment
-from multiproduct.model import Product
-from multiproduct.env import ProductEnvironment
 
-from trac.config import OrderedExtensionsOption, Option
-from trac.core import (Component, implements, TracError, Interface,
-   ExtensionPoint

svn commit: r1587754 - /bloodhound/trunk/trac/trac/web/main.py

2014-04-15 Thread rjollos
Author: rjollos
Date: Tue Apr 15 23:35:56 2014
New Revision: 1587754

URL: http://svn.apache.org/r1587754
Log:
0.8dev: Fixed unbound local variable errors when exception is raised. Refs #800.

Patch by Olemis Lang.

Modified:
bloodhound/trunk/trac/trac/web/main.py

Modified: bloodhound/trunk/trac/trac/web/main.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/trac/trac/web/main.py?rev=1587754r1=1587753r2=1587754view=diff
==
--- bloodhound/trunk/trac/trac/web/main.py (original)
+++ bloodhound/trunk/trac/trac/web/main.py Tue Apr 15 23:35:56 2014
@@ -383,8 +383,8 @@ def dispatch_request(environ, start_resp
 
 # Load handler for environment lookup and instantiation of request objects
 from trac.hooks import load_bootstrap_handler
-bootstrap = load_bootstrap_handler(environ['trac.bootstrap_handler'],
-   environ.get('wsgi.errors'))
+bootstrap_ep = environ['trac.bootstrap_handler']
+bootstrap = load_bootstrap_handler(bootstrap_ep, 
environ.get('wsgi.errors'))
 
 # Determine the environment
 
@@ -432,7 +432,7 @@ def dispatch_request(environ, start_resp
 try:
 req = bootstrap.create_request(env, environ, start_response) \
 if env is not None else Request(environ, start_response)
-except Exception:
+except Exception, e:
 log = environ.get('wsgi.errors')
 if log:
 log.write([FAIL] [Trac] Entry point '%s' 




svn commit: r1585890 - /bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py

2014-04-08 Thread rjollos
Author: rjollos
Date: Wed Apr  9 05:00:25 2014
New Revision: 1585890

URL: http://svn.apache.org/r1585890
Log:
0.8dev: Added Whoosh version to //SystemInfo// table. Refs #794.

Patch by devenderbindal.

Modified:
bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py

Modified: bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py?rev=1585890r1=1585889r2=1585890view=diff
==
--- bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py (original)
+++ bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py Wed Apr  9 
05:00:25 2014
@@ -24,6 +24,7 @@ from datetime import datetime
 
 from trac.core import Component, implements, TracError
 from trac.config import Option, IntOption
+from trac.env import ISystemInfoProvider
 from trac.util.datefmt import utc
 
 import whoosh
@@ -44,7 +45,7 @@ class WhooshBackend(Component):
 
 Implements Whoosh SearchBackend interface
 
-implements(ISearchBackend)
+implements(ISearchBackend, ISystemInfoProvider)
 
 index_dir_setting = Option(
 BHSEARCH_CONFIG_SECTION,
@@ -124,7 +125,13 @@ class WhooshBackend(Component):
 else:
 self.index = None
 
-#ISearchBackend methods
+# ISystemInfoProvider methods
+
+def get_system_info(self):
+yield 'Whoosh', whoosh.versionstring()
+
+# ISearchBackend methods
+
 def start_operation(self):
 return self._create_writer()
 




svn commit: r1583082 - in /bloodhound/trunk: bloodhound_search/bhsearch/whoosh_backend.py bloodhound_theme/bhtheme/templates/bh_product_edit.html

2014-03-29 Thread rjollos
Author: rjollos
Date: Sat Mar 29 22:47:14 2014
New Revision: 1583082

URL: http://svn.apache.org/r1583082
Log:
0.8dev: Removed imports that are not needed after r1566160. Refs #741. Some 
additional PEP-0008 changes. 

Modified:
bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html

Modified: bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py?rev=1583082r1=1583081r2=1583082view=diff
==
--- bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py (original)
+++ bloodhound/trunk/bloodhound_search/bhsearch/whoosh_backend.py Sat Mar 29 
22:47:14 2014
@@ -18,25 +18,24 @@
 #  under the License.
 
 rWhoosh specific backend for Bloodhound Search plugin.
-from bhsearch import BHSEARCH_CONFIG_SECTION
-from bhsearch.api import ISearchBackend, DESC, QueryResult, SCORE, \
-IDocIndexPreprocessor, IResultPostprocessor, IndexFields, \
-IQueryPreprocessor
+
 import os
-from bhsearch.search_resources.ticket_search import TicketFields
-from bhsearch.security import SecurityPreprocessor
-from bhsearch.utils import get_global_env
+from datetime import datetime
+
 from trac.core import Component, implements, TracError
 from trac.config import Option, IntOption
-from trac.util.text import empty
 from trac.util.datefmt import utc
-from whoosh.fields import Schema, ID, DATETIME, KEYWORD, TEXT
-from whoosh import index, analysis
+
 import whoosh
-import whoosh.highlight
+from whoosh import index, analysis
 from whoosh.collectors import FilterCollector
+from whoosh.fields import Schema, ID, DATETIME, KEYWORD, TEXT
 from whoosh.writing import AsyncWriter
-from datetime import datetime
+
+from bhsearch import BHSEARCH_CONFIG_SECTION
+from bhsearch.api import ISearchBackend, DESC, QueryResult, SCORE
+from bhsearch.security import SecurityPreprocessor
+from bhsearch.utils import get_global_env
 
 UNIQUE_ID = unique_id
 
@@ -189,7 +188,6 @@ class WhooshBackend(Component):
 writer.cancel()
 raise
 
-
 def optimize(self):
 writer = AsyncWriter(self.index)
 writer.commit(optimize=True)
@@ -206,14 +204,14 @@ class WhooshBackend(Component):
 def query(self,
   query,
   query_string=None,
-  sort = None,
-  fields = None,
-  filter = None,
-  facets = None,
-  pagenum = 1,
-  pagelen = 20,
-  highlight = False,
-  highlight_fields = None,
+  sort=None,
+  fields=None,
+  filter=None,
+  facets=None,
+  pagenum=1,
+  pagelen=20,
+  highlight=False,
+  highlight_fields=None,
   context=None):
 # pylint: disable=too-many-locals
 with self.index.searcher() as searcher:
@@ -230,16 +228,16 @@ class WhooshBackend(Component):
 groupedby = facets
 
 query_parameters = dict(
-query = query,
-pagenum = pagenum,
-pagelen = pagelen,
-sortedby = sortedby,
-groupedby = groupedby,
+query=query,
+pagenum=pagenum,
+pagelen=pagelen,
+sortedby=sortedby,
+groupedby=groupedby,
 maptype=whoosh.sorting.Count,
-filter = filter,
+filter=filter,
 )
 self.env.log.debug(Whoosh query to execute: %s,
-query_parameters)
+   query_parameters)
 raw_page = searcher.search_page(**query_parameters)
 results = self._process_results(raw_page,
 fields,

Modified: 
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html?rev=1583082r1=1583081r2=1583082view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html 
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html 
Sat Mar 29 22:47:14 2014
@@ -49,7 +49,7 @@
 div class=control-group
   label class=control-label for=prefixPrefix:/label
   div class=controls
-input type=text id=prefix name=prefix 
class=input-xxlarge value=${product.prefix or req.args.get('prefix')} 
readonly=${product._exists and 'readonly' or None}/
+input type=text id=prefix name=prefix 
class=input-xxlarged value=${product.prefix or req.args.get('prefix')} 
readonly=${product._exists and 'readonly' or None

svn commit: r1580702 - in /bloodhound/trunk: RELEASE_NOTES installer/bloodhound_setup.py

2014-03-23 Thread rjollos
Author: rjollos
Date: Mon Mar 24 02:26:15 2014
New Revision: 1580702

URL: http://svn.apache.org/r1580702
Log:
0.8dev: Added MySQL support to install script. Refs #787.

Initial patch by JoKoT3.

Modified:
bloodhound/trunk/RELEASE_NOTES
bloodhound/trunk/installer/bloodhound_setup.py

Modified: bloodhound/trunk/RELEASE_NOTES
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/RELEASE_NOTES?rev=1580702r1=1580701r2=1580702view=diff
==
--- bloodhound/trunk/RELEASE_NOTES (original)
+++ bloodhound/trunk/RELEASE_NOTES Mon Mar 24 02:26:15 2014
@@ -10,6 +10,7 @@
  * BloodhoundSearch now supports Whoosh = 2.5.1 (upgraded from 2.4.1).
  * Fixed errors in BloodhoundRelations validation logic.
  * Bootstrap template for the Roadmap view.
+ * Bloodhound installer support for MySQL database.
  * Numerous other important fixes and minor enhancements.
 
 

Modified: bloodhound/trunk/installer/bloodhound_setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/bloodhound_setup.py?rev=1580702r1=1580701r2=1580702view=diff
==
--- bloodhound/trunk/installer/bloodhound_setup.py (original)
+++ bloodhound/trunk/installer/bloodhound_setup.py Mon Mar 24 02:26:15 2014
@@ -20,26 +20,20 @@
 
 import os
 import pkg_resources
+import shutil
 import sys
-import traceback
-
-import ConfigParser
+from createdigest import htdigest_create
 from getpass import getpass
 from optparse import OptionParser
-import shutil
-import time
-
-from createdigest import htdigest_create
-
-LANG = os.environ.get('LANG')
 
 try:
-from trac.util import translation
-from trac.util.translation import _, get_negotiated_locale, has_babel
 from trac.admin.console import TracAdmin
 from trac.config import Configuration
+from trac.util import translation
+from trac.util.translation import _, get_negotiated_locale, has_babel
 except ImportError, e:
-print(Requirements must be installed before running 
bloodhound_setup.py.\n
+print(Requirements must be installed before running 
+  bloodhound_setup.py.\n
   You can install them with the following command:\n
  pip install -r requirements.txt\n)
 sys.exit(1)
@@ -49,8 +43,16 @@ try:
 except ImportError:
 psycopg2 = None
 
+try:
+import MySQLdb as mysqldb
+except ImportError:
+mysqldb = None
+
+LANG = os.environ.get('LANG')
+
 MAXBACKUPNUMBER = 64  # Max attempts to create backup file
 
+SUPPORTED_DBTYPES = ('sqlite', 'postgres', 'mysql')
 DEFAULT_DB_USER = 'bloodhound'
 DEFAULT_DB_NAME = 'bloodhound'
 DEFAULT_ADMIN_USER = 'admin'
@@ -136,23 +138,27 @@ class BloodhoundSetup(object):
 
 def _generate_db_str(self, options):
 Builds an appropriate db string for trac-admin for sqlite and
-postgres options. Also allows for a user to provide their own db string
-to allow database initialisation beyond these.
-dbdata = {'user': options.get('dbuser'),
+postgres options. Also allows for a user to provide their own db
+string to allow database initialisation beyond these.
+dbdata = {'type': options.get('dbtype', 'sqlite'),
+  'user': options.get('dbuser'),
   'pass': options.get('dbpass'),
   'host': options.get('dbhost', 'localhost'),
-  'port': options.get('dbport', '5432'),
+  'port': options.get('dbport'),
   'name': options.get('dbname', 'bloodhound'),
   }
 
 db = options.get('dbstring')
 if db is None:
-dbtype = options.get('dbtype', 'sqlite')
-if (dbtype == 'postgres' and dbdata['user'] is not None
- and dbdata['pass'] is not None):
-db = 'postgres://%(user)s:%(pass)s@%(host)s:%(port)s/%(name)s'
+if dbdata['type'] in ('postgres', 'mysql') \
+and dbdata['user'] is not None \
+and dbdata['pass'] is not None:
+if dbdata['port'] is not None:
+db = 
'%(type)s://%(user)s:%(pass)s@%(host)s:%(port)s/%(name)s'
+else:  # no port specified = default port
+db = '%(type)s://%(user)s:%(pass)s@%(host)s/%(name)s'
 else:
-db = 'sqlite:%s' % os.path.join('db', '%(name)s.db')
+db = '%%(type)s:%s' % os.path.join('db', '%(name)s.db')
 return db % dbdata
 
 def setup(self, **kwargs):
@@ -173,6 +179,9 @@ class BloodhoundSetup(object):
 if psycopg2 is None and options.get('dbtype') == 'postgres':
 print psycopg2 needs to be installed to initialise a postgresql 
db
 return False
+elif mysqldb is None and options.get('dbtype') == 'mysql':
+print MySQLdb needs to be installed to initialise a mysql db
+return

svn commit: r1580718 - in /bloodhound/trunk: RELEASE_NOTES bloodhound_theme/bhtheme/templates/bh_product_edit.html bloodhound_theme/bhtheme/templates/bh_roadmap.html bloodhound_theme/bhtheme/theme.py

2014-03-23 Thread rjollos
Author: rjollos
Date: Mon Mar 24 03:16:09 2014
New Revision: 1580718

URL: http://svn.apache.org/r1580718
Log:
0.8dev: Added Boostrap styling to the //Edit Product// page. Refs #570.

Initial patch by devenderbindal.

Modified:
bloodhound/trunk/RELEASE_NOTES
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_roadmap.html
bloodhound/trunk/bloodhound_theme/bhtheme/theme.py

Modified: bloodhound/trunk/RELEASE_NOTES
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/RELEASE_NOTES?rev=1580718r1=1580717r2=1580718view=diff
==
--- bloodhound/trunk/RELEASE_NOTES (original)
+++ bloodhound/trunk/RELEASE_NOTES Mon Mar 24 03:16:09 2014
@@ -9,7 +9,7 @@
  * Improvements to ticket timeline (comments section).
  * BloodhoundSearch now supports Whoosh = 2.5.1 (upgraded from 2.4.1).
  * Fixed errors in BloodhoundRelations validation logic.
- * Bootstrap template for the Roadmap view.
+ * Bootstrap template for the Roadmap and Edit Product views.
  * Bloodhound installer support for MySQL database.
  * Numerous other important fixes and minor enhancements.
 

Modified: 
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html?rev=1580718r1=1580717r2=1580718view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html 
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html 
Mon Mar 24 03:16:09 2014
@@ -23,9 +23,10 @@
 html xmlns=http://www.w3.org/1999/xhtml;
   xmlns:py=http://genshi.edgewall.org/;
   xmlns:i18n=http://genshi.edgewall.org/i18n;
-  i18n:domain=multiproduct
+  i18n:domain=bhtheme
   xmlns:xi=http://www.w3.org/2001/XInclude;
   xi:include href=layout.html /
+
   head
 py:choose test=product._exists
   title py:when=TrueEdit Product ${product.name}/title
@@ -34,36 +35,52 @@
   /head
 
   body
-div id=content class=product
+div id=content class=product row
   py:choose test=product._exists
-h1 py:when=TrueEdit Product ${product.name}/h1
-h1 py:otherwise=New Product/h1
+h1 py:when=True class=span12Edit Product ${product.name}/h1
+h1 py:otherwise= class=span12New Product/h1
   /py:choose
 
-  form id=edit action= method=post
-div class=field
+
+  div class=span12
+form class=form-horizontal action= method=post
   input type=hidden name=action value=edit /
-  labelShort name for the product (prefix):br /
-input type=text id=prefix name=prefix size=32 
value=${product.prefix or req.args.get('prefix')} readonly=${product._exists 
and 'readonly' or None}/
-  /label
-  labelName of the product:br /
-input type=text id=name name=name size=32 
value=${product.name or req.args.get('name')} /
-  /label
-/div
-div class=field
-  fieldset class=iefix
-label for=description i18n:msg=Description (you may use a 
tabindex=42
-   href=${href.wiki('WikiFormatting')}WikiFormatting/a 
here):/label
-ptextarea id=description name=description class=wikitext 
trac-resizable rows=10 cols=78
-${product.description}/textarea/p
-  /fieldset
-/div
-div class=buttons py:choose=product._exists
-  input py:when=True type=submit value=${_('Submit changes')} /
-  input py:otherwise= type=submit value=${_('Add Product')} /
-  input type=submit name=cancel value=${_('Cancel')} /
-/div
-  /form
+  div
+div class=control-group
+  label class=control-label for=prefixPrefix:/label
+  div class=controls
+input type=text id=prefix name=prefix 
class=input-xxlarge value=${product.prefix or req.args.get('prefix')} 
readonly=${product._exists and 'readonly' or None}/
+  /div
+/div
+div class=control-group
+  label class=control-label for=nameName:/label
+  div class=controls
+input type=text id=name name=name class=input-xxlarge 
value=${product.name or req.args.get('name')} /
+  /div
+/div
+div class=control-group
+  fieldset class=iefix
+label class=control-label for=description i18n:msg=
+  Description:
+/label
+div class=controls
+  ptextarea id=description name=description 
class=wikitext trac-resizable input-xxlarge rows=10 cols=78
+$product.description/textarea/p
+  p class=help-block
+span class=label label-infoTip/span
+You may use

svn commit: r1579442 - in /bloodhound/trunk: bloodhound_dashboard/setup.py bloodhound_multiproduct/setup.py bloodhound_relations/setup.py bloodhound_search/setup.py

2014-03-19 Thread rjollos
Author: rjollos
Date: Wed Mar 19 23:03:08 2014
New Revision: 1579442

URL: http://svn.apache.org/r1579442
Log:
0.8dev: Use the standard message extractors rather than the JS message 
extractors. Refs #694.

Modified:
bloodhound/trunk/bloodhound_dashboard/setup.py
bloodhound/trunk/bloodhound_multiproduct/setup.py
bloodhound/trunk/bloodhound_relations/setup.py
bloodhound/trunk/bloodhound_search/setup.py

Modified: bloodhound/trunk/bloodhound_dashboard/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/setup.py?rev=1579442r1=1579441r2=1579442view=diff
==
--- bloodhound/trunk/bloodhound_dashboard/setup.py (original)
+++ bloodhound/trunk/bloodhound_dashboard/setup.py Wed Mar 19 23:03:08 2014
@@ -132,8 +132,8 @@ ENTRY_POINTS = r

 extra = {}
 try:
-from trac.util.dist import get_l10n_js_cmdclass
-cmdclass = get_l10n_js_cmdclass()
+from trac.util.dist import get_l10n_cmdclass
+cmdclass = get_l10n_cmdclass()
 if cmdclass:
 extra['cmdclass'] = cmdclass
 extractors = [

Modified: bloodhound/trunk/bloodhound_multiproduct/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/setup.py?rev=1579442r1=1579441r2=1579442view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/setup.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/setup.py Wed Mar 19 23:03:08 2014
@@ -36,8 +36,8 @@ if __name__ == '__main__':
 
 extra = {}
 try:
-from trac.util.dist import get_l10n_js_cmdclass
-cmdclass = get_l10n_js_cmdclass()
+from trac.util.dist import get_l10n_cmdclass
+cmdclass = get_l10n_cmdclass()
 if cmdclass:
 extra['cmdclass'] = cmdclass
 extractors = [

Modified: bloodhound/trunk/bloodhound_relations/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/setup.py?rev=1579442r1=1579441r2=1579442view=diff
==
--- bloodhound/trunk/bloodhound_relations/setup.py (original)
+++ bloodhound/trunk/bloodhound_relations/setup.py Wed Mar 19 23:03:08 2014
@@ -115,8 +115,8 @@ ENTRY_POINTS = {
 
 extra = {}
 try:
-from trac.util.dist import get_l10n_js_cmdclass
-cmdclass = get_l10n_js_cmdclass()
+from trac.util.dist import get_l10n_cmdclass
+cmdclass = get_l10n_cmdclass()
 if cmdclass:
 extra['cmdclass'] = cmdclass
 extractors = [

Modified: bloodhound/trunk/bloodhound_search/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_search/setup.py?rev=1579442r1=1579441r2=1579442view=diff
==
--- bloodhound/trunk/bloodhound_search/setup.py (original)
+++ bloodhound/trunk/bloodhound_search/setup.py Wed Mar 19 23:03:08 2014
@@ -144,8 +144,8 @@ ENTRY_POINTS = {
 
 extra = {}
 try:
-from trac.util.dist import get_l10n_js_cmdclass
-cmdclass = get_l10n_js_cmdclass()
+from trac.util.dist import get_l10n_cmdclass
+cmdclass = get_l10n_cmdclass()
 if cmdclass:
 extra['cmdclass'] = cmdclass
 extractors = [




svn commit: r1579492 - /bloodhound/trunk/bloodhound_relations/bhrelations/validation.py

2014-03-19 Thread rjollos
Author: rjollos
Date: Thu Mar 20 01:03:15 2014
New Revision: 1579492

URL: http://svn.apache.org/r1579492
Log:
0.8dev: Fixed documentation for `BlockerValidator`.

Modified:
bloodhound/trunk/bloodhound_relations/bhrelations/validation.py

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/validation.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/validation.py?rev=1579492r1=1579491r2=1579492view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/validation.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/validation.py Thu Mar 20 
01:03:15 2014
@@ -219,8 +219,7 @@ class ReferencesOlderValidator(Validator
 
 class BlockerValidator(Validator):
 def validate(self, relation):
-If a path exists from relation's destination to its source,
- adding the relation will create a cycle.
+Prevents adding a cyclical blocker relation.
  
 rls = RelationsSystem(self.env)
 if not rls.is_blocker(relation.type):




svn commit: r1579117 - in /bloodhound/trunk/bloodhound_relations/bhrelations: validation.py web_ui.py

2014-03-18 Thread rjollos
Author: rjollos
Date: Wed Mar 19 03:13:17 2014
New Revision: 1579117

URL: http://svn.apache.org/r1579117
Log:
0.8dev: PEP-0008 changes and proper markup for a translatable string.

Modified:
bloodhound/trunk/bloodhound_relations/bhrelations/validation.py
bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/validation.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/validation.py?rev=1579117r1=1579116r2=1579117view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/validation.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/validation.py Wed Mar 19 
03:13:17 2014
@@ -190,8 +190,9 @@ class OneToManyValidator(Validator):
 parents.
 def validate(self, relation):
 rls = RelationsSystem(self.env)
-existing_relations = rls._select_relations(resource_type=relation.type,
-   
destination=relation.destination)
+existing_relations = \
+rls._select_relations(resource_type=relation.type,
+  destination=relation.destination)
 if existing_relations:
 raise ValidationError(
 tag_(Another resource is already related to %(destination)s 

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py?rev=1579117r1=1579116r2=1579117view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py Wed Mar 19 
03:13:17 2014
@@ -25,19 +25,21 @@ Ticket relations user interface.
 
 import re
 
-from trac.core import Component, implements, TracError
-from trac.resource import get_resource_url, Resource, \
-  get_resource_shortname, get_resource_summary
+from trac.core import Component, TracError, implements
+from trac.resource import Resource, get_resource_shortname, \
+  get_resource_summary, get_resource_url
 from trac.ticket.model import Ticket
 from trac.util import exception_to_unicode, to_unicode
-from trac.web import IRequestHandler, IRequestFilter
+from trac.web.api import IRequestFilter, IRequestHandler
 from trac.web.chrome import ITemplateProvider, add_warning
 
-from bhrelations.api import RelationsSystem, ResourceIdSerializer, \
-TicketRelationsSpecifics, UnknownRelationType, NoSuchTicketError
+from bhrelations.api import NoSuchTicketError, RelationsSystem, \
+ResourceIdSerializer, TicketRelationsSpecifics, \
+UnknownRelationType
+
 from bhrelations.model import Relation
-from bhrelations.validation import ValidationError
 from bhrelations.utils.translation import _
+from bhrelations.validation import ValidationError
 
 
 class RelationManagementModule(Component):
@@ -95,9 +97,8 @@ class RelationManagementModule(Component
 
 try:
 dbrel = relsys.add(ticket, dest_ticket,
-relation['type'],
-relation['comment'],
-req.authname)
+   relation['type'],
+   relation['comment'], req.authname)
 except NoSuchTicketError:
 data['error'] = _('Invalid ticket ID.')
 except UnknownRelationType:
@@ -112,9 +113,10 @@ class RelationManagementModule(Component
 self.log.error(Failure sending notification on
creation of relation: %s,
exception_to_unicode(e))
-add_warning(req, _(The relation has been added, 
but an 
-   error occurred while sending
-   notifications:  %(message)s,
+add_warning(req, _(The relation has been added, 
+   but an error occurred while 
+   sending notifications: 
+   %(message)s,
message=to_unicode(e)))
 
 if 'error' in data:
@@ -125,7 +127,7 @@ class RelationManagementModule(Component
 data.update({
 'ticket': ticket,
 'reltypes': sorted(relsys.get_relation_types().iteritems(),
-key=lambda x: x[0]),
+   key=lambda x: x[0]),
 'relations': self.get_ticket_relations(ticket

svn commit: r1578595 - /bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html

2014-03-17 Thread rjollos
Author: rjollos
Date: Mon Mar 17 21:24:14 2014
New Revision: 1578595

URL: http://svn.apache.org/r1578595
Log:
0.8dev: Copied `product_edit.html` to `bh_product_edit.html`. The later will be 
modified for Bootstrap markup.

Added:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html   
(with props)

Added: bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html?rev=1578595view=auto
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html 
(added)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html Mon 
Mar 17 21:24:14 2014
@@ -0,0 +1,69 @@
+!--!
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  License); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--
+
+!DOCTYPE html
+PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
+http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;
+html xmlns=http://www.w3.org/1999/xhtml;
+  xmlns:py=http://genshi.edgewall.org/;
+  xmlns:i18n=http://genshi.edgewall.org/i18n;
+  i18n:domain=multiproduct
+  xmlns:xi=http://www.w3.org/2001/XInclude;
+  xi:include href=layout.html /
+  head
+py:choose test=product._exists
+  title py:when=TrueEdit Product ${product.name}/title
+  title py:otherwise=New Product/title
+/py:choose
+  /head
+
+  body
+div id=content class=product
+  py:choose test=product._exists
+h1 py:when=TrueEdit Product ${product.name}/h1
+h1 py:otherwise=New Product/h1
+  /py:choose
+
+  form id=edit action= method=post
+div class=field
+  input type=hidden name=action value=edit /
+  labelShort name for the product (prefix):br /
+input type=text id=prefix name=prefix size=32 
value=${product.prefix or req.args.get('prefix')} readonly=${product._exists 
and 'readonly' or None}/
+  /label
+  labelName of the product:br /
+input type=text id=name name=name size=32 
value=${product.name or req.args.get('name')} /
+  /label
+/div
+div class=field
+  fieldset class=iefix
+label for=description i18n:msg=Description (you may use a 
tabindex=42
+   href=${href.wiki('WikiFormatting')}WikiFormatting/a 
here):/label
+ptextarea id=description name=description class=wikitext 
trac-resizable rows=10 cols=78
+${product.description}/textarea/p
+  /fieldset
+/div
+div class=buttons py:choose=product._exists
+  input py:when=True type=submit value=${_('Submit changes')} /
+  input py:otherwise= type=submit value=${_('Add Product')} /
+  input type=submit name=cancel value=${_('Cancel')} /
+/div
+  /form
+/div
+  /body
+/html

Propchange: 
bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html
--
svn:eol-style = native




svn commit: r1578599 - in /bloodhound/trunk/bloodhound_theme/bhtheme/templates: bh_product_edit.html product_edit.html

2014-03-17 Thread rjollos
Author: rjollos
Date: Mon Mar 17 21:29:44 2014
New Revision: 1578599

URL: http://svn.apache.org/r1578599
Log:
0.8dev: Fixed error in rename in r1578595.

Added:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_product_edit.html
  - copied unchanged from r1578595, 
bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html
Removed:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/product_edit.html



svn commit: r1578163 - /bloodhound/trunk/installer/bloodhound_setup.py

2014-03-16 Thread rjollos
Author: rjollos
Date: Sun Mar 16 21:20:28 2014
New Revision: 1578163

URL: http://svn.apache.org/r1578163
Log:
0.8dev: Follow-on to [1557980]. Avoid printing messy traceback from failed 
imports.

Modified:
bloodhound/trunk/installer/bloodhound_setup.py

Modified: bloodhound/trunk/installer/bloodhound_setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/bloodhound_setup.py?rev=1578163r1=1578162r2=1578163view=diff
==
--- bloodhound/trunk/installer/bloodhound_setup.py (original)
+++ bloodhound/trunk/installer/bloodhound_setup.py Sun Mar 16 21:20:28 2014
@@ -39,10 +39,9 @@ try:
 from trac.admin.console import TracAdmin
 from trac.config import Configuration
 except ImportError, e:
-print (Requirements should be installed before running 
bloodhound_setup.py.\n
-   You can install them with the following command:\n
-  pip install -r requirements.txt\n)
-traceback.print_exc()
+print(Requirements must be installed before running 
bloodhound_setup.py.\n
+  You can install them with the following command:\n
+ pip install -r requirements.txt\n)
 sys.exit(1)
 
 try:




svn commit: r1578217 - /bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_query.html

2014-03-16 Thread rjollos
Author: rjollos
Date: Mon Mar 17 03:21:13 2014
New Revision: 1578217

URL: http://svn.apache.org/r1578217
Log:
0.8dev: Removed unneeded `span`.

Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_query.html

Modified: bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_query.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_query.html?rev=1578217r1=1578216r2=1578217view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_query.html (original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_query.html Mon Mar 
17 03:21:13 2014
@@ -52,10 +52,9 @@
 
   body
 div id=content class=query row
-  span class=span12h1$title small 
class=numrows(${ngettext('%(num)s match', '%(num)s matches', 
query.num_items)})/small/h1/span
+  h1 class=span12$title small class=numrows(${ngettext('%(num)s 
match', '%(num)s matches', query.num_items)})/small/h1
 
-  div py:if=description id=description class=span12
-  xml:space=preserve
+  div py:if=description id=description class=span12 
xml:space=preserve
 ${wiki_to_html(context.child(report_resource), description)}
   /div
 
@@ -298,11 +297,11 @@
 /form
   /div
 
-  div class=span12
-div id=help class=help-block pull-right i18n:msg=
-  span class=label label-infoNote/span See a 
href=${href.wiki('TracQuery')}TracQuery/a
-  for help on using queries.
-/div
+  div id=help class=span12 i18n:msg=
+p class=help-block pull-right
+  span class=label label-infoNote/span
+  See a href=${href.wiki('TracQuery')}TracQuery/a for help on 
using queries.
+/p
   /div
 
 /div




svn commit: r1578219 - /bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_report_list.html

2014-03-16 Thread rjollos
Author: rjollos
Date: Mon Mar 17 03:43:10 2014
New Revision: 1578219

URL: http://svn.apache.org/r1578219
Log:
0.8dev: Added a margin around the //Create new report// button.

Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_report_list.html

Modified: 
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_report_list.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_report_list.html?rev=1578219r1=1578218r2=1578219view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_report_list.html 
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_report_list.html Mon 
Mar 17 03:43:10 2014
@@ -135,7 +135,7 @@
   /div
 
 
-  div py:if='REPORT_CREATE' in perm class=buttons span12
+  div py:if='REPORT_CREATE' in perm class=buttons btn-toolbar span12
 form action= method=get id=create_report
   div
 input type=hidden name=action value=new /




svn commit: r1578221 - /bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_cloud.html

2014-03-16 Thread rjollos
Author: rjollos
Date: Mon Mar 17 04:02:40 2014
New Revision: 1578221

URL: http://svn.apache.org/r1578221
Log:
0.8dev: Refactored template.

Modified:

bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_cloud.html

Modified: 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_cloud.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_cloud.html?rev=1578221r1=1578220r2=1578221view=diff
==
--- 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_cloud.html
 (original)
+++ 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_cloud.html
 Mon Mar 17 04:02:40 2014
@@ -45,10 +45,7 @@
 /span
   /py:def
 
-  py:if test=heading is not None
-  h3 style=display: inline;$heading/h3
-  br/
-  /py:if
+  h3 py:if=heading is not None style=display: inline;$heading/h3
   py:if test=_view != view
 xi:include href=widget_alert.html
 py:with=msglabel = 'Warning'; msgbody = 'Unknown view ' + view /




svn commit: r1578223 - in /bloodhound/trunk/bloodhound_theme/bhtheme: templates/bh_roadmap.html theme.py

2014-03-16 Thread rjollos
Author: rjollos
Date: Mon Mar 17 04:09:03 2014
New Revision: 1578223

URL: http://svn.apache.org/r1578223
Log:
0.8dev: Added Bootstrap styling to Roadmap template. Refs #789.

Initial patch by thimal.

Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_roadmap.html
bloodhound/trunk/bloodhound_theme/bhtheme/theme.py

Modified: bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_roadmap.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_roadmap.html?rev=1578223r1=1578222r2=1578223view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_roadmap.html 
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_roadmap.html Mon Mar 
17 04:09:03 2014
@@ -24,81 +24,91 @@
   xmlns:py=http://genshi.edgewall.org/;
   xmlns:i18n=http://genshi.edgewall.org/i18n;
   xmlns:xi=http://www.w3.org/2001/XInclude;
-  xi:include href=layout.html /
+  xi:include href=layout.html/
+  xi:include href=widget_macros.html/
   head
 titleRoadmap/title
   /head
 
   body
-div id=content class=roadmap
+div id=content class=roadmap row
 
-  form id=prefs method=get action=
-div
-  input type=checkbox id=showcompleted name=show 
value=completed
- checked=${'completed' in show or None} /
-  label for=showcompletedShow completed milestones/label
-/div
-div
-  input type=checkbox id=hidenoduedate name=show 
value=noduedate
- checked=${'noduedate' in show or None} /
-  label for=hidenoduedateHide milestones with no due date/label
-/div
-div class=buttons
-  input type=submit value=${_('Update')} /
-/div
-  /form
+  h1 class=span12Roadmap/h1
 
-  h1Roadmap/h1
+  div class=span12
+div class=well
+  form id=prefs class=form-inline role=form method=get 
action=
+div
+  label class=checkbox
+input type=checkbox id=showcompleted name=show 
value=completed
+   checked=${'completed' in show or None}/ Show 
completed
+milestones
+  /label
+  label class=checkbox
+input type=checkbox id=hidenoduedate name=show 
value=noduedate
+   checked=${'noduedate' in show or None}/ Hide 
milestones with no due date
+  /label
+  input class=btn btn-default pull-right type=submit 
value=${_('Update')}/
+/div
+  /form
+/div
+  /div
 
-  div class=milestones
+  div class=milestones span12
 div py:for=idx, milestone in enumerate(milestones) 
class=milestone
 
   div class=info trac-progress py:with=mstats = 
milestone_stats[idx]
 h2a href=${href.milestone(milestone.name)}
-  Milestone: em${milestone.name}/em
+  span Milestone:/span em${milestone.name}/em
 /a/h2
 py:choose
   p py:when=milestone.completed class=date
 i18n:msg params=duration, date
-  Completed ${dateinfo(milestone.completed)} ago 
(${format_datetime(milestone.completed)})
+  Completed ${dateinfo(milestone.completed)} ago
+  (${format_datetime(milestone.completed)})
 /i18n:msg
   /p
   p py:when=milestone.is_late class=date
 i18n:msg params=duration, date
-  strong${dateinfo(milestone.due)} late/strong 
(${format_datetime(milestone.due)})
+  strong${dateinfo(milestone.due)} late/strong
+  (${format_datetime(milestone.due)})
 /i18n:msg
   /p
   p py:when=milestone.due class=date
 i18n:msg params=duration, date
-  Due in ${dateinfo(milestone.due)} 
(${format_datetime(milestone.due)})
+  Due in ${dateinfo(milestone.due)}
+  (${format_datetime(milestone.due)})
 /i18n:msg
   /p
   p py:otherwise= class=date
-No date set
+span class=label label-warningNo date set/span
   /p
 /py:choose
-xi:include href=progress_bar.html py:if=mstats.stats.count
-py:with=stats = mstats.stats; interval_hrefs = 
mstats.interval_hrefs;
- stats_href = mstats.stats_href/
+xi:include href=widget_progress.html py:if=mstats.stats.count
+py:with=view = 'standard'; legend = True;
+ stats = mstats.stats; interval_hrefs = 
mstats.interval_hrefs;
+ stats_href = mstats.stats_href; /
   /div
 
-  div class=description xml:space=preserve
+  div py:if

svn commit: r1578228 - /bloodhound/trunk/RELEASE_NOTES

2014-03-16 Thread rjollos
Author: rjollos
Date: Mon Mar 17 05:00:37 2014
New Revision: 1578228

URL: http://svn.apache.org/r1578228
Log:
0.8dev: Updated release notes to account for recent change and clarification on 
a defect.

Modified:
bloodhound/trunk/RELEASE_NOTES

Modified: bloodhound/trunk/RELEASE_NOTES
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/RELEASE_NOTES?rev=1578228r1=1578227r2=1578228view=diff
==
--- bloodhound/trunk/RELEASE_NOTES (original)
+++ bloodhound/trunk/RELEASE_NOTES Mon Mar 17 05:00:37 2014
@@ -9,10 +9,14 @@
  * Improvements to ticket timeline (comments section).
  * BloodhoundSearch now supports Whoosh = 2.5.1 (upgraded from 2.4.1).
  * Fixed errors in BloodhoundRelations validation logic.
+ * Bootstrap template for the Roadmap view.
  * Numerous other important fixes and minor enhancements.
 
+
  * Not fixed for this release
-  * New resources do not appear immediately (#613, #614, #620, #681, #719).
+  * Cache is not properly refreshed for resources including wiki pages,
+milestones, components and permissions; leading to stale data being
+displayed after INSERTs and DELETEs (#613, #614, #620, #681, #719, #748).
   * Products cannot be deleted (#517).
   * Duplicate relation is not added when batch modifying tickets (#761).
   * TicketDeleter component can't be used with BloodhoundTheme (#427).




svn commit: r1575837 - /bloodhound/trunk/RELEASE_NOTES

2014-03-10 Thread rjollos
Author: rjollos
Date: Mon Mar 10 06:12:22 2014
New Revision: 1575837

URL: http://svn.apache.org/r1575837
Log:
0.8dev: Clarification on Whoosh upgrade and fixed typo.

Modified:
bloodhound/trunk/RELEASE_NOTES

Modified: bloodhound/trunk/RELEASE_NOTES
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/RELEASE_NOTES?rev=1575837r1=1575836r2=1575837view=diff
==
--- bloodhound/trunk/RELEASE_NOTES (original)
+++ bloodhound/trunk/RELEASE_NOTES Mon Mar 10 06:12:22 2014
@@ -7,7 +7,7 @@
from taking effect immediately.
  * Improved presentation of the Products page.
  * Improvements to ticket timeline (comments section).
- * BloodhoundSearch now supports Woosh = 2.5.1.
+ * BloodhoundSearch now supports Whoosh = 2.5.1 (upgraded from 2.4.1).
  * Fixed errors in BloodhoundRelations validation logic.
  * Numerous other important fixes and minor enhancements.
 




svn commit: r1574802 - in /bloodhound/trunk/bloodhound_relations/bhrelations: tests/api.py validation.py

2014-03-06 Thread rjollos
Author: rjollos
Date: Thu Mar  6 08:47:29 2014
New Revision: 1574802

URL: http://svn.apache.org/r1574802
Log:
0.8dev: It was not possible to create multiple //is a parent of// relations. 
Refs #775.

Modified:
bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py
bloodhound/trunk/bloodhound_relations/bhrelations/validation.py

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py?rev=1574802r1=1574801r2=1574802view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py Thu Mar  6 
08:47:29 2014
@@ -224,13 +224,13 @@ class ApiTestCase(BaseRelationsTestCase)
 parent2 = self._insert_and_load_ticket(A3)
 #act
 relations_system = self.relations_system
-relations_system.add(child, parent1, parent)
+relations_system.add(parent1, child, 'parent')
 self.assertRaises(
 ValidationError,
 relations_system.add,
-child,
 parent2,
-parent)
+child,
+'parent')
 
 def test_can_not_add_more_than_one_parents_via_children(self):
 #arrange
@@ -239,12 +239,12 @@ class ApiTestCase(BaseRelationsTestCase)
 parent2 = self._insert_and_load_ticket(A3)
 #act
 relations_system = self.relations_system
-relations_system.add(parent1, child, children)
+relations_system.add(child, parent1, children)
 self.assertRaises(
 ValidationError,
 relations_system.add,
-parent2,
 child,
+parent2,
 children)
 
 def test_ticket_can_be_resolved(self):
@@ -254,13 +254,13 @@ class ApiTestCase(BaseRelationsTestCase)
 parent2 = self._insert_and_load_ticket(A3)
 #act
 relations_system = self.relations_system
-relations_system.add(parent1, child, children)
-self.assertRaises(
-ValidationError,
-relations_system.add,
-parent2,
-child,
-children)
+relations_system.add(child, parent1, children)
+
+self.req.args['action'] = 'resolve'
+warnings = \
+TicketRelationsSpecifics(self.env).validate_ticket(self.req, child)
+
+self.assertEqual(0, len(list(warnings)))
 
 def test_can_save_and_load_relation_time(self):
 #arrange
@@ -397,53 +397,53 @@ class ApiTestCase(BaseRelationsTestCase)
 
 def test_cannot_create_other_relations_between_descendants(self):
 t1, t2, t3, t4, t5 = map(self._insert_and_load_ticket, 12345)
-self.relations_system.add(t4, t2, parent)  #t1 - t2
-self.relations_system.add(t3, t2, parent)  # /  \
-self.relations_system.add(t2, t1, parent)  #   t3t4
+self.relations_system.add(t2, t4, parent)  #t1 - t2
+self.relations_system.add(t2, t3, parent)  # /  \
+self.relations_system.add(t1, t2, parent)  #   t3t4
 
 self.assertRaises(
 ValidationError,
-self.relations_system.add, t1, t2, dependent
+self.relations_system.add, t2, t1, dependent
 )
 self.assertRaises(
 ValidationError,
-self.relations_system.add, t2, t1, dependent
+self.relations_system.add, t1, t2, dependent
 )
 self.assertRaises(
 ValidationError,
-self.relations_system.add, t1, t4, dependent
+self.relations_system.add, t4, t1, dependent
 )
 self.assertRaises(
 ValidationError,
-self.relations_system.add, t3, t1, dependent
+self.relations_system.add, t1, t3, dependent
 )
 try:
-self.relations_system.add(t1, t5, dependent)
-self.relations_system.add(t3, t4, dependent)
+self.relations_system.add(t5, t1,dependent)
+self.relations_system.add(t4, t3, dependent)
 except ValidationError:
 self.fail(Could not add valid relation.)
 
 def test_cannot_add_parent_if_this_would_cause_invalid_relations(self):
 t1, t2, t3, t4, t5 = map(self._insert_and_load_ticket, 12345)
-self.relations_system.add(t4, t2, parent)  #t1 - t2
-self.relations_system.add(t3, t2, parent)  # /  \
-self.relations_system.add(t2, t1, parent)  #   t3t4t5
-self.relations_system.add(t2, t5, dependent)
+self.relations_system.add(t2, t4, parent)  #t1 - t2
+self.relations_system.add(t2, t3, parent)  # /  \
+self.relations_system.add(t1, t2, parent)  #   t3t4t5
+self.relations_system.add(t5, t2, dependent

svn commit: r1574778 - /bloodhound/trunk/bloodhound_relations/bhrelations/validation.py

2014-03-05 Thread rjollos
Author: rjollos
Date: Thu Mar  6 06:03:15 2014
New Revision: 1574778

URL: http://svn.apache.org/r1574778
Log:
0.8dev: Moved `ValidationError` to the top of the module, per the convention in 
Trac.

Modified:
bloodhound/trunk/bloodhound_relations/bhrelations/validation.py

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/validation.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/validation.py?rev=1574778r1=1574777r2=1574778view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/validation.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/validation.py Thu Mar  6 
06:03:15 2014
@@ -26,6 +26,14 @@ from bhrelations.api import IRelationVal
 ResourceIdSerializer, TicketRelationsSpecifics
 
 
+class ValidationError(TracError):
+Exception raised when a validator fails.
+def __init__(self, message, title=None, show_traceback=False):
+super(ValidationError, self).__init__(
+message, title, show_traceback)
+self.failed_ids = []
+
+
 class Validator(Component):
 implements(IRelationValidator)
 
@@ -231,10 +239,3 @@ class BlockerValidator(Validator):
 error = ValidationError(error)
 error.failed_ids = path
 raise error
-
-
-class ValidationError(TracError):
-def __init__(self, message, title=None, show_traceback=False):
-super(ValidationError, self).__init__(
-message, title, show_traceback)
-self.failed_ids = []




svn commit: r1574195 - in /bloodhound/trunk: bloodhound_multiproduct/multiproduct/product_admin.py bloodhound_multiproduct/multiproduct/templates/admin_products.html bloodhound_theme/bhtheme/templates

2014-03-04 Thread rjollos
Author: rjollos
Date: Tue Mar  4 20:50:32 2014
New Revision: 1574195

URL: http://svn.apache.org/r1574195
Log:
0.8dev: When attempting to add a product, preserve form data when a warning is 
raised. Refs #661.

The warning messages were also made more specific.

Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py

bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/admin_products.html
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_admin_products.html

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py?rev=1574195r1=1574194r2=1574195view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py Tue 
Mar  4 20:50:32 2014
@@ -85,6 +85,7 @@ class ProductAdminPanel(TicketAdminPanel
   'description':description,
   'owner':owner,
   }
+data = {}
 
 # Detail view?
 if product:
@@ -105,27 +106,38 @@ class ProductAdminPanel(TicketAdminPanel
 default = self.config.get('ticket', 'default_product')
 if req.method == 'POST':
 # Add Product
-if req.args.get('add') and req.args.get('prefix'):
+if req.args.get('add'):
 req.perm.require('PRODUCT_CREATE')
-if not owner:
-add_warning(req, _('All fields are required!'))
-req.redirect(req.href.admin(cat, page))
-
-try:
-prod = Product(self.env, keys)
-except ResourceNotFound:
-prod = Product(self.env)
-prod.update_field_dict(keys)
-prod.update_field_dict(field_data)
-prod.insert()
-add_notice(req, _('The product %(id)s has been 
added.',
-  id=prefix))
-req.redirect(req.href.admin(cat, page))
+if not (prefix and name and owner):
+if not prefix:
+add_warning(req, _(You must provide a prefix 
+   for the product.))
+if not name:
+add_warning(req, _(You must provide a name 
+   for the product.))
+if not owner:
+add_warning(req, _(You must provide an owner 
+   for the product.))
+data['prefix'] = prefix
+data['name'] = name
+data['owner'] = owner
+print data
 else:
-if prod.prefix is None:
-raise TracError(_('Invalid product id.'))
-raise TracError(_(Product %(id)s already exists.,
-  id=prefix))
+try:
+prod = Product(self.env, keys)
+except ResourceNotFound:
+prod = Product(self.env)
+prod.update_field_dict(keys)
+prod.update_field_dict(field_data)
+prod.insert()
+add_notice(req, _('The product %(id)s has been '
+  'added.', id=prefix))
+req.redirect(req.href.admin(cat, page))
+else:
+if prod.prefix is None:
+raise TracError(_('Invalid product id.'))
+raise TracError(_(Product %(id)s already exists.,
+  id=prefix))
 
 # Remove product
 elif req.args.get('remove'):
@@ -149,10 +161,9 @@ class ProductAdminPanel(TicketAdminPanel
 _save_config(self.config, req, self.log)
 req.redirect(req.href.admin(cat, page))
 
-products = Product.select(self.env)
-data = {'view': 'list',
-'products': products,
-'default': default}
+data['view'] = 'list'
+data['products'] = Product.select(self.env)
+data['default'] = default
 if self.config.getbool('ticket', 'restrict_owner'):
 perm = PermissionSystem(self.env)
 def valid_owner(username):

Modified: 
bloodhound/trunk

svn commit: r1574211 - /bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py

2014-03-04 Thread rjollos
Author: rjollos
Date: Tue Mar  4 21:26:39 2014
New Revision: 1574211

URL: http://svn.apache.org/r1574211
Log:
0.8dev: Removed print statement from 1574195.

Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py?rev=1574211r1=1574210r2=1574211view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py Tue 
Mar  4 21:26:39 2014
@@ -121,7 +121,6 @@ class ProductAdminPanel(TicketAdminPanel
 data['prefix'] = prefix
 data['name'] = name
 data['owner'] = owner
-print data
 else:
 try:
 prod = Product(self.env, keys)




svn commit: r1574383 - /bloodhound/trunk/RELEASE_NOTES

2014-03-04 Thread rjollos
Author: rjollos
Date: Wed Mar  5 05:38:34 2014
New Revision: 1574383

URL: http://svn.apache.org/r1574383
Log:
0.8dev: Updated release notes for Release 8.

Modified:
bloodhound/trunk/RELEASE_NOTES

Modified: bloodhound/trunk/RELEASE_NOTES
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/RELEASE_NOTES?rev=1574383r1=1574382r2=1574383view=diff
==
--- bloodhound/trunk/RELEASE_NOTES (original)
+++ bloodhound/trunk/RELEASE_NOTES Wed Mar  5 05:38:34 2014
@@ -1,3 +1,24 @@
+0.8
+ * i18n internationalization.
+ * Multiproduct support for CommitTicketUpdater.
+ * Quick Create Ticket form sets product based on context and forwards
+   values to the ticket form when More fields is selected.
+ * Fixed caching issue that prevented product-scope trac-admin commands
+   from taking effect immediately.
+ * Improved presentation of the Products page.
+ * Improvements to ticket timeline (comments section).
+ * BloodhoundSearch now supports Woosh = 2.5.1.
+ * Fixed errors in BloodhoundRelations validation logic.
+ * Numerous other important fixes and minor enhancements.
+
+ * Not fixed for this release
+  * New resources do not appear immediately (#613, #614, #620, #681, #719).
+  * Products cannot be deleted (#517).
+  * Duplicate relation is not added when batch modifying tickets (#761).
+  * TicketDeleter component can't be used with BloodhoundTheme (#427).
+  * No product-scope permission checks on the global dashboard (#572).
+  * Inconsistencies in query views when running PostgreSQL (#730).
+
 0.7
  * Duplicate ticket relation is integrated to the ticket workflow.
  * Several fixes for multiproduct installations with products that map to 
subdomains.




svn commit: r1573853 - in /bloodhound/trunk/bloodhound_relations/bhrelations: api.py tests/api.py

2014-03-03 Thread rjollos
Author: rjollos
Date: Tue Mar  4 05:17:01 2014
New Revision: 1573853

URL: http://svn.apache.org/r1573853
Log:
0.8dev: Validation that checked for open child tickets had reversed logic. Refs 
#746.

The validation now checks whether the source ticket //is a parent of// any open 
tickets.

Modified:
bloodhound/trunk/bloodhound_relations/bhrelations/api.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/api.py?rev=1573853r1=1573852r2=1573853view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/api.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/api.py Tue Mar  4 
05:17:01 2014
@@ -545,7 +545,7 @@ class TicketRelationsSpecifics(Component
 operations = self._get_operations_for_action(req, ticket, action)
 if 'set_resolution' in operations:
 for relation in [r for r in self.rls.get_relations(ticket)
- if r['type'] == self.rls.CHILDREN_RELATION_TYPE]:
+ if r['type'] == self.rls.PARENT_RELATION_TYPE]:
 child_ticket = \
 self._create_ticket_by_full_id(relation['destination'])
 if child_ticket['status'] != 'closed':

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py?rev=1573853r1=1573852r2=1573853view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/tests/api.py Tue Mar  4 
05:17:01 2014
@@ -452,9 +452,9 @@ class ApiTestCase(BaseRelationsTestCase)
 t2 = self._insert_and_load_ticket(2, status='closed') #   /  | \
 t3 = self._insert_and_load_ticket(3)  #  t2 t3 t4
 t4 = self._insert_and_load_ticket(4)
-self.relations_system.add(t2, t1, parent)
-self.relations_system.add(t3, t1, parent)
-self.relations_system.add(t4, t1, parent)
+self.relations_system.add(t1, t2, parent)
+self.relations_system.add(t1, t3, parent)
+self.relations_system.add(t1, t4, parent)
 
 # A warning is be returned for each open ticket
 self.req.args[action] = 'resolve'




svn commit: r1573857 - /bloodhound/trunk/bloodhound_relations/bhrelations/validation.py

2014-03-03 Thread rjollos
Author: rjollos
Date: Tue Mar  4 05:25:43 2014
New Revision: 1573857

URL: http://svn.apache.org/r1573857
Log:
0.8dev: Make exception message in `OneToManyValidator` translatable and use 
markup to emphasize text. Refs #776,

Modified:
bloodhound/trunk/bloodhound_relations/bhrelations/validation.py

Modified: bloodhound/trunk/bloodhound_relations/bhrelations/validation.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/validation.py?rev=1573857r1=1573856r2=1573857view=diff
==
--- bloodhound/trunk/bloodhound_relations/bhrelations/validation.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/validation.py Tue Mar  4 
05:25:43 2014
@@ -17,8 +17,10 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+from genshi.builder import tag
 from trac.core import Component, implements, TracError
 from trac.resource import get_resource_shortname
+from trac.util.translation import tag_
 
 from bhrelations.api import IRelationValidator, RelationsSystem, \
 ResourceIdSerializer, TicketRelationsSpecifics
@@ -182,10 +184,11 @@ class OneToManyValidator(Validator):
relation.type)
 if existing_relations:
 raise ValidationError(
-%s can only have one %s % (
-relation.source,
-self.render_relation_type(relation.type)
-))
+tag_(Resource %(source)s can only have one %(relation)s 
+ relation.,
+ source=tag.em(relation.source),
+ relation=tag.b(self.render_relation_type(relation.type)))
+)
 
 
 class ReferencesOlderValidator(Validator):




svn commit: r1573278 - in /bloodhound/trunk/bloodhound_multiproduct/tests: admin/__init__.py db/__init__.py mimeview/__init__.py ticket/__init__.py versioncontrol/__init__.py web/__init__.py wiki/__in

2014-03-02 Thread rjollos
Author: rjollos
Date: Sun Mar  2 10:31:18 2014
New Revision: 1573278

URL: http://svn.apache.org/r1573278
Log:
0.8dev: Package tests can be executed using `__init__` in the module path.
For example: $ PYTHONPATH=. python -m tests.wiki.__init__

Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/admin/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/db/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/mimeview/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/ticket/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/versioncontrol/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/web/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/wiki/__init__.py

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/admin/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/admin/__init__.py?rev=1573278r1=1573277r2=1573278view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/admin/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/admin/__init__.py Sun Mar  2 
10:31:18 2014
@@ -17,9 +17,13 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Tests for Apache(TM) Bloodhound's administration in product environments
-
+import unittest
 from tests import TestLoader
 
+
 def test_suite():
-return TestLoader().discover_package(__name__, pattern='*.py')
+return TestLoader().discover_package(__package__, pattern='*.py')
+
+
+if __name__ == '__main__':
+unittest.main(defaultTest='test_suite')

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/db/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/db/__init__.py?rev=1573278r1=1573277r2=1573278view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/db/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/db/__init__.py Sun Mar  2 
10:31:18 2014
@@ -17,7 +17,13 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+import unittest
 from tests import TestLoader
 
+
 def test_suite():
-return TestLoader().discover_package(__name__, pattern='*.py')
+return TestLoader().discover_package(__package__, pattern='*.py')
+
+
+if __name__ == '__main__':
+unittest.main(defaultTest='test_suite')

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/mimeview/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/mimeview/__init__.py?rev=1573278r1=1573277r2=1573278view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/mimeview/__init__.py 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/mimeview/__init__.py Sun Mar 
 2 10:31:18 2014
@@ -17,9 +17,13 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Tests for Apache(TM) Bloodhound's MIME API in product environments
-
+import unittest
 from tests import TestLoader
 
+
 def test_suite():
-return TestLoader().discover_package(__name__, pattern='*.py')
+return TestLoader().discover_package(__package__, pattern='*.py')
+
+
+if __name__ == '__main__':
+unittest.main(defaultTest='test_suite')

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/ticket/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/ticket/__init__.py?rev=1573278r1=1573277r2=1573278view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/ticket/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/ticket/__init__.py Sun Mar  
2 10:31:18 2014
@@ -17,9 +17,13 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Tests for Apache(TM) Bloodhound's tickets in product environments
-
+import unittest
 from tests import TestLoader
 
+
 def test_suite():
-return TestLoader().discover_package(__name__, pattern='*.py')
+return TestLoader().discover_package(__package__, pattern='*.py')
+
+
+if __name__ == '__main__':
+unittest.main(defaultTest='test_suite')

Modified: 
bloodhound/trunk/bloodhound_multiproduct/tests/versioncontrol/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/versioncontrol/__init__.py?rev=1573278r1=1573277r2=1573278view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/versioncontrol/__init__.py 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/versioncontrol/__init__.py 
Sun Mar  2 10:31:18 2014
@@ -17,9 +17,13 @@
 #  specific language governing permissions and limitations

svn commit: r1573456 - /bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js

2014-03-02 Thread rjollos
Author: rjollos
Date: Mon Mar  3 06:30:20 2014
New Revision: 1573456

URL: http://svn.apache.org/r1573456
Log:
0.8dev: Reformat file to fix style and indentation.

Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js

Modified: bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js?rev=1573456r1=1573455r2=1573456view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js (original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js Mon Mar  3 
06:30:20 2014
@@ -1,286 +1,289 @@
 /*
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  License); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-*/
-
-$( function () {
-var qct_result = {};
-var qct_timeout = null;
-var grayed_out_controls = '#content, [role*=application], #vc-summary, 
#inplace-propertyform, #attachments, .activityfeed, #help';
-
-
-// Do not close dropdown menu if user interacts with form controls
-$('.dropdown-menu input, .dropdown-menu label, .dropdown-menu select' +
-', .dropdown-menu textarea').click(function (e) { e.stopPropagation(); 
});
-
-function qct_inline_close()
-{
-  $(grayed_out_controls).css('opacity', '');
-  $('form:not(#qct-inline-form) :input').removeAttr('disabled');
-  if ($('#qct-inline').is(':visible'))
-  {
-$('#qct-inline').hide({'duration': 400});
-  }
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ License); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+$(function() {
+  var qct_result = {};
+  var qct_timeout = null;
+  var grayed_out_controls = '#content, [role*=application], #vc-summary, 
#inplace-propertyform, #attachments, .activityfeed, #help';
+
+
+  // Do not close dropdown menu if user interacts with form controls
+  $('.dropdown-menu input, .dropdown-menu label, .dropdown-menu select' +
+', .dropdown-menu textarea').click(function(e) {
+e.stopPropagation();
+  });
+
+  function qct_inline_close() {
+$(grayed_out_controls).css('opacity', '');
+$('form:not(#qct-inline-form) :input').removeAttr('disabled');
+if ($('#qct-inline').is(':visible')) {
+  $('#qct-inline').hide({'duration': 400});
 }
+  }
 
-// If the window is resized, close the inline form + re-enable
-// all other forms to prevent undesirable behaviour. For example,
-// resizing the window to a -desktop size when inline form is
-// shown would result in the form disappearing (ok), but all other
-// forms would still be disabled (not ok).
-// NOTE - currently disabled due to certain phones resizing the
-// window when the form controls are focused (e.g. input)
-/*
-$(window).resize(function() {
-  qct_inline_close();
-});
-*/
+  // If the window is resized, close the inline form + re-enable
+  // all other forms to prevent undesirable behaviour. For example,
+  // resizing the window to a -desktop size when inline form is
+  // shown would result in the form disappearing (ok), but all other
+  // forms would still be disabled (not ok).
+  // NOTE - currently disabled due to certain phones resizing the
+  // window when the form controls are focused (e.g. input)
+  /*
+   $(window).resize(function() {
+   qct_inline_close();
+   });
+   */
+
+  function checkSelections() {
+return $.inArray('', $('#qct-box 
select[data-optional=false]').map(function() {
+  return $(this).val();
+})) == -1;
+  }
 
-function checkSelections

svn commit: r1573459 - in /bloodhound/trunk/bloodhound_theme/bhtheme: htdocs/bloodhound.css templates/bloodhound_theme.html theme.py

2014-03-02 Thread rjollos
Author: rjollos
Date: Mon Mar  3 07:07:53 2014
New Revision: 1573459

URL: http://svn.apache.org/r1573459
Log:
0.8dev: Fixed regression in r1570616: the product at scope is no longer the 
default selection. Refs #727.

The code in `theme.py` was also refactored to simplify preparation of the 
`options` dictionary.

Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html
bloodhound/trunk/bloodhound_theme/bhtheme/theme.py

Modified: bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css?rev=1573459r1=1573458r2=1573459view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css (original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css Mon Mar  3 
07:07:53 2014
@@ -343,7 +343,7 @@ ol.arabic { list-style-type: decimal
  margin-bottom: 5px;
 }
 #qct-more {
-visibility: hidden;
+ visibility: hidden;
 }
 
 /*

Modified: 
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html?rev=1573459r1=1573458r2=1573459view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html 
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html 
Mon Mar  3 07:07:53 2014
@@ -117,13 +117,15 @@
   !--! create ticket button + dropdown --
   py:def function=field_select(field)
 select id=field-${field.name} name=field_${field.name}
-class=input-block-level data-field=${field.name} 
data-optional=${'true' if field.optional else 'false'}
+class=input-block-level data-field=${field.name}
+data-optional=${'true' if field.optional else 
'false'}
   option value=${'' if field.optional else 
'Choose...'}/option
-  option py:for=idx,option in enumerate(field.options)
-  py:with=description = field.options_desc[idx] if 
field.options_desc else option
-  selected=${field.value == option or None}
-  value = ${option.value}
-  data-product-new-ticket-url = 
${option.product_new_ticket_url}
+  option py:for=option in field.options
+  py:with=description = option.description or option;
+   value = option.value or option
+  selected=${field.value == value or None}
+  value = $value
+  data-product-new-ticket-url = 
$option.new_ticket_url
   py:content=description/option
   optgroup py:for=optgroup in field.optgroups
 py:if=optgroup.options

Modified: bloodhound/trunk/bloodhound_theme/bhtheme/theme.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/theme.py?rev=1573459r1=1573458r2=1573459view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/theme.py (original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/theme.py Mon Mar  3 07:07:53 2014
@@ -47,7 +47,6 @@ from bhdashboard.web_ui import Dashboard
 from bhdashboard import wiki
 
 from multiproduct.env import ProductEnvironment
-from multiproduct.model import Product
 from multiproduct.web_ui import PRODUCT_RE, ProductModule
 from bhtheme.translation import _, add_domain
 
@@ -532,7 +531,7 @@ class QuickCreateTicketDialog(Component)
 locale_dir = pkg_resources.resource_filename(__name__, 'locale')
 add_domain(self.env.path, locale_dir)
 super(QuickCreateTicketDialog, self).__init__(*args, **kwargs)
-
+
 # IRequestFilter(Interface):
 
 def pre_process_request(self, req, handler):
@@ -556,26 +555,31 @@ class QuickCreateTicketDialog(Component)
 dum_req.perm = req.perm
 ticket = Ticket(self.env)
 tm._populate(dum_req, ticket, False)
-all_fields = dict([f['name'], 
self.add_prod_new_ticket_url(dum_req, f)]
+all_fields = dict([f['name'], f]
   for f in tm._prepare_fields(dum_req, ticket)
   if f['type'] == 'select')
 
 product_field = all_fields.get('product')
 if product_field:
-# Filter out products for which user doesn't have TICKET_CREATE
-product_field['options'] = \
-[prefix for prefix in product_field['options

svn commit: r1572372 - in /bloodhound/trunk/bloodhound_multiproduct/tests/admin: console-tests.txt console.py

2014-02-26 Thread rjollos
Author: rjollos
Date: Thu Feb 27 01:14:18 2014
New Revision: 1572372

URL: http://svn.apache.org/r1572372
Log:
0.8dev: Added tests for help command at product scope. Refs #757.

Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt
bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt?rev=1572372r1=1572371r2=1572372view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt Thu 
Feb 27 01:14:18 2014
@@ -1022,3 +1022,108 @@ name17  0 2010-01-18  val17  val17
 name18  0 2010-01-19  val18  val18
 name19  0 2010-01-20  val19  val19
 
+= test_product_help_ok =
+trac-admin - The Trac Administration Console 1.0.1
+help Show documentation
+initenv  Create and initialize a new environment
+attachment add   Attach a file to a resource
+attachment exportExport an attachment from a resource to a file or stdout
+attachment list  List attachments of a resource
+attachment removeRemove an attachment from a resource
+changeset added  Notify trac about changesets added to a repository
+changeset modified   Notify trac about changesets modified in a repository
+component addAdd a new component
+component chown  Change component ownership
+component list   Show available components
+component remove Remove/uninstall a component
+component rename Rename a component
+config get   Get the value of the given option in trac.ini
+config removeRemove the specified option from trac.ini
+config set   Set the value for the given option in trac.ini
+deploy   Extract static resources from Trac and all plugins
+hotcopy  Make a hot backup copy of an environment
+milestone addAdd milestone
+milestone completed  Set milestone complete date
+milestone dueSet milestone due date
+milestone list   Show milestones
+milestone remove Remove milestone
+milestone rename Rename milestone
+permission add   Add a new permission rule
+permission exportExport permission rules to a file or stdout as CSV
+permission importImport permission rules from a file or stdin as CSV
+permission list  List permission rules
+permission removeRemove a permission rule
+priority add Add a priority value option
+priority change  Change a priority value
+priority listShow possible ticket priorities
+priority order   Move a priority value up or down in the list
+priority remove  Remove a priority value
+repository add   Add a source repository
+repository alias Create an alias for a repository
+repository list  List source repositories
+repository removeRemove a source repository
+repository resyncRe-synchronize trac with repositories
+repository set   Set an attribute of a repository
+repository sync  Resume synchronization of repositories
+resolution add   Add a resolution value option
+resolution changeChange a resolution value
+resolution list  Show possible ticket resolutions
+resolution order Move a resolution value up or down in the list
+resolution removeRemove a resolution value
+session add  Create a session for the given sid
+session delete   Delete the session of the specified sid
+session list List the name and email for the given sids
+session purgePurge all anonymous sessions older than the given age
+session set  Set the name or email attribute of the given sid
+severity add Add a severity value option
+severity change  Change a severity value
+severity listShow possible ticket severities
+severity order   Move a severity value up or down in the list
+severity remove  Remove a severity value
+ticket removeRemove ticket
+ticket_type add  Add a ticket type
+ticket_type change   Change a ticket type
+ticket_type list Show possible ticket types
+ticket_type orderMove a ticket type up or down in the list
+ticket_type remove   Remove a ticket type
+upgrade  Upgrade database to current version
+version add  Add version
+version list Show versions
+version remove   Remove version
+version rename   Rename version
+version time Set version date
+wiki dumpExport wiki pages to files named by title
+wiki export  Export wiki page to file or stdout
+wiki import  Import wiki page from file or stdin
+wiki listList wiki pages
+wiki loadImport wiki pages from files
+wiki remove  Remove wiki page
+wiki rename

svn commit: r1572373 - /bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py

2014-02-26 Thread rjollos
Author: rjollos
Date: Thu Feb 27 01:15:23 2014
New Revision: 1572373

URL: http://svn.apache.org/r1572373
Log:
0.8dev: Fix for help commands at product scope not being output. Refs #757.

Patch by Olemis Lang.

Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py?rev=1572373r1=1572372r2=1572373view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py Thu 
Feb 27 01:15:23 2014
@@ -301,7 +301,7 @@ class ProductAdminModule(Component):
 mgr = self.product_admincmd_mgr(args[0])
 return mgr.complete_command(args[1:])
 
-GLOBAL_COMMANDS = ('deploy', 'help', 'hotcopy', 'initenv', 'upgrade')
+GLOBAL_COMMANDS = ('deploy', 'hotcopy', 'initenv', 'upgrade')
 
 def _do_product_admin(self, prefix, *args):
 mgr = self.product_admincmd_mgr(prefix)




svn commit: r1572374 - in /bloodhound/trunk/bloodhound_multiproduct/tests/admin: console-tests.txt console.py

2014-02-26 Thread rjollos
Author: rjollos
Date: Thu Feb 27 01:20:23 2014
New Revision: 1572374

URL: http://svn.apache.org/r1572374
Log:
0.8dev: Added tests for output of help when `trac-admin` is called at 
product-scope with improper arguments. Refs #756.

Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt
bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt?rev=1572374r1=1572373r2=1572374view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/admin/console-tests.txt Thu 
Feb 27 01:20:23 2014
@@ -1127,3 +1127,10 @@ version add name [time]
 
 Add version
 
+= test_product_fail_version_add =
+Error: Invalid arguments
+
+version add name [time]
+
+Add version
+

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py?rev=1572374r1=1572373r2=1572374view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py Thu Feb 27 
01:20:23 2014
@@ -84,6 +84,12 @@ class ProductTracAdminTestCase(Tracadmin
 expected = self.expected_results[self._testMethodName]
 self.assertEqual(expected, output)
 
+def test_product_fail_version_add(self):
+rv, output = self._execute('version add v x y')
+self.assertEqual(2, rv)
+expected = self.expected_results[self._testMethodName]
+self.assertEqual(expected, output)
+
 
 def test_suite():
 return unittest.TestSuite([




svn commit: r1572392 - /bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

2014-02-26 Thread rjollos
Author: rjollos
Date: Thu Feb 27 01:53:35 2014
New Revision: 1572392

URL: http://svn.apache.org/r1572392
Log:
0.8dev: Removed unused imports.

Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py?rev=1572392r1=1572391r2=1572392view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py Thu Feb 27 
01:53:35 2014
@@ -22,10 +22,8 @@
 import os.path
 import sys
 import unittest
-from StringIO import StringIO
 
-from trac.admin.tests.console import STRIP_TRAILING_SPACE, \
- TracadminTestCase, load_expected_results
+from trac.admin.tests.console import TracadminTestCase, load_expected_results
 
 from multiproduct.env import ProductEnvironment
 from tests.env import MultiproductTestCase
@@ -94,7 +92,7 @@ class ProductTracAdminTestCase(Tracadmin
 def test_suite():
 return unittest.TestSuite([
 unittest.makeSuite(ProductTracAdminTestCase),
-])
+])
 
 
 if __name__ == '__main__':




svn commit: r1571311 - in /bloodhound/trunk: bloodhound_multiproduct/multiproduct/locale/ bloodhound_multiproduct/multiproduct/locale/es/LC_MESSAGES/ bloodhound_multiproduct/multiproduct/locale/fr/LC_

2014-02-24 Thread rjollos
Author: rjollos
Date: Mon Feb 24 15:06:27 2014
New Revision: 1571311

URL: http://svn.apache.org/r1571311
Log:
0.8dev: Added license headers to l10n files. Refs #694, #763.

Modified:

bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/es/LC_MESSAGES/multiproduct.po

bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/fr/LC_MESSAGES/multiproduct.po
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/messages.pot

bloodhound/trunk/bloodhound_relations/bhrelations/locale/es/LC_MESSAGES/bhrelations.po

bloodhound/trunk/bloodhound_relations/bhrelations/locale/fr/LC_MESSAGES/bhrelations.po
bloodhound/trunk/bloodhound_relations/bhrelations/locale/messages.pot

bloodhound/trunk/bloodhound_search/bhsearch/locale/es/LC_MESSAGES/bhsearch.po

bloodhound/trunk/bloodhound_search/bhsearch/locale/fr/LC_MESSAGES/bhsearch.po
bloodhound/trunk/bloodhound_search/bhsearch/locale/messages.pot

bloodhound/trunk/bloodhound_theme/bhtheme/locale/es/LC_MESSAGES/bhtheme-js.po
bloodhound/trunk/bloodhound_theme/bhtheme/locale/es/LC_MESSAGES/bhtheme.po

bloodhound/trunk/bloodhound_theme/bhtheme/locale/fr/LC_MESSAGES/bhtheme-js.po
bloodhound/trunk/bloodhound_theme/bhtheme/locale/fr/LC_MESSAGES/bhtheme.po
bloodhound/trunk/bloodhound_theme/bhtheme/locale/messages-js.pot
bloodhound/trunk/bloodhound_theme/bhtheme/locale/messages.pot
bloodhound/trunk/bloodhound_theme/messages-js.cfg

Modified: 
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/es/LC_MESSAGES/multiproduct.po
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/es/LC_MESSAGES/multiproduct.po?rev=1571311r1=1571310r2=1571311view=diff
==
--- 
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/es/LC_MESSAGES/multiproduct.po
 (original)
+++ 
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/es/LC_MESSAGES/multiproduct.po
 Mon Feb 24 15:06:27 2014
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  License); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # Spanish translations for BloodhoundMultiProduct.
 # Copyright (C) 2013 Apache Software Foundation
 # This file is distributed under the same license as the Apache(TM)

Modified: 
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/fr/LC_MESSAGES/multiproduct.po
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/fr/LC_MESSAGES/multiproduct.po?rev=1571311r1=1571310r2=1571311view=diff
==
--- 
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/fr/LC_MESSAGES/multiproduct.po
 (original)
+++ 
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/fr/LC_MESSAGES/multiproduct.po
 Mon Feb 24 15:06:27 2014
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  License); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # Translations template for BloodhoundMultiProduct.
 # Copyright (C) 2014 ORGANIZATION
 # This file is distributed under the same license as the 
BloodhoundMultiProduct project.

Modified: 
bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/messages.pot
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/locale/messages.pot?rev=1571311r1=1571310r2=1571311view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct

svn commit: r1571328 - /bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

2014-02-24 Thread rjollos
Author: rjollos
Date: Mon Feb 24 16:10:52 2014
New Revision: 1571328

URL: http://svn.apache.org/r1571328
Log:
0.8dev: PEP-0008 changes.

Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py?rev=1571328r1=1571327r2=1571328view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py Mon Feb 24 
16:10:52 2014
@@ -21,16 +21,17 @@
 
 import os.path
 import sys
-from StringIO import StringIO
 import unittest
+from StringIO import StringIO
 
-from trac.admin.tests.console import load_expected_results, \
-STRIP_TRAILING_SPACE, TracadminTestCase
+from trac.admin.tests.console import STRIP_TRAILING_SPACE, \
+ TracadminTestCase, load_expected_results
 
 from multiproduct.env import ProductEnvironment
 from tests.env import MultiproductTestCase
 
-class ProductTracadminTestCase(TracadminTestCase, MultiproductTestCase):
+
+class ProductTracAdminTestCase(TracadminTestCase, MultiproductTestCase):
 
 expected_results = load_expected_results(
 os.path.join(os.path.split(__file__)[0], 'console-tests.txt'),
@@ -43,12 +44,12 @@ class ProductTracadminTestCase(Tracadmin
 self.global_env = self._setup_test_env(
 enable=('trac.*', 'multiproduct.*'),
 disable=('trac.tests.*',),
-)
+)
 self._upgrade_mp(self.global_env)
 self._setup_test_log(self.global_env)
 self._load_product_from_data(self.global_env, self.default_product)
-self._env = env = ProductEnvironment(
-self.global_env, self.default_product)
+self._env = env = ProductEnvironment(self.global_env,
+ self.default_product)
 self._load_default_data(env)
 return env
 
@@ -92,8 +93,9 @@ class ProductTracadminTestCase(Tracadmin
 
 def test_suite():
 return unittest.TestSuite([
-unittest.makeSuite(ProductTracadminTestCase,'test'),
+unittest.makeSuite(ProductTracAdminTestCase),
 ])
 
+
 if __name__ == '__main__':
 unittest.main(defaultTest='test_suite')




svn commit: r1571341 - in /bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale: es/LC_MESSAGES/bhdashboard.po fr/LC_MESSAGES/bhdashboard.po messages.pot

2014-02-24 Thread rjollos
Author: rjollos
Date: Mon Feb 24 16:33:54 2014
New Revision: 1571341

URL: http://svn.apache.org/r1571341
Log:
0.8dev: Files that should have been included in r1571311. Refs #694.

Modified:

bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/es/LC_MESSAGES/bhdashboard.po

bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/fr/LC_MESSAGES/bhdashboard.po
bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/messages.pot

Modified: 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/es/LC_MESSAGES/bhdashboard.po
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/es/LC_MESSAGES/bhdashboard.po?rev=1571341r1=1571340r2=1571341view=diff
==
--- 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/es/LC_MESSAGES/bhdashboard.po
 (original)
+++ 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/es/LC_MESSAGES/bhdashboard.po
 Mon Feb 24 16:33:54 2014
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  License); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # Translations template for BloodhoundDashboardPlugin.
 # Copyright (C) 2014 ORGANIZATION
 # This file is distributed under the same license as the 
BloodhoundDashboardPlugin project.

Modified: 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/fr/LC_MESSAGES/bhdashboard.po
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/fr/LC_MESSAGES/bhdashboard.po?rev=1571341r1=1571340r2=1571341view=diff
==
--- 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/fr/LC_MESSAGES/bhdashboard.po
 (original)
+++ 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/fr/LC_MESSAGES/bhdashboard.po
 Mon Feb 24 16:33:54 2014
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  License); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # Translations template for BloodhoundDashboardPlugin.
 # Copyright (C) 2014 ORGANIZATION
 # This file is distributed under the same license as the 
BloodhoundDashboardPlugin project.

Modified: bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/messages.pot
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/messages.pot?rev=1571341r1=1571340r2=1571341view=diff
==
--- bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/messages.pot 
(original)
+++ bloodhound/trunk/bloodhound_dashboard/bhdashboard/locale/messages.pot Mon 
Feb 24 16:33:54 2014
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  License); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # Translations template for BloodhoundDashboardPlugin.
 # Copyright (C

svn commit: r1571498 - /bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

2014-02-24 Thread rjollos
Author: rjollos
Date: Tue Feb 25 00:16:54 2014
New Revision: 1571498

URL: http://svn.apache.org/r1571498
Log:
0.8dev: Removed `_execute` method from `ProductTracAdminTestCase`. Refs #768.

The base class method will be called instead.

Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py

Modified: bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py?rev=1571498r1=1571497r2=1571498view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/admin/console.py Tue Feb 25 
00:16:54 2014
@@ -61,35 +61,6 @@ class ProductTracAdminTestCase(Tracadmin
 self.global_env.reset_db()
 self.global_env = self._env = None
 
-def _execute(self, cmd, strip_trailing_space=True, input=None):
-_in = sys.stdin
-_err = sys.stderr
-_out = sys.stdout
-try:
-if input:
-sys.stdin = StringIO(input.encode('utf-8'))
-sys.stdin.encoding = 'utf-8' # fake input encoding
-sys.stderr = sys.stdout = out = StringIO()
-out.encoding = 'utf-8' # fake output encoding
-retval = None
-try:
-retval = self._admin.onecmd(cmd)
-except SystemExit:
-pass
-value = out.getvalue()
-if isinstance(value, str): # reverse what print_listing did
-value = value.decode('utf-8')
-if retval != 0:
-self.env.log.debug('trac-admin failure: %s', value)
-if strip_trailing_space:
-return retval, STRIP_TRAILING_SPACE.sub('', value)
-else:
-return retval, value
-finally:
-sys.stdin = _in
-sys.stderr = _err
-sys.stdout = _out
-
 
 def test_suite():
 return unittest.TestSuite([




svn commit: r1570407 - /bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html

2014-02-20 Thread rjollos
Author: rjollos
Date: Fri Feb 21 01:05:39 2014
New Revision: 1570407

URL: http://svn.apache.org/r1570407
Log:
0.8dev: Removed unused variable and spurious line break.

Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html

Modified: bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html?rev=1570407r1=1570406r2=1570407view=diff
==
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html 
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html Fri Feb 
21 01:05:39 2014
@@ -70,8 +70,7 @@
 install_workflow();
 $('#edit-cancel, #edit-cancel-below').click(revert_ticket);
 
-var modify_elem = $('#modify');
-modify_elem.parent().hide();
+$('#modify').parent().hide();
 $('#propertyform .buttons [name=preview]').hide();
 $('#comment').change(function (e) {
   $('#hidden-comment').val($('#comment').val());
@@ -183,8 +182,7 @@
 var action = action_ui.find('input[name=action]').val();
 var newowner = 
action_ui.find('input[id$=_reassign_owner]').val();
 var newresolution = 
action_ui.find('select[id$=_resolution]').val();
-var newlabel = action_ui.find('label[for^=action_]')
-.text();
+var newlabel = action_ui.find('label[for^=action_]').text();
 if (action === 'leave')
   newlabel = newlabel + ' as ' + $('#vc-status a').text();
 else if (newowner)




svn commit: r1570414 - /bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/batch.py

2014-02-20 Thread rjollos
Author: rjollos
Date: Fri Feb 21 02:00:48 2014
New Revision: 1570414

URL: http://svn.apache.org/r1570414
Log:
0.8dev: PEP-0008 whitespace changes.

Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/batch.py

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/batch.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/batch.py?rev=1570414r1=1570413r2=1570414view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/batch.py 
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/batch.py Fri 
Feb 21 02:00:48 2014
@@ -24,10 +24,11 @@ from multiproduct.util.translation impor
 
 
 class ProductBatchModifyModule(BatchModifyModule):
+
 def add_template_data(self, req, data, tickets):
 if isinstance(self.env, ProductEnvironment):
-super(ProductBatchModifyModule, self).add_template_data(
-req, data, tickets)
+super(ProductBatchModifyModule, self).add_template_data(req, data,
+tickets)
 return
 
 data['batch_modify'] = True
@@ -40,12 +41,13 @@ class ProductBatchModifyModule(BatchModi
 data['action_controls'] = []
 global_env = ProductEnvironment.lookup_global_env(self.env)
 cache = {}
-for k,v in tickets_by_product.iteritems():
-batchmdl = cache.get(k or '')
-if batchmdl is None:
+for k, v in tickets_by_product.iteritems():
+batch_module = cache.get(k or '')
+if batch_module is None:
 env = ProductEnvironment(global_env, k) if k else global_env
-cache[k] = batchmdl = ProductBatchModifyModule(env)
-data['action_controls'] += batchmdl._get_action_controls(req, v)
+cache[k] = batch_module = ProductBatchModifyModule(env)
+data['action_controls'] += batch_module._get_action_controls(req,
+ v)
 batch_list_modes = [
 {'name': _(add), 'value': +},
 {'name': _(remove), 'value': -},
@@ -53,7 +55,7 @@ class ProductBatchModifyModule(BatchModi
 {'name': _(set to), 'value': =},
 ]
 add_script_data(req, batch_list_modes=batch_list_modes,
- batch_list_properties=self._get_list_fields())
+batch_list_properties=self._get_list_fields())
 
 import trac.ticket.batch
 trac.ticket.batch.BatchModifyModule = ProductBatchModifyModule




svn commit: r1570461 [2/2] - in /bloodhound/trunk: bloodhound_dashboard/ bloodhound_dashboard/bhdashboard/ bloodhound_dashboard/bhdashboard/layouts/ bloodhound_dashboard/bhdashboard/util/ bloodhound_d

2014-02-20 Thread rjollos
Modified: bloodhound/trunk/bloodhound_theme/setup.cfg
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/setup.cfg?rev=1570461r1=1570460r2=1570461view=diff
==
--- bloodhound/trunk/bloodhound_theme/setup.cfg (original)
+++ bloodhound/trunk/bloodhound_theme/setup.cfg Fri Feb 21 06:12:41 2014
@@ -25,8 +25,7 @@ formats = gztar,bztar,ztar,tar,zip
 
 [extract_messages]
 add_comments = TRANSLATOR:
-copyright_holder = Apache Software Foundation
-msgid_bugs_address = d...@bloodhound.apache.org
+msgid_bugs_address =
 output_file = bhtheme/locale/messages.pot
 keywords = _ ngettext:1,2 N_ tag_ tagn_:1,2 Option:4 BoolOption:4 IntOption:4 
ListOption:6 ExtensionOption:5 PathOption:4
 no-wrap = true

Modified: bloodhound/trunk/installer/bloodhound_setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/bloodhound_setup.py?rev=1570461r1=1570460r2=1570461view=diff
==
--- bloodhound/trunk/installer/bloodhound_setup.py (original)
+++ bloodhound/trunk/installer/bloodhound_setup.py Fri Feb 21 06:12:41 2014
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-
+#
 #  Licensed to the Apache Software Foundation (ASF) under one
 #  or more contributor license agreements.  See the NOTICE file
 #  distributed with this work for additional information

Modified: bloodhound/trunk/installer/createdigest.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/createdigest.py?rev=1570461r1=1570460r2=1570461view=diff
==
--- bloodhound/trunk/installer/createdigest.py (original)
+++ bloodhound/trunk/installer/createdigest.py Fri Feb 21 06:12:41 2014
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-
+#
 #  Licensed to the Apache Software Foundation (ASF) under one
 #  or more contributor license agreements.  See the NOTICE file
 #  distributed with this work for additional information

Modified: bloodhound/trunk/installer/tests.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/installer/tests.py?rev=1570461r1=1570460r2=1570461view=diff
==
--- bloodhound/trunk/installer/tests.py (original)
+++ bloodhound/trunk/installer/tests.py Fri Feb 21 06:12:41 2014
@@ -1,3 +1,5 @@
+# -*- coding: utf-8 -*-
+#
 #  Licensed to the Apache Software Foundation (ASF) under one
 #  or more contributor license agreements.  See the NOTICE file
 #  distributed with this work for additional information




svn commit: r1567988 - /bloodhound/branches/trac-1.0-stable-integration/

2014-02-13 Thread rjollos
Author: rjollos
Date: Thu Feb 13 17:57:01 2014
New Revision: 1567988

URL: http://svn.apache.org/r1567988
Log:
Created branch for integrating changes from Trac 1.0-stable. Refs #660.

Added:
bloodhound/branches/trac-1.0-stable-integration/   (props changed)
  - copied from r1567987, bloodhound/trunk/

Propchange: bloodhound/branches/trac-1.0-stable-integration/
--
--- svn:auto-props (added)
+++ svn:auto-props Thu Feb 13 17:57:01 2014
@@ -0,0 +1,5 @@
+*.html = svn:eol-style=native
+*.js = svn:eol-style=native
+*.css = svn:eol-style=native
+*.py = svn:eol-style=native
+*.xml = svn:eol-style=native

Propchange: bloodhound/branches/trac-1.0-stable-integration/
--
--- svn:ignore (added)
+++ svn:ignore Thu Feb 13 17:57:01 2014
@@ -0,0 +1,7 @@
+*.DS_Store
+.idea
+.project
+.pydevproject
+.git
+.gitignore
+.hg

Propchange: bloodhound/branches/trac-1.0-stable-integration/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Feb 13 17:57:01 2014
@@ -0,0 +1,3 @@
+/bloodhound/branches/bep_0003_multiproduct:1461360-1463488
+/bloodhound/branches/bep_0010_ticket_numbering:1506462-1517786
+/incubator/bloodhound/branches/bep_0003_multiproduct:1420073-1461359




svn commit: r1568172 - in /bloodhound/trunk/trac/trac: ticket/query.py util/introspection.py util/tests/introspection.py

2014-02-13 Thread rjollos
Author: rjollos
Date: Fri Feb 14 00:09:21 2014
New Revision: 1568172

URL: http://svn.apache.org/r1568172
Log:
0.8dev: Reverse merge [1301696]. Equivalent changes will be implemented in 
`multiproduct.ticket.web_ui:ProductQueryModule`.

Removed:
bloodhound/trunk/trac/trac/util/introspection.py
bloodhound/trunk/trac/trac/util/tests/introspection.py
Modified:
bloodhound/trunk/trac/trac/ticket/query.py

Modified: bloodhound/trunk/trac/trac/ticket/query.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/trac/trac/ticket/query.py?rev=1568172r1=1568171r2=1568172view=diff
==
--- bloodhound/trunk/trac/trac/ticket/query.py (original)
+++ bloodhound/trunk/trac/trac/ticket/query.py Fri Feb 14 00:09:21 2014
@@ -40,7 +40,6 @@ from trac.util.datefmt import format_dat
 from trac.util.presentation import Paginator
 from trac.util.text import empty, shorten_line, quote_query_string
 from trac.util.translation import _, tag_, cleandoc_
-from trac.util.introspection import get_enabled_component_subclass
 from trac.web import arg_list_to_args, parse_arg_list, IRequestHandler
 from trac.web.href import Href
 from trac.web.chrome import (INavigationContributor, Chrome,
@@ -873,7 +872,7 @@ class QueryModule(Component):
 def get_navigation_items(self, req):
 from trac.ticket.report import ReportModule
 if 'TICKET_VIEW' in req.perm and \
-get_enabled_component_subclass(self.env, ReportModule) is None:
+not self.env.is_component_enabled(ReportModule):
 yield ('mainnav', 'tickets',
tag.a(_('View Tickets'), href=req.href.query()))
 




svn commit: r1568197 - in /bloodhound/trunk: bloodhound_dashboard/bhdashboard/templates/ bloodhound_multiproduct/ bloodhound_multiproduct/multiproduct/ bloodhound_multiproduct/multiproduct/templates/

2014-02-13 Thread rjollos
Author: rjollos
Date: Fri Feb 14 04:21:59 2014
New Revision: 1568197

URL: http://svn.apache.org/r1568197
Log:
0.8dev: Normalized license headers. Prevent rendering license headers in 
templates.

Modified:

bloodhound/trunk/bloodhound_dashboard/bhdashboard/templates/bh_model_view.html
bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/config.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/core.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/dbcursor.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/env.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/hooks.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/model.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/perm.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py

bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/admin_products.html

bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/repository_links.html
bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/__init__.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/batch.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/query.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/web_ui.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/util.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/versioncontrol.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/web_ui.py
bloodhound/trunk/bloodhound_multiproduct/setup.py
bloodhound/trunk/bloodhound_search/bhsearch/templates/bhsearch.html

bloodhound/trunk/bloodhound_search/bhsearch/templates/bhsearch_breadcrumbs.html

Modified: 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/templates/bh_model_view.html
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/bhdashboard/templates/bh_model_view.html?rev=1568197r1=1568196r2=1568197view=diff
==
--- 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/templates/bh_model_view.html 
(original)
+++ 
bloodhound/trunk/bloodhound_dashboard/bhdashboard/templates/bh_model_view.html 
Fri Feb 14 04:21:59 2014
@@ -1,7 +1,3 @@
-!DOCTYPE html
-PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
-http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;
-
 !--!
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
@@ -21,6 +17,9 @@
   under the License.
 --
 
+!DOCTYPE html
+PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
+http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd;
 div xmlns=http://www.w3.org/1999/xhtml;
   xmlns:py=http://genshi.edgewall.org/;
   xmlns:i18n=http://genshi.edgewall.org/i18n;

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py?rev=1568197r1=1568196r2=1568197view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py Fri Feb 
14 04:21:59 2014
@@ -1,4 +1,5 @@
-
+# -*- coding: UTF-8 -*-
+#
 #  Licensed to the Apache Software Foundation (ASF) under one
 #  or more contributor license agreements.  See the NOTICE file
 #  distributed with this work for additional information
@@ -16,8 +17,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-multiproduct module
+import multiproduct.ticket
 from multiproduct.api import MultiProductSystem
 from multiproduct.product_admin import ProductAdminPanel
-import multiproduct.ticket
 from multiproduct.web_ui import ProductModule

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py?rev=1568197r1=1568196r2=1568197view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/api.py Fri Feb 14 
04:21:59 2014
@@ -1,4 +1,5 @@
-
+# -*- coding: UTF-8 -*-
+#
 #  Licensed to the Apache Software Foundation (ASF) under one
 #  or more contributor license agreements.  See the NOTICE file
 #  distributed with this work for additional information
@@ -16,8 +17,6 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-Core components to support multi-product
-
 import copy
 import os
 import shutil

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/config.py
URL: 
http://svn.apache.org/viewvc

svn commit: r1568199 - /bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py

2014-02-13 Thread rjollos
Author: rjollos
Date: Fri Feb 14 04:52:43 2014
New Revision: 1568199

URL: http://svn.apache.org/r1568199
Log:
0.8dev: Fixed import issue introduced in [1568197].

Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py

Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py
URL: 
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py?rev=1568199r1=1568198r2=1568199view=diff
==
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/__init__.py Fri Feb 
14 04:52:43 2014
@@ -17,7 +17,7 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-import multiproduct.ticket
 from multiproduct.api import MultiProductSystem
 from multiproduct.product_admin import ProductAdminPanel
+from multiproduct.ticket import *
 from multiproduct.web_ui import ProductModule




  1   2   3   >