The following commit has been merged in the master branch:
commit 463a251d23006f1d131b5c71f66639b6ddde1580
Author: Ole Streicher <oleb...@debian.org>
Date:   Wed Mar 9 21:31:13 2016 +0100

    Merge webtools and webtools_py3 templates

diff --git a/webtools/templates/bugs.xhtml b/webtools/templates/bugs.xhtml
index f68499e..a16b922 100644
--- a/webtools/templates/bugs.xhtml
+++ b/webtools/templates/bugs.xhtml
@@ -108,7 +108,7 @@
                           <span py:otherwise=""><a 
href="${pkgbug['vcs_browser']}">${vcslocation}</a></span>
                        </span>
                         <span class="bugsmaintainer" id="bugsmaintainer" 
py:choose="">
-                          <span 
py:when="pkgbug.has_key('maintainer_email')"><a 
href="mailto:${pkgbug['maintainer_email']}">${pkgbug['maintainer_name']}</a></span>
+                          <span py:when="'maintainer_email' in pkgbug"><a 
href="mailto:${pkgbug['maintainer_email']}">${pkgbug['maintainer_name']}</a></span>
                           <span py:otherwise="">unknown maintainer</span>
                        </span>
                      </div>
@@ -149,7 +149,7 @@
 </tr>
 </table>
 <div class="footnote">
-  <address>${updatetimestamp}</address>
+  <address>Last update: ${timestamp}</address>
 </div>
 </body>
 </html>
diff --git a/webtools/templates/debian-astro_idx.xhtml 
b/webtools/templates/debian-astro_idx.xhtml
index 4a36a65..5762b0f 100644
--- a/webtools/templates/debian-astro_idx.xhtml
+++ b/webtools/templates/debian-astro_idx.xhtml
@@ -48,31 +48,31 @@
        <h2>Featured packages</h2>
        <py:for each="fp_row in [['stellarium', 'glueviz'], ['saods9', 
'splash']]">
          <div class="line">
-               <py:for each="pkg_name in fp_row">
-                 <div class="col50">
-                       <table>
-                         <tr>
-                               <td style="border-top-style: none; 
width:150px;">
-                                 <img src="${PackageByName[pkg_name].icon}" 
alt="" style="width:150px;" />
-                               </td>
-                               <td style="vertical-align:top; 
border-top-style: none;">
-                                 <p style="margin-bottom:0;">
-                                       
<strong>${PackageByName[pkg_name].pkg.capitalize()}:</strong>
-                                       <span py:choose="">
-                                         <span 
py:when="PackageByName[pkg_name].desc.has_key(lang)">${PackageByName[pkg_name].desc[lang]['short']}</span>
-                                         <span 
py:otherwise="">${PackageByName[pkg_name].desc['en']['short']}</span>
-                                       </span>
-                                       
-                                 </p>
-                                 <p style="margin-bottom:0;">
-                                       <a 
href="${PackageByName[pkg_name].properties['homepage']}">Home page</a>
-                                       - <a 
href="tasks/${PackageByName[pkg_name].taskname}#${PackageByName[pkg_name].pkg}">More...</a>
-                                 </p>
-                               </td>
-                         </tr>
-                       </table>
-                 </div>
-               </py:for>
+           <py:for each="pkg_name in fp_row">
+             <div class="col50">
+               <table>
+                 <tr>
+                   <td style="border-top-style: none; width:150px;">
+                     <img src="${PackageByName[pkg_name].icon}" alt="" 
style="width:150px;" />
+                   </td>
+                   <td style="vertical-align:top; border-top-style: none;">
+                     <p style="margin-bottom:0;">
+                       
<strong>${PackageByName[pkg_name].pkg.capitalize()}:</strong>
+                       <span py:choose="">
+                         <span py:when="lang in 
PackageByName[pkg_name].desc">${PackageByName[pkg_name].desc[lang].get('short', 
'')}</span>
+                         <span 
py:otherwise="">${PackageByName[pkg_name].desc['en'].get('short', '')}</span>
+                       </span>
+                       
+                     </p>
+                     <p style="margin-bottom:0;">
+                       <a 
href="${PackageByName[pkg_name].properties['homepage']}">Home page</a>
+                       - <a 
href="tasks/${PackageByName[pkg_name].taskname}#${PackageByName[pkg_name].pkg}">More...</a>
+                     </p>
+                   </td>
+                 </tr>
+               </table>
+             </div>
+           </py:for>
          </div>
        </py:for>
        
@@ -109,12 +109,12 @@
       <p>${howtosetlang}</p>
       <address>${updatetimestamp}</address>
       <p>
-       The Debian Astro logo was created by
-       <a href="http://www.mariahammerstrom.com";>Maria Hammerstr&#248;m</a>
-       and is under the license
-       <a href="http://www.gnu.org/copyleft/lgpl.html";>LGPL-3</a> or
-       <a href="http://creativecommons.org/licenses/by-sa/3.0/";>CC BY-SA 
3.0</a>
-       by your choice.
+       The Debian Astro logo was created by
+       <a href="http://www.mariahammerstrom.com";>Maria Hammerstr&#248;m</a>
+       and is under the license
+       <a href="http://www.gnu.org/copyleft/lgpl.html";>LGPL-3</a> or
+       <a href="http://creativecommons.org/licenses/by-sa/3.0/";>CC BY-SA 
3.0</a>
+       by your choice.
       </p>
     </div>
   </body>
diff --git a/webtools/templates/packagelist.xhtml 
b/webtools/templates/packagelist.xhtml
index 14a1830..c42f9f0 100644
--- a/webtools/templates/packagelist.xhtml
+++ b/webtools/templates/packagelist.xhtml
@@ -43,11 +43,11 @@
       <py:for each="task in taskskeys">
        <a name="${task}" id="${task}"/>
        <h2><a href="${task}" name="${task}" 
id="${task}">${tasks[task].metapkg.PrintedName.capitalize()} - <span 
py:choose="">
-       <span 
py:when="tasks[task].metapkg.desc.has_key(lang)">${tasks[task].metapkg.desc[lang]['short']}</span>
+       <span py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['short']}</span>
        <span py:otherwise="">${tasks[task].metapkg.desc['en']['short']}</span>
        </span></a></h2>
        <p py:choose="">
-         <span 
py:when="tasks[task].metapkg.desc.has_key(lang)">${tasks[task].metapkg.desc[lang]['long']}</span>
+         <span py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['long']}</span>
          <span py:otherwise="">${tasks[task].metapkg.desc['en']['long']}</span>
        </p>
        <py:for each="pstatus in dependencies[task]">
@@ -63,7 +63,7 @@
                   </span>
                  </dt>
                  <dd><span py:choose="">
-                   <span 
py:when="project.desc.has_key(lang)">${project.desc[lang]['short']}</span>
+                   <span py:when="lang in 
project.desc">${project.desc[lang]['short']}</span>
                    <span py:otherwise="">${project.desc['en']['short']}</span>
                  </span>
                  </dd>
diff --git a/webtools/templates/packages.xhtml 
b/webtools/templates/packages.xhtml
index e84465f..fd2764d 100644
--- a/webtools/templates/packages.xhtml
+++ b/webtools/templates/packages.xhtml
@@ -496,7 +496,7 @@ function show_fulldesc(hash) {
                      <dt>Enhancements</dt>
                      <dd>
                        <ul class="desc-inline">
-                         <py:for each="enh in 
sorted(project.properties['Enhances'].keys())">
+                         <py:for each="enh in 
sorted(project.properties['Enhances'])">
                            <li>
                              <a 
href="${project.properties['Enhances'][enh]}">${enh}</a>
                            </li>
diff --git a/webtools/templates/tasks.xhtml b/webtools/templates/tasks.xhtml
index 32dec2f..61963b8 100644
--- a/webtools/templates/tasks.xhtml
+++ b/webtools/templates/tasks.xhtml
@@ -6,7 +6,6 @@
 <head>
 <title>$projectname ${tasks[task].metapkg.PrintedName.capitalize()} 
packages</title>
 <meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8"/>
-<meta charset="utf-8" />
 <link href="/css/sentinel.css" type="text/css" rel="stylesheet"/>
 </head>
 <body>
@@ -30,11 +29,11 @@
                        <div class="row">
                                <div 
class="pkgname">${tasks[task].metapkg.PrintedName.capitalize()}</div>
                                <div class="pkgdesc" py:choose="">
-                                 <div 
py:when="tasks[task].metapkg.desc.has_key(lang)">${tasks[task].metapkg.desc[lang]['short']}</div>
+                                 <div py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['short']}</div>
                                  <div 
py:otherwise="">${tasks[task].metapkg.desc['en']['short']}</div>
                                </div>
                                <p><span py:choose="">
-                  <span 
py:when="tasks[task].metapkg.desc.has_key(lang)">${tasks[task].metapkg.desc[lang]['long']}
+                  <span py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['long']}
                      <div class="transmpkg" py:if="lang != 'en'"><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${tasks[task].metapkg.pkg}";>${fixtranslation}</a></div>
                    </span>
                   <span 
py:otherwise="">${tasks[task].metapkg.desc['en']['long']}
@@ -81,10 +80,10 @@
           <td class="project-name">
             <a name="${project.pkg}" id="${project.pkg}"/>
             <div class="pkgname">${project.pkg.capitalize()}
-              <span class="wnpp" py:if="project.properties.has_key('wnpp')"> - 
<a href="http://bugs.debian.org/${project.properties['wnpp']}">wnpp</a></span>
+              <span class="wnpp" py:if="'wnpp' in project.properties"> - <a 
href="http://bugs.debian.org/${project.properties['wnpp']}">wnpp</a></span>
             </div>
             <div class="pkgdesc" py:choose="">
-                  <div 
py:when="project.desc.has_key(lang)">${project.desc[lang]['short']}</div>
+                  <div py:when="lang in 
project.desc">${project.desc[lang]['short']}</div>
                   <div py:otherwise="">${project.desc['en']['short']}</div>
             </div>
             <div py:choose="project.properties['homepage']">
@@ -92,7 +91,7 @@
                 <span py:otherwise=""><a 
href="${project.properties['homepage']}">${project.properties['homepage']}</a></span>
              </div>
             <div py:if="project.responsible != None">${maintainer[pstatus]}:
-               ${project.responsible} <span 
py:if="project.properties.has_key('changed_by')">(${project.properties['changed_by']})</span>
+               ${project.responsible} <span py:if="'changed_by' in 
project.properties">(${project.properties['changed_by']})</span>
              </div>
           </td>
           <td py:if="project.component and project.pkgstatus != 'new' and 
project.pkgstatus != 'pkgvcs'" class="project-info">
@@ -139,23 +138,23 @@
              </div>
             <div py:if="project.properties['vcs-browser'] != '#'">
               <span py:choose="">
-                <span py:when="project.properties.has_key('vcs-url')"><a 
href="${project.properties['vcs-browser']}" 
title="${project.properties['vcs-url']}">${project.properties['vcs-type']}</a></span>
+                <span py:when="'vcs-url' in project.properties"><a 
href="${project.properties['vcs-browser']}" 
title="${project.properties['vcs-url']}">${project.properties['vcs-type']}</a></span>
                 <span py:otherwise=""><a 
href="${project.properties['vcs-browser']}">${project.properties['vcs-type']}</a></span>
               </span>
             </div>
             <div py:if="lang != 'en' and project.component == 'main' and 
