diff --git a/ChangeLog b/ChangeLog index 7cb22ef..675dbfe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,14 +1,3 @@ -2020-02-22 Jan Dittberner - * Update translations - -2018-05-12 Jan Dittberner - * add patch by Paul Wise to provide Repology information links - * Update translations - -2018-02-09 Jan Dittberner - * add patch by Paul Wise to provide Salsa links - * Update translations - 2015-11-12 Jan Dittberner * port to Python 3 and Flask diff --git a/debianmemberportfolio/forms.py b/debianmemberportfolio/forms.py index 24872ee..4c9612e 100644 --- a/debianmemberportfolio/forms.py +++ b/debianmemberportfolio/forms.py @@ -1,34 +1,11 @@ -# -*- python -*- -# -*- coding: utf-8 -*- -# -# Debian Member Portfolio Service views -# -# Copyright © 2015-2020 Jan Dittberner -# -# This file is part of the Debian Member Portfolio Service. -# -# Debian Member Portfolio Service is free software: you can redistribute it -# and/or modify it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the License, -# or (at your option) any later version. -# -# Debian Member Portfolio Service is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero -# General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# from __future__ import unicode_literals from flask_babel import gettext as _ -from flask_wtf import FlaskForm +from flask_wtf import Form from wtforms import IntegerField, StringField, RadioField from wtforms.validators import ( AnyOf, DataRequired, Email, Length, Optional, Regexp ) -from string import hexdigits class FingerPrint(Regexp): @@ -41,24 +18,16 @@ class PlainText(Regexp): super(PlainText, self).__init__(r'^[a-zA-Z\-0-9]*$') -def gpg_fingerprint(data): - if data is not None: - return "".join([ - char for char in str(data) if char.lower() in hexdigits]) - return data - - -class DeveloperData(FlaskForm): +class DeveloperData(Form): email = StringField('email', validators=[DataRequired(), Email()]) - name = StringField('name', validators=[Optional(), DataRequired()]) - gpgfp = StringField('gpgfp', filters=[gpg_fingerprint], validators=[ - Optional(), FingerPrint(), Length(min=32, max=40) - ]) - username = StringField('username', validators=[Optional(), PlainText()]) - nonddemail = StringField('nonddemail', validators=[Optional(), Email()]) - salsausername = StringField('salsausername', validators=[ - Optional(), PlainText() + name = StringField('name', validators=[DataRequired()]) + gpgfp = StringField('gpgfp', validators=[ + FingerPrint(), + Length(min=32, max=40) ]) + username = StringField('username', validators=[PlainText()]) + nonddemail = StringField('nonddemail', validators=[Email()]) + aliothusername = StringField('aliothusername', validators=[PlainText()]) mode = RadioField( 'mode', default='html', choices=[ ('json', _('JSON')), ('html', _('HTML')) @@ -69,5 +38,5 @@ class DeveloperData(FlaskForm): Optional()]) -class DeveloperDataRequest(FlaskForm): +class DeveloperDataRequest(Form): email = StringField('email', validators=[DataRequired(), Email()]) diff --git a/debianmemberportfolio/model/portfolio.ini b/debianmemberportfolio/model/portfolio.ini index 7cf278a..3a45504 100644 --- a/debianmemberportfolio/model/portfolio.ini +++ b/debianmemberportfolio/model/portfolio.ini @@ -1,7 +1,7 @@ # # Configuration for Debian Member Portfolio Service # -# Copyright © 2009-2020 Jan Dittberner +# Copyright © 2009-2014 Jan Dittberner # # This file is part of the Debian Member Portfolio Service. # @@ -44,19 +44,19 @@ urls=buildd buildd.pattern=https://buildd.debian.org/status/package.php?p=%(email)s&compact=compact&comaint=yes [qa] -urls=lintian,lintianfull,piuparts,patchtracker,dmd,duck,janitor +urls=lintian,lintianfull,piuparts,patchtracker,dmd,duck dmd.pattern=https://udd.debian.org/dmd.cgi?email1=%(email)s lintian.pattern=https://lintian.debian.org/maintainer/%(email)s.html lintianfull.pattern=https://lintian.debian.org/full/%(email)s.html piuparts.pattern=https://piuparts.debian.org/sid/maintainer/%(firstchar)s/%(email)s.html patchtracker.pattern=http://patch-tracker.debian.org/email/%(email)s duck.pattern=http://duck.debian.net/persons/%(email)s.html -janitor.pattern=https://janitor.debian.net/m/%(email)s [lists] -urls=dolists,adolists +urls=dolists,adolists,gmane dolists.pattern=https://lists.debian.org/cgi-bin/search?P="%%22%(name)s%%22&SORT=0 adolists.pattern=https://www.google.com/search?q=site%%3Alists.alioth.debian.org+%%22%(name)s%%22 +gmane.pattern=http://search.gmane.org/?email=%(name)s&group=gmane.linux.debian.* # debconf list search has a tricky URL format # http://lists.debconf.org/lurker/search \ # /20100510.202949.00000000@au:%(firstname)s,au:%(lastname)s.en.html @@ -69,7 +69,7 @@ people.pattern=https://people.debian.org/~%(username)s/ people.optional=true [membership] -urls=nm,dbfinger,db,webid,salsa,wiki,forum +urls=nm,dbfinger,db,webid,alioth,wiki,forum nm.pattern=https://nm.debian.org/public/nmstatus/%(username)s dbfinger.pattern=finger %(username)s@db.debian.org dbfinger.type=finger @@ -78,14 +78,14 @@ db.pattern=https://db.debian.org/search.cgi?uid=%(username)s&dosearch=Search db.optional=true webid.pattern=http://webid.debian.net/maintainers/%(username)s webid.optional=true -salsa.pattern=https://salsa.debian.org/%(salsausername)s -salsa.optional=true +alioth.pattern=https://alioth.debian.org/users/%(aliothusername)s/ +alioth.optional=true wiki.pattern=https://wiki.debian.org/%(wikihomepage)s forum.pattern=http://forums.debian.net/memberlist.php?mode=viewprofile&u=%(forumsid)s forum.optional=true [miscellaneous] -urls=debtags,links,planetname,planetuser,website,search,gpgfinger,gpgweb,contrib,repology +urls=debtags,links,planetname,planetuser,website,search,gpgfinger,gpgweb,contrib debtags.pattern=https://debtags.debian.org/reports/maint/%(email)s planetname.pattern=https://planet-search.debian.org/cgi-bin/search.cgi?terms=%%22%(name)s%%22 planetuser.pattern=https://planet-search.debian.org/cgi-bin/search.cgi?terms=%%22%(username)s%%22 @@ -101,8 +101,6 @@ gpgweb.optional=true nm.pattern=https://nm.debian.org/public/person/%(username)s contrib.pattern=https://contributors.debian.org/contributor/%(email)s contrib.optional=true -repology.pattern=https://repology.org/maintainer/%(email)s -repology.optional=true [ssh] # SSH functions diff --git a/debianmemberportfolio/model/urlbuilder.py b/debianmemberportfolio/model/urlbuilder.py index cb2f33f..f948ddc 100644 --- a/debianmemberportfolio/model/urlbuilder.py +++ b/debianmemberportfolio/model/urlbuilder.py @@ -3,7 +3,7 @@ # # Debian Member Portfolio Service url builder # -# Copyright © 2009-2020 Jan Dittberner +# Copyright © 2009-2015 Jan Dittberner # # This file is part of the Debian Member Portfolio Service. # @@ -45,7 +45,7 @@ _FIELDNAMES_MAP = { 'gpgfp': N_('GPG fingerprint'), 'username': N_('Debian user name'), 'nonddemail': N_('Non Debian email address'), - 'salsausername': N_('Salsa user name'), + 'aliothusername': N_('Alioth user name'), } @@ -73,7 +73,7 @@ def _build_quoted_fields(fields): qfields[key] = quote_plus(value) else: qfields[key] = value - qfields[key] = str(qfields[key]).replace('%', '%%') + qfields[key] = qfields[key].replace('%', '%%') if 'gpgfp' not in qfields: fpr = keyfinder.getFingerprintByEmail(fields['email'].encode('utf8')) diff --git a/debianmemberportfolio/templates/base.html b/debianmemberportfolio/templates/base.html index 82986b7..b2a7903 100644 --- a/debianmemberportfolio/templates/base.html +++ b/debianmemberportfolio/templates/base.html @@ -2,7 +2,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> {# vim: ft=jinja Base template for XHTML templates. -Copyright © 2009-2020 Jan Dittberner +Copyright © 2009-2017 Jan Dittberner This file is part of the Debian Member Portfolio service. @@ -37,8 +37,8 @@ with this program. If not, see .