[Checkins] SVN: zf.zscp/trunk/src/zf/zscp/ Releases overview works, if you have data. :-)

Stephan Richter srichter at cosmos.phy.tufts.edu
Tue Apr 11 06:33:53 EDT 2006


Log message for revision 66848:
  Releases overview works, if you have data. :-)
  
  No tests, because setting up SVN or a fake repository is not that easy; we 
  should investigate test layers.
  

Changed:
  U   zf.zscp/trunk/src/zf/zscp/configure.zcml
  U   zf.zscp/trunk/src/zf/zscp/skin/browser/css/packages.css
  U   zf.zscp/trunk/src/zf/zscp/website/browser/package.py
  U   zf.zscp/trunk/src/zf/zscp/website/browser/package_releases.pt

-=-
Modified: zf.zscp/trunk/src/zf/zscp/configure.zcml
===================================================================
--- zf.zscp/trunk/src/zf/zscp/configure.zcml	2006-04-11 10:22:01 UTC (rev 66847)
+++ zf.zscp/trunk/src/zf/zscp/configure.zcml	2006-04-11 10:33:52 UTC (rev 66848)
@@ -6,7 +6,7 @@
   <class class="zf.zscp.package.Package">
     <require
         permission="zope.Public"
-        attributes="__name__ __parent__ name publication releases 
+        attributes="__name__ __parent__ name publication releases
                     certifications"
         />
     <require
@@ -43,6 +43,18 @@
         />
   </class>
 
+  <!-- Contact -->
+  <class class="zf.zscp.contact.Contact">
+    <require
+        permission="zope.Public"
+        interface="zf.zscp.interfaces.IContact"
+        />
+    <require
+        permission="zope.ManageContent"
+        set_schema="zf.zscp.interfaces.IContact"
+        />
+  </class>
+
   <!-- Release -->
   <class class="zf.zscp.release.Release">
     <require
@@ -55,8 +67,8 @@
         />
   </class>
 
-  <include package=".doc" />  
-  <include package=".skin" />  
-  <include package=".website" />  
+  <include package=".doc" />
+  <include package=".skin" />
+  <include package=".website" />
 
 </configure>

Modified: zf.zscp/trunk/src/zf/zscp/skin/browser/css/packages.css
===================================================================
--- zf.zscp/trunk/src/zf/zscp/skin/browser/css/packages.css	2006-04-11 10:22:01 UTC (rev 66847)
+++ zf.zscp/trunk/src/zf/zscp/skin/browser/css/packages.css	2006-04-11 10:33:52 UTC (rev 66848)
@@ -53,6 +53,7 @@
     vertical-align: top;
     margin-right: 8px;
     font-weight: bold;
