changeset 260:4eddd388d490 new_pro_struct

more work on subproject thumbs.
author casties
date Thu, 07 Aug 2014 17:50:04 +0200
parents 1a82c28266d4
children 2028488642cf
files MPIWGDepartment.py MPIWGProjects.py css/mpiwg.css js/mpiwg.js zpt/project/edit_basic.zpt zpt/project/project_index_html.zpt zpt/www/main_template.zpt
diffstat 7 files changed, 87 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/MPIWGDepartment.py	Wed Aug 06 16:55:11 2014 +0200
+++ b/MPIWGDepartment.py	Thu Aug 07 17:50:04 2014 +0200
@@ -146,7 +146,7 @@
         proj = pf.getProject(projectNumber=self.getProjectNumber())
         return proj
 
-    def getProjects(self, count=0, active=0, archived=0, depthFirst=True):
+    def getProjects(self, count=0, active=0, archived=0, depthFirst=True, filter=None):
         """returns a list of projects of this department.
         
         active = 0 : all projects
@@ -158,7 +158,7 @@
         archived = 2 : archived projects
         """
         pf = self.getMPIWGRoot().getProjectFolder()
-        projects = pf.getProjectsAsList(self.getProjectNumber(), active=active, archived=archived, depthFirst=depthFirst)
+        projects = pf.getProjectsAsList(self.getProjectNumber(), active=active, archived=archived, depthFirst=depthFirst, filter=filter)
         #logging.debug("getProjects projects=%s"%repr(projects))
         if count > 0:
             return projects[:count]
--- a/MPIWGProjects.py	Wed Aug 06 16:55:11 2014 +0200
+++ b/MPIWGProjects.py	Thu Aug 07 17:50:04 2014 +0200
@@ -637,10 +637,10 @@
         return tree.getAncestorsOf(self.getNumber())
     
 
-    def getSubProjects(self, active=1):
+    def getSubProjects(self, active=1, filter=None):
         """returns a list of child projects"""
         tree = self.getProjectTree()
-        return [p for p in tree.getChildrenOf(self.getNumber()) if p.checkActive(active)]
+        return [p for p in tree.getChildrenOf(self.getNumber()) if (filter is None or filter(p)) and p.checkActive(active)]
     
               
     def getRelatedDigitalSources(self):
@@ -1942,7 +1942,7 @@
         return tree
     
     
