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:
		
						commit
						f27e193b0f
					
				
					 25 changed files with 295 additions and 252 deletions
				
			
		| 
						 | 
					@ -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>
 | 
					2011-03-06  Jan Dittberner  <jan@dittberner.info>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* add one year bug history graph URL (http://glandium.org/blog/?p=1817)
 | 
						* add one year bug history graph URL (http://glandium.org/blog/?p=1817)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
This file is for you to describe the ddportfolioservice application. Typically
 | 
					This file is for you to describe the ddportfolioservice
 | 
				
			||||||
you would include information such as the information below:
 | 
					application. Typically you would include information such as the
 | 
				
			||||||
 | 
					information below:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Installation and Setup
 | 
					Installation and Setup
 | 
				
			||||||
======================
 | 
					======================
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service environment configuration
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -31,9 +31,10 @@ import ddportfolioservice.lib.app_globals as app_globals
 | 
				
			||||||
import ddportfolioservice.lib.helpers
 | 
					import ddportfolioservice.lib.helpers
 | 
				
			||||||
from ddportfolioservice.config.routing import make_map
 | 
					from ddportfolioservice.config.routing import make_map
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def load_environment(global_conf, app_conf):
 | 
					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()
 | 
					    config = PylonsConfig()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +46,8 @@ def load_environment(global_conf, app_conf):
 | 
				
			||||||
                 templates=[os.path.join(root, 'templates')])
 | 
					                 templates=[os.path.join(root, 'templates')])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Initialize config with the basic options
 | 
					    # 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['routes.map'] = make_map(config)
 | 
				
			||||||
    config['pylons.app_globals'] = app_globals.Globals(config)
 | 
					    config['pylons.app_globals'] = app_globals.Globals(config)
 | 
				
			||||||
