comparison MPIWGStaff.py @ 93:48e88706cfc3

department filter for getMemberList.
author casties
date Thu, 16 May 2013 10:51:51 +0200
parents ab836d3f96dc
children f4ac675b2031
comparison
equal deleted inserted replaced
92:45c7b240ee93 93:48e88706cfc3
133 """returns if member key is active""" 133 """returns if member key is active"""
134 res = self.executeZSQL("select * from personal_www where lower(key) = %s and publish_the_data = 'yes'", [key.lower()]) 134 res = self.executeZSQL("select * from personal_www where lower(key) = %s and publish_the_data = 'yes'", [key.lower()])
135 return len(res) > 0 135 return len(res) > 0
136 136
137 137
138 def getMemberList(self, sortBy='last_name', onlyCurrent=False, limit=0): 138 def getMemberList(self, department=None, sortBy='last_name', onlyCurrent=False, limit=0):
139 """Return the list of members. 139 """Return the list of members.
140 140
141 Returns a list of MPIWGStaffMember objects. 141 Returns a list of MPIWGStaffMember objects.
142 """ 142 """
143 members = [] 143 members = []
144 query = "select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes'" 144 query = "select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes'"
145 args = []
146
147 if department is not None:
148 query += " and department ilike %s"
149 args.append('%%%s%%'%department)
145 150
146 if onlyCurrent: 151 if onlyCurrent:
147 query += " and date_from < CURRENT_DATE" 152 query += " and date_from < CURRENT_DATE"
148 153
149 if sortBy == 'last_name': 154 if sortBy == 'last_name':
152 query += " order by date_from DESC" 157 query += " order by date_from DESC"
153 158
154 if limit > 0: 159 if limit > 0:
155 query += " limit %s"%int(limit) 160 query += " limit %s"%int(limit)
156 161
157 result = self.executeZSQL(query) 162 result = self.executeZSQL(query, args)
158 for res in result: 163 for res in result:
159 members.append(MPIWGStaffMember(self, dbresult=res)) 164 members.append(MPIWGStaffMember(self, dbresult=res))
160 165
161 return members 166 return members
162 167
190 195
191 return pubs 196 return pubs
192 except: 197 except:
193 return [] 198 return []
194 199
195 def getLastArrivals(self,limit=None):
196 """getlast arrivals"""
197 if not limit:
198 selectStr="select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes' and date_from < CURRENT_DATE order by date_from DESC"
199 else:
200 selectStr="select * from personal_www_list where publish_the_data = 'yes' and is_scholar='yes' and date_from < CURRENT_DATE order by date_from DESC limit %s"%limit
201
202 res=self.members.executeZSQL(selectStr)
203
204 return res
205
206 200
207 def manage_addMPIWGStaffFolderForm(self): 201 def manage_addMPIWGStaffFolderForm(self):
208 """form for adding the project""" 202 """form for adding the project"""
209 pt=PageTemplateFile('zpt/addMPIWGStaffFolderForm', globals()).__of__(self) 203 pt=PageTemplateFile('zpt/addMPIWGStaffFolderForm', globals()).__of__(self)
210 return pt() 204 return pt()