-    def getProjectsAsList(self, start=None, active=1, archived=1, depthFirst=True):
+    def getProjectsAsList(self, start=None, active=1, archived=1, depthFirst=True, filter=None):
         """Return flattened list of projects, starting from start.
 
         active = 0 : all projects
@@ -1963,7 +1963,8 @@
         #logging.debug("getProjectsAsList: node=(%s,%s) pl=%s"%(node.key,node.value,repr(pl)))
         #logging.debug("getProjectsAsList: node=(%s,%s) pl=%s"%(node.key,node.value,[p.getNumber() for p in pl]))
         # return filtered list
-        return [p for p in pl if (p.checkActive(active) and p.checkArchived(archived))]     
+        return [p for p in pl if ((filter is None or filter(p)) and p.checkActive(active) and p.checkArchived(archived))]     
+        #return [p for p in pl if (p.checkActive(active) and p.checkArchived(archived))]     
     
 
     def getProject(self, projectNumber=None):
--- a/css/mpiwg.css	Wed Aug 06 16:55:11 2014 +0200
+++ b/css/mpiwg.css	Thu Aug 07 17:50:04 2014 +0200
@@ -1513,6 +1513,21 @@
 }
 
 /*
+ * sub row (between main and foot)
+ */
+#subrow {
+	display: table;
+}
+#subrow .leftbox {
+	border-top: 0;	
+}
+#subrow .main {
+	min-width: 690px;
+	padding: 0 20px;
+	border-top: 0;
+}
+
+/*
  * footer
  */
 #footservices {
--- a/js/mpiwg.js	Wed Aug 06 16:55:11 2014 +0200
+++ b/js/mpiwg.js	Thu Aug 07 17:50:04 2014 +0200
@@ -38,9 +38,6 @@
 				$content.animate({'left':'-='+settings.scrollBy}, 'fast');
 			}).css('cursor', 'pointer');
 		});
-		
-	
-	
 	};
 }(jQuery));
 
--- a/zpt/project/edit_basic.zpt	Wed Aug 06 16:55:11 2014 +0200
+++ b/zpt/project/edit_basic.zpt	Thu Aug 07 17:50:04 2014 +0200
@@ -37,19 +37,19 @@
         <tr>
           <td>Started at:</td>
           <td><input tal:attributes="name python:'startedAt';
-								   value python:here.getStartedAt()" type="text" len="15" />
+								   value python:here.getStartedAt()" type="text" size="10" />
             (format dd.mm.yyyy or mm.yyyy or yyyy)</td>
         </tr>
         <tr>
           <td>Completed at:</td>
           <td><input tal:attributes="name python:'completedAt';
                    value python:here.getCompletedAt()"
-            type="text" len="15" /> (format dd.mm.yyyy or mm.yyyy or yyyy)</td>
+            type="text" size="10" /> (format dd.mm.yyyy or mm.yyyy or yyyy)</td>
         </tr>
         <tr>
           <td>Type of project page:</td>
           <td><input name="projectType" tal:attributes="value here/getProjectType"
-            type="text" len="15" /></td>
+            type="text" size="20" /></td>
         </tr>
       </table>
 
--- a/zpt/project/project_index_html.zpt	Wed Aug 06 16:55:11 2014 +0200
+++ b/zpt/project/project_index_html.zpt	Thu Aug 07 17:50:04 2014 +0200
@@ -9,7 +9,23 @@
   <tal:block 
     tal:define="global proBaseUrl string:$root/${secmap/research}/projects;
       global images here/getImageList;
-      global dept here/getDepartmentId;" />
+      global dept here/getDepartmentId;
+      global pNum here/getNumber;" />
+      <script tal:content="string:var sliderUrl = 'api/subProjects_slider_html?pro=$pNum';">
+      </script>
+      <script>
+      $(window).on('load', function () {
+          $('.ajaxSlider').each(function () {
+              var $this = $(this);
+              $this.AjaxSlider({
+                  dataUrl : sliderUrl,
+                  dataSel : 'div.center>div',
+                  scrollBy: '130px',
+              });
+          });
+          initialize_swipe(".ajaxSlider");
+      });
+      </script>
 </metal:block>
 </head>
 <body>
@@ -65,11 +81,11 @@
     </div>
 
 	<!-- sub-project thumbs -->
-    <div tal:define="projects python:here.getSubProjects();" 
-         tal:attributes="class python:test(len(projects)>5, 'ajaxSlider', None);">
-      <!-- <h2>Subprojects</h2> --><!-- <hr/> -->
-      <div class="row quintuple">
-        <div class="col" tal:repeat="project python:projects[:4]">
+	<!-- <div class="box">
+    <div tal:define="projects python:here.getProjectsAsList(start=pNum, filter=lambda p:p.getNumber()!=pNum and p.getProjectType()=='Individual Project');" 
+         tal:attributes="class python:test(len(projects)>3, 'ajaxSlider', None);">
+      <div class="row triple">
+        <div class="col" tal:repeat="project python:projects[:3]">
           <div class="mini project" tal:define="url python:project.getUrl(baseUrl=proBaseUrl)">
             <div class="thumb">
               <a tal:attributes="href url"><img 
@@ -81,12 +97,13 @@
               </a>
             </div>
             <div class="author" tal:content="python:project.getContent('xdata_01')">
-              Matteo Valleriani, Jürgen Renn
+              Matteo Valleriani, Juergen Renn
             </div>
           </div>
         </div>
       </div><!-- /row -->
-    </div><!-- /item -->
+    <!-- </div><!-- /item -->
+    <!-- </div> -->
   </div><!-- /center -->
 
   <!-- right column -->
@@ -253,5 +270,40 @@
   </div>
   <!-- sidebar -->
 
+  <!-- subrow -->
+  <div id="subrow" metal:fill-slot="subrow">
+    <div class="leftbox"></div>
+    <div class="main">
+      <!-- sub-project thumbs -->
+      <div class="box">
+        <div
+          tal:define="projects python:here.getProjectsAsList(start=pNum, filter=lambda p:p.getNumber()!=pNum and p.getProjectType()=='Individual Project');"
+          tal:attributes="class python:test(len(projects)>5, 'ajaxSlider', None);">
+          <div class="row quintuple">
+            <div class="col" tal:repeat="project python:projects[:5]">
+              <div class="mini project"
+                tal:define="url python:project.getUrl(baseUrl=proBaseUrl)">
+                <div class="thumb">
+                  <a tal:attributes="href url"><img
+                    tal:attributes="src python:project.getThumbUrl(default=root+'/images/dummy_thumb.jpg')" /></a>
+                </div>
+                <div class="title">
+                  <a tal:attributes="href url"
+                    tal:content="project/getLabel"> Mental Models in
+                    the History of Knowledge </a>
+                </div>
+                <div class="author"
+                  tal:content="python:project.getContent('xdata_01')">
+                  Matteo Valleriani, Jürgen Renn</div>
+              </div>
+            </div>
+          </div>
+          <!-- /row -->
+        </div>
+        <!-- /item -->
+      </div>
+    </div>
+  </div>
+
 </body>
 </html>
\ No newline at end of file
--- a/zpt/www/main_template.zpt	Wed Aug 06 16:55:11 2014 +0200
+++ b/zpt/www/main_template.zpt	Thu Aug 07 17:50:04 2014 +0200
@@ -100,6 +100,8 @@
       <metal:block metal:define-slot="sidebar" /><!-- /sidebar -->
 
     </div><!-- /maincontent -->
+    
+    <metal:block metal:define-slot="subrow"/>
 
     <div id="footservices">
       <div class="text">