project.pkgstatus != 'new' and project.pkgstatus != 'pkgvcs'">
               <div py:choose="">
-                  <div class="trans" py:when="project.desc.has_key(lang)"><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${project.pkg}";>${fixtranslation}</a></div>
+                  <div class="trans" py:when="lang in project.desc"><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${project.pkg}";>${fixtranslation}</a></div>
                   <div class="trans-missing" py:otherwise=""><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/fetch?package=${project.pkg}";>${translatedesc}</a></div>
                </div>
             </div>
-            <div class="language" 
py:if="project.properties.has_key('language') and project.component != 
'main'">Language: ${project.properties['language']}</div>
+            <div class="language" py:if="'language' in project.properties and 
project.component != 'main'">Language: ${project.properties['language']}</div>
             <div py:if="project.version != [] and (project.pkgstatus == 'new' 
or project.pkgstatus == 'pkgvcs')">Version: ${project.version[0]}</div>
            </td>
          </tr>
          <tr>
            <td colspan="2" class="project-description"><span py:choose="">
-                  <span 
py:when="project.desc.has_key(lang)">${project.desc[lang]['long']}</span>
+                  <span py:when="lang in 
project.desc">${project.desc[lang]['long']}</span>
                   <span py:otherwise="">${project.desc['en']['long']}</span>
                 </span>
             <div class="enhanced-by" py:if="project.properties['Enhances'] != 
{}">
@@ -163,37 +162,37 @@
                 <a href="${project.properties['Enhances'][enh]}">${enh}</a>
               </py:for>
             </div>
-            <div class="registration" 
py:if="project.properties.has_key('registration')">
+            <div class="registration" py:if="'registration' in 
project.properties">
               <span class="registrationlink" >Please register by following <a
               href="${project.properties['registration']}">this 
link</a></span> if you are using ${project.pkg}.
             </div>
             <div class="published"
-            py:if="project.properties.has_key('published')">Please cite:
-              <span class="authors" 
py:if="project.properties['published'].has_key('authors')">${project.properties['published']['authors']}:</span>
+            py:if="'published' in project.properties">Please cite:
+              <span class="authors" py:if="'authors' in 
project.properties['published']">${project.properties['published']['authors']}:</span>
               <span py:choose="">
-                <span py:when="project.properties['published'].has_key('url')">
+                <span py:when="'url' in project.properties['published']">
                   <span py:choose="">
                      <span class="title"
-                          
py:when="project.properties['published'].has_key('title')"><a 
href="${project.properties['published']['url']}">${project.properties['published']['title']}.</a></span>
+                          py:when="'title' in 
project.properties['published']"><a 
href="${project.properties['published']['url']}">${project.properties['published']['title']}.</a></span>
                     <span py:otherwise=""><a 
href="${project.properties['published']['url']}">Link
                         to publication</a></span>
                   </span>
                 </span>
-                <span py:when="project.properties['published'].has_key('doi')">
+                <span py:when="'doi' in project.properties['published']">
                   <span py:choose="">
                      <span class="title"
-                          
py:when="project.properties['published'].has_key('title')"><a 
href="http://dx.doi.org/${project.properties['published']['doi']}">${project.properties['published']['title']}.</a></span>
+                          py:when="'title' in 
project.properties['published']"><a 
href="http://dx.doi.org/${project.properties['published']['doi']}">${project.properties['published']['title']}.</a></span>
                     <span py:otherwise=""><a 
href="http://dx.doi.org/${project.properties['published']['doi']}">Link
                         to publication</a></span>
                   </span>
                 </span>
-                <span py:otherwise=""><span class="title" 
py:if="project.properties['published'].has_key('title')">${project.properties['published']['title']}</span>
+                <span py:otherwise=""><span class="title" py:if="'title' in 
project.properties['published']">${project.properties['published']['title']}</span>
                 </span>
               </span>
