The following commit has been merged in the master branch:
commit 2f4067e3c0364ef7ec4a3bae5848e1ac3d260951
Author: Ole Streicher <oleb...@debian.org>
Date:   Sun Jan 10 10:42:18 2016 +0100

    Integrate Py2 changes inspired by debian-astro branch
     * new index tasks_idx.xhtml
     * new tasks.xhtml replacement packages.xhtml (used by debian-astro only so 
far)
     * Debian-Astro homepage debian-astro_idx.xhtml with teaser packages
    This all is still untested.

diff --git a/webtools_py3/blendstasktools_udd.py 
b/webtools_py3/blendstasktools_udd.py
index cadccd2..e942688 100644
--- a/webtools_py3/blendstasktools_udd.py
+++ b/webtools_py3/blendstasktools_udd.py
@@ -997,6 +997,17 @@ class Tasks:
                                         break
                             logger.debug(" %s -> %s" % (enh, 
dep.properties['Enhances'][enh]))
 
+    @property
+    def PackageByName(self):
+        try:
+            return self._packageByName
+        except AttributeError:
+            deps = []
+            for task in self.tasks.values():
+                for d in task.dependencies.values():
+                    deps += d
+            self._packageByName = dict((dep.pkg, dep) for dep in deps)
+            return self._packageByName
    
 class TaskDependencies:
     # List of depencencies defined in one metapackage
diff --git a/webtools_py3/tasks_udd.py b/webtools_py3/tasks_udd.py
index e376c7f..0f180a0 100755
--- a/webtools_py3/tasks_udd.py
+++ b/webtools_py3/tasks_udd.py
@@ -38,6 +38,7 @@ data = tasks.data
 # print("data : \n",data)
 data['tasks']            = tasks.GetTaskDescDict()
 data['taskskeys']        = tasks.metapackagekeys
+data['PackageByName']    = tasks.PackageByName
 try:
     data['popconsubmit']     = tasks.popconsubmit
 except: 
@@ -101,7 +102,14 @@ for lang in languages:
                               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:%s";>%s mailing list</a>""") % \
                                   (data['projectname'], data['projectlist'], 
data['projectname']))
-    data['description']       = ("The list to the right includes various 
software projects which are of some interest to the %s Project. Currently, only 
a few of them are available as Debian packages. It is our goal, however, to 
include all software in %s which can sensibly add to a high quality Debian Pure 
Blend.") % (data['projectname'], data['projectname'])
+    data['bugs']               = 'Bugs'
+    data['thermometer']        = 'Thermometer'
+    data['maintstats']         = 'Maintainer Stats'
+    data['contact']            = 'Contact'
+    data['contribute']         = 'Contribute'
+    data['description']        = 'Description'
+    data['metapackage']        = 'Metapackage'
+    data['packages']           = 'Packages'
     data['gtstrTasksPage']     = 'Tasks page'
     data['gtstrProject']          = 'Project'
     data['gtstrThisIsAList']   = 'This is a list of the Tasks %s is made of:' 
% data['projectname']
@@ -130,7 +138,10 @@ for lang in languages:
 a set of packages that might help users to solve certain tasks of their work.  
The list on
 the right shows the tasks of %s.""" ) \
                                       % ('<a 
href="http://blends.alioth.debian.org/blends/";>', '</a>', data['projectname'])
-    data['idxsummary']        = Markup((data['idxsummary']))
+    data['idxsummary']        = '''The {0} Pure Blend contains {1} 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 {0}'''.format(data['projectname'], 
len(data['PackageByName']))
 
     pkgstatus['official_high']['headline']    = 'Official Debian packages with 
high relevance'
     # before fiddling around with unicode() read
@@ -186,6 +197,26 @@ the right shows the tasks of %s.""" ) \
                
     f.close()
     SetFilePermissions(outputfile)
+    try:
+        template = loader.load('%s_idx.xhtml' % tasks.blendname)
+        outputfile = tasks.data['outputdir'] + '/index'
+        if lang != 'xyz': # let 'en' be a language as any other and add suffix 
to file name
+            outputfile += '.' + language_dict[lang]['short'] + '.html'
+        try:
+            os.unlink(outputfile)
+        except: # simply continue if file does not exist
+            pass
+        f = open(outputfile, 'w')
+        try:
+            print(template.generate(**data).render('xhtml'), file=f)
+        except UnicodeDecodeError as errtxt:
+            print("Some critical encoding problem occured when trying to 
render index for lang %s.\n%s"
+                  % (lang, errtxt), file = stderr)
+
+        f.close()
+        SetFilePermissions(outputfile)
+    except:
+        pass
 
     data['dependencies'] = {}
     data['projects']     = {}
@@ -234,7 +265,10 @@ the right shows the tasks of %s.""" ) \
         except: # simply continue if file does not exist
             pass
 
-        template = loader.load('tasks.xhtml')
+        if data['projectname'] == 'Debian Astro':
+            template = loader.load('packages.xhtml')
+        else:
+            template = loader.load('tasks.xhtml')
         f = open(outputfile+'_tmp', "w")
         try:
             print(template.generate(**data).render('xhtml'), file=f)
diff --git a/webtools/templates/debian-astro_idx.xhtml 
b/webtools_py3/templates/debian-astro_idx.xhtml
similarity index 100%
copy from webtools/templates/debian-astro_idx.xhtml
copy to webtools_py3/templates/debian-astro_idx.xhtml
diff --git a/webtools/templates/packages.xhtml 
b/webtools_py3/templates/packages.xhtml
similarity index 100%
copy from webtools/templates/packages.xhtml
copy to webtools_py3/templates/packages.xhtml
diff --git a/webtools_py3/templates/tasks_idx.xhtml 
b/webtools_py3/templates/tasks_idx.xhtml
index ce1dfdc..5f85b54 100644
--- a/webtools_py3/templates/tasks_idx.xhtml
+++ b/webtools_py3/templates/tasks_idx.xhtml
@@ -3,61 +3,107 @@
      "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="/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">${idxsummary}</div>
-               </div>
-       </td>
-       <td class="main">
-               <div class="pageBody">
-                       <h1>$gtstrTasksPage</h1>
-                       <p>$gtstrThisIsAList</p>
-                       <dl>
-                             <py:for each="task in taskskeys">
-                                <dt><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></dt>
-                               <dd><span 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>
-                 </span></dd>
-                             </py:for>
-                       </dl>
-               </div>
-       </td>
-</tr>
-</table>
-<div id="footer">
-  <hr class="hidecss" />
-<p>${langavail}</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>${howtosetlang}</p>
-  <address>${updatetimestamp}</address>
-</div>
-</body>
+  <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/">$maintstats</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>
+       $idxsummary:
+      </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="tasks[task].metapkg.desc.has_key(lang)">
+                   ${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>${langavail}</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>${howtosetlang}</p>
+      <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