+    white-space: nowrap;
 }
 .packageBody .infoRow {
     margin-bottom: 10px;

Modified: zf.zscp/trunk/src/zf/zscp/website/browser/package.py
===================================================================
--- zf.zscp/trunk/src/zf/zscp/website/browser/package.py	2006-04-11 10:22:01 UTC (rev 66847)
+++ zf.zscp/trunk/src/zf/zscp/website/browser/package.py	2006-04-11 10:33:52 UTC (rev 66848)
@@ -15,12 +15,13 @@
 
 $Id$
 """
-
+import zope.schema
 from zope.formlib import form
 from zope.formlib import page
 from zf.zscp.interfaces import IPublication
 from zf.zscp.interfaces import IRelease
 from zf.zscp.interfaces import ICertification
+from zf.zscp.interfaces import CERTIFICATION_LEVELS
 from zope.app.pagetemplate import ViewPageTemplateFile
 
 
@@ -101,14 +102,23 @@
     template = ViewPageTemplateFile('package_releases.pt')
 
     def update(self):
-        releases = self.context.releases
-        info = {}
-        self._info = info
+        pass
 
-    @property
-    def info(self):
-        return self._info
+    def releases(self):
+        releases = []
+        formatter = self.request.locale.dates.getFormatter('date', 'medium')
+        for release in self.context.releases:
+            info = {}
+            for name, field in zope.schema.getFieldsInOrder(IRelease):
+                info[name] = getattr(release, name)
 
+            info['date'] = formatter.format(release.date)
+            level = CERTIFICATION_LEVELS.getTerm(release.certification)
+            info['certification'] = level.title
+            releases.append(info)
+
+        return releases
+
     def __call__(self):
         self.update()
         return self.template()
@@ -125,16 +135,18 @@
         info = {}
         self._info = info
 
+    def render(self):
+        return self.template()
+
     @property
     def info(self):
         return self._info
 
     def __call__(self):
         self.update()
-        return self.template()
+        return self.render()
 
 
-
 class PackageCertifications(page.Page):
     """Certification view."""
 

Modified: zf.zscp/trunk/src/zf/zscp/website/browser/package_releases.pt
===================================================================
--- zf.zscp/trunk/src/zf/zscp/website/browser/package_releases.pt	2006-04-11 10:22:01 UTC (rev 66847)
+++ zf.zscp/trunk/src/zf/zscp/website/browser/package_releases.pt	2006-04-11 10:33:52 UTC (rev 66848)
@@ -1,45 +1,112 @@
 <html metal:use-macro="context/@@standard_macros/view"
     i18n:domain="zf.zscp">
-	<body>
-		<div metal:fill-slot="body"
-					tal:define="global pageversion string: 0.8;
-											info view/info">
-			
-			<div id="documentFirstHeading">Release Detail for: TODO</div>
-			<div id="package-wrapper">
-				<!-- begin package tabs -->
-				<div id="package-tabs">
-					<div id="tab-info" class="packageTab"><a href="index.html">Info</a>
-					</div>
-					<div id="tab-classifiers" class="packageTab"><a href="classifiers.html">
-						Classifiers</a>
-					</div>
-					<div id="tab-releases" class="packageTab selected"><a href="releases.html">
-						Releases</a>
-					</div>
-					<div id="tab-classifiers" class="packageTab"><a href="certifications.html">
-						Certifications</a>
-					</div>
-				</div>
-				<!-- end package tabs -->
-				<!-- begin package body -->
-				<div id="package-info" class="packageBody">
-					<div id="certifiedSilver" class="certSeal">&nbsp;
-					</div>
-					<div class="infoRow">
-						<label>Name:</label>
-						<div class="infoString">zope.search (Zope Search)</div>
-					</div>
-					<div class="infoRow">
-						<label>Description:</label>
-						<div class="infoString"> The Zope search package provides
-							generic user interface components, such as live search and
-							advanced search forms. </div>
-					</div>
-				</div>
-				<!-- end package body -->
-			</div>
+<body>
+<div metal:fill-slot="body"
+      tal:define="global pageversion string: 0.8;
+                  releases view/releases">
 
-		</div>
-	</body>
-</html>
\ No newline at end of file
+  <div id="documentFirstHeading">Release Detail for: TODO</div>
+  <div id="package-wrapper">
+    <!-- begin package tabs -->
+    <div id="package-tabs">
+      <div id="tab-info" class="packageTab"><a href="index.html">Info</a>
+      </div>
+      <div id="tab-classifiers" class="packageTab">
+        <a href="classifiers.html">Classifiers</a>
+      </div>
+      <div id="tab-releases" class="packageTab selected">
+        <a href="releases.html">Releases</a>
+      </div>
+      <div id="tab-classifiers" class="packageTab">
+        <a href="certifications.html">Certifications</a>
+      </div>
+    </div>
+    <!-- end package tabs -->
+
+    <!-- begin package body -->
+    <div id="package-info" class="packageBody">
+
+      <div tal:condition="not: releases"
+           i18n:translate="">
+        There are no releases for this package.
+      </div>
+
+      <div tal:repeat="release releases">
+
+        <h2>
+          <span tal:replace="release/name" />
+          <span tal:replace="release/version" />
+          <span tal:condition="release/codename">
+            ("<span tal:replace="release/codename" />")
+          </span>
+        </h2>
+
+        <div class="infoRow">
+          <label>Release Date:</label>
+          <div class="infoString"
+               tal:content="release/date" />
+        </div>
+        <div class="infoRow">
+          <label>Certification:</label>
+          <div class="infoString"
+               tal:content="release/certification" />
+        </div>
+        <div class="infoRow">
+          <label>Package:</label>
+          <div class="infoString">
+            <a href=""
+               tal:attributes="href release/package"
+               tal:content="release/package" />
+          </div>
+        </div>
+        <div class="infoRow"
+             tal:condition="release/source">
+          <label>Source:</label>
+          <div class="infoString">
+            <a href=""
+               tal:attributes="href release/source"
+               tal:content="release/source" />
+          </div>
+        </div>
+        <div class="infoRow"
+             tal:condition="release/announcement">
+          <label>Announcement:</label>
+          <div class="infoString">
+            <a href=""
+               tal:attributes="href release/announcement"
+               tal:content="release/announcement" />
+          </div>
+        </div>
+        <div class="infoRow"
+             tal:condition="release/releaseManager">
+          <label>Release Manager:</label>
+          <div class="infoString">
+            <span tal:replace="release/releaseManager/name" />
+            <a href=""
+               tal:attributes="href
+                   string:mailto:${release/releaseManager/email}"
+               tal:content="release/releaseManager/email" />
+          </div>
+        </div>
+        <div class="infoRow"
+             tal:condition="release/pressContact">
+          <label>Press Contact:</label>
+          <div class="infoString">
+            <span tal:replace="release/pressContact/name" />
+            <a href=""
+               tal:attributes="href
+                   string:mailto:${release/pressContact/email}"
+               tal:content="release/pressContact/email" />
+          </div>
+        </div>
+
+      </div>
+
+    </div>
+
+    <!-- end package body -->
+  </div>
+
+</div>
+</body>
+</html>



More information about the Checkins mailing list