-               <span 
py:if="project.properties['published'].has_key('pubmed')">(<a 
href="http://www.ncbi.nlm.nih.gov/pubmed/${project.properties['published']['pubmed']}">PubMed</a></span><span
 py:if="project.properties['published'].has_key('pubmed') and 
project.properties['published'].has_key('eprint')">,</span><span py:if="not 
project.properties['published'].has_key('pubmed') and 
project.properties['published'].has_key('eprint')">(</span><span 
py:if="project.properties['published'].has_key('eprint')"><a 
href="${project.properties['published']['eprint']}">eprint</a></span><span 
py:if="project.properties['published'].has_key('pubmed') or 
project.properties['published'].has_key('eprint')">)</span>
-              <span class="journal" 
py:if="project.properties['published'].has_key('journal')">${project.properties['published']['journal']}</span>
-              <span class="journal" 
py:if="project.properties['published'].has_key('volume')">${project.properties['published']['volume']}</span><span
 class="journal" 
py:if="project.properties['published'].has_key('number')">(${project.properties['published']['number']})</span><span
 class="journal" 
py:if="project.properties['published'].has_key('pages')">:${project.properties['published']['pages']}</span>
-              <span class="year" 
py:if="project.properties['published'].has_key('year')">(${project.properties['published']['year']})</span>
+               <span py:if="'pubmed' in project.properties['published']">(<a 
href="http://www.ncbi.nlm.nih.gov/pubmed/${project.properties['published']['pubmed']}">PubMed</a></span><span
 py:if="'pubmed' in project.properties['published'] and 'eprint' in 
project.properties['published']">,</span><span py:if="'pubmed' not in 
project.properties['published'] and 'eprint' in 
project.properties['published']">(</span><span py:if="'eprint' in 
project.properties['published']"><a 
href="${project.properties['published']['eprint']}">eprint</a></span><span 
py:if="'pubmed' in project.properties['published'] or 'eprint' in 
project.properties['published']">)</span>
+              <span class="journal" py:if="'journal' in 
project.properties['published']">${project.properties['published']['journal']}</span>
+              <span class="journal" py:if="'volume' in 
project.properties['published']">${project.properties['published']['volume']}</span><span
 class="journal" py:if="'number' in 
project.properties['published']">(${project.properties['published']['number']})</span><span
 class="journal" py:if="'pages' in 
project.properties['published']">:${project.properties['published']['pages']}</span>
+              <span class="year" py:if="'year' in 
project.properties['published']">(${project.properties['published']['year']})</span>
             </div>
           </td>
           <td py:if="project.component and project.pkgstatus != 'new' and 
project.pkgstatus != 'pkgvcs'" class="project-icon">
diff --git a/webtools/templates/tasks_idx.xhtml 
b/webtools/templates/tasks_idx.xhtml
index 5f85b54..5c63e98 100644
--- a/webtools/templates/tasks_idx.xhtml
+++ b/webtools/templates/tasks_idx.xhtml
@@ -81,7 +81,7 @@ table {
              </td>
              <td>
                <span py:choose="">
-                 <span py:when="tasks[task].metapkg.desc.has_key(lang)">
+                 <span py:when="lang in tasks[task].metapkg.desc">
                    ${tasks[task].metapkg.desc[lang]['short']}
                  </span>
                  <span py:otherwise="">
diff --git a/webtools_py3/templates b/webtools_py3/templates
new file mode 120000
index 0000000..9a5f02f
--- /dev/null
+++ b/webtools_py3/templates
@@ -0,0 +1 @@
+../webtools/templates
\ No newline at end of file
diff --git a/webtools_py3/templates/bugs.xhtml 
b/webtools_py3/templates/bugs.xhtml
deleted file mode 100644
index a16b922..0000000
--- a/webtools_py3/templates/bugs.xhtml
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="${lang}" lang="${lang}"
-      xmlns:py="http://genshi.edgewall.org/";>
-<head>
-<title>$projectname ${bugs_data[task]['title'].capitalize()} bugs</title>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8"/>
-<link href="/css/sentinel.css" type="text/css" rel="stylesheet"/>
-</head>
-<body>
-<div style="text-align: center;">
-<a href="$projecturl"><span py:choose="logourl">
-                  <span py:when="None">${projectname} Project</span>
-                  <span py:otherwise=""><img src="$logourl" alt="$projectname 
Project" height="93" /></span>
-                 </span>
-</a>
-</div>
-<div class="heading" py:if="projectadvertising">
-       <div class="tabBar" style="text-align: 
center;">$projectadvertising</div>
-</div>
-<table class="columns">
-<tr>
-       <td class="left">
-               <span class="section">Summary</span>
-               <div class="section">
-                       <div class="sectionTop"/>
-                       <div class="row">
-                            $bugsoftask
-                           <strong>${task}</strong>
-                        </div>
-                       <div class="row">
-                           $totalbugs:
-                           
<strong>${bugs_data[task]['nopenbugs']+bugs_data[task]['ndonebugs']}</strong>
-                        </div>
-                       <div class="row">
-                           $openbugs:
-                           <strong>${bugs_data[task]['nopenbugs']}</strong>
-                        </div>
-                       <div class="row">
-                           Fixed bugs:
-                           <strong>${bugs_data[task]['ndonebugs']}</strong>
-                        </div>
-               </div>
-
-               <span class="section">${othertasks}</span>
-               <div class="section">
-                       <div class="sectionTop"/>
-                       <div class="row">
-                            <div class="link"><a 
href="index.html">${bugslink}</a></div>
-                          <py:for each="t in sorted(bugs_data.iterkeys())">
-                            <div py:choose="t">
-                              <span py:when="task"
-                              class="curlink"><a 
href="${t}.html">${bugs_data[t]['title'].capitalize()}</a> 
${bugs_data[t]['nopenbugs']} (${bugs_data[t]['weighttask']})</span>
-                              <span py:otherwise="" class="link 
${bugs_data[t]['weightedclass']}"><a 
href="${t}.html">${bugs_data[t]['title'].capitalize()}</a> 
${bugs_data[t]['nopenbugs']} (${bugs_data[t]['weighttask']})</span>
-                            </div>
-                          </py:for>
-                        </div>
-               </div>
-
-               <span class="section">${legend}</span>
-               <div class="section">
-                 <div class="sectionTop"/>
-                 <div class="row">
-                   <table>
-                     
<tr><th>Severity</th><th>Dependent</th><th>Suggested</th></tr>
-                      <py:for each="s in severities">
-                        <tr>
-                         <td class="severity ${s}">${s}</td>
-                         <td class="bugid 
${s}">${bugs_data[task]['depends']['severities'][s]}</td>
-                         <td class="bugid 
${s}">${bugs_data[task]['suggests']['severities'][s]}</td>
-                       </tr>
-                      </py:for>
-                   </table>
-                  </div>
-               </div>
-       </td>
-       <td class="main">
-               <div class="pageBody">
-
-<h1>Summary bugs page of task ${bugs_data[task]['title'].capitalize()}</h1>
-
-<div 
class="severitysummary">${bugs_data[task]['weightedsev']}<sup>*</sup></div>
-
-<span py:choose="">
-  <span py:when="bugs_data[task]['nopenbugs']+bugs_data[task]['ndonebugs'] != 
0">
-    <py:for each="status in states">
-      <span py:choose="">
-       <span py:when="bugs_data[task][status] != {}">
-         <h2>${headings[category[status]]}</h2>
-            <div class="severitylist" py:if="status != 'done' and 
bugs_data[task][status]['severitysummary'] != ''">
-                ${bugs_data[task][status]['severitysummary']}
-           </div>
-         <table class="${cssclass[category[status]]}">
-           <py:for each="pkgbug in bugs_data[task][status]['sources']">
-             <span py:if="len(pkgbug['bugs']) > 0">
-               <tr>
-                 <td class="bugid" colspan="3">
-                   <div class="bugsheadertable">
-                     <div class="bugsheadertr">
-                       <span class="bugsheaderpackagetd" 
id="bugsheaderpackagetd"><a 
href="http://packages.qa.debian.org/${pkgbug['source'][0]}/${pkgbug['source']}.html">${pkgbug['source']}</a>
 (${len(pkgbug['bugs'])})</span>
-                        <span class="bugsheaderhomepagetd" 
id="bugsheaderhomepagetd" py:choose="pkgbug['homepage']">
-                          <span py:when="'#'">${nohomepage}</span>
-                          <span py:otherwise=""><a 
href="${pkgbug['homepage']}">Homepage: ${pkgbug['homepage']}</a></span>
-                       </span>
-                        <span class="bugvcsbrowser" id="bugvcsbrowser" 
py:choose="pkgbug['vcs_browser']">
-                          <span py:when="'#'">${novcsbrowser}</span>
-                          <span py:otherwise=""><a 
href="${pkgbug['vcs_browser']}">${vcslocation}</a></span>
-                       </span>
-                        <span class="bugsmaintainer" id="bugsmaintainer" 
py:choose="">
-                          <span py:when="'maintainer_email' in pkgbug"><a 
href="mailto:${pkgbug['maintainer_email']}">${pkgbug['maintainer_name']}</a></span>
-                          <span py:otherwise="">unknown maintainer</span>
-                       </span>
-                     </div>
-                    </div>
-                 </td>
-               </tr>
-               <py:for each="bug in pkgbug['bugs']">
-                 <tr>
-                   <td class="bugid ${bug['severity']}"><a 
href="http://bugs.debian.org/${bug['id']}">${bug['id']}</a></td>
-                   <td class="summary ${bug['severity']}">${bug['title']}</td>
-                   <td class="severity ${bug['severity']}">${bug['tags']}</td>
-                 </tr>
-               </py:for>
-             </span>
-           </py:for>
-         </table>
-       </span>
-       <span py:otherwise=""><h2>${nobugs[cat]}</h2></span>
-      </span>
-    </py:for>
-   </span>
-  <span py:otherwise=""><h2>$projectname
-  ${bugs_data[task]['title'].capitalize()} has no known nbugs = 
${bugs_data[task]['nopenbugs']} ndone = 
${bugs_data[task]['ndonebugs']}</h2></span>
-</span>
-<div class="footnotecontent">
-  <sup>*</sup>${weightexplanation}
-  <br />
-  ${weightdetails}:
-  <br />
-  <table class="footnotecontent">
-    <py:for each="s in severities">
-      <tr><td class="footnotecontent">${s}</td><td 
class="footnotecontent">${weight[s]}</td></tr>
-    </py:for>
-  </table>
-</div>
-               </div>
-       </td>
-</tr>
-</table>
-<div class="footnote">
-  <address>Last update: ${timestamp}</address>
-</div>
-</body>
-</html>
diff --git a/webtools_py3/templates/bugs_idx.xhtml 
b/webtools_py3/templates/bugs_idx.xhtml
deleted file mode 100644
index d9b3977..0000000
--- a/webtools_py3/templates/bugs_idx.xhtml
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="${lang}" lang="${lang}"
-      xmlns:py="http://genshi.edgewall.org/";>
-<head>
-<title>$projectname bugs</title>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8"/>
-<link href="/css/sentinel.css" type="text/css" rel="stylesheet"/>
-</head>
-<body>
-<div style="text-align: center;">
-<a href="$projecturl"><span py:choose="logourl">
-                  <span py:when="None">${projectname} Project</span>
-                  <span py:otherwise=""><img src="$logourl" alt="$projectname 
Project" height="93" /></span>
-                 </span>
-</a>
-</div>
-<div class="heading" py:if="projectadvertising">
-       <div class="tabBar" style="text-align: 
center;">$projectadvertising</div>
-</div>
-<table class="columns">
-<tr>
-       <td class="left">
-               <span class="section">$summary</span>
-               <div class="section">
-                       <div class="sectionTop"></div>
-                       <div class="row">${bugssummary}</div>
-               </div>
-               <span class="section">${legend}</span>
-               <div class="section">
-                 <div class="sectionTop"/>
-                 <div class="row">
-                   <table>
-                     <tr><th>Assessment</th><th>Limit</th></tr>
-                      <py:for each="a in assessments">
-                        <tr>
-                         <td class="${a[1]}">${a[1]}</td>
-                         <td class="${a[1]}">${a[0]}</td>
-                       </tr>
-                      </py:for>
-                   </table>
-                  </div>
-               </div>
-       </td>
-       <td class="main">
-               <div class="pageBody">
-                       <h1>$gtstrBugsPage</h1>
-                       <p>$gtstrListOfBugspages</p>
-                       <dl>
-                             <py:for each="task in 
sorted(bugs_data.iterkeys())">
-                                <dt 
class="${bugs_data[task]['weightedclass']}"><a href="${task}.html" 
name="${task}" id="${task}">${bugs_data[task]['title'].capitalize()} - 
${bugs_data[task]['description']}</a> 
(${bugs_data[task]['weighttask']}<sup>*</sup>)</dt>
-                               <dd>${bugs_data[task]['long_description']}</dd>
-                             </py:for>
-                       </dl>
-<div class="footnotecontent">
-  <sup>*</sup>${weightexplanation}
-  <br />
-  ${weightdetails}:
-  <br />
-  <table class="footnotecontent">
-    <py:for each="s in severities">
-      <tr><td class="footnotecontent">${s}</td><td 
class="footnotecontent">${weight[s]}</td></tr>
-    </py:for>
-  </table>
-</div>
-               </div>
-       </td>
-</tr>
-</table>
-<div id="footer">
-  <address>${updatetimestamp}</address>
-</div>
-</body>
-</html>
diff --git a/webtools_py3/templates/debian-astro_idx.xhtml 
b/webtools_py3/templates/debian-astro_idx.xhtml
deleted file mode 100644
index cefd69b..0000000
--- a/webtools_py3/templates/debian-astro_idx.xhtml
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="${lang}" lang="${lang}"
-      xmlns:py="http://genshi.edgewall.org/";>
-  <head>
-    <title>$projectname Pure Blend</title>
-    <meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8" />
-    <meta name="robots" content="noindex" />
-    <link href="http://blends.debian.org/css/debhandheld.css"; media="screen" 
rel="stylesheet" type="text/css" />
-    <link href="http://blends.debian.org//css/debian.css"; rel="stylesheet" 
type="text/css" />
-    <link href="http://blends.debian.org//css/blends.css"; rel="stylesheet" 
type="text/css" />
-    <link rel="shortcut icon" href="http://www.debian.org/favicon.ico"; />
-  </head>
-  <body>
-    <div id="header">
-      <div id="upperheader">
-       <div id="logo">
-         <a href="http://www.debian.org/"; title="Debian Home">
-           <img src= "http://www.debian.org/Pics/openlogo-50.png";
-                        alt="Debian" width="50" height= "61" /></a>
-         </div>
-         <p class="section">Pure Blend</p>
-       </div>
-       <div id="navbar">
-         <ul> 
-           <li><a href="index.html">$projectname</a></li>
-           <li><a href="tasks">Packages</a></li>
-           <li><a href="contact.html">Contact</a></li>
-           <li><a href="contribute.html">Contribute</a></li>
-         </ul>
-       </div>
-       <p id="breadcrumbs">
-         <a href="http://blends.debian.org";>Debian Pure Blends</a>
-         / $projectname
-       </p>
-      </div><!-- end header -->
-      <div id="content">
-       <div id="splash">
-         <h1 id="astro">$projectname</h1>
-       </div>
-       <p>
-         $projectname is a "Debian Pure Blend" with the aim to develop a
-         Debian based operating system that fits the requirements of both
-         professional and hobby astronomers. It integrates a large number of
-         <a href="tasks">software packages</a> covering telescope control,
-         data reduction, presentation and other fields.
-       </p>
-
-       <h2>Featured packages</h2>
-       <py:for each="fp_row in [['stellarium', 'glueviz'], ['saods9', 
'splash']]">
-         <div class="line">
-           <py:for each="pkg_name in fp_row">
-             <div class="col50">
-               <table>
-                 <tr>
-                   <td style="border-top-style: none; width:150px;">
-                     <img src="${PackageByName[pkg_name].icon}" alt="" 
style="width:150px;" />
-                   </td>
-                   <td style="vertical-align:top; border-top-style: none;">
-                     <p style="margin-bottom:0;">
-                       
<strong>${PackageByName[pkg_name].pkg.capitalize()}:</strong>
-                       <span py:choose="">
-                         <span py:when="lang in 
PackageByName[pkg_name].desc">${PackageByName[pkg_name].desc[lang]['short']}</span>
-                         <span 
py:otherwise="">${PackageByName[pkg_name].desc['en']['short']}</span>
-                       </span>
-                       
-                     </p>
-                     <p style="margin-bottom:0;">
-                       <a 
href="${PackageByName[pkg_name].properties['homepage']}">Home page</a>
-                       - <a 
href="tasks/${PackageByName[pkg_name].taskname}#${PackageByName[pkg_name].pkg}">More...</a>
-                     </p>
-                   </td>
-                 </tr>
-               </table>
-             </div>
-           </py:for>
-         </div>
-       </py:for>
-       
-       <h2>Installation</h2>
-       <p>
-         On an existing Debian Stretch installation, you can get the
-         $projectname Pure Blend just by installing
-         its <a href="tasks">metapackages</a>.  During
-         the installation on a new system, this will be possible
-         during the installation process.
-       </p>
-       <p>
-         If you're new to Debian and you'd like to try the $projectname
-         Pure Blend without installing it on your computer, or if you'd like
-         to perform a fresh installation of Debian with all the astronomy
-         software ready-to-go, you might find the live images useful. Images
-         will be produced that can be run from DVDs or USB sticks on both 
32-bit
-         and 64-bit Intel architectures.
-       </p>
-       <p>
-         <strong>Note:</strong> $projectname is not available under Debian
-         Jessie. Our plan is to deliver the first version together with
-         Debian Stretch.
-       </p>
-    </div>
-    <div id="footer">
-      <hr class="hidecss" />
-      <p>This page is also available in the following languages:</p>
-      <py:for each="l in languages">
-       <span py:if="lang != l" class="navpara">
-         <a href="index.${language_dict[l]['short']}.html" 
title="${language_dict[l]['title']}" hreflang="${language_dict[l]['htaccess']}" 
lang="${language_dict[l]['htaccess']}" 
rel="alternate">${language_dict[l]['printed']}</a>
-       </span>
-      </py:for>
-      <p>
-       How to set
-       <a href="http://www.debian.org/intro/cn.${lang}.html";>
-         the default document language
-       </a>
-      </p>
-      <address>Last update: ${timestamp}</address>
-    </div>
-  </body>
-</html>
diff --git a/webtools_py3/templates/debian2ubuntu-termometer.sh 
b/webtools_py3/templates/debian2ubuntu-termometer.sh
deleted file mode 100755
index b2d084d..0000000
--- a/webtools_py3/templates/debian2ubuntu-termometer.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-sed \
-    -e 's%\(<title>$projectname\)\( Thermometer</title>\)%\1 packages in 
Ubuntu\2%' \
-    -e 's%\(<caption><h3>$projectname \)Package\( 
Thermometer</h3></caption>\)%\1 packages in Ubuntu\2%' \
-    -e 
's%\(<th>stable</th><th>testing</th><th>unstable</th><th>stable-bpo</th>\)<th>experimental</th><th>UNRELEASED</th>%\1<th>precise</th><th>quantal</th><th>raring</th>%'
 \
-    -e 's%''${pkg.debianstatus}''%''${pkg.ubuntustatus}''%' \
-    -e 
's%\(<td>${pkg.stable}</td><td>${pkg.testing}</td><td>${pkg.unstable}</td><td>${pkg.stable_bpo}</td>\)<td>${pkg.experimental}</td><td>${pkg.UNRELEASED}</td>%\1<td>${pkg.precise}</td><td>${pkg.quantal}</td><td>${pkg.raring}</td>%'
 \
-    -e 's%\(<div class="link"><a href=".\)u\(thermometer">\)Ubuntu\( 
Thermometer</a></div>\)%\1\2Debian\3%' \
-    thermometer.xhtml > uthermometer.xhtml
diff --git a/webtools_py3/templates/packagelist.xhtml 
b/webtools_py3/templates/packagelist.xhtml
deleted file mode 100644
index d184ebc..0000000
--- a/webtools_py3/templates/packagelist.xhtml
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="${lang}" lang="${lang}"
-      xmlns:py="http://genshi.edgewall.org/";>
-<head>
-<title>$projectname complete packagelist</title>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8"/>
-<link href="/css/sentinel.css" type="text/css" rel="stylesheet"/>
-</head>
-<body>
-<div style="text-align: center;">
-<a href="$projecturl"><span py:choose="logourl">
-                  <span py:when="None">${projectname} Project</span>
-                  <span py:otherwise=""><img src="$logourl" alt="$projectname 
Project" height="93" /></span>
-                 </span>
-</a>
-</div>
-<div class="heading" py:if="projectadvertising">
-       <div class="tabBar" style="text-align: 
center;">$projectadvertising</div>
-</div>
-<table class="columns">
-<tr>
-  <td class="left">
-    <span class="section">Summary</span>
-    <div class="section">
-      <div class="sectionTop"></div>
-      <div class="row">        The ${projectname} Pure Blend contains 
${pkgcount} packages
-       which are grouped by metapackages. Each metapackage will cause
-       the installation of packages for a specific topic. The
-       following table lists the packages of ${projectname}.</div>
-    </div>
-  </td>
-  <td class="main">
-    <div class="pageBody">
-      <h1>Tasks page</h1>
-      <p>This list of the Tasks ${projectname} is made of:</p>
-      <h2>Table of contents</h2>
-      <ul>
-       <py:for each="task in taskskeys">
-         <li><a 
href="#${task}">${tasks[task].metapkg.PrintedName.capitalize()}</a></li>
-       </py:for>
-      </ul>
-
-      <py:for each="task in taskskeys">
-       <a name="${task}" id="${task}"/>
-       <h2><a href="${task}" name="${task}" 
id="${task}">${tasks[task].metapkg.PrintedName.capitalize()} - <span 
py:choose="">
-       <span py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['short']}</span>
-       <span py:otherwise="">${tasks[task].metapkg.desc['en']['short']}</span>
-       </span></a></h2>
-       <p py:choose="">
-         <span py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['long']}</span>
-         <span py:otherwise="">${tasks[task].metapkg.desc['en']['long']}</span>
-       </p>
-       <py:for each="pstatus in dependencies[task]">
-         <h3>${headline[pstatus]}</h3>
-         <dl>
-         <py:for each="project in projects[task][pstatus]">
-                 <dt><span py:choose="project.properties['homepage']">
-                   <span py:when="'#'">${project.pkg.capitalize()}</span>
-                   <span py:otherwise=""><a 
href="${project.properties['homepage']}">${project.pkg.capitalize()}</a></span>
-                 </span>
-                  <span py:choose="">
-                   <span 
py:when="len(project.properties['stable_testing_version'])>0">(<py:for 
each="version in project.properties['stable_testing_version']">${version[3]} <a 
href="http://packages.debian.org/${version[0]}/${project.pkg}";>${version[2]}</a></py:for>)</span>
-                  </span>
-                 </dt>
-                 <dd><span py:choose="">
-                   <span py:when="lang in 
project.desc">${project.desc[lang]['short']}</span>
-                   <span py:otherwise="">${project.desc['en']['short']}</span>
-                 </span>
-                 </dd>
-           </py:for>
-         </dl>
-       </py:for>
-      </py:for>
-    </div>
-  </td>
-</tr>
-</table>
-<div id="footer">
-  <hr class="hidecss" />
-<p>This page is also available in the following languages:</p>
-<py:for each="l in languages">
-  <span py:if="lang != l" class="navpara">
-    <a href="packagelist.${language_dict[l]['short']}.html" 
title="${language_dict[l]['title']}" hreflang="${language_dict[l]['htaccess']}" 
lang="${language_dict[l]['htaccess']}" 
rel="alternate">${language_dict[l]['printed']}</a>
-  </span>
-</py:for>
-<p>How to set <a href="http://www.debian.org/intro/cn.${lang}.html";>the 
default document language</a></p>
-<address>Last update: ${timestamp}</address>
-</div>
-</body>
-</html>
diff --git a/webtools_py3/templates/packages.xhtml 
b/webtools_py3/templates/packages.xhtml
deleted file mode 100644
index dd244e0..0000000
--- a/webtools_py3/templates/packages.xhtml
+++ /dev/null
@@ -1,613 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="${lang}" lang="${lang}"
-      xmlns:py="http://genshi.edgewall.org/";>
-  <head>
-      <title>$projectname ${tasks[task].metapkg.PrintedName.capitalize()} 
packages</title>
-    <meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8" />
-    <link href="http://www.debian.org/debhandheld.css"; media="screen"
-         rel="stylesheet" type="text/css" />
-    <link href="http://www.debian.org/debian.css"; rel="stylesheet"
-         type="text/css" />
-    <link href="http://blends.debian.org/css/blends.css"; rel="stylesheet"
-         type="text/css" />
-    <style type="text/css">
-/* <!-- */
-
-a.tooltip:hover {
-    cursor:pointer;
-}
-a.tooltip span {
-    z-index:10;
-    display:none;
-    padding:14px 20px;
-    margin-top:-30px;
-    margin-left:28px;
-    line-height:16px;
-    border-radius:4px;
-    box-shadow: 5px 5px 8px #CCC;
-}
-a.tooltip:hover span{
-    display:inline;
-    position:absolute;
-    color:#111;
-    border:1px solid #DCA;
-    background:#fffAF0;
-}
-.centered {
-  position: fixed !important;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-}
-
-table {
-    padding-bottom: 1.5em;
-}
-
-tr:first-child td.fullwidth {
-   border-top-style: none;
-}
-
-.pkgdesc-full {
-    background-image: none !important;// overwrite "splash" id setting for 
"splash" package in debian-astro
-}
-.pkgdesc-full td {
-    border-top-style: none;
-}
-.pkgdesc-full h3 {
-    margin: 1em;
-}
-dl.pkgdesc > dd p,ol,ul,pre {
-    margin-top:0;
-    margin-bottom: 0;
-    padding-bottom: 0.5em;
-}
-dl.pkgdesc > dt {
-    float: left;
-    font-weight: bold;
-    margin-top: 0;
-    margin-bottom: 0;
-    margin-left: 1em;
-    margin-right: 0;
-    padding-top: 0.5em;
-    width: 150px;
-}
-dl.pkgdesc > dt:after {
-    content: ':';
-}
-dl.pkgdesc > dt.screenshot:after {
-    content: '';
-}
-dl.pkgdesc > dt.screenshot img {
-    width: 100%;
-}
-
-dl.pkgdesc > dd {
-    margin-left: 2em;
-    padding-left: 150px;
-    padding-bottom: 0.5em;
-    padding-top: 0.5em;
-}
-dl.pkgdesc > dd::after {
-    clear: left;
-    content: '';
-    display: block;
-}
-.pkgdesc-short td:not(:last-child) {
-    width: 1px;
-    white-space: nowrap;
-}
-.pkgdesc-short td:first-child {
-    padding-left: 0.4em;
-    padding-right: 0;
-}
-a:hover:not(:link):not(:visited) {
-    color: grey;
-}
-tr.alternate-color {
-    background-color: #eee;
-}
-ul.desc-inline {
-    padding: 0;
-    margin: 0;
-    display: inline;
-}
-ul.desc-inline li {
-    display: inline;
-}
-
-ul.desc-inline li + li::before {
-    content: ' \2022\20';
-}
-dl.debtags {
-    padding: 0;
-    margin: 0;
-}
-dl.debtags dt, dl.debtags dd {
-    display: inline;
-    font-weight: normal;
-    margin: 0;
-}
-dl.debtags dt {
-    text-transform: capitalize;
-}
-dl.debtags dd + dt::before {
-    content: ' \2022\20';
-}
-dl.debtags dt:after {
-    content: ': ';
-}
-a.editlink {
-    float: left;
-    position: relative;
-    text-decoration: none;
-    padding-right: 0.5em;
-}
-/* --> */
-    </style>
-    <link rel="shortcut icon" href="http://www.debian.org/favicon.ico"; />
-    <script type="text/javascript">
-/* <!-- */
-function toggle_visibility(id) {
-    var element = document.getElementById(id);
-    if (element) {
-        if (element.style.display == "none") {
-            element.style.display = "";
-        } else {
-            element.style.display = "none";
-        }
-    }
-}
-function show_fulldesc(hash) {
-    var full = document.getElementsByClassName("pkgdesc-full");
-    var l = full.length;
-    for (var i = 0; i < l; i++) {
-      if ((hash == "#all") | (hash == "#" + full[i].id)) {
-          full[i].style.display = "";
-      } else {
-        full[i].style.display = "none";
-      }
-    }
-}
-/* --> */
-  </script>
-  </head>
-  <body onload="show_fulldesc(window.location.hash)">
-    <div id="header">
-      <div id="upperheader">
-       <div id="logo">
-         <a href="http://www.debian.org/"; title="Debian Home">
-           <img src= "http://www.debian.org/Pics/openlogo-50.png";
-                alt="Debian" width="50" height= "61" /></a>
-         </div>
-         <p class="section">Pure Blend</p>
-       </div>
-       <div id="navbar">
-         <ul>
-           <li><a href="$projecturl">$projectname</a></li>
-           <li><a href="../tasks">Packages</a></li>
-           <li><a href="../contact.html">Contact</a></li>
-           <li><a href="../contribute.html">Contribute</a></li>
-         </ul>
-       </div>
-       <p id="breadcrumbs">
-         <a href="http://blends.debian.org";>Debian Pure Blends</a>
-         / <a href="$projecturl">$projectname</a>
-         / <a href="../tasks">Packages</a>
-         / ${tasks[task].metapkg.PrintedName.capitalize()}
-       </p>
-      </div><!-- end header -->
-      <div id="content">
-       <small><p>
-         <ul class="desc-inline">
-           <li><a href="#all" onclick="show_fulldesc('#all');">Show all 
details</a></li>
-           <li><a href="#" onclick="show_fulldesc('#');">Hide all 
details</a></li>
-         </ul>
-       </p></small>
-       <h1>
-         $projectname ${tasks[task].metapkg.PrintedName.capitalize()} packages
-       </h1>
-       <em>
-         <py:choose>
-           <py:when test="lang in tasks[task].metapkg.desc">
-             ${tasks[task].metapkg.desc[lang]['short']}
-           </py:when>
-           <py:otherwise>
-             ${tasks[task].metapkg.desc['en']['short']}
-           </py:otherwise>
-         </py:choose>
-       </em>
-       <py:choose>
-         <py:when test="lang in tasks[task].metapkg.desc">
-           <a class="editlink" title="Fix translated description" 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${tasks[task].metapkg.pkg}";
 py:if="lang != 'en'">