| 
						 | 
					@ -55,7 +57,6 @@ def load_environment(global_conf, app_conf):
 | 
				
			||||||
    import pylons
 | 
					    import pylons
 | 
				
			||||||
    pylons.cache._push_object(config['pylons.app_globals'].cache)
 | 
					    pylons.cache._push_object(config['pylons.app_globals'].cache)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Create the Mako TemplateLookup, with the default auto-escaping
 | 
					    # Create the Mako TemplateLookup, with the default auto-escaping
 | 
				
			||||||
    config['pylons.app_globals'].mako_lookup = TemplateLookup(
 | 
					    config['pylons.app_globals'].mako_lookup = TemplateLookup(
 | 
				
			||||||
        directories=paths['templates'],
 | 
					        directories=paths['templates'],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service middleware configuration
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -32,6 +32,7 @@ from routes.middleware import RoutesMiddleware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from ddportfolioservice.config.environment import load_environment
 | 
					from ddportfolioservice.config.environment import load_environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
 | 
					def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
 | 
				
			||||||
    """Create a Pylons WSGI application and return it
 | 
					    """Create a Pylons WSGI application and return it
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service routing configuration
 | 
					# 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.
 | 
					# 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
 | 
					from routes import Mapper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def make_map(config):
 | 
					def make_map(config):
 | 
				
			||||||
    """Create, configure and return the routes Mapper"""
 | 
					    """Create, configure and return the routes Mapper"""
 | 
				
			||||||
    map = Mapper(directory=config['pylons.paths']['controllers'],
 | 
					    map = Mapper(directory=config['pylons.paths']['controllers'],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service DdportfolioController
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
import simplejson
 | 
					import simplejson
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from pylons import request, tmpl_context as c
 | 
					from pylons import request, response, tmpl_context as c
 | 
				
			||||||
from pylons.i18n import N_, _
 | 
					from pylons.i18n import N_, _
 | 
				
			||||||
import formencode.api
 | 
					import formencode.api
 | 
				
			||||||
import formencode.validators
 | 
					import formencode.validators
 | 
				
			||||||
| 
						 | 
					@ -35,91 +35,92 @@ from ddportfolioservice.model import dddatabuilder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log = logging.getLogger(__name__)
 | 
					log = logging.getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DdportfolioController(BaseController):
 | 
					class DdportfolioController(BaseController):
 | 
				
			||||||
    _LABELS = {
 | 
					    _LABELS = {
 | 
				
			||||||
        'overview' : {
 | 
					        'overview': {
 | 
				
			||||||
            'label' : N_('Overview'),
 | 
					            'label': N_('Overview'),
 | 
				
			||||||
            'ddpo'  : N_("Debian Developer's Package Overview"),
 | 
					            'ddpo': N_("Debian Member's Package Overview"),
 | 
				
			||||||
            'alladdresses' : N_("""Debian Developer's Package Overview
 | 
					            'alladdresses': N_("""Debian Member's Package Overview
 | 
				
			||||||
... showing all email addresses"""),
 | 
					... showing all email addresses"""),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'bugs' : {
 | 
					        'bugs': {
 | 
				
			||||||
            'label' : N_('Bugs'),
 | 
					            'label': N_('Bugs'),
 | 
				
			||||||
            'received' : N_('''bugs received
 | 
					            'received': N_('''bugs received
 | 
				
			||||||
(note: co-maintainers not listed, see \
 | 
					(note: co-maintainers not listed, see \
 | 
				
			||||||
<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?\
 | 
					<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?\
 | 
				
			||||||
bug=430986">#430986</a>)'''),
 | 
					bug=430986">#430986</a>)'''),
 | 
				
			||||||
            'reported' : N_('bugs reported'),
 | 
					            'reported': N_('bugs reported'),
 | 
				
			||||||
            'bugstats' : N_('bugstats AKA <em>karma</em>'),
 | 
					            'bugstats': N_('bugstats AKA <em>karma</em>'),
 | 
				
			||||||
            'usertags' : N_('user tags'),
 | 
					            'usertags': N_('user tags'),
 | 
				
			||||||
            'searchall' : N_('all messages (i.e., full text search for \
 | 
					            'searchall': N_('all messages (i.e., full text search for \
 | 
				
			||||||
developer name on all bug logs)'),
 | 
					developer name on all bug logs)'),
 | 
				
			||||||
            'wnpp' : N_('<a href="http://wiki.debian.org/WNPP">WNPP</a>'),
 | 
					            'wnpp': N_('<a href="http://wiki.debian.org/WNPP">WNPP</a>'),
 | 
				
			||||||
	    'correspondent' : N_('correspondent for bugs'),
 | 
					            'correspondent': N_('correspondent for bugs'),
 | 
				
			||||||
            'graph' : N_('one year open bug history graph'),
 | 
					            'graph': N_('one year open bug history graph'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'build' : {
 | 
					        'build': {
 | 
				
			||||||
            'label' : N_('Build'),
 | 
					            'label': N_('Build'),
 | 
				
			||||||
            'buildd' : N_('buildd.d.o'),
 | 
					            'buildd': N_('buildd.d.o'),
 | 
				
			||||||
            'igloo' : N_('igloo'),
 | 
					            'igloo': N_('igloo'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'qa' : {
 | 
					        'qa': {
 | 
				
			||||||
            'label' : N_('Quality Assurance'),
 | 
					            'label': N_('Quality Assurance'),
 | 
				
			||||||
            'lintian' : N_('lintian reports'),
 | 
					            'lintian': N_('lintian reports'),
 | 
				
			||||||
            'lintianfull' : N_('full lintian reports (i.e. including \
 | 
					            'lintianfull': N_('full lintian reports (i.e. including \
 | 
				
			||||||
"info"-level messages)'),
 | 
					"info"-level messages)'),
 | 
				
			||||||
            'dehs' : N_('DEHS (Debian External Health Status)'),
 | 
					            'dehs': N_('DEHS (Debian External Health Status)'),
 | 
				
			||||||
            'piuparts' : N_('piuparts'),
 | 
					            'piuparts': N_('piuparts'),
 | 
				
			||||||
            'patchtracker' : N_('Debian patch tracking system'),
 | 
					            'patchtracker': N_('Debian patch tracking system'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'upload' : {
 | 
					        'upload': {
 | 
				
			||||||
            'label' : N_('Upload'),
 | 
					            'label': N_('Upload'),
 | 
				
			||||||
            'keylog' : N_('''keylog (per-key upload list)
 | 
					            'keylog': N_('''keylog (per-key upload list)
 | 
				
			||||||
(note: uses key fingerprint)'''),
 | 
					(note: uses key fingerprint)'''),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'lists' : {
 | 
					        'lists': {
 | 
				
			||||||
            'label' : N_('Mailing Lists'),
 | 
					            'label': N_('Mailing Lists'),
 | 
				
			||||||
            'dolists' : N_('lists.d.o'),
 | 
					            'dolists': N_('lists.d.o'),
 | 
				
			||||||
            'adolists' : N_('lists.a.d.o'),
 | 
					            'adolists': N_('lists.a.d.o'),
 | 
				
			||||||
            'gmane' : N_('gmane'),
 | 
					            'gmane': N_('gmane'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'files' : {
 | 
					        'files': {
 | 
				
			||||||
            'label' : N_('Files'),
 | 
					            'label': N_('Files'),
 | 
				
			||||||
            'people' : N_('people.d.o'),
 | 
					            'people': N_('people.d.o'),
 | 
				
			||||||
            'oldpeople' : N_('oldpeople'),
 | 
					            'oldpeople': N_('oldpeople'),
 | 
				
			||||||
            'alioth' : N_('Alioth'),
 | 
					            'alioth': N_('Alioth'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'membership' : {
 | 
					        'membership': {
 | 
				
			||||||
            'label' : N_('Membership'),
 | 
					            'label': N_('Membership'),
 | 
				
			||||||
            'nm' : N_('NM'),
 | 
					            'nm': N_('NM'),
 | 
				
			||||||
            'dbfinger' : N_('DB information via finger'),
 | 
					            'dbfinger': N_('DB information via finger'),
 | 
				
			||||||
            'db' : N_('DB information via HTTP'),
 | 
					            'db': N_('DB information via HTTP'),
 | 
				
			||||||
            'alioth' : N_('Alioth'),
 | 
					            'alioth': N_('Alioth'),
 | 
				
			||||||
            'wiki' : N_('Wiki'),
 | 
					            'wiki': N_('Wiki'),
 | 
				
			||||||
            'forum' : N_('Forum'),
 | 
					            'forum': N_('Forum'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'miscellaneous' : {
 | 
					        'miscellaneous': {
 | 
				
			||||||
            'label' : N_('Miscellaneous'),
 | 
					            'label': N_('Miscellaneous'),
 | 
				
			||||||
            'debtags' : N_('debtags'),
 | 
					            'debtags': N_('debtags'),
 | 
				
			||||||
            'links' : N_('links'),
 | 
					            'links': N_('links'),
 | 
				
			||||||
            'website' : N_('Debian website'),
 | 
					            'website': N_('Debian website'),
 | 
				
			||||||
            'search' : N_('Debian search'),
 | 
					            'search': N_('Debian search'),
 | 
				
			||||||
            'gpgfinger' : N_('GPG public key via finger'),
 | 
					            'gpgfinger': N_('GPG public key via finger'),
 | 
				
			||||||
            'gpgweb' : N_('GPG public key via HTTP'),
 | 
					            'gpgweb': N_('GPG public key via HTTP'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        'ssh' : {
 | 
					        'ssh': {
 | 
				
			||||||
            'label' : N_('Information reachable via ssh (for DDs)'),
 | 
					            'label': N_('Information reachable via ssh (for Debian Members)'),
 | 
				
			||||||
            'owndndoms' : N_('owned debian.net domains'),
 | 
					            'owndndoms': N_('owned debian.net domains'),
 | 
				
			||||||
            'miainfo' : N_('<a href="http://wiki.debian.org/qa.debian.org/MIATeam">MIA</a> database information'),
 | 
					            'miainfo': N_('<a href="http://wiki.debian.org/qa.debian.org/'
 | 
				
			||||||
            'groupinfo' : N_('Group membership information'),
 | 
					                          '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'),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def _get_label(self, section, url=None):
 | 
					    def _get_label(self, section, url=None):
 | 
				
			||||||
        if section in self._LABELS:
 | 
					        if section in self._LABELS:
 | 
				
			||||||
            if url:
 | 
					            if url:
 | 
				
			||||||
| 
						 | 
					@ -131,11 +132,10 @@ developer name on all bug logs)'),
 | 
				
			||||||
            return "%s.%s" % (section, url)
 | 
					            return "%s.%s" % (section, url)
 | 
				
			||||||
        return section
 | 
					        return section
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def index(self):
 | 
					    def index(self):
 | 
				
			||||||
        # Return a rendered template
 | 
					        """
 | 
				
			||||||
        #   return render('/some/template.mako')
 | 
					        Render the input form.
 | 
				
			||||||
        # or, Return a response
 | 
					        """
 | 
				
			||||||
        return render('/showform.mako')
 | 
					        return render('/showform.mako')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def urllist(self):
 | 
					    def urllist(self):
 | 
				
			||||||
| 
						 | 
					@ -147,7 +147,7 @@ developer name on all bug logs)'),
 | 
				
			||||||
                languages=[lang[0:2] for lang in request.languages])
 | 
					                languages=[lang[0:2] for lang in request.languages])
 | 
				
			||||||
            form_result = schema.to_python(request.params)
 | 
					            form_result = schema.to_python(request.params)
 | 
				
			||||||
        except formencode.validators.Invalid, error:
 | 
					        except formencode.validators.Invalid, error:
 | 
				
			||||||
            c.messages = { 'errors' : error.unpack_errors() }
 | 
					            c.messages = {'errors': error.unpack_errors()}
 | 
				
			||||||
            return render('/showform.mako')
 | 
					            return render('/showform.mako')
 | 
				
			||||||
        fields = dddatabuilder.build_data(form_result['email'])
 | 
					        fields = dddatabuilder.build_data(form_result['email'])
 | 
				
			||||||
        rp = request.params.copy()
 | 
					        rp = request.params.copy()
 | 
				
			||||||
| 
						 | 
					@ -174,7 +174,7 @@ developer name on all bug logs)'),
 | 
				
			||||||
                languages=[lang[0:2] for lang in request.languages])
 | 
					                languages=[lang[0:2] for lang in request.languages])
 | 
				
			||||||
            form_result = schema.to_python(rp)
 | 
					            form_result = schema.to_python(rp)
 | 
				
			||||||
        except formencode.validators.Invalid, error:
 | 
					        except formencode.validators.Invalid, error:
 | 
				
			||||||
            c.messages = { 'errors' : error.unpack_errors() }
 | 
					            c.messages = {'errors': error.unpack_errors()}
 | 
				
			||||||
            return render('/showform.mako')
 | 
					            return render('/showform.mako')
 | 
				
			||||||
        if form_result['wikihomepage'] is None:
 | 
					        if form_result['wikihomepage'] is None:
 | 
				
			||||||
            log.debug('generate wikihomepage from name')
 | 
					            log.debug('generate wikihomepage from name')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service ErrorController
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -30,8 +30,8 @@ from webhelpers.html.builder import literal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from ddportfolioservice.lib.base import BaseController
 | 
					from ddportfolioservice.lib.base import BaseController
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ErrorController(BaseController):
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ErrorController(BaseController):
 | 
				
			||||||
    """Generates error documents as and when they are required.
 | 
					    """Generates error documents as and when they are required.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    The ErrorDocuments middleware forwards to ErrorController when error
 | 
					    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
 | 
					    This behaviour can be altered by changing the parameters to the
 | 
				
			||||||
    ErrorDocuments middleware in your config/middleware.py file.
 | 
					    ErrorDocuments middleware in your config/middleware.py file.
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def document(self):
 | 
					    def document(self):
 | 
				
			||||||
        """Render the error document"""
 | 
					        """Render the error document"""
 | 
				
			||||||
        resp = request.environ.get('pylons.original_response')
 | 
					        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 % \
 | 
					        page = error_document_template % \
 | 
				
			||||||
            dict(prefix=request.environ.get('SCRIPT_NAME', ''),
 | 
					            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)
 | 
					                 message=content)
 | 
				
			||||||
        return page
 | 
					        return page
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,8 +62,9 @@ class ErrorController(BaseController):
 | 
				
			||||||
        return self._serve_file('/'.join(['media/style', id]))
 | 
					        return self._serve_file('/'.join(['media/style', id]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _serve_file(self, path):
 | 
					    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
 | 
					        request.environ['PATH_INFO'] = '/%s' % path
 | 
				
			||||||
        return forward(PkgResourcesParser('pylons', 'pylons'))
 | 
					        return forward(PkgResourcesParser('pylons', 'pylons'))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service ShowformscriptController.
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ from ddportfolioservice.model import dddatabuilder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log = logging.getLogger(__name__)
 | 
					log = logging.getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ShowformscriptsController(BaseController):
 | 
					class ShowformscriptsController(BaseController):
 | 
				
			||||||
    """This controller is used to support data entry in showform.
 | 
					    """This controller is used to support data entry in showform.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,12 +42,17 @@ class ShowformscriptsController(BaseController):
 | 
				
			||||||
    responses for autocompletion of fields."""
 | 
					    responses for autocompletion of fields."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def index(self):
 | 
					    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'
 | 
					        response.headers['Content-Type'] = 'text/javascript; charset=utf-8'
 | 
				
			||||||
        return render('/showformscript.mako')
 | 
					        return render('/showformscript.mako')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def fetchdddata(self):
 | 
					    def fetchdddata(self):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        This action fetches the data for a given mail address and
 | 
				
			||||||
 | 
					        returns them as JSON.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
        schema = DDDataRequest()
 | 
					        schema = DDDataRequest()
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            formencode.api.set_stdtranslation(
 | 
					            formencode.api.set_stdtranslation(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service TemplateController
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,7 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
from ddportfolioservice.lib.base import BaseController
 | 
					from ddportfolioservice.lib.base import BaseController
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TemplateController(BaseController):
 | 
					class TemplateController(BaseController):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def view(self, url):
 | 
					    def view(self, url):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,34 +1,34 @@
 | 
				
			||||||
# Translations template for ddportfolioservice.
 | 
					# Translations template for ddportfolioservice.
 | 
				
			||||||
# Copyright (C) 2011 ORGANIZATION
 | 
					# Copyright (C) 2012 ORGANIZATION
 | 
				
			||||||
# This file is distributed under the same license as the ddportfolioservice
 | 
					# This file is distributed under the same license as the ddportfolioservice
 | 
				
			||||||
# project.
 | 
					# project.
 | 
				
			||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
 | 
					# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#, fuzzy
 | 
					#, fuzzy
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Project-Id-Version: ddportfolioservice 0.2.1\n"
 | 
					"Project-Id-Version: ddportfolioservice 0.2.1\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\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"
 | 
					"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
				
			||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
					"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
				
			||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
					"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"Content-Type: text/plain; charset=utf-8\n"
 | 
					"Content-Type: text/plain; charset=utf-8\n"
 | 
				
			||||||
"Content-Transfer-Encoding: 8bit\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
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:41
 | 
				
			||||||
msgid "Overview"
 | 
					msgid "Overview"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:42
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:42
 | 
				
			||||||
msgid "Debian Developer's Package Overview"
 | 
					msgid "Debian Member's Package Overview"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:43
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:43
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Debian Developer's Package Overview\n"
 | 
					"Debian Member's Package Overview\n"
 | 
				
			||||||
"... showing all email addresses"
 | 
					"... showing all email addresses"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,152 +79,152 @@ msgstr ""
 | 
				
			||||||
msgid "buildd.d.o"
 | 
					msgid "buildd.d.o"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:65
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:64
 | 
				
			||||||
msgid "igloo"
 | 
					msgid "igloo"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:68
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:67
 | 
				
			||||||
msgid "Quality Assurance"
 | 
					msgid "Quality Assurance"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:69
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:68
 | 
				
			||||||
msgid "lintian reports"
 | 
					msgid "lintian reports"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:70
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:69
 | 
				
			||||||
msgid "full lintian reports (i.e. including \"info\"-level messages)"
 | 
					msgid "full lintian reports (i.e. including \"info\"-level messages)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:72
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:71
 | 
				
			||||||
msgid "DEHS (Debian External Health Status)"
 | 
					msgid "DEHS (Debian External Health Status)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:73
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:72
 | 
				
			||||||
msgid "piuparts"
 | 
					msgid "piuparts"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:74
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:73
 | 
				
			||||||
msgid "Debian patch tracking system"
 | 
					msgid "Debian patch tracking system"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:77
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:76
 | 
				
			||||||
msgid "Upload"
 | 
					msgid "Upload"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:78
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:77
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"keylog (per-key upload list)\n"
 | 
					"keylog (per-key upload list)\n"
 | 
				
			||||||
"(note: uses key fingerprint)"
 | 
					"(note: uses key fingerprint)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:82
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:81
 | 
				
			||||||
msgid "Mailing Lists"
 | 
					msgid "Mailing Lists"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:83
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:82
 | 
				
			||||||
msgid "lists.d.o"
 | 
					msgid "lists.d.o"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:84
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:83
 | 
				
			||||||
msgid "lists.a.d.o"
 | 
					msgid "lists.a.d.o"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:85
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:84
 | 
				
			||||||
msgid "gmane"
 | 
					msgid "gmane"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:88
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:87
 | 
				
			||||||
msgid "Files"
 | 
					msgid "Files"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:89
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:88
 | 
				
			||||||
msgid "people.d.o"
 | 
					msgid "people.d.o"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:90
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:89
 | 
				
			||||||
msgid "oldpeople"
 | 
					msgid "oldpeople"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:91
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:90
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:98
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:97
 | 
				
			||||||
msgid "Alioth"
 | 
					msgid "Alioth"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:94
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:93
 | 
				
			||||||
msgid "Membership"
 | 
					msgid "Membership"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:95
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:94
 | 
				
			||||||
msgid "NM"
 | 
					msgid "NM"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:96
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:95
 | 
				
			||||||
msgid "DB information via finger"
 | 
					msgid "DB information via finger"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:97
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:96
 | 
				
			||||||
msgid "DB information via HTTP"
 | 
					msgid "DB information via HTTP"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:99
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:98
 | 
				
			||||||
msgid "Wiki"
 | 
					msgid "Wiki"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:100
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:99
 | 
				
			||||||
msgid "Forum"
 | 
					msgid "Forum"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:103
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:102
 | 
				
			||||||
msgid "Miscellaneous"
 | 
					msgid "Miscellaneous"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:104
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:103
 | 
				
			||||||
msgid "debtags"
 | 
					msgid "debtags"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:105
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:104
 | 
				
			||||||
msgid "links"
 | 
					msgid "links"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:106
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:105
 | 
				
			||||||
msgid "Debian website"
 | 
					msgid "Debian website"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:107
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:106
 | 
				
			||||||
msgid "Debian search"
 | 
					msgid "Debian search"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:108
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:107
 | 
				
			||||||
msgid "GPG public key via finger"
 | 
					msgid "GPG public key via finger"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:109
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:108
 | 
				
			||||||
msgid "GPG public key via HTTP"
 | 
					msgid "GPG public key via HTTP"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:112
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:111
 | 
				
			||||||
msgid "Information reachable via ssh (for DDs)"
 | 
					msgid "Information reachable via ssh (for Debian Members)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:113
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:112
 | 
				
			||||||
msgid "owned debian.net domains"
 | 
					msgid "owned debian.net domains"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:114
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:113
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
 | 
					"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
 | 
				
			||||||
"information"
 | 
					"information"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:115
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:114
 | 
				
			||||||
msgid "Group membership information"
 | 
					msgid "Group membership information"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:118
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:117
 | 
				
			||||||
msgid "Ubuntu"
 | 
					msgid "Ubuntu"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:119
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:118
 | 
				
			||||||
msgid "Available patches from Ubuntu"
 | 
					msgid "Available patches from Ubuntu"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -245,7 +245,7 @@ msgid "Debian user name"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/model/urlbuilder.py:44
 | 
					#: ddportfolioservice/model/urlbuilder.py:44
 | 
				
			||||||
msgid "Non DD email address"
 | 
					msgid "Non Debian email address"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/model/urlbuilder.py:45
 | 
					#: ddportfolioservice/model/urlbuilder.py:45
 | 
				
			||||||
| 
						 | 
					@ -260,7 +260,7 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:26
 | 
					#: ddportfolioservice/templates/base.mako:26
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:34
 | 
					#: ddportfolioservice/templates/base.mako:34
 | 
				
			||||||
msgid "Debian Developer Portfolio Service"
 | 
					msgid "Debian Member Portfolio Service"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:32
 | 
					#: ddportfolioservice/templates/base.mako:32
 | 
				
			||||||
| 
						 | 
					@ -272,7 +272,7 @@ msgid ""
 | 
				
			||||||
"This service has been inspired by Stefano Zacchiroli's <a "
 | 
					"This service has been inspired by Stefano Zacchiroli's <a "
 | 
				
			||||||
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio page in the Debian "
 | 
					"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 "
 | 
					"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 ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:46
 | 
					#: ddportfolioservice/templates/base.mako:46
 | 
				
			||||||
| 
						 | 
					@ -292,7 +292,7 @@ msgid ""
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:49
 | 
					#: ddportfolioservice/templates/base.mako:49
 | 
				
			||||||
msgid "Copyright © 2009, 2010, 2011 Jan Dittberner"
 | 
					msgid "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:24
 | 
					#: ddportfolioservice/templates/showform.mako:24
 | 
				
			||||||
| 
						 | 
					@ -301,7 +301,7 @@ msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:30
 | 
					#: ddportfolioservice/templates/showform.mako:30
 | 
				
			||||||
#: ddportfolioservice/templates/showurls.mako:28
 | 
					#: ddportfolioservice/templates/showurls.mako:28
 | 
				
			||||||
msgid "Debian Developer Portfolio"
 | 
					msgid "Debian Member Portfolio"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:36
 | 
					#: ddportfolioservice/templates/showform.mako:36
 | 
				
			||||||
| 
						 | 
					@ -325,7 +325,7 @@ msgid "Debian user name:"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:94
 | 
					#: ddportfolioservice/templates/showform.mako:94
 | 
				
			||||||
msgid "Non DD email address:"
 | 
					msgid "Non Debian email address:"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:109
 | 
					#: ddportfolioservice/templates/showform.mako:109
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -9,29 +9,30 @@ msgstr ""
 | 
				
			||||||
"Project-Id-Version: ddportfolioservice 0.2.1\n"
 | 
					"Project-Id-Version: ddportfolioservice 0.2.1\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
 | 
					"Report-Msgid-Bugs-To: jan@dittberner.info\n"
 | 
				
			||||||
"POT-Creation-Date: 2009-01-20 23:13+0100\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"
 | 
					"Last-Translator: Jan Dittberner <jan@dittberner.info>\n"
 | 
				
			||||||
"Language-Team: de <de@li.org>\n"
 | 
					"Language-Team: de <de@li.org>\n"
 | 
				
			||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 | 
					"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 | 
				
			||||||
"MIME-Version: 1.0\n"
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
"Content-Type: text/plain; charset=utf-8\n"
 | 
					"Content-Type: text/plain; charset=utf-8\n"
 | 
				
			||||||
"Content-Transfer-Encoding: 8bit\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
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:41
 | 
				
			||||||
msgid "Overview"
 | 
					msgid "Overview"
 | 
				
			||||||
msgstr "Überblick"
 | 
					msgstr "Überblick"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:42
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:42
 | 
				
			||||||
msgid "Debian Developer's Package Overview"
 | 
					msgid "Debian Member's Package Overview"
 | 
				
			||||||
msgstr "Paketübersicht des Debian-Entwicklers"
 | 
					msgstr "Paketübersicht des Debian-Mitglieds"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:43
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:43
 | 
				
			||||||
 | 
					#| addresses"
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Debian Developer's Package Overview\n"
 | 
					"Debian Member's Package Overview\n"
 | 
				
			||||||
"... showing all email addresses"
 | 
					"... showing all email addresses"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Paketübersicht des Debian-Entwicklers\n"
 | 
					"Paketübersicht des Debian-Mitglieds\n"
 | 
				
			||||||
"... mit allen E-Mailadressen"
 | 
					"... mit allen E-Mailadressen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:47
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:47
 | 
				
			||||||
| 
						 | 
					@ -83,45 +84,45 @@ msgstr "Graph der Entwicklung offener Fehlerberichte über ein Jahr"
 | 
				
			||||||
msgid "Build"
 | 
					msgid "Build"
 | 
				
			||||||
msgstr "Build"
 | 
					msgstr "Build"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:62
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:63
 | 
				
			||||||
msgid "buildd.d.o"
 | 
					msgid "buildd.d.o"
 | 
				
			||||||
msgstr "buildd.d.o"
 | 
					msgstr "buildd.d.o"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:65
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:64
 | 
				
			||||||
msgid "igloo"
 | 
					msgid "igloo"
 | 
				
			||||||
msgstr "Igloo"
 | 
					msgstr "Igloo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:68
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:67
 | 
				
			||||||
msgid "Quality Assurance"
 | 
					msgid "Quality Assurance"
 | 
				
			||||||
msgstr "Qualitätssicherung"
 | 
					msgstr "Qualitätssicherung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:69
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:68
 | 
				
			||||||
msgid "lintian reports"
 | 
					msgid "lintian reports"
 | 
				
			||||||
msgstr "Lintian-Berichte"
 | 
					msgstr "Lintian-Berichte"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:70
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:69
 | 
				
			||||||
msgid "full lintian reports (i.e. including \"info\"-level messages)"
 | 
					msgid "full lintian reports (i.e. including \"info\"-level messages)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"vollständige Lintian-Berichte (d.h. inklusive Meldungen der Stufe "
 | 
					"vollständige Lintian-Berichte (d.h. inklusive Meldungen der Stufe "
 | 
				
			||||||
"\"info\")"
 | 
					"\"info\")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:72
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:71
 | 
				
			||||||
msgid "DEHS (Debian External Health Status)"
 | 
					msgid "DEHS (Debian External Health Status)"
 | 
				
			||||||
msgstr "DEHS (Debian External Health Status)"
 | 
					msgstr "DEHS (Debian External Health Status)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:73
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:72
 | 
				
			||||||
msgid "piuparts"
 | 
					msgid "piuparts"
 | 
				
			||||||
msgstr "piuparts"
 | 
					msgstr "piuparts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:74
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:73
 | 
				
			||||||
msgid "Debian patch tracking system"
 | 
					msgid "Debian patch tracking system"
 | 
				
			||||||
msgstr "Debian Nachverfolgungssystem für Patches"
 | 
					msgstr "Debian Nachverfolgungssystem für Patches"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:77
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:76
 | 
				
			||||||
msgid "Upload"
 | 
					msgid "Upload"
 | 
				
			||||||
msgstr "Upload"
 | 
					msgstr "Upload"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:78
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:77
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"keylog (per-key upload list)\n"
 | 
					"keylog (per-key upload list)\n"
 | 
				
			||||||
"(note: uses key fingerprint)"
 | 
					"(note: uses key fingerprint)"
 | 
				
			||||||
| 
						 | 
					@ -129,100 +130,100 @@ msgstr ""
 | 
				
			||||||
"Keylog\n"
 | 
					"Keylog\n"
 | 
				
			||||||
"(Anmerkung: verwendet den Fingerabdruck des Schlüssels)"
 | 
					"(Anmerkung: verwendet den Fingerabdruck des Schlüssels)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:82
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:81
 | 
				
			||||||
msgid "Mailing Lists"
 | 
					msgid "Mailing Lists"
 | 
				
			||||||
msgstr "Mailinglisten"
 | 
					msgstr "Mailinglisten"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:83
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:82
 | 
				
			||||||
msgid "lists.d.o"
 | 
					msgid "lists.d.o"
 | 
				
			||||||
msgstr "lists.d.o"
 | 
					msgstr "lists.d.o"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:84
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:83
 | 
				
			||||||
msgid "lists.a.d.o"
 | 
					msgid "lists.a.d.o"
 | 
				
			||||||
msgstr "lists.a.d.o"
 | 
					msgstr "lists.a.d.o"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:85
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:84
 | 
				
			||||||
msgid "gmane"
 | 
					msgid "gmane"
 | 
				
			||||||
msgstr "Gmane"
 | 
					msgstr "Gmane"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:88
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:87
 | 
				
			||||||
msgid "Files"
 | 
					msgid "Files"
 | 
				
			||||||
msgstr "Dateien"
 | 
					msgstr "Dateien"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:89
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:88
 | 
				
			||||||
msgid "people.d.o"
 | 
					msgid "people.d.o"
 | 
				
			||||||
msgstr "people.d.o"
 | 
					msgstr "people.d.o"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:90
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:89
 | 
				
			||||||
msgid "oldpeople"
 | 
					msgid "oldpeople"
 | 
				
			||||||
msgstr "oldpeople"
 | 
					msgstr "oldpeople"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:91
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:90
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:98
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:97
 | 
				
			||||||
msgid "Alioth"
 | 
					msgid "Alioth"
 | 
				
			||||||
msgstr "Alioth"
 | 
					msgstr "Alioth"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:94
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:93
 | 
				
			||||||
msgid "Membership"
 | 
					msgid "Membership"
 | 
				
			||||||
msgstr "Mitgliedschaft"
 | 
					msgstr "Mitgliedschaft"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:95
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:94
 | 
				
			||||||
msgid "NM"
 | 
					msgid "NM"
 | 
				
			||||||
msgstr "NM"
 | 
					msgstr "NM"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:96
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:95
 | 
				
			||||||
msgid "DB information via finger"
 | 
					msgid "DB information via finger"
 | 
				
			||||||
msgstr "DB-Informationen per finger"
 | 
					msgstr "DB-Informationen per finger"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:97
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:96
 | 
				
			||||||
msgid "DB information via HTTP"
 | 
					msgid "DB information via HTTP"
 | 
				
			||||||
msgstr "DB-Informationen per HTTP"
 | 
					msgstr "DB-Informationen per HTTP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:99
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:98
 | 
				
			||||||
msgid "Wiki"
 | 
					msgid "Wiki"
 | 
				
			||||||
msgstr "Wiki"
 | 
					msgstr "Wiki"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:100
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:99
 | 
				
			||||||
msgid "Forum"
 | 
					msgid "Forum"
 | 
				
			||||||
msgstr "Forum"
 | 
					msgstr "Forum"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:103
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:102
 | 
				
			||||||
msgid "Miscellaneous"
 | 
					msgid "Miscellaneous"
 | 
				
			||||||
msgstr "Sonstiges"
 | 
					msgstr "Sonstiges"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:104
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:103
 | 
				
			||||||
msgid "debtags"
 | 
					msgid "debtags"
 | 
				
			||||||
msgstr "debtags"
 | 
					msgstr "debtags"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:105
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:104
 | 
				
			||||||
msgid "links"
 | 
					msgid "links"
 | 
				
			||||||
msgstr "Links"
 | 
					msgstr "Links"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:106
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:105
 | 
				
			||||||
msgid "Debian website"
 | 
					msgid "Debian website"
 | 
				
			||||||
msgstr "Debian Webseite"
 | 
					msgstr "Debian Webseite"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:107
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:106
 | 
				
			||||||
msgid "Debian search"
 | 
					msgid "Debian search"
 | 
				
			||||||
msgstr "Debian-Suche"
 | 
					msgstr "Debian-Suche"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:108
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:107
 | 
				
			||||||
msgid "GPG public key via finger"
 | 
					msgid "GPG public key via finger"
 | 
				
			||||||
msgstr "öffentlicher GPG-Schlüssel per finger"
 | 
					msgstr "öffentlicher GPG-Schlüssel per finger"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:109
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:108
 | 
				
			||||||
msgid "GPG public key via HTTP"
 | 
					msgid "GPG public key via HTTP"
 | 
				
			||||||
msgstr "öffentlicher GPG-Schlüssel per HTTP"
 | 
					msgstr "öffentlicher GPG-Schlüssel per HTTP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:112
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:111
 | 
				
			||||||
msgid "Information reachable via ssh (for DDs)"
 | 
					msgid "Information reachable via ssh (for Debian Members)"
 | 
				
			||||||
msgstr "Per ssh erreichbare Informationen (für DDs)"
 | 
					msgstr "Per ssh erreichbare Informationen (für Debian Mitglieder)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:113
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:112
 | 
				
			||||||
msgid "owned debian.net domains"
 | 
					msgid "owned debian.net domains"
 | 
				
			||||||
msgstr "Besitz von debian.net-Domains"
 | 
					msgstr "Besitz von debian.net-Domains"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:114
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:113
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database"
 | 
					"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database"
 | 
				
			||||||
" information"
 | 
					" information"
 | 
				
			||||||
| 
						 | 
					@ -230,15 +231,15 @@ msgstr ""
 | 
				
			||||||
"Informationen in der <a "
 | 
					"Informationen in der <a "
 | 
				
			||||||
"href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>-Datenbank"
 | 
					"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"
 | 
					msgid "Group membership information"
 | 
				
			||||||
msgstr "Information über Gruppenmitgliedschaften"
 | 
					msgstr "Information über Gruppenmitgliedschaften"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:118
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:117
 | 
				
			||||||
msgid "Ubuntu"
 | 
					msgid "Ubuntu"
 | 
				
			||||||
msgstr "Ubuntu"
 | 
					msgstr "Ubuntu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/controllers/ddportfolio.py:119
 | 
					#: ddportfolioservice/controllers/ddportfolio.py:118
 | 
				
			||||||
msgid "Available patches from Ubuntu"
 | 
					msgid "Available patches from Ubuntu"
 | 
				
			||||||
msgstr "Verfügbare Patches aus Ubuntu"
 | 
					msgstr "Verfügbare Patches aus Ubuntu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -259,8 +260,8 @@ msgid "Debian user name"
 | 
				
			||||||
msgstr "Debian-Benutzername"
 | 
					msgstr "Debian-Benutzername"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/model/urlbuilder.py:44
 | 
					#: ddportfolioservice/model/urlbuilder.py:44
 | 
				
			||||||
msgid "Non DD email address"
 | 
					msgid "Non Debian email address"
 | 
				
			||||||
msgstr "Nicht-DD E-Mailadresse:"
 | 
					msgstr "Nicht-Debian-E-Mailadresse"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/model/urlbuilder.py:45
 | 
					#: ddportfolioservice/model/urlbuilder.py:45
 | 
				
			||||||
msgid "Alioth user name"
 | 
					msgid "Alioth user name"
 | 
				
			||||||
| 
						 | 
					@ -274,8 +275,8 @@ msgstr "Fehlende Eingabe: %s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:26
 | 
					#: ddportfolioservice/templates/base.mako:26
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:34
 | 
					#: ddportfolioservice/templates/base.mako:34
 | 
				
			||||||
msgid "Debian Developer Portfolio Service"
 | 
					msgid "Debian Member Portfolio Service"
 | 
				
			||||||
msgstr "Debian-Entwicklerportfolioservice"
 | 
					msgstr "Debian-Mitglieder-Portfolioservice"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:32
 | 
					#: ddportfolioservice/templates/base.mako:32
 | 
				
			||||||
msgid "Debian Logo"
 | 
					msgid "Debian Logo"
 | 
				
			||||||
| 
						 | 
					@ -286,12 +287,12 @@ msgid ""
 | 
				
			||||||
"This service has been inspired by Stefano Zacchiroli's <a "
 | 
					"This service has been inspired by Stefano Zacchiroli's <a "
 | 
				
			||||||
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
 | 
					"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 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 ""
 | 
					msgstr ""
 | 
				
			||||||
"Dieser Dienst wurde durch Stefano Zacchirolis <a "
 | 
					"Dieser Dienst wurde durch Stefano Zacchirolis <a "
 | 
				
			||||||
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio-Seite im Debian "
 | 
					"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio-Seite im Debian "
 | 
				
			||||||
"Wiki</a> inspiriert. Mit dem Dienst können personalisierte Links zu "
 | 
					"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."
 | 
					" erzeugt werden."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:46
 | 
					#: ddportfolioservice/templates/base.mako:46
 | 
				
			||||||
| 
						 | 
					@ -321,8 +322,8 @@ msgstr ""
 | 
				
			||||||
"klonen."
 | 
					"klonen."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/base.mako:49
 | 
					#: ddportfolioservice/templates/base.mako:49
 | 
				
			||||||
msgid "Copyright © 2009, 2010, 2011 Jan Dittberner"
 | 
					msgid "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
 | 
				
			||||||
msgstr "Copyright © 2009, 2010, 2011 Jan Dittberner"
 | 
					msgstr "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:24
 | 
					#: ddportfolioservice/templates/showform.mako:24
 | 
				
			||||||
msgid "Enter your personal information"
 | 
					msgid "Enter your personal information"
 | 
				
			||||||
| 
						 | 
					@ -330,8 +331,8 @@ msgstr "Eingabe der persönlichen Informationen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:30
 | 
					#: ddportfolioservice/templates/showform.mako:30
 | 
				
			||||||
#: ddportfolioservice/templates/showurls.mako:28
 | 
					#: ddportfolioservice/templates/showurls.mako:28
 | 
				
			||||||
msgid "Debian Developer Portfolio"
 | 
					msgid "Debian Member Portfolio"
 | 
				
			||||||
msgstr "Debian-Entwicklerportfolio"
 | 
					msgstr "Debian-Mitgliedererportfolio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:36
 | 
					#: ddportfolioservice/templates/showform.mako:36
 | 
				
			||||||
msgid "Email address:"
 | 
					msgid "Email address:"
 | 
				
			||||||
| 
						 | 
					@ -354,8 +355,8 @@ msgid "Debian user name:"
 | 
				
			||||||
msgstr "Debian-Benutzername:"
 | 
					msgstr "Debian-Benutzername:"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:94
 | 
					#: ddportfolioservice/templates/showform.mako:94
 | 
				
			||||||
msgid "Non DD email address:"
 | 
					msgid "Non Debian email address:"
 | 
				
			||||||
msgstr "Nicht-DD-E-Mailadresse"
 | 
					msgstr "Nicht-Debian-E-Mailadresse"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: ddportfolioservice/templates/showform.mako:109
 | 
					#: ddportfolioservice/templates/showform.mako:109
 | 
				
			||||||
msgid "Alioth user name:"
 | 
					msgid "Alioth user name:"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service application Globals
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -25,17 +25,17 @@
 | 
				
			||||||
from beaker.cache import CacheManager
 | 
					from beaker.cache import CacheManager
 | 
				
			||||||
from beaker.util import parse_cache_config_options
 | 
					from beaker.util import parse_cache_config_options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Globals(object):
 | 
					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
 | 
					    life of the application
 | 
				
			||||||
 | 
					 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, config):
 | 
					    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
 | 
					        initialization and is available during requests via the
 | 
				
			||||||
        'app_globals' variable
 | 
					        'app_globals' variable
 | 
				
			||||||
 | 
					 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        self.cache = CacheManager(**parse_cache_config_options(config))
 | 
					        self.cache = CacheManager(**parse_cache_config_options(config))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service base controller
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,7 @@ from pylons.controllers import WSGIController
 | 
				
			||||||
from pylons.i18n import add_fallback
 | 
					from pylons.i18n import add_fallback
 | 
				
			||||||
from pylons.templating import render_mako as render
 | 
					from pylons.templating import render_mako as render
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BaseController(WSGIController):
 | 
					class BaseController(WSGIController):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __call__(self, environ, start_response):
 | 
					    def __call__(self, environ, start_response):
 | 
				
			||||||
| 
						 | 
					@ -42,5 +43,5 @@ class BaseController(WSGIController):
 | 
				
			||||||
                add_fallback(lang)
 | 
					                add_fallback(lang)
 | 
				
			||||||
            except:
 | 
					            except:
 | 
				
			||||||
                pass
 | 
					                pass
 | 
				
			||||||
        c.messages = { 'errors': [], 'messages': [] }
 | 
					        c.messages = {'errors': [], 'messages': []}
 | 
				
			||||||
        return WSGIController.__call__(self, environ, start_response)
 | 
					        return WSGIController.__call__(self, environ, start_response)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service form handling model
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,7 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
import formencode
 | 
					import formencode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DeveloperData(formencode.Schema):
 | 
					class DeveloperData(formencode.Schema):
 | 
				
			||||||
    """Validation schema for DeveloperData."""
 | 
					    """Validation schema for DeveloperData."""
 | 
				
			||||||
    allow_extra_fields = True
 | 
					    allow_extra_fields = True
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service key finder module
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,7 @@ import time
 | 
				
			||||||
db = None
 | 
					db = None
 | 
				
			||||||
cachetimestamp = 0
 | 
					cachetimestamp = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _get_keyring_cache():
 | 
					def _get_keyring_cache():
 | 
				
			||||||
    global db, cachetimestamp
 | 
					    global db, cachetimestamp
 | 
				
			||||||
    if db is None or (time.time() - cachetimestamp) > 86300:
 | 
					    if db is None or (time.time() - cachetimestamp) > 86300:
 | 
				
			||||||
| 
						 | 
					@ -44,6 +45,7 @@ def _get_keyring_cache():
 | 
				
			||||||
        cachetimestamp = time.time()
 | 
					        cachetimestamp = time.time()
 | 
				
			||||||
    return db
 | 
					    return db
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _get_cached(cachekey):
 | 
					def _get_cached(cachekey):
 | 
				
			||||||
    cache = _get_keyring_cache()
 | 
					    cache = _get_keyring_cache()
 | 
				
			||||||
    logging.debug('cache lookup for %s', cachekey)
 | 
					    logging.debug('cache lookup for %s', cachekey)
 | 
				
			||||||
| 
						 | 
					@ -52,25 +54,33 @@ def _get_cached(cachekey):
 | 
				
			||||||
        return cache[cachekey]
 | 
					        return cache[cachekey]
 | 
				
			||||||
    return None
 | 
					    return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def getFingerprintByEmail(email):
 | 
					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)
 | 
					    return _get_cached('fpr:email:%s' % email)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def getRealnameByEmail(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)
 | 
					    return _get_cached('name:email:%s' % email)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def getLoginByEmail(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)
 | 
					    return _get_cached('login:email:%s' % email)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def getLoginByFingerprint(fpr):
 | 
					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)
 | 
					    return _get_cached('login:fpr:%s' % fpr)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service application key ring analyzer tool
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -38,10 +38,13 @@ import sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _get_keyrings():
 | 
					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 = 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'))
 | 
					    keyringdir = os.path.expanduser(my_config.get('DEFAULT', 'keyring.dir'))
 | 
				
			||||||
    logging.debug("keyring dir is %s", keyringdir)
 | 
					    logging.debug("keyring dir is %s", keyringdir)
 | 
				
			||||||
    keyrings = glob.glob(os.path.join(keyringdir, '*.gpg'))
 | 
					    keyrings = glob.glob(os.path.join(keyringdir, '*.gpg'))
 | 
				
			||||||
| 
						 | 
					@ -51,20 +54,22 @@ def _get_keyrings():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _parse_uid(uid):
 | 
					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()
 | 
					    uid = uid.strip()
 | 
				
			||||||
    # First, strip comment
 | 
					    # First, strip comment
 | 
				
			||||||
    s = uid.find('(')
 | 
					    s = uid.find('(')
 | 
				
			||||||
    e = uid.find(')')
 | 
					    e = uid.find(')')
 | 
				
			||||||
    if s >= 0 and e >= 0:
 | 
					    if s >= 0 and e >= 0:
 | 
				
			||||||
        uid = uid[:s] + uid[e+1:]
 | 
					        uid = uid[:s] + uid[e + 1:]
 | 
				
			||||||
    s = uid.find('<')
 | 
					    s = uid.find('<')
 | 
				
			||||||
    e = uid.find('>')
 | 
					    e = uid.find('>')
 | 
				
			||||||
    email = None
 | 
					    email = None
 | 
				
			||||||
    if s >= 0 and e >= 0:
 | 
					    if s >= 0 and e >= 0:
 | 
				
			||||||
        email = uid[s+1:e]
 | 
					        email = uid[s + 1:e]
 | 
				
			||||||
        uid = uid[:s] + uid[e+1:]
 | 
					        uid = uid[:s] + uid[e + 1:]
 | 
				
			||||||
    uid = uid.strip()
 | 
					    uid = uid.strip()
 | 
				
			||||||
    if not email and uid.find('@') >= 0:
 | 
					    if not email and uid.find('@') >= 0:
 | 
				
			||||||
        email, uid = uid, email
 | 
					        email, uid = uid, email
 | 
				
			||||||
| 
						 | 
					@ -72,6 +77,7 @@ def _parse_uid(uid):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
resultdict = {}
 | 
					resultdict = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _get_canonical(key):
 | 
					def _get_canonical(key):
 | 
				
			||||||
    if not key in resultdict:
 | 
					    if not key in resultdict:
 | 
				
			||||||
        resultdict[key] = []
 | 
					        resultdict[key] = []
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf8 -*-
 | 
					# -*- coding: utf8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service url builder
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -37,12 +37,12 @@ my_config = ConfigParser()
 | 
				
			||||||
my_config.readfp(pkg_resources.resource_stream(__name__, 'ddportfolio.ini'))
 | 
					my_config.readfp(pkg_resources.resource_stream(__name__, 'ddportfolio.ini'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_FIELDNAMES_MAP = {
 | 
					_FIELDNAMES_MAP = {
 | 
				
			||||||
    'email'          : N_('Email address'),
 | 
					    'email': N_('Email address'),
 | 
				
			||||||
    'name'           : N_('Name'),
 | 
					    'name': N_('Name'),
 | 
				
			||||||
    'gpgfp'          : N_('GPG fingerprint'),
 | 
					    'gpgfp': N_('GPG fingerprint'),
 | 
				
			||||||
    'username'       : N_('Debian user name'),
 | 
					    'username': N_('Debian user name'),
 | 
				
			||||||
    'nonddemail'     : N_('Non DD email address'),
 | 
					    'nonddemail': N_('Non Debian email address'),
 | 
				
			||||||
    'aliothusername' : N_('Alioth user name'),
 | 
					    'aliothusername': N_('Alioth user name'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -82,7 +82,8 @@ 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 entry in ([DDPortfolioEntry(my_config, section, url) for url in \
 | 
					            for entry in ([
 | 
				
			||||||
 | 
					                    DDPortfolioEntry(my_config, section, url) for url in \
 | 
				
			||||||
                        my_config.get(section, 'urls').split(',')]):
 | 
					                        my_config.get(section, 'urls').split(',')]):
 | 
				
			||||||
                try:
 | 
					                try:
 | 
				
			||||||
                    data.append(
 | 
					                    data.append(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@ License along with this program.  If not, see
 | 
				
			||||||
</%doc>
 | 
					</%doc>
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
  <head>
 | 
					  <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'))}
 | 
					    ${h.stylesheet_link(h.url('/stylesheets/style.css'))}
 | 
				
			||||||
    ${self.extrahead()}
 | 
					    ${self.extrahead()}
 | 
				
			||||||
  </head>
 | 
					  </head>
 | 
				
			||||||
| 
						 | 
					@ -31,10 +31,10 @@ License along with this program.  If not, see
 | 
				
			||||||
    <div id="header">
 | 
					    <div id="header">
 | 
				
			||||||
      ${h.image(h.url('/images/openlogo-100.jpg'), _('Debian Logo'), 100, 100,
 | 
					      ${h.image(h.url('/images/openlogo-100.jpg'), _('Debian Logo'), 100, 100,
 | 
				
			||||||
      id='debianlogo')}
 | 
					      id='debianlogo')}
 | 
				
			||||||
      <h1>${_('Debian Developer Portfolio Service')}</h1>
 | 
					      <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 Developer's or package maintainer's information regarding Debian.'''))}</p>
 | 
					      <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">
 | 
					      <p><script type="text/javascript">
 | 
				
			||||||
	var flattr_url = 'http://ddportfolio.debian.net/';
 | 
						var flattr_url = 'http://portfolio.debian.net/';
 | 
				
			||||||
	var flattr_btn='compact';
 | 
						var flattr_btn='compact';
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script></p>
 | 
					<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,
 | 
					      ${h.image(h.url('/images/agplv3-88x31.png'), _('AGPL - Free Software'), 88, 31,
 | 
				
			||||||
      id='agpllogo')}
 | 
					      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>${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>
 | 
					    </div>
 | 
				
			||||||
  </body>
 | 
					  </body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,7 @@ License along with this program.  If not, see
 | 
				
			||||||
h.url(controller='showformscripts', action='index'))}</%def>
 | 
					h.url(controller='showformscripts', action='index'))}</%def>
 | 
				
			||||||
${h.form(h.url(action='urllist', controller='ddportfolio'), method='get')}
 | 
					${h.form(h.url(action='urllist', controller='ddportfolio'), method='get')}
 | 
				
			||||||
<fieldset id="ddportfolio">
 | 
					<fieldset id="ddportfolio">
 | 
				
			||||||
  <legend>${_('Debian Developer Portfolio')}</legend>
 | 
					  <legend>${_('Debian Member Portfolio')}</legend>
 | 
				
			||||||
  <div id="emailfield" \
 | 
					  <div id="emailfield" \
 | 
				
			||||||
       % if 'email' in c.messages['errors']:
 | 
					       % if 'email' in c.messages['errors']:
 | 
				
			||||||
       class="witherrors" \
 | 
					       class="witherrors" \
 | 
				
			||||||
| 
						 | 
					@ -91,7 +91,7 @@ ${h.form(h.url(action='urllist', controller='ddportfolio'), method='get')}
 | 
				
			||||||
       class="witherrors" \
 | 
					       class="witherrors" \
 | 
				
			||||||
       % endif
 | 
					       % endif
 | 
				
			||||||
       >
 | 
					       >
 | 
				
			||||||
    <label for="nonddemail">${_('Non DD email address:') | h}
 | 
					    <label for="nonddemail">${_('Non Debian email address:') | h}
 | 
				
			||||||
      % if 'nonddemail' in c.messages['errors']:
 | 
					      % if 'nonddemail' in c.messages['errors']:
 | 
				
			||||||
      <br />
 | 
					      <br />
 | 
				
			||||||
      <span class="errormsg">${c.messages['errors']['nonddemail'] | h}</span>
 | 
					      <span class="errormsg">${c.messages['errors']['nonddemail'] | h}</span>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ License along with this program.  If not, see
 | 
				
			||||||
</%def>
 | 
					</%def>
 | 
				
			||||||
% if c.urldata:
 | 
					% if c.urldata:
 | 
				
			||||||
<fieldset id="ddportfolio">
 | 
					<fieldset id="ddportfolio">
 | 
				
			||||||
  <legend>${_('Debian Developer Portfolio')}</legend>
 | 
					  <legend>${_('Debian Member Portfolio')}</legend>
 | 
				
			||||||
  <table id="urltable">
 | 
					  <table id="urltable">
 | 
				
			||||||
    <thead>
 | 
					    <thead>
 | 
				
			||||||
      <tr><th>${_('Usage')}</th><th>${_('URL')}</th></tr>
 | 
					      <tr><th>${_('Usage')}</th><th>${_('URL')}</th></tr>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service tests package
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -49,6 +49,7 @@ SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
environ = {}
 | 
					environ = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestController(TestCase):
 | 
					class TestController(TestCase):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, *args, **kwargs):
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service DdportfolioController test
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -22,8 +22,10 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
from ddportfolioservice.tests import TestController, url
 | 
					from ddportfolioservice.tests import TestController, url
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestShowformscriptsController(TestController):
 | 
					class TestShowformscriptsController(TestController):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_index(self):
 | 
					    def test_index(self):
 | 
				
			||||||
        response = self.app.get(url(controller='showformscripts', action='index'))
 | 
					        response = self.app.get(
 | 
				
			||||||
 | 
					            url(controller='showformscripts', action='index'))
 | 
				
			||||||
        # Test response...
 | 
					        # Test response...
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service websetup
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ from ddportfolioservice.config.environment import load_environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
log = logging.getLogger(__name__)
 | 
					log = logging.getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def setup_config(command, filename, section, vars):
 | 
					def setup_config(command, filename, section, vars):
 | 
				
			||||||
    """Place any commands to setup ddportfolioservice here"""
 | 
					    """Place any commands to setup ddportfolioservice here"""
 | 
				
			||||||
    conf = appconfig('config:' + filename)
 | 
					    conf = appconfig('config:' + filename)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								setup.py
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								setup.py
									
										
									
									
									
								
							| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# DDPortfolio service setup
 | 
					# 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.
 | 
					# This file is part of DDPortfolio service.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ except ImportError:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setup(
 | 
					setup(
 | 
				
			||||||
    name='ddportfolioservice',
 | 
					    name='ddportfolioservice',
 | 
				
			||||||
    version='0.2.1',
 | 
					    version='0.2.2',
 | 
				
			||||||
    description='service to create DDPortfolio URLs',
 | 
					    description='service to create DDPortfolio URLs',
 | 
				
			||||||
    long_description="""This is a service implementation that
 | 
					    long_description="""This is a service implementation that
 | 
				
			||||||
returns a set of personalized URLs as outlined in
 | 
					returns a set of personalized URLs as outlined in
 | 
				
			||||||
| 
						 | 
					@ -48,7 +48,7 @@ array of URLs.""",
 | 
				
			||||||
    author_email='jan@dittberner.info',
 | 
					    author_email='jan@dittberner.info',
 | 
				
			||||||
    url='http://debian-stuff.dittberner.info/ddportfolioservice',
 | 
					    url='http://debian-stuff.dittberner.info/ddportfolioservice',
 | 
				
			||||||
    license='AGPL-3.0+',
 | 
					    license='AGPL-3.0+',
 | 
				
			||||||
    install_requires=["Pylons>=0.10rc1"],
 | 
					    install_requires=["Pylons>=0.10rc1", 'babel>=0.9.4'],
 | 
				
			||||||
    packages=find_packages(exclude=['ez_setup']),
 | 
					    packages=find_packages(exclude=['ez_setup']),
 | 
				
			||||||
    include_package_data=True,
 | 
					    include_package_data=True,
 | 
				
			||||||
    test_suite='nose.collector',
 | 
					    test_suite='nose.collector',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue