diff --git a/ChangeLog b/ChangeLog index 713e4c6..d858bca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-01-07 Jan Dittberner + + * rename Debian Developer to Debian Member, change URL to + portfolio.debian.net + * PEP-8 compliance + 2011-03-06 Jan Dittberner * add one year bug history graph URL (http://glandium.org/blog/?p=1817) diff --git a/README.txt b/README.txt index 578eba3..2861c89 100644 --- a/README.txt +++ b/README.txt @@ -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 ====================== diff --git a/ddportfolioservice/config/environment.py b/ddportfolioservice/config/environment.py index a1fe3ba..3d666fa 100644 --- a/ddportfolioservice/config/environment.py +++ b/ddportfolioservice/config/environment.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service environment configuration -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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( diff --git a/ddportfolioservice/config/middleware.py b/ddportfolioservice/config/middleware.py index 6e87b2d..4f075ce 100644 --- a/ddportfolioservice/config/middleware.py +++ b/ddportfolioservice/config/middleware.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service middleware configuration -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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 diff --git a/ddportfolioservice/config/routing.py b/ddportfolioservice/config/routing.py index d197181..196b33c 100644 --- a/ddportfolioservice/config/routing.py +++ b/ddportfolioservice/config/routing.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service routing configuration -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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'], diff --git a/ddportfolioservice/controllers/ddportfolio.py b/ddportfolioservice/controllers/ddportfolio.py index 98a1943..7464345 100644 --- a/ddportfolioservice/controllers/ddportfolio.py +++ b/ddportfolioservice/controllers/ddportfolio.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service DdportfolioController -# Copyright © 2009, 2010, 2011 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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 \ #430986)'''), - 'reported' : N_('bugs reported'), - 'bugstats' : N_('bugstats AKA karma'), - 'usertags' : N_('user tags'), - 'searchall' : N_('all messages (i.e., full text search for \ + 'reported': N_('bugs reported'), + 'bugstats': N_('bugstats AKA karma'), + 'usertags': N_('user tags'), + 'searchall': N_('all messages (i.e., full text search for \ developer name on all bug logs)'), - 'wnpp' : N_('WNPP'), - 'correspondent' : N_('correspondent for bugs'), - 'graph' : N_('one year open bug history graph'), + 'wnpp': N_('WNPP'), + '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_('MIA 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_('MIA 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') diff --git a/ddportfolioservice/controllers/error.py b/ddportfolioservice/controllers/error.py index c20d41e..67bc56d 100644 --- a/ddportfolioservice/controllers/error.py +++ b/ddportfolioservice/controllers/error.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service ErrorController -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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')) diff --git a/ddportfolioservice/controllers/showformscripts.py b/ddportfolioservice/controllers/showformscripts.py index 9e2980c..6b826bf 100644 --- a/ddportfolioservice/controllers/showformscripts.py +++ b/ddportfolioservice/controllers/showformscripts.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service ShowformscriptController. -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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( diff --git a/ddportfolioservice/controllers/template.py b/ddportfolioservice/controllers/template.py index 0cc70b2..ce5352c 100644 --- a/ddportfolioservice/controllers/template.py +++ b/ddportfolioservice/controllers/template.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service TemplateController -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # This file is part of DDPortfolio service. # @@ -22,6 +22,7 @@ # from ddportfolioservice.lib.base import BaseController + class TemplateController(BaseController): def view(self, url): diff --git a/ddportfolioservice/i18n/ddportfolioservice.pot b/ddportfolioservice/i18n/ddportfolioservice.pot index 2125398..bc29afa 100644 --- a/ddportfolioservice/i18n/ddportfolioservice.pot +++ b/ddportfolioservice/i18n/ddportfolioservice.pot @@ -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 , 2011. +# FIRST AUTHOR , 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 \n" "Language-Team: LANGUAGE \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 "" "MIA 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 DDPortfolio page in the Debian " "Wiki. 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 diff --git a/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.mo b/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.mo index f8f1393..82b8125 100644 Binary files a/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.mo and b/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.mo differ diff --git a/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.po b/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.po index b35943b..e684ec0 100644 --- a/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.po +++ b/ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.po @@ -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 \n" "Language-Team: de \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 "" "MIA database" " information" @@ -230,15 +231,15 @@ msgstr "" "Informationen in der MIA-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 DDPortfolio page in the " "Debian Wiki. 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 DDPortfolio-Seite im Debian " "Wiki 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:" diff --git a/ddportfolioservice/lib/app_globals.py b/ddportfolioservice/lib/app_globals.py index e66df3d..e39071d 100644 --- a/ddportfolioservice/lib/app_globals.py +++ b/ddportfolioservice/lib/app_globals.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service application Globals -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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)) diff --git a/ddportfolioservice/lib/base.py b/ddportfolioservice/lib/base.py index 24d0cc4..4a93095 100644 --- a/ddportfolioservice/lib/base.py +++ b/ddportfolioservice/lib/base.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service base controller -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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) diff --git a/ddportfolioservice/model/form.py b/ddportfolioservice/model/form.py index 3f672fb..fb9e2dc 100644 --- a/ddportfolioservice/model/form.py +++ b/ddportfolioservice/model/form.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service form handling model -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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 diff --git a/ddportfolioservice/model/keyfinder.py b/ddportfolioservice/model/keyfinder.py index ba60228..d857f4d 100644 --- a/ddportfolioservice/model/keyfinder.py +++ b/ddportfolioservice/model/keyfinder.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service key finder module -# Copyright (c) 2009 Jan Dittberner +# Copyright (c) 2009, 2010, 2011, 2012 Jan Dittberner # # 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) diff --git a/ddportfolioservice/model/keyringanalyzer.py b/ddportfolioservice/model/keyringanalyzer.py index dc847d3..cc501c6 100644 --- a/ddportfolioservice/model/keyringanalyzer.py +++ b/ddportfolioservice/model/keyringanalyzer.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # DDPortfolio service application key ring analyzer tool -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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 ' into - email and realname parts.""" + """ + Parse a uid of the form 'Real Name ' 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 diff --git a/ddportfolioservice/model/urlbuilder.py b/ddportfolioservice/model/urlbuilder.py index 1a7ebc3..966ebed 100644 --- a/ddportfolioservice/model/urlbuilder.py +++ b/ddportfolioservice/model/urlbuilder.py @@ -2,7 +2,7 @@ # -*- coding: utf8 -*- # # DDPortfolio service url builder -# Copyright © 2009, 2010 Jan Dittberner +# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner # # 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, diff --git a/ddportfolioservice/templates/base.mako b/ddportfolioservice/templates/base.mako index 7656d47..f9f9293 100644 --- a/ddportfolioservice/templates/base.mako +++ b/ddportfolioservice/templates/base.mako @@ -23,7 +23,7 @@ License along with this program. If not, see - ${_('Debian Developer Portfolio Service')}${self.titleaddon()} + ${_('Debian Member Portfolio Service')}${self.titleaddon()} ${h.stylesheet_link(h.url('/stylesheets/style.css'))} ${self.extrahead()} @@ -31,10 +31,10 @@ License along with this program. If not, see diff --git a/ddportfolioservice/templates/showform.mako b/ddportfolioservice/templates/showform.mako index 5ce2931..343633c 100644 --- a/ddportfolioservice/templates/showform.mako +++ b/ddportfolioservice/templates/showform.mako @@ -27,7 +27,7 @@ License along with this program. If not, see h.url(controller='showformscripts', action='index'))} ${h.form(h.url(action='urllist', controller='ddportfolio'), method='get')}
- ${_('Debian Developer Portfolio')} + ${_('Debian Member Portfolio')}
-