-             &#9999;
-           </a>
-           ${tasks[task].metapkg.desc[lang]['long']}
-         </py:when>
-         <py:otherwise>
-           <a class="editlink" title="Translate description" 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/fetch?package=${tasks[task].metapkg.pkg}";
 py:if="lang != 'en'">
-             &#9999;
-           </a>
-           ${tasks[task].metapkg.desc['en']['long']}
-         </py:otherwise>
-       </py:choose>
-       <table width="90%">
-         <py:for each="pstatus in dependencies[task]">
-           <tr>
-             <td colspan="4" class="fullwidth">
-               <h2>
-                 <a id="${pstatus}-debs" name="${pstatus}-debs"/>
-                 ${headline[pstatus]}
-               </h2>
-             </td>
-           </tr>
-           <tr class="header">
-             <th></th>
-             <th>Package</th>
-             <th>Version</th>
-             <th>Description</th>
-           </tr>
-           <py:for each="line, project in enumerate(projects[task][pstatus])">
-             <tr id="${project.pkg}.short"
-                 class="pkgdesc-short ${'alternate-color' if line % 2 == 1
-                        else ''}">
-               <td>
-                 <a onclick="toggle_visibility('${project.pkg}');"
-                    style="cursor:pointer;" title="Click to toggle details">
-                   &#9662;
-                 </a>
-               </td>
-               <td style="text-transform:capitalize;">
-                 <a onclick="toggle_visibility('${project.pkg}');"
-                    style="cursor:pointer;" title="Click to toggle details">
-                   ${project.pkg}
-                 </a>
-               </td>
-               <td>
-                 <py:if test="project.version">
-                   <py:choose>
-                     <py:when test="isinstance(project.version[-1], str)">
-                       ${project.version[-1]}
-                     </py:when>
-                     <py:otherwise>
-                       <a 
href="http://packages.debian.org/${project.version[-1]['release']}/${project.pkg}"
-                          title="Version ${project.version[-1]['version']} in 
${project.version[-1]['release']}">
-                         ${project.version[-1]['version']}
-                       </a>
-                     </py:otherwise>
-                   </py:choose>
-                 </py:if>
-                 <py:if test="project.outdated">
-                   <a class="tooltip">
-                     &#8634;
-                     <span>
-                       New upstream version
-                       <strong>${project.outdated['version']}</strong>
-                       available
-                     </span>
-                   </a>
-                 </py:if>
-                 <py:if test="False">
-                   <a class="tooltip">
-                     &#9760;
-                     <span>XXX release critical bugs</span>
-                   </a>
-                 </py:if>
-                 <py:if test="False"> <!-- CI failures -->
-                   <a class="tooltip">
-                     &#9785;
-                     <span>CI test failure</span>
-                   </a>
-                 </py:if>
-               </td>
-               <td>
-                 <a onclick="toggle_visibility('${project.pkg}');"
-                    style="cursor:pointer;" title="Click to toggle details">
-                   <py:choose>
-                     <py:when test="lang in 
project.desc">${project.desc[lang]['short']}</py:when>
-                     
<py:otherwise>${project.desc['en']['short']}</py:otherwise>
-                   </py:choose>
-                 </a>
-               </td>
-             </tr>
-             <tr id="${project.pkg}" style="display:none;"
-                 class="pkgdesc-full ${'alternate-color' if line % 2 == 1 else 
''}">
-               <td colspan="4">
-                 <h3>
-                   ${project.pkg.capitalize()}:
-                   <py:choose>
-                     <py:when test="lang in 
project.desc">${project.desc[lang]['short']}</py:when>
-                     
<py:otherwise>${project.desc['en']['short']}</py:otherwise>
-                   </py:choose>
-                 </h3>
-                 <dl class="pkgdesc">
-                   <py:choose>
-                     <py:when test="project.icon">
-                       <dt class="screenshot">
-                         <a class="tooltip" 
href="http://screenshots.debian.net/package/${project.pkg}";>
-                           <img src="${project.icon}" alt="Description:" />
-                           <span class="tooltip centered">
-                             <img src="${project.image}" />
-                             <table py:if="project.screenshots != []" 
class="versionclass">
-                               <tr><th colspan="3"
-                                       class="versionclass"><strong>Other 
screenshots of package ${project.pkg}</strong></th></tr>
-                               <tr><th class="version">Version</th><th 
class="archs">URL</th></tr>
-                               <py:for each="screenshot in 
project.screenshots">
-                                 <tr><td 
class="version">${screenshot['version']}</td><td class="archs"><a 
href="${screenshot['url']}">${screenshot['url']}</a></td></tr>
-                               </py:for>
-                             </table>
-                           </span>
-                         </a>
-                       </dt>
-                     </py:when>
-                     <py:otherwise>
-                       <dt>Description</dt>
-                     </py:otherwise>
-                   </py:choose>
-                   <dd>
-                     <py:choose>
-                       <py:when test="lang != 'en' and lang in project.desc">
-                         <a class="editlink" title="Fix translated 
description" 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${project.pkg}";>
-                           &#9999;
-                         </a>
-                         ${project.desc[lang]['long']}
-                       </py:when>
-                       
<py:otherwise>${project.desc['en']['long']}</py:otherwise>
-                     </py:choose>
-                   </dd>
-                   <py:if test="'published' in project.properties">
-                     <dt>Reference</dt>
-                     <dd>
-                       <py:if test="'authors' in 
project.properties['published']">
-                         ${project.properties['published']['authors']}:
-                       </py:if>
-                       <py:choose>
-                         <py:when test="'url' in 
project.properties['published']">
-                           <py:choose>
-                             <py:when test="'title' in 
project.properties['published']">
-                               <a 
href="${project.properties['published']['url']}">
-                                 
<em>${project.properties['published']['title']}.</em>
-                               </a>
-                             </py:when>
-                             <py:otherwise>
-                               <a 
href="${project.properties['published']['url']}">
-                                 Link to publication
-                               </a>
-                             </py:otherwise>
-                           </py:choose>
-                         </py:when>
-                         <py:when test="'doi' in 
project.properties['published']">
-                           <py:choose>
-                             <py:when test="'title' in 
project.properties['published']">
-                               <a 
href="http://dx.doi.org/${project.properties['published']['doi']}">
-                                 ${project.properties['published']['title']}.
-                               </a>
-                             </py:when>
-                             <py:otherwise>
-                               <a 
href="http://dx.doi.org/${project.properties['published']['doi']}">
-                                 Link to publication</a>
-                             </py:otherwise>
-                           </py:choose>
-                         </py:when>
-                         <py:otherwise>
-                           <py:if test="'title' in 
project.properties['published']">
-                             ${project.properties['published']['title']}
-                           </py:if>
-                         </py:otherwise>
-                       </py:choose>
-                       <py:if test="'pubmed' in 
project.properties['published']">
-                         (<a 
href="http://www.ncbi.nlm.nih.gov/pubmed/${project.properties['published']['pubmed']}">PubMed</a></py:if><py:if
 test="'pubmed' in project.properties['published'] and 'eprint' in 
project.properties['published']">,</py:if><py:if test="'pubmed' not in 
project.properties['published'] and 'eprint' in 
project.properties['published']">(</py:if><py:if test="'eprint' in 
project.properties['published']"><a 
href="${project.properties['published']['eprint']}">eprint</a></py:if><py:if 
test="'pubmed' in project.properties['published'] or 'eprint' in 
project.properties['published']">)</py:if>
-                       <py:if test="'journal' in 
project.properties['published']">${project.properties['published']['journal']}</py:if>
-                       <py:if test="'volume' in 
project.properties['published']">${project.properties['published']['volume']}</py:if><py:if
 test="'number' in 
project.properties['published']">(${project.properties['published']['number']})</py:if><py:if
 test="'pages' in 
project.properties['published']">:${project.properties['published']['pages']}</py:if>
-                       <py:if test="'year' in 
project.properties['published']">(${project.properties['published']['year']})</py:if>
-                     </dd>
-                   </py:if>
-                   <py:if test="project.responsible != None">
-                     <dt>${maintainer[pstatus]}</dt>
-                     <dd>
-                       <ul class="desc-inline">
-                         <li>${project.responsible}</li>
-                         <py:if test="project.properties.get('changed_by')">
-                           <li>${project.properties['changed_by']}</li>
-                         </py:if>
-                       </ul>
-                     </dd>
-                   </py:if>
-                   <py:if test="project.version != []">
-                     <dt>Versions</dt>
-                     <dd>
-                       <ul class="desc-inline">
-                         <py:for each="version in project.version">
-                           <py:choose>
-                             <py:when test="isinstance(version, str)">
-                             <li>${version}</li>
-                             </py:when>
-                             <py:when test="'amd64' in version['archs'] or 
'all' in version['archs']">
-                               <li>
-                                 ${version['version']}
-                                 (<a 
href="https://packages.debian.org/${version['release']}/${project.pkg}">${version['release']}</a>)
-                               </li>
-                             </py:when>
-                           </py:choose>
-                         </py:for>
-                         <py:if test="project.outdated">
-                           <li>
-                             <strong>${project.outdated['version']}</strong>
-                             (${project.outdated['release']})
-                           </li>
-                         </py:if>
-                       </ul>
-                     </dd>
-                   </py:if>
-                   <py:if test="project.debtags">
-                     <dt>Tags</dt>
-                     <dd>
-                       <a class="editlink" title="Edit tags" 
href="https://debtags.debian.org/edit/${project.pkg}";>
-                         &#9999;
-                       </a>
-                       <dl class="debtags desc-inline">
-                         <py:for each="debtag in project.debtags">
-                           <dt>${debtag['tag']}</dt>
-                           <dd>${debtag['value']}</dd>
-                         </py:for>
-                       </dl>
-                     </dd>
-                   </py:if>
-                   <py:if test="project.popcon and project.popcon['insts']">
-                     <dt>Popularity</dt>
-                     <dd>
-                       <ul class="desc-inline">
-                         <py:if test="project.popcon['vote']">
-                           <li>${project.popcon['vote']} regular users</li>
-                         </py:if>
-                         <py:if test="project.popcon['recent']">
-                           <li>
-                             ${project.popcon['recent']} recent
-                           </li>
-                         </py:if>
-                         <li>
-                           ${project.popcon['insts']} total installations
-                           (of ${popconsubmit} submissions)
-                         </li>
-                       </ul>
-                     </dd>
-                   </py:if>
-                   <py:if test="project.properties['Enhances'] != {}">
-                     <dt>Enhancements</dt>
-                     <dd>
-                       <ul class="desc-inline">
-                         <py:for each="enh in 
project.properties['Enhances'].keys()">
-                           <li>
-                             <a 
href="${project.properties['Enhances'][enh]}">${enh}</a>
-                           </li>
-                         </py:for>
-                       </ul>
-                     </dd>
-                   </py:if>
-                   <dt>Debian</dt>
-                   <dd>
-                     <ul class="desc-inline">
-                       <py:if test="'wnpp' in project.properties">
-                         <li>
-                           <a 
href="http://bugs.debian.org/${project.properties['wnpp']}">
-                             Announcement
-                           </a>
-                         </li>
-                       </py:if>
-                       <py:if test="project.pkgstatus == 'new'">
-                         <li>
-                           <a href="${project.properties['pkg-url']}">NEW 
entry</a>
-                         </li>
-                       </py:if>
-                       <py:if test="project.pkgstatus in ('official_high', 
'official_low', 'non-free', 'experimental')">
-                         <li>
-                           <a 
href="https://tracker.debian.org/pkg/${project.pkg}";>
-                             Maintainer page
-                           </a>
-                         </li>
-                       </py:if>
-                       <py:if test="project.pkgstatus in ('official_high', 
'official_low', 'non-free', 'experimental')">
-                         <li>
-                           <a 
href="https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&amp;src=${project.pkg}";>
-                             Bugs
-                           </a>
-                         </li>
-                       </py:if>
-                       <py:if test="project.properties['vcs-browser'] != '#'">
-                         <li>
-                           <py:choose>
-                             <py:when test="'vcs-url' in project.properties">
-                               <a href="${project.properties['vcs-browser']}" 
title="${project.properties['vcs-url']}">
-                                 ${project.properties['vcs-type']}
-                               </a>
-                             </py:when>
-                             <py:otherwise>
-                               <a href="${project.properties['vcs-browser']}">
-                                 ${project.properties['vcs-type']}
-                               </a>
-                             </py:otherwise>
-                           </py:choose>
-                         </li>
-                       </py:if>
-                     </ul>
-                   </dd>
-                   <py:if test="'homepage' in project.properties and 
project.properties['homepage'] not in (None, '', '#')">
-                     <dt>Upstream</dt>
-                     <dd>
-                       <ul class="desc-inline">
-                         <li>
-                           <a href="${project.properties['homepage']}">Home 
page</a>
-                         </li>
-                         <py:if test="'registration' in project.properties">
-                           <li>
-                             <a href="${project.properties['registration']}">
-                               Registration
-                             </a>
-                           </li>
-                         </py:if>
-                       </ul>
-                     </dd>
-                   </py:if>
-                   <py:if test="project.remark">
-                     <dt>Remark</dt>
-                     <dd>
-                       <py:if 
test="project.remark['short']">${project.remark['short']}</py:if>
-                       <py:if 
test="project.remark['long']">${project.remark['long']}</py:if>
-                     </dd>
-                   </py:if>
-                   <py:if test="project.component == 'main'
-                                and project.pkgstatus in ('official_high', 
'official_low', 'experimental')
-                                and (not project.icon or not project.debtags 
-                                     or (lang != 'en' and lang not in 
project.desc))">
-                     <dt>Improve entry</dt>
-                     <dd>
-                       <ul class="desc-inline">
-                         <li py:if="not project.icon">
-                           <a 
href="http://screenshots.debian.net/uploadfile?packagename=${project.pkg}";>
-                             Upload Screenshot
-                           </a>
-                         </li>
-                         <li py:if="not project.debtags">
-                           <a 
href="https://debtags.debian.org/edit/${project.pkg}";>
-                             Create tags
-                           </a>
-                         </li>
-                         <li py:if="lang != 'en' and lang not in project.desc">
-                           <a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/fetch?package=${project.pkg}";>
-                             Translate description
-                           </a>
-                         </li>
-                       </ul>
-                     </dd>
-                   </py:if>
-                 </dl>
-                 <div style="position:relative;">
-                   <a style="position:absolute; right:0; bottom:1em; 
cursor:pointer;" onclick="toggle_visibility('${project.pkg}');"
-                      title="Click to close details">Close</a></div>
-               </td>
-             </tr>
-           </py:for>
-         </py:for>
-         <tr><td colspan="4" class="fullwidth" /></tr>
-       </table>
-      </div>
-      <div id="footer">
-       <hr class="hidecss" />
-       <p>This page is also available in the following languages:</p>
-       <py:for each="l in languages">
-         <span py:if="lang != l" class="navpara">
-           <a href="${task}.${language_dict[l]['short']}.html" 
title="${language_dict[l]['title']}" hreflang="${language_dict[l]['htaccess']}" 
lang="${language_dict[l]['htaccess']}" 
rel="alternate">${language_dict[l]['printed']}</a>
-         </span>
-       </py:for>
-       <p>
-         How to set
-         <a href="http://www.debian.org/intro/cn.${lang}.html";>
-           the default document language
-         </a>
-       </p>
-       <address>Last update: ${timestamp}</address>
-      </div>
-  </body>
-</html>
diff --git a/webtools_py3/templates/tasks.xhtml 
b/webtools_py3/templates/tasks.xhtml
deleted file mode 100644
index 64edd89..0000000
--- a/webtools_py3/templates/tasks.xhtml
+++ /dev/null
@@ -1,253 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="${lang}" lang="${lang}"
-      xmlns:py="http://genshi.edgewall.org/";>
-<head>
-<title>$projectname ${tasks[task].metapkg.PrintedName.capitalize()} 
packages</title>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8"/>
-<!--<meta charset="utf-8" />-->
-<link href="/css/sentinel.css" type="text/css" rel="stylesheet"/>
-</head>
-<body>
-<script type="text/javascript" src="/js/wz_tooltip.js"></script>
-<div style="text-align: center;">
-<a href="$projecturl"><span py:choose="logourl">
-                  <span py:when="None">${projectname} Project</span>
-                  <span py:otherwise=""><img src="$logourl" alt="$projectname 
Project" height="93" /></span>
-                 </span>
-</a>
-</div>
-<div class="heading" py:if="projectadvertising">
-       <div class="tabBar" style="text-align: 
center;">$projectadvertising</div>
-</div>
-<table class="columns">
-<tr>
-       <td class="left">
-               <span class="section">Summary</span>
-               <div class="section">
-                       <div class="sectionTop"/>
-                       <div class="row">
-                               <div 
class="pkgname">${tasks[task].metapkg.PrintedName.capitalize()}</div>
-                               <div class="pkgdesc" py:choose="">
-                                 <div py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['short']}</div>
-                                 <div 
py:otherwise="">${tasks[task].metapkg.desc['en']['short']}</div>
-                               </div>
-                               <p><span py:choose="">
-                  <span py:when="lang in 
tasks[task].metapkg.desc">${tasks[task].metapkg.desc[lang]['long']}
-                     <div class="transmpkg" py:if="lang != 'en'"><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${tasks[task].metapkg.pkg}";>Fix
 translated description</a></div>
