You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by tv...@apache.org on 2013/08/06 21:06:48 UTC
[1/3] git commit: [#6480] Remove whitespace from shortname;
use autofocus
Updated Branches:
refs/heads/tv/6480 c09406972 -> 5edc16d41
[#6480] Remove whitespace from shortname; use autofocus
Signed-off-by: Tim Van Steenburgh <tv...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/eb38feda
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/eb38feda
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/eb38feda
Branch: refs/heads/tv/6480
Commit: eb38fedafe599f234092e9ee671b6f1317e167a6
Parents: c094069
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Mon Aug 5 19:30:50 2013 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Mon Aug 5 19:30:50 2013 +0000
----------------------------------------------------------------------
ForgeImporters/forgeimporters/google/templates/project.html | 2 +-
ForgeImporters/forgeimporters/templates/project_base.html | 4 ++--
ForgeImporters/forgeimporters/trac/templates/project.html | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/eb38feda/ForgeImporters/forgeimporters/google/templates/project.html
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/templates/project.html b/ForgeImporters/forgeimporters/google/templates/project.html
index 172dcf5..a2887e7 100644
--- a/ForgeImporters/forgeimporters/google/templates/project.html
+++ b/ForgeImporters/forgeimporters/google/templates/project.html
@@ -23,7 +23,7 @@
<label>Google Project Name</label>
</div>
<div class="grid-10">
- <input id="project_name" name="project_name" value="{{c.form_values['project_name']}}"/>
+ <input id="project_name" name="project_name" value="{{c.form_values['project_name']}}" autofocus/>
<div id="project_name_error" class="error{% if not c.form_errors['project_name'] %} hidden{% endif %}">
{{c.form_errors['project_name']}}
</div>
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/eb38feda/ForgeImporters/forgeimporters/templates/project_base.html
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/templates/project_base.html b/ForgeImporters/forgeimporters/templates/project_base.html
index d4db30e..6f1b683 100644
--- a/ForgeImporters/forgeimporters/templates/project_base.html
+++ b/ForgeImporters/forgeimporters/templates/project_base.html
@@ -47,7 +47,7 @@
function suggest_name() {
var $project_shortname = $('#project_shortname');
if (!manual) {
- $project_shortname.val($('#project_name').val());
+ $project_shortname.val($('#project_name').val().replace(/\s/g, '').toLowerCase());
}
$project_shortname.trigger('change');
}
@@ -72,7 +72,7 @@
}
$(function() {
- $('#project_name').focus().bind('change keyup', suggest_name);
+ $('#project_name').bind('change keyup', suggest_name);
$('#project_shortname').bind('change keyup', function(event) {
if (event.type == 'keyup') {
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/eb38feda/ForgeImporters/forgeimporters/trac/templates/project.html
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/trac/templates/project.html b/ForgeImporters/forgeimporters/trac/templates/project.html
index abcfb48..869e290 100644
--- a/ForgeImporters/forgeimporters/trac/templates/project.html
+++ b/ForgeImporters/forgeimporters/trac/templates/project.html
@@ -23,7 +23,7 @@
<label>Trac URL</label>
</div>
<div class="grid-10">
- <input id="trac_url" name="trac_url" value="{{c.form_values['trac_url']}}"/>
+ <input id="trac_url" name="trac_url" value="{{c.form_values['trac_url']}}" autofocus/>
<div id="trac_ur_errorl" class="error{% if not c.form_errors['trac_url'] %} hidden{% endif %}">
{{c.form_errors['trac_url']}}
</div>
[2/3] git commit: [#6480] TracExport bug fixes
Posted by tv...@apache.org.
[#6480] TracExport bug fixes
- Pass in options explicitly instead of attempting to read from a
non-existent global object.
- Improve logging.
- Fix infinite loop bug.
Signed-off-by: Tim Van Steenburgh <tv...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/ec8deca5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/ec8deca5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/ec8deca5
Branch: refs/heads/tv/6480
Commit: ec8deca5f787193ac0ffc40a91cb085aeac62f39
Parents: eb38fed
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Tue Aug 6 18:50:46 2013 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Tue Aug 6 18:50:46 2013 +0000
----------------------------------------------------------------------
Allura/allura/scripts/trac_export.py | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ec8deca5/Allura/allura/scripts/trac_export.py
----------------------------------------------------------------------
diff --git a/Allura/allura/scripts/trac_export.py b/Allura/allura/scripts/trac_export.py
index aeb14ea..bce548e 100644
--- a/Allura/allura/scripts/trac_export.py
+++ b/Allura/allura/scripts/trac_export.py
@@ -17,7 +17,7 @@
# specific language governing permissions and limitations
# under the License.
-
+import logging
import sys
import csv
import urlparse
@@ -35,6 +35,8 @@ from BeautifulSoup import BeautifulSoup, NavigableString
import dateutil.parser
import pytz
+log = logging.getLogger(__name__)
+
def parse_options():
optparser = OptionParser(usage=''' %prog <Trac URL>
@@ -66,7 +68,7 @@ class TracExport(object):
'owner': 'assigned_to',
}
- def __init__(self, base_url, start_id=1):
+ def __init__(self, base_url, start_id=1, verbose=False, do_attachments=True):
"""start_id - start with at least that ticket number (actual returned
ticket may have higher id if we don't have access to exact
one).
@@ -78,6 +80,9 @@ class TracExport(object):
self.ticket_map = {}
self.start_id = start_id
self.page = (start_id - 1) / self.PAGE_SIZE + 1
+ self.verbose = verbose
+ self.do_attachments = do_attachments
+ self.exhausted = False
self.ticket_queue = self.next_ticket_ids()
def remap_fields(self, dict):
@@ -98,9 +103,9 @@ class TracExport(object):
glue = '&' if '?' in suburl else '?'
return url + glue + 'format=' + type
- @staticmethod
- def log_url(url):
- if options.verbose:
+ def log_url(self, url):
+ log.info(url)
+ if self.verbose:
print >>sys.stderr, url
@classmethod
@@ -198,7 +203,7 @@ class TracExport(object):
'''
t = self.parse_ticket_body(id)
t['comments'] = self.parse_ticket_comments(id)
- if options.do_attachments:
+ if self.do_attachments:
atts = self.parse_ticket_attachments(id)
if atts:
t['attachments'] = atts
@@ -230,6 +235,9 @@ class TracExport(object):
res.append((id, extra))
self.page += 1
+ if len(res) < self.PAGE_SIZE:
+ self.exhausted = True
+
return res
def __iter__(self):
@@ -238,7 +246,7 @@ class TracExport(object):
def next(self):
while True:
# queue empty, try to fetch more
- if len(self.ticket_queue) == 0:
+ if len(self.ticket_queue) == 0 and not self.exhausted:
self.ticket_queue = self.next_ticket_ids()
# there aren't any more, we're really done
if len(self.ticket_queue) == 0:
@@ -258,7 +266,8 @@ class DateJSONEncoder(json.JSONEncoder):
def main():
options, args = parse_options()
- ex = TracExport(args[0], start_id=options.start_id)
+ ex = TracExport(args[0], start_id=options.start_id,
+ verbose=options.verbose, do_attachments=options.do_attachments)
# Implement iterator sequence limiting using islice()
doc = [t for t in islice(ex, options.limit)]
[3/3] git commit: [#6480] Importer bug fixes
Posted by tv...@apache.org.
[#6480] Importer bug fixes
- Normalize trac urls
- Flush new app configs and related objects before importing artifacts
- Add options needed for WikiExporter
Signed-off-by: Tim Van Steenburgh <tv...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/5edc16d4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/5edc16d4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/5edc16d4
Branch: refs/heads/tv/6480
Commit: 5edc16d417bae3f579bd6c099e17299b9f40b80d
Parents: ec8deca
Author: Tim Van Steenburgh <tv...@gmail.com>
Authored: Tue Aug 6 18:57:37 2013 +0000
Committer: Tim Van Steenburgh <tv...@gmail.com>
Committed: Tue Aug 6 18:57:37 2013 +0000
----------------------------------------------------------------------
ForgeImporters/forgeimporters/base.py | 4 +++-
ForgeImporters/forgeimporters/google/code.py | 2 +-
ForgeImporters/forgeimporters/trac/tickets.py | 9 +++++++--
ForgeImporters/forgeimporters/trac/wiki.py | 10 +++++++++-
ForgeWiki/forgewiki/scripts/wiki_from_trac/extractors.py | 4 ++++
5 files changed, 24 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5edc16d4/ForgeImporters/forgeimporters/base.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/base.py b/ForgeImporters/forgeimporters/base.py
index 749ff68..8a619d7 100644
--- a/ForgeImporters/forgeimporters/base.py
+++ b/ForgeImporters/forgeimporters/base.py
@@ -52,7 +52,9 @@ class ProjectImportForm(schema.Schema):
@task
def import_tool(importer_name, mount_point=None, mount_label=None, **kw):
importer = ToolImporter.by_name(importer_name)
- importer.import_tool(c.project, mount_point, mount_label, **kw)
+ importer.import_tool(project=c.project, user=c.user,
+ mount_point=mount_point,
+ mount_label=mount_label, **kw)
class ProjectImporter(BaseController):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5edc16d4/ForgeImporters/forgeimporters/google/code.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/google/code.py b/ForgeImporters/forgeimporters/google/code.py
index 8e047fb..e248f10 100644
--- a/ForgeImporters/forgeimporters/google/code.py
+++ b/ForgeImporters/forgeimporters/google/code.py
@@ -100,7 +100,7 @@ class GoogleRepoImporter(ToolImporter):
tool_label = 'Google Code Source Importer'
tool_description = 'Import your SVN, Git, or Hg repo from Google Code'
- def import_tool(self, project=None, mount_point=None, mount_label=None):
+ def import_tool(self, project=None, mount_point=None, mount_label=None, **kw):
""" Import a Google Code repo into a new SVN, Git, or Hg Allura tool.
"""
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5edc16d4/ForgeImporters/forgeimporters/trac/tickets.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/trac/tickets.py b/ForgeImporters/forgeimporters/trac/tickets.py
index 969dfd2..0f13649 100644
--- a/ForgeImporters/forgeimporters/trac/tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tickets.py
@@ -24,6 +24,7 @@ import json
import formencode as fe
from formencode import validators as fev
+from ming.orm import session
from pylons import tmpl_context as c
from pylons import app_globals as g
from tg import (
@@ -84,21 +85,25 @@ class TracTicketImporter(ToolImporter):
tool_description = 'Import your tickets from Trac'
def import_tool(self, project=None, mount_point=None, mount_label=None,
- trac_url=None, user=None):
+ trac_url=None, user=None, **kw):
""" Import Trac tickets into a new Allura Tracker tool.
"""
+ trac_url = trac_url.rstrip('/') + '/'
mount_point = mount_point or 'tickets'
app = project.install_app(
'Tickets',
mount_point=mount_point,
mount_label=mount_label or 'Tickets',
)
- export = TracExport(trac_url)
+ session(app.config).flush(app.config)
+ session(app.globals).flush(app.globals)
+ export = [ticket for ticket in TracExport(trac_url)]
export_string = json.dumps(export, cls=DateJSONEncoder)
api_ticket = ApiTicket(user_id=user._id,
capabilities={"import": ["Projects", project.shortname]},
expires=datetime.utcnow() + timedelta(minutes=60))
+ session(api_ticket).flush(api_ticket)
cli = AlluraImportApiClient(config['base_url'], api_ticket.api_key,
api_ticket.secret_key, False)
import_tracker(cli, project.shortname, mount_point, {},
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5edc16d4/ForgeImporters/forgeimporters/trac/wiki.py
----------------------------------------------------------------------
diff --git a/ForgeImporters/forgeimporters/trac/wiki.py b/ForgeImporters/forgeimporters/trac/wiki.py
index 2417863..e7ead86 100644
--- a/ForgeImporters/forgeimporters/trac/wiki.py
+++ b/ForgeImporters/forgeimporters/trac/wiki.py
@@ -25,6 +25,7 @@ import tempfile
import formencode as fe
from formencode import validators as fev
+from ming.orm import session
from pylons import tmpl_context as c
from pylons import app_globals as g
from tg import (
@@ -83,25 +84,32 @@ class TracWikiImporter(ToolImporter):
tool_description = 'Import your wiki from Trac'
def import_tool(self, project=None, mount_point=None, mount_label=None,
- trac_url=None, user=None):
+ trac_url=None, user=None, **kw):
""" Import Trac wiki into a new Allura Wiki tool.
"""
+ trac_url = trac_url.rstrip('/') + '/'
mount_point = mount_point or 'wiki'
app = project.install_app(
'Wiki',
mount_point=mount_point,
mount_label=mount_label or 'Wiki',
)
+ session(app.config).flush(app.config)
api_ticket = ApiTicket(user_id=user._id,
capabilities={"import": ["Projects", project.shortname]},
expires=datetime.utcnow() + timedelta(minutes=60))
+ session(api_ticket).flush(api_ticket)
options = argparse.Namespace()
options.api_key = api_ticket.api_key
options.secret_key = api_ticket.secret_key
options.project = project.shortname
options.wiki = mount_point
options.base_url = config['base_url']
+ options.verbose = False
+ options.converter = 'html2text'
+ options.import_opts = []
+ options.user_map_file = None
with tempfile.NamedTemporaryFile() as f:
WikiExporter(trac_url, options).export(f)
f.flush()
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5edc16d4/ForgeWiki/forgewiki/scripts/wiki_from_trac/extractors.py
----------------------------------------------------------------------
diff --git a/ForgeWiki/forgewiki/scripts/wiki_from_trac/extractors.py b/ForgeWiki/forgewiki/scripts/wiki_from_trac/extractors.py
index 0038dd9..7f111d7 100644
--- a/ForgeWiki/forgewiki/scripts/wiki_from_trac/extractors.py
+++ b/ForgeWiki/forgewiki/scripts/wiki_from_trac/extractors.py
@@ -15,6 +15,7 @@
# specific language governing permissions and limitations
# under the License.
+import logging
import re
import sys
import json
@@ -36,6 +37,8 @@ except:
from BeautifulSoup import BeautifulSoup
+log = logging.getLogger(__name__)
+
class WikiExporter(object):
@@ -114,6 +117,7 @@ class WikiExporter(object):
out.write('\n')
def log(self, msg):
+ log.info(msg)
if self.options.verbose:
print >>sys.stderr, msg