Mercurial > hg > MPIWGWeb
changeset 13:325e7c338815
research websites page. better department editing.
author | casties |
---|---|
date | Mon, 04 Mar 2013 18:18:28 +0100 |
parents | 400da3ba5fa0 |
children | 69d221c3e010 |
files | MPIWGDepartment.py MPIWGRoot.py css/mpiwg.css zpt/department/manage_add_MPIWGDepartment.zpt zpt/department/manage_config.zpt |
diffstat | 5 files changed, 96 insertions(+), 48 deletions(-) [+] |
line wrap: on
line diff
--- a/MPIWGDepartment.py Fri Mar 01 17:57:36 2013 +0100 +++ b/MPIWGDepartment.py Mon Mar 04 18:18:28 2013 +0100 @@ -60,10 +60,12 @@ """default index page""" return self.getMain() - def getType(self): + def getType(self, lang=None): """returns the type of department (from /en/ folder)""" - # get Language from MPIWGRoot - lang = self.getLang() + if lang is None: + # get Language from MPIWGRoot + lang = self.getLang() + dir = getattr(self, lang, self.en) t = dir.title if not t: @@ -71,10 +73,12 @@ return t - def getTitle(self): + def getTitle(self, lang=None): """returns the title of the department (from main.pt)""" - # get Language from MPIWGRoot - lang = self.getLang() + if lang is None: + # get Language from MPIWGRoot + lang = self.getLang() + dir = getattr(self, lang, self.en) pt = getattr(dir, 'main.pt') t = pt.title @@ -141,7 +145,8 @@ if RESPONSE is not None: RESPONSE.redirect('manage_main') - def changeMPIWGDepartment(self, title=None, weight=None, project_id=None, director=None, director_id=None, RESPONSE=None): + def changeMPIWGDepartment(self, title=None, weight=None, project_id=None, director=None, director_id=None, + type_en=None, type_de=None, title_en=None, title_de=None, RESPONSE=None): """change everything""" if title is not None: self.title = title @@ -153,6 +158,21 @@ self.director = director if director_id is not None: self.director_id = director_id + folder_en = self.get('en', None) + if folder_en is not None: + if type_en is not None: + folder_en.title = type_en + main_en = folder_en.get('main.pt', None) + if main_en is not None and title_en is not None: + main_en.title = title_en + folder_de = self.get('de', None) + if folder_de is not None: + if type_de is not None: + folder_de.title = type_de + main_de = folder_de.get('main.pt', None) + if main_de is not None and title_de is not None: + main_de.title = title_de + if RESPONSE is not None: RESPONSE.redirect('manage_main')
--- a/MPIWGRoot.py Fri Mar 01 17:57:36 2013 +0100 +++ b/MPIWGRoot.py Mon Mar 04 18:18:28 2013 +0100 @@ -258,11 +258,9 @@ def getSections(self): """returns a list of all sections i.e. top-level MPIWGFolders""" - secs = self.objectItems(['MPIWGFolder']) - secs.sort(sortWeight) - #logging.debug("root: %s secs: %s"%(repr(self.absolute_url()), repr(secs))) - # return pure list of objects - return [s[1] for s in secs] + items = self.objectValues(spec='MPIWGFolder')[:] + items.sort(key=lambda x:getattr(x, 'weight', '0')) + return items def getSectionStyle(self, name, style=""): """returns a string with the given style + '-sel' if the current section == name""" @@ -273,14 +271,16 @@ def getFeatures(self, num=None): """returns a list of the last num Features""" - dir = getattr(self, 'features') - features = dir.objectItems(['MPIWGFeature']) - features.sort(sortWeight) + dir = getattr(self, 'features', None) + if dir is None: + return [] + + items = dir.objectValues(spec='MPIWGFeature')[:] + items.sort(key=lambda x:getattr(x, 'weight', '0')) if num is not None: # take only the last num elements - features = features[-num:] - # return pure list of objects - return [f[1] for f in features] + items = items[-num:] + return items def getDepartments(self): """returns a list of the Departments""" @@ -288,10 +288,9 @@ if dir is None: return [] - depts = dir.objectItems(['MPIWGDepartment']) - depts.sort(sortWeight) - # return pure list of objects - return [f[1] for f in depts] + items = dir.objectValues(spec='MPIWGDepartment')[:] + items.sort(key=lambda x:getattr(x, 'weight', '0')) + return items def getMPIWGRoot(self): """returns the MPIWG root""" @@ -301,6 +300,7 @@ """returns the URL to the root""" return self.absolute_url() + #WTF? def patchProjects(self,RESPONSE): """patch""" projects=self.ZopeFind(self.projects,obj_metatypes=['MPIWGProject'])
--- a/css/mpiwg.css Fri Mar 01 17:57:36 2013 +0100 +++ b/css/mpiwg.css Mon Mar 04 18:18:28 2013 +0100 @@ -570,6 +570,13 @@ margin-top: 0; } +div.sideblock h3 { + font-size: 12px; + margin-top: 5px; + padding-bottom: 5px; + border-bottom: 1px solid #dccbae; +} + /* * footer */
--- a/zpt/department/manage_add_MPIWGDepartment.zpt Fri Mar 01 17:57:36 2013 +0100 +++ b/zpt/department/manage_add_MPIWGDepartment.zpt Mon Mar 04 18:18:28 2013 +0100 @@ -2,8 +2,6 @@ <body> <h2>Create MPIWGWeb Department object</h2> - - <form method="post" action="manage_addMPIWGDepartment"> <table> <tr> @@ -20,14 +18,22 @@ </tr> <tr> <td><i>Director</i></td> - <td><input type="text" size="40" name="director"></td> + <td><input type="text" size="20" name="director"></td> </tr> <tr> <td><i>ID/username of director</i></td> - <td><input type="text" size="20" name="director_id"></td> + <td><input type="text" size="10" name="director_id"></td> </tr> <tr> - <td><i>Title in English</i></td> + <td><i>Type in English</i> (e.g. "Max Planck Research Group")</td> + <td><input type="text" size="20" name="type_en"></td> + </tr> + <tr> + <td><i>Type in German</i></td> + <td><input type="text" size="20" name="type_de"></td> + </tr> + <tr> + <td><i>Title in English</i> (e.g. "Art and Knowledge in Pre-Modern Europe")</td> <td><input type="text" size="40" name="title_en"></td> </tr> <tr>
--- a/zpt/department/manage_config.zpt Fri Mar 01 17:57:36 2013 +0100 +++ b/zpt/department/manage_config.zpt Mon Mar 04 18:18:28 2013 +0100 @@ -1,30 +1,45 @@ <html> <div tal:replace="structure here/manage_page_header">Header</div> <!-- ZOPE management tabs --> -<h2 tal:define="manage_tabs_message options/manage_tabs_message | nothing" - tal:replace="structure here/manage_tabs">Tabs</h2> +<h2 tal:define="manage_tabs_message options/manage_tabs_message | nothing" tal:replace="structure here/manage_tabs">Tabs</h2> <!-- end of ZOPE management tabs --> <h2>Change MPIWG Department</h2> <form action="changeMPIWGDepartment" method="post"> -<table> -<tr> - <td><i>Weight</i> (number for sorting departments)</td> - <td><input type="text" size="5" name="weight" tal:attributes="value here/weight|string:0"></td> -</tr> -<tr> - <td><i>Project ID</i> (number for identifying projects)</td> - <td><input type="text" size="5" name="project_id" tal:attributes="value here/project_id|string:0"></td> -</tr> -<tr> - <td><i>Director</i></td> - <td><input type="text" size="40" name="director" tal:attributes="value here/director|nothing"></td> -</tr> -<tr> - <td><i>ID/username of director</i></td> - <td><input type="text" size="20" name="director_id" tal:attributes="value here/director_id|nothing"></td> -</tr> + <table> + <tr> + <td><i>Weight</i> (number for sorting departments)</td> + <td><input type="text" size="5" name="weight" tal:attributes="value here/weight|string:0"></td> + </tr> + <tr> + <td><i>Project ID</i> (number for identifying projects)</td> + <td><input type="text" size="5" name="project_id" tal:attributes="value here/project_id|string:0"></td> + </tr> + <tr> + <td><i>Director</i></td> + <td><input type="text" size="40" name="director" tal:attributes="value here/director|nothing"></td> + </tr> + <tr> + <td><i>ID/username of director</i></td> + <td><input type="text" size="20" name="director_id" tal:attributes="value here/director_id|nothing"></td> + </tr> + <tr> + <td><i>Type in English</i> (e.g. "Max Planck Research Group")</td> + <td><input type="text" size="20" name="type_en" tal:attributes="value python:here.getType(lang='en')"></td> + </tr> + <tr> + <td><i>Type in German</i></td> + <td><input type="text" size="20" name="type_de" tal:attributes="value python:here.getType(lang='de')"></td> + </tr> + <tr> + <td><i>Title in English</i> (e.g. "Art and Knowledge in Pre-Modern Europe")</td> + <td><input type="text" size="40" name="title_en" tal:attributes="value python:here.getTitle(lang='en')"></td> + </tr> + <tr> + <td><i>Title in German</i></td> + <td><input type="text" size="40" name="title_de" tal:attributes="value python:here.getTitle(lang='de')"></td> + </tr> -</table> -<input type="submit"> + </table> + <input type="submit"> </form> </html>