-                   </span>
-                  <span 
py:otherwise="">${tasks[task].metapkg.desc['en']['long']}
-                     <div class="transmpkg" py:if="lang != 'en'"><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/fetch?package=${tasks[task].metapkg.pkg}";>Translate
 description</a></div>
-                   </span>
-                 </span></p>
-                       </div>
-                       <div class="row">
-                               <p>Description
-                               </p>
-                               <p>For a better overview of the project's 
availability as a Debian package,
-                                 each head row has a color code according to 
this scheme:</p>
-                               <ul>
-                                  <py:for each="pstatus in dependencies[task]">
-                                    <li class="deb-${pstatus}"><a 
href="#${pstatus}-debs">${headline[pstatus]}</a></li>
-                                  </py:for>
-                               </ul>
-                               <p>If you discover a project which looks like a 
good candidate for ${projectname}
-                                 to you, or if you have prepared an unofficial 
Debian package, please do not hesitate to
-                                 send a description of that project to the
-                                 <a 
href="mailto:${projectlist}";>${projectname} mailing list</a>.
-                               </p>
-                       </div>
-               </div>
-
-               <span class="section">Links to other tasks</span>
-               <div class="section">
-                       <div class="sectionTop"/>
-                       <div class="row">
-                            <div class="link"><a href="index">Index of all 
tasks</a></div>
-                          <py:for each="t in taskskeys">
-                            <div py:choose="t">
-                              <span py:when="task" class="curlink"><a 
href="${t}">${tasks[t].metapkg.PrintedName.capitalize()}</a></span>
-                              <span py:otherwise="" class="link"><a 
href="${t}">${tasks[t].metapkg.PrintedName.capitalize()}</a></span>
-                            </div>
-                          </py:for>
-                        </div>
-               </div>
-       </td>
-       <td class="main">
-               <div class="pageBody">
-                       <h1>$projectname 
${tasks[task].metapkg.PrintedName.capitalize()} packages</h1>
-<py:for each="pstatus in dependencies[task]">
-                       <h2><a id="${pstatus}-debs" 
name="${pstatus}-debs"/>${headline[pstatus]}</h2>
-   <py:for each="project in projects[task][pstatus]">
-     <table class="project" summary="${project.pkg}">
-       <tbody>
-        <tr class="deb-${pstatus}">
-          <td class="project-name">
-            <a name="${project.pkg}" id="${project.pkg}"/>
-            <div class="pkgname">${project.pkg.capitalize()}
-              <span class="wnpp" py:if="'wnpp' in project.properties"> - <a 
href="http://bugs.debian.org/${project.properties['wnpp']}">wnpp</a></span>
-            </div>
-            <div class="pkgdesc" py:choose="">
-                  <div py:when="lang in 
project.desc">${project.desc[lang]['short']}</div>
-                  <div py:otherwise="">${project.desc['en']['short']}</div>
-            </div>
-            <div py:choose="project.properties['homepage']">
-                <span py:when="'#'">Homepage not available</span>
-                <span py:otherwise=""><a 
href="${project.properties['homepage']}">${project.properties['homepage']}</a></span>
-             </div>
-            <div py:if="project.responsible != None">${maintainer[pstatus]}:
-               ${project.responsible} <span py:if="'changed_by' in 
project.properties">(${project.properties['changed_by']})</span>
-             </div>
-          </td>
-          <td py:if="project.component and project.pkgstatus != 'new' and 
project.pkgstatus != 'pkgvcs'" class="project-info">
-            <span py:if="project.version != []" class="tooltip" 
id="${project.pkg}-versions">
-              <table class="versionclass">
-                <tr><th colspan="3" class="versionclass"><strong>Versions of 
package ${project.pkg}</strong></th></tr>
-                <tr><th class="release">Release</th><th 
class="version">Version</th><th class="archs">Architectures</th></tr>
-                <py:for each="version in project.version">
-                  <tr><td class="release">${version['release']}</td><td 
class="version">${version['version']}</td><td 
class="archs">${version['archs']}</td></tr>
-                </py:for>
-                 <tr py:if="project.outdated != {}"><td 
class="outdated">${project.outdated['release']}</td><td 
class="outdated">${project.outdated['version']}</td>
-                 </tr>
-              </table>
-            </span>
-            <span py:if="project.debtags != []" class="tooltip" 
id="${project.pkg}-debtags">
-              <table class="versionclass">
-                <tr><th colspan="2" class="versionclass"><strong>Debtags of 
package ${project.pkg}:</strong></th></tr>
-                <py:for each="debtag in project.debtags">
-                  <tr><td class="release">${debtag['tag']}</td><td 
class="version">${debtag['value']}</td></tr>
-                </py:for>
-              </table>
-            </span>
-            <div py:if="project.popcon != {}"
-            class="popcon"><a 
href="http://qa.debian.org/popcon-png.php?packages=${project.pkg}%26show_vote=on%26show_recent=on%26want_legend=on";>Popcon</a>:
-            ${project.popcon['vote']} users (${project.popcon['recent']} 
upd.)<sup><a href="#popconexplanation">*</a></sup></div>
-            <div py:if="project.version != []">
-              <div py:choose="">
-                <div py:when="project.outdated == {}" class="project-info" 
onmouseover="TagToTip('${project.pkg}-versions', FIX, ['${project.pkg}', 0, 
0])" onmouseout="UnTip()">Versions and Archs</div>
-                <div py:otherwise="" class="project-infomissing" 
onmouseover="TagToTip('${project.pkg}-versions', FIX, ['${project.pkg}', 0, 
0])" onmouseout="UnTip()">Newer upstream!</div>
-              </div>
-            </div>
-            <div py:choose="">
-              <div py:when="project.debtags != []" class="project-info" 
onmouseover="TagToTip('${project.pkg}-debtags', FIX, ['${project.pkg}', 0, 0])" 
onmouseout="UnTip()"><a 
href="https://debtags.debian.org/edit/${project.pkg}";>Edit Debtags</a></div>
-               <div py:otherwise="">
-                <div class="project-infomissing"><a 
href="https://debtags.debian.org/edit/${project.pkg}";>Go tagging</a></div>
-              </div>
-            </div>
-           </td>
-           <td class="project-license">
-             <em>License: ${project.properties['license']}</em>
-            <div py:choose="project.properties['pkg-url']">
-                <span py:when="'#'">Debian package not available</span>
-                <span py:otherwise=""><a 
href="${project.properties['pkg-url']}">${pdolinkname[pstatus]}</a></span>
-             </div>
-            <div py:if="project.properties['vcs-browser'] != '#'">
-              <span py:choose="">
-                <span py:when="'vcs-url' in project.properties"><a 
href="${project.properties['vcs-browser']}" 
title="${project.properties['vcs-url']}">${project.properties['vcs-type']}</a></span>
-                <span py:otherwise=""><a 
href="${project.properties['vcs-browser']}">${project.properties['vcs-type']}</a></span>
-              </span>
-            </div>
-            <div py:if="lang != 'en' and project.component == 'main' and 
project.pkgstatus != 'new' and project.pkgstatus != 'pkgvcs'">
-              <div py:choose="">
-                  <div class="trans" py:when="lang in project.desc"><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/forexternalreview/${project.pkg}";>Fix
 translated description</a></div>
