| import re |
| |
| from formencode import validators as fev |
| |
| import ew as ew_core |
| import ew.jinja2_ew as ew |
| |
| from allura.lib.widgets.forms import ForgeForm |
| |
| |
| class ValidateSvnUrl(fev.URL): |
| url_re = re.compile(r''' |
| ^(http|https|svn):// |
| (?:[%:\w]*@)? # authenticator |
| (?P<domain>[a-z0-9][a-z0-9\-]{,62}\.)* # subdomain |
| (?P<tld>[a-z]{2,63}|xn--[a-z0-9\-]{2,59}) # top level domain |
| (?::[0-9]{1,5})? # port |
| # files/delims/etc |
| (?P<path>/[a-z0-9\-\._~:/\?#\[\]@!%\$&\'\(\)\*\+,;=]*)? |
| $ |
| ''', re.I | re.VERBOSE) |
| |
| |
| class ImportForm(ForgeForm): |
| submit_text = 'Import' |
| |
| class fields(ew_core.NameList): |
| checkout_url = ew.TextField( |
| label='Checkout URL', |
| validator=ValidateSvnUrl(not_empty=True), attrs=dict(size=65)) |