Merge branch 'release/0.2.2'

* release/0.2.2:
  bump version to 0.2.2
  PEP-8 compliance
  add missing import of response from pylons
  update translation
  update strings in controllers
  update translations
  add babel to install_requires
  modify templates
  rewrap README
This commit is contained in:
Jan Dittberner 2012-01-07 01:50:49 +01:00
commit f27e193b0f
25 changed files with 295 additions and 252 deletions

View file

@ -1,3 +1,9 @@
2012-01-07 Jan Dittberner <jan@dittberner.info>
* rename Debian Developer to Debian Member, change URL to
portfolio.debian.net
* PEP-8 compliance
2011-03-06 Jan Dittberner <jan@dittberner.info>
* add one year bug history graph URL (http://glandium.org/blog/?p=1817)

View file

@ -1,5 +1,6 @@
This file is for you to describe the ddportfolioservice application. Typically
you would include information such as the information below:
This file is for you to describe the ddportfolioservice
application. Typically you would include information such as the
information below:
Installation and Setup
======================

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service environment configuration
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -31,9 +31,10 @@ import ddportfolioservice.lib.app_globals as app_globals
import ddportfolioservice.lib.helpers
from ddportfolioservice.config.routing import make_map
def load_environment(global_conf, app_conf):
"""Configure the Pylons environment via the ``pylons.config``
object
"""
Configure the Pylons environment via the ``pylons.config`` object
"""
config = PylonsConfig()
@ -45,7 +46,8 @@ def load_environment(global_conf, app_conf):
templates=[os.path.join(root, 'templates')])
# Initialize config with the basic options
config.init_app(global_conf, app_conf, package='ddportfolioservice', paths=paths)
config.init_app(
global_conf, app_conf, package='ddportfolioservice', paths=paths)
config['routes.map'] = make_map(config)
config['pylons.app_globals'] = app_globals.Globals(config)
@ -54,7 +56,6 @@ def load_environment(global_conf, app_conf):
# Setup cache object as early as possible
import pylons
pylons.cache._push_object(config['pylons.app_globals'].cache)
# Create the Mako TemplateLookup, with the default auto-escaping
config['pylons.app_globals'].mako_lookup = TemplateLookup(

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service middleware configuration
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -32,6 +32,7 @@ from routes.middleware import RoutesMiddleware
from ddportfolioservice.config.environment import load_environment
def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
"""Create a Pylons WSGI application and return it

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service routing configuration
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -28,6 +28,7 @@ refer to the routes manual at http://routes.groovie.org/docs/
"""
from routes import Mapper
def make_map(config):
"""Create, configure and return the routes Mapper"""
map = Mapper(directory=config['pylons.paths']['controllers'],

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController
# Copyright © 2009, 2010, 2011 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -23,7 +23,7 @@
import logging
import simplejson
from pylons import request, tmpl_context as c
from pylons import request, response, tmpl_context as c
from pylons.i18n import N_, _
import formencode.api
import formencode.validators
@ -35,91 +35,92 @@ from ddportfolioservice.model import dddatabuilder
log = logging.getLogger(__name__)
class DdportfolioController(BaseController):
_LABELS = {
'overview' : {
'label' : N_('Overview'),
'ddpo' : N_("Debian Developer's Package Overview"),
'alladdresses' : N_("""Debian Developer's Package Overview
'overview': {
'label': N_('Overview'),
'ddpo': N_("Debian Member's Package Overview"),
'alladdresses': N_("""Debian Member's Package Overview
... showing all email addresses"""),
},
'bugs' : {
'label' : N_('Bugs'),
'received' : N_('''bugs received
'bugs': {
'label': N_('Bugs'),
'received': N_('''bugs received
(note: co-maintainers not listed, see \
<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?\
bug=430986">#430986</a>)'''),
'reported' : N_('bugs reported'),
'bugstats' : N_('bugstats AKA <em>karma</em>'),
'usertags' : N_('user tags'),
'searchall' : N_('all messages (i.e., full text search for \
'reported': N_('bugs reported'),
'bugstats': N_('bugstats AKA <em>karma</em>'),
'usertags': N_('user tags'),
'searchall': N_('all messages (i.e., full text search for \
developer name on all bug logs)'),
'wnpp' : N_('<a href="http://wiki.debian.org/WNPP">WNPP</a>'),
'correspondent' : N_('correspondent for bugs'),
'graph' : N_('one year open bug history graph'),
'wnpp': N_('<a href="http://wiki.debian.org/WNPP">WNPP</a>'),
'correspondent': N_('correspondent for bugs'),
'graph': N_('one year open bug history graph'),
},
'build' : {
'label' : N_('Build'),
'buildd' : N_('buildd.d.o'),
'igloo' : N_('igloo'),
'build': {
'label': N_('Build'),
'buildd': N_('buildd.d.o'),
'igloo': N_('igloo'),
},
'qa' : {
'label' : N_('Quality Assurance'),
'lintian' : N_('lintian reports'),
'lintianfull' : N_('full lintian reports (i.e. including \
'qa': {
'label': N_('Quality Assurance'),
'lintian': N_('lintian reports'),
'lintianfull': N_('full lintian reports (i.e. including \
"info"-level messages)'),
'dehs' : N_('DEHS (Debian External Health Status)'),
'piuparts' : N_('piuparts'),
'patchtracker' : N_('Debian patch tracking system'),
'dehs': N_('DEHS (Debian External Health Status)'),
'piuparts': N_('piuparts'),
'patchtracker': N_('Debian patch tracking system'),
},
'upload' : {
'label' : N_('Upload'),
'keylog' : N_('''keylog (per-key upload list)
'upload': {
'label': N_('Upload'),
'keylog': N_('''keylog (per-key upload list)
(note: uses key fingerprint)'''),
},
'lists' : {
'label' : N_('Mailing Lists'),
'dolists' : N_('lists.d.o'),
'adolists' : N_('lists.a.d.o'),
'gmane' : N_('gmane'),
'lists': {
'label': N_('Mailing Lists'),
'dolists': N_('lists.d.o'),
'adolists': N_('lists.a.d.o'),
'gmane': N_('gmane'),
},
'files' : {
'label' : N_('Files'),
'people' : N_('people.d.o'),
'oldpeople' : N_('oldpeople'),
'alioth' : N_('Alioth'),
'files': {
'label': N_('Files'),
'people': N_('people.d.o'),
'oldpeople': N_('oldpeople'),
'alioth': N_('Alioth'),
},
'membership' : {
'label' : N_('Membership'),
'nm' : N_('NM'),
'dbfinger' : N_('DB information via finger'),
'db' : N_('DB information via HTTP'),
'alioth' : N_('Alioth'),
'wiki' : N_('Wiki'),
'forum' : N_('Forum'),
'membership': {
'label': N_('Membership'),
'nm': N_('NM'),
'dbfinger': N_('DB information via finger'),
'db': N_('DB information via HTTP'),
'alioth': N_('Alioth'),
'wiki': N_('Wiki'),
'forum': N_('Forum'),
},
'miscellaneous' : {
'label' : N_('Miscellaneous'),
'debtags' : N_('debtags'),
'links' : N_('links'),
'website' : N_('Debian website'),
'search' : N_('Debian search'),
'gpgfinger' : N_('GPG public key via finger'),
'gpgweb' : N_('GPG public key via HTTP'),
'miscellaneous': {
'label': N_('Miscellaneous'),
'debtags': N_('debtags'),
'links': N_('links'),
'website': N_('Debian website'),
'search': N_('Debian search'),
'gpgfinger': N_('GPG public key via finger'),
'gpgweb': N_('GPG public key via HTTP'),
},
'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'),
'ssh': {
'label': N_('Information reachable via ssh (for Debian Members)'),
'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' : {
'label' : N_('Ubuntu'),
'ubuntudiff' : N_('Available patches from Ubuntu'),
'ubuntu': {
'label': N_('Ubuntu'),
'ubuntudiff': N_('Available patches from Ubuntu'),
},
}
def _get_label(self, section, url=None):
if section in self._LABELS:
if url:
@ -131,11 +132,10 @@ developer name on all bug logs)'),
return "%s.%s" % (section, url)
return section
def index(self):
# Return a rendered template
# return render('/some/template.mako')
# or, Return a response
"""
Render the input form.
"""
return render('/showform.mako')
def urllist(self):
@ -147,7 +147,7 @@ developer name on all bug logs)'),
languages=[lang[0:2] for lang in request.languages])
form_result = schema.to_python(request.params)
except formencode.validators.Invalid, error:
c.messages = { 'errors' : error.unpack_errors() }
c.messages = {'errors': error.unpack_errors()}
return render('/showform.mako')
fields = dddatabuilder.build_data(form_result['email'])
rp = request.params.copy()
@ -174,7 +174,7 @@ developer name on all bug logs)'),
languages=[lang[0:2] for lang in request.languages])
form_result = schema.to_python(rp)
except formencode.validators.Invalid, error:
c.messages = { 'errors' : error.unpack_errors() }
c.messages = {'errors': error.unpack_errors()}
return render('/showform.mako')
if form_result['wikihomepage'] is None:
log.debug('generate wikihomepage from name')

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service ErrorController
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -30,8 +30,8 @@ from webhelpers.html.builder import literal
from ddportfolioservice.lib.base import BaseController
class ErrorController(BaseController):
class ErrorController(BaseController):
"""Generates error documents as and when they are required.
The ErrorDocuments middleware forwards to ErrorController when error
@ -39,16 +39,17 @@ class ErrorController(BaseController):
This behaviour can be altered by changing the parameters to the
ErrorDocuments middleware in your config/middleware.py file.
"""
def document(self):
"""Render the error document"""
resp = request.environ.get('pylons.original_response')
content = literal(resp.body) or cgi.escape(request.GET.get('message', ''))
content = literal(resp.body) or cgi.escape(
request.GET.get('message', ''))
page = error_document_template % \
dict(prefix=request.environ.get('SCRIPT_NAME', ''),
code=cgi.escape(request.GET.get('code', str(resp.status_int))),
code=cgi.escape(
request.GET.get('code', str(resp.status_int))),
message=content)
return page
@ -61,8 +62,9 @@ class ErrorController(BaseController):
return self._serve_file('/'.join(['media/style', id]))
def _serve_file(self, path):
"""Call Paste's FileApp (a WSGI application) to serve the file
at the specified path
"""
Call Paste's FileApp (a WSGI application) to serve the file at
the specified path
"""
request.environ['PATH_INFO'] = '/%s' % path
return forward(PkgResourcesParser('pylons', 'pylons'))

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service ShowformscriptController.
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -34,6 +34,7 @@ from ddportfolioservice.model import dddatabuilder
log = logging.getLogger(__name__)
class ShowformscriptsController(BaseController):
"""This controller is used to support data entry in showform.
@ -41,12 +42,17 @@ class ShowformscriptsController(BaseController):
responses for autocompletion of fields."""
def index(self):
"""This action generates the helper script for the showform
page."""
"""
This action generates the helper script for the showform page.
"""
response.headers['Content-Type'] = 'text/javascript; charset=utf-8'
return render('/showformscript.mako')
def fetchdddata(self):
"""
This action fetches the data for a given mail address and
returns them as JSON.
"""
schema = DDDataRequest()
try:
formencode.api.set_stdtranslation(

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service TemplateController
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -22,6 +22,7 @@
#
from ddportfolioservice.lib.base import BaseController
class TemplateController(BaseController):
def view(self, url):

View file

@ -1,34 +1,34 @@
# Translations template for ddportfolioservice.
# Copyright (C) 2011 ORGANIZATION
# Copyright (C) 2012 ORGANIZATION
# This file is distributed under the same license as the ddportfolioservice
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ddportfolioservice 0.2.1\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2011-03-06 17:30+0100\n"
"POT-Creation-Date: 2012-01-07 01:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
"Generated-By: Babel 0.9.5\n"
#: ddportfolioservice/controllers/ddportfolio.py:41
msgid "Overview"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:42
msgid "Debian Developer's Package Overview"
msgid "Debian Member's Package Overview"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:43
msgid ""
"Debian Developer's Package Overview\n"
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
@ -79,152 +79,152 @@ msgstr ""
msgid "buildd.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:65
#: ddportfolioservice/controllers/ddportfolio.py:64
msgid "igloo"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:68
#: ddportfolioservice/controllers/ddportfolio.py:67
msgid "Quality Assurance"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:69
#: ddportfolioservice/controllers/ddportfolio.py:68
msgid "lintian reports"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:70
#: ddportfolioservice/controllers/ddportfolio.py:69
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:72
#: ddportfolioservice/controllers/ddportfolio.py:71
msgid "DEHS (Debian External Health Status)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:73
#: ddportfolioservice/controllers/ddportfolio.py:72
msgid "piuparts"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:74
#: ddportfolioservice/controllers/ddportfolio.py:73
msgid "Debian patch tracking system"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:77
#: ddportfolioservice/controllers/ddportfolio.py:76
msgid "Upload"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:78
#: ddportfolioservice/controllers/ddportfolio.py:77
msgid ""
"keylog (per-key upload list)\n"
"(note: uses key fingerprint)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:82
#: ddportfolioservice/controllers/ddportfolio.py:81
msgid "Mailing Lists"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:83
#: ddportfolioservice/controllers/ddportfolio.py:82
msgid "lists.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:84
#: ddportfolioservice/controllers/ddportfolio.py:83
msgid "lists.a.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:85
#: ddportfolioservice/controllers/ddportfolio.py:84
msgid "gmane"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:88
#: ddportfolioservice/controllers/ddportfolio.py:87
msgid "Files"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:89
#: ddportfolioservice/controllers/ddportfolio.py:88
msgid "people.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:90
#: ddportfolioservice/controllers/ddportfolio.py:89
msgid "oldpeople"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:91
#: ddportfolioservice/controllers/ddportfolio.py:98
#: ddportfolioservice/controllers/ddportfolio.py:90
#: ddportfolioservice/controllers/ddportfolio.py:97
msgid "Alioth"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:94
#: ddportfolioservice/controllers/ddportfolio.py:93
msgid "Membership"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:95
#: ddportfolioservice/controllers/ddportfolio.py:94
msgid "NM"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:96
#: ddportfolioservice/controllers/ddportfolio.py:95
msgid "DB information via finger"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:97
#: ddportfolioservice/controllers/ddportfolio.py:96
msgid "DB information via HTTP"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:99
#: ddportfolioservice/controllers/ddportfolio.py:98
msgid "Wiki"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:100
#: ddportfolioservice/controllers/ddportfolio.py:99
msgid "Forum"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:103
#: ddportfolioservice/controllers/ddportfolio.py:102
msgid "Miscellaneous"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:104
#: ddportfolioservice/controllers/ddportfolio.py:103
msgid "debtags"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:105
#: ddportfolioservice/controllers/ddportfolio.py:104
msgid "links"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:106
#: ddportfolioservice/controllers/ddportfolio.py:105
msgid "Debian website"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:107
#: ddportfolioservice/controllers/ddportfolio.py:106
msgid "Debian search"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:108
#: ddportfolioservice/controllers/ddportfolio.py:107
msgid "GPG public key via finger"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:109
#: ddportfolioservice/controllers/ddportfolio.py:108
msgid "GPG public key via HTTP"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:112
msgid "Information reachable via ssh (for DDs)"
#: ddportfolioservice/controllers/ddportfolio.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:113
#: ddportfolioservice/controllers/ddportfolio.py:112
msgid "owned debian.net domains"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:114
#: ddportfolioservice/controllers/ddportfolio.py:113
msgid ""
"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
"information"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:115
#: ddportfolioservice/controllers/ddportfolio.py:114
msgid "Group membership information"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:118
#: ddportfolioservice/controllers/ddportfolio.py:117
msgid "Ubuntu"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:119
#: ddportfolioservice/controllers/ddportfolio.py:118
msgid "Available patches from Ubuntu"
msgstr ""
@ -245,7 +245,7 @@ msgid "Debian user name"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:44
msgid "Non DD email address"
msgid "Non Debian email address"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:45
@ -260,7 +260,7 @@ msgstr ""
#: ddportfolioservice/templates/base.mako:26
#: ddportfolioservice/templates/base.mako:34
msgid "Debian Developer Portfolio Service"
msgid "Debian Member Portfolio Service"
msgstr ""
#: ddportfolioservice/templates/base.mako:32
@ -272,7 +272,7 @@ msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio page in the Debian "
"Wiki</a>. You can create a set of customized links leading to a Debian "
"Developer's or package maintainer's information regarding Debian."
"Member's or package maintainer's information regarding Debian."
msgstr ""
#: ddportfolioservice/templates/base.mako:46
@ -292,7 +292,7 @@ msgid ""
msgstr ""
#: ddportfolioservice/templates/base.mako:49
msgid "Copyright © 2009, 2010, 2011 Jan Dittberner"
msgid "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
msgstr ""
#: ddportfolioservice/templates/showform.mako:24
@ -301,7 +301,7 @@ msgstr ""
#: ddportfolioservice/templates/showform.mako:30
#: ddportfolioservice/templates/showurls.mako:28
msgid "Debian Developer Portfolio"
msgid "Debian Member Portfolio"
msgstr ""
#: ddportfolioservice/templates/showform.mako:36
@ -325,7 +325,7 @@ msgid "Debian user name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:94
msgid "Non DD email address:"
msgid "Non Debian email address:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:109

View file

@ -9,29 +9,30 @@ msgstr ""
"Project-Id-Version: ddportfolioservice 0.2.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2009-01-20 23:13+0100\n"
"PO-Revision-Date: 2011-03-06 17:31+0100\n"
"PO-Revision-Date: 2012-01-07 01:16+0100\n"
"Last-Translator: Jan Dittberner <jan@dittberner.info>\n"
"Language-Team: de <de@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.4\n"
"Generated-By: Babel 0.9.5\n"
#: ddportfolioservice/controllers/ddportfolio.py:41
msgid "Overview"
msgstr "Überblick"
#: ddportfolioservice/controllers/ddportfolio.py:42
msgid "Debian Developer's Package Overview"
msgstr "Paketübersicht des Debian-Entwicklers"
msgid "Debian Member's Package Overview"
msgstr "Paketübersicht des Debian-Mitglieds"
#: ddportfolioservice/controllers/ddportfolio.py:43
#| addresses"
msgid ""
"Debian Developer's Package Overview\n"
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Paketübersicht des Debian-Entwicklers\n"
"Paketübersicht des Debian-Mitglieds\n"
"... mit allen E-Mailadressen"
#: ddportfolioservice/controllers/ddportfolio.py:47
@ -83,45 +84,45 @@ msgstr "Graph der Entwicklung offener Fehlerberichte über ein Jahr"
msgid "Build"
msgstr "Build"
#: ddportfolioservice/controllers/ddportfolio.py:62
#: ddportfolioservice/controllers/ddportfolio.py:63
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:65
#: ddportfolioservice/controllers/ddportfolio.py:64
msgid "igloo"
msgstr "Igloo"
#: ddportfolioservice/controllers/ddportfolio.py:68
#: ddportfolioservice/controllers/ddportfolio.py:67
msgid "Quality Assurance"
msgstr "Qualitätssicherung"
#: ddportfolioservice/controllers/ddportfolio.py:69
#: ddportfolioservice/controllers/ddportfolio.py:68
msgid "lintian reports"
msgstr "Lintian-Berichte"
#: ddportfolioservice/controllers/ddportfolio.py:70
#: ddportfolioservice/controllers/ddportfolio.py:69
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
"vollständige Lintian-Berichte (d.h. inklusive Meldungen der Stufe "
"\"info\")"
#: ddportfolioservice/controllers/ddportfolio.py:72
#: ddportfolioservice/controllers/ddportfolio.py:71
msgid "DEHS (Debian External Health Status)"
msgstr "DEHS (Debian External Health Status)"
#: ddportfolioservice/controllers/ddportfolio.py:73
#: ddportfolioservice/controllers/ddportfolio.py:72
msgid "piuparts"
msgstr "piuparts"
#: ddportfolioservice/controllers/ddportfolio.py:74
#: ddportfolioservice/controllers/ddportfolio.py:73
msgid "Debian patch tracking system"
msgstr "Debian Nachverfolgungssystem für Patches"
#: ddportfolioservice/controllers/ddportfolio.py:77
#: ddportfolioservice/controllers/ddportfolio.py:76
msgid "Upload"
msgstr "Upload"
#: ddportfolioservice/controllers/ddportfolio.py:78
#: ddportfolioservice/controllers/ddportfolio.py:77
msgid ""
"keylog (per-key upload list)\n"
"(note: uses key fingerprint)"
@ -129,100 +130,100 @@ msgstr ""
"Keylog\n"
"(Anmerkung: verwendet den Fingerabdruck des Schlüssels)"
#: ddportfolioservice/controllers/ddportfolio.py:82
#: ddportfolioservice/controllers/ddportfolio.py:81
msgid "Mailing Lists"
msgstr "Mailinglisten"
#: ddportfolioservice/controllers/ddportfolio.py:83
#: ddportfolioservice/controllers/ddportfolio.py:82
msgid "lists.d.o"
msgstr "lists.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:84
#: ddportfolioservice/controllers/ddportfolio.py:83
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:85
#: ddportfolioservice/controllers/ddportfolio.py:84
msgid "gmane"
msgstr "Gmane"
#: ddportfolioservice/controllers/ddportfolio.py:88
#: ddportfolioservice/controllers/ddportfolio.py:87
msgid "Files"
msgstr "Dateien"
#: ddportfolioservice/controllers/ddportfolio.py:89
#: ddportfolioservice/controllers/ddportfolio.py:88
msgid "people.d.o"
msgstr "people.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:90
#: ddportfolioservice/controllers/ddportfolio.py:89
msgid "oldpeople"
msgstr "oldpeople"
#: ddportfolioservice/controllers/ddportfolio.py:91
#: ddportfolioservice/controllers/ddportfolio.py:98
#: ddportfolioservice/controllers/ddportfolio.py:90
#: ddportfolioservice/controllers/ddportfolio.py:97
msgid "Alioth"
msgstr "Alioth"
#: ddportfolioservice/controllers/ddportfolio.py:94
#: ddportfolioservice/controllers/ddportfolio.py:93
msgid "Membership"
msgstr "Mitgliedschaft"
#: ddportfolioservice/controllers/ddportfolio.py:95
#: ddportfolioservice/controllers/ddportfolio.py:94
msgid "NM"
msgstr "NM"
#: ddportfolioservice/controllers/ddportfolio.py:96
#: ddportfolioservice/controllers/ddportfolio.py:95
msgid "DB information via finger"
msgstr "DB-Informationen per finger"
#: ddportfolioservice/controllers/ddportfolio.py:97
#: ddportfolioservice/controllers/ddportfolio.py:96
msgid "DB information via HTTP"
msgstr "DB-Informationen per HTTP"
#: ddportfolioservice/controllers/ddportfolio.py:99
#: ddportfolioservice/controllers/ddportfolio.py:98
msgid "Wiki"
msgstr "Wiki"
#: ddportfolioservice/controllers/ddportfolio.py:100
#: ddportfolioservice/controllers/ddportfolio.py:99
msgid "Forum"
msgstr "Forum"
#: ddportfolioservice/controllers/ddportfolio.py:103
#: ddportfolioservice/controllers/ddportfolio.py:102
msgid "Miscellaneous"
msgstr "Sonstiges"
#: ddportfolioservice/controllers/ddportfolio.py:104
#: ddportfolioservice/controllers/ddportfolio.py:103
msgid "debtags"
msgstr "debtags"
#: ddportfolioservice/controllers/ddportfolio.py:105
#: ddportfolioservice/controllers/ddportfolio.py:104
msgid "links"
msgstr "Links"
#: ddportfolioservice/controllers/ddportfolio.py:106
#: ddportfolioservice/controllers/ddportfolio.py:105
msgid "Debian website"
msgstr "Debian Webseite"
#: ddportfolioservice/controllers/ddportfolio.py:107
#: ddportfolioservice/controllers/ddportfolio.py:106
msgid "Debian search"
msgstr "Debian-Suche"
#: ddportfolioservice/controllers/ddportfolio.py:108
#: ddportfolioservice/controllers/ddportfolio.py:107
msgid "GPG public key via finger"
msgstr "öffentlicher GPG-Schlüssel per finger"
#: ddportfolioservice/controllers/ddportfolio.py:109
#: ddportfolioservice/controllers/ddportfolio.py:108
msgid "GPG public key via HTTP"
msgstr "öffentlicher GPG-Schlüssel per HTTP"
#: ddportfolioservice/controllers/ddportfolio.py:112
msgid "Information reachable via ssh (for DDs)"
msgstr "Per ssh erreichbare Informationen (für DDs)"
#: ddportfolioservice/controllers/ddportfolio.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Per ssh erreichbare Informationen (für Debian Mitglieder)"
#: ddportfolioservice/controllers/ddportfolio.py:113
#: ddportfolioservice/controllers/ddportfolio.py:112
msgid "owned debian.net domains"
msgstr "Besitz von debian.net-Domains"
#: ddportfolioservice/controllers/ddportfolio.py:114
#: ddportfolioservice/controllers/ddportfolio.py:113
msgid ""
"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database"
" information"
@ -230,15 +231,15 @@ msgstr ""
"Informationen in der <a "
"href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>-Datenbank"
#: ddportfolioservice/controllers/ddportfolio.py:115
#: ddportfolioservice/controllers/ddportfolio.py:114
msgid "Group membership information"
msgstr "Information über Gruppenmitgliedschaften"
#: ddportfolioservice/controllers/ddportfolio.py:118
#: ddportfolioservice/controllers/ddportfolio.py:117
msgid "Ubuntu"
msgstr "Ubuntu"
#: ddportfolioservice/controllers/ddportfolio.py:119
#: ddportfolioservice/controllers/ddportfolio.py:118
msgid "Available patches from Ubuntu"
msgstr "Verfügbare Patches aus Ubuntu"
@ -259,8 +260,8 @@ msgid "Debian user name"
msgstr "Debian-Benutzername"
#: ddportfolioservice/model/urlbuilder.py:44
msgid "Non DD email address"
msgstr "Nicht-DD E-Mailadresse:"
msgid "Non Debian email address"
msgstr "Nicht-Debian-E-Mailadresse"
#: ddportfolioservice/model/urlbuilder.py:45
msgid "Alioth user name"
@ -274,8 +275,8 @@ msgstr "Fehlende Eingabe: %s"
#: ddportfolioservice/templates/base.mako:26
#: ddportfolioservice/templates/base.mako:34
msgid "Debian Developer Portfolio Service"
msgstr "Debian-Entwicklerportfolioservice"
msgid "Debian Member Portfolio Service"
msgstr "Debian-Mitglieder-Portfolioservice"
#: ddportfolioservice/templates/base.mako:32
msgid "Debian Logo"
@ -286,12 +287,12 @@ msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Developer's or package maintainer's information regarding Debian."
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Dieser Dienst wurde durch Stefano Zacchirolis <a "
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio-Seite im Debian "
"Wiki</a> inspiriert. Mit dem Dienst können personalisierte Links zu "
"Informationen im Bezug auf Debian für Debian-Entwickler und Paketbetreuer"
"Informationen im Bezug auf Debian für Debian-Mitglieder und Paketbetreuer"
" erzeugt werden."
#: ddportfolioservice/templates/base.mako:46
@ -321,8 +322,8 @@ msgstr ""
"klonen."
#: ddportfolioservice/templates/base.mako:49
msgid "Copyright © 2009, 2010, 2011 Jan Dittberner"
msgstr "Copyright © 2009, 2010, 2011 Jan Dittberner"
msgid "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
msgstr "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
#: ddportfolioservice/templates/showform.mako:24
msgid "Enter your personal information"
@ -330,8 +331,8 @@ msgstr "Eingabe der persönlichen Informationen"
#: ddportfolioservice/templates/showform.mako:30
#: ddportfolioservice/templates/showurls.mako:28
msgid "Debian Developer Portfolio"
msgstr "Debian-Entwicklerportfolio"
msgid "Debian Member Portfolio"
msgstr "Debian-Mitgliedererportfolio"
#: ddportfolioservice/templates/showform.mako:36
msgid "Email address:"
@ -354,8 +355,8 @@ msgid "Debian user name:"
msgstr "Debian-Benutzername:"
#: ddportfolioservice/templates/showform.mako:94
msgid "Non DD email address:"
msgstr "Nicht-DD-E-Mailadresse"
msgid "Non Debian email address:"
msgstr "Nicht-Debian-E-Mailadresse"
#: ddportfolioservice/templates/showform.mako:109
msgid "Alioth user name:"

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service application Globals
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -25,17 +25,17 @@
from beaker.cache import CacheManager
from beaker.util import parse_cache_config_options
class Globals(object):
"""Globals acts as a container for objects available throughout the
"""
Globals acts as a container for objects available throughout the
life of the application
"""
def __init__(self, config):
"""One instance of Globals is created during application
"""
One instance of Globals is created during application
initialization and is available during requests via the
'app_globals' variable
"""
self.cache = CacheManager(**parse_cache_config_options(config))

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service base controller
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -29,6 +29,7 @@ from pylons.controllers import WSGIController
from pylons.i18n import add_fallback
from pylons.templating import render_mako as render
class BaseController(WSGIController):
def __call__(self, environ, start_response):
@ -42,5 +43,5 @@ class BaseController(WSGIController):
add_fallback(lang)
except:
pass
c.messages = { 'errors': [], 'messages': [] }
c.messages = {'errors': [], 'messages': []}
return WSGIController.__call__(self, environ, start_response)

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service form handling model
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -22,6 +22,7 @@
#
import formencode
class DeveloperData(formencode.Schema):
"""Validation schema for DeveloperData."""
allow_extra_fields = True

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service key finder module
# Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
# Copyright (c) 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -30,6 +30,7 @@ import time
db = None
cachetimestamp = 0
def _get_keyring_cache():
global db, cachetimestamp
if db is None or (time.time() - cachetimestamp) > 86300:
@ -44,6 +45,7 @@ def _get_keyring_cache():
cachetimestamp = time.time()
return db
def _get_cached(cachekey):
cache = _get_keyring_cache()
logging.debug('cache lookup for %s', cachekey)
@ -52,25 +54,33 @@ def _get_cached(cachekey):
return cache[cachekey]
return None
def getFingerprintByEmail(email):
"""Gets the fingerprints associated with the given email address
if available."""
"""
Gets the fingerprints associated with the given email address if
available.
"""
return _get_cached('fpr:email:%s' % email)
def getRealnameByEmail(email):
"""Gets the real names associated with the given email address if
available."""
"""
Gets the real names associated with the given email address if
available.
"""
return _get_cached('name:email:%s' % email)
def getLoginByEmail(email):
"""Gets the logins associated with the given email address if
available."""
"""
Gets the logins associated with the given email address if
available.
"""
return _get_cached('login:email:%s' % email)
def getLoginByFingerprint(fpr):
"""Gets the login associated with the given fingerprint if
available."""
"""
Gets the login associated with the given fingerprint if available.
"""
return _get_cached('login:fpr:%s' % fpr)

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service application key ring analyzer tool
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -38,10 +38,13 @@ import sys
def _get_keyrings():
"""Gets the available keyring files from the keyring directory
configured in ddportfolio.ini."""
"""
Gets the available keyring files from the keyring directory
configured in ddportfolio.ini.
"""
my_config = ConfigParser.ConfigParser()
my_config.readfp(pkg_resources.resource_stream(__name__, 'ddportfolio.ini'))
my_config.readfp(pkg_resources.resource_stream(
__name__, 'ddportfolio.ini'))
keyringdir = os.path.expanduser(my_config.get('DEFAULT', 'keyring.dir'))
logging.debug("keyring dir is %s", keyringdir)
keyrings = glob.glob(os.path.join(keyringdir, '*.gpg'))
@ -51,20 +54,22 @@ def _get_keyrings():
def _parse_uid(uid):
"""Parse a uid of the form 'Real Name <email@example.com>' into
email and realname parts."""
"""
Parse a uid of the form 'Real Name <email@example.com>' into email
and realname parts.
"""
uid = uid.strip()
# First, strip comment
# First, strip comment
s = uid.find('(')
e = uid.find(')')
if s >= 0 and e >= 0:
uid = uid[:s] + uid[e+1:]
uid = uid[:s] + uid[e + 1:]
s = uid.find('<')
e = uid.find('>')
email = None
if s >= 0 and e >= 0:
email = uid[s+1:e]
uid = uid[:s] + uid[e+1:]
email = uid[s + 1:e]
uid = uid[:s] + uid[e + 1:]
uid = uid.strip()
if not email and uid.find('@') >= 0:
email, uid = uid, email
@ -72,6 +77,7 @@ def _parse_uid(uid):
resultdict = {}
def _get_canonical(key):
if not key in resultdict:
resultdict[key] = []
@ -96,7 +102,7 @@ def process_keyrings():
stdout=subprocess.PIPE)
fpr = None
entry = None
lastpub = None
lastpub = None
for line in proc.stdout.readlines():
items = line.split(':')
uid = None

View file

@ -2,7 +2,7 @@
# -*- coding: utf8 -*-
#
# DDPortfolio service url builder
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -37,12 +37,12 @@ my_config = ConfigParser()
my_config.readfp(pkg_resources.resource_stream(__name__, 'ddportfolio.ini'))
_FIELDNAMES_MAP = {
'email' : N_('Email address'),
'name' : N_('Name'),
'gpgfp' : N_('GPG fingerprint'),
'username' : N_('Debian user name'),
'nonddemail' : N_('Non DD email address'),
'aliothusername' : N_('Alioth user name'),
'email': N_('Email address'),
'name': N_('Name'),
'gpgfp': N_('GPG fingerprint'),
'username': N_('Debian user name'),
'nonddemail': N_('Non Debian email address'),
'aliothusername': N_('Alioth user name'),
}
@ -82,8 +82,9 @@ def build_urls(fields):
'urlbuilder.sections').split(',')]:
data.append(['section', section])
if my_config.has_option(section, 'urls'):
for entry in ([DDPortfolioEntry(my_config, section, url) for url in \
my_config.get(section, 'urls').split(',')]):
for entry in ([
DDPortfolioEntry(my_config, section, url) for url in \
my_config.get(section, 'urls').split(',')]):
try:
data.append(
['url', section, entry,

View file

@ -23,7 +23,7 @@ License along with this program. If not, see
</%doc>
<html>
<head>
<title>${_('Debian Developer Portfolio Service')}${self.titleaddon()}</title>
<title>${_('Debian Member Portfolio Service')}${self.titleaddon()}</title>
${h.stylesheet_link(h.url('/stylesheets/style.css'))}
${self.extrahead()}
</head>
@ -31,10 +31,10 @@ License along with this program. If not, see
<div id="header">
${h.image(h.url('/images/openlogo-100.jpg'), _('Debian Logo'), 100, 100,
id='debianlogo')}
<h1>${_('Debian Developer Portfolio Service')}</h1>
<p>${h.literal(_('''This service has been inspired by Stefano Zacchiroli's <a href="http://wiki.debian.org/DDPortfolio">DDPortfolio page in the Debian Wiki</a>. You can create a set of customized links leading to a Debian Developer's or package maintainer's information regarding Debian.'''))}</p>
<h1>${_('Debian Member Portfolio Service')}</h1>
<p>${h.literal(_('''This service has been inspired by Stefano Zacchiroli's <a href="http://wiki.debian.org/DDPortfolio">DDPortfolio page in the Debian Wiki</a>. You can create a set of customized links leading to a Debian Member's or package maintainer's information regarding Debian.'''))}</p>
<p><script type="text/javascript">
var flattr_url = 'http://ddportfolio.debian.net/';
var flattr_url = 'http://portfolio.debian.net/';
var flattr_btn='compact';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script></p>
@ -46,7 +46,7 @@ License along with this program. If not, see
${h.image(h.url('/images/agplv3-88x31.png'), _('AGPL - Free Software'), 88, 31,
id='agpllogo')}
<p>${h.literal(_('''The service is available under the terms of the <a href="http://www.gnu.org/licenses/agpl.html">GNU Affero General Public License</a> as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. You can <a href="%(browseurl)s" title="Gitweb repository browser URL">browse the source code</a> or clone it from <a href="%(cloneurl)s" title="git clone URL">%(cloneurl)s</a> using <a href="http://git-scm.com/">git</a>.''') % dict((('browseurl', 'http://debianstuff.dittberner.info/gitweb.cgi?p=ddportfolioservice.git;a=summary'), ('cloneurl', 'http://debianstuff.dittberner.info/git/ddportfolioservice.git'))))}</p>
<p>${_(u'''Copyright © 2009, 2010, 2011 Jan Dittberner''')}</p>
<p>${_(u'''Copyright © 2009, 2010, 2011, 2012 Jan Dittberner''')}</p>
</div>
</body>
</html>

View file

@ -27,7 +27,7 @@ License along with this program. If not, see
h.url(controller='showformscripts', action='index'))}</%def>
${h.form(h.url(action='urllist', controller='ddportfolio'), method='get')}
<fieldset id="ddportfolio">
<legend>${_('Debian Developer Portfolio')}</legend>
<legend>${_('Debian Member Portfolio')}</legend>
<div id="emailfield" \
% if 'email' in c.messages['errors']:
class="witherrors" \
@ -91,7 +91,7 @@ ${h.form(h.url(action='urllist', controller='ddportfolio'), method='get')}
class="witherrors" \
% endif
>
<label for="nonddemail">${_('Non DD email address:') | h}
<label for="nonddemail">${_('Non Debian email address:') | h}
% if 'nonddemail' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['nonddemail'] | h}</span>

View file

@ -25,7 +25,7 @@ License along with this program. If not, see
</%def>
% if c.urldata:
<fieldset id="ddportfolio">
<legend>${_('Debian Developer Portfolio')}</legend>
<legend>${_('Debian Member Portfolio')}</legend>
<table id="urltable">
<thead>
<tr><th>${_('Usage')}</th><th>${_('URL')}</th></tr>

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service tests package
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -49,6 +49,7 @@ SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']])
environ = {}
class TestController(TestCase):
def __init__(self, *args, **kwargs):

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController test
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -22,8 +22,10 @@
#
from ddportfolioservice.tests import TestController, url
class TestShowformscriptsController(TestController):
def test_index(self):
response = self.app.get(url(controller='showformscripts', action='index'))
response = self.app.get(
url(controller='showformscripts', action='index'))
# Test response...

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service websetup
# Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
# Copyright (c) 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -31,6 +31,7 @@ from ddportfolioservice.config.environment import load_environment
log = logging.getLogger(__name__)
def setup_config(command, filename, section, vars):
"""Place any commands to setup ddportfolioservice here"""
conf = appconfig('config:' + filename)

View file

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# DDPortfolio service setup
# Copyright © 2009, 2010, 2011 Jan Dittberner <jan@dittberner.info>
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
@ -29,7 +29,7 @@ except ImportError:
setup(
name='ddportfolioservice',
version='0.2.1',
version='0.2.2',
description='service to create DDPortfolio URLs',
long_description="""This is a service implementation that
returns a set of personalized URLs as outlined in
@ -48,7 +48,7 @@ array of URLs.""",
author_email='jan@dittberner.info',
url='http://debian-stuff.dittberner.info/ddportfolioservice',
license='AGPL-3.0+',
install_requires=["Pylons>=0.10rc1"],
install_requires=["Pylons>=0.10rc1", 'babel>=0.9.4'],
packages=find_packages(exclude=['ez_setup']),
include_package_data=True,
test_suite='nose.collector',