-                  <div class="trans-missing" py:otherwise=""><a 
href="http://ddtp.debian.net/ddtss/index.cgi/${lang}/fetch?package=${project.pkg}";>Translate
 description</a></div>
-               </div>
-            </div>
-            <div class="language" py:if="'language' in project.properties and 
project.component != 'main'">Language: ${project.properties['language']}</div>
-            <div py:if="project.version != [] and (project.pkgstatus == 'new' 
or project.pkgstatus == 'pkgvcs')">Version: ${project.version[0]}</div>
-           </td>
-         </tr>
-         <tr>
-           <td colspan="2" class="project-description"><span py:choose="">
-                  <span py:when="lang in 
project.desc">${project.desc[lang]['long']}</span>
-                  <span py:otherwise="">${project.desc['en']['long']}</span>
-                </span>
-            <div class="enhanced-by" py:if="project.properties['Enhances'] != 
{}">
-              The package is enhanced by the following packages: <py:for 
each="enh in project.properties['Enhances'].keys()">
-                <a href="${project.properties['Enhances'][enh]}">${enh}</a>
-              </py:for>
-            </div>
-            <div class="registration" py:if="'registration' in 
project.properties">
-              <span class="registrationlink" >Please register by following <a
-              href="${project.properties['registration']}">this 
link</a></span> if you are using ${project.pkg}.
-            </div>
-            <div class="published"
-            py:if="'published' in project.properties">Please cite:
-              <span class="authors" py:if="'authors' in 
project.properties['published']">${project.properties['published']['authors']}:</span>
-              <span py:choose="">
-                <span py:when="'url' in project.properties['published']">
-                  <span py:choose="">
-                     <span class="title"
-                          py:when="'title' in 
project.properties['published']"><a 
href="${project.properties['published']['url']}">${project.properties['published']['title']}.</a></span>
-                    <span py:otherwise=""><a 
href="${project.properties['published']['url']}">Link
-                        to publication</a></span>
-                  </span>
-                </span>
-                <span py:when="'doi' in project.properties['published']">
-                  <span py:choose="">
-                     <span class="title"
-                          py:when="'title' in 
project.properties['published']"><a 
href="http://dx.doi.org/${project.properties['published']['doi']}">${project.properties['published']['title']}.</a></span>
-                    <span py:otherwise=""><a 
href="http://dx.doi.org/${project.properties['published']['doi']}">Link
-                        to publication</a></span>
-                  </span>
-                </span>
-                <span py:otherwise=""><span class="title" py:if="'title' in 
project.properties['published']">${project.properties['published']['title']}</span>
-                </span>
-              </span>
-               <span py:if="'pubmed' in project.properties['published']">(<a 
href="http://www.ncbi.nlm.nih.gov/pubmed/${project.properties['published']['pubmed']}">PubMed</a></span><span
 py:if="'pubmed' in project.properties['published'] and 'eprint' in 
project.properties['published']">,</span><span py:if="'pubmed' not in 
project.properties['published'] and 'eprint' in 
project.properties['published']">(</span><span py:if="'eprint' in 
project.properties['published']"><a 
href="${project.properties['published']['eprint']}">eprint</a></span><span 
py:if="'pubmed' in project.properties['published'] or 'eprint' in 
project.properties['published']">)</span>
-              <span class="journal" py:if="'journal' in 
project.properties['published']">${project.properties['published']['journal']}</span>
-              <span class="journal" py:if="'volume' in 
project.properties['published']">${project.properties['published']['volume']}</span><span
 class="journal" py:if="'number' in 
project.properties['published']">(${project.properties['published']['number']})</span><span
 class="journal" py:if="'pages' in 
project.properties['published']">:${project.properties['published']['pages']}</span>
-              <span class="year" py:if="'year' in 
project.properties['published']">(${project.properties['published']['year']})</span>
-            </div>
-          </td>
-          <td py:if="project.component and project.pkgstatus != 'new' and 
project.pkgstatus != 'pkgvcs'" class="project-icon">
-            <div py:choose="">
-              <div py:when="project.icon != None">
-                <span class="tooltip" id="${project.pkg}-screenshot">
-                  <img src="${project.image}" />
-                  <table py:if="project.screenshots != []" 
class="versionclass">
-                    <tr><th colspan="3"
-                    class="versionclass"><strong>Other screenshots of package 
${project.pkg}</strong></th></tr>
-                    <tr><th class="version">Version</th><th 
class="archs">URL</th></tr>
-                    <py:for each="screenshot in project.screenshots">
-                      <tr><td class="version">${screenshot['version']}</td><td 
class="archs"><a href="${screenshot['url']}">${screenshot['url']}</a></td></tr>
-                    </py:for>
-                  </table>
-                </span>
-                 <a 
href="http://screenshots.debian.net/package/${project.pkg}";><img class="icon" 
src="${project.icon}" width="300" alt="Screenshots of package ${project.pkg}" 
onmouseover="TagToTip('${project.pkg}-screenshot', FIX, ['${project.pkg}', 80, 
-100])" onmouseout="UnTip()" /></a>
-               </div>
-              <div py:otherwise="" class="project-infomissing"><a 
href="http://screenshots.debian.net/uploadfile?packagename=${project.pkg}";>Upload
 screenshot</a></div>
