forked from jan/debianmemberportfolio
add support for non-url information
* add ssh commands for MIA information, owned debian.net domains and group membership * add support for specifying type of pattern
This commit is contained in:
parent
b8af34c80b
commit
2aec4f8f98
5 changed files with 55 additions and 29 deletions
|
@ -3,3 +3,5 @@
|
||||||
* add support for extra parameters forumsid and wikihomepage
|
* add support for extra parameters forumsid and wikihomepage
|
||||||
* add new patterns wiki and forum to section membership
|
* add new patterns wiki and forum to section membership
|
||||||
* update copyright information
|
* update copyright information
|
||||||
|
* add support for non-URL type information
|
||||||
|
* add ssh commands for MIA, owned debian.net-Domains and group membership
|
||||||
|
|
|
@ -100,6 +100,12 @@ developer name on all bug logs)'),
|
||||||
'website' : N_('Debian website'),
|
'website' : N_('Debian website'),
|
||||||
'search' : N_('Debian search'),
|
'search' : N_('Debian search'),
|
||||||
},
|
},
|
||||||
|
'ssh' : {
|
||||||
|
'label' : N_('Information reachable via ssh (for DDs)'),
|
||||||
|
'owndndoms' : N_('owned debian.net domains'),
|
||||||
|
'miainfo' : N_('<a href="http://wiki.debian.org/qa.debian.org/MIATeam">MIA</a> database information'),
|
||||||
|
'groupinfo' : N_('Group membership information'),
|
||||||
|
},
|
||||||
'ubuntu' : {
|
'ubuntu' : {
|
||||||
'label' : N_('Ubuntu'),
|
'label' : N_('Ubuntu'),
|
||||||
'ubuntudiff' : N_('Available patches from Ubuntu'),
|
'ubuntudiff' : N_('Available patches from Ubuntu'),
|
||||||
|
@ -165,11 +171,11 @@ developer name on all bug logs)'),
|
||||||
response.headers['Content-Type'] = 'text/javascript'
|
response.headers['Content-Type'] = 'text/javascript'
|
||||||
return simplejson.dumps(
|
return simplejson.dumps(
|
||||||
dict([("%s.%s" % \
|
dict([("%s.%s" % \
|
||||||
(entry[1], entry[2]), entry[3]) \
|
(entry[1], entry[2].name), entry[3]) \
|
||||||
for entry in data if entry[0] == 'url']))
|
for entry in data if entry[0] == 'url']))
|
||||||
for entry in data:
|
for entry in data:
|
||||||
if entry[0] in ('url', 'error'):
|
if entry[0] in ('url', 'error'):
|
||||||
entry.append(_(self._get_label(entry[1], entry[2])))
|
entry.append(_(self._get_label(entry[1], entry[2].name)))
|
||||||
elif entry[0] == 'section':
|
elif entry[0] == 'section':
|
||||||
entry.append(_(self._get_label(entry[1])))
|
entry.append(_(self._get_label(entry[1])))
|
||||||
c.urldata = data
|
c.urldata = data
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
keyring.dir=~/debian/keyring.debian.org/keyrings
|
keyring.dir=~/debian/keyring.debian.org/keyrings
|
||||||
urlbuilder.sections=overview,bugs,build,qa,upload,lists,files,membership,
|
urlbuilder.sections=overview,bugs,build,qa,upload,lists,files,membership,
|
||||||
miscellaneous,ubuntu
|
miscellaneous,ssh,ubuntu
|
||||||
|
|
||||||
[overview]
|
[overview]
|
||||||
urls=ddpo,alladdresses
|
urls=ddpo,alladdresses
|
||||||
|
@ -86,17 +86,19 @@ debtags.pattern=http://debtags.alioth.debian.org/todo.html?maint=%(email)s
|
||||||
links.pattern=http://www.google.com/search?hl=en&lr=&q=site%%3Adebian.org+%%22%(name)s%%22+-site%%3Anm.debian.org+-site%%3Alintian.debian.org+-site%%3Abugs.debian.org+-site%%3Alists.debian.org+-site%%3Apackages.debian.org+-site%%3Alists.alioth.debian.org+-site%%3Aftp.debian.org++-site%%3Apackages.qa.debian.org++-site%%3Aftp*.*.debian.org+-inurl%%3Adebian.org%%2Fdevel%%2Fpeople.+-inurl%%3Aindices%%2FMaintainers+-inurl%%3Adebian.org%%2Fdebian%%2Fproject++-inurl%%3A%%2Fdists%%2F&btnG=Search
|
links.pattern=http://www.google.com/search?hl=en&lr=&q=site%%3Adebian.org+%%22%(name)s%%22+-site%%3Anm.debian.org+-site%%3Alintian.debian.org+-site%%3Abugs.debian.org+-site%%3Alists.debian.org+-site%%3Apackages.debian.org+-site%%3Alists.alioth.debian.org+-site%%3Aftp.debian.org++-site%%3Apackages.qa.debian.org++-site%%3Aftp*.*.debian.org+-inurl%%3Adebian.org%%2Fdevel%%2Fpeople.+-inurl%%3Aindices%%2FMaintainers+-inurl%%3Adebian.org%%2Fdebian%%2Fproject++-inurl%%3A%%2Fdists%%2F&btnG=Search
|
||||||
website.pattern=http://www.google.com/search?q=site:www.debian.org+%(name)s
|
website.pattern=http://www.google.com/search?q=site:www.debian.org+%(name)s
|
||||||
search.pattern=http://search.debian.org/?q=%%22%(name)s%%22
|
search.pattern=http://search.debian.org/?q=%%22%(name)s%%22
|
||||||
|
|
||||||
|
[ssh]
|
||||||
# SSH functions
|
# SSH functions
|
||||||
#
|
urls=owndndoms,miainfo,groupinfo
|
||||||
# owned *.debian.net domains
|
# owned *.debian.net domains
|
||||||
# ssh merkel.debian.org ldapsearch -u -x -H ldap://db.debian.org -b dc=debian,dc=org \
|
owndndoms.pattern=ssh merkel.debian.org ldapsearch -u -x -H ldap://db.debian.org -b dc=debian,dc=org uid=%(username)s dnsZoneEntry
|
||||||
# uid=%(username)s dnsZoneEntry
|
owndndoms.type=ssh
|
||||||
#
|
|
||||||
# MIA information
|
# MIA information
|
||||||
# ssh merkel.debian.org /srv/qa.debian.org/mia/mia-query %(username)s
|
miainfo.pattern=ssh merkel.debian.org /srv/qa.debian.org/mia/mia-query %(username)s
|
||||||
#
|
miainfo.type=ssh
|
||||||
# Group information
|
# Group information
|
||||||
# ssh merkel.debian.org id %(username)s
|
groupinfo.pattern=ssh merkel.debian.org id %(username)s
|
||||||
|
groupinfo.type=ssh
|
||||||
|
|
||||||
[ubuntu]
|
[ubuntu]
|
||||||
urls=ubuntudiff
|
urls=ubuntudiff
|
||||||
|
|
|
@ -46,6 +46,17 @@ _FIELDNAMES_MAP = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DDPortfolioEntry(object):
|
||||||
|
def __init__(self, config, section, key):
|
||||||
|
self.name = key
|
||||||
|
self.optional = config.has_option(section, key + '.optional') and \
|
||||||
|
config.getboolean(section, key + '.optional') or False
|
||||||
|
if config.has_option(section, key + '.type'):
|
||||||
|
self.type = config.get(section, key + '.type')
|
||||||
|
else:
|
||||||
|
self.type = 'url'
|
||||||
|
|
||||||
|
|
||||||
def build_urls(fields):
|
def build_urls(fields):
|
||||||
"""Build personalized URLs using the developer information in
|
"""Build personalized URLs using the developer information in
|
||||||
fields."""
|
fields."""
|
||||||
|
@ -70,22 +81,20 @@ def build_urls(fields):
|
||||||
'urlbuilder.sections').split(',')]:
|
'urlbuilder.sections').split(',')]:
|
||||||
data.append(['section', section])
|
data.append(['section', section])
|
||||||
if my_config.has_option(section, 'urls'):
|
if my_config.has_option(section, 'urls'):
|
||||||
for url in my_config.get(section, 'urls').split(','):
|
for entry in ([DDPortfolioEntry(my_config, section, url) for url in \
|
||||||
if my_config.has_option(section, url + '.pattern'):
|
my_config.get(section, 'urls').split(',')]):
|
||||||
optional = my_config.has_option(section, url + '.optional') \
|
|
||||||
and my_config.getboolean(section, url + '.optional') or False
|
|
||||||
try:
|
try:
|
||||||
data.append(
|
data.append(
|
||||||
['url', section, url,
|
['url', section, entry,
|
||||||
my_config.get(section, url + '.pattern',
|
my_config.get(section, entry.name + '.pattern',
|
||||||
False, qfields)])
|
False, qfields)])
|
||||||
except InterpolationMissingOptionError, e:
|
except InterpolationMissingOptionError, e:
|
||||||
if not optional:
|
if not entry.optional:
|
||||||
if e.reference in _FIELDNAMES_MAP:
|
if e.reference in _FIELDNAMES_MAP:
|
||||||
data.append(['error', section, url,
|
data.append(['error', section, entry,
|
||||||
_('Missing input: %s') % \
|
_('Missing input: %s') % \
|
||||||
_(_FIELDNAMES_MAP[e.reference])])
|
_(_FIELDNAMES_MAP[e.reference])])
|
||||||
else:
|
else:
|
||||||
data.append(['error', section, url,
|
data.append(['error', section, entry,
|
||||||
_('Missing input: %s') % e.reference])
|
_('Missing input: %s') % e.reference])
|
||||||
return data
|
return data
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
|
## -*- coding: utf-8 -*- \
|
||||||
<%inherit file="base.mako" />
|
<%inherit file="base.mako" />
|
||||||
<%doc>
|
<%doc>
|
||||||
Template for the url output page.
|
Template for the url output page.
|
||||||
Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
|
Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
|
||||||
|
|
||||||
This file is part of DDPortfolio service.
|
This file is part of DDPortfolio service.
|
||||||
|
|
||||||
|
@ -44,7 +45,13 @@ License along with this program. If not, see
|
||||||
% else:
|
% else:
|
||||||
<tr class="url ${urlclass}">
|
<tr class="url ${urlclass}">
|
||||||
<td>${h.textile(row[4])}</td>
|
<td>${h.textile(row[4])}</td>
|
||||||
<td>${h.link_to(h.truncate(row[3], length=120), row[3])}</td>
|
<td>
|
||||||
|
% if row[2].type == 'url':
|
||||||
|
${h.link_to(h.truncate(row[3], length=120), row[3])}
|
||||||
|
% else:
|
||||||
|
<tt>${row[3]}</tt>
|
||||||
|
% endif
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<%
|
<%
|
||||||
if urlclass == 'odd':
|
if urlclass == 'odd':
|
||||||
|
|
Loading…
Reference in a new issue