changeset 20:c7e6664d60c9

add author, author_id to MPIWGFeature.
author casties
date Fri, 05 Apr 2013 17:28:00 +0200
parents 2609e2b47aa2
children faa7c9e936a8
files MPIWGFeature.py zpt/feature/manage_add_MPIWGFeature.zpt zpt/feature/manage_config.zpt
diffstat 3 files changed, 55 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/MPIWGFeature.py	Fri Apr 05 16:37:50 2013 +0200
+++ b/MPIWGFeature.py	Fri Apr 05 17:28:00 2013 +0200
@@ -20,19 +20,21 @@
     Full title is the title of /(en|de)/main.pt. 
     """
 
-    meta_type="MPIWGFeature"
+    meta_type = "MPIWGFeature"
 
-    manage_options=Folder.manage_options+(
-        {'label':'Change Weight','action':'changeWeightForm'},
-        {'label':'Configure','action':'changeForm'},
+    manage_options = Folder.manage_options + (
+        {'label':'Change Weight', 'action':'changeWeightForm'},
+        {'label':'Configure', 'action':'changeForm'},
         )
 
     changeWeightForm = PageTemplateFile('zpt/feature/manage_change_weight', globals())
     changeForm = PageTemplateFile('zpt/feature/manage_config', globals())
 
-    def __init__(self, id, title=None, weight=0, date=None, title_en=None, title_de=None):
+    def __init__(self, id, title=None, weight=0, date=None, title_en=None, title_de=None, author=None, author_id=None):
         self.id = str(id)
         self.weight = weight
+        self.author = author
+        self.author_id = author_id
         if title is None:
             self.title = id
         else:
@@ -52,22 +54,22 @@
         self.manage_addFolder('en')
         folder_en = getattr(self, 'en')
         folder_en[teaserid] = ZopePageTemplate(teaserid)
-        teaser_en = getattr(folder_en,teaserid)
-        teaser_en.pt_edit(open(os.path.join(package_home(globals()),'zpt/feature/default_template_teaser.zpt')).read(),'text/html')
+        teaser_en = getattr(folder_en, teaserid)
+        teaser_en.pt_edit(open(os.path.join(package_home(globals()), 'zpt/feature/default_template_teaser.zpt')).read(), 'text/html')
         folder_en[mainid] = ZopePageTemplate(mainid)
-        main_en = getattr(folder_en,mainid)
-        main_en.pt_edit(open(os.path.join(package_home(globals()),'zpt/feature/default_template_main.zpt')).read(),'text/html')        
+        main_en = getattr(folder_en, mainid)
+        main_en.pt_edit(open(os.path.join(package_home(globals()), 'zpt/feature/default_template_main.zpt')).read(), 'text/html')        
         if title_en is not None:
             main_en.title = title_en
         # german
         self.manage_addFolder('de')
         folder_de = getattr(self, 'de')
         folder_de[teaserid] = ZopePageTemplate(teaserid)
-        teaser_de = getattr(folder_de,teaserid)
-        teaser_de.pt_edit(open(os.path.join(package_home(globals()),'zpt/feature/default_template_teaser.zpt')).read(),'text/html')
+        teaser_de = getattr(folder_de, teaserid)
+        teaser_de.pt_edit(open(os.path.join(package_home(globals()), 'zpt/feature/default_template_teaser.zpt')).read(), 'text/html')
         folder_de[mainid] = ZopePageTemplate(mainid)
-        main_de = getattr(folder_de,mainid)
-        main_de.pt_edit(open(os.path.join(package_home(globals()),'zpt/feature/default_template_main.zpt')).read(),'text/html')        
+        main_de = getattr(folder_de, mainid)
+        main_de.pt_edit(open(os.path.join(package_home(globals()), 'zpt/feature/default_template_main.zpt')).read(), 'text/html')        
         if title_de is not None:
             main_de.title = title_de        
 
@@ -75,6 +77,14 @@
     def index_html(self):
         """default index page"""
         return self.getMain()
+
+    def getAuthor(self):
+        """returns the author name"""
+        return getattr(self, 'author', None)
+
+    def getAuthorId(self):
+        """returns the author ID"""
+        return getattr(self, 'author_id', None)
     
     def getFullTitle(self, lang=None):
         """returns the full title (from main.pt)"""
@@ -107,9 +117,9 @@
         if lang == 'iso':
             return d.isoformat()
         elif lang == 'en':
-            return "%s %s, %s"%(getMonthName(d.month, 'en'), d.day, d.year)
+            return "%s %s, %s" % (getMonthName(d.month, 'en'), d.day, d.year)
         elif lang == 'de':
-            return "%s. %s %s"%(d.day, getMonthName(d.month, 'de'), d.year)
+            return "%s. %s %s" % (d.day, getMonthName(d.month, 'de'), d.year)
         
         return None
     
@@ -118,7 +128,7 @@
         if baseUrl is None:
             return self.absolute_url()
 
-        return '%s/%s'%(baseUrl, self.getId())
+        return '%s/%s' % (baseUrl, self.getId())
             
     def getPath(self, page, relative=True):
         """returns path to template page"""
@@ -126,7 +136,7 @@
         lang = self.getLang()
         dir = getattr(self, lang, self.en)
         if relative:
-            return '%s/%s/%s'%(self.getId(), dir.getId(), page)
+            return '%s/%s/%s' % (self.getId(), dir.getId(), page)
         
         pt = getattr(dir, page, None)
         if pt is not None:
@@ -184,18 +194,23 @@
         img = getattr(self, 'img-thumb.jpg')
         return img.absolute_url()
 
-    def changeWeight(self,weight,RESPONSE=None):
+    def changeWeight(self, weight, RESPONSE=None):
         """change weight"""
-        self.weight=weight
+        self.weight = weight
         if RESPONSE is not None:
             RESPONSE.redirect('manage_main')
 
-    def changeMPIWGFeature(self, title=None, weight=None, date=None, title_en=None, title_de=None, RESPONSE=None):
+    def changeMPIWGFeature(self, title=None, weight=None, date=None, title_en=None, title_de=None,
+                           author=None, author_id=None, RESPONSE=None):
         """change everything"""
         if title is not None:
             self.title = title
         if weight is not None:
             self.weight = weight            
+        if author is not None:
+            self.author = author            
+        if author_id is not None:
+            self.author_id = author_id            
         if date is not None:
             try:
                 self.date = datetime.datetime.strptime(date, '%Y-%m-%d').date()
@@ -237,13 +252,13 @@
 
 def manage_addMPIWGFeatureForm(self):
     """Form for adding"""
-    pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/feature/manage_add_MPIWGFeature.zpt')).__of__(self)
+    pt = PageTemplateFile(os.path.join(package_home(globals()), 'zpt/feature/manage_add_MPIWGFeature.zpt')).__of__(self)
     return pt()
 
-def manage_addMPIWGFeature(self, id, title=None, weight=0, title_en=None, title_de=None, RESPONSE=None):
+def manage_addMPIWGFeature(self, id, title=None, weight=0, title_en=None, title_de=None, author=None, author_id=None, RESPONSE=None):
     "Add a MPIWG Feature object"
-    newObj=MPIWGFeature(id,title=title,weight=weight,title_en=title_en,title_de=title_de)
-    self.Destination()._setObject(id,newObj)
+    newObj = MPIWGFeature(id, title=title, weight=weight, title_en=title_en, title_de=title_de, author=author, author_id=author_id)
+    self.Destination()._setObject(id, newObj)
     if RESPONSE is not None:
         RESPONSE.redirect('manage_main')
 
--- a/zpt/feature/manage_add_MPIWGFeature.zpt	Fri Apr 05 16:37:50 2013 +0200
+++ b/zpt/feature/manage_add_MPIWGFeature.zpt	Fri Apr 05 17:28:00 2013 +0200
@@ -22,6 +22,14 @@
         <td><input type="text" size="5" name="weight"></td>
       </tr>
       <tr>
+        <td><i>Author</i></td>
+        <td><input type="text" size="40" name="author"></td>
+      </tr>
+      <tr>
+        <td><i>ID/username of author</i></td>
+        <td><input type="text" size="20" name="author_id"></td>
+      </tr>
+      <tr>
         <td><i>Title in English</i> (e.g. "Science under Scrutiny")</td>
         <td><input type="text" size="50" name="title_en"></td>
       </tr>
--- a/zpt/feature/manage_config.zpt	Fri Apr 05 16:37:50 2013 +0200
+++ b/zpt/feature/manage_config.zpt	Fri Apr 05 17:28:00 2013 +0200
@@ -19,6 +19,14 @@
       <td><input type="text" size="10" name="date" tal:attributes="value python:here.getDateString(lang='iso')"></td>
     </tr>
     <tr>
+      <td><i>Author</i></td>
+      <td><input type="text" size="40" name="author" tal:attributes="value here/author|nothing"></td>
+    </tr>
+    <tr>
+      <td><i>ID/username of author</i></td>
+      <td><input type="text" size="20" name="author_id" tal:attributes="value here/author_id|nothing"></td>
+    </tr>
+    <tr>
       <td><i>Title in English</i> (e.g. "Science under Scrutiny")</td>
       <td><input type="text" size="50" name="title_en" tal:attributes="value python:here.getFullTitle(lang='en')"></td>
     </tr>