-             </div>
-           </td>
-         </tr>
-        <tr py:if="project.remark">
-          <td colspan="3" class="remark">
-            <div py:if="project.remark['short']"><strong>Remark of 
${projectname} team:</strong> ${project.remark['short']}</div>
-            <div py:if="project.remark['long']">${project.remark['long']}</div>
-          </td>
-        </tr>
-       </tbody>
-     </table>
-   </py:for>
-</py:for>
-               </div>
-       </td>
-</tr>
-</table>
-<div class="footnotecontent" id="popconexplanation">
-  <sup>*</sup>Popularitycontest results: number of people who use this package 
regularly (number of people who upgraded this package recently) out of 
${popconsubmit}
-</div>
-<div id="footer">
-  <hr class="hidecss" />
-<p>This page is also available in the following languages:</p>
-<py:for each="l in languages">
-  <span py:if="lang != l" class="navpara">
-    <a href="${task}.${language_dict[l]['short']}.html" 
title="${language_dict[l]['title']}" hreflang="${language_dict[l]['htaccess']}" 
lang="${language_dict[l]['htaccess']}" 
rel="alternate">${language_dict[l]['printed']}</a>
-  </span>
-</py:for>
-<p>How to set <a href="http://www.debian.org/intro/cn.${lang}.html";>the 
default document language</a></p>
-<address>Last update: ${timestamp}</address>
-</div>
-</body>
-</html>
diff --git a/webtools_py3/templates/tasks_idx.xhtml 
b/webtools_py3/templates/tasks_idx.xhtml
deleted file mode 100644
index 8007084..0000000
--- a/webtools_py3/templates/tasks_idx.xhtml
+++ /dev/null
@@ -1,117 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="${lang}" lang="${lang}"
-      xmlns:py="http://genshi.edgewall.org/";>
-  <head>
-    <title>$projectname</title>
-    <meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8" />
-    <link href="http://www.debian.org/debhandheld.css"; media="screen"
-         rel="stylesheet" type="text/css" />
-    <link href="http://www.debian.org/debian.css"; rel="stylesheet"
-         type="text/css" />
-    <link href="http://blends.debian.org/css/blends.css"; rel="stylesheet"
-         type="text/css" />
-    <style type="text/css">
-/* <!-- */
-tr:nth-child(even) {
-    background-color: #eee;
-}
-table {
-    padding-bottom: 1.5em;
-}
-
-/* --> */
-    </style>
-    <link rel="shortcut icon" href="http://www.debian.org/favicon.ico"; />
-  </head>
-  <body>
-    <div id="header">
-      <div id="upperheader">
-       <div id="logo">
-         <a href="http://www.debian.org/"; title="Debian Home">
-           <img src= "http://www.debian.org/Pics/openlogo-50.png";
-                alt="Debian" width="50" height= "61" /></a>
-         </div>
-         <p class="section">Pure Blend</p>
-       </div>
-       <div id="navbar">
-         <span py:choose="">
-           <span py:when="projectname == 'Debian Astro'">
-             <ul>
-               <li><a href="$projecturl">$projectname</a></li>
-               <li><a href="../tasks">Packages</a></li>
-               <li><a href="../contact.html">Contact</a></li>
-               <li><a href="../contribute.html">Contribute</a></li>
-             </ul>
-           </span>
-           <span py:otherwise="">
-             <ul>
-               <li><a href="$projecturl">$projectname</a></li>
-               <li><a href="../tasks">Packages</a></li>
-               <li><a href="../bugs/">Bugs</a></li>
-               <li><a href="../thermometer/">Thermometer</a></li>
-               <li><a href="../maintstats/">Maintainer Stats</a></li>
-             </ul>
-           </span>
-         </span>
-       </div>
-      <p id="breadcrumbs">
-       <a href="http://blends.debian.org";>Debian Pure Blends</a>
-       / <a href="$projecturl">$projectname</a>
-       / Packages
-      </p>
-    </div><!-- end header -->
-    <div id="content">
-      <h1>$projectname Packages</h1>
-      <p>
-       The ${projectname} Pure Blend contains ${pkgcount} packages
-       which are grouped by metapackages. Each metapackage will cause
-       the installation of packages for a specific topic. The
-       following table lists the metapackages of ${projectname}.
-      </p>
-      <table>
-       <thead>
-         <tr><th>Metapackage</th><th>Description</th></tr>
-       </thead>
-       <tbody>
-          <py:for each="task in taskskeys">
-           <tr>
-             <td style="text-transform:capitalize;">
-               <a href="${task}" name="${task}" id="${task}">
-                 ${tasks[task].metapkg.PrintedName}
-               </a>
-             </td>
-             <td>
-               <span py:choose="">
-                 <span py:when="lang in tasks[task].metapkg.desc">
-                   ${tasks[task].metapkg.desc[lang]['short']}
-                 </span>
-                 <span py:otherwise="">
-                   ${tasks[task].metapkg.desc['en']['short']}
-                 </span>
-               </span>
-             </td>
-           </tr>
-         </py:for>
-       </tbody>
-      </table>
-    </div>
-    <div id="footer">
-      <hr class="hidecss" />
-      <p>This page is also available in the following languages:</p>
-      <py:for each="l in languages">
-       <span py:if="lang != l" class="navpara">
-         <a href="index.${language_dict[l]['short']}.html" 
title="${language_dict[l]['title']}" hreflang="${language_dict[l]['htaccess']}" 
lang="${language_dict[l]['htaccess']}" 
rel="alternate">${language_dict[l]['printed']}</a>
-       </span>
-      </py:for>
-      <p>
-       How to set
-       <a href="http://www.debian.org/intro/cn.${lang}.html";>
-         the default document language
-       </a>
-      </p>
-      <address>Last update: ${timestamp}</address>
-    </div>
-  </body>
-</html>
diff --git a/webtools_py3/templates/thermometer.xhtml 
b/webtools_py3/templates/thermometer.xhtml
deleted file mode 100644
index 05607d9..0000000
--- a/webtools_py3/templates/thermometer.xhtml
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en"
-      xmlns:py="http://genshi.edgewall.org/";>
-<head>
-<title>$projectname Thermometer</title>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8"/>
-<link href="/css/sentinel.css" type="text/css" rel="stylesheet"/>
-</head>
-<body>
-<div style="text-align: center;">
-<a href="$projecturl"><span py:choose="logourl">
-           <span py:when="None">${projectname} Project</span>
-           <span py:otherwise=""><img src="$logourl" alt="$projectname 
Project" height="93" /></span>
-     </span>
-</a>
-</div>
-<div class="heading" py:if="projectadvertising">
-    <div class="tabBar" style="text-align: center;">$projectadvertising</div>
-</div>
-<table class="columns">
-<tr>
-  <td class="left">
-    <span class="section">Summary</span>
-    <div class="section">
-      <div class="sectionTop"/>
-      <div class="row">A <a 
href="http://blends.alioth.debian.org/blends/";>Debian Pure Blend</a> is a Debian
-       internal project which assembles a set of packages that might help 
users to solve certain tasks of
-       their work.  The list on the right shows the tasks of 
${projectname}.</div>
-    </div>
-    <span class="section">Links</span>
-    <div class="section">
-      <div class="sectionTop"/>
-      <div class="row">
-        <div class="link"><a href="$homepage">$projectname</a></div>
-        <div py:if="ubuntuhome">
-          <div py:if="projectubuntu">
-            <div class="link"><a href="$ubuntuhome">$projectubuntu</a></div>
-          </div>
-        </div>
-        <div class="link"><a href="$uthermometer">Ubuntu Thermometer</a></div>
-        <div class="sectionTop"/>
-        <div class="link"><a href="../tasks">Tasks of $projectname</a></div>
-        <div class="link"><a href="../tasks/packagelist">Package list</a></div>
-        <div class="link"><a href="../bugs">Bugs of $projectname</a></div>
-      </div>
-    </div>
-    <span class="section">Color legend</span>
-    <div class="section">
-      <div class="sectionTop"/>
-      <div class="row">
-        <table class='pkg'>
-          <py:for each="leg in legend">
-            <tr class='${leg[0]}'><td class='${leg[0]}'>${leg[1]}</td></tr>
-          </py:for>
-        </table>
-      </div>
-    </div>
-  </td>
-  <td class="main">
-    <div class="pageBody">
-      <table class="pkg">
-        <caption><h3>$projectname Package Thermometer</h3></caption>
-          <tr class='title'>
-            <th>Package</th>
-            
<th>stable</th><th>testing</th><th>unstable</th><th>stable-bpo</th><th>experimental</th><th>NEW</th><th>UNRELEASED</th><th>upstream</th><th>tasks</th>
-         </tr>
-         <py:for each="pkg in blend_data">
-         <tr class='${pkg.debianstatus}'>
-           <td><strong>${pkg.source}</strong> (<span 
py:choose="pkg.is_in_debian"><span py:when="1"><a 
href='http://packages.qa.debian.org/${pkg.source}'>PTS</a>, </span><span 
py:otherwise=""><span py:if="pkg.wnpp != ''"><a 
href="http://bugs.debian.org/${pkg.wnpp}";>WNPP</a>, </span></span></span><span 
py:if="pkg.vcs_browser != ''"><a href="${pkg.vcs_browser}">VCS</a>, </span><a 
href='${pkg.homepage}'>UP</a>)</td>
-           
<td>${pkg.stable}</td><td>${pkg.testing}</td><td>${pkg.unstable}</td><td>${pkg.stable_bpo}</td><td>${pkg.experimental}</td><td>${pkg.NEW}</td><td>${pkg.UNRELEASED}</td><td
 class='${pkg.upstreamstatus}'>${pkg.upstream}</td><td class='none'><py:for 
