Mercurial > hg > MPIWGWeb
comparison MPIWGRoot.py @ 50:e30a4bd074db
more cleaning up projects.
author | casties |
---|---|
date | Mon, 29 Apr 2013 20:34:17 +0200 |
parents | cacba38c268c |
children | d456fe185649 |
comparison
equal
deleted
inserted
replaced
49:e40ff9829108 | 50:e30a4bd074db |
---|---|
322 #return self.decode(format%field) | 322 #return self.decode(format%field) |
323 else: | 323 else: |
324 return "" | 324 return "" |
325 | 325 |
326 | 326 |
327 # TODO: remove | |
328 def isActiveMember(self,key): | |
329 """tested ob Mitarbeiter key ist aktiv""" | |
330 key=utf8ify(key) | |
331 ret=getAt(self.ZSQLInlineSearch(_table='personal_www', | |
332 _op_key='eq',key=key, | |
333 _op_publish_the_data='eq', | |
334 publish_the_data='yes'), 0) | |
335 | |
336 logging.info("MPIWGROOT ACTIVE_MEMBER %s"%ret) | |
337 if ret: | |
338 return True | |
339 else: | |
340 return False | |
341 | |
342 # TODO: remove | |
343 def isActual(self,project): | |
344 """checke if project is actual""" | |
345 actualTime=time.localtime() | |
346 | |
347 if hasattr(project,'getObject'): #obj ist aus einer catalogTrefferList | |
348 obj=project.getObject() | |
349 else: | |
350 obj=project | |
351 | |
352 if getattr(obj,'archiveTime',actualTime)< actualTime: | |
353 return False | |
354 else: | |
355 return True | |
356 | 327 |
357 def redirectIndex_html(self,request): | 328 def redirectIndex_html(self,request): |
358 #return request['URL1']+'/index_html' | 329 #return request['URL1']+'/index_html' |
359 | 330 |
360 return urllib.urlopen(request['URL1']+'/index_html').read() | 331 return urllib.urlopen(request['URL1']+'/index_html').read() |
1141 except: | 1112 except: |
1142 return "" | 1113 return "" |
1143 | 1114 |
1144 | 1115 |
1145 | 1116 |
1146 def getProjectsOfMembers(self,date=None): | |
1147 """give tuple member /projects""" | |
1148 ret=[] | |
1149 members=self.getAllMembers() | |
1150 logging.debug("X %s"%repr(members)) | |
1151 #return str(members) | |
1152 for x in members: | |
1153 #logging.debug("X %s"%repr(x)) | |
1154 projects=self.getProjectsOfMember(key=x[1],date=date) | |
1155 if len(projects)>0: | |
1156 ret.append((x[0],projects)) | |
1157 | |
1158 return ret | |
1159 | |
1160 def getProjectsOfMember(self,key=None,date=None,onlyArchived=1,onlyActive=1): | |
1161 """get projects of a member | |
1162 | |
1163 @param key: (optional) Key zur Idenfikation des Benutzer | |
1164 @param date: (optional) Version die zum Zeitpunkt date gueltig war | |
1165 @param onlyArchived: | |
1166 onlyArchived=0: alle Projekte | |
1167 onlyArchived= 1 : nur aktuelle Projekte | |
1168 onlyArchived = 2: nur archivierte Projekte | |
1169 """ | |
1170 # TODO: Die ganze Loesung | |
1171 def sortP(x,y): | |
1172 """sort by sorting number""" | |
1173 return cmp(x.WEB_title,y.WEB_title) | |
1174 | |
1175 ret=[] | |
1176 if key: | |
1177 logging.debug("MPIWGROOT (getProjectsOfMember):"+key) | |
1178 proj=self.ProjectCatalog({'getPersonKeyList':utf8ify(key)}) | |
1179 else: | |
1180 return ret # key muss definiert sein | |
1181 | |
1182 #logging.debug("MPIWGROOT (getProjectsOfMember):"+repr(proj)) | |
1183 if proj: | |
1184 proj2=[] | |
1185 for x in proj: | |
1186 #logging.error("proj:%s"%repr(x.getPath())) | |
1187 if (not getattr(x.getObject(),'invisible',None)) and (getattr(x.getObject(),'archiveTime','')==''): | |
1188 proj2.append(x) | |
1189 | |
1190 else: | |
1191 proj2=[] | |
1192 | |
1193 | |
1194 | |
1195 proj2.sort(sortP) | |
1196 | |
1197 projectListe=[] | |
1198 #logging.error("getprojectsofmember proj2: %s"%repr(proj2)) | |
1199 for proj in proj2: | |
1200 obj=proj.getObject() | |
1201 add=False | |
1202 if onlyArchived==1: #nur aktuell projecte | |
1203 if not obj.isArchivedProject(): | |
1204 add=True | |
1205 elif onlyArchived==2: #nur archivierte | |
1206 if obj.isArchivedProject(): | |
1207 add=True | |
1208 else: #alle | |
1209 add=True | |
1210 | |
1211 if onlyActive==1: #nur active projecte | |
1212 if obj.isActiveProject(): | |
1213 add=add & True | |
1214 else: | |
1215 add=add & False | |
1216 | |
1217 elif onlyArchived==2: #nur nicht aktvive | |
1218 if not obj.isActiveProject(): | |
1219 add=add & True | |
1220 else: #alle | |
1221 add=add & True | |
1222 | |
1223 if add: | |
1224 projectListe.append(obj) | |
1225 | |
1226 #logging.error("getprojectsofmember projectliste: %s"%repr(projectListe)) | |
1227 return projectListe | |
1228 | 1117 |
1229 def givePersonList(self,name): | |
1230 """check if person is in personfolder and return list of person objects""" | |
1231 | |
1232 splitted=name.split(",") | |
1233 if len(splitted)==1: | |
1234 splitted=name.lstrip().rstrip().split(" ") | |
1235 splittedNew=[split.lstrip() for split in splitted] | |
1236 | |
1237 if splittedNew[0]=='': | |
1238 del splittedNew[0] | |
1239 search=string.join(splittedNew,' AND ') | |
1240 | |
1241 if not search=='': | |
1242 proj=self.MembersCatalog({'title':search}) | |
1243 | |
1244 if proj: | |
1245 return [[x.lastName,x.firstName] for x in proj] | |
1246 else: | |
1247 return [] | |
1248 | |
1249 ## splitted=name.split(",") # version nachname, vorname... | |
1250 ## if len(splitted)>1: | |
1251 ## lastName=splitted[0] | |
1252 ## firstName=splitted[1] | |
1253 ## else: | |
1254 ## splitted=name.split(" ") #version vorname irgenwas nachnamae | |
1255 | |
1256 ## lastName=splitted[len(splitted)-1] | |
1257 ## firstName=string.join(splitted[0:len(splitted)-1]) | |
1258 | |
1259 ## objs=[] | |
1260 | |
1261 #print self.members | |
1262 ## for x in self.members.__dict__: | |
1263 ## obj=getattr(self.members,x) | |
1264 ## if hasattr(obj,'lastName') and hasattr(obj,'firstName'): | |
1265 | |
1266 ## if (re.match(".*"+obj.lastName+".*",lastName) or re.match(".*"+lastName+".*",obj.lastName)) and (re.match(".*"+obj.firstName+".*",firstName) or re.match(".*"+firstName+".*",obj.firstName)): | |
1267 | |
1268 ## objs.append((obj,lastName+", "+firstName)) | |
1269 | |
1270 | |
1271 ## return objs | |
1272 | |
1273 | |
1274 def personCheck(self,names): | |
1275 """all persons for list""" | |
1276 #print "names",names | |
1277 splitted=names.split(";") | |
1278 ret={} | |
1279 for name in splitted: | |
1280 | |
1281 if not (name==""): | |
1282 try: | |
1283 ret[name]=self.givePersonList(name) | |
1284 except: | |
1285 """NOTHIHN""" | |
1286 #print "RET",ret | |
1287 return ret | |
1288 | |
1289 def giveCheckList(self,person,fieldname): | |
1290 """return checklist""" | |
1291 #print "GCL",fieldname | |
1292 if fieldname=='xdata_01': | |
1293 x=self.personCheck(person.getContent(fieldname)) | |
1294 #print "GCLBACKX",x | |
1295 return x | |
1296 | |
1297 | |
1298 # TODO: do we need this here? | |
1299 def isCheckField(self,fieldname): | |
1300 """return chechfield""" | |
1301 return (fieldname in checkFields) | |
1302 | |
1303 | |
1304 | |
1305 def sortResults(self,results): | |
1306 """search the catalog and give results back sorted by meta_type""" | |
1307 ret = {} | |
1308 logging.debug(results()) | |
1309 for result in results(): | |
1310 metaType = result.meta_type | |
1311 resultList= ret.get(metaType,[]) | |
1312 resultList.append(result) | |
1313 ret[metaType]=resultList | |
1314 | |
1315 logging.debug(ret) | |
1316 return ret | |
1317 | |
1318 | 1118 |
1319 def manage_addMPIWGRootForm(self): | 1119 def manage_addMPIWGRootForm(self): |
1320 """form for adding the root""" | 1120 """form for adding the root""" |
1321 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGRootForm.zpt')).__of__(self) | 1121 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGRootForm.zpt')).__of__(self) |
1322 return pt() | 1122 return pt() |