each="task in pkg.tasks"><a href="../tasks/${task}">${task}</a> </py:for></td>
-         </tr>
-         </py:for>
-     </table>
-    </div>
-  </td>
-</tr>
-</table>
-<div id="footer">
-  <hr class="hidecss" />
-  <address>Last update: ${timestamp}</address>
-</div>
-</body>
-</html>
diff --git a/webtools_py3/templates/uthermometer.xhtml 
b/webtools_py3/templates/uthermometer.xhtml
deleted file mode 100644
index 1c8f430..0000000
--- a/webtools_py3/templates/uthermometer.xhtml
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en"
-      xmlns:py="http://genshi.edgewall.org/";>
-<head>
-<title>$projectname packages in Ubuntu Thermometer</title>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; 
charset=UTF-8"/>
-<link href="/css/sentinel.css" type="text/css" rel="stylesheet"/>
-</head>
-<body>
-<div style="text-align: center;">
-<a href="$projecturl"><span py:choose="logourl">
-           <span py:when="None">${projectname} Project</span>
-           <span py:otherwise=""><img src="$logourl" alt="$projectname 
Project" height="93" /></span>
-     </span>
-</a>
-</div>
-<div class="heading" py:if="projectadvertising">
-    <div class="tabBar" style="text-align: center;">$projectadvertising</div>
-</div>
-<table class="columns">
-<tr>
-  <td class="left">
-    <span class="section">$summary</span>
-    <div class="section">
-      <div class="sectionTop"/>
-      <div class="row">${idxsummary}</div>
-    </div>
-    <span class="section">Links</span>
-    <div class="section">
-      <div class="sectionTop"/>
-      <div class="row">
-        <div class="link"><a href="$homepage">$projectname</a></div>
-        <div py:if="ubuntuhome">
-          <div py:if="projectubuntu">
-            <div class="link"><a href="$ubuntuhome">$projectubuntu</a></div>
-          </div>
-        </div>
-        <div class="link"><a href="$thermometer">Debian Thermometer</a></div>
-        <div class="sectionTop"/>
-        <div class="link"><a href="../tasks">Tasks of $projectname</a></div>
-        <div class="link"><a href="../tasks/packagelist">Package list</a></div>
-        <div class="link"><a href="../bugs">Bugs of $projectname</a></div>
-      </div>
-    </div>
-    <span class="section">Color legend</span>
-    <div class="section">
-      <div class="sectionTop"/>
-      <div class="row">
-        <table class='pkg'>
-          <py:for each="leg in ulegend">
-            <tr class='${leg[0]}'><td class='${leg[0]}'>${leg[1]}</td></tr>
-          </py:for>
-        </table>
-      </div>
-    </div>
-  </td>
-  <td class="main">
-    <div class="pageBody">
-      <table class="pkg">
-        <caption><h3>$projectname  packages in Ubuntu 
Thermometer</h3></caption>
-          <tr class='title'>
-            <th>Package</th>
-            
<th>stable</th><th>testing</th><th>unstable</th><th>stable-bpo</th><th>$ubuntuprev2</th><th>$ubuntuprev1</th><th>$latestubuntu</th><th>upstream</th><th>tasks</th>
-         </tr>
-         <py:for each="pkg in blend_data">
-         <tr class='${pkg.ubuntustatus}'>
-           <td><strong>${pkg.source}</strong> (<span 
py:choose="pkg.is_in_debian"><span py:when="1"><a 
href='http://packages.qa.debian.org/${pkg.source}'>PTS</a>, </span><span 
py:otherwise=""><span py:if="pkg.wnpp != ''"><a 
href="http://bugs.debian.org/${pkg.wnpp}";>WNPP</a>, </span></span></span><span 
py:if="pkg.vcs_browser != ''"><a href="${pkg.vcs_browser}">VCS</a>, </span><a 
href='${pkg.homepage}'>UP</a>)</td>
-           
<td>${pkg.stable}</td><td>${pkg.testing}</td><td>${pkg.unstable}</td><td>${pkg.stable_bpo}</td><td>${pkg.ubuntuprev2}</td><td>${pkg.ubuntuprev1}</td><td>${pkg.latestubuntu}</td><td
 class='${pkg.upstreamstatus}'>${pkg.upstream}</td><td class='none'><py:for 
each="task in pkg.tasks"><a href="../tasks/${task}">${task}</a> </py:for></td>
-         </tr>
-         </py:for>
-     </table>
-    </div>
-  </td>
-</tr>
-</table>
-<div id="footer">
-  <hr class="hidecss" />
-  <address>${updatetimestamp}</address>
-</div>
-</body>
-</html>

-- 
Static and dynamic websites for Debian Pure Blends

_______________________________________________
Blends-commit mailing list
Blends-commit@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/blends-commit

Reply via email to